diff --git a/weui/css/weuix.css b/weui/css/weuix.css index 169184d..05c3f1d 100644 --- a/weui/css/weuix.css +++ b/weui/css/weuix.css @@ -1393,8 +1393,6 @@ label > * { text-align: right; font-size: 1rem; font-weight: normal; - -webkit-mask-box-image: -webkit-linear-gradient(bottom, transparent, transparent 5%, white 20%, white 80%, transparent 95%, transparent); - -webkit-mask-box-image: linear-gradient(to top, transparent, transparent 5%, white 20%, white 80%, transparent 95%, transparent); } .weui-picker-modal .bar + .picker-items { height: 10.8rem; @@ -1484,18 +1482,6 @@ label > * { -webkit-transform-origin: 50% 0%; transform-origin: 50% 0%; } -@media only screen and (-webkit-min-device-pixel-ratio: 2) { - .weui-picker-modal .picker-center-highlight:before { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); - } -} -@media only screen and (-webkit-min-device-pixel-ratio: 3) { - .weui-picker-modal .picker-center-highlight:before { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); - } -} .weui-picker-modal .picker-center-highlight:after { content: ''; position: absolute; @@ -1511,18 +1497,6 @@ label > * { -webkit-transform-origin: 50% 100%; transform-origin: 50% 100%; } -@media only screen and (-webkit-min-device-pixel-ratio: 2) { - .weui-picker-modal .picker-center-highlight:after { - -webkit-transform: scaleY(0.5); - transform: scaleY(0.5); - } -} -@media only screen and (-webkit-min-device-pixel-ratio: 3) { - .weui-picker-modal .picker-center-highlight:after { - -webkit-transform: scaleY(0.33); - transform: scaleY(0.33); - } -} .weui-picker-modal .picker-3d .picker-items { overflow: hidden; -webkit-perspective: 1200px; @@ -3733,6 +3707,34 @@ min-height:1em; -webkit-box-sizing: border-box; box-sizing: border-box; } +.weui-form-div{ +width: 100%; + padding: 10px 0; + text-align: center; +} +.weui-form-radio-li{ +display: inline-block; + padding:5px; + width:45%; +} +.weui-form-radio{ + position: absolute; + z-index: -1; + opacity: 0; +} +.weui-form-radio + label{ + text-align: center; + border: 1px solid #07c160; + border-radius: 5px; + line-height: 2; + display: inline-block; + width:100%; +} +.weui-form-radio:checked + label { + border-color: #07c160; + background-color: #07c160; + color: white; +} /* 图片效果*/ .img-max { diff --git a/weui/demo/form13.html b/weui/demo/form13.html index 431d374..b3bc5d3 100644 --- a/weui/demo/form13.html +++ b/weui/demo/form13.html @@ -16,6 +16,11 @@ $(".page-hd-desc").html(v) }) +$(document).on("click","#k2 .weui-form-radio",function(){ + + var v = $(this).val(); + $(".page-hd-desc").html(v) +}) }); @@ -68,7 +73,7 @@

- +
- +
- +
- +
+
你经常用weui做项目吗
+ +
+
+ + +
+ +
+ + +
+ +
3 . 选择你的爱好?[多选题]
@@ -130,11 +153,11 @@

-
4 . 哪些都是大公司老板?[多选题]
+
4 . 哪些人不是中国人?[多选题]
- +
- +
- +
diff --git a/weui/demo/form2.html b/weui/demo/form2.html index de0122c..16565e8 100644 --- a/weui/demo/form2.html +++ b/weui/demo/form2.html @@ -27,7 +27,12 @@ window.scrollTo(0, Math.max(scrollHeight - 1, 0)); }, 100); }) - + $(document).on('change','#select2',function(){ +let val=$(this).val() +alert(val) +let val1=$(this).find('option:selected').text() +alert(val1) +}) }); var countdown=60; @@ -229,7 +234,7 @@

- diff --git a/weui/demo/p80.html b/weui/demo/p80.html new file mode 100644 index 0000000..0b0cd7c --- /dev/null +++ b/weui/demo/p80.html @@ -0,0 +1,104 @@ + + + + + + + + + + + + + +
+

+ tradingview画图 +

+

LightweightCharts中文

+
+
+
+
+
+
+ +
+
+
+ + + \ No newline at end of file diff --git a/weui/js/fn.js b/weui/js/fn.js index ee858fa..d66eab0 100644 --- a/weui/js/fn.js +++ b/weui/js/fn.js @@ -1123,18 +1123,6 @@ export function tpl(a,d){let c=function(l){let j,h=[],g=[];for(j in l){h.push(j) */ export const browser={version:function(){let u=navigator.userAgent.toLowerCase(),app=navigator.appVersion;return{ie:u.indexOf("trident")>-1,opera:u.indexOf("tresto")>-1,webKit:u.indexOf("applewebkit")>-1,firefox:u.indexOf("gecko")>-1&&u.indexOf("khtml")==-1,mobile:!!u.match(/applewebkit.*mobile.*/),ios:!!u.match(/\(i[^;]+;( u;)? cpu.+mac os x/),android:u.indexOf("android")>-1||u.indexOf("linux")>-1,iphone:u.indexOf("iphone")>-1,ipad:u.indexOf("ipad")>-1,weixin:u.match(/micromessenger/i)=="micromessenger"}}(),language:(navigator.browserLanguage||navigator.language).toLowerCase(),wifi:!function(t){let e=!0,n=t.navigator.userAgent,i=t.navigator.connection;if(/MicroMessenger/.test(n))if(/NetType/.test(n)){let o=n.match(/NetType\/(\S)+/)[0].replace("NetType/","");o&&"WIFI"!=o&&(e=!1)}else document.addEventListener("WeixinJSBridgeReady",function(){WeixinJSBridge.invoke("getNetworkType",{},function(t){"network_type:wifi"!=t.err_msg&&(e=!1)})});else if(i){let a=i.type;"wifi"!=a&&"2"!=a&&"unknown"!=a&&(e=!1)}t.wifi=e}(window)}; -/** - * - * @param key 支持字符串 - * @param value 只能字符串 - * @param time 过期时间 秒 - * @return 设置cookie - */ -export function setCookie(key, value, time){ - let d = new Date(); - d.setTime(d.getTime() + time*1000); - document.cookie = key + "=" + value + "; expires=" + d.toGMTString(); -} /** * ls.set("text", "this is string",3); * ls.get("text") diff --git a/weui/js/picker.city1.js b/weui/js/picker.city1.js deleted file mode 100644 index 84aa398..0000000 --- a/weui/js/picker.city1.js +++ /dev/null @@ -1,228 +0,0 @@ -+function($){ - -$.rawCitiesData =[ { "code": "11", "name": "北京市", "sub": [ { "code": "1101", "name": "北京市", "sub": [ { "code": "110101", "name": "东城区" }, { "code": "110102", "name": "西城区" }, { "code": "110105", "name": "朝阳区" }, { "code": "110106", "name": "丰台区" }, { "code": "110107", "name": "石景山区" }, { "code": "110108", "name": "海淀区" }, { "code": "110109", "name": "门头沟区" }, { "code": "110111", "name": "房山区" }, { "code": "110112", "name": "通州区" }, { "code": "110113", "name": "顺义区" }, { "code": "110114", "name": "昌平区" }, { "code": "110115", "name": "大兴区" }, { "code": "110116", "name": "怀柔区" }, { "code": "110117", "name": "平谷区" }, { "code": "110118", "name": "密云区" }, { "code": "110119", "name": "延庆区" } ] } ] }, { "code": "12", "name": "天津市", "sub": [ { "code": "1201", "name": "天津市", "sub": [ { "code": "120101", "name": "和平区" }, { "code": "120102", "name": "河东区" }, { "code": "120103", "name": "河西区" }, { "code": "120104", "name": "南开区" }, { "code": "120105", "name": "河北区" }, { "code": "120106", "name": "红桥区" }, { "code": "120110", "name": "东丽区" }, { "code": "120111", "name": "西青区" }, { "code": "120112", "name": "津南区" }, { "code": "120113", "name": "北辰区" }, { "code": "120114", "name": "武清区" }, { "code": "120115", "name": "宝坻区" }, { "code": "120116", "name": "滨海新区" }, { "code": "120117", "name": "宁河区" }, { "code": "120118", "name": "静海区" }, { "code": "120119", "name": "蓟州区" } ] } ] }, { "code": "13", "name": "河北省", "sub": [ { "code": "1301", "name": "石家庄市", "sub": [ { "code": "130102", "name": "长安区" }, { "code": "130104", "name": "桥西区" }, { "code": "130105", "name": "新华区" }, { "code": "130107", "name": "井陉矿区" }, { "code": "130108", "name": "裕华区" }, { "code": "130109", "name": "藁城区" }, { "code": "130110", "name": "鹿泉区" }, { "code": "130111", "name": "栾城区" }, { "code": "130121", "name": "井陉县" }, { "code": "130123", "name": "正定县" }, { "code": "130125", "name": "行唐县" }, { "code": "130126", "name": "灵寿县" }, { "code": "130127", "name": "高邑县" }, { "code": "130128", "name": "深泽县" }, { "code": "130129", "name": "赞皇县" }, { "code": "130130", "name": "无极县" }, { "code": "130131", "name": "平山县" }, { "code": "130132", "name": "元氏县" }, { "code": "130133", "name": "赵县" }, { "code": "130171", "name": "石家庄高新技术产业开发区" }, { "code": "130172", "name": "石家庄循环化工园区" }, { "code": "130181", "name": "辛集市" }, { "code": "130183", "name": "晋州市" }, { "code": "130184", "name": "新乐市" } ] }, { "code": "1302", "name": "唐山市", "sub": [ { "code": "130202", "name": "路南区" }, { "code": "130203", "name": "路北区" }, { "code": "130204", "name": "古冶区" }, { "code": "130205", "name": "开平区" }, { "code": "130207", "name": "丰南区" }, { "code": "130208", "name": "丰润区" }, { "code": "130209", "name": "曹妃甸区" }, { "code": "130224", "name": "滦南县" }, { "code": "130225", "name": "乐亭县" }, { "code": "130227", "name": "迁西县" }, { "code": "130229", "name": "玉田县" }, { "code": "130271", "name": "唐山市芦台经济技术开发区" }, { "code": "130272", "name": "唐山市汉沽管理区" }, { "code": "130273", "name": "唐山高新技术产业开发区" }, { "code": "130274", "name": "河北唐山海港经济开发区" }, { "code": "130281", "name": "遵化市" }, { "code": "130283", "name": "迁安市" }, { "code": "130284", "name": "滦州市" } ] }, { "code": "1303", "name": "秦皇岛市", "sub": [ { "code": "130302", "name": "海港区" }, { "code": "130303", "name": "山海关区" }, { "code": "130304", "name": "北戴河区" }, { "code": "130306", "name": "抚宁区" }, { "code": "130321", "name": "青龙满族自治县" }, { "code": "130322", "name": "昌黎县" }, { "code": "130324", "name": "卢龙县" }, { "code": "130371", "name": "秦皇岛市经济技术开发区" }, { "code": "130372", "name": "北戴河新区" } ] }, { "code": "1304", "name": "邯郸市", "sub": [ { "code": "130402", "name": "邯山区" }, { "code": "130403", "name": "丛台区" }, { "code": "130404", "name": "复兴区" }, { "code": "130406", "name": "峰峰矿区" }, { "code": "130407", "name": "肥乡区" }, { "code": "130408", "name": "永年区" }, { "code": "130423", "name": "临漳县" }, { "code": "130424", "name": "成安县" }, { "code": "130425", "name": "大名县" }, { "code": "130426", "name": "涉县" }, { "code": "130427", "name": "磁县" }, { "code": "130430", "name": "邱县" }, { "code": "130431", "name": "鸡泽县" }, { "code": "130432", "name": "广平县" }, { "code": "130433", "name": "馆陶县" }, { "code": "130434", "name": "魏县" }, { "code": "130435", "name": "曲周县" }, { "code": "130471", "name": "邯郸经济技术开发区" }, { "code": "130473", "name": "邯郸冀南新区" }, { "code": "130481", "name": "武安市" } ] }, { "code": "1305", "name": "邢台市", "sub": [ { "code": "130502", "name": "桥东区" }, { "code": "130503", "name": "桥西区" }, { "code": "130521", "name": "邢台县" }, { "code": "130522", "name": "临城县" }, { "code": "130523", "name": "内丘县" }, { "code": "130524", "name": "柏乡县" }, { "code": "130525", "name": "隆尧县" }, { "code": "130526", "name": "任县" }, { "code": "130527", "name": "南和县" }, { "code": "130528", "name": "宁晋县" }, { "code": "130529", "name": "巨鹿县" }, { "code": "130530", "name": "新河县" }, { "code": "130531", "name": "广宗县" }, { "code": "130532", "name": "平乡县" }, { "code": "130533", "name": "威县" }, { "code": "130534", "name": "清河县" }, { "code": "130535", "name": "临西县" }, { "code": "130571", "name": "河北邢台经济开发区" }, { "code": "130581", "name": "南宫市" }, { "code": "130582", "name": "沙河市" } ] }, { "code": "1306", "name": "保定市", "sub": [ { "code": "130602", "name": "竞秀区" }, { "code": "130606", "name": "莲池区" }, { "code": "130607", "name": "满城区" }, { "code": "130608", "name": "清苑区" }, { "code": "130609", "name": "徐水区" }, { "code": "130623", "name": "涞水县" }, { "code": "130624", "name": "阜平县" }, { "code": "130626", "name": "定兴县" }, { "code": "130627", "name": "唐县" }, { "code": "130628", "name": "高阳县" }, { "code": "130629", "name": "容城县" }, { "code": "130630", "name": "涞源县" }, { "code": "130631", "name": "望都县" }, { "code": "130632", "name": "安新县" }, { "code": "130633", "name": "易县" }, { "code": "130634", "name": "曲阳县" }, { "code": "130635", "name": "蠡县" }, { "code": "130636", "name": "顺平县" }, { "code": "130637", "name": "博野县" }, { "code": "130638", "name": "雄县" }, { "code": "130671", "name": "保定高新技术产业开发区" }, { "code": "130672", "name": "保定白沟新城" }, { "code": "130681", "name": "涿州市" }, { "code": "130682", "name": "定州市" }, { "code": "130683", "name": "安国市" }, { "code": "130684", "name": "高碑店市" } ] }, { "code": "1307", "name": "张家口市", "sub": [ { "code": "130702", "name": "桥东区" }, { "code": "130703", "name": "桥西区" }, { "code": "130705", "name": "宣化区" }, { "code": "130706", "name": "下花园区" }, { "code": "130708", "name": "万全区" }, { "code": "130709", "name": "崇礼区" }, { "code": "130722", "name": "张北县" }, { "code": "130723", "name": "康保县" }, { "code": "130724", "name": "沽源县" }, { "code": "130725", "name": "尚义县" }, { "code": "130726", "name": "蔚县" }, { "code": "130727", "name": "阳原县" }, { "code": "130728", "name": "怀安县" }, { "code": "130730", "name": "怀来县" }, { "code": "130731", "name": "涿鹿县" }, { "code": "130732", "name": "赤城县" }, { "code": "130771", "name": "张家口市高新技术产业开发区" }, { "code": "130772", "name": "张家口市察北管理区" }, { "code": "130773", "name": "张家口市塞北管理区" } ] }, { "code": "1308", "name": "承德市", "sub": [ { "code": "130802", "name": "双桥区" }, { "code": "130803", "name": "双滦区" }, { "code": "130804", "name": "鹰手营子矿区" }, { "code": "130821", "name": "承德县" }, { "code": "130822", "name": "兴隆县" }, { "code": "130824", "name": "滦平县" }, { "code": "130825", "name": "隆化县" }, { "code": "130826", "name": "丰宁满族自治县" }, { "code": "130827", "name": "宽城满族自治县" }, { "code": "130828", "name": "围场满族蒙古族自治县" }, { "code": "130871", "name": "承德高新技术产业开发区" }, { "code": "130881", "name": "平泉市" } ] }, { "code": "1309", "name": "沧州市", "sub": [ { "code": "130902", "name": "新华区" }, { "code": "130903", "name": "运河区" }, { "code": "130921", "name": "沧县" }, { "code": "130922", "name": "青县" }, { "code": "130923", "name": "东光县" }, { "code": "130924", "name": "海兴县" }, { "code": "130925", "name": "盐山县" }, { "code": "130926", "name": "肃宁县" }, { "code": "130927", "name": "南皮县" }, { "code": "130928", "name": "吴桥县" }, { "code": "130929", "name": "献县" }, { "code": "130930", "name": "孟村回族自治县" }, { "code": "130971", "name": "河北沧州经济开发区" }, { "code": "130972", "name": "沧州高新技术产业开发区" }, { "code": "130973", "name": "沧州渤海新区" }, { "code": "130981", "name": "泊头市" }, { "code": "130982", "name": "任丘市" }, { "code": "130983", "name": "黄骅市" }, { "code": "130984", "name": "河间市" } ] }, { "code": "1310", "name": "廊坊市", "sub": [ { "code": "131002", "name": "安次区" }, { "code": "131003", "name": "广阳区" }, { "code": "131022", "name": "固安县" }, { "code": "131023", "name": "永清县" }, { "code": "131024", "name": "香河县" }, { "code": "131025", "name": "大城县" }, { "code": "131026", "name": "文安县" }, { "code": "131028", "name": "大厂回族自治县" }, { "code": "131071", "name": "廊坊经济技术开发区" }, { "code": "131081", "name": "霸州市" }, { "code": "131082", "name": "三河市" } ] }, { "code": "1311", "name": "衡水市", "sub": [ { "code": "131102", "name": "桃城区" }, { "code": "131103", "name": "冀州区" }, { "code": "131121", "name": "枣强县" }, { "code": "131122", "name": "武邑县" }, { "code": "131123", "name": "武强县" }, { "code": "131124", "name": "饶阳县" }, { "code": "131125", "name": "安平县" }, { "code": "131126", "name": "故城县" }, { "code": "131127", "name": "景县" }, { "code": "131128", "name": "阜城县" }, { "code": "131171", "name": "河北衡水高新技术产业开发区" }, { "code": "131172", "name": "衡水滨湖新区" }, { "code": "131182", "name": "深州市" } ] } ] }, { "code": "14", "name": "山西省", "sub": [ { "code": "1401", "name": "太原市", "sub": [ { "code": "140105", "name": "小店区" }, { "code": "140106", "name": "迎泽区" }, { "code": "140107", "name": "杏花岭区" }, { "code": "140108", "name": "尖草坪区" }, { "code": "140109", "name": "万柏林区" }, { "code": "140110", "name": "晋源区" }, { "code": "140121", "name": "清徐县" }, { "code": "140122", "name": "阳曲县" }, { "code": "140123", "name": "娄烦县" }, { "code": "140171", "name": "山西转型综合改革示范区" }, { "code": "140181", "name": "古交市" } ] }, { "code": "1402", "name": "大同市", "sub": [ { "code": "140212", "name": "新荣区" }, { "code": "140213", "name": "平城区" }, { "code": "140214", "name": "云冈区" }, { "code": "140215", "name": "云州区" }, { "code": "140221", "name": "阳高县" }, { "code": "140222", "name": "天镇县" }, { "code": "140223", "name": "广灵县" }, { "code": "140224", "name": "灵丘县" }, { "code": "140225", "name": "浑源县" }, { "code": "140226", "name": "左云县" }, { "code": "140271", "name": "山西大同经济开发区" } ] }, { "code": "1403", "name": "阳泉市", "sub": [ { "code": "140302", "name": "城区" }, { "code": "140303", "name": "矿区" }, { "code": "140311", "name": "郊区" }, { "code": "140321", "name": "平定县" }, { "code": "140322", "name": "盂县" } ] }, { "code": "1404", "name": "长治市", "sub": [ { "code": "140403", "name": "潞州区" }, { "code": "140404", "name": "上党区" }, { "code": "140405", "name": "屯留区" }, { "code": "140406", "name": "潞城区" }, { "code": "140423", "name": "襄垣县" }, { "code": "140425", "name": "平顺县" }, { "code": "140426", "name": "黎城县" }, { "code": "140427", "name": "壶关县" }, { "code": "140428", "name": "长子县" }, { "code": "140429", "name": "武乡县" }, { "code": "140430", "name": "沁县" }, { "code": "140431", "name": "沁源县" }, { "code": "140471", "name": "山西长治高新技术产业园区" } ] }, { "code": "1405", "name": "晋城市", "sub": [ { "code": "140502", "name": "城区" }, { "code": "140521", "name": "沁水县" }, { "code": "140522", "name": "阳城县" }, { "code": "140524", "name": "陵川县" }, { "code": "140525", "name": "泽州县" }, { "code": "140581", "name": "高平市" } ] }, { "code": "1406", "name": "朔州市", "sub": [ { "code": "140602", "name": "朔城区" }, { "code": "140603", "name": "平鲁区" }, { "code": "140621", "name": "山阴县" }, { "code": "140622", "name": "应县" }, { "code": "140623", "name": "右玉县" }, { "code": "140671", "name": "山西朔州经济开发区" }, { "code": "140681", "name": "怀仁市" } ] }, { "code": "1407", "name": "晋中市", "sub": [ { "code": "140702", "name": "榆次区" }, { "code": "140721", "name": "榆社县" }, { "code": "140722", "name": "左权县" }, { "code": "140723", "name": "和顺县" }, { "code": "140724", "name": "昔阳县" }, { "code": "140725", "name": "寿阳县" }, { "code": "140726", "name": "太谷县" }, { "code": "140727", "name": "祁县" }, { "code": "140728", "name": "平遥县" }, { "code": "140729", "name": "灵石县" }, { "code": "140781", "name": "介休市" } ] }, { "code": "1408", "name": "运城市", "sub": [ { "code": "140802", "name": "盐湖区" }, { "code": "140821", "name": "临猗县" }, { "code": "140822", "name": "万荣县" }, { "code": "140823", "name": "闻喜县" }, { "code": "140824", "name": "稷山县" }, { "code": "140825", "name": "新绛县" }, { "code": "140826", "name": "绛县" }, { "code": "140827", "name": "垣曲县" }, { "code": "140828", "name": "夏县" }, { "code": "140829", "name": "平陆县" }, { "code": "140830", "name": "芮城县" }, { "code": "140881", "name": "永济市" }, { "code": "140882", "name": "河津市" } ] }, { "code": "1409", "name": "忻州市", "sub": [ { "code": "140902", "name": "忻府区" }, { "code": "140921", "name": "定襄县" }, { "code": "140922", "name": "五台县" }, { "code": "140923", "name": "代县" }, { "code": "140924", "name": "繁峙县" }, { "code": "140925", "name": "宁武县" }, { "code": "140926", "name": "静乐县" }, { "code": "140927", "name": "神池县" }, { "code": "140928", "name": "五寨县" }, { "code": "140929", "name": "岢岚县" }, { "code": "140930", "name": "河曲县" }, { "code": "140931", "name": "保德县" }, { "code": "140932", "name": "偏关县" }, { "code": "140971", "name": "五台山风景名胜区" }, { "code": "140981", "name": "原平市" } ] }, { "code": "1410", "name": "临汾市", "sub": [ { "code": "141002", "name": "尧都区" }, { "code": "141021", "name": "曲沃县" }, { "code": "141022", "name": "翼城县" }, { "code": "141023", "name": "襄汾县" }, { "code": "141024", "name": "洪洞县" }, { "code": "141025", "name": "古县" }, { "code": "141026", "name": "安泽县" }, { "code": "141027", "name": "浮山县" }, { "code": "141028", "name": "吉县" }, { "code": "141029", "name": "乡宁县" }, { "code": "141030", "name": "大宁县" }, { "code": "141031", "name": "隰县" }, { "code": "141032", "name": "永和县" }, { "code": "141033", "name": "蒲县" }, { "code": "141034", "name": "汾西县" }, { "code": "141081", "name": "侯马市" }, { "code": "141082", "name": "霍州市" } ] }, { "code": "1411", "name": "吕梁市", "sub": [ { "code": "141102", "name": "离石区" }, { "code": "141121", "name": "文水县" }, { "code": "141122", "name": "交城县" }, { "code": "141123", "name": "兴县" }, { "code": "141124", "name": "临县" }, { "code": "141125", "name": "柳林县" }, { "code": "141126", "name": "石楼县" }, { "code": "141127", "name": "岚县" }, { "code": "141128", "name": "方山县" }, { "code": "141129", "name": "中阳县" }, { "code": "141130", "name": "交口县" }, { "code": "141181", "name": "孝义市" }, { "code": "141182", "name": "汾阳市" } ] } ] }, { "code": "15", "name": "内蒙古自治区", "sub": [ { "code": "1501", "name": "呼和浩特市", "sub": [ { "code": "150102", "name": "新城区" }, { "code": "150103", "name": "回民区" }, { "code": "150104", "name": "玉泉区" }, { "code": "150105", "name": "赛罕区" }, { "code": "150121", "name": "土默特左旗" }, { "code": "150122", "name": "托克托县" }, { "code": "150123", "name": "和林格尔县" }, { "code": "150124", "name": "清水河县" }, { "code": "150125", "name": "武川县" }, { "code": "150171", "name": "呼和浩特金海工业园区" }, { "code": "150172", "name": "呼和浩特经济技术开发区" } ] }, { "code": "1502", "name": "包头市", "sub": [ { "code": "150202", "name": "东河区" }, { "code": "150203", "name": "昆都仑区" }, { "code": "150204", "name": "青山区" }, { "code": "150205", "name": "石拐区" }, { "code": "150206", "name": "白云鄂博矿区" }, { "code": "150207", "name": "九原区" }, { "code": "150221", "name": "土默特右旗" }, { "code": "150222", "name": "固阳县" }, { "code": "150223", "name": "达尔罕茂明安联合旗" }, { "code": "150271", "name": "包头稀土高新技术产业开发区" } ] }, { "code": "1503", "name": "乌海市", "sub": [ { "code": "150302", "name": "海勃湾区" }, { "code": "150303", "name": "海南区" }, { "code": "150304", "name": "乌达区" } ] }, { "code": "1504", "name": "赤峰市", "sub": [ { "code": "150402", "name": "红山区" }, { "code": "150403", "name": "元宝山区" }, { "code": "150404", "name": "松山区" }, { "code": "150421", "name": "阿鲁科尔沁旗" }, { "code": "150422", "name": "巴林左旗" }, { "code": "150423", "name": "巴林右旗" }, { "code": "150424", "name": "林西县" }, { "code": "150425", "name": "克什克腾旗" }, { "code": "150426", "name": "翁牛特旗" }, { "code": "150428", "name": "喀喇沁旗" }, { "code": "150429", "name": "宁城县" }, { "code": "150430", "name": "敖汉旗" } ] }, { "code": "1505", "name": "通辽市", "sub": [ { "code": "150502", "name": "科尔沁区" }, { "code": "150521", "name": "科尔沁左翼中旗" }, { "code": "150522", "name": "科尔沁左翼后旗" }, { "code": "150523", "name": "开鲁县" }, { "code": "150524", "name": "库伦旗" }, { "code": "150525", "name": "奈曼旗" }, { "code": "150526", "name": "扎鲁特旗" }, { "code": "150571", "name": "通辽经济技术开发区" }, { "code": "150581", "name": "霍林郭勒市" } ] }, { "code": "1506", "name": "鄂尔多斯市", "sub": [ { "code": "150602", "name": "东胜区" }, { "code": "150603", "name": "康巴什区" }, { "code": "150621", "name": "达拉特旗" }, { "code": "150622", "name": "准格尔旗" }, { "code": "150623", "name": "鄂托克前旗" }, { "code": "150624", "name": "鄂托克旗" }, { "code": "150625", "name": "杭锦旗" }, { "code": "150626", "name": "乌审旗" }, { "code": "150627", "name": "伊金霍洛旗" } ] }, { "code": "1507", "name": "呼伦贝尔市", "sub": [ { "code": "150702", "name": "海拉尔区" }, { "code": "150703", "name": "扎赉诺尔区" }, { "code": "150721", "name": "阿荣旗" }, { "code": "150722", "name": "莫力达瓦达斡尔族自治旗" }, { "code": "150723", "name": "鄂伦春自治旗" }, { "code": "150724", "name": "鄂温克族自治旗" }, { "code": "150725", "name": "陈巴尔虎旗" }, { "code": "150726", "name": "新巴尔虎左旗" }, { "code": "150727", "name": "新巴尔虎右旗" }, { "code": "150781", "name": "满洲里市" }, { "code": "150782", "name": "牙克石市" }, { "code": "150783", "name": "扎兰屯市" }, { "code": "150784", "name": "额尔古纳市" }, { "code": "150785", "name": "根河市" } ] }, { "code": "1508", "name": "巴彦淖尔市", "sub": [ { "code": "150802", "name": "临河区" }, { "code": "150821", "name": "五原县" }, { "code": "150822", "name": "磴口县" }, { "code": "150823", "name": "乌拉特前旗" }, { "code": "150824", "name": "乌拉特中旗" }, { "code": "150825", "name": "乌拉特后旗" }, { "code": "150826", "name": "杭锦后旗" } ] }, { "code": "1509", "name": "乌兰察布市", "sub": [ { "code": "150902", "name": "集宁区" }, { "code": "150921", "name": "卓资县" }, { "code": "150922", "name": "化德县" }, { "code": "150923", "name": "商都县" }, { "code": "150924", "name": "兴和县" }, { "code": "150925", "name": "凉城县" }, { "code": "150926", "name": "察哈尔右翼前旗" }, { "code": "150927", "name": "察哈尔右翼中旗" }, { "code": "150928", "name": "察哈尔右翼后旗" }, { "code": "150929", "name": "四子王旗" }, { "code": "150981", "name": "丰镇市" } ] }, { "code": "1522", "name": "兴安盟", "sub": [ { "code": "152201", "name": "乌兰浩特市" }, { "code": "152202", "name": "阿尔山市" }, { "code": "152221", "name": "科尔沁右翼前旗" }, { "code": "152222", "name": "科尔沁右翼中旗" }, { "code": "152223", "name": "扎赉特旗" }, { "code": "152224", "name": "突泉县" } ] }, { "code": "1525", "name": "锡林郭勒盟", "sub": [ { "code": "152501", "name": "二连浩特市" }, { "code": "152502", "name": "锡林浩特市" }, { "code": "152522", "name": "阿巴嘎旗" }, { "code": "152523", "name": "苏尼特左旗" }, { "code": "152524", "name": "苏尼特右旗" }, { "code": "152525", "name": "东乌珠穆沁旗" }, { "code": "152526", "name": "西乌珠穆沁旗" }, { "code": "152527", "name": "太仆寺旗" }, { "code": "152528", "name": "镶黄旗" }, { "code": "152529", "name": "正镶白旗" }, { "code": "152530", "name": "正蓝旗" }, { "code": "152531", "name": "多伦县" }, { "code": "152571", "name": "乌拉盖管委会" } ] }, { "code": "1529", "name": "阿拉善盟", "sub": [ { "code": "152921", "name": "阿拉善左旗" }, { "code": "152922", "name": "阿拉善右旗" }, { "code": "152923", "name": "额济纳旗" }, { "code": "152971", "name": "内蒙古阿拉善经济开发区" } ] } ] }, { "code": "21", "name": "辽宁省", "sub": [ { "code": "2101", "name": "沈阳市", "sub": [ { "code": "210102", "name": "和平区" }, { "code": "210103", "name": "沈河区" }, { "code": "210104", "name": "大东区" }, { "code": "210105", "name": "皇姑区" }, { "code": "210106", "name": "铁西区" }, { "code": "210111", "name": "苏家屯区" }, { "code": "210112", "name": "浑南区" }, { "code": "210113", "name": "沈北新区" }, { "code": "210114", "name": "于洪区" }, { "code": "210115", "name": "辽中区" }, { "code": "210123", "name": "康平县" }, { "code": "210124", "name": "法库县" }, { "code": "210181", "name": "新民市" } ] }, { "code": "2102", "name": "大连市", "sub": [ { "code": "210202", "name": "中山区" }, { "code": "210203", "name": "西岗区" }, { "code": "210204", "name": "沙河口区" }, { "code": "210211", "name": "甘井子区" }, { "code": "210212", "name": "旅顺口区" }, { "code": "210213", "name": "金州区" }, { "code": "210214", "name": "普兰店区" }, { "code": "210224", "name": "长海县" }, { "code": "210281", "name": "瓦房店市" }, { "code": "210283", "name": "庄河市" } ] }, { "code": "2103", "name": "鞍山市", "sub": [ { "code": "210302", "name": "铁东区" }, { "code": "210303", "name": "铁西区" }, { "code": "210304", "name": "立山区" }, { "code": "210311", "name": "千山区" }, { "code": "210321", "name": "台安县" }, { "code": "210323", "name": "岫岩满族自治县" }, { "code": "210381", "name": "海城市" } ] }, { "code": "2104", "name": "抚顺市", "sub": [ { "code": "210402", "name": "新抚区" }, { "code": "210403", "name": "东洲区" }, { "code": "210404", "name": "望花区" }, { "code": "210411", "name": "顺城区" }, { "code": "210421", "name": "抚顺县" }, { "code": "210422", "name": "新宾满族自治县" }, { "code": "210423", "name": "清原满族自治县" } ] }, { "code": "2105", "name": "本溪市", "sub": [ { "code": "210502", "name": "平山区" }, { "code": "210503", "name": "溪湖区" }, { "code": "210504", "name": "明山区" }, { "code": "210505", "name": "南芬区" }, { "code": "210521", "name": "本溪满族自治县" }, { "code": "210522", "name": "桓仁满族自治县" } ] }, { "code": "2106", "name": "丹东市", "sub": [ { "code": "210602", "name": "元宝区" }, { "code": "210603", "name": "振兴区" }, { "code": "210604", "name": "振安区" }, { "code": "210624", "name": "宽甸满族自治县" }, { "code": "210681", "name": "东港市" }, { "code": "210682", "name": "凤城市" } ] }, { "code": "2107", "name": "锦州市", "sub": [ { "code": "210702", "name": "古塔区" }, { "code": "210703", "name": "凌河区" }, { "code": "210711", "name": "太和区" }, { "code": "210726", "name": "黑山县" }, { "code": "210727", "name": "义县" }, { "code": "210781", "name": "凌海市" }, { "code": "210782", "name": "北镇市" } ] }, { "code": "2108", "name": "营口市", "sub": [ { "code": "210802", "name": "站前区" }, { "code": "210803", "name": "西市区" }, { "code": "210804", "name": "鲅鱼圈区" }, { "code": "210811", "name": "老边区" }, { "code": "210881", "name": "盖州市" }, { "code": "210882", "name": "大石桥市" } ] }, { "code": "2109", "name": "阜新市", "sub": [ { "code": "210902", "name": "海州区" }, { "code": "210903", "name": "新邱区" }, { "code": "210904", "name": "太平区" }, { "code": "210905", "name": "清河门区" }, { "code": "210911", "name": "细河区" }, { "code": "210921", "name": "阜新蒙古族自治县" }, { "code": "210922", "name": "彰武县" } ] }, { "code": "2110", "name": "辽阳市", "sub": [ { "code": "211002", "name": "白塔区" }, { "code": "211003", "name": "文圣区" }, { "code": "211004", "name": "宏伟区" }, { "code": "211005", "name": "弓长岭区" }, { "code": "211011", "name": "太子河区" }, { "code": "211021", "name": "辽阳县" }, { "code": "211081", "name": "灯塔市" } ] }, { "code": "2111", "name": "盘锦市", "sub": [ { "code": "211102", "name": "双台子区" }, { "code": "211103", "name": "兴隆台区" }, { "code": "211104", "name": "大洼区" }, { "code": "211122", "name": "盘山县" } ] }, { "code": "2112", "name": "铁岭市", "sub": [ { "code": "211202", "name": "银州区" }, { "code": "211204", "name": "清河区" }, { "code": "211221", "name": "铁岭县" }, { "code": "211223", "name": "西丰县" }, { "code": "211224", "name": "昌图县" }, { "code": "211281", "name": "调兵山市" }, { "code": "211282", "name": "开原市" } ] }, { "code": "2113", "name": "朝阳市", "sub": [ { "code": "211302", "name": "双塔区" }, { "code": "211303", "name": "龙城区" }, { "code": "211321", "name": "朝阳县" }, { "code": "211322", "name": "建平县" }, { "code": "211324", "name": "喀喇沁左翼蒙古族自治县" }, { "code": "211381", "name": "北票市" }, { "code": "211382", "name": "凌源市" } ] }, { "code": "2114", "name": "葫芦岛市", "sub": [ { "code": "211402", "name": "连山区" }, { "code": "211403", "name": "龙港区" }, { "code": "211404", "name": "南票区" }, { "code": "211421", "name": "绥中县" }, { "code": "211422", "name": "建昌县" }, { "code": "211481", "name": "兴城市" } ] } ] }, { "code": "22", "name": "吉林省", "sub": [ { "code": "2201", "name": "长春市", "sub": [ { "code": "220102", "name": "南关区" }, { "code": "220103", "name": "宽城区" }, { "code": "220104", "name": "朝阳区" }, { "code": "220105", "name": "二道区" }, { "code": "220106", "name": "绿园区" }, { "code": "220112", "name": "双阳区" }, { "code": "220113", "name": "九台区" }, { "code": "220122", "name": "农安县" }, { "code": "220171", "name": "长春经济技术开发区" }, { "code": "220172", "name": "长春净月高新技术产业开发区" }, { "code": "220173", "name": "长春高新技术产业开发区" }, { "code": "220174", "name": "长春汽车经济技术开发区" }, { "code": "220182", "name": "榆树市" }, { "code": "220183", "name": "德惠市" } ] }, { "code": "2202", "name": "吉林市", "sub": [ { "code": "220202", "name": "昌邑区" }, { "code": "220203", "name": "龙潭区" }, { "code": "220204", "name": "船营区" }, { "code": "220211", "name": "丰满区" }, { "code": "220221", "name": "永吉县" }, { "code": "220271", "name": "吉林经济开发区" }, { "code": "220272", "name": "吉林高新技术产业开发区" }, { "code": "220273", "name": "吉林中国新加坡食品区" }, { "code": "220281", "name": "蛟河市" }, { "code": "220282", "name": "桦甸市" }, { "code": "220283", "name": "舒兰市" }, { "code": "220284", "name": "磐石市" } ] }, { "code": "2203", "name": "四平市", "sub": [ { "code": "220302", "name": "铁西区" }, { "code": "220303", "name": "铁东区" }, { "code": "220322", "name": "梨树县" }, { "code": "220323", "name": "伊通满族自治县" }, { "code": "220381", "name": "公主岭市" }, { "code": "220382", "name": "双辽市" } ] }, { "code": "2204", "name": "辽源市", "sub": [ { "code": "220402", "name": "龙山区" }, { "code": "220403", "name": "西安区" }, { "code": "220421", "name": "东丰县" }, { "code": "220422", "name": "东辽县" } ] }, { "code": "2205", "name": "通化市", "sub": [ { "code": "220502", "name": "东昌区" }, { "code": "220503", "name": "二道江区" }, { "code": "220521", "name": "通化县" }, { "code": "220523", "name": "辉南县" }, { "code": "220524", "name": "柳河县" }, { "code": "220581", "name": "梅河口市" }, { "code": "220582", "name": "集安市" } ] }, { "code": "2206", "name": "白山市", "sub": [ { "code": "220602", "name": "浑江区" }, { "code": "220605", "name": "江源区" }, { "code": "220621", "name": "抚松县" }, { "code": "220622", "name": "靖宇县" }, { "code": "220623", "name": "长白朝鲜族自治县" }, { "code": "220681", "name": "临江市" } ] }, { "code": "2207", "name": "松原市", "sub": [ { "code": "220702", "name": "宁江区" }, { "code": "220721", "name": "前郭尔罗斯蒙古族自治县" }, { "code": "220722", "name": "长岭县" }, { "code": "220723", "name": "乾安县" }, { "code": "220771", "name": "吉林松原经济开发区" }, { "code": "220781", "name": "扶余市" } ] }, { "code": "2208", "name": "白城市", "sub": [ { "code": "220802", "name": "洮北区" }, { "code": "220821", "name": "镇赉县" }, { "code": "220822", "name": "通榆县" }, { "code": "220871", "name": "吉林白城经济开发区" }, { "code": "220881", "name": "洮南市" }, { "code": "220882", "name": "大安市" } ] }, { "code": "2224", "name": "延边朝鲜族自治州", "sub": [ { "code": "222401", "name": "延吉市" }, { "code": "222402", "name": "图们市" }, { "code": "222403", "name": "敦化市" }, { "code": "222404", "name": "珲春市" }, { "code": "222405", "name": "龙井市" }, { "code": "222406", "name": "和龙市" }, { "code": "222424", "name": "汪清县" }, { "code": "222426", "name": "安图县" } ] } ] }, { "code": "23", "name": "黑龙江省", "sub": [ { "code": "2301", "name": "哈尔滨市", "sub": [ { "code": "230102", "name": "道里区" }, { "code": "230103", "name": "南岗区" }, { "code": "230104", "name": "道外区" }, { "code": "230108", "name": "平房区" }, { "code": "230109", "name": "松北区" }, { "code": "230110", "name": "香坊区" }, { "code": "230111", "name": "呼兰区" }, { "code": "230112", "name": "阿城区" }, { "code": "230113", "name": "双城区" }, { "code": "230123", "name": "依兰县" }, { "code": "230124", "name": "方正县" }, { "code": "230125", "name": "宾县" }, { "code": "230126", "name": "巴彦县" }, { "code": "230127", "name": "木兰县" }, { "code": "230128", "name": "通河县" }, { "code": "230129", "name": "延寿县" }, { "code": "230183", "name": "尚志市" }, { "code": "230184", "name": "五常市" } ] }, { "code": "2302", "name": "齐齐哈尔市", "sub": [ { "code": "230202", "name": "龙沙区" }, { "code": "230203", "name": "建华区" }, { "code": "230204", "name": "铁锋区" }, { "code": "230205", "name": "昂昂溪区" }, { "code": "230206", "name": "富拉尔基区" }, { "code": "230207", "name": "碾子山区" }, { "code": "230208", "name": "梅里斯达斡尔族区" }, { "code": "230221", "name": "龙江县" }, { "code": "230223", "name": "依安县" }, { "code": "230224", "name": "泰来县" }, { "code": "230225", "name": "甘南县" }, { "code": "230227", "name": "富裕县" }, { "code": "230229", "name": "克山县" }, { "code": "230230", "name": "克东县" }, { "code": "230231", "name": "拜泉县" }, { "code": "230281", "name": "讷河市" } ] }, { "code": "2303", "name": "鸡西市", "sub": [ { "code": "230302", "name": "鸡冠区" }, { "code": "230303", "name": "恒山区" }, { "code": "230304", "name": "滴道区" }, { "code": "230305", "name": "梨树区" }, { "code": "230306", "name": "城子河区" }, { "code": "230307", "name": "麻山区" }, { "code": "230321", "name": "鸡东县" }, { "code": "230381", "name": "虎林市" }, { "code": "230382", "name": "密山市" } ] }, { "code": "2304", "name": "鹤岗市", "sub": [ { "code": "230402", "name": "向阳区" }, { "code": "230403", "name": "工农区" }, { "code": "230404", "name": "南山区" }, { "code": "230405", "name": "兴安区" }, { "code": "230406", "name": "东山区" }, { "code": "230407", "name": "兴山区" }, { "code": "230421", "name": "萝北县" }, { "code": "230422", "name": "绥滨县" } ] }, { "code": "2305", "name": "双鸭山市", "sub": [ { "code": "230502", "name": "尖山区" }, { "code": "230503", "name": "岭东区" }, { "code": "230505", "name": "四方台区" }, { "code": "230506", "name": "宝山区" }, { "code": "230521", "name": "集贤县" }, { "code": "230522", "name": "友谊县" }, { "code": "230523", "name": "宝清县" }, { "code": "230524", "name": "饶河县" } ] }, { "code": "2306", "name": "大庆市", "sub": [ { "code": "230602", "name": "萨尔图区" }, { "code": "230603", "name": "龙凤区" }, { "code": "230604", "name": "让胡路区" }, { "code": "230605", "name": "红岗区" }, { "code": "230606", "name": "大同区" }, { "code": "230621", "name": "肇州县" }, { "code": "230622", "name": "肇源县" }, { "code": "230623", "name": "林甸县" }, { "code": "230624", "name": "杜尔伯特蒙古族自治县" }, { "code": "230671", "name": "大庆高新技术产业开发区" } ] }, { "code": "2307", "name": "伊春市", "sub": [ { "code": "230702", "name": "伊春区" }, { "code": "230703", "name": "南岔区" }, { "code": "230704", "name": "友好区" }, { "code": "230705", "name": "西林区" }, { "code": "230706", "name": "翠峦区" }, { "code": "230707", "name": "新青区" }, { "code": "230708", "name": "美溪区" }, { "code": "230709", "name": "金山屯区" }, { "code": "230710", "name": "五营区" }, { "code": "230711", "name": "乌马河区" }, { "code": "230712", "name": "汤旺河区" }, { "code": "230713", "name": "带岭区" }, { "code": "230714", "name": "乌伊岭区" }, { "code": "230715", "name": "红星区" }, { "code": "230716", "name": "上甘岭区" }, { "code": "230722", "name": "嘉荫县" }, { "code": "230781", "name": "铁力市" } ] }, { "code": "2308", "name": "佳木斯市", "sub": [ { "code": "230803", "name": "向阳区" }, { "code": "230804", "name": "前进区" }, { "code": "230805", "name": "东风区" }, { "code": "230811", "name": "郊区" }, { "code": "230822", "name": "桦南县" }, { "code": "230826", "name": "桦川县" }, { "code": "230828", "name": "汤原县" }, { "code": "230881", "name": "同江市" }, { "code": "230882", "name": "富锦市" }, { "code": "230883", "name": "抚远市" } ] }, { "code": "2309", "name": "七台河市", "sub": [ { "code": "230902", "name": "新兴区" }, { "code": "230903", "name": "桃山区" }, { "code": "230904", "name": "茄子河区" }, { "code": "230921", "name": "勃利县" } ] }, { "code": "2310", "name": "牡丹江市", "sub": [ { "code": "231002", "name": "东安区" }, { "code": "231003", "name": "阳明区" }, { "code": "231004", "name": "爱民区" }, { "code": "231005", "name": "西安区" }, { "code": "231025", "name": "林口县" }, { "code": "231071", "name": "牡丹江经济技术开发区" }, { "code": "231081", "name": "绥芬河市" }, { "code": "231083", "name": "海林市" }, { "code": "231084", "name": "宁安市" }, { "code": "231085", "name": "穆棱市" }, { "code": "231086", "name": "东宁市" } ] }, { "code": "2311", "name": "黑河市", "sub": [ { "code": "231102", "name": "爱辉区" }, { "code": "231121", "name": "嫩江县" }, { "code": "231123", "name": "逊克县" }, { "code": "231124", "name": "孙吴县" }, { "code": "231181", "name": "北安市" }, { "code": "231182", "name": "五大连池市" } ] }, { "code": "2312", "name": "绥化市", "sub": [ { "code": "231202", "name": "北林区" }, { "code": "231221", "name": "望奎县" }, { "code": "231222", "name": "兰西县" }, { "code": "231223", "name": "青冈县" }, { "code": "231224", "name": "庆安县" }, { "code": "231225", "name": "明水县" }, { "code": "231226", "name": "绥棱县" }, { "code": "231281", "name": "安达市" }, { "code": "231282", "name": "肇东市" }, { "code": "231283", "name": "海伦市" } ] }, { "code": "2327", "name": "大兴安岭地区", "sub": [ { "code": "232701", "name": "漠河市" }, { "code": "232721", "name": "呼玛县" }, { "code": "232722", "name": "塔河县" }, { "code": "232761", "name": "加格达奇区" }, { "code": "232762", "name": "松岭区" }, { "code": "232763", "name": "新林区" }, { "code": "232764", "name": "呼中区" } ] } ] }, { "code": "31", "name": "上海市", "sub": [ { "code": "3101", "name": "上海市", "sub": [ { "code": "310101", "name": "黄浦区" }, { "code": "310104", "name": "徐汇区" }, { "code": "310105", "name": "长宁区" }, { "code": "310106", "name": "静安区" }, { "code": "310107", "name": "普陀区" }, { "code": "310109", "name": "虹口区" }, { "code": "310110", "name": "杨浦区" }, { "code": "310112", "name": "闵行区" }, { "code": "310113", "name": "宝山区" }, { "code": "310114", "name": "嘉定区" }, { "code": "310115", "name": "浦东新区" }, { "code": "310116", "name": "金山区" }, { "code": "310117", "name": "松江区" }, { "code": "310118", "name": "青浦区" }, { "code": "310120", "name": "奉贤区" }, { "code": "310151", "name": "崇明区" } ] } ] }, { "code": "32", "name": "江苏省", "sub": [ { "code": "3201", "name": "南京市", "sub": [ { "code": "320102", "name": "玄武区" }, { "code": "320104", "name": "秦淮区" }, { "code": "320105", "name": "建邺区" }, { "code": "320106", "name": "鼓楼区" }, { "code": "320111", "name": "浦口区" }, { "code": "320113", "name": "栖霞区" }, { "code": "320114", "name": "雨花台区" }, { "code": "320115", "name": "江宁区" }, { "code": "320116", "name": "六合区" }, { "code": "320117", "name": "溧水区" }, { "code": "320118", "name": "高淳区" } ] }, { "code": "3202", "name": "无锡市", "sub": [ { "code": "320205", "name": "锡山区" }, { "code": "320206", "name": "惠山区" }, { "code": "320211", "name": "滨湖区" }, { "code": "320213", "name": "梁溪区" }, { "code": "320214", "name": "新吴区" }, { "code": "320281", "name": "江阴市" }, { "code": "320282", "name": "宜兴市" } ] }, { "code": "3203", "name": "徐州市", "sub": [ { "code": "320302", "name": "鼓楼区" }, { "code": "320303", "name": "云龙区" }, { "code": "320305", "name": "贾汪区" }, { "code": "320311", "name": "泉山区" }, { "code": "320312", "name": "铜山区" }, { "code": "320321", "name": "丰县" }, { "code": "320322", "name": "沛县" }, { "code": "320324", "name": "睢宁县" }, { "code": "320371", "name": "徐州经济技术开发区" }, { "code": "320381", "name": "新沂市" }, { "code": "320382", "name": "邳州市" } ] }, { "code": "3204", "name": "常州市", "sub": [ { "code": "320402", "name": "天宁区" }, { "code": "320404", "name": "钟楼区" }, { "code": "320411", "name": "新北区" }, { "code": "320412", "name": "武进区" }, { "code": "320413", "name": "金坛区" }, { "code": "320481", "name": "溧阳市" } ] }, { "code": "3205", "name": "苏州市", "sub": [ { "code": "320505", "name": "虎丘区" }, { "code": "320506", "name": "吴中区" }, { "code": "320507", "name": "相城区" }, { "code": "320508", "name": "姑苏区" }, { "code": "320509", "name": "吴江区" }, { "code": "320571", "name": "苏州工业园区" }, { "code": "320581", "name": "常熟市" }, { "code": "320582", "name": "张家港市" }, { "code": "320583", "name": "昆山市" }, { "code": "320585", "name": "太仓市" } ] }, { "code": "3206", "name": "南通市", "sub": [ { "code": "320602", "name": "崇川区" }, { "code": "320611", "name": "港闸区" }, { "code": "320612", "name": "通州区" }, { "code": "320623", "name": "如东县" }, { "code": "320671", "name": "南通经济技术开发区" }, { "code": "320681", "name": "启东市" }, { "code": "320682", "name": "如皋市" }, { "code": "320684", "name": "海门市" }, { "code": "320685", "name": "海安市" } ] }, { "code": "3207", "name": "连云港市", "sub": [ { "code": "320703", "name": "连云区" }, { "code": "320706", "name": "海州区" }, { "code": "320707", "name": "赣榆区" }, { "code": "320722", "name": "东海县" }, { "code": "320723", "name": "灌云县" }, { "code": "320724", "name": "灌南县" }, { "code": "320771", "name": "连云港经济技术开发区" }, { "code": "320772", "name": "连云港高新技术产业开发区" } ] }, { "code": "3208", "name": "淮安市", "sub": [ { "code": "320803", "name": "淮安区" }, { "code": "320804", "name": "淮阴区" }, { "code": "320812", "name": "清江浦区" }, { "code": "320813", "name": "洪泽区" }, { "code": "320826", "name": "涟水县" }, { "code": "320830", "name": "盱眙县" }, { "code": "320831", "name": "金湖县" }, { "code": "320871", "name": "淮安经济技术开发区" } ] }, { "code": "3209", "name": "盐城市", "sub": [ { "code": "320902", "name": "亭湖区" }, { "code": "320903", "name": "盐都区" }, { "code": "320904", "name": "大丰区" }, { "code": "320921", "name": "响水县" }, { "code": "320922", "name": "滨海县" }, { "code": "320923", "name": "阜宁县" }, { "code": "320924", "name": "射阳县" }, { "code": "320925", "name": "建湖县" }, { "code": "320971", "name": "盐城经济技术开发区" }, { "code": "320981", "name": "东台市" } ] }, { "code": "3210", "name": "扬州市", "sub": [ { "code": "321002", "name": "广陵区" }, { "code": "321003", "name": "邗江区" }, { "code": "321012", "name": "江都区" }, { "code": "321023", "name": "宝应县" }, { "code": "321071", "name": "扬州经济技术开发区" }, { "code": "321081", "name": "仪征市" }, { "code": "321084", "name": "高邮市" } ] }, { "code": "3211", "name": "镇江市", "sub": [ { "code": "321102", "name": "京口区" }, { "code": "321111", "name": "润州区" }, { "code": "321112", "name": "丹徒区" }, { "code": "321171", "name": "镇江新区" }, { "code": "321181", "name": "丹阳市" }, { "code": "321182", "name": "扬中市" }, { "code": "321183", "name": "句容市" } ] }, { "code": "3212", "name": "泰州市", "sub": [ { "code": "321202", "name": "海陵区" }, { "code": "321203", "name": "高港区" }, { "code": "321204", "name": "姜堰区" }, { "code": "321271", "name": "泰州医药高新技术产业开发区" }, { "code": "321281", "name": "兴化市" }, { "code": "321282", "name": "靖江市" }, { "code": "321283", "name": "泰兴市" } ] }, { "code": "3213", "name": "宿迁市", "sub": [ { "code": "321302", "name": "宿城区" }, { "code": "321311", "name": "宿豫区" }, { "code": "321322", "name": "沭阳县" }, { "code": "321323", "name": "泗阳县" }, { "code": "321324", "name": "泗洪县" }, { "code": "321371", "name": "宿迁经济技术开发区" } ] } ] }, { "code": "33", "name": "浙江省", "sub": [ { "code": "3301", "name": "杭州市", "sub": [ { "code": "330102", "name": "上城区" }, { "code": "330103", "name": "下城区" }, { "code": "330104", "name": "江干区" }, { "code": "330105", "name": "拱墅区" }, { "code": "330106", "name": "西湖区" }, { "code": "330108", "name": "滨江区" }, { "code": "330109", "name": "萧山区" }, { "code": "330110", "name": "余杭区" }, { "code": "330111", "name": "富阳区" }, { "code": "330112", "name": "临安区" }, { "code": "330122", "name": "桐庐县" }, { "code": "330127", "name": "淳安县" }, { "code": "330182", "name": "建德市" } ] }, { "code": "3302", "name": "宁波市", "sub": [ { "code": "330203", "name": "海曙区" }, { "code": "330205", "name": "江北区" }, { "code": "330206", "name": "北仑区" }, { "code": "330211", "name": "镇海区" }, { "code": "330212", "name": "鄞州区" }, { "code": "330213", "name": "奉化区" }, { "code": "330225", "name": "象山县" }, { "code": "330226", "name": "宁海县" }, { "code": "330281", "name": "余姚市" }, { "code": "330282", "name": "慈溪市" } ] }, { "code": "3303", "name": "温州市", "sub": [ { "code": "330302", "name": "鹿城区" }, { "code": "330303", "name": "龙湾区" }, { "code": "330304", "name": "瓯海区" }, { "code": "330305", "name": "洞头区" }, { "code": "330324", "name": "永嘉县" }, { "code": "330326", "name": "平阳县" }, { "code": "330327", "name": "苍南县" }, { "code": "330328", "name": "文成县" }, { "code": "330329", "name": "泰顺县" }, { "code": "330371", "name": "温州经济技术开发区" }, { "code": "330381", "name": "瑞安市" }, { "code": "330382", "name": "乐清市" } ] }, { "code": "3304", "name": "嘉兴市", "sub": [ { "code": "330402", "name": "南湖区" }, { "code": "330411", "name": "秀洲区" }, { "code": "330421", "name": "嘉善县" }, { "code": "330424", "name": "海盐县" }, { "code": "330481", "name": "海宁市" }, { "code": "330482", "name": "平湖市" }, { "code": "330483", "name": "桐乡市" } ] }, { "code": "3305", "name": "湖州市", "sub": [ { "code": "330502", "name": "吴兴区" }, { "code": "330503", "name": "南浔区" }, { "code": "330521", "name": "德清县" }, { "code": "330522", "name": "长兴县" }, { "code": "330523", "name": "安吉县" } ] }, { "code": "3306", "name": "绍兴市", "sub": [ { "code": "330602", "name": "越城区" }, { "code": "330603", "name": "柯桥区" }, { "code": "330604", "name": "上虞区" }, { "code": "330624", "name": "新昌县" }, { "code": "330681", "name": "诸暨市" }, { "code": "330683", "name": "嵊州市" } ] }, { "code": "3307", "name": "金华市", "sub": [ { "code": "330702", "name": "婺城区" }, { "code": "330703", "name": "金东区" }, { "code": "330723", "name": "武义县" }, { "code": "330726", "name": "浦江县" }, { "code": "330727", "name": "磐安县" }, { "code": "330781", "name": "兰溪市" }, { "code": "330782", "name": "义乌市" }, { "code": "330783", "name": "东阳市" }, { "code": "330784", "name": "永康市" } ] }, { "code": "3308", "name": "衢州市", "sub": [ { "code": "330802", "name": "柯城区" }, { "code": "330803", "name": "衢江区" }, { "code": "330822", "name": "常山县" }, { "code": "330824", "name": "开化县" }, { "code": "330825", "name": "龙游县" }, { "code": "330881", "name": "江山市" } ] }, { "code": "3309", "name": "舟山市", "sub": [ { "code": "330902", "name": "定海区" }, { "code": "330903", "name": "普陀区" }, { "code": "330921", "name": "岱山县" }, { "code": "330922", "name": "嵊泗县" } ] }, { "code": "3310", "name": "台州市", "sub": [ { "code": "331002", "name": "椒江区" }, { "code": "331003", "name": "黄岩区" }, { "code": "331004", "name": "路桥区" }, { "code": "331022", "name": "三门县" }, { "code": "331023", "name": "天台县" }, { "code": "331024", "name": "仙居县" }, { "code": "331081", "name": "温岭市" }, { "code": "331082", "name": "临海市" }, { "code": "331083", "name": "玉环市" } ] }, { "code": "3311", "name": "丽水市", "sub": [ { "code": "331102", "name": "莲都区" }, { "code": "331121", "name": "青田县" }, { "code": "331122", "name": "缙云县" }, { "code": "331123", "name": "遂昌县" }, { "code": "331124", "name": "松阳县" }, { "code": "331125", "name": "云和县" }, { "code": "331126", "name": "庆元县" }, { "code": "331127", "name": "景宁畲族自治县" }, { "code": "331181", "name": "龙泉市" } ] } ] }, { "code": "34", "name": "安徽省", "sub": [ { "code": "3401", "name": "合肥市", "sub": [ { "code": "340102", "name": "瑶海区" }, { "code": "340103", "name": "庐阳区" }, { "code": "340104", "name": "蜀山区" }, { "code": "340111", "name": "包河区" }, { "code": "340121", "name": "长丰县" }, { "code": "340122", "name": "肥东县" }, { "code": "340123", "name": "肥西县" }, { "code": "340124", "name": "庐江县" }, { "code": "340171", "name": "合肥高新技术产业开发区" }, { "code": "340172", "name": "合肥经济技术开发区" }, { "code": "340173", "name": "合肥新站高新技术产业开发区" }, { "code": "340181", "name": "巢湖市" } ] }, { "code": "3402", "name": "芜湖市", "sub": [ { "code": "340202", "name": "镜湖区" }, { "code": "340203", "name": "弋江区" }, { "code": "340207", "name": "鸠江区" }, { "code": "340208", "name": "三山区" }, { "code": "340221", "name": "芜湖县" }, { "code": "340222", "name": "繁昌县" }, { "code": "340223", "name": "南陵县" }, { "code": "340225", "name": "无为县" }, { "code": "340271", "name": "芜湖经济技术开发区" }, { "code": "340272", "name": "安徽芜湖长江大桥经济开发区" } ] }, { "code": "3403", "name": "蚌埠市", "sub": [ { "code": "340302", "name": "龙子湖区" }, { "code": "340303", "name": "蚌山区" }, { "code": "340304", "name": "禹会区" }, { "code": "340311", "name": "淮上区" }, { "code": "340321", "name": "怀远县" }, { "code": "340322", "name": "五河县" }, { "code": "340323", "name": "固镇县" }, { "code": "340371", "name": "蚌埠市高新技术开发区" }, { "code": "340372", "name": "蚌埠市经济开发区" } ] }, { "code": "3404", "name": "淮南市", "sub": [ { "code": "340402", "name": "大通区" }, { "code": "340403", "name": "田家庵区" }, { "code": "340404", "name": "谢家集区" }, { "code": "340405", "name": "八公山区" }, { "code": "340406", "name": "潘集区" }, { "code": "340421", "name": "凤台县" }, { "code": "340422", "name": "寿县" } ] }, { "code": "3405", "name": "马鞍山市", "sub": [ { "code": "340503", "name": "花山区" }, { "code": "340504", "name": "雨山区" }, { "code": "340506", "name": "博望区" }, { "code": "340521", "name": "当涂县" }, { "code": "340522", "name": "含山县" }, { "code": "340523", "name": "和县" } ] }, { "code": "3406", "name": "淮北市", "sub": [ { "code": "340602", "name": "杜集区" }, { "code": "340603", "name": "相山区" }, { "code": "340604", "name": "烈山区" }, { "code": "340621", "name": "濉溪县" } ] }, { "code": "3407", "name": "铜陵市", "sub": [ { "code": "340705", "name": "铜官区" }, { "code": "340706", "name": "义安区" }, { "code": "340711", "name": "郊区" }, { "code": "340722", "name": "枞阳县" } ] }, { "code": "3408", "name": "安庆市", "sub": [ { "code": "340802", "name": "迎江区" }, { "code": "340803", "name": "大观区" }, { "code": "340811", "name": "宜秀区" }, { "code": "340822", "name": "怀宁县" }, { "code": "340825", "name": "太湖县" }, { "code": "340826", "name": "宿松县" }, { "code": "340827", "name": "望江县" }, { "code": "340828", "name": "岳西县" }, { "code": "340871", "name": "安徽安庆经济开发区" }, { "code": "340881", "name": "桐城市" }, { "code": "340882", "name": "潜山市" } ] }, { "code": "3410", "name": "黄山市", "sub": [ { "code": "341002", "name": "屯溪区" }, { "code": "341003", "name": "黄山区" }, { "code": "341004", "name": "徽州区" }, { "code": "341021", "name": "歙县" }, { "code": "341022", "name": "休宁县" }, { "code": "341023", "name": "黟县" }, { "code": "341024", "name": "祁门县" } ] }, { "code": "3411", "name": "滁州市", "sub": [ { "code": "341102", "name": "琅琊区" }, { "code": "341103", "name": "南谯区" }, { "code": "341122", "name": "来安县" }, { "code": "341124", "name": "全椒县" }, { "code": "341125", "name": "定远县" }, { "code": "341126", "name": "凤阳县" }, { "code": "341171", "name": "苏滁现代产业园" }, { "code": "341172", "name": "滁州经济技术开发区" }, { "code": "341181", "name": "天长市" }, { "code": "341182", "name": "明光市" } ] }, { "code": "3412", "name": "阜阳市", "sub": [ { "code": "341202", "name": "颍州区" }, { "code": "341203", "name": "颍东区" }, { "code": "341204", "name": "颍泉区" }, { "code": "341221", "name": "临泉县" }, { "code": "341222", "name": "太和县" }, { "code": "341225", "name": "阜南县" }, { "code": "341226", "name": "颍上县" }, { "code": "341271", "name": "阜阳合肥现代产业园区" }, { "code": "341272", "name": "阜阳经济技术开发区" }, { "code": "341282", "name": "界首市" } ] }, { "code": "3413", "name": "宿州市", "sub": [ { "code": "341302", "name": "埇桥区" }, { "code": "341321", "name": "砀山县" }, { "code": "341322", "name": "萧县" }, { "code": "341323", "name": "灵璧县" }, { "code": "341324", "name": "泗县" }, { "code": "341371", "name": "宿州马鞍山现代产业园区" }, { "code": "341372", "name": "宿州经济技术开发区" } ] }, { "code": "3415", "name": "六安市", "sub": [ { "code": "341502", "name": "金安区" }, { "code": "341503", "name": "裕安区" }, { "code": "341504", "name": "叶集区" }, { "code": "341522", "name": "霍邱县" }, { "code": "341523", "name": "舒城县" }, { "code": "341524", "name": "金寨县" }, { "code": "341525", "name": "霍山县" } ] }, { "code": "3416", "name": "亳州市", "sub": [ { "code": "341602", "name": "谯城区" }, { "code": "341621", "name": "涡阳县" }, { "code": "341622", "name": "蒙城县" }, { "code": "341623", "name": "利辛县" } ] }, { "code": "3417", "name": "池州市", "sub": [ { "code": "341702", "name": "贵池区" }, { "code": "341721", "name": "东至县" }, { "code": "341722", "name": "石台县" }, { "code": "341723", "name": "青阳县" } ] }, { "code": "3418", "name": "宣城市", "sub": [ { "code": "341802", "name": "宣州区" }, { "code": "341821", "name": "郎溪县" }, { "code": "341822", "name": "广德县" }, { "code": "341823", "name": "泾县" }, { "code": "341824", "name": "绩溪县" }, { "code": "341825", "name": "旌德县" }, { "code": "341871", "name": "宣城市经济开发区" }, { "code": "341881", "name": "宁国市" } ] } ] }, { "code": "35", "name": "福建省", "sub": [ { "code": "3501", "name": "福州市", "sub": [ { "code": "350102", "name": "鼓楼区" }, { "code": "350103", "name": "台江区" }, { "code": "350104", "name": "仓山区" }, { "code": "350105", "name": "马尾区" }, { "code": "350111", "name": "晋安区" }, { "code": "350112", "name": "长乐区" }, { "code": "350121", "name": "闽侯县" }, { "code": "350122", "name": "连江县" }, { "code": "350123", "name": "罗源县" }, { "code": "350124", "name": "闽清县" }, { "code": "350125", "name": "永泰县" }, { "code": "350128", "name": "平潭县" }, { "code": "350181", "name": "福清市" } ] }, { "code": "3502", "name": "厦门市", "sub": [ { "code": "350203", "name": "思明区" }, { "code": "350205", "name": "海沧区" }, { "code": "350206", "name": "湖里区" }, { "code": "350211", "name": "集美区" }, { "code": "350212", "name": "同安区" }, { "code": "350213", "name": "翔安区" } ] }, { "code": "3503", "name": "莆田市", "sub": [ { "code": "350302", "name": "城厢区" }, { "code": "350303", "name": "涵江区" }, { "code": "350304", "name": "荔城区" }, { "code": "350305", "name": "秀屿区" }, { "code": "350322", "name": "仙游县" } ] }, { "code": "3504", "name": "三明市", "sub": [ { "code": "350402", "name": "梅列区" }, { "code": "350403", "name": "三元区" }, { "code": "350421", "name": "明溪县" }, { "code": "350423", "name": "清流县" }, { "code": "350424", "name": "宁化县" }, { "code": "350425", "name": "大田县" }, { "code": "350426", "name": "尤溪县" }, { "code": "350427", "name": "沙县" }, { "code": "350428", "name": "将乐县" }, { "code": "350429", "name": "泰宁县" }, { "code": "350430", "name": "建宁县" }, { "code": "350481", "name": "永安市" } ] }, { "code": "3505", "name": "泉州市", "sub": [ { "code": "350502", "name": "鲤城区" }, { "code": "350503", "name": "丰泽区" }, { "code": "350504", "name": "洛江区" }, { "code": "350505", "name": "泉港区" }, { "code": "350521", "name": "惠安县" }, { "code": "350524", "name": "安溪县" }, { "code": "350525", "name": "永春县" }, { "code": "350526", "name": "德化县" }, { "code": "350527", "name": "金门县" }, { "code": "350581", "name": "石狮市" }, { "code": "350582", "name": "晋江市" }, { "code": "350583", "name": "南安市" } ] }, { "code": "3506", "name": "漳州市", "sub": [ { "code": "350602", "name": "芗城区" }, { "code": "350603", "name": "龙文区" }, { "code": "350622", "name": "云霄县" }, { "code": "350623", "name": "漳浦县" }, { "code": "350624", "name": "诏安县" }, { "code": "350625", "name": "长泰县" }, { "code": "350626", "name": "东山县" }, { "code": "350627", "name": "南靖县" }, { "code": "350628", "name": "平和县" }, { "code": "350629", "name": "华安县" }, { "code": "350681", "name": "龙海市" } ] }, { "code": "3507", "name": "南平市", "sub": [ { "code": "350702", "name": "延平区" }, { "code": "350703", "name": "建阳区" }, { "code": "350721", "name": "顺昌县" }, { "code": "350722", "name": "浦城县" }, { "code": "350723", "name": "光泽县" }, { "code": "350724", "name": "松溪县" }, { "code": "350725", "name": "政和县" }, { "code": "350781", "name": "邵武市" }, { "code": "350782", "name": "武夷山市" }, { "code": "350783", "name": "建瓯市" } ] }, { "code": "3508", "name": "龙岩市", "sub": [ { "code": "350802", "name": "新罗区" }, { "code": "350803", "name": "永定区" }, { "code": "350821", "name": "长汀县" }, { "code": "350823", "name": "上杭县" }, { "code": "350824", "name": "武平县" }, { "code": "350825", "name": "连城县" }, { "code": "350881", "name": "漳平市" } ] }, { "code": "3509", "name": "宁德市", "sub": [ { "code": "350902", "name": "蕉城区" }, { "code": "350921", "name": "霞浦县" }, { "code": "350922", "name": "古田县" }, { "code": "350923", "name": "屏南县" }, { "code": "350924", "name": "寿宁县" }, { "code": "350925", "name": "周宁县" }, { "code": "350926", "name": "柘荣县" }, { "code": "350981", "name": "福安市" }, { "code": "350982", "name": "福鼎市" } ] } ] }, { "code": "36", "name": "江西省", "sub": [ { "code": "3601", "name": "南昌市", "sub": [ { "code": "360102", "name": "东湖区" }, { "code": "360103", "name": "西湖区" }, { "code": "360104", "name": "青云谱区" }, { "code": "360105", "name": "湾里区" }, { "code": "360111", "name": "青山湖区" }, { "code": "360112", "name": "新建区" }, { "code": "360121", "name": "南昌县" }, { "code": "360123", "name": "安义县" }, { "code": "360124", "name": "进贤县" } ] }, { "code": "3602", "name": "景德镇市", "sub": [ { "code": "360202", "name": "昌江区" }, { "code": "360203", "name": "珠山区" }, { "code": "360222", "name": "浮梁县" }, { "code": "360281", "name": "乐平市" } ] }, { "code": "3603", "name": "萍乡市", "sub": [ { "code": "360302", "name": "安源区" }, { "code": "360313", "name": "湘东区" }, { "code": "360321", "name": "莲花县" }, { "code": "360322", "name": "上栗县" }, { "code": "360323", "name": "芦溪县" } ] }, { "code": "3604", "name": "九江市", "sub": [ { "code": "360402", "name": "濂溪区" }, { "code": "360403", "name": "浔阳区" }, { "code": "360404", "name": "柴桑区" }, { "code": "360423", "name": "武宁县" }, { "code": "360424", "name": "修水县" }, { "code": "360425", "name": "永修县" }, { "code": "360426", "name": "德安县" }, { "code": "360428", "name": "都昌县" }, { "code": "360429", "name": "湖口县" }, { "code": "360430", "name": "彭泽县" }, { "code": "360481", "name": "瑞昌市" }, { "code": "360482", "name": "共青城市" }, { "code": "360483", "name": "庐山市" } ] }, { "code": "3605", "name": "新余市", "sub": [ { "code": "360502", "name": "渝水区" }, { "code": "360521", "name": "分宜县" } ] }, { "code": "3606", "name": "鹰潭市", "sub": [ { "code": "360602", "name": "月湖区" }, { "code": "360603", "name": "余江区" }, { "code": "360681", "name": "贵溪市" } ] }, { "code": "3607", "name": "赣州市", "sub": [ { "code": "360702", "name": "章贡区" }, { "code": "360703", "name": "南康区" }, { "code": "360704", "name": "赣县区" }, { "code": "360722", "name": "信丰县" }, { "code": "360723", "name": "大余县" }, { "code": "360724", "name": "上犹县" }, { "code": "360725", "name": "崇义县" }, { "code": "360726", "name": "安远县" }, { "code": "360727", "name": "龙南县" }, { "code": "360728", "name": "定南县" }, { "code": "360729", "name": "全南县" }, { "code": "360730", "name": "宁都县" }, { "code": "360731", "name": "于都县" }, { "code": "360732", "name": "兴国县" }, { "code": "360733", "name": "会昌县" }, { "code": "360734", "name": "寻乌县" }, { "code": "360735", "name": "石城县" }, { "code": "360781", "name": "瑞金市" } ] }, { "code": "3608", "name": "吉安市", "sub": [ { "code": "360802", "name": "吉州区" }, { "code": "360803", "name": "青原区" }, { "code": "360821", "name": "吉安县" }, { "code": "360822", "name": "吉水县" }, { "code": "360823", "name": "峡江县" }, { "code": "360824", "name": "新干县" }, { "code": "360825", "name": "永丰县" }, { "code": "360826", "name": "泰和县" }, { "code": "360827", "name": "遂川县" }, { "code": "360828", "name": "万安县" }, { "code": "360829", "name": "安福县" }, { "code": "360830", "name": "永新县" }, { "code": "360881", "name": "井冈山市" } ] }, { "code": "3609", "name": "宜春市", "sub": [ { "code": "360902", "name": "袁州区" }, { "code": "360921", "name": "奉新县" }, { "code": "360922", "name": "万载县" }, { "code": "360923", "name": "上高县" }, { "code": "360924", "name": "宜丰县" }, { "code": "360925", "name": "靖安县" }, { "code": "360926", "name": "铜鼓县" }, { "code": "360981", "name": "丰城市" }, { "code": "360982", "name": "樟树市" }, { "code": "360983", "name": "高安市" } ] }, { "code": "3610", "name": "抚州市", "sub": [ { "code": "361002", "name": "临川区" }, { "code": "361003", "name": "东乡区" }, { "code": "361021", "name": "南城县" }, { "code": "361022", "name": "黎川县" }, { "code": "361023", "name": "南丰县" }, { "code": "361024", "name": "崇仁县" }, { "code": "361025", "name": "乐安县" }, { "code": "361026", "name": "宜黄县" }, { "code": "361027", "name": "金溪县" }, { "code": "361028", "name": "资溪县" }, { "code": "361030", "name": "广昌县" } ] }, { "code": "3611", "name": "上饶市", "sub": [ { "code": "361102", "name": "信州区" }, { "code": "361103", "name": "广丰区" }, { "code": "361121", "name": "上饶县" }, { "code": "361123", "name": "玉山县" }, { "code": "361124", "name": "铅山县" }, { "code": "361125", "name": "横峰县" }, { "code": "361126", "name": "弋阳县" }, { "code": "361127", "name": "余干县" }, { "code": "361128", "name": "鄱阳县" }, { "code": "361129", "name": "万年县" }, { "code": "361130", "name": "婺源县" }, { "code": "361181", "name": "德兴市" } ] } ] }, { "code": "37", "name": "山东省", "sub": [ { "code": "3701", "name": "济南市", "sub": [ { "code": "370102", "name": "历下区" }, { "code": "370103", "name": "市中区" }, { "code": "370104", "name": "槐荫区" }, { "code": "370105", "name": "天桥区" }, { "code": "370112", "name": "历城区" }, { "code": "370113", "name": "长清区" }, { "code": "370114", "name": "章丘区" }, { "code": "370115", "name": "济阳区" }, { "code": "370124", "name": "平阴县" }, { "code": "370126", "name": "商河县" }, { "code": "370171", "name": "济南高新技术产业开发区" } ] }, { "code": "3702", "name": "青岛市", "sub": [ { "code": "370202", "name": "市南区" }, { "code": "370203", "name": "市北区" }, { "code": "370211", "name": "黄岛区" }, { "code": "370212", "name": "崂山区" }, { "code": "370213", "name": "李沧区" }, { "code": "370214", "name": "城阳区" }, { "code": "370215", "name": "即墨区" }, { "code": "370271", "name": "青岛高新技术产业开发区" }, { "code": "370281", "name": "胶州市" }, { "code": "370283", "name": "平度市" }, { "code": "370285", "name": "莱西市" } ] }, { "code": "3703", "name": "淄博市", "sub": [ { "code": "370302", "name": "淄川区" }, { "code": "370303", "name": "张店区" }, { "code": "370304", "name": "博山区" }, { "code": "370305", "name": "临淄区" }, { "code": "370306", "name": "周村区" }, { "code": "370321", "name": "桓台县" }, { "code": "370322", "name": "高青县" }, { "code": "370323", "name": "沂源县" } ] }, { "code": "3704", "name": "枣庄市", "sub": [ { "code": "370402", "name": "市中区" }, { "code": "370403", "name": "薛城区" }, { "code": "370404", "name": "峄城区" }, { "code": "370405", "name": "台儿庄区" }, { "code": "370406", "name": "山亭区" }, { "code": "370481", "name": "滕州市" } ] }, { "code": "3705", "name": "东营市", "sub": [ { "code": "370502", "name": "东营区" }, { "code": "370503", "name": "河口区" }, { "code": "370505", "name": "垦利区" }, { "code": "370522", "name": "利津县" }, { "code": "370523", "name": "广饶县" }, { "code": "370571", "name": "东营经济技术开发区" }, { "code": "370572", "name": "东营港经济开发区" } ] }, { "code": "3706", "name": "烟台市", "sub": [ { "code": "370602", "name": "芝罘区" }, { "code": "370611", "name": "福山区" }, { "code": "370612", "name": "牟平区" }, { "code": "370613", "name": "莱山区" }, { "code": "370634", "name": "长岛县" }, { "code": "370671", "name": "烟台高新技术产业开发区" }, { "code": "370672", "name": "烟台经济技术开发区" }, { "code": "370681", "name": "龙口市" }, { "code": "370682", "name": "莱阳市" }, { "code": "370683", "name": "莱州市" }, { "code": "370684", "name": "蓬莱市" }, { "code": "370685", "name": "招远市" }, { "code": "370686", "name": "栖霞市" }, { "code": "370687", "name": "海阳市" } ] }, { "code": "3707", "name": "潍坊市", "sub": [ { "code": "370702", "name": "潍城区" }, { "code": "370703", "name": "寒亭区" }, { "code": "370704", "name": "坊子区" }, { "code": "370705", "name": "奎文区" }, { "code": "370724", "name": "临朐县" }, { "code": "370725", "name": "昌乐县" }, { "code": "370772", "name": "潍坊滨海经济技术开发区" }, { "code": "370781", "name": "青州市" }, { "code": "370782", "name": "诸城市" }, { "code": "370783", "name": "寿光市" }, { "code": "370784", "name": "安丘市" }, { "code": "370785", "name": "高密市" }, { "code": "370786", "name": "昌邑市" } ] }, { "code": "3708", "name": "济宁市", "sub": [ { "code": "370811", "name": "任城区" }, { "code": "370812", "name": "兖州区" }, { "code": "370826", "name": "微山县" }, { "code": "370827", "name": "鱼台县" }, { "code": "370828", "name": "金乡县" }, { "code": "370829", "name": "嘉祥县" }, { "code": "370830", "name": "汶上县" }, { "code": "370831", "name": "泗水县" }, { "code": "370832", "name": "梁山县" }, { "code": "370871", "name": "济宁高新技术产业开发区" }, { "code": "370881", "name": "曲阜市" }, { "code": "370883", "name": "邹城市" } ] }, { "code": "3709", "name": "泰安市", "sub": [ { "code": "370902", "name": "泰山区" }, { "code": "370911", "name": "岱岳区" }, { "code": "370921", "name": "宁阳县" }, { "code": "370923", "name": "东平县" }, { "code": "370982", "name": "新泰市" }, { "code": "370983", "name": "肥城市" } ] }, { "code": "3710", "name": "威海市", "sub": [ { "code": "371002", "name": "环翠区" }, { "code": "371003", "name": "文登区" }, { "code": "371071", "name": "威海火炬高技术产业开发区" }, { "code": "371072", "name": "威海经济技术开发区" }, { "code": "371073", "name": "威海临港经济技术开发区" }, { "code": "371082", "name": "荣成市" }, { "code": "371083", "name": "乳山市" } ] }, { "code": "3711", "name": "日照市", "sub": [ { "code": "371102", "name": "东港区" }, { "code": "371103", "name": "岚山区" }, { "code": "371121", "name": "五莲县" }, { "code": "371122", "name": "莒县" }, { "code": "371171", "name": "日照经济技术开发区" } ] }, { "code": "3712", "name": "莱芜市", "sub": [ { "code": "371202", "name": "莱城区" }, { "code": "371203", "name": "钢城区" } ] }, { "code": "3713", "name": "临沂市", "sub": [ { "code": "371302", "name": "兰山区" }, { "code": "371311", "name": "罗庄区" }, { "code": "371312", "name": "河东区" }, { "code": "371321", "name": "沂南县" }, { "code": "371322", "name": "郯城县" }, { "code": "371323", "name": "沂水县" }, { "code": "371324", "name": "兰陵县" }, { "code": "371325", "name": "费县" }, { "code": "371326", "name": "平邑县" }, { "code": "371327", "name": "莒南县" }, { "code": "371328", "name": "蒙阴县" }, { "code": "371329", "name": "临沭县" }, { "code": "371371", "name": "临沂高新技术产业开发区" }, { "code": "371372", "name": "临沂经济技术开发区" }, { "code": "371373", "name": "临沂临港经济开发区" } ] }, { "code": "3714", "name": "德州市", "sub": [ { "code": "371402", "name": "德城区" }, { "code": "371403", "name": "陵城区" }, { "code": "371422", "name": "宁津县" }, { "code": "371423", "name": "庆云县" }, { "code": "371424", "name": "临邑县" }, { "code": "371425", "name": "齐河县" }, { "code": "371426", "name": "平原县" }, { "code": "371427", "name": "夏津县" }, { "code": "371428", "name": "武城县" }, { "code": "371471", "name": "德州经济技术开发区" }, { "code": "371472", "name": "德州运河经济开发区" }, { "code": "371481", "name": "乐陵市" }, { "code": "371482", "name": "禹城市" } ] }, { "code": "3715", "name": "聊城市", "sub": [ { "code": "371502", "name": "东昌府区" }, { "code": "371521", "name": "阳谷县" }, { "code": "371522", "name": "莘县" }, { "code": "371523", "name": "茌平县" }, { "code": "371524", "name": "东阿县" }, { "code": "371525", "name": "冠县" }, { "code": "371526", "name": "高唐县" }, { "code": "371581", "name": "临清市" } ] }, { "code": "3716", "name": "滨州市", "sub": [ { "code": "371602", "name": "滨城区" }, { "code": "371603", "name": "沾化区" }, { "code": "371621", "name": "惠民县" }, { "code": "371622", "name": "阳信县" }, { "code": "371623", "name": "无棣县" }, { "code": "371625", "name": "博兴县" }, { "code": "371681", "name": "邹平市" } ] }, { "code": "3717", "name": "菏泽市", "sub": [ { "code": "371702", "name": "牡丹区" }, { "code": "371703", "name": "定陶区" }, { "code": "371721", "name": "曹县" }, { "code": "371722", "name": "单县" }, { "code": "371723", "name": "成武县" }, { "code": "371724", "name": "巨野县" }, { "code": "371725", "name": "郓城县" }, { "code": "371726", "name": "鄄城县" }, { "code": "371728", "name": "东明县" }, { "code": "371771", "name": "菏泽经济技术开发区" }, { "code": "371772", "name": "菏泽高新技术开发区" } ] } ] }, { "code": "41", "name": "河南省", "sub": [ { "code": "4101", "name": "郑州市", "sub": [ { "code": "410102", "name": "中原区" }, { "code": "410103", "name": "二七区" }, { "code": "410104", "name": "管城回族区" }, { "code": "410105", "name": "金水区" }, { "code": "410106", "name": "上街区" }, { "code": "410108", "name": "惠济区" }, { "code": "410122", "name": "中牟县" }, { "code": "410171", "name": "郑州经济技术开发区" }, { "code": "410172", "name": "郑州高新技术产业开发区" }, { "code": "410173", "name": "郑州航空港经济综合实验区" }, { "code": "410181", "name": "巩义市" }, { "code": "410182", "name": "荥阳市" }, { "code": "410183", "name": "新密市" }, { "code": "410184", "name": "新郑市" }, { "code": "410185", "name": "登封市" } ] }, { "code": "4102", "name": "开封市", "sub": [ { "code": "410202", "name": "龙亭区" }, { "code": "410203", "name": "顺河回族区" }, { "code": "410204", "name": "鼓楼区" }, { "code": "410205", "name": "禹王台区" }, { "code": "410212", "name": "祥符区" }, { "code": "410221", "name": "杞县" }, { "code": "410222", "name": "通许县" }, { "code": "410223", "name": "尉氏县" }, { "code": "410225", "name": "兰考县" } ] }, { "code": "4103", "name": "洛阳市", "sub": [ { "code": "410302", "name": "老城区" }, { "code": "410303", "name": "西工区" }, { "code": "410304", "name": "瀍河回族区" }, { "code": "410305", "name": "涧西区" }, { "code": "410306", "name": "吉利区" }, { "code": "410311", "name": "洛龙区" }, { "code": "410322", "name": "孟津县" }, { "code": "410323", "name": "新安县" }, { "code": "410324", "name": "栾川县" }, { "code": "410325", "name": "嵩县" }, { "code": "410326", "name": "汝阳县" }, { "code": "410327", "name": "宜阳县" }, { "code": "410328", "name": "洛宁县" }, { "code": "410329", "name": "伊川县" }, { "code": "410371", "name": "洛阳高新技术产业开发区" }, { "code": "410381", "name": "偃师市" } ] }, { "code": "4104", "name": "平顶山市", "sub": [ { "code": "410402", "name": "新华区" }, { "code": "410403", "name": "卫东区" }, { "code": "410404", "name": "石龙区" }, { "code": "410411", "name": "湛河区" }, { "code": "410421", "name": "宝丰县" }, { "code": "410422", "name": "叶县" }, { "code": "410423", "name": "鲁山县" }, { "code": "410425", "name": "郏县" }, { "code": "410471", "name": "平顶山高新技术产业开发区" }, { "code": "410472", "name": "平顶山市新城区" }, { "code": "410481", "name": "舞钢市" }, { "code": "410482", "name": "汝州市" } ] }, { "code": "4105", "name": "安阳市", "sub": [ { "code": "410502", "name": "文峰区" }, { "code": "410503", "name": "北关区" }, { "code": "410505", "name": "殷都区" }, { "code": "410506", "name": "龙安区" }, { "code": "410522", "name": "安阳县" }, { "code": "410523", "name": "汤阴县" }, { "code": "410526", "name": "滑县" }, { "code": "410527", "name": "内黄县" }, { "code": "410571", "name": "安阳高新技术产业开发区" }, { "code": "410581", "name": "林州市" } ] }, { "code": "4106", "name": "鹤壁市", "sub": [ { "code": "410602", "name": "鹤山区" }, { "code": "410603", "name": "山城区" }, { "code": "410611", "name": "淇滨区" }, { "code": "410621", "name": "浚县" }, { "code": "410622", "name": "淇县" }, { "code": "410671", "name": "鹤壁经济技术开发区" } ] }, { "code": "4107", "name": "新乡市", "sub": [ { "code": "410702", "name": "红旗区" }, { "code": "410703", "name": "卫滨区" }, { "code": "410704", "name": "凤泉区" }, { "code": "410711", "name": "牧野区" }, { "code": "410721", "name": "新乡县" }, { "code": "410724", "name": "获嘉县" }, { "code": "410725", "name": "原阳县" }, { "code": "410726", "name": "延津县" }, { "code": "410727", "name": "封丘县" }, { "code": "410728", "name": "长垣县" }, { "code": "410771", "name": "新乡高新技术产业开发区" }, { "code": "410772", "name": "新乡经济技术开发区" }, { "code": "410773", "name": "新乡市平原城乡一体化示范区" }, { "code": "410781", "name": "卫辉市" }, { "code": "410782", "name": "辉县市" } ] }, { "code": "4108", "name": "焦作市", "sub": [ { "code": "410802", "name": "解放区" }, { "code": "410803", "name": "中站区" }, { "code": "410804", "name": "马村区" }, { "code": "410811", "name": "山阳区" }, { "code": "410821", "name": "修武县" }, { "code": "410822", "name": "博爱县" }, { "code": "410823", "name": "武陟县" }, { "code": "410825", "name": "温县" }, { "code": "410871", "name": "焦作城乡一体化示范区" }, { "code": "410882", "name": "沁阳市" }, { "code": "410883", "name": "孟州市" } ] }, { "code": "4109", "name": "濮阳市", "sub": [ { "code": "410902", "name": "华龙区" }, { "code": "410922", "name": "清丰县" }, { "code": "410923", "name": "南乐县" }, { "code": "410926", "name": "范县" }, { "code": "410927", "name": "台前县" }, { "code": "410928", "name": "濮阳县" }, { "code": "410971", "name": "河南濮阳工业园区" }, { "code": "410972", "name": "濮阳经济技术开发区" } ] }, { "code": "4110", "name": "许昌市", "sub": [ { "code": "411002", "name": "魏都区" }, { "code": "411003", "name": "建安区" }, { "code": "411024", "name": "鄢陵县" }, { "code": "411025", "name": "襄城县" }, { "code": "411071", "name": "许昌经济技术开发区" }, { "code": "411081", "name": "禹州市" }, { "code": "411082", "name": "长葛市" } ] }, { "code": "4111", "name": "漯河市", "sub": [ { "code": "411102", "name": "源汇区" }, { "code": "411103", "name": "郾城区" }, { "code": "411104", "name": "召陵区" }, { "code": "411121", "name": "舞阳县" }, { "code": "411122", "name": "临颍县" }, { "code": "411171", "name": "漯河经济技术开发区" } ] }, { "code": "4112", "name": "三门峡市", "sub": [ { "code": "411202", "name": "湖滨区" }, { "code": "411203", "name": "陕州区" }, { "code": "411221", "name": "渑池县" }, { "code": "411224", "name": "卢氏县" }, { "code": "411271", "name": "河南三门峡经济开发区" }, { "code": "411281", "name": "义马市" }, { "code": "411282", "name": "灵宝市" } ] }, { "code": "4113", "name": "南阳市", "sub": [ { "code": "411302", "name": "宛城区" }, { "code": "411303", "name": "卧龙区" }, { "code": "411321", "name": "南召县" }, { "code": "411322", "name": "方城县" }, { "code": "411323", "name": "西峡县" }, { "code": "411324", "name": "镇平县" }, { "code": "411325", "name": "内乡县" }, { "code": "411326", "name": "淅川县" }, { "code": "411327", "name": "社旗县" }, { "code": "411328", "name": "唐河县" }, { "code": "411329", "name": "新野县" }, { "code": "411330", "name": "桐柏县" }, { "code": "411371", "name": "南阳高新技术产业开发区" }, { "code": "411372", "name": "南阳市城乡一体化示范区" }, { "code": "411381", "name": "邓州市" } ] }, { "code": "4114", "name": "商丘市", "sub": [ { "code": "411402", "name": "梁园区" }, { "code": "411403", "name": "睢阳区" }, { "code": "411421", "name": "民权县" }, { "code": "411422", "name": "睢县" }, { "code": "411423", "name": "宁陵县" }, { "code": "411424", "name": "柘城县" }, { "code": "411425", "name": "虞城县" }, { "code": "411426", "name": "夏邑县" }, { "code": "411471", "name": "豫东综合物流产业聚集区" }, { "code": "411472", "name": "河南商丘经济开发区" }, { "code": "411481", "name": "永城市" } ] }, { "code": "4115", "name": "信阳市", "sub": [ { "code": "411502", "name": "浉河区" }, { "code": "411503", "name": "平桥区" }, { "code": "411521", "name": "罗山县" }, { "code": "411522", "name": "光山县" }, { "code": "411523", "name": "新县" }, { "code": "411524", "name": "商城县" }, { "code": "411525", "name": "固始县" }, { "code": "411526", "name": "潢川县" }, { "code": "411527", "name": "淮滨县" }, { "code": "411528", "name": "息县" }, { "code": "411571", "name": "信阳高新技术产业开发区" } ] }, { "code": "4116", "name": "周口市", "sub": [ { "code": "411602", "name": "川汇区" }, { "code": "411621", "name": "扶沟县" }, { "code": "411622", "name": "西华县" }, { "code": "411623", "name": "商水县" }, { "code": "411624", "name": "沈丘县" }, { "code": "411625", "name": "郸城县" }, { "code": "411626", "name": "淮阳县" }, { "code": "411627", "name": "太康县" }, { "code": "411628", "name": "鹿邑县" }, { "code": "411671", "name": "河南周口经济开发区" }, { "code": "411681", "name": "项城市" } ] }, { "code": "4117", "name": "驻马店市", "sub": [ { "code": "411702", "name": "驿城区" }, { "code": "411721", "name": "西平县" }, { "code": "411722", "name": "上蔡县" }, { "code": "411723", "name": "平舆县" }, { "code": "411724", "name": "正阳县" }, { "code": "411725", "name": "确山县" }, { "code": "411726", "name": "泌阳县" }, { "code": "411727", "name": "汝南县" }, { "code": "411728", "name": "遂平县" }, { "code": "411729", "name": "新蔡县" }, { "code": "411771", "name": "河南驻马店经济开发区" } ] }, { "code": "4190", "name": "省直辖县级行政区划", "sub": [ { "code": "419001", "name": "济源市" } ] } ] }, { "code": "42", "name": "湖北省", "sub": [ { "code": "4201", "name": "武汉市", "sub": [ { "code": "420102", "name": "江岸区" }, { "code": "420103", "name": "江汉区" }, { "code": "420104", "name": "硚口区" }, { "code": "420105", "name": "汉阳区" }, { "code": "420106", "name": "武昌区" }, { "code": "420107", "name": "青山区" }, { "code": "420111", "name": "洪山区" }, { "code": "420112", "name": "东西湖区" }, { "code": "420113", "name": "汉南区" }, { "code": "420114", "name": "蔡甸区" }, { "code": "420115", "name": "江夏区" }, { "code": "420116", "name": "黄陂区" }, { "code": "420117", "name": "新洲区" } ] }, { "code": "4202", "name": "黄石市", "sub": [ { "code": "420202", "name": "黄石港区" }, { "code": "420203", "name": "西塞山区" }, { "code": "420204", "name": "下陆区" }, { "code": "420205", "name": "铁山区" }, { "code": "420222", "name": "阳新县" }, { "code": "420281", "name": "大冶市" } ] }, { "code": "4203", "name": "十堰市", "sub": [ { "code": "420302", "name": "茅箭区" }, { "code": "420303", "name": "张湾区" }, { "code": "420304", "name": "郧阳区" }, { "code": "420322", "name": "郧西县" }, { "code": "420323", "name": "竹山县" }, { "code": "420324", "name": "竹溪县" }, { "code": "420325", "name": "房县" }, { "code": "420381", "name": "丹江口市" } ] }, { "code": "4205", "name": "宜昌市", "sub": [ { "code": "420502", "name": "西陵区" }, { "code": "420503", "name": "伍家岗区" }, { "code": "420504", "name": "点军区" }, { "code": "420505", "name": "猇亭区" }, { "code": "420506", "name": "夷陵区" }, { "code": "420525", "name": "远安县" }, { "code": "420526", "name": "兴山县" }, { "code": "420527", "name": "秭归县" }, { "code": "420528", "name": "长阳土家族自治县" }, { "code": "420529", "name": "五峰土家族自治县" }, { "code": "420581", "name": "宜都市" }, { "code": "420582", "name": "当阳市" }, { "code": "420583", "name": "枝江市" } ] }, { "code": "4206", "name": "襄阳市", "sub": [ { "code": "420602", "name": "襄城区" }, { "code": "420606", "name": "樊城区" }, { "code": "420607", "name": "襄州区" }, { "code": "420624", "name": "南漳县" }, { "code": "420625", "name": "谷城县" }, { "code": "420626", "name": "保康县" }, { "code": "420682", "name": "老河口市" }, { "code": "420683", "name": "枣阳市" }, { "code": "420684", "name": "宜城市" } ] }, { "code": "4207", "name": "鄂州市", "sub": [ { "code": "420702", "name": "梁子湖区" }, { "code": "420703", "name": "华容区" }, { "code": "420704", "name": "鄂城区" } ] }, { "code": "4208", "name": "荆门市", "sub": [ { "code": "420802", "name": "东宝区" }, { "code": "420804", "name": "掇刀区" }, { "code": "420822", "name": "沙洋县" }, { "code": "420881", "name": "钟祥市" }, { "code": "420882", "name": "京山市" } ] }, { "code": "4209", "name": "孝感市", "sub": [ { "code": "420902", "name": "孝南区" }, { "code": "420921", "name": "孝昌县" }, { "code": "420922", "name": "大悟县" }, { "code": "420923", "name": "云梦县" }, { "code": "420981", "name": "应城市" }, { "code": "420982", "name": "安陆市" }, { "code": "420984", "name": "汉川市" } ] }, { "code": "4210", "name": "荆州市", "sub": [ { "code": "421002", "name": "沙市区" }, { "code": "421003", "name": "荆州区" }, { "code": "421022", "name": "公安县" }, { "code": "421023", "name": "监利县" }, { "code": "421024", "name": "江陵县" }, { "code": "421071", "name": "荆州经济技术开发区" }, { "code": "421081", "name": "石首市" }, { "code": "421083", "name": "洪湖市" }, { "code": "421087", "name": "松滋市" } ] }, { "code": "4211", "name": "黄冈市", "sub": [ { "code": "421102", "name": "黄州区" }, { "code": "421121", "name": "团风县" }, { "code": "421122", "name": "红安县" }, { "code": "421123", "name": "罗田县" }, { "code": "421124", "name": "英山县" }, { "code": "421125", "name": "浠水县" }, { "code": "421126", "name": "蕲春县" }, { "code": "421127", "name": "黄梅县" }, { "code": "421171", "name": "龙感湖管理区" }, { "code": "421181", "name": "麻城市" }, { "code": "421182", "name": "武穴市" } ] }, { "code": "4212", "name": "咸宁市", "sub": [ { "code": "421202", "name": "咸安区" }, { "code": "421221", "name": "嘉鱼县" }, { "code": "421222", "name": "通城县" }, { "code": "421223", "name": "崇阳县" }, { "code": "421224", "name": "通山县" }, { "code": "421281", "name": "赤壁市" } ] }, { "code": "4213", "name": "随州市", "sub": [ { "code": "421303", "name": "曾都区" }, { "code": "421321", "name": "随县" }, { "code": "421381", "name": "广水市" } ] }, { "code": "4228", "name": "恩施土家族苗族自治州", "sub": [ { "code": "422801", "name": "恩施市" }, { "code": "422802", "name": "利川市" }, { "code": "422822", "name": "建始县" }, { "code": "422823", "name": "巴东县" }, { "code": "422825", "name": "宣恩县" }, { "code": "422826", "name": "咸丰县" }, { "code": "422827", "name": "来凤县" }, { "code": "422828", "name": "鹤峰县" } ] }, { "code": "4290", "name": "省直辖县级行政区划", "sub": [ { "code": "429004", "name": "仙桃市" }, { "code": "429005", "name": "潜江市" }, { "code": "429006", "name": "天门市" }, { "code": "429021", "name": "神农架林区" } ] } ] }, { "code": "43", "name": "湖南省", "sub": [ { "code": "4301", "name": "长沙市", "sub": [ { "code": "430102", "name": "芙蓉区" }, { "code": "430103", "name": "天心区" }, { "code": "430104", "name": "岳麓区" }, { "code": "430105", "name": "开福区" }, { "code": "430111", "name": "雨花区" }, { "code": "430112", "name": "望城区" }, { "code": "430121", "name": "长沙县" }, { "code": "430181", "name": "浏阳市" }, { "code": "430182", "name": "宁乡市" } ] }, { "code": "4302", "name": "株洲市", "sub": [ { "code": "430202", "name": "荷塘区" }, { "code": "430203", "name": "芦淞区" }, { "code": "430204", "name": "石峰区" }, { "code": "430211", "name": "天元区" }, { "code": "430212", "name": "渌口区" }, { "code": "430223", "name": "攸县" }, { "code": "430224", "name": "茶陵县" }, { "code": "430225", "name": "炎陵县" }, { "code": "430271", "name": "云龙示范区" }, { "code": "430281", "name": "醴陵市" } ] }, { "code": "4303", "name": "湘潭市", "sub": [ { "code": "430302", "name": "雨湖区" }, { "code": "430304", "name": "岳塘区" }, { "code": "430321", "name": "湘潭县" }, { "code": "430371", "name": "湖南湘潭高新技术产业园区" }, { "code": "430372", "name": "湘潭昭山示范区" }, { "code": "430373", "name": "湘潭九华示范区" }, { "code": "430381", "name": "湘乡市" }, { "code": "430382", "name": "韶山市" } ] }, { "code": "4304", "name": "衡阳市", "sub": [ { "code": "430405", "name": "珠晖区" }, { "code": "430406", "name": "雁峰区" }, { "code": "430407", "name": "石鼓区" }, { "code": "430408", "name": "蒸湘区" }, { "code": "430412", "name": "南岳区" }, { "code": "430421", "name": "衡阳县" }, { "code": "430422", "name": "衡南县" }, { "code": "430423", "name": "衡山县" }, { "code": "430424", "name": "衡东县" }, { "code": "430426", "name": "祁东县" }, { "code": "430471", "name": "衡阳综合保税区" }, { "code": "430472", "name": "湖南衡阳高新技术产业园区" }, { "code": "430473", "name": "湖南衡阳松木经济开发区" }, { "code": "430481", "name": "耒阳市" }, { "code": "430482", "name": "常宁市" } ] }, { "code": "4305", "name": "邵阳市", "sub": [ { "code": "430502", "name": "双清区" }, { "code": "430503", "name": "大祥区" }, { "code": "430511", "name": "北塔区" }, { "code": "430521", "name": "邵东县" }, { "code": "430522", "name": "新邵县" }, { "code": "430523", "name": "邵阳县" }, { "code": "430524", "name": "隆回县" }, { "code": "430525", "name": "洞口县" }, { "code": "430527", "name": "绥宁县" }, { "code": "430528", "name": "新宁县" }, { "code": "430529", "name": "城步苗族自治县" }, { "code": "430581", "name": "武冈市" } ] }, { "code": "4306", "name": "岳阳市", "sub": [ { "code": "430602", "name": "岳阳楼区" }, { "code": "430603", "name": "云溪区" }, { "code": "430611", "name": "君山区" }, { "code": "430621", "name": "岳阳县" }, { "code": "430623", "name": "华容县" }, { "code": "430624", "name": "湘阴县" }, { "code": "430626", "name": "平江县" }, { "code": "430671", "name": "岳阳市屈原管理区" }, { "code": "430681", "name": "汨罗市" }, { "code": "430682", "name": "临湘市" } ] }, { "code": "4307", "name": "常德市", "sub": [ { "code": "430702", "name": "武陵区" }, { "code": "430703", "name": "鼎城区" }, { "code": "430721", "name": "安乡县" }, { "code": "430722", "name": "汉寿县" }, { "code": "430723", "name": "澧县" }, { "code": "430724", "name": "临澧县" }, { "code": "430725", "name": "桃源县" }, { "code": "430726", "name": "石门县" }, { "code": "430771", "name": "常德市西洞庭管理区" }, { "code": "430781", "name": "津市市" } ] }, { "code": "4308", "name": "张家界市", "sub": [ { "code": "430802", "name": "永定区" }, { "code": "430811", "name": "武陵源区" }, { "code": "430821", "name": "慈利县" }, { "code": "430822", "name": "桑植县" } ] }, { "code": "4309", "name": "益阳市", "sub": [ { "code": "430902", "name": "资阳区" }, { "code": "430903", "name": "赫山区" }, { "code": "430921", "name": "南县" }, { "code": "430922", "name": "桃江县" }, { "code": "430923", "name": "安化县" }, { "code": "430971", "name": "益阳市大通湖管理区" }, { "code": "430972", "name": "湖南益阳高新技术产业园区" }, { "code": "430981", "name": "沅江市" } ] }, { "code": "4310", "name": "郴州市", "sub": [ { "code": "431002", "name": "北湖区" }, { "code": "431003", "name": "苏仙区" }, { "code": "431021", "name": "桂阳县" }, { "code": "431022", "name": "宜章县" }, { "code": "431023", "name": "永兴县" }, { "code": "431024", "name": "嘉禾县" }, { "code": "431025", "name": "临武县" }, { "code": "431026", "name": "汝城县" }, { "code": "431027", "name": "桂东县" }, { "code": "431028", "name": "安仁县" }, { "code": "431081", "name": "资兴市" } ] }, { "code": "4311", "name": "永州市", "sub": [ { "code": "431102", "name": "零陵区" }, { "code": "431103", "name": "冷水滩区" }, { "code": "431121", "name": "祁阳县" }, { "code": "431122", "name": "东安县" }, { "code": "431123", "name": "双牌县" }, { "code": "431124", "name": "道县" }, { "code": "431125", "name": "江永县" }, { "code": "431126", "name": "宁远县" }, { "code": "431127", "name": "蓝山县" }, { "code": "431128", "name": "新田县" }, { "code": "431129", "name": "江华瑶族自治县" }, { "code": "431171", "name": "永州经济技术开发区" }, { "code": "431172", "name": "永州市金洞管理区" }, { "code": "431173", "name": "永州市回龙圩管理区" } ] }, { "code": "4312", "name": "怀化市", "sub": [ { "code": "431202", "name": "鹤城区" }, { "code": "431221", "name": "中方县" }, { "code": "431222", "name": "沅陵县" }, { "code": "431223", "name": "辰溪县" }, { "code": "431224", "name": "溆浦县" }, { "code": "431225", "name": "会同县" }, { "code": "431226", "name": "麻阳苗族自治县" }, { "code": "431227", "name": "新晃侗族自治县" }, { "code": "431228", "name": "芷江侗族自治县" }, { "code": "431229", "name": "靖州苗族侗族自治县" }, { "code": "431230", "name": "通道侗族自治县" }, { "code": "431271", "name": "怀化市洪江管理区" }, { "code": "431281", "name": "洪江市" } ] }, { "code": "4313", "name": "娄底市", "sub": [ { "code": "431302", "name": "娄星区" }, { "code": "431321", "name": "双峰县" }, { "code": "431322", "name": "新化县" }, { "code": "431381", "name": "冷水江市" }, { "code": "431382", "name": "涟源市" } ] }, { "code": "4331", "name": "湘西土家族苗族自治州", "sub": [ { "code": "433101", "name": "吉首市" }, { "code": "433122", "name": "泸溪县" }, { "code": "433123", "name": "凤凰县" }, { "code": "433124", "name": "花垣县" }, { "code": "433125", "name": "保靖县" }, { "code": "433126", "name": "古丈县" }, { "code": "433127", "name": "永顺县" }, { "code": "433130", "name": "龙山县" }, { "code": "433172", "name": "湖南吉首经济开发区" }, { "code": "433173", "name": "湖南永顺经济开发区" } ] } ] }, { "code": "44", "name": "广东省", "sub": [ { "code": "4401", "name": "广州市", "sub": [ { "code": "440103", "name": "荔湾区" }, { "code": "440104", "name": "越秀区" }, { "code": "440105", "name": "海珠区" }, { "code": "440106", "name": "天河区" }, { "code": "440111", "name": "白云区" }, { "code": "440112", "name": "黄埔区" }, { "code": "440113", "name": "番禺区" }, { "code": "440114", "name": "花都区" }, { "code": "440115", "name": "南沙区" }, { "code": "440117", "name": "从化区" }, { "code": "440118", "name": "增城区" } ] }, { "code": "4402", "name": "韶关市", "sub": [ { "code": "440203", "name": "武江区" }, { "code": "440204", "name": "浈江区" }, { "code": "440205", "name": "曲江区" }, { "code": "440222", "name": "始兴县" }, { "code": "440224", "name": "仁化县" }, { "code": "440229", "name": "翁源县" }, { "code": "440232", "name": "乳源瑶族自治县" }, { "code": "440233", "name": "新丰县" }, { "code": "440281", "name": "乐昌市" }, { "code": "440282", "name": "南雄市" } ] }, { "code": "4403", "name": "深圳市", "sub": [ { "code": "440303", "name": "罗湖区" }, { "code": "440304", "name": "福田区" }, { "code": "440305", "name": "南山区" }, { "code": "440306", "name": "宝安区" }, { "code": "440307", "name": "龙岗区" }, { "code": "440308", "name": "盐田区" }, { "code": "440309", "name": "龙华区" }, { "code": "440310", "name": "坪山区" }, { "code": "440311", "name": "光明区" } ] }, { "code": "4404", "name": "珠海市", "sub": [ { "code": "440402", "name": "香洲区" }, { "code": "440403", "name": "斗门区" }, { "code": "440404", "name": "金湾区" } ] }, { "code": "4405", "name": "汕头市", "sub": [ { "code": "440507", "name": "龙湖区" }, { "code": "440511", "name": "金平区" }, { "code": "440512", "name": "濠江区" }, { "code": "440513", "name": "潮阳区" }, { "code": "440514", "name": "潮南区" }, { "code": "440515", "name": "澄海区" }, { "code": "440523", "name": "南澳县" } ] }, { "code": "4406", "name": "佛山市", "sub": [ { "code": "440604", "name": "禅城区" }, { "code": "440605", "name": "南海区" }, { "code": "440606", "name": "顺德区" }, { "code": "440607", "name": "三水区" }, { "code": "440608", "name": "高明区" } ] }, { "code": "4407", "name": "江门市", "sub": [ { "code": "440703", "name": "蓬江区" }, { "code": "440704", "name": "江海区" }, { "code": "440705", "name": "新会区" }, { "code": "440781", "name": "台山市" }, { "code": "440783", "name": "开平市" }, { "code": "440784", "name": "鹤山市" }, { "code": "440785", "name": "恩平市" } ] }, { "code": "4408", "name": "湛江市", "sub": [ { "code": "440802", "name": "赤坎区" }, { "code": "440803", "name": "霞山区" }, { "code": "440804", "name": "坡头区" }, { "code": "440811", "name": "麻章区" }, { "code": "440823", "name": "遂溪县" }, { "code": "440825", "name": "徐闻县" }, { "code": "440881", "name": "廉江市" }, { "code": "440882", "name": "雷州市" }, { "code": "440883", "name": "吴川市" } ] }, { "code": "4409", "name": "茂名市", "sub": [ { "code": "440902", "name": "茂南区" }, { "code": "440904", "name": "电白区" }, { "code": "440981", "name": "高州市" }, { "code": "440982", "name": "化州市" }, { "code": "440983", "name": "信宜市" } ] }, { "code": "4412", "name": "肇庆市", "sub": [ { "code": "441202", "name": "端州区" }, { "code": "441203", "name": "鼎湖区" }, { "code": "441204", "name": "高要区" }, { "code": "441223", "name": "广宁县" }, { "code": "441224", "name": "怀集县" }, { "code": "441225", "name": "封开县" }, { "code": "441226", "name": "德庆县" }, { "code": "441284", "name": "四会市" } ] }, { "code": "4413", "name": "惠州市", "sub": [ { "code": "441302", "name": "惠城区" }, { "code": "441303", "name": "惠阳区" }, { "code": "441322", "name": "博罗县" }, { "code": "441323", "name": "惠东县" }, { "code": "441324", "name": "龙门县" } ] }, { "code": "4414", "name": "梅州市", "sub": [ { "code": "441402", "name": "梅江区" }, { "code": "441403", "name": "梅县区" }, { "code": "441422", "name": "大埔县" }, { "code": "441423", "name": "丰顺县" }, { "code": "441424", "name": "五华县" }, { "code": "441426", "name": "平远县" }, { "code": "441427", "name": "蕉岭县" }, { "code": "441481", "name": "兴宁市" } ] }, { "code": "4415", "name": "汕尾市", "sub": [ { "code": "441502", "name": "城区" }, { "code": "441521", "name": "海丰县" }, { "code": "441523", "name": "陆河县" }, { "code": "441581", "name": "陆丰市" } ] }, { "code": "4416", "name": "河源市", "sub": [ { "code": "441602", "name": "源城区" }, { "code": "441621", "name": "紫金县" }, { "code": "441622", "name": "龙川县" }, { "code": "441623", "name": "连平县" }, { "code": "441624", "name": "和平县" }, { "code": "441625", "name": "东源县" } ] }, { "code": "4417", "name": "阳江市", "sub": [ { "code": "441702", "name": "江城区" }, { "code": "441704", "name": "阳东区" }, { "code": "441721", "name": "阳西县" }, { "code": "441781", "name": "阳春市" } ] }, { "code": "4418", "name": "清远市", "sub": [ { "code": "441802", "name": "清城区" }, { "code": "441803", "name": "清新区" }, { "code": "441821", "name": "佛冈县" }, { "code": "441823", "name": "阳山县" }, { "code": "441825", "name": "连山壮族瑶族自治县" }, { "code": "441826", "name": "连南瑶族自治县" }, { "code": "441881", "name": "英德市" }, { "code": "441882", "name": "连州市" } ] }, { "code": "4419", "name": "东莞市", "sub": [ { "code": "441900003", "name": "东城街道" }, { "code": "441900004", "name": "南城街道" }, { "code": "441900005", "name": "万江街道" }, { "code": "441900006", "name": "莞城街道" }, { "code": "441900101", "name": "石碣镇" }, { "code": "441900102", "name": "石龙镇" }, { "code": "441900103", "name": "茶山镇" }, { "code": "441900104", "name": "石排镇" }, { "code": "441900105", "name": "企石镇" }, { "code": "441900106", "name": "横沥镇" }, { "code": "441900107", "name": "桥头镇" }, { "code": "441900108", "name": "谢岗镇" }, { "code": "441900109", "name": "东坑镇" }, { "code": "441900110", "name": "常平镇" }, { "code": "441900111", "name": "寮步镇" }, { "code": "441900112", "name": "樟木头镇" }, { "code": "441900113", "name": "大朗镇" }, { "code": "441900114", "name": "黄江镇" }, { "code": "441900115", "name": "清溪镇" }, { "code": "441900116", "name": "塘厦镇" }, { "code": "441900117", "name": "凤岗镇" }, { "code": "441900118", "name": "大岭山镇" }, { "code": "441900119", "name": "长安镇" }, { "code": "441900121", "name": "虎门镇" }, { "code": "441900122", "name": "厚街镇" }, { "code": "441900123", "name": "沙田镇" }, { "code": "441900124", "name": "道滘镇" }, { "code": "441900125", "name": "洪梅镇" }, { "code": "441900126", "name": "麻涌镇" }, { "code": "441900127", "name": "望牛墩镇" }, { "code": "441900128", "name": "中堂镇" }, { "code": "441900129", "name": "高埗镇" }, { "code": "441900401", "name": "松山湖管委会" }, { "code": "441900402", "name": "东莞港" }, { "code": "441900403", "name": "东莞生态园" } ] }, { "code": "4420", "name": "中山市", "sub": [ { "code": "442000001", "name": "石岐区街道" }, { "code": "442000002", "name": "东区街道" }, { "code": "442000003", "name": "火炬开发区街道" }, { "code": "442000004", "name": "西区街道" }, { "code": "442000005", "name": "南区街道" }, { "code": "442000006", "name": "五桂山街道" }, { "code": "442000100", "name": "小榄镇" }, { "code": "442000101", "name": "黄圃镇" }, { "code": "442000102", "name": "民众镇" }, { "code": "442000103", "name": "东凤镇" }, { "code": "442000104", "name": "东升镇" }, { "code": "442000105", "name": "古镇镇" }, { "code": "442000106", "name": "沙溪镇" }, { "code": "442000107", "name": "坦洲镇" }, { "code": "442000108", "name": "港口镇" }, { "code": "442000109", "name": "三角镇" }, { "code": "442000110", "name": "横栏镇" }, { "code": "442000111", "name": "南头镇" }, { "code": "442000112", "name": "阜沙镇" }, { "code": "442000113", "name": "南朗镇" }, { "code": "442000114", "name": "三乡镇" }, { "code": "442000115", "name": "板芙镇" }, { "code": "442000116", "name": "大涌镇" }, { "code": "442000117", "name": "神湾镇" } ] }, { "code": "4451", "name": "潮州市", "sub": [ { "code": "445102", "name": "湘桥区" }, { "code": "445103", "name": "潮安区" }, { "code": "445122", "name": "饶平县" } ] }, { "code": "4452", "name": "揭阳市", "sub": [ { "code": "445202", "name": "榕城区" }, { "code": "445203", "name": "揭东区" }, { "code": "445222", "name": "揭西县" }, { "code": "445224", "name": "惠来县" }, { "code": "445281", "name": "普宁市" } ] }, { "code": "4453", "name": "云浮市", "sub": [ { "code": "445302", "name": "云城区" }, { "code": "445303", "name": "云安区" }, { "code": "445321", "name": "新兴县" }, { "code": "445322", "name": "郁南县" }, { "code": "445381", "name": "罗定市" } ] } ] }, { "code": "45", "name": "广西壮族自治区", "sub": [ { "code": "4501", "name": "南宁市", "sub": [ { "code": "450102", "name": "兴宁区" }, { "code": "450103", "name": "青秀区" }, { "code": "450105", "name": "江南区" }, { "code": "450107", "name": "西乡塘区" }, { "code": "450108", "name": "良庆区" }, { "code": "450109", "name": "邕宁区" }, { "code": "450110", "name": "武鸣区" }, { "code": "450123", "name": "隆安县" }, { "code": "450124", "name": "马山县" }, { "code": "450125", "name": "上林县" }, { "code": "450126", "name": "宾阳县" }, { "code": "450127", "name": "横县" } ] }, { "code": "4502", "name": "柳州市", "sub": [ { "code": "450202", "name": "城中区" }, { "code": "450203", "name": "鱼峰区" }, { "code": "450204", "name": "柳南区" }, { "code": "450205", "name": "柳北区" }, { "code": "450206", "name": "柳江区" }, { "code": "450222", "name": "柳城县" }, { "code": "450223", "name": "鹿寨县" }, { "code": "450224", "name": "融安县" }, { "code": "450225", "name": "融水苗族自治县" }, { "code": "450226", "name": "三江侗族自治县" } ] }, { "code": "4503", "name": "桂林市", "sub": [ { "code": "450302", "name": "秀峰区" }, { "code": "450303", "name": "叠彩区" }, { "code": "450304", "name": "象山区" }, { "code": "450305", "name": "七星区" }, { "code": "450311", "name": "雁山区" }, { "code": "450312", "name": "临桂区" }, { "code": "450321", "name": "阳朔县" }, { "code": "450323", "name": "灵川县" }, { "code": "450324", "name": "全州县" }, { "code": "450325", "name": "兴安县" }, { "code": "450326", "name": "永福县" }, { "code": "450327", "name": "灌阳县" }, { "code": "450328", "name": "龙胜各族自治县" }, { "code": "450329", "name": "资源县" }, { "code": "450330", "name": "平乐县" }, { "code": "450332", "name": "恭城瑶族自治县" }, { "code": "450381", "name": "荔浦市" } ] }, { "code": "4504", "name": "梧州市", "sub": [ { "code": "450403", "name": "万秀区" }, { "code": "450405", "name": "长洲区" }, { "code": "450406", "name": "龙圩区" }, { "code": "450421", "name": "苍梧县" }, { "code": "450422", "name": "藤县" }, { "code": "450423", "name": "蒙山县" }, { "code": "450481", "name": "岑溪市" } ] }, { "code": "4505", "name": "北海市", "sub": [ { "code": "450502", "name": "海城区" }, { "code": "450503", "name": "银海区" }, { "code": "450512", "name": "铁山港区" }, { "code": "450521", "name": "合浦县" } ] }, { "code": "4506", "name": "防城港市", "sub": [ { "code": "450602", "name": "港口区" }, { "code": "450603", "name": "防城区" }, { "code": "450621", "name": "上思县" }, { "code": "450681", "name": "东兴市" } ] }, { "code": "4507", "name": "钦州市", "sub": [ { "code": "450702", "name": "钦南区" }, { "code": "450703", "name": "钦北区" }, { "code": "450721", "name": "灵山县" }, { "code": "450722", "name": "浦北县" } ] }, { "code": "4508", "name": "贵港市", "sub": [ { "code": "450802", "name": "港北区" }, { "code": "450803", "name": "港南区" }, { "code": "450804", "name": "覃塘区" }, { "code": "450821", "name": "平南县" }, { "code": "450881", "name": "桂平市" } ] }, { "code": "4509", "name": "玉林市", "sub": [ { "code": "450902", "name": "玉州区" }, { "code": "450903", "name": "福绵区" }, { "code": "450921", "name": "容县" }, { "code": "450922", "name": "陆川县" }, { "code": "450923", "name": "博白县" }, { "code": "450924", "name": "兴业县" }, { "code": "450981", "name": "北流市" } ] }, { "code": "4510", "name": "百色市", "sub": [ { "code": "451002", "name": "右江区" }, { "code": "451021", "name": "田阳县" }, { "code": "451022", "name": "田东县" }, { "code": "451023", "name": "平果县" }, { "code": "451024", "name": "德保县" }, { "code": "451026", "name": "那坡县" }, { "code": "451027", "name": "凌云县" }, { "code": "451028", "name": "乐业县" }, { "code": "451029", "name": "田林县" }, { "code": "451030", "name": "西林县" }, { "code": "451031", "name": "隆林各族自治县" }, { "code": "451081", "name": "靖西市" } ] }, { "code": "4511", "name": "贺州市", "sub": [ { "code": "451102", "name": "八步区" }, { "code": "451103", "name": "平桂区" }, { "code": "451121", "name": "昭平县" }, { "code": "451122", "name": "钟山县" }, { "code": "451123", "name": "富川瑶族自治县" } ] }, { "code": "4512", "name": "河池市", "sub": [ { "code": "451202", "name": "金城江区" }, { "code": "451203", "name": "宜州区" }, { "code": "451221", "name": "南丹县" }, { "code": "451222", "name": "天峨县" }, { "code": "451223", "name": "凤山县" }, { "code": "451224", "name": "东兰县" }, { "code": "451225", "name": "罗城仫佬族自治县" }, { "code": "451226", "name": "环江毛南族自治县" }, { "code": "451227", "name": "巴马瑶族自治县" }, { "code": "451228", "name": "都安瑶族自治县" }, { "code": "451229", "name": "大化瑶族自治县" } ] }, { "code": "4513", "name": "来宾市", "sub": [ { "code": "451302", "name": "兴宾区" }, { "code": "451321", "name": "忻城县" }, { "code": "451322", "name": "象州县" }, { "code": "451323", "name": "武宣县" }, { "code": "451324", "name": "金秀瑶族自治县" }, { "code": "451381", "name": "合山市" } ] }, { "code": "4514", "name": "崇左市", "sub": [ { "code": "451402", "name": "江州区" }, { "code": "451421", "name": "扶绥县" }, { "code": "451422", "name": "宁明县" }, { "code": "451423", "name": "龙州县" }, { "code": "451424", "name": "大新县" }, { "code": "451425", "name": "天等县" }, { "code": "451481", "name": "凭祥市" } ] } ] }, { "code": "46", "name": "海南省", "sub": [ { "code": "4601", "name": "海口市", "sub": [ { "code": "460105", "name": "秀英区" }, { "code": "460106", "name": "龙华区" }, { "code": "460107", "name": "琼山区" }, { "code": "460108", "name": "美兰区" } ] }, { "code": "4602", "name": "三亚市", "sub": [ { "code": "460202", "name": "海棠区" }, { "code": "460203", "name": "吉阳区" }, { "code": "460204", "name": "天涯区" }, { "code": "460205", "name": "崖州区" } ] }, { "code": "4603", "name": "三沙市", "sub": [ { "code": "460321", "name": "西沙群岛" }, { "code": "460322", "name": "南沙群岛" }, { "code": "460323", "name": "中沙群岛的岛礁及其海域" } ] }, { "code": "4604", "name": "儋州市", "sub": [ { "code": "460400100", "name": "那大镇" }, { "code": "460400101", "name": "和庆镇" }, { "code": "460400102", "name": "南丰镇" }, { "code": "460400103", "name": "大成镇" }, { "code": "460400104", "name": "雅星镇" }, { "code": "460400105", "name": "兰洋镇" }, { "code": "460400106", "name": "光村镇" }, { "code": "460400107", "name": "木棠镇" }, { "code": "460400108", "name": "海头镇" }, { "code": "460400109", "name": "峨蔓镇" }, { "code": "460400111", "name": "王五镇" }, { "code": "460400112", "name": "白马井镇" }, { "code": "460400113", "name": "中和镇" }, { "code": "460400114", "name": "排浦镇" }, { "code": "460400115", "name": "东成镇" }, { "code": "460400116", "name": "新州镇" }, { "code": "460400499", "name": "洋浦经济开发区" }, { "code": "460400500", "name": "华南热作学院" } ] }, { "code": "4690", "name": "省直辖县级行政区划", "sub": [ { "code": "469001", "name": "五指山市" }, { "code": "469002", "name": "琼海市" }, { "code": "469005", "name": "文昌市" }, { "code": "469006", "name": "万宁市" }, { "code": "469007", "name": "东方市" }, { "code": "469021", "name": "定安县" }, { "code": "469022", "name": "屯昌县" }, { "code": "469023", "name": "澄迈县" }, { "code": "469024", "name": "临高县" }, { "code": "469025", "name": "白沙黎族自治县" }, { "code": "469026", "name": "昌江黎族自治县" }, { "code": "469027", "name": "乐东黎族自治县" }, { "code": "469028", "name": "陵水黎族自治县" }, { "code": "469029", "name": "保亭黎族苗族自治县" }, { "code": "469030", "name": "琼中黎族苗族自治县" } ] } ] }, { "code": "50", "name": "重庆市", "sub": [ { "code": "5001", "name": "重庆市", "sub": [ { "code": "500101", "name": "万州区" }, { "code": "500102", "name": "涪陵区" }, { "code": "500103", "name": "渝中区" }, { "code": "500104", "name": "大渡口区" }, { "code": "500105", "name": "江北区" }, { "code": "500106", "name": "沙坪坝区" }, { "code": "500107", "name": "九龙坡区" }, { "code": "500108", "name": "南岸区" }, { "code": "500109", "name": "北碚区" }, { "code": "500110", "name": "綦江区" }, { "code": "500111", "name": "大足区" }, { "code": "500112", "name": "渝北区" }, { "code": "500113", "name": "巴南区" }, { "code": "500114", "name": "黔江区" }, { "code": "500115", "name": "长寿区" }, { "code": "500116", "name": "江津区" }, { "code": "500117", "name": "合川区" }, { "code": "500118", "name": "永川区" }, { "code": "500119", "name": "南川区" }, { "code": "500120", "name": "璧山区" }, { "code": "500151", "name": "铜梁区" }, { "code": "500152", "name": "潼南区" }, { "code": "500153", "name": "荣昌区" }, { "code": "500154", "name": "开州区" }, { "code": "500155", "name": "梁平区" }, { "code": "500156", "name": "武隆区" } ] }, { "code": "5002", "name": "县", "sub": [ { "code": "500229", "name": "城口县" }, { "code": "500230", "name": "丰都县" }, { "code": "500231", "name": "垫江县" }, { "code": "500233", "name": "忠县" }, { "code": "500235", "name": "云阳县" }, { "code": "500236", "name": "奉节县" }, { "code": "500237", "name": "巫山县" }, { "code": "500238", "name": "巫溪县" }, { "code": "500240", "name": "石柱土家族自治县" }, { "code": "500241", "name": "秀山土家族苗族自治县" }, { "code": "500242", "name": "酉阳土家族苗族自治县" }, { "code": "500243", "name": "彭水苗族土家族自治县" } ] } ] }, { "code": "51", "name": "四川省", "sub": [ { "code": "5101", "name": "成都市", "sub": [ { "code": "510104", "name": "锦江区" }, { "code": "510105", "name": "青羊区" }, { "code": "510106", "name": "金牛区" }, { "code": "510107", "name": "武侯区" }, { "code": "510108", "name": "成华区" }, { "code": "510112", "name": "龙泉驿区" }, { "code": "510113", "name": "青白江区" }, { "code": "510114", "name": "新都区" }, { "code": "510115", "name": "温江区" }, { "code": "510116", "name": "双流区" }, { "code": "510117", "name": "郫都区" }, { "code": "510121", "name": "金堂县" }, { "code": "510129", "name": "大邑县" }, { "code": "510131", "name": "蒲江县" }, { "code": "510132", "name": "新津县" }, { "code": "510181", "name": "都江堰市" }, { "code": "510182", "name": "彭州市" }, { "code": "510183", "name": "邛崃市" }, { "code": "510184", "name": "崇州市" }, { "code": "510185", "name": "简阳市" } ] }, { "code": "5103", "name": "自贡市", "sub": [ { "code": "510302", "name": "自流井区" }, { "code": "510303", "name": "贡井区" }, { "code": "510304", "name": "大安区" }, { "code": "510311", "name": "沿滩区" }, { "code": "510321", "name": "荣县" }, { "code": "510322", "name": "富顺县" } ] }, { "code": "5104", "name": "攀枝花市", "sub": [ { "code": "510402", "name": "东区" }, { "code": "510403", "name": "西区" }, { "code": "510411", "name": "仁和区" }, { "code": "510421", "name": "米易县" }, { "code": "510422", "name": "盐边县" } ] }, { "code": "5105", "name": "泸州市", "sub": [ { "code": "510502", "name": "江阳区" }, { "code": "510503", "name": "纳溪区" }, { "code": "510504", "name": "龙马潭区" }, { "code": "510521", "name": "泸县" }, { "code": "510522", "name": "合江县" }, { "code": "510524", "name": "叙永县" }, { "code": "510525", "name": "古蔺县" } ] }, { "code": "5106", "name": "德阳市", "sub": [ { "code": "510603", "name": "旌阳区" }, { "code": "510604", "name": "罗江区" }, { "code": "510623", "name": "中江县" }, { "code": "510681", "name": "广汉市" }, { "code": "510682", "name": "什邡市" }, { "code": "510683", "name": "绵竹市" } ] }, { "code": "5107", "name": "绵阳市", "sub": [ { "code": "510703", "name": "涪城区" }, { "code": "510704", "name": "游仙区" }, { "code": "510705", "name": "安州区" }, { "code": "510722", "name": "三台县" }, { "code": "510723", "name": "盐亭县" }, { "code": "510725", "name": "梓潼县" }, { "code": "510726", "name": "北川羌族自治县" }, { "code": "510727", "name": "平武县" }, { "code": "510781", "name": "江油市" } ] }, { "code": "5108", "name": "广元市", "sub": [ { "code": "510802", "name": "利州区" }, { "code": "510811", "name": "昭化区" }, { "code": "510812", "name": "朝天区" }, { "code": "510821", "name": "旺苍县" }, { "code": "510822", "name": "青川县" }, { "code": "510823", "name": "剑阁县" }, { "code": "510824", "name": "苍溪县" } ] }, { "code": "5109", "name": "遂宁市", "sub": [ { "code": "510903", "name": "船山区" }, { "code": "510904", "name": "安居区" }, { "code": "510921", "name": "蓬溪县" }, { "code": "510922", "name": "射洪县" }, { "code": "510923", "name": "大英县" } ] }, { "code": "5110", "name": "内江市", "sub": [ { "code": "511002", "name": "市中区" }, { "code": "511011", "name": "东兴区" }, { "code": "511024", "name": "威远县" }, { "code": "511025", "name": "资中县" }, { "code": "511071", "name": "内江经济开发区" }, { "code": "511083", "name": "隆昌市" } ] }, { "code": "5111", "name": "乐山市", "sub": [ { "code": "511102", "name": "市中区" }, { "code": "511111", "name": "沙湾区" }, { "code": "511112", "name": "五通桥区" }, { "code": "511113", "name": "金口河区" }, { "code": "511123", "name": "犍为县" }, { "code": "511124", "name": "井研县" }, { "code": "511126", "name": "夹江县" }, { "code": "511129", "name": "沐川县" }, { "code": "511132", "name": "峨边彝族自治县" }, { "code": "511133", "name": "马边彝族自治县" }, { "code": "511181", "name": "峨眉山市" } ] }, { "code": "5113", "name": "南充市", "sub": [ { "code": "511302", "name": "顺庆区" }, { "code": "511303", "name": "高坪区" }, { "code": "511304", "name": "嘉陵区" }, { "code": "511321", "name": "南部县" }, { "code": "511322", "name": "营山县" }, { "code": "511323", "name": "蓬安县" }, { "code": "511324", "name": "仪陇县" }, { "code": "511325", "name": "西充县" }, { "code": "511381", "name": "阆中市" } ] }, { "code": "5114", "name": "眉山市", "sub": [ { "code": "511402", "name": "东坡区" }, { "code": "511403", "name": "彭山区" }, { "code": "511421", "name": "仁寿县" }, { "code": "511423", "name": "洪雅县" }, { "code": "511424", "name": "丹棱县" }, { "code": "511425", "name": "青神县" } ] }, { "code": "5115", "name": "宜宾市", "sub": [ { "code": "511502", "name": "翠屏区" }, { "code": "511503", "name": "南溪区" }, { "code": "511504", "name": "叙州区" }, { "code": "511523", "name": "江安县" }, { "code": "511524", "name": "长宁县" }, { "code": "511525", "name": "高县" }, { "code": "511526", "name": "珙县" }, { "code": "511527", "name": "筠连县" }, { "code": "511528", "name": "兴文县" }, { "code": "511529", "name": "屏山县" } ] }, { "code": "5116", "name": "广安市", "sub": [ { "code": "511602", "name": "广安区" }, { "code": "511603", "name": "前锋区" }, { "code": "511621", "name": "岳池县" }, { "code": "511622", "name": "武胜县" }, { "code": "511623", "name": "邻水县" }, { "code": "511681", "name": "华蓥市" } ] }, { "code": "5117", "name": "达州市", "sub": [ { "code": "511702", "name": "通川区" }, { "code": "511703", "name": "达川区" }, { "code": "511722", "name": "宣汉县" }, { "code": "511723", "name": "开江县" }, { "code": "511724", "name": "大竹县" }, { "code": "511725", "name": "渠县" }, { "code": "511771", "name": "达州经济开发区" }, { "code": "511781", "name": "万源市" } ] }, { "code": "5118", "name": "雅安市", "sub": [ { "code": "511802", "name": "雨城区" }, { "code": "511803", "name": "名山区" }, { "code": "511822", "name": "荥经县" }, { "code": "511823", "name": "汉源县" }, { "code": "511824", "name": "石棉县" }, { "code": "511825", "name": "天全县" }, { "code": "511826", "name": "芦山县" }, { "code": "511827", "name": "宝兴县" } ] }, { "code": "5119", "name": "巴中市", "sub": [ { "code": "511902", "name": "巴州区" }, { "code": "511903", "name": "恩阳区" }, { "code": "511921", "name": "通江县" }, { "code": "511922", "name": "南江县" }, { "code": "511923", "name": "平昌县" }, { "code": "511971", "name": "巴中经济开发区" } ] }, { "code": "5120", "name": "资阳市", "sub": [ { "code": "512002", "name": "雁江区" }, { "code": "512021", "name": "安岳县" }, { "code": "512022", "name": "乐至县" } ] }, { "code": "5132", "name": "阿坝藏族羌族自治州", "sub": [ { "code": "513201", "name": "马尔康市" }, { "code": "513221", "name": "汶川县" }, { "code": "513222", "name": "理县" }, { "code": "513223", "name": "茂县" }, { "code": "513224", "name": "松潘县" }, { "code": "513225", "name": "九寨沟县" }, { "code": "513226", "name": "金川县" }, { "code": "513227", "name": "小金县" }, { "code": "513228", "name": "黑水县" }, { "code": "513230", "name": "壤塘县" }, { "code": "513231", "name": "阿坝县" }, { "code": "513232", "name": "若尔盖县" }, { "code": "513233", "name": "红原县" } ] }, { "code": "5133", "name": "甘孜藏族自治州", "sub": [ { "code": "513301", "name": "康定市" }, { "code": "513322", "name": "泸定县" }, { "code": "513323", "name": "丹巴县" }, { "code": "513324", "name": "九龙县" }, { "code": "513325", "name": "雅江县" }, { "code": "513326", "name": "道孚县" }, { "code": "513327", "name": "炉霍县" }, { "code": "513328", "name": "甘孜县" }, { "code": "513329", "name": "新龙县" }, { "code": "513330", "name": "德格县" }, { "code": "513331", "name": "白玉县" }, { "code": "513332", "name": "石渠县" }, { "code": "513333", "name": "色达县" }, { "code": "513334", "name": "理塘县" }, { "code": "513335", "name": "巴塘县" }, { "code": "513336", "name": "乡城县" }, { "code": "513337", "name": "稻城县" }, { "code": "513338", "name": "得荣县" } ] }, { "code": "5134", "name": "凉山彝族自治州", "sub": [ { "code": "513401", "name": "西昌市" }, { "code": "513422", "name": "木里藏族自治县" }, { "code": "513423", "name": "盐源县" }, { "code": "513424", "name": "德昌县" }, { "code": "513425", "name": "会理县" }, { "code": "513426", "name": "会东县" }, { "code": "513427", "name": "宁南县" }, { "code": "513428", "name": "普格县" }, { "code": "513429", "name": "布拖县" }, { "code": "513430", "name": "金阳县" }, { "code": "513431", "name": "昭觉县" }, { "code": "513432", "name": "喜德县" }, { "code": "513433", "name": "冕宁县" }, { "code": "513434", "name": "越西县" }, { "code": "513435", "name": "甘洛县" }, { "code": "513436", "name": "美姑县" }, { "code": "513437", "name": "雷波县" } ] } ] }, { "code": "52", "name": "贵州省", "sub": [ { "code": "5201", "name": "贵阳市", "sub": [ { "code": "520102", "name": "南明区" }, { "code": "520103", "name": "云岩区" }, { "code": "520111", "name": "花溪区" }, { "code": "520112", "name": "乌当区" }, { "code": "520113", "name": "白云区" }, { "code": "520115", "name": "观山湖区" }, { "code": "520121", "name": "开阳县" }, { "code": "520122", "name": "息烽县" }, { "code": "520123", "name": "修文县" }, { "code": "520181", "name": "清镇市" } ] }, { "code": "5202", "name": "六盘水市", "sub": [ { "code": "520201", "name": "钟山区" }, { "code": "520203", "name": "六枝特区" }, { "code": "520221", "name": "水城县" }, { "code": "520281", "name": "盘州市" } ] }, { "code": "5203", "name": "遵义市", "sub": [ { "code": "520302", "name": "红花岗区" }, { "code": "520303", "name": "汇川区" }, { "code": "520304", "name": "播州区" }, { "code": "520322", "name": "桐梓县" }, { "code": "520323", "name": "绥阳县" }, { "code": "520324", "name": "正安县" }, { "code": "520325", "name": "道真仡佬族苗族自治县" }, { "code": "520326", "name": "务川仡佬族苗族自治县" }, { "code": "520327", "name": "凤冈县" }, { "code": "520328", "name": "湄潭县" }, { "code": "520329", "name": "余庆县" }, { "code": "520330", "name": "习水县" }, { "code": "520381", "name": "赤水市" }, { "code": "520382", "name": "仁怀市" } ] }, { "code": "5204", "name": "安顺市", "sub": [ { "code": "520402", "name": "西秀区" }, { "code": "520403", "name": "平坝区" }, { "code": "520422", "name": "普定县" }, { "code": "520423", "name": "镇宁布依族苗族自治县" }, { "code": "520424", "name": "关岭布依族苗族自治县" }, { "code": "520425", "name": "紫云苗族布依族自治县" } ] }, { "code": "5205", "name": "毕节市", "sub": [ { "code": "520502", "name": "七星关区" }, { "code": "520521", "name": "大方县" }, { "code": "520522", "name": "黔西县" }, { "code": "520523", "name": "金沙县" }, { "code": "520524", "name": "织金县" }, { "code": "520525", "name": "纳雍县" }, { "code": "520526", "name": "威宁彝族回族苗族自治县" }, { "code": "520527", "name": "赫章县" } ] }, { "code": "5206", "name": "铜仁市", "sub": [ { "code": "520602", "name": "碧江区" }, { "code": "520603", "name": "万山区" }, { "code": "520621", "name": "江口县" }, { "code": "520622", "name": "玉屏侗族自治县" }, { "code": "520623", "name": "石阡县" }, { "code": "520624", "name": "思南县" }, { "code": "520625", "name": "印江土家族苗族自治县" }, { "code": "520626", "name": "德江县" }, { "code": "520627", "name": "沿河土家族自治县" }, { "code": "520628", "name": "松桃苗族自治县" } ] }, { "code": "5223", "name": "黔西南布依族苗族自治州", "sub": [ { "code": "522301", "name": "兴义市" }, { "code": "522302", "name": "兴仁市" }, { "code": "522323", "name": "普安县" }, { "code": "522324", "name": "晴隆县" }, { "code": "522325", "name": "贞丰县" }, { "code": "522326", "name": "望谟县" }, { "code": "522327", "name": "册亨县" }, { "code": "522328", "name": "安龙县" } ] }, { "code": "5226", "name": "黔东南苗族侗族自治州", "sub": [ { "code": "522601", "name": "凯里市" }, { "code": "522622", "name": "黄平县" }, { "code": "522623", "name": "施秉县" }, { "code": "522624", "name": "三穗县" }, { "code": "522625", "name": "镇远县" }, { "code": "522626", "name": "岑巩县" }, { "code": "522627", "name": "天柱县" }, { "code": "522628", "name": "锦屏县" }, { "code": "522629", "name": "剑河县" }, { "code": "522630", "name": "台江县" }, { "code": "522631", "name": "黎平县" }, { "code": "522632", "name": "榕江县" }, { "code": "522633", "name": "从江县" }, { "code": "522634", "name": "雷山县" }, { "code": "522635", "name": "麻江县" }, { "code": "522636", "name": "丹寨县" } ] }, { "code": "5227", "name": "黔南布依族苗族自治州", "sub": [ { "code": "522701", "name": "都匀市" }, { "code": "522702", "name": "福泉市" }, { "code": "522722", "name": "荔波县" }, { "code": "522723", "name": "贵定县" }, { "code": "522725", "name": "瓮安县" }, { "code": "522726", "name": "独山县" }, { "code": "522727", "name": "平塘县" }, { "code": "522728", "name": "罗甸县" }, { "code": "522729", "name": "长顺县" }, { "code": "522730", "name": "龙里县" }, { "code": "522731", "name": "惠水县" }, { "code": "522732", "name": "三都水族自治县" } ] } ] }, { "code": "53", "name": "云南省", "sub": [ { "code": "5301", "name": "昆明市", "sub": [ { "code": "530102", "name": "五华区" }, { "code": "530103", "name": "盘龙区" }, { "code": "530111", "name": "官渡区" }, { "code": "530112", "name": "西山区" }, { "code": "530113", "name": "东川区" }, { "code": "530114", "name": "呈贡区" }, { "code": "530115", "name": "晋宁区" }, { "code": "530124", "name": "富民县" }, { "code": "530125", "name": "宜良县" }, { "code": "530126", "name": "石林彝族自治县" }, { "code": "530127", "name": "嵩明县" }, { "code": "530128", "name": "禄劝彝族苗族自治县" }, { "code": "530129", "name": "寻甸回族彝族自治县" }, { "code": "530181", "name": "安宁市" } ] }, { "code": "5303", "name": "曲靖市", "sub": [ { "code": "530302", "name": "麒麟区" }, { "code": "530303", "name": "沾益区" }, { "code": "530304", "name": "马龙区" }, { "code": "530322", "name": "陆良县" }, { "code": "530323", "name": "师宗县" }, { "code": "530324", "name": "罗平县" }, { "code": "530325", "name": "富源县" }, { "code": "530326", "name": "会泽县" }, { "code": "530381", "name": "宣威市" } ] }, { "code": "5304", "name": "玉溪市", "sub": [ { "code": "530402", "name": "红塔区" }, { "code": "530403", "name": "江川区" }, { "code": "530422", "name": "澄江县" }, { "code": "530423", "name": "通海县" }, { "code": "530424", "name": "华宁县" }, { "code": "530425", "name": "易门县" }, { "code": "530426", "name": "峨山彝族自治县" }, { "code": "530427", "name": "新平彝族傣族自治县" }, { "code": "530428", "name": "元江哈尼族彝族傣族自治县" } ] }, { "code": "5305", "name": "保山市", "sub": [ { "code": "530502", "name": "隆阳区" }, { "code": "530521", "name": "施甸县" }, { "code": "530523", "name": "龙陵县" }, { "code": "530524", "name": "昌宁县" }, { "code": "530581", "name": "腾冲市" } ] }, { "code": "5306", "name": "昭通市", "sub": [ { "code": "530602", "name": "昭阳区" }, { "code": "530621", "name": "鲁甸县" }, { "code": "530622", "name": "巧家县" }, { "code": "530623", "name": "盐津县" }, { "code": "530624", "name": "大关县" }, { "code": "530625", "name": "永善县" }, { "code": "530626", "name": "绥江县" }, { "code": "530627", "name": "镇雄县" }, { "code": "530628", "name": "彝良县" }, { "code": "530629", "name": "威信县" }, { "code": "530681", "name": "水富市" } ] }, { "code": "5307", "name": "丽江市", "sub": [ { "code": "530702", "name": "古城区" }, { "code": "530721", "name": "玉龙纳西族自治县" }, { "code": "530722", "name": "永胜县" }, { "code": "530723", "name": "华坪县" }, { "code": "530724", "name": "宁蒗彝族自治县" } ] }, { "code": "5308", "name": "普洱市", "sub": [ { "code": "530802", "name": "思茅区" }, { "code": "530821", "name": "宁洱哈尼族彝族自治县" }, { "code": "530822", "name": "墨江哈尼族自治县" }, { "code": "530823", "name": "景东彝族自治县" }, { "code": "530824", "name": "景谷傣族彝族自治县" }, { "code": "530825", "name": "镇沅彝族哈尼族拉祜族自治县" }, { "code": "530826", "name": "江城哈尼族彝族自治县" }, { "code": "530827", "name": "孟连傣族拉祜族佤族自治县" }, { "code": "530828", "name": "澜沧拉祜族自治县" }, { "code": "530829", "name": "西盟佤族自治县" } ] }, { "code": "5309", "name": "临沧市", "sub": [ { "code": "530902", "name": "临翔区" }, { "code": "530921", "name": "凤庆县" }, { "code": "530922", "name": "云县" }, { "code": "530923", "name": "永德县" }, { "code": "530924", "name": "镇康县" }, { "code": "530925", "name": "双江拉祜族佤族布朗族傣族自治县" }, { "code": "530926", "name": "耿马傣族佤族自治县" }, { "code": "530927", "name": "沧源佤族自治县" } ] }, { "code": "5323", "name": "楚雄彝族自治州", "sub": [ { "code": "532301", "name": "楚雄市" }, { "code": "532322", "name": "双柏县" }, { "code": "532323", "name": "牟定县" }, { "code": "532324", "name": "南华县" }, { "code": "532325", "name": "姚安县" }, { "code": "532326", "name": "大姚县" }, { "code": "532327", "name": "永仁县" }, { "code": "532328", "name": "元谋县" }, { "code": "532329", "name": "武定县" }, { "code": "532331", "name": "禄丰县" } ] }, { "code": "5325", "name": "红河哈尼族彝族自治州", "sub": [ { "code": "532501", "name": "个旧市" }, { "code": "532502", "name": "开远市" }, { "code": "532503", "name": "蒙自市" }, { "code": "532504", "name": "弥勒市" }, { "code": "532523", "name": "屏边苗族自治县" }, { "code": "532524", "name": "建水县" }, { "code": "532525", "name": "石屏县" }, { "code": "532527", "name": "泸西县" }, { "code": "532528", "name": "元阳县" }, { "code": "532529", "name": "红河县" }, { "code": "532530", "name": "金平苗族瑶族傣族自治县" }, { "code": "532531", "name": "绿春县" }, { "code": "532532", "name": "河口瑶族自治县" } ] }, { "code": "5326", "name": "文山壮族苗族自治州", "sub": [ { "code": "532601", "name": "文山市" }, { "code": "532622", "name": "砚山县" }, { "code": "532623", "name": "西畴县" }, { "code": "532624", "name": "麻栗坡县" }, { "code": "532625", "name": "马关县" }, { "code": "532626", "name": "丘北县" }, { "code": "532627", "name": "广南县" }, { "code": "532628", "name": "富宁县" } ] }, { "code": "5328", "name": "西双版纳傣族自治州", "sub": [ { "code": "532801", "name": "景洪市" }, { "code": "532822", "name": "勐海县" }, { "code": "532823", "name": "勐腊县" } ] }, { "code": "5329", "name": "大理白族自治州", "sub": [ { "code": "532901", "name": "大理市" }, { "code": "532922", "name": "漾濞彝族自治县" }, { "code": "532923", "name": "祥云县" }, { "code": "532924", "name": "宾川县" }, { "code": "532925", "name": "弥渡县" }, { "code": "532926", "name": "南涧彝族自治县" }, { "code": "532927", "name": "巍山彝族回族自治县" }, { "code": "532928", "name": "永平县" }, { "code": "532929", "name": "云龙县" }, { "code": "532930", "name": "洱源县" }, { "code": "532931", "name": "剑川县" }, { "code": "532932", "name": "鹤庆县" } ] }, { "code": "5331", "name": "德宏傣族景颇族自治州", "sub": [ { "code": "533102", "name": "瑞丽市" }, { "code": "533103", "name": "芒市" }, { "code": "533122", "name": "梁河县" }, { "code": "533123", "name": "盈江县" }, { "code": "533124", "name": "陇川县" } ] }, { "code": "5333", "name": "怒江傈僳族自治州", "sub": [ { "code": "533301", "name": "泸水市" }, { "code": "533323", "name": "福贡县" }, { "code": "533324", "name": "贡山独龙族怒族自治县" }, { "code": "533325", "name": "兰坪白族普米族自治县" } ] }, { "code": "5334", "name": "迪庆藏族自治州", "sub": [ { "code": "533401", "name": "香格里拉市" }, { "code": "533422", "name": "德钦县" }, { "code": "533423", "name": "维西傈僳族自治县" } ] } ] }, { "code": "54", "name": "西藏自治区", "sub": [ { "code": "5401", "name": "拉萨市", "sub": [ { "code": "540102", "name": "城关区" }, { "code": "540103", "name": "堆龙德庆区" }, { "code": "540104", "name": "达孜区" }, { "code": "540121", "name": "林周县" }, { "code": "540122", "name": "当雄县" }, { "code": "540123", "name": "尼木县" }, { "code": "540124", "name": "曲水县" }, { "code": "540127", "name": "墨竹工卡县" }, { "code": "540171", "name": "格尔木藏青工业园区" }, { "code": "540172", "name": "拉萨经济技术开发区" }, { "code": "540173", "name": "西藏文化旅游创意园区" }, { "code": "540174", "name": "达孜工业园区" } ] }, { "code": "5402", "name": "日喀则市", "sub": [ { "code": "540202", "name": "桑珠孜区" }, { "code": "540221", "name": "南木林县" }, { "code": "540222", "name": "江孜县" }, { "code": "540223", "name": "定日县" }, { "code": "540224", "name": "萨迦县" }, { "code": "540225", "name": "拉孜县" }, { "code": "540226", "name": "昂仁县" }, { "code": "540227", "name": "谢通门县" }, { "code": "540228", "name": "白朗县" }, { "code": "540229", "name": "仁布县" }, { "code": "540230", "name": "康马县" }, { "code": "540231", "name": "定结县" }, { "code": "540232", "name": "仲巴县" }, { "code": "540233", "name": "亚东县" }, { "code": "540234", "name": "吉隆县" }, { "code": "540235", "name": "聂拉木县" }, { "code": "540236", "name": "萨嘎县" }, { "code": "540237", "name": "岗巴县" } ] }, { "code": "5403", "name": "昌都市", "sub": [ { "code": "540302", "name": "卡若区" }, { "code": "540321", "name": "江达县" }, { "code": "540322", "name": "贡觉县" }, { "code": "540323", "name": "类乌齐县" }, { "code": "540324", "name": "丁青县" }, { "code": "540325", "name": "察雅县" }, { "code": "540326", "name": "八宿县" }, { "code": "540327", "name": "左贡县" }, { "code": "540328", "name": "芒康县" }, { "code": "540329", "name": "洛隆县" }, { "code": "540330", "name": "边坝县" } ] }, { "code": "5404", "name": "林芝市", "sub": [ { "code": "540402", "name": "巴宜区" }, { "code": "540421", "name": "工布江达县" }, { "code": "540422", "name": "米林县" }, { "code": "540423", "name": "墨脱县" }, { "code": "540424", "name": "波密县" }, { "code": "540425", "name": "察隅县" }, { "code": "540426", "name": "朗县" } ] }, { "code": "5405", "name": "山南市", "sub": [ { "code": "540502", "name": "乃东区" }, { "code": "540521", "name": "扎囊县" }, { "code": "540522", "name": "贡嘎县" }, { "code": "540523", "name": "桑日县" }, { "code": "540524", "name": "琼结县" }, { "code": "540525", "name": "曲松县" }, { "code": "540526", "name": "措美县" }, { "code": "540527", "name": "洛扎县" }, { "code": "540528", "name": "加查县" }, { "code": "540529", "name": "隆子县" }, { "code": "540530", "name": "错那县" }, { "code": "540531", "name": "浪卡子县" } ] }, { "code": "5406", "name": "那曲市", "sub": [ { "code": "540602", "name": "色尼区" }, { "code": "540621", "name": "嘉黎县" }, { "code": "540622", "name": "比如县" }, { "code": "540623", "name": "聂荣县" }, { "code": "540624", "name": "安多县" }, { "code": "540625", "name": "申扎县" }, { "code": "540626", "name": "索县" }, { "code": "540627", "name": "班戈县" }, { "code": "540628", "name": "巴青县" }, { "code": "540629", "name": "尼玛县" }, { "code": "540630", "name": "双湖县" } ] }, { "code": "5425", "name": "阿里地区", "sub": [ { "code": "542521", "name": "普兰县" }, { "code": "542522", "name": "札达县" }, { "code": "542523", "name": "噶尔县" }, { "code": "542524", "name": "日土县" }, { "code": "542525", "name": "革吉县" }, { "code": "542526", "name": "改则县" }, { "code": "542527", "name": "措勤县" } ] } ] }, { "code": "61", "name": "陕西省", "sub": [ { "code": "6101", "name": "西安市", "sub": [ { "code": "610102", "name": "新城区" }, { "code": "610103", "name": "碑林区" }, { "code": "610104", "name": "莲湖区" }, { "code": "610111", "name": "灞桥区" }, { "code": "610112", "name": "未央区" }, { "code": "610113", "name": "雁塔区" }, { "code": "610114", "name": "阎良区" }, { "code": "610115", "name": "临潼区" }, { "code": "610116", "name": "长安区" }, { "code": "610117", "name": "高陵区" }, { "code": "610118", "name": "鄠邑区" }, { "code": "610122", "name": "蓝田县" }, { "code": "610124", "name": "周至县" } ] }, { "code": "6102", "name": "铜川市", "sub": [ { "code": "610202", "name": "王益区" }, { "code": "610203", "name": "印台区" }, { "code": "610204", "name": "耀州区" }, { "code": "610222", "name": "宜君县" } ] }, { "code": "6103", "name": "宝鸡市", "sub": [ { "code": "610302", "name": "渭滨区" }, { "code": "610303", "name": "金台区" }, { "code": "610304", "name": "陈仓区" }, { "code": "610322", "name": "凤翔县" }, { "code": "610323", "name": "岐山县" }, { "code": "610324", "name": "扶风县" }, { "code": "610326", "name": "眉县" }, { "code": "610327", "name": "陇县" }, { "code": "610328", "name": "千阳县" }, { "code": "610329", "name": "麟游县" }, { "code": "610330", "name": "凤县" }, { "code": "610331", "name": "太白县" } ] }, { "code": "6104", "name": "咸阳市", "sub": [ { "code": "610402", "name": "秦都区" }, { "code": "610403", "name": "杨陵区" }, { "code": "610404", "name": "渭城区" }, { "code": "610422", "name": "三原县" }, { "code": "610423", "name": "泾阳县" }, { "code": "610424", "name": "乾县" }, { "code": "610425", "name": "礼泉县" }, { "code": "610426", "name": "永寿县" }, { "code": "610428", "name": "长武县" }, { "code": "610429", "name": "旬邑县" }, { "code": "610430", "name": "淳化县" }, { "code": "610431", "name": "武功县" }, { "code": "610481", "name": "兴平市" }, { "code": "610482", "name": "彬州市" } ] }, { "code": "6105", "name": "渭南市", "sub": [ { "code": "610502", "name": "临渭区" }, { "code": "610503", "name": "华州区" }, { "code": "610522", "name": "潼关县" }, { "code": "610523", "name": "大荔县" }, { "code": "610524", "name": "合阳县" }, { "code": "610525", "name": "澄城县" }, { "code": "610526", "name": "蒲城县" }, { "code": "610527", "name": "白水县" }, { "code": "610528", "name": "富平县" }, { "code": "610581", "name": "韩城市" }, { "code": "610582", "name": "华阴市" } ] }, { "code": "6106", "name": "延安市", "sub": [ { "code": "610602", "name": "宝塔区" }, { "code": "610603", "name": "安塞区" }, { "code": "610621", "name": "延长县" }, { "code": "610622", "name": "延川县" }, { "code": "610623", "name": "子长县" }, { "code": "610625", "name": "志丹县" }, { "code": "610626", "name": "吴起县" }, { "code": "610627", "name": "甘泉县" }, { "code": "610628", "name": "富县" }, { "code": "610629", "name": "洛川县" }, { "code": "610630", "name": "宜川县" }, { "code": "610631", "name": "黄龙县" }, { "code": "610632", "name": "黄陵县" } ] }, { "code": "6107", "name": "汉中市", "sub": [ { "code": "610702", "name": "汉台区" }, { "code": "610703", "name": "南郑区" }, { "code": "610722", "name": "城固县" }, { "code": "610723", "name": "洋县" }, { "code": "610724", "name": "西乡县" }, { "code": "610725", "name": "勉县" }, { "code": "610726", "name": "宁强县" }, { "code": "610727", "name": "略阳县" }, { "code": "610728", "name": "镇巴县" }, { "code": "610729", "name": "留坝县" }, { "code": "610730", "name": "佛坪县" } ] }, { "code": "6108", "name": "榆林市", "sub": [ { "code": "610802", "name": "榆阳区" }, { "code": "610803", "name": "横山区" }, { "code": "610822", "name": "府谷县" }, { "code": "610824", "name": "靖边县" }, { "code": "610825", "name": "定边县" }, { "code": "610826", "name": "绥德县" }, { "code": "610827", "name": "米脂县" }, { "code": "610828", "name": "佳县" }, { "code": "610829", "name": "吴堡县" }, { "code": "610830", "name": "清涧县" }, { "code": "610831", "name": "子洲县" }, { "code": "610881", "name": "神木市" } ] }, { "code": "6109", "name": "安康市", "sub": [ { "code": "610902", "name": "汉滨区" }, { "code": "610921", "name": "汉阴县" }, { "code": "610922", "name": "石泉县" }, { "code": "610923", "name": "宁陕县" }, { "code": "610924", "name": "紫阳县" }, { "code": "610925", "name": "岚皋县" }, { "code": "610926", "name": "平利县" }, { "code": "610927", "name": "镇坪县" }, { "code": "610928", "name": "旬阳县" }, { "code": "610929", "name": "白河县" } ] }, { "code": "6110", "name": "商洛市", "sub": [ { "code": "611002", "name": "商州区" }, { "code": "611021", "name": "洛南县" }, { "code": "611022", "name": "丹凤县" }, { "code": "611023", "name": "商南县" }, { "code": "611024", "name": "山阳县" }, { "code": "611025", "name": "镇安县" }, { "code": "611026", "name": "柞水县" } ] } ] }, { "code": "62", "name": "甘肃省", "sub": [ { "code": "6201", "name": "兰州市", "sub": [ { "code": "620102", "name": "城关区" }, { "code": "620103", "name": "七里河区" }, { "code": "620104", "name": "西固区" }, { "code": "620105", "name": "安宁区" }, { "code": "620111", "name": "红古区" }, { "code": "620121", "name": "永登县" }, { "code": "620122", "name": "皋兰县" }, { "code": "620123", "name": "榆中县" }, { "code": "620171", "name": "兰州新区" } ] }, { "code": "6202", "name": "嘉峪关市", "sub": [ { "code": "620201100", "name": "新城镇" }, { "code": "620201101", "name": "峪泉镇" }, { "code": "620201102", "name": "文殊镇" }, { "code": "620201401", "name": "雄关区" }, { "code": "620201402", "name": "镜铁区" }, { "code": "620201403", "name": "长城区" } ] }, { "code": "6203", "name": "金昌市", "sub": [ { "code": "620302", "name": "金川区" }, { "code": "620321", "name": "永昌县" } ] }, { "code": "6204", "name": "白银市", "sub": [ { "code": "620402", "name": "白银区" }, { "code": "620403", "name": "平川区" }, { "code": "620421", "name": "靖远县" }, { "code": "620422", "name": "会宁县" }, { "code": "620423", "name": "景泰县" } ] }, { "code": "6205", "name": "天水市", "sub": [ { "code": "620502", "name": "秦州区" }, { "code": "620503", "name": "麦积区" }, { "code": "620521", "name": "清水县" }, { "code": "620522", "name": "秦安县" }, { "code": "620523", "name": "甘谷县" }, { "code": "620524", "name": "武山县" }, { "code": "620525", "name": "张家川回族自治县" } ] }, { "code": "6206", "name": "武威市", "sub": [ { "code": "620602", "name": "凉州区" }, { "code": "620621", "name": "民勤县" }, { "code": "620622", "name": "古浪县" }, { "code": "620623", "name": "天祝藏族自治县" } ] }, { "code": "6207", "name": "张掖市", "sub": [ { "code": "620702", "name": "甘州区" }, { "code": "620721", "name": "肃南裕固族自治县" }, { "code": "620722", "name": "民乐县" }, { "code": "620723", "name": "临泽县" }, { "code": "620724", "name": "高台县" }, { "code": "620725", "name": "山丹县" } ] }, { "code": "6208", "name": "平凉市", "sub": [ { "code": "620802", "name": "崆峒区" }, { "code": "620821", "name": "泾川县" }, { "code": "620822", "name": "灵台县" }, { "code": "620823", "name": "崇信县" }, { "code": "620825", "name": "庄浪县" }, { "code": "620826", "name": "静宁县" }, { "code": "620881", "name": "华亭市" } ] }, { "code": "6209", "name": "酒泉市", "sub": [ { "code": "620902", "name": "肃州区" }, { "code": "620921", "name": "金塔县" }, { "code": "620922", "name": "瓜州县" }, { "code": "620923", "name": "肃北蒙古族自治县" }, { "code": "620924", "name": "阿克塞哈萨克族自治县" }, { "code": "620981", "name": "玉门市" }, { "code": "620982", "name": "敦煌市" } ] }, { "code": "6210", "name": "庆阳市", "sub": [ { "code": "621002", "name": "西峰区" }, { "code": "621021", "name": "庆城县" }, { "code": "621022", "name": "环县" }, { "code": "621023", "name": "华池县" }, { "code": "621024", "name": "合水县" }, { "code": "621025", "name": "正宁县" }, { "code": "621026", "name": "宁县" }, { "code": "621027", "name": "镇原县" } ] }, { "code": "6211", "name": "定西市", "sub": [ { "code": "621102", "name": "安定区" }, { "code": "621121", "name": "通渭县" }, { "code": "621122", "name": "陇西县" }, { "code": "621123", "name": "渭源县" }, { "code": "621124", "name": "临洮县" }, { "code": "621125", "name": "漳县" }, { "code": "621126", "name": "岷县" } ] }, { "code": "6212", "name": "陇南市", "sub": [ { "code": "621202", "name": "武都区" }, { "code": "621221", "name": "成县" }, { "code": "621222", "name": "文县" }, { "code": "621223", "name": "宕昌县" }, { "code": "621224", "name": "康县" }, { "code": "621225", "name": "西和县" }, { "code": "621226", "name": "礼县" }, { "code": "621227", "name": "徽县" }, { "code": "621228", "name": "两当县" } ] }, { "code": "6229", "name": "临夏回族自治州", "sub": [ { "code": "622901", "name": "临夏市" }, { "code": "622921", "name": "临夏县" }, { "code": "622922", "name": "康乐县" }, { "code": "622923", "name": "永靖县" }, { "code": "622924", "name": "广河县" }, { "code": "622925", "name": "和政县" }, { "code": "622926", "name": "东乡族自治县" }, { "code": "622927", "name": "积石山保安族东乡族撒拉族自治县" } ] }, { "code": "6230", "name": "甘南藏族自治州", "sub": [ { "code": "623001", "name": "合作市" }, { "code": "623021", "name": "临潭县" }, { "code": "623022", "name": "卓尼县" }, { "code": "623023", "name": "舟曲县" }, { "code": "623024", "name": "迭部县" }, { "code": "623025", "name": "玛曲县" }, { "code": "623026", "name": "碌曲县" }, { "code": "623027", "name": "夏河县" } ] } ] }, { "code": "63", "name": "青海省", "sub": [ { "code": "6301", "name": "西宁市", "sub": [ { "code": "630102", "name": "城东区" }, { "code": "630103", "name": "城中区" }, { "code": "630104", "name": "城西区" }, { "code": "630105", "name": "城北区" }, { "code": "630121", "name": "大通回族土族自治县" }, { "code": "630122", "name": "湟中县" }, { "code": "630123", "name": "湟源县" } ] }, { "code": "6302", "name": "海东市", "sub": [ { "code": "630202", "name": "乐都区" }, { "code": "630203", "name": "平安区" }, { "code": "630222", "name": "民和回族土族自治县" }, { "code": "630223", "name": "互助土族自治县" }, { "code": "630224", "name": "化隆回族自治县" }, { "code": "630225", "name": "循化撒拉族自治县" } ] }, { "code": "6322", "name": "海北藏族自治州", "sub": [ { "code": "632221", "name": "门源回族自治县" }, { "code": "632222", "name": "祁连县" }, { "code": "632223", "name": "海晏县" }, { "code": "632224", "name": "刚察县" } ] }, { "code": "6323", "name": "黄南藏族自治州", "sub": [ { "code": "632321", "name": "同仁县" }, { "code": "632322", "name": "尖扎县" }, { "code": "632323", "name": "泽库县" }, { "code": "632324", "name": "河南蒙古族自治县" } ] }, { "code": "6325", "name": "海南藏族自治州", "sub": [ { "code": "632521", "name": "共和县" }, { "code": "632522", "name": "同德县" }, { "code": "632523", "name": "贵德县" }, { "code": "632524", "name": "兴海县" }, { "code": "632525", "name": "贵南县" } ] }, { "code": "6326", "name": "果洛藏族自治州", "sub": [ { "code": "632621", "name": "玛沁县" }, { "code": "632622", "name": "班玛县" }, { "code": "632623", "name": "甘德县" }, { "code": "632624", "name": "达日县" }, { "code": "632625", "name": "久治县" }, { "code": "632626", "name": "玛多县" } ] }, { "code": "6327", "name": "玉树藏族自治州", "sub": [ { "code": "632701", "name": "玉树市" }, { "code": "632722", "name": "杂多县" }, { "code": "632723", "name": "称多县" }, { "code": "632724", "name": "治多县" }, { "code": "632725", "name": "囊谦县" }, { "code": "632726", "name": "曲麻莱县" } ] }, { "code": "6328", "name": "海西蒙古族藏族自治州", "sub": [ { "code": "632801", "name": "格尔木市" }, { "code": "632802", "name": "德令哈市" }, { "code": "632803", "name": "茫崖市" }, { "code": "632821", "name": "乌兰县" }, { "code": "632822", "name": "都兰县" }, { "code": "632823", "name": "天峻县" }, { "code": "632857", "name": "大柴旦行政委员会" } ] } ] }, { "code": "64", "name": "宁夏回族自治区", "sub": [ { "code": "6401", "name": "银川市", "sub": [ { "code": "640104", "name": "兴庆区" }, { "code": "640105", "name": "西夏区" }, { "code": "640106", "name": "金凤区" }, { "code": "640121", "name": "永宁县" }, { "code": "640122", "name": "贺兰县" }, { "code": "640181", "name": "灵武市" } ] }, { "code": "6402", "name": "石嘴山市", "sub": [ { "code": "640202", "name": "大武口区" }, { "code": "640205", "name": "惠农区" }, { "code": "640221", "name": "平罗县" } ] }, { "code": "6403", "name": "吴忠市", "sub": [ { "code": "640302", "name": "利通区" }, { "code": "640303", "name": "红寺堡区" }, { "code": "640323", "name": "盐池县" }, { "code": "640324", "name": "同心县" }, { "code": "640381", "name": "青铜峡市" } ] }, { "code": "6404", "name": "固原市", "sub": [ { "code": "640402", "name": "原州区" }, { "code": "640422", "name": "西吉县" }, { "code": "640423", "name": "隆德县" }, { "code": "640424", "name": "泾源县" }, { "code": "640425", "name": "彭阳县" } ] }, { "code": "6405", "name": "中卫市", "sub": [ { "code": "640502", "name": "沙坡头区" }, { "code": "640521", "name": "中宁县" }, { "code": "640522", "name": "海原县" } ] } ] }, { "code": "65", "name": "新疆维吾尔自治区", "sub": [ { "code": "6501", "name": "乌鲁木齐市", "sub": [ { "code": "650102", "name": "天山区" }, { "code": "650103", "name": "沙依巴克区" }, { "code": "650104", "name": "新市区" }, { "code": "650105", "name": "水磨沟区" }, { "code": "650106", "name": "头屯河区" }, { "code": "650107", "name": "达坂城区" }, { "code": "650109", "name": "米东区" }, { "code": "650121", "name": "乌鲁木齐县" }, { "code": "650171", "name": "乌鲁木齐经济技术开发区" }, { "code": "650172", "name": "乌鲁木齐高新技术产业开发区" } ] }, { "code": "6502", "name": "克拉玛依市", "sub": [ { "code": "650202", "name": "独山子区" }, { "code": "650203", "name": "克拉玛依区" }, { "code": "650204", "name": "白碱滩区" }, { "code": "650205", "name": "乌尔禾区" } ] }, { "code": "6504", "name": "吐鲁番市", "sub": [ { "code": "650402", "name": "高昌区" }, { "code": "650421", "name": "鄯善县" }, { "code": "650422", "name": "托克逊县" } ] }, { "code": "6505", "name": "哈密市", "sub": [ { "code": "650502", "name": "伊州区" }, { "code": "650521", "name": "巴里坤哈萨克自治县" }, { "code": "650522", "name": "伊吾县" } ] }, { "code": "6523", "name": "昌吉回族自治州", "sub": [ { "code": "652301", "name": "昌吉市" }, { "code": "652302", "name": "阜康市" }, { "code": "652323", "name": "呼图壁县" }, { "code": "652324", "name": "玛纳斯县" }, { "code": "652325", "name": "奇台县" }, { "code": "652327", "name": "吉木萨尔县" }, { "code": "652328", "name": "木垒哈萨克自治县" } ] }, { "code": "6527", "name": "博尔塔拉蒙古自治州", "sub": [ { "code": "652701", "name": "博乐市" }, { "code": "652702", "name": "阿拉山口市" }, { "code": "652722", "name": "精河县" }, { "code": "652723", "name": "温泉县" } ] }, { "code": "6528", "name": "巴音郭楞蒙古自治州", "sub": [ { "code": "652801", "name": "库尔勒市" }, { "code": "652822", "name": "轮台县" }, { "code": "652823", "name": "尉犁县" }, { "code": "652824", "name": "若羌县" }, { "code": "652825", "name": "且末县" }, { "code": "652826", "name": "焉耆回族自治县" }, { "code": "652827", "name": "和静县" }, { "code": "652828", "name": "和硕县" }, { "code": "652829", "name": "博湖县" }, { "code": "652871", "name": "库尔勒经济技术开发区" } ] }, { "code": "6529", "name": "阿克苏地区", "sub": [ { "code": "652901", "name": "阿克苏市" }, { "code": "652922", "name": "温宿县" }, { "code": "652923", "name": "库车县" }, { "code": "652924", "name": "沙雅县" }, { "code": "652925", "name": "新和县" }, { "code": "652926", "name": "拜城县" }, { "code": "652927", "name": "乌什县" }, { "code": "652928", "name": "阿瓦提县" }, { "code": "652929", "name": "柯坪县" } ] }, { "code": "6530", "name": "克孜勒苏柯尔克孜自治州", "sub": [ { "code": "653001", "name": "阿图什市" }, { "code": "653022", "name": "阿克陶县" }, { "code": "653023", "name": "阿合奇县" }, { "code": "653024", "name": "乌恰县" } ] }, { "code": "6531", "name": "喀什地区", "sub": [ { "code": "653101", "name": "喀什市" }, { "code": "653121", "name": "疏附县" }, { "code": "653122", "name": "疏勒县" }, { "code": "653123", "name": "英吉沙县" }, { "code": "653124", "name": "泽普县" }, { "code": "653125", "name": "莎车县" }, { "code": "653126", "name": "叶城县" }, { "code": "653127", "name": "麦盖提县" }, { "code": "653128", "name": "岳普湖县" }, { "code": "653129", "name": "伽师县" }, { "code": "653130", "name": "巴楚县" }, { "code": "653131", "name": "塔什库尔干塔吉克自治县" } ] }, { "code": "6532", "name": "和田地区", "sub": [ { "code": "653201", "name": "和田市" }, { "code": "653221", "name": "和田县" }, { "code": "653222", "name": "墨玉县" }, { "code": "653223", "name": "皮山县" }, { "code": "653224", "name": "洛浦县" }, { "code": "653225", "name": "策勒县" }, { "code": "653226", "name": "于田县" }, { "code": "653227", "name": "民丰县" } ] }, { "code": "6540", "name": "伊犁哈萨克自治州", "sub": [ { "code": "654002", "name": "伊宁市" }, { "code": "654003", "name": "奎屯市" }, { "code": "654004", "name": "霍尔果斯市" }, { "code": "654021", "name": "伊宁县" }, { "code": "654022", "name": "察布查尔锡伯自治县" }, { "code": "654023", "name": "霍城县" }, { "code": "654024", "name": "巩留县" }, { "code": "654025", "name": "新源县" }, { "code": "654026", "name": "昭苏县" }, { "code": "654027", "name": "特克斯县" }, { "code": "654028", "name": "尼勒克县" } ] }, { "code": "6542", "name": "塔城地区", "sub": [ { "code": "654201", "name": "塔城市" }, { "code": "654202", "name": "乌苏市" }, { "code": "654221", "name": "额敏县" }, { "code": "654223", "name": "沙湾县" }, { "code": "654224", "name": "托里县" }, { "code": "654225", "name": "裕民县" }, { "code": "654226", "name": "和布克赛尔蒙古自治县" } ] }, { "code": "6543", "name": "阿勒泰地区", "sub": [ { "code": "654301", "name": "阿勒泰市" }, { "code": "654321", "name": "布尔津县" }, { "code": "654322", "name": "富蕴县" }, { "code": "654323", "name": "福海县" }, { "code": "654324", "name": "哈巴河县" }, { "code": "654325", "name": "青河县" }, { "code": "654326", "name": "吉木乃县" } ] }, { "code": "6590", "name": "自治区直辖县级行政区划", "sub": [ { "code": "659001", "name": "石河子市" }, { "code": "659002", "name": "阿拉尔市" }, { "code": "659003", "name": "图木舒克市" }, { "code": "659004", "name": "五家渠市" }, { "code": "659006", "name": "铁门关市" } ] } ] },{ "name":"台湾省", "code":"710000", "sub":[ { "name":"台北市", "code":"710100", "sub":[ { "name":"松山区", "code":"710101" }, { "name":"信义区", "code":"710102" }, { "name":"大安区", "code":"710103" }, { "name":"中山区", "code":"710104" }, { "name":"中正区", "code":"710105" }, { "name":"大同区", "code":"710106" }, { "name":"万华区", "code":"710107" }, { "name":"文山区", "code":"710108" }, { "name":"南港区", "code":"710109" }, { "name":"内湖区", "code":"710110" }, { "name":"士林区", "code":"710111" }, { "name":"北投区", "code":"710112" } ] }, { "name":"高雄市", "code":"710200", "sub":[ { "name":"盐埕区", "code":"710201" }, { "name":"鼓山区", "code":"710202" }, { "name":"左营区", "code":"710203" }, { "name":"楠梓区", "code":"710204" }, { "name":"三民区", "code":"710205" }, { "name":"新兴区", "code":"710206" }, { "name":"前金区", "code":"710207" }, { "name":"苓雅区", "code":"710208" }, { "name":"前镇区", "code":"710209" }, { "name":"旗津区", "code":"710210" }, { "name":"小港区", "code":"710211" }, { "name":"凤山区", "code":"710212" }, { "name":"林园区", "code":"710213" }, { "name":"大寮区", "code":"710214" }, { "name":"大树区", "code":"710215" }, { "name":"大社区", "code":"710216" }, { "name":"仁武区", "code":"710217" }, { "name":"鸟松区", "code":"710218" }, { "name":"冈山区", "code":"710219" }, { "name":"桥头区", "code":"710220" }, { "name":"燕巢区", "code":"710221" }, { "name":"田寮区", "code":"710222" }, { "name":"阿莲区", "code":"710223" }, { "name":"路竹区", "code":"710224" }, { "name":"湖内区", "code":"710225" }, { "name":"茄萣区", "code":"710226" }, { "name":"永安区", "code":"710227" }, { "name":"弥陀区", "code":"710228" }, { "name":"梓官区", "code":"710229" }, { "name":"旗山区", "code":"710230" }, { "name":"美浓区", "code":"710231" }, { "name":"六龟区", "code":"710232" }, { "name":"甲仙区", "code":"710233" }, { "name":"杉林区", "code":"710234" }, { "name":"内门区", "code":"710235" }, { "name":"茂林区", "code":"710236" }, { "name":"桃源区", "code":"710237" }, { "name":"那玛夏区", "code":"710238" } ] }, { "name":"基隆市", "code":"710300", "sub":[ { "name":"中正区", "code":"710301" }, { "name":"七堵区", "code":"710302" }, { "name":"暖暖区", "code":"710303" }, { "name":"仁爱区", "code":"710304" }, { "name":"中山区", "code":"710305" }, { "name":"安乐区", "code":"710306" }, { "name":"信义区", "code":"710307" } ] }, { "name":"台中市", "code":"710400", "sub":[ { "name":"中区", "code":"710401" }, { "name":"东区", "code":"710402" }, { "name":"南区", "code":"710403" }, { "name":"西区", "code":"710404" }, { "name":"北区", "code":"710405" }, { "name":"西屯区", "code":"710406" }, { "name":"南屯区", "code":"710407" }, { "name":"北屯区", "code":"710408" }, { "name":"丰原区", "code":"710409" }, { "name":"东势区", "code":"710410" }, { "name":"大甲区", "code":"710411" }, { "name":"清水区", "code":"710412" }, { "name":"沙鹿区", "code":"710413" }, { "name":"梧栖区", "code":"710414" }, { "name":"后里区", "code":"710415" }, { "name":"神冈区", "code":"710416" }, { "name":"潭子区", "code":"710417" }, { "name":"大雅区", "code":"710418" }, { "name":"新社区", "code":"710419" }, { "name":"石冈区", "code":"710420" }, { "name":"外埔区", "code":"710421" }, { "name":"大安区", "code":"710422" }, { "name":"乌日区", "code":"710423" }, { "name":"大肚区", "code":"710424" }, { "name":"龙井区", "code":"710425" }, { "name":"雾峰区", "code":"710426" }, { "name":"太平区", "code":"710427" }, { "name":"大里区", "code":"710428" }, { "name":"和平区", "code":"710429" } ] }, { "name":"台南市", "code":"710500", "sub":[ { "name":"东区", "code":"710501" }, { "name":"南区", "code":"710502" }, { "name":"北区", "code":"710504" }, { "name":"安南区", "code":"710506" }, { "name":"安平区", "code":"710507" }, { "name":"中西区", "code":"710508" }, { "name":"新营区", "code":"710509" }, { "name":"盐水区", "code":"710510" }, { "name":"白河区", "code":"710511" }, { "name":"柳营区", "code":"710512" }, { "name":"后壁区", "code":"710513" }, { "name":"东山区", "code":"710514" }, { "name":"麻豆区", "code":"710515" }, { "name":"下营区", "code":"710516" }, { "name":"六甲区", "code":"710517" }, { "name":"官田区", "code":"710518" }, { "name":"大内区", "code":"710519" }, { "name":"佳里区", "code":"710520" }, { "name":"学甲区", "code":"710521" }, { "name":"西港区", "code":"710522" }, { "name":"七股区", "code":"710523" }, { "name":"将军区", "code":"710524" }, { "name":"北门区", "code":"710525" }, { "name":"新化区", "code":"710526" }, { "name":"善化区", "code":"710527" }, { "name":"新市区", "code":"710528" }, { "name":"安定区", "code":"710529" }, { "name":"山上区", "code":"710530" }, { "name":"玉井区", "code":"710531" }, { "name":"楠西区", "code":"710532" }, { "name":"南化区", "code":"710533" }, { "name":"左镇区", "code":"710534" }, { "name":"仁德区", "code":"710535" }, { "name":"归仁区", "code":"710536" }, { "name":"关庙区", "code":"710537" }, { "name":"龙崎区", "code":"710538" }, { "name":"永康区", "code":"710539" } ] }, { "name":"新竹市", "code":"710600", "sub":[ { "name":"东区", "code":"710601" }, { "name":"北区", "code":"710602" }, { "name":"香山区", "code":"710603" } ] }, { "name":"嘉义市", "code":"710700", "sub":[ { "name":"东区", "code":"710701" }, { "name":"西区", "code":"710702" } ] }, { "name":"新北市", "code":"710800", "sub":[ { "name":"板桥区", "code":"710801" }, { "name":"三重区", "code":"710802" }, { "name":"中和区", "code":"710803" }, { "name":"永和区", "code":"710804" }, { "name":"新庄区", "code":"710805" }, { "name":"新店区", "code":"710806" }, { "name":"树林区", "code":"710807" }, { "name":"莺歌区", "code":"710808" }, { "name":"三峡区", "code":"710809" }, { "name":"淡水区", "code":"710810" }, { "name":"汐止区", "code":"710811" }, { "name":"瑞芳区", "code":"710812" }, { "name":"土城区", "code":"710813" }, { "name":"芦洲区", "code":"710814" }, { "name":"五股区", "code":"710815" }, { "name":"泰山区", "code":"710816" }, { "name":"林口区", "code":"710817" }, { "name":"深坑区", "code":"710818" }, { "name":"石碇区", "code":"710819" }, { "name":"坪林区", "code":"710820" }, { "name":"三芝区", "code":"710821" }, { "name":"石门区", "code":"710822" }, { "name":"八里区", "code":"710823" }, { "name":"平溪区", "code":"710824" }, { "name":"双溪区", "code":"710825" }, { "name":"贡寮区", "code":"710826" }, { "name":"金山区", "code":"710827" }, { "name":"万里区", "code":"710828" }, { "name":"乌来区", "code":"710829" } ] }, { "name":"宜兰县", "code":"712200", "sub":[ { "name":"宜兰市", "code":"712201" }, { "name":"罗东镇", "code":"712221" }, { "name":"苏澳镇", "code":"712222" }, { "name":"头城镇", "code":"712223" }, { "name":"礁溪乡", "code":"712224" }, { "name":"壮围乡", "code":"712225" }, { "name":"员山乡", "code":"712226" }, { "name":"冬山乡", "code":"712227" }, { "name":"五结乡", "code":"712228" }, { "name":"三星乡", "code":"712229" }, { "name":"大同乡", "code":"712230" }, { "name":"南澳乡", "code":"712231" } ] }, { "name":"桃园县", "code":"712300", "sub":[ { "name":"桃园市", "code":"712301" }, { "name":"中坜市", "code":"712302" }, { "name":"平镇市", "code":"712303" }, { "name":"八德市", "code":"712304" }, { "name":"杨梅市", "code":"712305" }, { "name":"大溪镇", "code":"712321" }, { "name":"芦竹乡", "code":"712323" }, { "name":"大园乡", "code":"712324" }, { "name":"龟山乡", "code":"712325" }, { "name":"龙潭乡", "code":"712327" }, { "name":"新屋乡", "code":"712329" }, { "name":"观音乡", "code":"712330" }, { "name":"复兴乡", "code":"712331" } ] }, { "name":"新竹县", "code":"712400", "sub":[ { "name":"竹北市", "code":"712401" }, { "name":"竹东镇", "code":"712421" }, { "name":"新埔镇", "code":"712422" }, { "name":"关西镇", "code":"712423" }, { "name":"湖口乡", "code":"712424" }, { "name":"新丰乡", "code":"712425" }, { "name":"芎林乡", "code":"712426" }, { "name":"橫山乡", "code":"712427" }, { "name":"北埔乡", "code":"712428" }, { "name":"宝山乡", "code":"712429" }, { "name":"峨眉乡", "code":"712430" }, { "name":"尖石乡", "code":"712431" }, { "name":"五峰乡", "code":"712432" } ] }, { "name":"苗栗县", "code":"712500", "sub":[ { "name":"苗栗市", "code":"712501" }, { "name":"苑里镇", "code":"712521" }, { "name":"通霄镇", "code":"712522" }, { "name":"竹南镇", "code":"712523" }, { "name":"头份镇", "code":"712524" }, { "name":"后龙镇", "code":"712525" }, { "name":"卓兰镇", "code":"712526" }, { "name":"大湖乡", "code":"712527" }, { "name":"公馆乡", "code":"712528" }, { "name":"铜锣乡", "code":"712529" }, { "name":"南庄乡", "code":"712530" }, { "name":"头屋乡", "code":"712531" }, { "name":"三义乡", "code":"712532" }, { "name":"西湖乡", "code":"712533" }, { "name":"造桥乡", "code":"712534" }, { "name":"三湾乡", "code":"712535" }, { "name":"狮潭乡", "code":"712536" }, { "name":"泰安乡", "code":"712537" } ] }, { "name":"彰化县", "code":"712700", "sub":[ { "name":"彰化市", "code":"712701" }, { "name":"鹿港镇", "code":"712721" }, { "name":"和美镇", "code":"712722" }, { "name":"线西乡", "code":"712723" }, { "name":"伸港乡", "code":"712724" }, { "name":"福兴乡", "code":"712725" }, { "name":"秀水乡", "code":"712726" }, { "name":"花坛乡", "code":"712727" }, { "name":"芬园乡", "code":"712728" }, { "name":"员林镇", "code":"712729" }, { "name":"溪湖镇", "code":"712730" }, { "name":"田中镇", "code":"712731" }, { "name":"大村乡", "code":"712732" }, { "name":"埔盐乡", "code":"712733" }, { "name":"埔心乡", "code":"712734" }, { "name":"永靖乡", "code":"712735" }, { "name":"社头乡", "code":"712736" }, { "name":"二水乡", "code":"712737" }, { "name":"北斗镇", "code":"712738" }, { "name":"二林镇", "code":"712739" }, { "name":"田尾乡", "code":"712740" }, { "name":"埤头乡", "code":"712741" }, { "name":"芳苑乡", "code":"712742" }, { "name":"大城乡", "code":"712743" }, { "name":"竹塘乡", "code":"712744" }, { "name":"溪州乡", "code":"712745" } ] }, { "name":"南投县", "code":"712800", "sub":[ { "name":"南投市", "code":"712801" }, { "name":"埔里镇", "code":"712821" }, { "name":"草屯镇", "code":"712822" }, { "name":"竹山镇", "code":"712823" }, { "name":"集集镇", "code":"712824" }, { "name":"名间乡", "code":"712825" }, { "name":"鹿谷乡", "code":"712826" }, { "name":"中寮乡", "code":"712827" }, { "name":"鱼池乡", "code":"712828" }, { "name":"国姓乡", "code":"712829" }, { "name":"水里乡", "code":"712830" }, { "name":"信义乡", "code":"712831" }, { "name":"仁爱乡", "code":"712832" } ] }, { "name":"云林县", "code":"712900", "sub":[ { "name":"斗六市", "code":"712901" }, { "name":"斗南镇", "code":"712921" }, { "name":"虎尾镇", "code":"712922" }, { "name":"西螺镇", "code":"712923" }, { "name":"土库镇", "code":"712924" }, { "name":"北港镇", "code":"712925" }, { "name":"古坑乡", "code":"712926" }, { "name":"大埤乡", "code":"712927" }, { "name":"莿桐乡", "code":"712928" }, { "name":"林内乡", "code":"712929" }, { "name":"二仑乡", "code":"712930" }, { "name":"仑背乡", "code":"712931" }, { "name":"麦寮乡", "code":"712932" }, { "name":"东势乡", "code":"712933" }, { "name":"褒忠乡", "code":"712934" }, { "name":"台西乡", "code":"712935" }, { "name":"元长乡", "code":"712936" }, { "name":"四湖乡", "code":"712937" }, { "name":"口湖乡", "code":"712938" }, { "name":"水林乡", "code":"712939" } ] }, { "name":"嘉义县", "code":"713000", "sub":[ { "name":"太保市", "code":"713001" }, { "name":"朴子市", "code":"713002" }, { "name":"布袋镇", "code":"713023" }, { "name":"大林镇", "code":"713024" }, { "name":"民雄乡", "code":"713025" }, { "name":"溪口乡", "code":"713026" }, { "name":"新港乡", "code":"713027" }, { "name":"六脚乡", "code":"713028" }, { "name":"东石乡", "code":"713029" }, { "name":"义竹乡", "code":"713030" }, { "name":"鹿草乡", "code":"713031" }, { "name":"水上乡", "code":"713032" }, { "name":"中埔乡", "code":"713033" }, { "name":"竹崎乡", "code":"713034" }, { "name":"梅山乡", "code":"713035" }, { "name":"番路乡", "code":"713036" }, { "name":"大埔乡", "code":"713037" }, { "name":"阿里山乡", "code":"713038" } ] }, { "name":"屏东县", "code":"713300", "sub":[ { "name":"屏东市", "code":"713301" }, { "name":"潮州镇", "code":"713321" }, { "name":"东港镇", "code":"713322" }, { "name":"恒春镇", "code":"713323" }, { "name":"万丹乡", "code":"713324" }, { "name":"长治乡", "code":"713325" }, { "name":"麟洛乡", "code":"713326" }, { "name":"九如乡", "code":"713327" }, { "name":"里港乡", "code":"713328" }, { "name":"盐埔乡", "code":"713329" }, { "name":"高树乡", "code":"713330" }, { "name":"万峦乡", "code":"713331" }, { "name":"内埔乡", "code":"713332" }, { "name":"竹田乡", "code":"713333" }, { "name":"新埤乡", "code":"713334" }, { "name":"枋寮乡", "code":"713335" }, { "name":"新园乡", "code":"713336" }, { "name":"崁顶乡", "code":"713337" }, { "name":"林边乡", "code":"713338" }, { "name":"南州乡", "code":"713339" }, { "name":"佳冬乡", "code":"713340" }, { "name":"琉球乡", "code":"713341" }, { "name":"车城乡", "code":"713342" }, { "name":"满州乡", "code":"713343" }, { "name":"枋山乡", "code":"713344" }, { "name":"三地门乡", "code":"713345" }, { "name":"雾台乡", "code":"713346" }, { "name":"玛家乡", "code":"713347" }, { "name":"泰武乡", "code":"713348" }, { "name":"来义乡", "code":"713349" }, { "name":"春日乡", "code":"713350" }, { "name":"狮子乡", "code":"713351" }, { "name":"牡丹乡", "code":"713352" } ] }, { "name":"台东县", "code":"713400", "sub":[ { "name":"台东市", "code":"713401" }, { "name":"成功镇", "code":"713421" }, { "name":"关山镇", "code":"713422" }, { "name":"卑南乡", "code":"713423" }, { "name":"鹿野乡", "code":"713424" }, { "name":"池上乡", "code":"713425" }, { "name":"东河乡", "code":"713426" }, { "name":"长滨乡", "code":"713427" }, { "name":"太麻里乡", "code":"713428" }, { "name":"大武乡", "code":"713429" }, { "name":"绿岛乡", "code":"713430" }, { "name":"海端乡", "code":"713431" }, { "name":"延平乡", "code":"713432" }, { "name":"金峰乡", "code":"713433" }, { "name":"达仁乡", "code":"713434" }, { "name":"兰屿乡", "code":"713435" } ] }, { "name":"花莲县", "code":"713500", "sub":[ { "name":"花莲市", "code":"713501" }, { "name":"凤林镇", "code":"713521" }, { "name":"玉里镇", "code":"713522" }, { "name":"新城乡", "code":"713523" }, { "name":"吉安乡", "code":"713524" }, { "name":"寿丰乡", "code":"713525" }, { "name":"光复乡", "code":"713526" }, { "name":"丰滨乡", "code":"713527" }, { "name":"瑞穗乡", "code":"713528" }, { "name":"富里乡", "code":"713529" }, { "name":"秀林乡", "code":"713530" }, { "name":"万荣乡", "code":"713531" }, { "name":"卓溪乡", "code":"713532" } ] }, { "name":"澎湖县", "code":"713600", "sub":[ { "name":"马公市", "code":"713601" }, { "name":"湖西乡", "code":"713621" }, { "name":"白沙乡", "code":"713622" }, { "name":"西屿乡", "code":"713623" }, { "name":"望安乡", "code":"713624" }, { "name":"七美乡", "code":"713625" } ] } ] }, { "name":"香港特别行政区", "code":"810000", "sub":[ { "name":"香港岛", "code":"810100", "sub":[ { "name":"中西区", "code":"810101" }, { "name":"湾仔区", "code":"810102" }, { "name":"东区", "code":"810103" }, { "name":"南区", "code":"810104" } ] }, { "name":"九龙", "code":"810200", "sub":[ { "name":"油尖旺区", "code":"810201" }, { "name":"深水埗区", "code":"810202" }, { "name":"九龙城区", "code":"810203" }, { "name":"黄大仙区", "code":"810204" }, { "name":"观塘区", "code":"810205" } ] }, { "name":"新界", "code":"810300", "sub":[ { "name":"荃湾区", "code":"810301" }, { "name":"屯门区", "code":"810302" }, { "name":"元朗区", "code":"810303" }, { "name":"北区", "code":"810304" }, { "name":"大埔区", "code":"810305" }, { "name":"西贡区", "code":"810306" }, { "name":"沙田区", "code":"810307" }, { "name":"葵青区", "code":"810308" }, { "name":"离岛区", "code":"810309" } ] } ] }, { "name":"澳门特别行政区", "code":"820000", "sub":[ { "name":"澳门半岛", "code":"820100", "sub":[ { "name":"花地玛堂区", "code":"820101" }, { "name":"圣安多尼堂区", "code":"820102" }, { "name":"大堂区", "code":"820103" }, { "name":"望德堂区", "code":"820104" }, { "name":"风顺堂区", "code":"820105" } ] }, { "name":"氹仔岛", "code":"820200", "sub":[ { "name":"嘉模堂区", "code":"820201" } ] }, { "name":"路环岛", "code":"820300", "sub":[ { "name":"圣方济各堂区", "code":"820301" } ] } ] } ] -}($); -// jshint ignore: end - -/* global $:true */ -/* jshint unused:false*/ - -+ function($) { - "use strict"; - - var defaults; - var raw = $.rawCitiesData; - - var format = function(data) { - var result = []; - for(var i=0;i255?255:Math.round(t)||0}function l(t){return t<=0||t>0?t<0?0:t>1?1:Math.round(1e4*t)/1e4:0}var f=/^#([0-9a-f])([0-9a-f])([0-9a-f])([0-9a-f])?$/i,c=/^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})?$/i,v=/^rgb\(\s*(-?\d{1,10})\s*,\s*(-?\d{1,10})\s*,\s*(-?\d{1,10})\s*\)$/,_=/^rgba\(\s*(-?\d{1,10})\s*,\s*(-?\d{1,10})\s*,\s*(-?\d{1,10})\s*,\s*(-?[\d]{0,10}(?:\.\d+)?)\s*\)$/;function d(t){var i;if((t=t.toLowerCase())in a&&(t=a[t]),i=_.exec(t)||v.exec(t))return[o(parseInt(i[1],10)),o(parseInt(i[2],10)),o(parseInt(i[3],10)),l(i.length<5?1:parseFloat(i[4]))];if(i=c.exec(t))return[o(parseInt(i[1],16)),o(parseInt(i[2],16)),o(parseInt(i[3],16)),1];if(i=f.exec(t))return[o(17*parseInt(i[1],16)),o(17*parseInt(i[2],16)),o(17*parseInt(i[3],16)),1];throw new Error("Cannot parse color: ".concat(t))}function w(t){var i,n=d(t);return{t:"rgb(".concat(n[0],", ").concat(n[1],", ").concat(n[2],")"),i:(i=n,.199*i[0]+.687*i[1]+.114*i[2]>160?"black":"white")}}var M=function(t,i){return M=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,i){t.__proto__=i}||function(t,i){for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(t[n]=i[n])},M(t,i)};function b(t,i){if("function"!=typeof i&&null!==i)throw new TypeError("Class extends value "+String(i)+" is not a constructor or null");function n(){this.constructor=t}M(t,i),t.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}var m=function(){return m=Object.assign||function(t){for(var i,n=1,s=arguments.length;n-1&&this.h.splice(i,1)},t.prototype.M=function(t){this.h=this.h.filter((function(i){return i.l!==t}))},t.prototype.m=function(t,i){var n=g([],this.h,!0);this.h=this.h.filter((function(t){return!t.v})),n.forEach((function(n){return n.o(t,i)}))},t.prototype.g=function(){return this.h.length>0},t.prototype.p=function(){this.h=[]},t}();function y(t){for(var i=[],n=1;n=i.from;--h){var r=n.G[h];t.moveTo(r.tt,r.it),t.arc(r.tt,r.it,s,0,2*Math.PI)}t.fill()};t.fillStyle=n.nt,s(n.st+2),t.fillStyle=n.ht,s(n.st)}},i}(O);function V(){return{G:[{tt:0,it:0,rt:0,et:0}],ht:"",nt:"",st:0,J:null}}var P={from:0,to:1},R=function(){function t(t,i){this.ut=new E,this.ot=[],this.lt=[],this.ft=!0,this.P=t,this.ct=i,this.ut.U(this.ot)}return t.prototype.vt=function(t){var i=this.P._t();i.length!==this.ot.length&&(this.lt=i.map(V),this.ot=this.lt.map((function(t){var i=new F;return i.Z(t),i})),this.ut.U(this.ot)),this.ft=!0},t.prototype.dt=function(t,i,n){return this.ft&&(this.wt(t),this.ft=!1),this.ut},t.prototype.wt=function(t){var i=this,n=this.P._t(),s=this.ct.Mt(),h=this.P.bt();n.forEach((function(n,r){var u,a=i.lt[r],o=n.gt(s);if(null!==o&&n.yt()){var l=e(n.kt());a.ht=o.xt,a.st=o.st,a.G[0].et=o.et,a.G[0].it=n.Ct().Nt(o.et,l.St),a.nt=null!==(u=o.Tt)&&void 0!==u?u:i.P.Dt(a.G[0].it/t),a.G[0].rt=s,a.G[0].tt=h.At(s),a.J=P}else a.J=null}))},t}(),z=function(){function t(t){this.Bt=t}return t.prototype.H=function(t,i,h,r){if(null!==this.Bt){var e=this.Bt.Lt.yt,u=this.Bt.Et.yt;if(e||u){t.save();var a=Math.round(this.Bt.tt*i),o=Math.round(this.Bt.it*i),l=Math.ceil(this.Bt.Ot*i),f=Math.ceil(this.Bt.Ft*i);t.lineCap="butt",e&&a>=0&&(t.lineWidth=Math.floor(this.Bt.Lt.Vt*i),t.strokeStyle=this.Bt.Lt.A,t.fillStyle=this.Bt.Lt.A,n(t,this.Bt.Lt.Pt),function(t,i,n,s){t.beginPath();var h=t.lineWidth%2?.5:0;t.moveTo(i+h,n),t.lineTo(i+h,s),t.stroke()}(t,a,0,f)),u&&o>=0&&(t.lineWidth=Math.floor(this.Bt.Et.Vt*i),t.strokeStyle=this.Bt.Et.A,t.fillStyle=this.Bt.Et.A,n(t,this.Bt.Et.Pt),s(t,o,0,l)),t.restore()}}},t}(),W=function(){function t(t){this.ft=!0,this.Rt={Lt:{Vt:1,Pt:0,A:"",yt:!1},Et:{Vt:1,Pt:0,A:"",yt:!1},Ot:0,Ft:0,tt:0,it:0},this.zt=new z(this.Rt),this.Wt=t}return t.prototype.vt=function(){this.ft=!0},t.prototype.dt=function(t,i){return this.ft&&(this.wt(),this.ft=!1),this.zt},t.prototype.wt=function(){var t=this.Wt.yt(),i=e(this.Wt.It()),n=i.jt().R().crosshair,s=this.Rt;s.Et.yt=t&&this.Wt.qt(i),s.Lt.yt=t&&this.Wt.Ut(),s.Et.Vt=n.horzLine.width,s.Et.Pt=n.horzLine.style,s.Et.A=n.horzLine.color,s.Lt.Vt=n.vertLine.width,s.Lt.Pt=n.vertLine.style,s.Lt.A=n.vertLine.color,s.Ot=i.Ht(),s.Ft=i.Yt(),s.tt=this.Wt.$t(),s.it=this.Wt.Kt()},t}();function I(t,i,n,s,h,r){t.fillRect(i+r,n,s-2*r,r),t.fillRect(i+r,n+h-r,s-2*r,r),t.fillRect(i,n,r,h),t.fillRect(i+s-r,n,r,h)}function j(t,i,n){t.save(),t.scale(i,i),n(),t.restore()}function q(t,i,n,s,h,r){t.save(),t.globalCompositeOperation="copy",t.fillStyle=r,t.fillRect(i,n,s,h),t.restore()}function U(t,i,n,s,h,r,e){t.save(),t.globalCompositeOperation="copy";var u=t.createLinearGradient(0,0,0,h);u.addColorStop(0,r),u.addColorStop(1,e),t.fillStyle=u,t.fillRect(i,n,s,h),t.restore()}var H,Y=function(){function t(t,i){this.Z(t,i)}return t.prototype.Z=function(t,i){this.Bt=t,this.Xt=i},t.prototype.H=function(t,i,n,s,h,r){if(this.Bt.yt){t.font=i.T;var e=this.Bt.Zt||!this.Bt.Jt?i.C:0,u=i.N,a=i.F,o=i.B,l=i.L,f=i.O,c=this.Bt.Gt,v=Math.ceil(n.Qt(t,c)),_=i.V,d=i.S+a+o,w=Math.ceil(.5*d),M=u+v+l+f+e,b=this.Xt.ti;this.Xt.ii&&(b=this.Xt.ii);var m,g,p=(b=Math.round(b))-w,y=p+d,k="right"===h,x=k?s:0,N=Math.ceil(s*r),C=x;if(t.fillStyle=this.Xt.t,t.lineWidth=1,t.lineCap="butt",c){k?(m=x-e,g=(C=x-M)+f):(C=x+M,m=x+e,g=x+u+e+l);var S=Math.max(1,Math.floor(r)),T=Math.max(1,Math.floor(u*r)),D=k?N:0,A=Math.round(p*r),B=Math.round(C*r),L=Math.round(b*r)-Math.floor(.5*r),E=L+S+(L-A),O=Math.round(m*r);t.save(),t.beginPath(),t.moveTo(D,A),t.lineTo(B,A),t.lineTo(B,E),t.lineTo(D,E),t.fill(),t.fillStyle=this.Bt.Tt,t.fillRect(k?N-T:0,A,T,E-A),this.Bt.Zt&&(t.fillStyle=this.Xt.A,t.fillRect(D,L,O-D,S)),t.textAlign="left",t.fillStyle=this.Xt.A,j(t,r,(function(){t.fillText(c,g,y-o-_)})),t.restore()}}},t.prototype.Yt=function(t,i){return this.Bt.yt?t.S+t.F+t.B:0},t}(),$=function(){function t(t){this.ni={ti:0,A:"#FFF",t:"#000"},this.si={Gt:"",yt:!1,Zt:!0,Jt:!1,Tt:""},this.hi={Gt:"",yt:!1,Zt:!1,Jt:!0,Tt:""},this.ft=!0,this.ri=new(t||Y)(this.si,this.ni),this.ei=new(t||Y)(this.hi,this.ni)}return t.prototype.Gt=function(){return this.ui(),this.si.Gt},t.prototype.ti=function(){return this.ui(),this.ni.ti},t.prototype.vt=function(){this.ft=!0},t.prototype.Yt=function(t,i){return void 0===i&&(i=!1),Math.max(this.ri.Yt(t,i),this.ei.Yt(t,i))},t.prototype.ai=function(){return this.ni.ii||0},t.prototype.oi=function(t){this.ni.ii=t},t.prototype.li=function(){return this.ui(),this.si.yt||this.hi.yt},t.prototype.fi=function(){return this.ui(),this.si.yt},t.prototype.dt=function(t){return this.ui(),this.si.Zt=this.si.Zt&&t.R().drawTicks,this.hi.Zt=this.hi.Zt&&t.R().drawTicks,this.ri.Z(this.si,this.ni),this.ei.Z(this.hi,this.ni),this.ri},t.prototype.ci=function(){return this.ui(),this.ri.Z(this.si,this.ni),this.ei.Z(this.hi,this.ni),this.ei},t.prototype.ui=function(){this.ft&&(this.si.Zt=!0,this.hi.Zt=!1,this.vi(this.si,this.hi,this.ni))},t}(),K=function(t){function i(i,n,s){var h=t.call(this)||this;return h.Wt=i,h._i=n,h.di=s,h}return b(i,t),i.prototype.vi=function(t,i,n){t.yt=!1;var s=this.Wt.R().horzLine;if(s.labelVisible){var h=this._i.kt();if(this.Wt.yt()&&!this._i.wi()&&null!==h){var r=w(s.labelBackgroundColor);n.t=r.t,n.A=r.i;var e=this.di(this._i);n.ti=e.ti,t.Gt=this._i.Mi(e.et,h),t.yt=!0}}},i}($),X=/[1-9]/g,Z=function(){function t(){this.Bt=null}return t.prototype.Z=function(t){this.Bt=t},t.prototype.H=function(t,i,n){var s=this;if(null!==this.Bt&&!1!==this.Bt.yt&&0!==this.Bt.Gt.length){t.font=i.T;var h=Math.round(i.bi.Qt(t,this.Bt.Gt,X));if(!(h<=0)){t.save();var r=i.mi,u=h+2*r,a=u/2,o=this.Bt.Ht,l=this.Bt.ti,f=Math.floor(l-a)+.5;f<0?(l+=Math.abs(0-f),f=Math.floor(l-a)+.5):f+u>o&&(l-=Math.abs(o-(f+u)),f=Math.floor(l-a)+.5);var c=f+u,v=0+i.N+i.F+i.S+i.B;t.fillStyle=this.Bt.t;var _=Math.round(f*n),d=Math.round(0*n),w=Math.round(c*n),M=Math.round(v*n);t.fillRect(_,d,w-_,M-d);var b=Math.round(this.Bt.ti*n),m=d,g=Math.round((m+i.N+i.C)*n);t.fillStyle=this.Bt.A;var p=Math.max(1,Math.floor(n)),y=Math.floor(.5*n);t.fillRect(b-y,m,p,g-m);var k=v-i.V-i.B;t.textAlign="left",t.fillStyle=this.Bt.A,j(t,n,(function(){t.fillText(e(s.Bt).Gt,f+r,k)})),t.restore()}}},t}(),J=function(){function t(t,i,n){this.ft=!0,this.zt=new Z,this.Rt={yt:!1,t:"#4c525e",A:"white",Gt:"",Ht:0,ti:NaN},this.ct=t,this.gi=i,this.di=n}return t.prototype.vt=function(){this.ft=!0},t.prototype.dt=function(){return this.ft&&(this.wt(),this.ft=!1),this.zt.Z(this.Rt),this.zt},t.prototype.wt=function(){var t=this.Rt;t.yt=!1;var i=this.ct.R().vertLine;if(i.labelVisible){var n=this.gi.bt();if(!n.wi()){var s=n.pi(this.ct.Mt());t.Ht=n.Ht();var h=this.di();if(h.rt){t.ti=h.ti,t.Gt=n.yi(e(s)),t.yt=!0;var r=w(i.labelBackgroundColor);t.t=r.t,t.A=r.i}}}},t}(),G=function(){function t(){this.ki=null,this.xi=0}return t.prototype.Ni=function(){return this.xi},t.prototype.Ci=function(t){this.xi=t},t.prototype.Ct=function(){return this.ki},t.prototype.Si=function(t){this.ki=t},t.prototype.Ti=function(){return[]},t.prototype.yt=function(){return!0},t}();!function(t){t[t.Normal=0]="Normal",t[t.Magnet=1]="Magnet"}(H||(H={}));var Q=function(t){function i(i,n){var s=t.call(this)||this;s.Di=null,s.Ai=NaN,s.Bi=0,s.Li=!0,s.Ei=new Map,s.Oi=!1,s.Fi=NaN,s.Vi=NaN,s.Pi=NaN,s.Ri=NaN,s.gi=i,s.zi=n,s.Wi=new R(i,s);var h,r;s.Ii=(h=function(){return s.Ai},r=function(){return s.Vi},function(t){var i=r(),n=h();if(t===e(s.Di).ji())return{et:n,ti:i};var u=e(t.kt());return{et:t.qi(i,u),ti:i}});var u=function(t,i){return function(){return{rt:s.gi.bt().pi(t()),ti:i()}}}((function(){return s.Bi}),(function(){return s.$t()}));return s.Ui=new J(s,i,u),s.Hi=new W(s),s}return b(i,t),i.prototype.R=function(){return this.zi},i.prototype.Yi=function(t,i){this.Pi=t,this.Ri=i},i.prototype.$i=function(){this.Pi=NaN,this.Ri=NaN},i.prototype.Ki=function(){return this.Pi},i.prototype.Xi=function(){return this.Ri},i.prototype.Zi=function(t,i,n){this.Oi||(this.Oi=!0),this.Li=!0,this.Ji(t,i,n)},i.prototype.Mt=function(){return this.Bi},i.prototype.$t=function(){return this.Fi},i.prototype.Kt=function(){return this.Vi},i.prototype.yt=function(){return this.Li},i.prototype.Gi=function(){this.Li=!1,this.Qi(),this.Ai=NaN,this.Fi=NaN,this.Vi=NaN,this.Di=null,this.$i()},i.prototype.tn=function(t){return null!==this.Di?[this.Hi,this.Wi]:[]},i.prototype.qt=function(t){return t===this.Di&&this.zi.horzLine.visible},i.prototype.Ut=function(){return this.zi.vertLine.visible},i.prototype.nn=function(t,i){this.Li&&this.Di===t||this.Ei.clear();var n=[];return this.Di===t&&n.push(this.sn(this.Ei,i,this.Ii)),n},i.prototype.Ti=function(){return this.Li?[this.Ui]:[]},i.prototype.It=function(){return this.Di},i.prototype.hn=function(){this.Hi.vt(),this.Ei.forEach((function(t){return t.vt()})),this.Ui.vt(),this.Wi.vt()},i.prototype.rn=function(t){return t&&!t.ji().wi()?t.ji():null},i.prototype.Ji=function(t,i,n){this.en(t,i,n)&&this.hn()},i.prototype.en=function(t,i,n){var s=this.Fi,h=this.Vi,r=this.Ai,e=this.Bi,u=this.Di,a=this.rn(n);this.Bi=t,this.Fi=isNaN(t)?NaN:this.gi.bt().At(t),this.Di=n;var o=null!==a?a.kt():null;return null!==a&&null!==o?(this.Ai=i,this.Vi=a.Nt(i,o)):(this.Ai=NaN,this.Vi=NaN),s!==this.Fi||h!==this.Vi||e!==this.Bi||r!==this.Ai||u!==this.Di},i.prototype.Qi=function(){var t=this.gi._t().map((function(t){return t.an().un()})).filter(T),i=0===t.length?null:Math.max.apply(Math,t);this.Bi=null!==i?i:NaN},i.prototype.sn=function(t,i,n){var s=t.get(i);return void 0===s&&(s=new K(this,i,n),t.set(i,s)),s},i}(G);function tt(t){return"left"===t||"right"===t}var it=function(){function t(t){this.on=new Map,this.ln=[],this.fn=t}return t.prototype.cn=function(t,i){var n=function(t,i){return void 0===t?i:{vn:Math.max(t.vn,i.vn),_n:t._n||i._n}}(this.on.get(t),i);this.on.set(t,n)},t.prototype.dn=function(){return this.fn},t.prototype.wn=function(t){var i=this.on.get(t);return void 0===i?{vn:this.fn}:{vn:Math.max(this.fn,i.vn),_n:i._n}},t.prototype.Mn=function(){this.ln=[{bn:0}]},t.prototype.mn=function(t){this.ln=[{bn:1,St:t}]},t.prototype.gn=function(){this.ln=[{bn:4}]},t.prototype.pn=function(t){this.ln.push({bn:2,St:t})},t.prototype.yn=function(t){this.ln.push({bn:3,St:t})},t.prototype.kn=function(){return this.ln},t.prototype.xn=function(t){for(var i=this,n=0,s=t.ln;n16)throw new TypeError("invalid length");if(0===i)return t.toString();return("0000000000000000"+t.toString()).slice(-i)}var ht=function(){function t(t,i){if(i||(i=1),k(t)&&x(t)||(t=100),t<0)throw new TypeError("invalid base");this._i=t,this.Cn=i,this.Sn()}return t.prototype.format=function(t){var i=t<0?"−":"";return t=Math.abs(t),i+this.Tn(t)},t.prototype.Sn=function(){if(this.Dn=0,this._i>0&&this.Cn>0)for(var t=this._i;t>1;)t/=10,this.Dn++},t.prototype.Tn=function(t){var i=this._i/this.Cn,n=Math.floor(t),s="",h=void 0!==this.Dn?this.Dn:NaN;if(i>1){var r=+(Math.round(t*i)-n*i).toFixed(this.Dn);r>=i&&(r-=i,n+=1),s=nt+st(+r.toFixed(this.Dn)*this.Cn,h)}else n=Math.round(n*i)/i,h>0&&(s=nt+st(0,h));return n.toFixed(0)+s},t}(),rt=function(t){function i(i){return void 0===i&&(i=100),t.call(this,i)||this}return b(i,t),i.prototype.format=function(i){return"".concat(t.prototype.format.call(this,i),"%")},i}(ht),et=function(){function t(t){this.An=t}return t.prototype.format=function(t){var i="";return t<0&&(i="-",t=-t),t<995?i+this.Bn(t):t<999995?i+this.Bn(t/1e3)+"K":t<999999995?(t=1e3*Math.round(t/1e3),i+this.Bn(t/1e6)+"M"):(t=1e6*Math.round(t/1e6),i+this.Bn(t/1e9)+"B")},t.prototype.Bn=function(t){var i=Math.pow(10,this.An);return((t=Math.round(t*i)/i)>=1e-15&&t<1?t.toFixed(this.An).replace(/\.?0+$/,""):String(t)).replace(/(\.[1-9]*)0+$/,(function(t,i){return i}))},t}();function ut(t,i,n,s){if(0!==i.length){var h=i[s.from].tt,r=i[s.from].it;t.moveTo(h,r);for(var e=s.from+1;ethis.X.J.from&&(t.lineTo(this.X.G[this.X.J.to-1].tt,this.X.En),t.lineTo(this.X.G[this.X.J.from].tt,this.X.En));t.closePath(),t.fillStyle=this.Fn(t),t.fill()}},i}(O),ot=function(t){function i(){return null!==t&&t.apply(this,arguments)||this}return b(i,t),i.prototype.Fn=function(t){var i=this.X,n=t.createLinearGradient(0,0,0,i.Vn);return n.addColorStop(0,i.Pn),n.addColorStop(1,i.Rn),n},i}(at),lt=function(t){function i(){var i=null!==t&&t.apply(this,arguments)||this;return i.X=null,i}return b(i,t),i.prototype.Z=function(t){this.X=t},i.prototype.Y=function(t){if(null!==this.X&&0!==this.X.G.length&&null!==this.X.J)if(t.lineCap="butt",t.lineWidth=this.X.Vt,n(t,this.X.Pt),t.strokeStyle=this.zn(t),t.lineJoin="round",1===this.X.G.length){t.beginPath();var i=this.X.G[0];t.moveTo(i.tt-this.X.Ln/2,i.it),t.lineTo(i.tt+this.X.Ln/2,i.it),void 0!==i.A&&(t.strokeStyle=i.A),t.stroke()}else this.Wn(t,this.X)},i.prototype.Wn=function(t,i){t.beginPath(),ut(t,i.G,i.On,i.J),t.stroke()},i}(O),ft=function(t){function i(){return null!==t&&t.apply(this,arguments)||this}return b(i,t),i.prototype.Wn=function(t,i){var n,s,h=i.G,r=i.J,e=i.On,u=i.ht;if(0!==h.length&&null!==r){t.beginPath();var a=h[r.from];t.moveTo(a.tt,a.it);var o=null!==(n=a.A)&&void 0!==n?n:u;t.strokeStyle=o;for(var l=function(i){t.stroke(),t.beginPath(),t.strokeStyle=i,o=i},f=r.from+1;f>1,u=s+e;n(t[u],i)?(s=u+1,r-=e+1):r=e}return s}function vt(t,i,n,s,h){void 0===s&&(s=0),void 0===h&&(h=t.length);for(var r=h-s;0>1,u=s+e;n(i,t[u])?r=e:(s=u+1,r-=e+1)}return s}function _t(t,i){return t.rt0&&r=s&&(u=r-1),e>0&&e=2)Math.max(1,Math.floor(i))%2!=this.Ms%2&&this.Ms--;this.bs=this.Bt.ps?Math.min(this.Ms,Math.floor(i)):this.Ms;for(var h=null,r=this.bs<=this.Ms&&this.Bt.ws>=Math.floor(1.5*i),e=this.Bt.J.from;ed+M-1&&(g=(p=d+M-1)-f+1),t.fillRect(m,g,l-m,p-g+1)}var y=o+b,k=Math.max(d,Math.round(u.Cs*i)-a),x=k+f-1;x>d+M-1&&(k=(x=d+M-1)-f+1),t.fillRect(c+1,k,y-c,x-k+1)}}}},t.prototype.gs=function(t){var i=Math.floor(t);return Math.max(i,Math.floor(function(t,i){return Math.floor(.3*t*i)}(e(this.Bt).ws,t)))},t}(),pt=function(t){function i(i,n){return t.call(this,i,n,!1)||this}return b(i,t),i.prototype.rs=function(t,i,n){i.es(this.Yn,D(this.$n)),t.Ss(this.Yn,n,D(this.$n))},i.prototype.Ts=function(t,i,n){return{rt:t,open:i.St[0],high:i.St[1],low:i.St[2],close:i.St[3],tt:NaN,Ns:NaN,ys:NaN,ks:NaN,Cs:NaN}},i.prototype.Gn=function(){var t=this,i=this.Kn.ls();this.Yn=this.Kn.an().fs().map((function(n){return t.cs(n.vs,n,i)}))},i}(Mt),yt=function(t){function i(){var i=null!==t&&t.apply(this,arguments)||this;return i.zt=new gt,i}return b(i,t),i.prototype.dt=function(t,i){if(!this.Kn.yt())return null;var n=this.Kn.R();this.Jn();var s={an:this.Yn,ws:this.Xn.bt().ws(),xs:n.openVisible,ps:n.thinBars,J:this.$n};return this.zt.Z(s),this.zt},i.prototype.ts=function(){var t=this;this.Yn.forEach((function(i){i.A=t.Kn.ls().As(i.rt).Ds}))},i.prototype.cs=function(t,i,n){return m(m({},this.Ts(t,i,n)),{A:n.As(t).Ds})},i}(pt);function kt(t,i,n){return Math.min(Math.max(t,i),n)}function xt(t,i,n){return i-t<=n}function Nt(t){return t<=0?NaN:Math.log(t)/Math.log(10)}function Ct(t){var i=Math.ceil(t);return i%2!=0?i-1:i}function St(t){var i=Math.ceil(t);return i%2==0?i-1:i}var Tt=function(t){function i(){return null!==t&&t.apply(this,arguments)||this}return b(i,t),i.prototype.Fn=function(t){var i=this.X,n=t.createLinearGradient(0,0,0,i.Vn),s=kt(i.En/i.Vn,0,1);return n.addColorStop(0,i.Bs),n.addColorStop(s,i.Ls),n.addColorStop(s,i.Es),n.addColorStop(1,i.Os),n},i}(at),Dt=function(t){function i(){return null!==t&&t.apply(this,arguments)||this}return b(i,t),i.prototype.zn=function(t){var i=this.X,n=t.createLinearGradient(0,0,0,i.Vn),s=kt(i.En/i.Vn,0,1);return n.addColorStop(0,i.Pn),n.addColorStop(s,i.Pn),n.addColorStop(s,i.Rn),n.addColorStop(1,i.Rn),n},i}(lt),At=function(t){function i(i,n){var s=t.call(this,i,n)||this;return s.Fs=new Tt,s.Vs=new Dt,s.ut=new E,s.ut.U([s.Fs,s.Vs]),s}return b(i,t),i.prototype.dt=function(t,i){if(!this.Kn.yt())return null;var n=this.Kn.kt();if(null===n)return null;var s=this.Kn.R();this.Jn();var h=this.Kn.Ct().Nt(s.baseValue.price,n.St),r=this.Xn.bt().ws();return this.Fs.Z({G:this.Yn,Bs:s.topFillColor1,Ls:s.topFillColor2,Es:s.bottomFillColor1,Os:s.bottomFillColor2,Vt:s.lineWidth,Pt:s.lineStyle,On:0,En:h,Vn:t,J:this.$n,Ln:r}),this.Vs.Z({G:this.Yn,Pn:s.topLineColor,Rn:s.bottomLineColor,Vt:s.lineWidth,Pt:s.lineStyle,On:0,En:h,Vn:t,J:this.$n,Ln:r}),this.ut},i.prototype.cs=function(t,i){return this.os(t,i)},i}(bt),Bt=function(){function t(){this.Bt=null,this.Ms=0}return t.prototype.Z=function(t){this.Bt=t},t.prototype.H=function(t,i,n,s){if(null!==this.Bt&&0!==this.Bt.an.length&&null!==this.Bt.J){if(this.Ms=function(t,i){if(t>=2.5&&t<=4)return Math.floor(3*i);var n=1-.2*Math.atan(Math.max(4,t)-4)/(.5*Math.PI),s=Math.floor(t*n*i),h=Math.floor(t*i),r=Math.min(s,h);return Math.max(Math.floor(i),r)}(this.Bt.ws,i),this.Ms>=2)Math.floor(i)%2!=this.Ms%2&&this.Ms--;var h=this.Bt.an;this.Bt.Ps&&this.Rs(t,h,this.Bt.J,i),this.Bt.zs&&this.Ws(t,h,this.Bt.J,this.Bt.ws,i);var r=this.Is(i);(!this.Bt.zs||this.Ms>2*r)&&this.js(t,h,this.Bt.J,i)}},t.prototype.Rs=function(t,i,n,s){if(null!==this.Bt){var h="",r=Math.min(Math.floor(s),Math.floor(this.Bt.ws*s));r=Math.max(Math.floor(s),Math.min(r,this.Ms));for(var e=Math.floor(.5*r),u=null,a=n.from;a2*e)I(t,l,c,f-l+1,v-c+1,e);else{var _=f-l+1;t.fillRect(l,c,_,v-c+1)}u=f}},t.prototype.js=function(t,i,n,s){if(null!==this.Bt)for(var h="",r=this.Is(s),e=n.from;eo||t.fillRect(l,a,f-l+1,o-a+1)}},t}(),Lt=function(t){function i(){var i=null!==t&&t.apply(this,arguments)||this;return i.zt=new Bt,i}return b(i,t),i.prototype.dt=function(t,i){if(!this.Kn.yt())return null;var n=this.Kn.R();this.Jn();var s={an:this.Yn,ws:this.Xn.bt().ws(),Ps:n.wickVisible,zs:n.borderVisible,J:this.$n};return this.zt.Z(s),this.zt},i.prototype.ts=function(){var t=this;this.Yn.forEach((function(i){var n=t.Kn.ls().As(i.rt);i.A=n.Ds,i.qs=n.Us,i.Tt=n.Hs}))},i.prototype.cs=function(t,i,n){var s=n.As(t);return m(m({},this.Ts(t,i,n)),{A:s.Ds,qs:s.Us,Tt:s.Hs})},i}(pt),Et=function(){function t(){this.Bt=null,this.Ys=[]}return t.prototype.Z=function(t){this.Bt=t,this.Ys=[]},t.prototype.H=function(t,i,n,s){if(null!==this.Bt&&0!==this.Bt.G.length&&null!==this.Bt.J){this.Ys.length||this.$s(i);for(var h=Math.max(1,Math.floor(i)),r=Math.round(this.Bt.Ks*i)-Math.floor(h/2),e=r+h,u=this.Bt.J.from;ul.Zs?l.jn=o.In-i-1:o.In=l.jn+i+1))}var f=Math.ceil(this.Bt.ws*t);for(s=this.Bt.J.from;s0&&f<4)for(s=this.Bt.J.from;sf&&(o.Xs>o.Zs?o.jn-=1:o.In+=1)}}else this.Ys=[]},t}();function Ot(t){return{G:[],ws:t,Ks:NaN,J:null}}function Ft(t,i,n){return{rt:t,et:i,tt:NaN,it:NaN,A:n}}var Vt=function(t){function i(i,n){var s=t.call(this,i,n,!1)||this;return s.ut=new E,s.Js=Ot(0),s.zt=new Et,s}return b(i,t),i.prototype.dt=function(t,i){return this.Kn.yt()?(this.Jn(),this.ut):null},i.prototype.Gn=function(){var t=this.Xn.bt().ws();this.Js=Ot(t);for(var i=0,n=0,s=this.Kn.R().color,h=0,r=this.Kn.an().fs();hMath.ceil(this.Bt.Yt*i))){var u=Math.ceil(this.Bt.Ht*i);t.lineCap="butt",t.strokeStyle=this.Bt.A,t.lineWidth=Math.floor(this.Bt.Vt*i),n(t,this.Bt.Pt),s(t,e,0,u)}}},t}(),qt=function(){function t(t){this.wh={Ht:0,Yt:0,it:0,A:"rgba(0, 0, 0, 0)",Vt:1,Pt:0,yt:!1},this.Mh=new jt,this.ft=!0,this.Kn=t,this.Xn=t.jt(),this.Mh.Z(this.wh)}return t.prototype.vt=function(){this.ft=!0},t.prototype.dt=function(t,i){return this.Kn.yt()?(this.ft&&(this.bh(t,i),this.ft=!1),this.Mh):null},t}(),Ut=function(t){function i(i){return t.call(this,i)||this}return b(i,t),i.prototype.bh=function(t,i){this.wh.yt=!1;var n=this.Kn.Ct(),s=n.mh().mh;if(2===s||3===s){var h=this.Kn.R();if(h.baseLineVisible&&this.Kn.yt()){var r=this.Kn.kt();null!==r&&(this.wh.yt=!0,this.wh.it=n.Nt(r.St,r.St),this.wh.Ht=i,this.wh.Yt=t,this.wh.A=h.baseLineColor,this.wh.Vt=h.baseLineWidth,this.wh.Pt=h.baseLineStyle)}}},i}(qt),Ht=function(){function t(){this.Bt=null}return t.prototype.Z=function(t){this.Bt=t},t.prototype.gh=function(){return this.Bt},t.prototype.H=function(t,i,n,s){var h=this.Bt;if(null!==h){t.save();var r=Math.max(1,Math.floor(i)),e=r%2/2,u=Math.round(h.Zs.x*i)+e,a=h.Zs.y*i;t.fillStyle=h.ph,t.beginPath();var o=Math.max(2,1.5*h.yh)*i;t.arc(u,a,o,0,2*Math.PI,!1),t.fill(),t.fillStyle=h.kh,t.beginPath(),t.arc(u,a,h.st*i,0,2*Math.PI,!1),t.fill(),t.lineWidth=r,t.strokeStyle=h.xh,t.beginPath(),t.arc(u,a,h.st*i+r/2,0,2*Math.PI,!1),t.stroke(),t.restore()}},t}(),Yt=[{Nh:0,Ch:.25,Sh:4,Th:10,Dh:.25,Ah:0,Bh:.4,Lh:.8},{Nh:.25,Ch:.525,Sh:10,Th:14,Dh:0,Ah:0,Bh:.8,Lh:0},{Nh:.525,Ch:1,Sh:14,Th:14,Dh:0,Ah:0,Bh:0,Lh:0}];function $t(t,i,n,s){return function(t,i){if("transparent"===t)return t;var n=d(t),s=n[3];return"rgba(".concat(n[0],", ").concat(n[1],", ").concat(n[2],", ").concat(i*s,")")}(t,n+(s-n)*i)}function Kt(t,i){for(var n,s=t%2600/2600,r=0,e=Yt;r=u.Nh&&s<=u.Ch){n=u;break}}h(void 0!==n,"Last price animation internal logic error");var a,o,l,f=(s-n.Nh)/(n.Ch-n.Nh);return{kh:$t(i,f,n.Dh,n.Ah),xh:$t(i,f,n.Bh,n.Lh),st:(a=f,o=n.Sh,l=n.Th,o+(l-o)*a)}}var Xt=function(){function t(t){this.zt=new Ht,this.ft=!0,this.Eh=!0,this.Oh=performance.now(),this.Fh=this.Oh-1,this.Vh=t}return t.prototype.Ph=function(){this.Fh=this.Oh-1,this.vt()},t.prototype.Rh=function(){if(this.vt(),2===this.Vh.R().lastPriceAnimation){var t=performance.now(),i=this.Fh-t;if(i>0)return void(i<650&&(this.Fh+=2600));this.Oh=t,this.Fh=t+2600}},t.prototype.vt=function(){this.ft=!0},t.prototype.zh=function(){this.Eh=!0},t.prototype.yt=function(){return 0!==this.Vh.R().lastPriceAnimation},t.prototype.Wh=function(){switch(this.Vh.R().lastPriceAnimation){case 0:return!1;case 1:return!0;case 2:return performance.now()<=this.Fh}},t.prototype.dt=function(t,i){return this.ft?(this.wt(t,i),this.ft=!1,this.Eh=!1):this.Eh&&(this.Ih(),this.Eh=!1),this.zt},t.prototype.wt=function(t,i){this.zt.Z(null);var n=this.Vh.jt().bt(),s=n.ss(),h=this.Vh.kt();if(null!==s&&null!==h){var r=this.Vh.jh(!0);if(!r.qh&&s.Uh(r.vs)){var e={x:n.At(r.vs),y:this.Vh.Ct().Nt(r.et,h.St)},u=r.A,a=this.Vh.R().lineWidth,o=Kt(this.Hh(),u);this.zt.Z({ph:u,yh:a,kh:o.kh,xh:o.xh,st:o.st,Zs:e})}}},t.prototype.Ih=function(){var t=this.zt.gh();if(null!==t){var i=Kt(this.Hh(),t.ph);t.kh=i.kh,t.xh=i.xh,t.st=i.st}},t.prototype.Hh=function(){return this.Wh()?performance.now()-this.Oh:2599},t}();function Zt(t,i){return St(Math.min(Math.max(t,12),30)*i)}function Jt(t,i){switch(t){case"arrowDown":case"arrowUp":return Zt(i,1);case"circle":return Zt(i,.8);case"square":return Zt(i,.7)}}function Gt(t){return Ct(Zt(t,1))}function Qt(t){return Math.max(Zt(t,.1),3)}function ti(t,i,n,s,h){var r=Jt("square",n),e=(r-1)/2,u=t-e,a=i-e;return s>=u&&s<=u+r&&h>=a&&h<=a+r}function ii(t,i,n,s,h){var r=(Jt("arrowUp",h)-1)/2,e=(St(h/2)-1)/2;i.beginPath(),t?(i.moveTo(n-r,s),i.lineTo(n,s-r),i.lineTo(n+r,s),i.lineTo(n+e,s),i.lineTo(n+e,s+r),i.lineTo(n-e,s+r),i.lineTo(n-e,s)):(i.moveTo(n-r,s),i.lineTo(n,s+r),i.lineTo(n+r,s),i.lineTo(n+e,s),i.lineTo(n+e,s-r),i.lineTo(n-e,s-r),i.lineTo(n-e,s)),i.fill()}function ni(t,i,n,s,h,r){return ti(i,n,s,h,r)}var si=function(t){function i(){var i=null!==t&&t.apply(this,arguments)||this;return i.Bt=null,i.rh=new zt,i.W=-1,i.I="",i.Yh="",i}return b(i,t),i.prototype.Z=function(t){this.Bt=t},i.prototype.eh=function(t,i){this.W===t&&this.I===i||(this.W=t,this.I=i,this.Yh=B(t,i),this.rh.ih())},i.prototype.$h=function(t,i){if(null===this.Bt||null===this.Bt.J)return null;for(var n=this.Bt.J.from;n=t&&h<=t+n&&r>=i-e&&r<=i+e}(t.tt,t.Gt.it,t.Gt.Ht,t.Gt.Yt,i,n))||function(t,i,n){if(0===t.hs)return!1;switch(t.Gh){case"arrowDown":case"arrowUp":return ni(0,t.tt,t.it,t.hs,i,n);case"circle":return function(t,i,n,s,h){var r=2+Jt("circle",n)/2,e=t-s,u=i-h;return Math.sqrt(e*e+u*u)<=r}(t.tt,t.it,t.hs,i,n);case"square":return ti(t.tt,t.it,t.hs,i,n)}}(t,i,n)}function ei(t,i,n,s,h,r,e,u,a){var o=k(n)?n:n.close,l=k(n)?n:n.high,f=k(n)?n:n.low,c=k(i.size)?Math.max(i.size,0):1,v=Gt(u.ws())*c,_=v/2;switch(t.hs=v,i.position){case"inBar":return t.it=e.Nt(o,a),void(void 0!==t.Gt&&(t.Gt.it=t.it+_+r+.6*h));case"aboveBar":return t.it=e.Nt(l,a)-_-s.Qh,void 0!==t.Gt&&(t.Gt.it=t.it-_-.6*h,s.Qh+=1.2*h),void(s.Qh+=v+r);case"belowBar":return t.it=e.Nt(f,a)+_+s.tr,void 0!==t.Gt&&(t.Gt.it=t.it+_+r+.6*h,s.tr+=1.2*h),void(s.tr+=v+r)}i.position}var ui=function(){function t(t,i){this.ft=!0,this.ir=!0,this.nr=!0,this.sr=null,this.zt=new si,this.Vh=t,this.gi=i,this.Bt={G:[],J:null}}return t.prototype.vt=function(t){this.ft=!0,this.nr=!0,"data"===t&&(this.ir=!0)},t.prototype.dt=function(t,i,n){if(!this.Vh.yt())return null;this.ft&&this.Jn();var s=this.gi.R().layout;return this.zt.eh(s.fontSize,s.fontFamily),this.zt.Z(this.Bt),this.zt},t.prototype.hr=function(){if(this.nr){if(this.Vh.rr().length>0){var t=this.gi.bt().ws(),i=Qt(t),n=1.5*Gt(t)+2*i;this.sr={above:n,below:n}}else this.sr=null;this.nr=!1}return this.sr},t.prototype.Jn=function(){var t=this.Vh.Ct(),i=this.gi.bt(),n=this.Vh.rr();this.ir&&(this.Bt.G=n.map((function(t){return{rt:t.time,tt:0,it:0,hs:0,Gh:t.shape,A:t.color,Xh:t.Xh,Zh:t.id,Gt:void 0}})),this.ir=!1);var s=this.gi.R().layout;this.Bt.J=null;var h=i.ss();if(null!==h){var r=this.Vh.kt();if(null!==r&&0!==this.Bt.G.length){var e=NaN,u=Qt(i.ws()),a={Qh:u,tr:u};this.Bt.J=wt(this.Bt.G,h,!0);for(var o=this.Bt.J.from;o0&&(f.Gt={Jh:l.text,it:0,Ht:0,Yt:0});var c=this.Vh.er(l.time);null!==c&&ei(f,l,c,a,s.fontSize,u,t,i,r.St)}this.ft=!1}}},t}(),ai=function(t){function i(i){return t.call(this,i)||this}return b(i,t),i.prototype.bh=function(t,i){var n=this.wh;n.yt=!1;var s=this.Kn.R();if(s.priceLineVisible&&this.Kn.yt()){var h=this.Kn.jh(0===s.priceLineSource);h.qh||(n.yt=!0,n.it=h.ti,n.A=this.Kn.ur(h.A),n.Ht=i,n.Yt=t,n.Vt=s.priceLineWidth,n.Pt=s.priceLineStyle)}},i}(qt),oi=function(t){function i(i){var n=t.call(this)||this;return n.Wt=i,n}return b(i,t),i.prototype.vi=function(t,i,n){t.yt=!1,i.yt=!1;var s=this.Wt;if(s.yt()){var h=s.R(),r=h.lastValueVisible,e=""!==s.ar(),u=0===h.seriesLastValueMode,a=s.jh(!1);if(!a.qh){r&&(t.Gt=this.lr(a,r,u),t.yt=0!==t.Gt.length),(e||u)&&(i.Gt=this.cr(a,r,e,u),i.yt=i.Gt.length>0);var o=s.ur(a.A),l=w(o);n.t=l.t,n.A=l.i,n.ti=a.ti,i.Tt=s.jt().Dt(a.ti/s.Ct().Yt()),t.Tt=o}}},i.prototype.cr=function(t,i,n,s){var h="",r=this.Wt.ar();return n&&0!==r.length&&(h+="".concat(r," ")),i&&s&&(h+=this.Wt.Ct().vr()?t._r:t.dr),h.trim()},i.prototype.lr=function(t,i,n){return i?n?this.Wt.Ct().vr()?t.dr:t._r:t.Gt:""},i}($),li=function(){function t(t,i){this.wr=t,this.Mr=i}return t.prototype.br=function(t){return null!==t&&(this.wr===t.wr&&this.Mr===t.Mr)},t.prototype.mr=function(){return new t(this.wr,this.Mr)},t.prototype.gr=function(){return this.wr},t.prototype.pr=function(){return this.Mr},t.prototype.yr=function(){return this.Mr-this.wr},t.prototype.wi=function(){return this.Mr===this.wr||Number.isNaN(this.Mr)||Number.isNaN(this.wr)},t.prototype.xn=function(i){return null===i?this:new t(Math.min(this.gr(),i.gr()),Math.max(this.pr(),i.pr()))},t.prototype.kr=function(t){if(k(t)&&0!==this.Mr-this.wr){var i=.5*(this.Mr+this.wr),n=this.Mr-i,s=this.wr-i;n*=t,s*=t,this.Mr=i+n,this.wr=i+s}},t.prototype.Nr=function(t){k(t)&&(this.Mr+=t,this.wr+=t)},t.prototype.Cr=function(){return{minValue:this.wr,maxValue:this.Mr}},t.Sr=function(i){return null===i?null:new t(i.minValue,i.maxValue)},t}(),fi=function(){function t(t,i){this.Tr=t,this.Dr=i||null}return t.prototype.Ar=function(){return this.Tr},t.prototype.Br=function(){return this.Dr},t.prototype.Cr=function(){return null===this.Tr?null:{priceRange:this.Tr.Cr(),margins:this.Dr||void 0}},t.Sr=function(i){return null===i?null:new t(li.Sr(i.priceRange),i.margins)},t}(),ci=function(t){function i(i,n){var s=t.call(this,i)||this;return s.Lr=n,s}return b(i,t),i.prototype.bh=function(t,i){var n=this.wh;n.yt=!1;var s=this.Lr.R();if(this.Kn.yt()&&s.lineVisible){var h=this.Lr.Er();null!==h&&(n.yt=!0,n.it=h,n.A=s.color,n.Ht=i,n.Yt=t,n.Vt=s.lineWidth,n.Pt=s.lineStyle)}},i}(qt),vi=function(t){function i(i,n){var s=t.call(this)||this;return s.Vh=i,s.Lr=n,s}return b(i,t),i.prototype.vi=function(t,i,n){t.yt=!1,i.yt=!1;var s=this.Lr.R(),h=s.axisLabelVisible,r=""!==s.title,e=this.Vh;if(h&&e.yt()){var u=this.Lr.Er();if(null!==u){r&&(i.Gt=s.title,i.yt=!0),i.Tt=e.jt().Dt(u/e.Ct().Yt()),t.Gt=e.Ct().Or(s.price),t.yt=!0;var a=w(s.color);n.t=a.t,n.A=a.i,n.ti=u}}},i}($),_i=function(){function t(t,i){this.Vh=t,this.zi=i,this.Fr=new ci(t,this),this.uh=new vi(t,this),this.Vr=new It(this.uh,t,t.jt())}return t.prototype.Pr=function(t){y(this.zi,t),this.vt(),this.Vh.jt().Rr()},t.prototype.R=function(){return this.zi},t.prototype.tn=function(){return[this.Fr,this.Vr]},t.prototype.zr=function(){return this.uh},t.prototype.vt=function(){this.Fr.vt(),this.uh.vt()},t.prototype.Er=function(){var t=this.Vh,i=t.Ct();if(t.jt().bt().wi()||i.wi())return null;var n=t.kt();return null===n?null:i.Nt(this.zi.price,n.St)},t}(),di=function(t){function i(i){var n=t.call(this)||this;return n.gi=i,n}return b(i,t),i.prototype.jt=function(){return this.gi},i}(G),wi={Ds:"",Hs:"",Us:""},Mi=function(){function t(t){this.Vh=t}return t.prototype.As=function(t,i){var n=this.Vh.Wr(),s=this.Vh.R();switch(n){case"Line":return this.Ir(s,t,i);case"Area":return this.jr(s);case"Baseline":return this.qr(s,t,i);case"Bar":return this.Ur(s,t,i);case"Candlestick":return this.Hr(s,t,i);case"Histogram":return this.Yr(s,t,i)}throw new Error("Unknown chart style")},t.prototype.Ur=function(t,i,n){var s=m({},wi),h=t.upColor,r=t.downColor,a=h,o=r,l=e(this.$r(i,n)),f=u(l.St[0])<=u(l.St[3]);return void 0!==l.A?(s.Ds=l.A,s.Hs=l.A):(s.Ds=f?h:r,s.Hs=f?a:o),s},t.prototype.Hr=function(t,i,n){var s,h,r,a=m({},wi),o=t.upColor,l=t.downColor,f=t.borderUpColor,c=t.borderDownColor,v=t.wickUpColor,_=t.wickDownColor,d=e(this.$r(i,n)),w=u(d.St[0])<=u(d.St[3]);return a.Ds=null!==(s=d.A)&&void 0!==s?s:w?o:l,a.Hs=null!==(h=d.Tt)&&void 0!==h?h:w?f:c,a.Us=null!==(r=d.qs)&&void 0!==r?r:w?v:_,a},t.prototype.jr=function(t){return m(m({},wi),{Ds:t.lineColor})},t.prototype.qr=function(t,i,n){var s=e(this.$r(i,n)).St[3]>=t.baseValue.price;return m(m({},wi),{Ds:s?t.topLineColor:t.bottomLineColor})},t.prototype.Ir=function(t,i,n){var s,h=e(this.$r(i,n));return m(m({},wi),{Ds:null!==(s=h.A)&&void 0!==s?s:t.color})},t.prototype.Yr=function(t,i,n){var s=m({},wi),h=e(this.$r(i,n));return s.Ds=void 0!==h.A?h.A:t.color,s},t.prototype.$r=function(t,i){return void 0!==i?i.St:this.Vh.an().Kr(t)},t}(),bi=30,mi=function(){function t(){this.Xr=[],this.Zr=new Map,this.Jr=new Map}return t.prototype.Gr=function(){return this.hs()>0?this.Xr[this.Xr.length-1]:null},t.prototype.Qr=function(){return this.hs()>0?this.te(0):null},t.prototype.un=function(){return this.hs()>0?this.te(this.Xr.length-1):null},t.prototype.hs=function(){return this.Xr.length},t.prototype.wi=function(){return 0===this.hs()},t.prototype.Uh=function(t){return null!==this.ie(t,0)},t.prototype.Kr=function(t){return this.ne(t)},t.prototype.ne=function(t,i){void 0===i&&(i=0);var n=this.ie(t,i);return null===n?null:m(m({},this.se(n)),{vs:this.te(n)})},t.prototype.fs=function(){return this.Xr},t.prototype.he=function(t,i,n){if(this.wi())return null;for(var s=null,h=0,r=n;h0&&(i-=1),i!==this.Xr.length&&this.te(i)t}))},t.prototype.fe=function(t,i,n){for(var s=null,h=t;hs.ve&&(s.ve=r)))}return s},t.prototype.re=function(t,i,n){if(this.wi())return null;var s=null,h=e(this.Qr()),r=e(this.un()),u=Math.max(t,h),a=Math.min(i,r),o=Math.ceil(u/bi)*bi,l=Math.max(o,Math.floor(a/bi)*bi),f=this.oe(u),c=this.le(Math.min(a,o,i));s=gi(s,this.fe(f,c,n));var v=this.Zr.get(n);void 0===v&&(v=new Map,this.Zr.set(n,v));for(var _=Math.max(o+1,u);_=1||i<1e-15)return Ci;var n=Math.ceil(Math.abs(Math.log10(i))),s=Ci.lu+n;return{lu:s,fu:1/Math.pow(10,s)}}var Vi,Pi=function(){function t(t,i){if(this.cu=t,this.vu=i,function(t){if(t<0)return!1;for(var i=t;i>1;i/=10)if(i%10!=0)return!1;return!0}(this.cu))this._u=[2,2.5,2];else{this._u=[];for(var n=this.cu;1!==n;){if(n%2==0)this._u.push(2),n/=2;else{if(n%5!=0)throw new Error("unexpected base");this._u.push(2,2.5),n/=5}if(this._u.length>100)throw new Error("something wrong with base")}}}return t.prototype.du=function(t,i,n){for(var s,h,r,e=0===this.cu?0:1/this.cu,u=Math.pow(10,Math.max(0,Math.ceil(Nt(t-i)))),a=0,o=this.vu[0];;){var l=xt(u,e,1e-14)&&u>e+1e-14,f=xt(u,n*o,1e-14),c=xt(u,1,1e-14);if(!(l&&f&&c))break;u/=o,o=this.vu[++a%this.vu.length]}if(u<=e+1e-14&&(u=e),u=Math.max(1,u),this._u.length>0&&(s=u,h=1,r=1e-14,Math.abs(s-h)e+1e-14;)u/=o,o=this._u[++a%this._u.length];return u},t}(),Ri=function(){function t(t,i,n,s){this.wu=[],this._i=t,this.cu=i,this.Mu=n,this.bu=s}return t.prototype.du=function(t,i){if(t=o?1:-1,v=null,_=0,d=a-(f+=f<0?l:0);d>o;d-=l){var w=this.bu(d,i,!0);null!==v&&Math.abs(w-v)u||(_1)throw new Error("Invalid top margin - expect value between 0 and 1, given=".concat(i));if(n<0||n>1||i+n>1)throw new Error("Invalid bottom margin - expect value between 0 and 1, given=".concat(n));if(i+n>1)throw new Error("Invalid margins - sum of margins must be less than 1, given=".concat(i+n));this.Ku(),this.Pu=null}},t.prototype.Xu=function(){return this.zi.autoScale},t.prototype.xu=function(){return 1===this.zi.mode},t.prototype.vr=function(){return 2===this.zi.mode},t.prototype.Zu=function(){return 3===this.zi.mode},t.prototype.mh=function(){return{_n:this.zi.autoScale,Ju:this.zi.invertScale,mh:this.zi.mode}},t.prototype.$u=function(t){var i=this.mh(),n=null;void 0!==t._n&&(this.zi.autoScale=t._n),void 0!==t.mh&&(this.zi.mode=t.mh,2!==t.mh&&3!==t.mh||(this.zi.autoScale=!0),this.Tu.Du=!1),1===i.mh&&t.mh!==i.mh&&(!function(t,i){if(null===t)return!1;var n=Li(t.gr(),i),s=Li(t.pr(),i);return isFinite(n)&&isFinite(s)}(this.Tr,this.Wu)?this.zi.autoScale=!0:null!==(n=Oi(this.Tr,this.Wu))&&this.Gu(n)),1===t.mh&&t.mh!==i.mh&&null!==(n=Ei(this.Tr,this.Wu))&&this.Gu(n);var s=i.mh!==this.zi.mode;s&&(2===i.mh||this.vr())&&this.Xe(),s&&(3===i.mh||this.Zu())&&this.Xe(),void 0!==t.Ju&&i.Ju!==t.Ju&&(this.zi.invertScale=t.Ju,this.Qu()),this.Ou.m(i,this.mh())},t.prototype.ta=function(){return this.Ou},t.prototype.S=function(){return this.ju.fontSize},t.prototype.Yt=function(){return this.Nu},t.prototype.ia=function(t){this.Nu!==t&&(this.Nu=t,this.Ku(),this.Pu=null)},t.prototype.na=function(){if(this.Cu)return this.Cu;var t=this.Yt()-this.sa()-this.ha();return this.Cu=t,t},t.prototype.Ar=function(){return this.ra(),this.Tr},t.prototype.Gu=function(t,i){var n=this.Tr;(i||null===n&&null!==t||null!==n&&!n.br(t))&&(this.Pu=null,this.Tr=t)},t.prototype.wi=function(){return this.ra(),0===this.Nu||!this.Tr||this.Tr.wi()},t.prototype.ea=function(t){return this.Ju()?t:this.Yt()-1-t},t.prototype.Nt=function(t,i){return this.vr()?t=Si(t,i):this.Zu()&&(t=Di(t,i)),this.Yu(t,i)},t.prototype.us=function(t,i,n){this.ra();for(var s=this.ha(),h=e(this.Ar()),r=h.gr(),u=h.pr(),a=this.na()-1,o=this.Ju(),l=a/(u-r),f=void 0===n?0:n.from,c=void 0===n?t.length:n.to,v=this.ua(),_=f;_=0&&a.ca(t),null!==a&&(a.fa(),this.Ha(a)),this.Vu=null},t.prototype._h=function(t){return t===this.Ba?"left":t===this.Ea?"right":"overlay"},t.prototype.Ya=function(){return this.Ba},t.prototype.$a=function(){return this.Ea},t.prototype.Ka=function(t,i){t.da(i)},t.prototype.Xa=function(t,i){t.wa(i),this.Ia()},t.prototype.Za=function(t){t.Ma()},t.prototype.Ja=function(t,i){t.ba(i)},t.prototype.Ga=function(t,i){t.ma(i),this.Ia()},t.prototype.Qa=function(t){t.ga()},t.prototype.Ia=function(){this.Fu.forEach((function(t){t.hn()}))},t.prototype.ji=function(){var t=null;return this.gi.R().rightPriceScale.visible&&0!==this.Ea.Ge().length?t=this.Ea:this.gi.R().leftPriceScale.visible&&0!==this.Ba.Ge().length?t=this.Ba:0!==this.Fu.length&&(t=this.Fu[0].Ct()),null===t&&(t=this.Ea),t},t.prototype.fh=function(){var t=null;return this.gi.R().rightPriceScale.visible?t=this.Ea:this.gi.R().leftPriceScale.visible&&(t=this.Ba),t},t.prototype.Ha=function(t){null!==t&&t.Xu()&&this.io(t)},t.prototype.no=function(t){var i=this.Da.ss();t.$u({_n:!0}),null!==i&&t.xa(i),this.Ia()},t.prototype.so=function(){this.io(this.Ba),this.io(this.Ea)},t.prototype.ho=function(){var t=this;this.Ha(this.Ba),this.Ha(this.Ea),this.Fu.forEach((function(i){t.lh(i)&&t.Ha(i.Ct())})),this.Ia(),this.gi.Rr()},t.prototype.oa=function(){return null===this.Vu&&(this.Vu=zi(this.Fu)),this.Vu},t.prototype.ro=function(){return this.Ta},t.prototype.eo=function(){return this.Aa},t.prototype.io=function(t){var i=t.ka();if(i&&i.length>0&&!this.Da.wi()){var n=this.Da.ss();null!==n&&t.xa(n)}t.hn()},t.prototype.qa=function(){var t=this.oa();if(0===t.length)return{uo:0,ja:0};for(var i=0,n=0,s=0;sn&&(n=h))}return{uo:i,ja:n}},t.prototype.Ua=function(t,i,n){var s=this.Va(i);if(null===s&&(s=this.La(i,this.gi.R().overlayPriceScales)),this.Fu.push(t),!tt(i)){var h=this.Ca.get(i)||[];h.push(t),this.Ca.set(i,h)}s.la(t),t.Si(s),t.Ci(n),this.Ha(s),this.Vu=null},t.prototype.Oa=function(t,i,n){i.mh!==n.mh&&this.io(t)},t.prototype.La=function(t,i){var n=m({visible:!0,autoScale:!0},S(i)),s=new ji(t,n,this.gi.R().layout,this.gi.R().localization);return s.ia(this.Yt()),s},t}(),Ui=function(t){return t.getUTCFullYear()};function Hi(t,i,n){return i.replace(/yyyy/g,function(t){return st(Ui(t),4)}(t)).replace(/yy/g,function(t){return st(Ui(t)%100,2)}(t)).replace(/MMMM/g,function(t,i){return new Date(t.getUTCFullYear(),t.getUTCMonth(),1).toLocaleString(i,{month:"long"})}(t,n)).replace(/MMM/g,function(t,i){return new Date(t.getUTCFullYear(),t.getUTCMonth(),1).toLocaleString(i,{month:"short"})}(t,n)).replace(/MM/g,function(t){return st(function(t){return t.getUTCMonth()+1}(t),2)}(t)).replace(/dd/g,function(t){return st(function(t){return t.getUTCDate()}(t),2)}(t))}var Yi=function(){function t(t,i){void 0===t&&(t="yyyy-MM-dd"),void 0===i&&(i="default"),this.ao=t,this.oo=i}return t.prototype.lo=function(t){return Hi(t,this.ao,this.oo)},t}(),$i=function(){function t(t){this.fo=t||"%h:%m:%s"}return t.prototype.lo=function(t){return this.fo.replace("%h",st(t.getUTCHours(),2)).replace("%m",st(t.getUTCMinutes(),2)).replace("%s",st(t.getUTCSeconds(),2))},t}(),Ki={co:"yyyy-MM-dd",vo:"%h:%m:%s",_o:" ",do:"default"},Xi=function(){function t(t){void 0===t&&(t={});var i=m(m({},Ki),t);this.wo=new Yi(i.co,i.do),this.Mo=new $i(i.vo),this.bo=i._o}return t.prototype.lo=function(t){return"".concat(this.wo.lo(t)).concat(this.bo).concat(this.Mo.lo(t))},t}();var Zi=function(){function t(t,i){void 0===i&&(i=50),this.mo=0,this.po=1,this.yo=1,this.Gs=new Map,this.ko=new Map,this.xo=t,this.No=i}return t.prototype.lo=function(t){var i=void 0===t.Co?new Date(1e3*t.So).getTime():new Date(Date.UTC(t.Co.year,t.Co.month-1,t.Co.day)).getTime(),n=this.Gs.get(i);if(void 0!==n)return n.To;if(this.mo===this.No){var s=this.ko.get(this.yo);this.ko.delete(this.yo),this.Gs.delete(r(s)),this.yo++,this.mo--}var h=this.xo(t);return this.Gs.set(i,{To:h,Do:this.po}),this.ko.set(this.po,i),this.mo++,this.po++,h},t}(),Ji=function(){function t(t,i){h(t<=i,"right should be >= left"),this.Ao=t,this.Bo=i}return t.prototype.In=function(){return this.Ao},t.prototype.jn=function(){return this.Bo},t.prototype.Lo=function(){return this.Bo-this.Ao+1},t.prototype.Uh=function(t){return this.Ao<=t&&t<=this.Bo},t.prototype.br=function(t){return this.Ao===t.In()&&this.Bo===t.jn()},t}();function Gi(t,i){return null===t||null===i?t===i:t.br(i)}var Qi,tn=function(){function t(){this.Eo=new Map,this.Gs=null}return t.prototype.Oo=function(t,i){this.Fo(i),this.Gs=null;for(var n=i;n=t&&d-c>=t&&(i.push(_),c=d)}for(;athis.Yo[this.Yo.length-1].rt.So)return i?this.Yo.length-1:null;var n=ct(this.Yo,t.So,(function(t,i){return t.rt.Soi/2&&!l?M.Sl=!1:M.Sl=f&&w.vs<=a||c&&w.vs>=o,v++}}return this.nl.length=v,this.il=this.nl,this.nl},t.prototype.Tl=function(){this.Zo=!0,this.pn(this.zi.barSpacing),this.yn(this.zi.rightOffset)},t.prototype.Dl=function(t){this.Zo=!0,this.Ho=t,this.bl(),this.al()},t.prototype.Al=function(t,i){var n=this.pl(t),s=this.ws(),h=s+i*(s/10);this.pn(h),this.zi.rightBarStaysOnScroll||this.yn(this.xl()+(n-this.pl(t)))},t.prototype.da=function(t){this.zu&&this.ga(),null===this.Ru&&null===this.tl&&(this.wi()||(this.Ru=t,this.Bl()))},t.prototype.wa=function(t){if(null!==this.tl){var i=kt(this.hh-t,0,this.hh),n=kt(this.hh-e(this.Ru),0,this.hh);0!==i&&0!==n&&this.pn(this.tl.ws*i/n)}},t.prototype.Ma=function(){null!==this.Ru&&(this.Ru=null,this.Ll())},t.prototype.ba=function(t){null===this.zu&&null===this.tl&&(this.wi()||(this.zu=t,this.Bl()))},t.prototype.ma=function(t){if(null!==this.zu){var i=(this.zu-t)/this.ws();this.sl=e(this.tl).xl+i,this.Zo=!0,this.bl()}},t.prototype.ga=function(){null!==this.zu&&(this.zu=null,this.Ll())},t.prototype.El=function(){this.Ol(this.zi.rightOffset)},t.prototype.Ol=function(t,i){var n=this;if(void 0===i&&(i=400),!isFinite(t))throw new RangeError("offset is required and must be finite number");if(!isFinite(i)||i<=0)throw new RangeError("animationDuration (optional) must be finite positive number");var s=this.sl,h=performance.now(),r=function(){var e=(performance.now()-h)/i,u=e>=1,a=u?t:s+(t-s)*e;n.yn(a),u||setTimeout(r,20)};r()},t.prototype.vt=function(t,i){this.Zo=!0,this.Yo=t,this.$o.Oo(t,i),this.bl()},t.prototype.Fl=function(){return this.Jo},t.prototype.Vl=function(){return this.Go},t.prototype.Pl=function(){return this.Qo},t.prototype.ml=function(){return this.Ho||0},t.prototype.Rl=function(t){var i=t.Lo();this.kl(this.hh/i),this.sl=t.jn()-this.ml(),this.bl(),this.Zo=!0,this.gi.yl(),this.gi.Rr()},t.prototype.zl=function(){var t=this._l(),i=this.dl();null!==t&&null!==i&&this.Rl(new Ji(t,i+this.zi.rightOffset))},t.prototype.Wl=function(t){var i=new Ji(t.from,t.to);this.Rl(i)},t.prototype.yi=function(t){return void 0!==this.qu.timeFormatter?this.qu.timeFormatter(t.Co||t.So):this.Il.lo(new Date(1e3*t.So))},t.prototype.Nl=function(){var t=this.gi.R(),i=t.handleScroll,n=t.handleScale;return!(i.horzTouchDrag||i.mouseWheel||i.pressedMouseMove||i.vertTouchDrag||n.axisDoubleClickReset||n.axisPressedMouseMove.time||n.mouseWheel||n.pinch)},t.prototype._l=function(){return 0===this.Yo.length?null:0},t.prototype.dl=function(){return 0===this.Yo.length?null:this.Yo.length-1},t.prototype.jl=function(t){return(this.hh-1-t)/this.hl},t.prototype.pl=function(t){var i=this.jl(t),n=this.ml()+this.sl-i;return Math.round(1e6*n)/1e6},t.prototype.kl=function(t){var i=this.hl;this.hl=t,this.Ml(),i!==this.hl&&(this.Zo=!0,this.ql())},t.prototype.ll=function(){if(this.Zo)if(this.Zo=!1,this.wi())this.Ul(nn.Uo());else{var t=this.ml(),i=this.hh/this.hl,n=this.sl+t,s=new Ji(n-i+1,n);this.Ul(new nn(s))}},t.prototype.Ml=function(){var t=this.Hl();if(this.hli&&(this.hl=i,this.Zo=!0)}},t.prototype.Hl=function(){return this.zi.fixLeftEdge&&this.zi.fixRightEdge&&0!==this.Yo.length?this.hh/this.Yo.length:this.zi.minBarSpacing},t.prototype.bl=function(){var t=this.Yl();this.sl>t&&(this.sl=t,this.Zo=!0);var i=this.$l();null!==i&&this.slthis.Bt.Ht?a.Al=this.Bt.Ht/h:a.Al=1,i+=a.Gl*a.Al}}var r=0;switch(this.Bt.Ql){case"top":r=0;break;case"center":r=Math.max((this.Bt.Yt-i)/2,0);break;case"bottom":r=Math.max(this.Bt.Yt-i,0)}t.fillStyle=this.Bt.A;for(var e=0,u=this.Bt.Zl;e20&&(this.rf=null,i=!0),this.Da.ma(t),this.yl(),i},t.prototype.Pf=function(){this.Da.ga(),this.Rr(),this.rf=null},t.prototype._t=function(){return this.hf},t.prototype.Wf=function(t,i,n){this.ct.Yi(t,i);var s=NaN,h=this.Da.gl(t),r=this.Da.ss();null!==r&&(h=Math.min(Math.max(r.In(),h),r.jn()));var e=n.ji(),u=e.kt();null!==u&&(s=e.qi(i,u)),s=this.vf.Je(s,h,n),this.ct.Zi(h,s,n),this.Re(),this.af.m(this.ct.Mt(),{x:t,y:i})},t.prototype.If=function(){this.Tf().Gi(),this.Re(),this.af.m(null,null)},t.prototype.Te=function(){var t=this.ct.It();if(null!==t){var i=this.ct.Ki(),n=this.ct.Xi();this.Wf(i,n,t)}this.ct.hn()},t.prototype.jf=function(t,i,n){var s=this.Da.pi(0);void 0!==i&&void 0!==n&&this.Da.vt(i,n);var h=this.Da.pi(0),r=this.Da.ml(),e=this.Da.ss();if(null!==e&&null!==s&&null!==h){var u=e.Uh(r),a=s.So>h.So,o=null!==t&&t>r&&!a,l=u&&this.Da.R().shiftVisibleRangeOnNewBar;if(o&&!l){var f=t-r;this.Da.yn(this.Da.xl()-f)}}this.Da.Dl(t)},t.prototype.Be=function(t){null!==t&&t.ho()},t.prototype.oh=function(t){var i=this.sf.find((function(i){return i.oa().includes(t)}));return void 0===i?null:i},t.prototype.yl=function(){this._f.hn(),this.sf.forEach((function(t){return t.ho()})),this.Te()},t.prototype.p=function(){this.sf.forEach((function(t){return t.p()})),this.sf.length=0,this.zi.localization.priceFormatter=void 0,this.zi.localization.timeFormatter=void 0},t.prototype.qf=function(){return this.cf},t.prototype.dh=function(){return this.cf.R()},t.prototype.Pa=function(){return this.uf},t.prototype.Uf=function(t,i){var n=this.sf[0],s=this.Hf(i,t,n);return this.hf.push(s),1===this.hf.length?this.Ce():this.Rr(),s},t.prototype.Yf=function(t){var i=this.oh(t),n=this.hf.indexOf(t);h(-1!==n,"Series not found"),this.hf.splice(n,1),e(i).ca(t),t.p&&t.p()},t.prototype.Ne=function(t,i){var n=e(this.oh(t));n.ca(t);var s=this.Nf(i);if(null===s){var h=t.Ni();n.la(t,i,h)}else{h=s.It===n?t.Ni():void 0;s.It.la(t,i,h)}},t.prototype.zl=function(){var t=new it(2);t.Mn(),this.mf(t)},t.prototype.$f=function(t){var i=new it(2);i.mn(t),this.mf(i)},t.prototype.gn=function(){var t=new it(2);t.gn(),this.mf(t)},t.prototype.pn=function(t){var i=new it(2);i.pn(t),this.mf(i)},t.prototype.yn=function(t){var i=new it(2);i.yn(t),this.mf(i)},t.prototype.Kf=function(){return this.zi.rightPriceScale.visible?"right":"left"},t.prototype.Xf=function(){return this.bf},t.prototype.Zf=function(){return this.wf},t.prototype.Dt=function(t){var i=this.bf,n=this.wf;if(i===n)return i;if(t=Math.max(0,Math.min(100,Math.round(100*t))),null===this.lf||this.lf.Pn!==n||this.lf.Rn!==i)this.lf={Pn:n,Rn:i,Jf:new Map};else{var s=this.lf.Jf.get(t);if(void 0!==s)return s}var h=function(t,i,n){var s=d(t),h=s[0],r=s[1],e=s[2],u=s[3],a=d(i),f=a[0],c=a[1],v=a[2],_=a[3],w=[o(h+n*(f-h)),o(r+n*(c-r)),o(e+n*(v-e)),l(u+n*(_-u))];return"rgba(".concat(w[0],", ").concat(w[1],", ").concat(w[2],", ").concat(w[3],")")}(n,i,t/100);return this.lf.Jf.set(t,h),h},t.prototype.Bf=function(t,i){var n=new it(i);if(null!==t){var s=this.sf.indexOf(t);n.cn(s,{vn:i})}return n},t.prototype.gf=function(t,i){return void 0===i&&(i=2),this.Bf(this.oh(t),i)},t.prototype.mf=function(t){this.ff&&this.ff(t),this.sf.forEach((function(t){return t.eo().ou().vt()}))},t.prototype.Hf=function(t,i,n){var s=new pi(this,t,i),h=void 0!==t.priceScaleId?t.priceScaleId:this.Kf();return n.la(s,h),tt(h)||s.Pr(t),s},t.prototype.Mf=function(t){var i=this.zi.layout;return"gradient"===i.background.type?0===t?i.background.topColor:i.background.bottomColor:i.background.color},t}();function cn(t){void 0!==t.borderColor&&(t.borderUpColor=t.borderColor,t.borderDownColor=t.borderColor),void 0!==t.wickColor&&(t.wickUpColor=t.wickColor,t.wickDownColor=t.wickColor)}function vn(t){return!k(t)&&!N(t)}function _n(t){return k(t)}!function(t){t[t.Disabled=0]="Disabled",t[t.Continuous=1]="Continuous",t[t.OnDataUpdate=2]="OnDataUpdate"}(an||(an={})),function(t){t[t.LastBar=0]="LastBar",t[t.LastVisible=1]="LastVisible"}(on||(on={})),function(t){t.Solid="solid",t.VerticalGradient="gradient"}(ln||(ln={}));var dn={allowDownsampling:!0};var wn=function(){function t(t,i){var n=this;this._resolutionMediaQueryList=null,this._resolutionListener=function(t){return n._onResolutionChanged()},this._canvasConfiguredListeners=[],this.canvas=t,this._canvasSize={width:this.canvas.clientWidth,height:this.canvas.clientHeight},this._options=i,this._configureCanvas(),this._installResolutionListener()}return t.prototype.destroy=function(){this._canvasConfiguredListeners.length=0,this._uninstallResolutionListener(),this.canvas=null},Object.defineProperty(t.prototype,"canvasSize",{get:function(){return{width:this._canvasSize.width,height:this._canvasSize.height}},enumerable:!0,configurable:!0}),t.prototype.resizeCanvas=function(t){this._canvasSize={width:t.width,height:t.height},this._configureCanvas()},Object.defineProperty(t.prototype,"pixelRatio",{get:function(){var t=this.canvas.ownerDocument.defaultView;if(null==t)throw new Error("No window is associated with the canvas");return t.devicePixelRatio>1||this._options.allowDownsampling?t.devicePixelRatio:1},enumerable:!0,configurable:!0}),t.prototype.subscribeCanvasConfigured=function(t){this._canvasConfiguredListeners.push(t)},t.prototype.unsubscribeCanvasConfigured=function(t){this._canvasConfiguredListeners=this._canvasConfiguredListeners.filter((function(i){return i!=t}))},t.prototype._configureCanvas=function(){var t=this.pixelRatio;this.canvas.style.width=this._canvasSize.width+"px",this.canvas.style.height=this._canvasSize.height+"px",this.canvas.width=this._canvasSize.width*t,this.canvas.height=this._canvasSize.height*t,this._emitCanvasConfigured()},t.prototype._emitCanvasConfigured=function(){var t=this;this._canvasConfiguredListeners.forEach((function(i){return i.call(t)}))},t.prototype._installResolutionListener=function(){if(null!==this._resolutionMediaQueryList)throw new Error("Resolution listener is already installed");var t=this.canvas.ownerDocument.defaultView;if(null==t)throw new Error("No window is associated with the canvas");var i=t.devicePixelRatio;this._resolutionMediaQueryList=t.matchMedia("all and (resolution: "+i+"dppx)"),this._resolutionMediaQueryList.addListener(this._resolutionListener)},t.prototype._uninstallResolutionListener=function(){null!==this._resolutionMediaQueryList&&(this._resolutionMediaQueryList.removeListener(this._resolutionListener),this._resolutionMediaQueryList=null)},t.prototype._reinstallResolutionListener=function(){this._uninstallResolutionListener(),this._installResolutionListener()},t.prototype._onResolutionChanged=function(){this._configureCanvas(),this._reinstallResolutionListener()},t}(),Mn=function(){function t(t,i){this.Ot=t,this.Ft=i}return t.prototype.br=function(t){return this.Ot===t.Ot&&this.Ft===t.Ft},t}();function bn(t){return t.ownerDocument&&t.ownerDocument.defaultView&&t.ownerDocument.defaultView.devicePixelRatio||1}function mn(t){var i=e(t.getContext("2d"));return i.setTransform(1,0,0,1,0,0),i}function gn(t,i){var n=t.createElement("canvas"),s=bn(n);return n.style.width="".concat(i.Ot,"px"),n.style.height="".concat(i.Ft,"px"),n.width=i.Ot*s,n.height=i.Ft*s,n}function pn(t,i){var n=e(t.ownerDocument).createElement("canvas");t.appendChild(n);var s=function(t,i){return void 0===i&&(i=dn),new wn(t,i)}(n,{allowDownsampling:!1});return s.resizeCanvas({width:i.Ot,height:i.Ft}),s}function yn(t,i){return t.Gf-i.Gf}function kn(t,i,n){var s=(t.Gf-i.Gf)/(t.rt-i.rt);return Math.sign(s)*Math.min(Math.abs(s),n)}var xn=function(){function t(t,i,n,s){this.Qf=null,this.tc=null,this.ic=null,this.nc=null,this.sc=null,this.hc=0,this.rc=0,this.ec=!1,this.uc=t,this.ac=i,this.oc=n,this.Cn=s}return t.prototype.lc=function(t,i){if(null!==this.Qf){if(this.Qf.rt===i)return void(this.Qf.Gf=t);if(Math.abs(this.Qf.Gf-t)50)){var n=0,s=kn(this.Qf,this.tc,this.ac),h=yn(this.Qf,this.tc),r=[s],e=[h];if(n+=h,null!==this.ic){var u=kn(this.tc,this.ic,this.ac);if(Math.sign(u)===Math.sign(s)){var a=yn(this.tc,this.ic);if(r.push(u),e.push(a),n+=a,null!==this.nc){var o=kn(this.ic,this.nc,this.ac);if(Math.sign(o)===Math.sign(s)){var l=yn(this.ic,this.nc);r.push(o),e.push(l),n+=l}}}}for(var f,c,v,_=0,d=0;d-1}function Sn(){return!!Nn&&/iPhone|iPad|iPod/.test(window.navigator.platform)}function Tn(t){Nn&&void 0!==window.chrome&&t.addEventListener("mousedown",(function(t){if(1===t.button)return t.preventDefault(),!1}))}var Dn=function(){function t(t,i,n){var s=this;this.wc=0,this.Mc=null,this.bc={tt:Number.NEGATIVE_INFINITY,it:Number.POSITIVE_INFINITY},this.mc=0,this.gc=null,this.yc={tt:Number.NEGATIVE_INFINITY,it:Number.POSITIVE_INFINITY},this.kc=null,this.xc=!1,this.Nc=null,this.Cc=null,this.Sc=!1,this.Tc=!1,this.Dc=!1,this.Ac=null,this.Bc=null,this.Lc=null,this.Ec=null,this.Oc=null,this.Fc=null,this.Vc=null,this.Pc=0,this.Rc=!1,this.zc=!1,this.Wc=!1,this.Ic=0,this.jc=null,this.qc=!Sn(),this.Uc=function(t){s.Hc(t)},this.Yc=function(t){if(s.$c(t)){var i=s.Kc(t);if(++s.mc,s.gc&&s.mc>1)s.Zc(Ln(t),s.yc).Xc<30&&!s.Dc&&s.Jc(i,s.Qc.Gc),s.tv()}else{i=s.Kc(t);if(++s.wc,s.Mc&&s.wc>1)s.Zc(Ln(t),s.bc).Xc<5&&!s.Tc&&s.iv(i,s.Qc.nv),s.sv()}},this.hv=t,this.Qc=i,this.zi=n,this.rv()}return t.prototype.p=function(){null!==this.Ac&&(this.Ac(),this.Ac=null),null!==this.Bc&&(this.Bc(),this.Bc=null),null!==this.Ec&&(this.Ec(),this.Ec=null),null!==this.Oc&&(this.Oc(),this.Oc=null),null!==this.Fc&&(this.Fc(),this.Fc=null),null!==this.Lc&&(this.Lc(),this.Lc=null),this.ev(),this.sv()},t.prototype.uv=function(t){var i=this;this.Ec&&this.Ec();var n=this.av.bind(this);if(this.Ec=function(){i.hv.removeEventListener("mousemove",n)},this.hv.addEventListener("mousemove",n),!this.$c(t)){var s=this.Kc(t);this.iv(s,this.Qc.ov),this.qc=!0}},t.prototype.sv=function(){null!==this.Mc&&clearTimeout(this.Mc),this.wc=0,this.Mc=null,this.bc={tt:Number.NEGATIVE_INFINITY,it:Number.POSITIVE_INFINITY}},t.prototype.tv=function(){null!==this.gc&&clearTimeout(this.gc),this.mc=0,this.gc=null,this.yc={tt:Number.NEGATIVE_INFINITY,it:Number.POSITIVE_INFINITY}},t.prototype.av=function(t){if(!this.Wc&&null===this.Cc&&!this.$c(t)){var i=this.Kc(t);this.iv(i,this.Qc.lv),this.qc=!0}},t.prototype.fv=function(t){var i=On(t.changedTouches,e(this.jc));if(null!==i&&(this.Ic=En(t),null===this.Vc&&!this.zc)){this.Rc=!0;var n=this.Zc(Ln(i),e(this.Cc)),s=n.cv,h=n.vv,r=n.Xc;if(this.Sc||!(r<5)){if(!this.Sc){var u=.5*s,a=h>=u&&!this.zi._v(),o=u>h&&!this.zi.dv();a||o||(this.zc=!0),this.Sc=!0,this.Dc=!0,this.ev(),this.tv()}if(!this.zc){var l=this.Kc(t,i);this.Jc(l,this.Qc.wv),Bn(t)}}}},t.prototype.Mv=function(t){if(0===t.button&&(this.Zc(Ln(t),e(this.Nc)).Xc>=5&&(this.Tc=!0,this.sv()),this.Tc)){var i=this.Kc(t);this.iv(i,this.Qc.bv)}},t.prototype.Zc=function(t,i){var n=Math.abs(i.tt-t.tt),s=Math.abs(i.it-t.it);return{cv:n,vv:s,Xc:n+s}},t.prototype.mv=function(t){var i=On(t.changedTouches,e(this.jc));if(null===i&&0===t.touches.length&&(i=t.changedTouches[0]),null!==i){this.jc=null,this.Ic=En(t),this.ev(),this.Cc=null,this.Fc&&(this.Fc(),this.Fc=null);var n=this.Kc(t,i);if(this.Jc(n,this.Qc.gv),++this.mc,this.gc&&this.mc>1)this.Zc(Ln(i),this.yc).Xc<30&&!this.Dc&&this.Jc(n,this.Qc.Gc),this.tv();else this.Dc||(this.Jc(n,this.Qc.pv),this.Qc.pv&&Bn(t));0===this.mc&&Bn(t),0===t.touches.length&&this.xc&&(this.xc=!1,Bn(t))}},t.prototype.Hc=function(t){if(0===t.button){var i=this.Kc(t);if(this.Nc=null,this.Wc=!1,this.Oc&&(this.Oc(),this.Oc=null),Cn())this.hv.ownerDocument.documentElement.removeEventListener("mouseleave",this.Uc);if(!this.$c(t))if(this.iv(i,this.Qc.yv),++this.wc,this.Mc&&this.wc>1)this.Zc(Ln(t),this.bc).Xc<5&&!this.Tc&&this.iv(i,this.Qc.nv),this.sv();else this.Tc||this.iv(i,this.Qc.kv)}},t.prototype.ev=function(){null!==this.kc&&(clearTimeout(this.kc),this.kc=null)},t.prototype.xv=function(t){if(null===this.jc){var i=t.changedTouches[0];this.jc=i.identifier,this.Ic=En(t);var n=this.hv.ownerDocument.documentElement;this.Dc=!1,this.Sc=!1,this.zc=!1,this.Cc=Ln(i),this.Fc&&(this.Fc(),this.Fc=null);var s=this.fv.bind(this),h=this.mv.bind(this);this.Fc=function(){n.removeEventListener("touchmove",s),n.removeEventListener("touchend",h)},n.addEventListener("touchmove",s,{passive:!1}),n.addEventListener("touchend",h,{passive:!1}),this.ev(),this.kc=setTimeout(this.Nv.bind(this,t),240);var r=this.Kc(t,i);this.Jc(r,this.Qc.Cv),this.gc||(this.mc=0,this.gc=setTimeout(this.tv.bind(this),500),this.yc=Ln(i))}},t.prototype.Sv=function(t){if(0===t.button){var i=this.hv.ownerDocument.documentElement;Cn()&&i.addEventListener("mouseleave",this.Uc),this.Tc=!1,this.Nc=Ln(t),this.Oc&&(this.Oc(),this.Oc=null);var n=this.Mv.bind(this),s=this.Hc.bind(this);if(this.Oc=function(){i.removeEventListener("mousemove",n),i.removeEventListener("mouseup",s)},i.addEventListener("mousemove",n),i.addEventListener("mouseup",s),this.Wc=!0,!this.$c(t)){var h=this.Kc(t);this.iv(h,this.Qc.Tv),this.Mc||(this.wc=0,this.Mc=setTimeout(this.sv.bind(this),500),this.bc=Ln(t))}}},t.prototype.rv=function(){var t=this;this.hv.addEventListener("mouseenter",this.uv.bind(this)),this.hv.addEventListener("touchcancel",this.ev.bind(this));var i=this.hv.ownerDocument,n=function(i){t.Qc.Dv&&(i.target&&t.hv.contains(i.target)||t.Qc.Dv())};this.Bc=function(){i.removeEventListener("touchstart",n)},this.Ac=function(){i.removeEventListener("mousedown",n)},i.addEventListener("mousedown",n),i.addEventListener("touchstart",n,{passive:!0}),Sn()&&(this.Lc=function(){t.hv.removeEventListener("dblclick",t.Yc)},this.hv.addEventListener("dblclick",this.Yc)),this.hv.addEventListener("mouseleave",this.Av.bind(this)),this.hv.addEventListener("touchstart",this.xv.bind(this),{passive:!0}),Tn(this.hv),this.hv.addEventListener("mousedown",this.Sv.bind(this)),this.Bv(),this.hv.addEventListener("touchmove",(function(){}),{passive:!1})},t.prototype.Bv=function(){var t=this;void 0===this.Qc.Lv&&void 0===this.Qc.Ev&&void 0===this.Qc.Ov||(this.hv.addEventListener("touchstart",(function(i){return t.Fv(i.touches)}),{passive:!0}),this.hv.addEventListener("touchmove",(function(i){if(2===i.touches.length&&null!==t.Vc&&void 0!==t.Qc.Ev){var n=An(i.touches[0],i.touches[1])/t.Pc;t.Qc.Ev(t.Vc,n),Bn(i)}}),{passive:!1}),this.hv.addEventListener("touchend",(function(i){t.Fv(i.touches)})))},t.prototype.Fv=function(t){1===t.length&&(this.Rc=!1),2!==t.length||this.Rc||this.xc?this.Vv():this.Pv(t)},t.prototype.Pv=function(t){var i=this.hv.getBoundingClientRect()||{left:0,top:0};this.Vc={tt:(t[0].clientX-i.left+(t[1].clientX-i.left))/2,it:(t[0].clientY-i.top+(t[1].clientY-i.top))/2},this.Pc=An(t[0],t[1]),void 0!==this.Qc.Lv&&this.Qc.Lv(),this.ev()},t.prototype.Vv=function(){null!==this.Vc&&(this.Vc=null,void 0!==this.Qc.Ov&&this.Qc.Ov())},t.prototype.Av=function(t){if(this.Ec&&this.Ec(),!this.$c(t)&&this.qc){var i=this.Kc(t);this.iv(i,this.Qc.Rv),this.qc=!Sn()}},t.prototype.Nv=function(t){var i=On(t.touches,e(this.jc));if(null!==i){var n=this.Kc(t,i);this.Jc(n,this.Qc.zv),this.Dc=!0,this.xc=!0}},t.prototype.$c=function(t){return t.sourceCapabilities&&void 0!==t.sourceCapabilities.firesTouchEvents?t.sourceCapabilities.firesTouchEvents:En(t)=200){var h=r(this.th.shift());this.h_.delete(h)}var e=bn(t.canvas),u=Math.ceil(this.W/4.5),a=Math.round(this.W/10),o=Math.ceil(this.rh.Qt(t,i)),l=Ct(Math.round(o+2*u)),f=Ct(this.W+2*u),c=gn(document,new Mn(l,f));n={Gt:i,u_:Math.round(Math.max(1,o)),Ht:Math.ceil(l*e),Yt:Math.ceil(f*e),a_:c},0!==o&&(this.th.push(n.Gt),this.h_.set(n.Gt,n)),j(t=mn(n.a_),e,(function(){t.font=s.Yh,t.fillStyle=s.s_,t.fillText(i,0,f-u-a)}))}return n},t}(),Vn=function(){function t(t,i,n,s){var h=this;this._i=null,this.o_=null,this.l_=!1,this.f_=new zt(50),this.c_=new Fn(11,"#000"),this.s_=null,this.Yh=null,this.v_=0,this.__=!1,this.d_=function(){h.w_(h.cf.R()),h.__||h.Di.M_().jt().Rr()},this.b_=function(){h.__||h.Di.M_().jt().Rr()},this.Di=t,this.zi=i,this.cf=n,this.m_="left"===s,this.g_=document.createElement("div"),this.g_.style.height="100%",this.g_.style.overflow="hidden",this.g_.style.width="25px",this.g_.style.left="0",this.g_.style.position="relative",this.p_=pn(this.g_,new Mn(16,16)),this.p_.subscribeCanvasConfigured(this.d_);var r=this.p_.canvas;r.style.position="absolute",r.style.zIndex="1",r.style.left="0",r.style.top="0",this.y_=pn(this.g_,new Mn(16,16)),this.y_.subscribeCanvasConfigured(this.b_);var e=this.y_.canvas;e.style.position="absolute",e.style.zIndex="2",e.style.left="0",e.style.top="0";var u={Tv:this.k_.bind(this),Cv:this.k_.bind(this),bv:this.x_.bind(this),wv:this.x_.bind(this),Dv:this.N_.bind(this),yv:this.C_.bind(this),gv:this.C_.bind(this),nv:this.S_.bind(this),Gc:this.S_.bind(this),ov:this.T_.bind(this),Rv:this.D_.bind(this)};this.A_=new Dn(this.y_.canvas,u,{_v:function(){return!1},dv:function(){return!0}})}return t.prototype.p=function(){this.A_.p(),this.y_.unsubscribeCanvasConfigured(this.b_),this.y_.destroy(),this.p_.unsubscribeCanvasConfigured(this.d_),this.p_.destroy(),null!==this._i&&this._i._a().M(this),this._i=null,this.c_.p()},t.prototype.B_=function(){return this.g_},t.prototype.ht=function(){return e(this._i).R().borderColor},t.prototype.L_=function(){return this.zi.textColor},t.prototype.S=function(){return this.zi.fontSize},t.prototype.E_=function(){return B(this.S(),this.zi.fontFamily)},t.prototype.O_=function(){var t=this.cf.R(),i=this.s_!==t.A,n=this.Yh!==t.T;return(i||n)&&(this.w_(t),this.s_=t.A),n&&(this.f_.ih(),this.Yh=t.T),t},t.prototype.F_=function(){if(null===this._i)return 0;var t=0,i=this.O_(),n=mn(this.p_.canvas),s=this._i.au();n.font=this.E_(),s.length>0&&(t=Math.max(this.f_.Qt(n,s[0].yu),this.f_.Qt(n,s[s.length-1].yu)));for(var h=this.V_(),r=h.length;r--;){var e=this.f_.Qt(n,h[r].Gt());e>t&&(t=e)}var u=this._i.kt();if(null!==u&&null!==this.o_){var a=this._i.qi(1,u),o=this._i.qi(this.o_.Ft-2,u);t=Math.max(t,this.f_.Qt(n,this._i.Mi(Math.floor(Math.min(a,o))+.11111111111111,u)),this.f_.Qt(n,this._i.Mi(Math.ceil(Math.max(a,o))-.11111111111111,u)))}var l=t||34,f=Math.ceil(i.N+i.C+i.L+i.O+l);return f+=f%2},t.prototype.P_=function(t){if(t.Ot<0||t.Ft<0)throw new Error("Try to set invalid size to PriceAxisWidget "+JSON.stringify(t));null!==this.o_&&this.o_.br(t)||(this.o_=t,this.__=!0,this.p_.resizeCanvas({width:t.Ot,height:t.Ft}),this.y_.resizeCanvas({width:t.Ot,height:t.Ft}),this.__=!1,this.g_.style.width=t.Ot+"px",this.g_.style.height=t.Ft+"px",this.g_.style.minWidth=t.Ot+"px")},t.prototype.R_=function(){return e(this.o_).Ot},t.prototype.Si=function(t){this._i!==t&&(null!==this._i&&this._i._a().M(this),this._i=t,t._a().u(this.Eu.bind(this),this))},t.prototype.Ct=function(){return this._i},t.prototype.ih=function(){var t=this.Di.z_();this.Di.M_().jt().no(t,e(this.Ct()))},t.prototype.W_=function(t){if(null!==this.o_){if(1!==t){var i=mn(this.p_.canvas);this.I_(),this.j_(i,this.p_.pixelRatio),this.Ws(i,this.p_.pixelRatio),this.q_(i,this.p_.pixelRatio),this.U_(i,this.p_.pixelRatio)}var n=mn(this.y_.canvas),s=this.o_.Ot,h=this.o_.Ft;j(n,this.y_.pixelRatio,(function(){n.clearRect(0,0,s,h)})),this.H_(n,this.y_.pixelRatio)}},t.prototype.Y_=function(){return this.p_.canvas},t.prototype.vt=function(){var t;null===(t=this._i)||void 0===t||t.au()},t.prototype.k_=function(t){if(null!==this._i&&!this._i.wi()&&this.Di.M_().R().handleScale.axisPressedMouseMove.price){var i=this.Di.M_().jt(),n=this.Di.z_();this.l_=!0,i.Ka(n,this._i,t.$v)}},t.prototype.x_=function(t){if(null!==this._i&&this.Di.M_().R().handleScale.axisPressedMouseMove.price){var i=this.Di.M_().jt(),n=this.Di.z_(),s=this._i;i.Xa(n,s,t.$v)}},t.prototype.N_=function(){if(null!==this._i&&this.Di.M_().R().handleScale.axisPressedMouseMove.price){var t=this.Di.M_().jt(),i=this.Di.z_(),n=this._i;this.l_&&(this.l_=!1,t.Za(i,n))}},t.prototype.C_=function(t){if(null!==this._i&&this.Di.M_().R().handleScale.axisPressedMouseMove.price){var i=this.Di.M_().jt(),n=this.Di.z_();this.l_=!1,i.Za(n,this._i)}},t.prototype.S_=function(t){this.Di.M_().R().handleScale.axisDoubleClickReset&&this.ih()},t.prototype.T_=function(t){null!==this._i&&(!this.Di.M_().jt().R().handleScale.axisPressedMouseMove.price||this._i.vr()||this._i.Zu()||this.K_(1))},t.prototype.D_=function(t){this.K_(0)},t.prototype.V_=function(){var t=this,i=[],n=null===this._i?void 0:this._i;return function(s){for(var h=0;h0&&(t=h[0].ti())}));var u=i.filter((function(i){return i.ti()<=t})),a=i.filter((function(i){return i.ti()>t}));if(u.sort((function(t,i){return i.ti()-t.ti()})),u.length&&a.length&&a.push(u[0]),a.sort((function(t,i){return t.ti()-i.ti()})),i.forEach((function(t){return t.oi(t.ti())})),this._i.R().alignLabels){for(var o=1;o(_=v.ai())-f&&l.oi(_-f)}for(var c=1;c1&&this.Ed(),null!==this.X_&&this.X_.W_(t),null!==this.Z_&&this.Z_.W_(t),1!==t){var i=mn(this.p_.canvas);i.save(),this.j_(i,this.p_.pixelRatio),this.ud&&(this.Od(i,this.p_.pixelRatio),this.Fd(i,this.p_.pixelRatio),this.Vd(i,this.p_.pixelRatio,zn)),i.restore()}var n=mn(this.y_.canvas);n.clearRect(0,0,Math.ceil(this.o_.Ot*this.y_.pixelRatio),Math.ceil(this.o_.Ft*this.y_.pixelRatio)),this.Vd(n,this.p_.pixelRatio,Wn),this.Pd(n,this.y_.pixelRatio)}},t.prototype.Rd=function(){return this.X_},t.prototype.zd=function(){return this.Z_},t.prototype.od=function(){null!==this.ud&&this.ud.ro().M(this),this.ud=null},t.prototype.j_=function(t,i){var n=this;j(t,i,(function(){var i=n.gi(),s=i.Zf(),h=i.Xf();s===h?q(t,0,0,n.o_.Ot,n.o_.Ft,h):U(t,0,0,n.o_.Ot,n.o_.Ft,s,h)}))},t.prototype.Od=function(t,i){var n=e(this.ud),s=n.eo().ou().dt(n.Yt(),n.Ht());null!==s&&(t.save(),s.H(t,i,!1),t.restore())},t.prototype.Fd=function(t,i){var n=this.gi().Sf();this.Wd(t,i,zn,Pn,n),this.Wd(t,i,zn,Rn,n)},t.prototype.Pd=function(t,i){this.Wd(t,i,zn,Rn,this.gi().Tf())},t.prototype.Vd=function(t,i,n){for(var s=e(this.ud).oa(),h=0,r=s;hi.Po?t:i}var Un=function(){function t(t){var i=this;this.$d=null,this.Kd=null,this.k=null,this.Xd=!1,this.o_=new Mn(0,0),this.Zd=new p,this.f_=new zt(5),this.__=!1,this.d_=function(){i.__||i.ad.jt().Rr()},this.b_=function(){i.__||i.ad.jt().Rr()},this.ad=t,this.zi=t.R().layout,this.Jd=document.createElement("tr"),this.Gd=document.createElement("td"),this.Gd.style.padding="0",this.Qd=document.createElement("td"),this.Qd.style.padding="0",this.g_=document.createElement("td"),this.g_.style.height="25px",this.g_.style.padding="0",this.tw=document.createElement("div"),this.tw.style.width="100%",this.tw.style.height="100%",this.tw.style.position="relative",this.tw.style.overflow="hidden",this.g_.appendChild(this.tw),this.p_=pn(this.tw,new Mn(16,16)),this.p_.subscribeCanvasConfigured(this.d_);var n=this.p_.canvas;n.style.position="absolute",n.style.zIndex="1",n.style.left="0",n.style.top="0",this.y_=pn(this.tw,new Mn(16,16)),this.y_.subscribeCanvasConfigured(this.b_);var s=this.y_.canvas;s.style.position="absolute",s.style.zIndex="2",s.style.left="0",s.style.top="0",this.Jd.appendChild(this.Gd),this.Jd.appendChild(this.g_),this.Jd.appendChild(this.Qd),this.iw(),this.ad.jt().Pa().u(this.iw.bind(this),this),this.A_=new Dn(this.y_.canvas,this,{_v:function(){return!0},dv:function(){return!1}})}return t.prototype.p=function(){this.A_.p(),null!==this.$d&&this.$d.p(),null!==this.Kd&&this.Kd.p(),this.y_.unsubscribeCanvasConfigured(this.b_),this.y_.destroy(),this.p_.unsubscribeCanvasConfigured(this.d_),this.p_.destroy()},t.prototype.B_=function(){return this.Jd},t.prototype.nw=function(){return this.$d},t.prototype.sw=function(){return this.Kd},t.prototype.Tv=function(t){if(!this.Xd){this.Xd=!0;var i=this.ad.jt();!i.bt().wi()&&this.ad.R().handleScale.axisPressedMouseMove.time&&i.Lf(t.Yv)}},t.prototype.Cv=function(t){this.Tv(t)},t.prototype.Dv=function(){var t=this.ad.jt();!t.bt().wi()&&this.Xd&&(this.Xd=!1,this.ad.R().handleScale.axisPressedMouseMove.time&&t.zf())},t.prototype.bv=function(t){var i=this.ad.jt();!i.bt().wi()&&this.ad.R().handleScale.axisPressedMouseMove.time&&i.Rf(t.Yv)},t.prototype.wv=function(t){this.bv(t)},t.prototype.yv=function(){this.Xd=!1;var t=this.ad.jt();t.bt().wi()&&!this.ad.R().handleScale.axisPressedMouseMove.time||t.zf()},t.prototype.gv=function(){this.yv()},t.prototype.nv=function(){this.ad.R().handleScale.axisDoubleClickReset&&this.ad.jt().gn()},t.prototype.Gc=function(){this.nv()},t.prototype.ov=function(){this.ad.jt().R().handleScale.axisPressedMouseMove.time&&this.K_(1)},t.prototype.Rv=function(){this.K_(0)},t.prototype.Ld=function(){return this.o_},t.prototype.hw=function(){return this.Zd},t.prototype.rw=function(t,i,n){this.o_&&this.o_.br(t)||(this.o_=t,this.__=!0,this.p_.resizeCanvas({width:t.Ot,height:t.Ft}),this.y_.resizeCanvas({width:t.Ot,height:t.Ft}),this.__=!1,this.g_.style.width=t.Ot+"px",this.g_.style.height=t.Ft+"px",this.Zd.m(t)),null!==this.$d&&this.$d.P_(new Mn(i,t.Ft)),null!==this.Kd&&this.Kd.P_(new Mn(n,t.Ft))},t.prototype.ew=function(){var t=this.uw();return Math.ceil(t.N+t.C+t.S+t.F+t.B)},t.prototype.vt=function(){this.ad.jt().bt().au()},t.prototype.Y_=function(){return this.p_.canvas},t.prototype.W_=function(t){if(0!==t){if(1!==t){var i=mn(this.p_.canvas);this.j_(i,this.p_.pixelRatio),this.Ws(i,this.p_.pixelRatio),this.q_(i,this.p_.pixelRatio),null!==this.$d&&this.$d.W_(t),null!==this.Kd&&this.Kd.W_(t)}var n=mn(this.y_.canvas),s=this.y_.pixelRatio;n.clearRect(0,0,Math.ceil(this.o_.Ot*s),Math.ceil(this.o_.Ft*s)),this.aw([this.ad.jt().Tf()],n,s)}},t.prototype.j_=function(t,i){var n=this;j(t,i,(function(){q(t,0,0,n.o_.Ot,n.o_.Ft,n.ad.jt().Xf())}))},t.prototype.Ws=function(t,i){if(this.ad.R().timeScale.borderVisible){t.save(),t.fillStyle=this.ow();var n=Math.max(1,Math.floor(this.uw().N*i));t.fillRect(0,0,Math.ceil(this.o_.Ot*i),n),t.restore()}},t.prototype.q_=function(t,i){var n=this,s=this.ad.jt().bt().au();if(s&&0!==s.length){var h=s.reduce(qn,s[0]).Po;h>30&&h<50&&(h=30),t.save(),t.strokeStyle=this.ow();var r=this.uw(),e=r.N+r.C+r.F+r.S-r.V;t.textAlign="center",t.fillStyle=this.ow();var u=Math.floor(this.uw().N*i),a=Math.max(1,Math.floor(i)),o=Math.floor(.5*i);if(this.ad.jt().bt().R().borderVisible){t.beginPath();for(var l=Math.round(r.C*i),f=s.length;f--;){var c=Math.round(s[f].su*i);t.rect(c-o,u,a,l)}t.fill()}t.fillStyle=this.j(),j(t,i,(function(){t.font=n.lw();for(var i=0,r=s;i=h){u=l.Sl?n.fw(t,l.su,l.yu):l.su;t.fillText(l.yu,u,e)}}})),t.restore()}},t.prototype.fw=function(t,i,n){var s=this.f_.Qt(t,n),h=s/2,r=Math.floor(i-h)+.5;return r<0?i+=Math.abs(0-r):r+s>this.o_.Ot&&(i-=Math.abs(this.o_.Ot-(r+s))),i},t.prototype.aw=function(t,i,n){for(var s=this.uw(),h=0,r=t;h=0;--n)if(Math.floor(i.getTime()/is[n].Hw)!==Math.floor(t.getTime()/is[n].Hw))return is[n].Po;return 0}function ss(t,i){if(void 0===i&&(i=0),0!==t.length){for(var n=0===i?null:t[i-1].rt.So,s=null!==n?new Date(1e3*n):null,h=0,r=i;r1){var a=Math.ceil(h/(t.length-1)),o=new Date(1e3*(t[0].rt.So-a));t[0].Vo=ns(new Date(1e3*t[0].rt.So),o)}}}function hs(t){if(!vn(t))throw new Error("time must be of type BusinessDay");var i=new Date(Date.UTC(t.year,t.month-1,t.day,0,0,0,0));return{So:Math.round(i.getTime()/1e3),Co:t}}function rs(t){if(!_n(t))throw new Error("time must be of type isUTCTimestamp");return{So:t}}function es(t){return 0===t.length?null:vn(t[0].time)?hs:rs}function us(t){return _n(t)?rs(t):vn(t)?hs(t):hs(as(t))}function as(t){var i=new Date(t);if(isNaN(i.getTime()))throw new Error("Invalid date string=".concat(t,", expected format=yyyy-mm-dd"));return{day:i.getUTCDate(),month:i.getUTCMonth()+1,year:i.getUTCFullYear()}}function os(t){N(t.time)&&(t.time=as(t.time))}function ls(t){return{vs:0,Yw:new Map,Ve:t}}function fs(t){if(void 0!==t&&0!==t.length)return{$w:t[0].rt.So,Kw:t[t.length-1].rt.So}}var cs=function(){function t(){this.Xw=new Map,this.Zw=new Map,this.Jw=new Map,this.Gw=[]}return t.prototype.p=function(){this.Xw.clear(),this.Zw.clear(),this.Jw.clear(),this.Gw=[]},t.prototype.Qw=function(t,i){var n=this,s=0!==this.Xw.size,h=!1,r=this.Zw.get(t);if(void 0!==r)if(1===this.Zw.size)s=!1,h=!0,this.Xw.clear();else for(var u=0,a=this.Gw;u=s.Kw&&n.$w>=s.$w}}(this.Zw.get(t),r))},t.prototype.Yf=function(t){return this.Qw(t,[])},t.prototype.hM=function(t,i){os(i);var n=e(es([i]))(i.time),s=this.Jw.get(t);if(void 0!==s&&n.Soh.vs)return{barsBefore:t.from-r,barsAfter:u-t.to};var a={barsBefore:null===s||s.vs===r?t.from-r:s.vs-r,barsAfter:null===h||h.vs===u?u-t.to:u-h.vs};return null!==s&&null!==h&&(a.from=s.rt.Co||s.rt.So,a.to=h.rt.Co||h.rt.So),a},t.prototype.setData=function(t){this.Kn.Wr(),this.cM._M(this.Kn,t)},t.prototype.update=function(t){this.Kn.Wr(),this.cM.dM(this.Kn,t)},t.prototype.setMarkers=function(t){var i=t.map((function(t){return m(m({},t),{time:us(t.time)})}));this.Kn.Le(i)},t.prototype.applyOptions=function(t){var i=ws(t);this.Kn.Pr(i)},t.prototype.options=function(){return S(this.Kn.R())},t.prototype.priceScale=function(){return this.vM.priceScale(this.Kn.Ct().Ke())},t.prototype.createPriceLine=function(t){var i=y(S(_s),t),n=this.Kn.Ee(i);return new ds(n)},t.prototype.removePriceLine=function(t){this.Kn.Oe(t.fM())},t.prototype.seriesType=function(){return this.Kn.Wr()},t}(),bs=function(t){function i(){return null!==t&&t.apply(this,arguments)||this}return b(i,t),i.prototype.applyOptions=function(i){cn(i),t.prototype.applyOptions.call(this,i)},i}(Ms),ms={autoScale:!0,mode:0,invertScale:!1,alignLabels:!0,borderVisible:!0,borderColor:"#2B2B43",entireTextOnly:!1,visible:!1,drawTicks:!0,scaleMargins:{bottom:.1,top:.2}},gs={color:"rgba(0, 0, 0, 0)",visible:!1,fontSize:48,fontFamily:A,fontStyle:"",text:"",horzAlign:"center",vertAlign:"center"},ps={width:0,height:0,layout:{background:{type:"solid",color:"#FFFFFF"},textColor:"#191919",fontSize:11,fontFamily:A},crosshair:{vertLine:{color:"#758696",width:1,style:3,visible:!0,labelVisible:!0,labelBackgroundColor:"#4c525e"},horzLine:{color:"#758696",width:1,style:3,visible:!0,labelVisible:!0,labelBackgroundColor:"#4c525e"},mode:1},grid:{vertLines:{color:"#D6DCDE",style:0,visible:!0},horzLines:{color:"#D6DCDE",style:0,visible:!0}},overlayPriceScales:m({},ms),leftPriceScale:m(m({},ms),{visible:!1}),rightPriceScale:m(m({},ms),{visible:!0}),timeScale:{rightOffset:0,barSpacing:6,minBarSpacing:.5,fixLeftEdge:!1,fixRightEdge:!1,lockVisibleTimeRangeOnResize:!1,rightBarStaysOnScroll:!1,borderVisible:!0,borderColor:"#2B2B43",visible:!0,timeVisible:!1,secondsVisible:!0,shiftVisibleRangeOnNewBar:!0},watermark:gs,localization:{locale:Nn?navigator.language:"",dateFormat:"dd MMM 'yy"},handleScroll:{mouseWheel:!0,pressedMouseMove:!0,horzTouchDrag:!0,vertTouchDrag:!0},handleScale:{axisPressedMouseMove:{time:!0,price:!0},axisDoubleClickReset:!0,mouseWheel:!0,pinch:!0},kineticScroll:{mouse:!1,touch:!0},trackingMode:{exitMode:1}},ys={upColor:"#26a69a",downColor:"#ef5350",wickVisible:!0,borderVisible:!0,borderColor:"#378658",borderUpColor:"#26a69a",borderDownColor:"#ef5350",wickColor:"#737375",wickUpColor:"#26a69a",wickDownColor:"#ef5350"},ks={upColor:"#26a69a",downColor:"#ef5350",openVisible:!0,thinBars:!0},xs={color:"#2196f3",lineStyle:0,lineWidth:3,lineType:0,crosshairMarkerVisible:!0,crosshairMarkerRadius:4,crosshairMarkerBorderColor:"",crosshairMarkerBackgroundColor:"",lastPriceAnimation:0},Ns={topColor:"rgba( 46, 220, 135, 0.4)",bottomColor:"rgba( 40, 221, 100, 0)",lineColor:"#33D778",lineStyle:0,lineWidth:3,lineType:0,crosshairMarkerVisible:!0,crosshairMarkerRadius:4,crosshairMarkerBorderColor:"",crosshairMarkerBackgroundColor:"",lastPriceAnimation:0},Cs={baseValue:{type:"price",price:0},topFillColor1:"rgba(38, 166, 154, 0.28)",topFillColor2:"rgba(38, 166, 154, 0.05)",topLineColor:"rgba(38, 166, 154, 1)",bottomFillColor1:"rgba(239, 83, 80, 0.05)",bottomFillColor2:"rgba(239, 83, 80, 0.28)",bottomLineColor:"rgba(239, 83, 80, 1)",lineWidth:3,lineStyle:0,crosshairMarkerVisible:!0,crosshairMarkerRadius:4,crosshairMarkerBorderColor:"",crosshairMarkerBackgroundColor:"",lastPriceAnimation:0},Ss={color:"#26a69a",base:0},Ts={title:"",visible:!0,lastValueVisible:!0,priceLineVisible:!0,priceLineSource:0,priceLineWidth:1,priceLineColor:"",priceLineStyle:2,baseLineVisible:!0,baseLineWidth:1,baseLineColor:"#B2B5BE",baseLineStyle:0,priceFormat:{type:"price",precision:2,minMove:.01}},Ds=function(){function t(t,i){this.wM=t,this.MM=i}return t.prototype.applyOptions=function(t){this.wM.jt().xf(this.MM,t)},t.prototype.options=function(){return this._i().R()},t.prototype.width=function(){return tt(this.MM)?this.wM.Ow("left"===this.MM?"left":"right"):0},t.prototype._i=function(){return e(this.wM.jt().Nf(this.MM)).Ct},t}(),As=function(){function t(t,i){this.bM=new p,this.Go=new p,this.Zd=new p,this.gi=t,this.Da=t.bt(),this.xw=i,this.Da.Fl().u(this.mM.bind(this)),this.Da.Vl().u(this.gM.bind(this)),this.xw.hw().u(this.pM.bind(this))}return t.prototype.p=function(){this.Da.Fl().M(this),this.Da.Vl().M(this),this.xw.hw().M(this),this.bM.p(),this.Go.p(),this.Zd.p()},t.prototype.scrollPosition=function(){return this.Da.xl()},t.prototype.scrollToPosition=function(t,i){i?this.Da.Ol(t,1e3):this.gi.yn(t)},t.prototype.scrollToRealTime=function(){this.Da.El()},t.prototype.getVisibleRange=function(){var t,i,n=this.Da.cl();return null===n?null:{from:null!==(t=n.from.Co)&&void 0!==t?t:n.from.So,to:null!==(i=n.to.Co)&&void 0!==i?i:n.to.So}},t.prototype.setVisibleRange=function(t){var i={from:us(t.from),to:us(t.to)},n=this.Da.wl(i);this.gi.$f(n)},t.prototype.getVisibleLogicalRange=function(){var t=this.Da.fl();return null===t?null:{from:t.In(),to:t.jn()}},t.prototype.setVisibleLogicalRange=function(t){h(t.from<=t.to,"The from index cannot be after the to index."),this.gi.$f(t)},t.prototype.resetTimeScale=function(){this.gi.gn()},t.prototype.fitContent=function(){this.gi.zl()},t.prototype.logicalToCoordinate=function(t){var i=this.gi.bt();return i.wi()?null:i.At(t)},t.prototype.coordinateToLogical=function(t){return this.Da.wi()?null:this.Da.gl(t)},t.prototype.timeToCoordinate=function(t){var i=us(t),n=this.Da.Ze(i,!1);return null===n?null:this.Da.At(n)},t.prototype.coordinateToTime=function(t){var i,n=this.gi.bt(),s=n.gl(t),h=n.pi(s);return null===h?null:null!==(i=h.Co)&&void 0!==i?i:h.So},t.prototype.width=function(){return this.xw.Ld().Ot},t.prototype.height=function(){return this.xw.Ld().Ft},t.prototype.subscribeVisibleTimeRangeChange=function(t){this.bM.u(t)},t.prototype.unsubscribeVisibleTimeRangeChange=function(t){this.bM._(t)},t.prototype.subscribeVisibleLogicalRangeChange=function(t){this.Go.u(t)},t.prototype.unsubscribeVisibleLogicalRangeChange=function(t){this.Go._(t)},t.prototype.subscribeSizeChange=function(t){this.Zd.u(t)},t.prototype.unsubscribeSizeChange=function(t){this.Zd._(t)},t.prototype.applyOptions=function(t){this.Da.Pr(t)},t.prototype.options=function(){return S(this.Da.R())},t.prototype.mM=function(){this.bM.g()&&this.bM.m(this.getVisibleRange())},t.prototype.gM=function(){this.Go.g()&&this.Go.m(this.getVisibleLogicalRange())},t.prototype.pM=function(t){this.Zd.m(t.Ot,t.Ft)},t}();function Bs(t){if(void 0!==t&&"custom"!==t.type){var i=t;void 0!==i.minMove&&void 0===i.precision&&(i.precision=function(t){if(t>=1)return 0;for(var i=0;i<8;i++){var n=Math.round(t);if(Math.abs(n-t)<1e-8)return i;t*=10}return i}(i.minMove))}}function Ls(t){return function(t){if(C(t.handleScale)){var i=t.handleScale;t.handleScale={axisDoubleClickReset:i,axisPressedMouseMove:{time:i,price:i},mouseWheel:i,pinch:i}}else if(void 0!==t.handleScale&&C(t.handleScale.axisPressedMouseMove)){var n=t.handleScale.axisPressedMouseMove;t.handleScale.axisPressedMouseMove={time:n,price:n}}var s=t.handleScroll;C(s)&&(t.handleScroll={horzTouchDrag:s,vertTouchDrag:s,mouseWheel:s,pressedMouseMove:s})}(t),function(t){if(t.priceScale){t.leftPriceScale=t.leftPriceScale||{},t.rightPriceScale=t.rightPriceScale||{};var i=t.priceScale.position;delete t.priceScale.position,t.leftPriceScale=y(t.leftPriceScale,t.priceScale),t.rightPriceScale=y(t.rightPriceScale,t.priceScale),"left"===i&&(t.leftPriceScale.visible=!0,t.rightPriceScale.visible=!1),"right"===i&&(t.leftPriceScale.visible=!1,t.rightPriceScale.visible=!0),"none"===i&&(t.leftPriceScale.visible=!1,t.rightPriceScale.visible=!1),t.overlayPriceScales=t.overlayPriceScales||{},void 0!==t.priceScale.invertScale&&(t.overlayPriceScales.invertScale=t.priceScale.invertScale),void 0!==t.priceScale.scaleMargins&&(t.overlayPriceScales.scaleMargins=t.priceScale.scaleMargins)}}(t),function(t){t.layout&&t.layout.backgroundColor&&!t.layout.background&&(t.layout.background={type:"solid",color:t.layout.backgroundColor})}(t),t}var Es=function(){function t(t,i){var n=this;this.yM=new cs,this.kM=new Map,this.xM=new Map,this.NM=new p,this.CM=new p;var s=void 0===i?S(ps):y(S(ps),Ls(i));this.wM=new Hn(t,s),this.wM.Sd().u((function(t){n.NM.g()&&n.NM.m(n.SM(t()))}),this),this.wM.Df().u((function(t){n.CM.g()&&n.CM.m(n.SM(t()))}),this);var h=this.wM.jt();this.TM=new As(h,this.wM.Dw())}return t.prototype.remove=function(){this.wM.Sd().M(this),this.wM.Df().M(this),this.TM.p(),this.wM.p(),this.kM.clear(),this.xM.clear(),this.NM.p(),this.CM.p(),this.yM.p()},t.prototype.resize=function(t,i,n){this.wM.Nw(t,i,n)},t.prototype.addAreaSeries=function(t){void 0===t&&(t={}),Bs((t=ws(t)).priceFormat);var i=y(S(Ts),Ns,t),n=this.wM.jt().Uf("Area",i),s=new Ms(n,this,this);return this.kM.set(s,n),this.xM.set(n,s),s},t.prototype.addBaselineSeries=function(t){void 0===t&&(t={}),Bs((t=ws(t)).priceFormat);var i=y(S(Ts),S(Cs),t),n=this.wM.jt().Uf("Baseline",i),s=new Ms(n,this,this);return this.kM.set(s,n),this.xM.set(n,s),s},t.prototype.addBarSeries=function(t){void 0===t&&(t={}),Bs((t=ws(t)).priceFormat);var i=y(S(Ts),ks,t),n=this.wM.jt().Uf("Bar",i),s=new Ms(n,this,this);return this.kM.set(s,n),this.xM.set(n,s),s},t.prototype.addCandlestickSeries=function(t){void 0===t&&(t={}),cn(t=ws(t)),Bs(t.priceFormat);var i=y(S(Ts),ys,t),n=this.wM.jt().Uf("Candlestick",i),s=new bs(n,this,this);return this.kM.set(s,n),this.xM.set(n,s),s},t.prototype.addHistogramSeries=function(t){void 0===t&&(t={}),Bs((t=ws(t)).priceFormat);var i=y(S(Ts),Ss,t),n=this.wM.jt().Uf("Histogram",i),s=new Ms(n,this,this);return this.kM.set(s,n),this.xM.set(n,s),s},t.prototype.addLineSeries=function(t){void 0===t&&(t={}),Bs((t=ws(t)).priceFormat);var i=y(S(Ts),xs,t),n=this.wM.jt().Uf("Line",i),s=new Ms(n,this,this);return this.kM.set(s,n),this.xM.set(n,s),s},t.prototype.removeSeries=function(t){var i=r(this.kM.get(t)),n=this.yM.Yf(i);this.wM.jt().Yf(i),this.DM(n),this.kM.delete(t),this.xM.delete(i)},t.prototype._M=function(t,i){this.DM(this.yM.Qw(t,i))},t.prototype.dM=function(t,i){this.DM(this.yM.hM(t,i))},t.prototype.subscribeClick=function(t){this.NM.u(t)},t.prototype.unsubscribeClick=function(t){this.NM._(t)},t.prototype.subscribeCrosshairMove=function(t){this.CM.u(t)},t.prototype.unsubscribeCrosshairMove=function(t){this.CM._(t)},t.prototype.priceScale=function(t){return void 0===t&&(t=this.wM.jt().Kf()),new Ds(this.wM,t)},t.prototype.timeScale=function(){return this.TM},t.prototype.applyOptions=function(t){this.wM.Pr(Ls(t))},t.prototype.options=function(){return this.wM.R()},t.prototype.takeScreenshot=function(){return this.wM.Bw()},t.prototype.DM=function(t){var i=this.wM.jt();i.jf(t.bt.ml,t.bt.oM,t.bt.lM),t.uM.forEach((function(t,i){return i.Z(t.gh,t.aM)})),i.yl()},t.prototype.AM=function(t){return r(this.xM.get(t))},t.prototype.SM=function(t){var i=this,n=new Map;t.qw.forEach((function(t,s){n.set(i.AM(s),t)}));var s=void 0===t.jw?void 0:this.AM(t.jw);return{time:t.rt&&(t.rt.Co||t.rt.So),point:t.Iw,hoveredSeries:s,hoveredMarkerId:t.Uw,seriesPrices:n}},t}();var Os=Object.freeze({__proto__:null,version:function(){return"3.8.0"},get LineStyle(){return i},get LineType(){return t},get TrackingModeExitMode(){return hn},get CrosshairMode(){return H},get PriceScaleMode(){return Vi},get PriceLineSource(){return on},get LastPriceAnimationMode(){return an},get LasPriceAnimationMode(){return an},get TickMarkType(){return Qi},get ColorType(){return ln},isBusinessDay:vn,isUTCTimestamp:_n,createChart:function(t,i){var n;if(N(t)){var s=document.getElementById(t);h(null!==s,"Cannot find element in DOM with id=".concat(t)),n=s}else n=t;return new Es(n,i)}});window.LightweightCharts=Os}(); diff --git a/weui/js/zepto.weui.js b/weui/js/zepto.weui.js index 1629a5f..72e2790 100644 --- a/weui/js/zepto.weui.js +++ b/weui/js/zepto.weui.js @@ -3818,7 +3818,7 @@ function gallery(url, options = {}) { }, options); const $gallery = $(render(`