From bb9e8871b4b1ebad935968ae32f3c747fac7c3a2 Mon Sep 17 00:00:00 2001
From: whycq <you@example.com>
Date: 星期四, 17 十一月 2022 20:24:04 +0800
Subject: [PATCH] #

---
 Monitor-APP/uni_modules/qiun-data-charts/js_sdk/u-charts/readme.md                        |   13 
 Monitor-APP/uni_modules/qiun-data-charts/js_sdk/u-charts/config-ucharts.js                |   37 
 Monitor-APP/uni_modules/qiun-data-charts/readme.md                                        |  501 
 Monitor-APP/unpackage/dist/dev/app-plus/app-view.js                                       | 21238 ++++++++++++++++++++++++---------------------
 Monitor-APP/pages/index/index.vue                                                         |    1 
 Monitor-APP/uni_modules/qiun-data-charts/changelog.md                                     |   87 
 Monitor-APP/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue |  193 
 Monitor-APP/uni_modules/qiun-data-charts/js_sdk/u-charts/u-charts.js                      | 1399 ++
 Monitor-APP/unpackage/dist/dev/app-plus/app-service.js                                    | 3998 ++++---
 Monitor-APP/uni_modules/qiun-data-charts/package.json                                     |   13 
 Monitor-APP/pages/home/home.vue                                                           |  222 
 11 files changed, 14,963 insertions(+), 12,739 deletions(-)

diff --git a/Monitor-APP/pages/home/home.vue b/Monitor-APP/pages/home/home.vue
index 098cfa0..f623243 100644
--- a/Monitor-APP/pages/home/home.vue
+++ b/Monitor-APP/pages/home/home.vue
@@ -18,37 +18,86 @@
 								<view class="box-item">
 									<text class="item-title">鑷姩鍖栫珛浣撲粨搴�</text>
 									<text class="item-subTitle">Automatic Storageand Retrieval System</text>
-									<text class="item-text">鍒╃敤绔嬩綋浠撳簱璁惧鍙疄鐜颁粨搴撻珮灞傚悎鐞嗗寲銆佸瓨鍙栬嚜鍔ㄥ寲銆佹搷浣滅畝渚垮寲锛涜嚜鍔ㄥ寲绔嬩綋浠撳簱鏄綋鍓嶆妧鏈按骞宠緝楂樼殑褰㈠紡銆傝嚜鍔ㄥ寲绔嬩綋浠撳簱鐨勪富浣撶敱璐ф灦銆佸贩閬撳紡鍫嗗灈璧烽噸鏈恒�佸叆锛堝嚭锛夊簱宸ヤ綔鍙板拰鑷姩杩愯繘锛堝嚭锛夊強鎿嶄綔鎺у埗绯荤粺缁勬垚銆傝揣鏋舵槸閽㈢粨鏋勬垨閽㈢瓔娣峰嚌鍦熺粨鏋勭殑寤虹瓚鐗╂垨缁撴瀯浣擄紝璐ф灦鍐呮槸鏍囧噯灏哄鐨勮揣浣嶇┖闂达紝宸烽亾鍫嗗灈璧烽噸鏈虹┛琛屼簬璐ф灦涔嬮棿鐨勫贩閬撲腑锛屽畬鎴愬瓨銆佸彇璐х殑宸ヤ綔銆傜鐞嗕笂閲囩敤璁$畻鏈哄強鏉″舰鐮佹妧鏈��</text>
+									<text class="item-text" style="text-align: left;">鍒╃敤绔嬩綋浠撳簱璁惧鍙疄鐜颁粨搴撻珮灞傚悎鐞嗗寲銆佸瓨鍙栬嚜鍔ㄥ寲銆佹搷浣滅畝渚垮寲锛涜嚜鍔ㄥ寲绔嬩綋浠撳簱鏄綋鍓嶆妧鏈按骞宠緝楂樼殑褰㈠紡銆傝嚜鍔ㄥ寲绔嬩綋浠撳簱鐨勪富浣撶敱璐ф灦銆佸贩閬撳紡鍫嗗灈璧烽噸鏈恒�佸叆锛堝嚭锛夊簱宸ヤ綔鍙板拰鑷姩杩愯繘锛堝嚭锛夊強鎿嶄綔鎺у埗绯荤粺缁勬垚銆傝揣鏋舵槸閽㈢粨鏋勬垨閽㈢瓔娣峰嚌鍦熺粨鏋勭殑寤虹瓚鐗╂垨缁撴瀯浣擄紝璐ф灦鍐呮槸鏍囧噯灏哄鐨勮揣浣嶇┖闂达紝宸烽亾鍫嗗灈璧烽噸鏈虹┛琛屼簬璐ф灦涔嬮棿鐨勫贩閬撲腑锛屽畬鎴愬瓨銆佸彇璐х殑宸ヤ綔銆傜鐞嗕笂閲囩敤璁$畻鏈哄強鏉″舰鐮佹妧鏈��</text>
 								</view>
 								<view class="box-item">
 									<text class="item-title">浠撳簱鏁版嵁</text>
 									<text class="item-subTitle">warehouse data</text>
 									<view class="img-box">
+										
 										<view class="item-img">
 											<image src="../../static/a1.png" mode="aspectFit"></image>
-											
-											<view>绱璧拌璺濈(绫�)</view>
+											<view class="flex-col" style="width: calc(100% - 5vw);">
+												<view class="flex-row" style="position: relative;" >
+													<view style="width: 2vw;padding-left: 5vw;;font-size: 2vw;">{{baseInfo.xDistance}}</view>
+													<view style="position: absolute;bottom: 0;left: 7vw;">m</view>
+												</view>
+												<view style="height: 100%;text-align: left;text-indent: 2em;">绱璧拌璺濈(绫�)</view>
+											</view>
 										</view>
+										
 										<view class="item-img">
-											<image src="../../static/a1.png" mode="aspectFit"></image>
-											
-											<view>绱璧拌璺濈(绫�)</view>
+											<image src="../../static/b1.png" mode="aspectFit"></image>
+											<view class="flex-col" style="width: calc(100% - 5vw);">
+												<view class="flex-row" style="position: relative;" >
+													<view style="width: 2vw;padding-left: 5vw;;font-size: 2vw;">{{baseInfo.yDistance}}</view>
+													<view style="position: absolute;bottom: 0;left: 7vw;">m</view>
+												</view>
+												<view style="height: 100%;text-align: left;text-indent: 2em;">绱鍗囬檷璺濈(绫�)</view>
+											</view>
 										</view>
+										
 										<view class="item-img">
-											<image src="../../static/a1.png" mode="aspectFit"></image>
-											
-											<view>绱璧拌璺濈(绫�)</view>
+											<image src="../../static/c1.png" mode="aspectFit"></image>
+											<view class="flex-col" style="width: calc(100% - 5vw);">
+												<view class="flex-row" style="position: relative;" >
+													<view style="width: 2vw;padding-left: 5vw;;font-size: 2vw;">{{baseInfo.xDuration}}</view>
+													<view style="position: absolute;bottom: 0;left: 7vw;">s</view>
+												</view>
+												<view style="height: 100%;text-align: left;text-indent: 2em;">绱璧拌鏃堕暱(绉�)</view>
+											</view>
 										</view>
+										
 										<view class="item-img">
-											<image src="../../static/a1.png" mode="aspectFit"></image>
-											
-											<view>绱璧拌璺濈(绫�)</view>
+											<image src="../../static/d1.png" mode="aspectFit"></image>
+											<view class="flex-col" style="width: calc(100% - 5vw);">
+												<view class="flex-row" style="position: relative;" >
+													<view style="width: 2vw;padding-left: 5vw;;font-size: 2vw;">{{baseInfo.yDuration}}</view>
+													<view style="position: absolute;bottom: 0;left: 7vw;">s</view>
+												</view>
+												<view style="height: 100%;text-align: left;text-indent: 2em;">绱鍗囬檷鏃堕暱(绉�)</view>
+											</view>
 										</view>
+										
 									</view>
 								</view>
 								<view class="box-item">
-									<text class="item-title">搴撲綅浣跨敤鐜�</text>
-									<text class="item-subTitle">EQUIPMENT USAGE THIS MONTH</text>
+									<view class="flex-row" style="width: 100%;">
+										<!-- 宸︿晶 -->
+										<view class="flex-col" style="align-items: flex-start;justify-content: flex-start;">
+											<text class="item-title">搴撲綅浣跨敤鐜�</text>
+											<text class="item-subTitle">EQUIPMENT USAGE THIS MONTH</text>
+										</view>
+										<!-- 鍙充晶 -->
+										<view style="margin-left: auto;">
+											<!-- 鐧惧垎姣� -->
+											<view class="flex-col" style="align-items: flex-end;justify-content: flex-end;" >
+												<!-- style="justify-content: flex-end;position: absolute;top: 0;right: 1vw;text-align: right;" -->
+												<text class="item-title">{{baseInfo.usedPr}}%</text>
+												<text class="item-subTitle">鍚屾瘮涓婃湀 + 5%</text>
+											</view>
+										</view>
+									</view>
+									
+									<view class="flex-col" style="width: 100%;align-items: flex-start;position: relative;font-size: 1vw">
+										<!-- 杩涘害鏉� -->
+										<view class="flex-row" style="width: 100%;position: relative;margin-top: 5%;">
+											<view class="progressBar" style="width: 80%;height: 2vw;">
+												<view class="progress" :style="'width:'+ baseInfo.usedPr + '%'"></view>
+											</view>
+											<view style="position: absolute;bottom: 0;right: 0;font-size: 2.5vw;color: #FF5722;;">{{baseInfo.used}}</view>
+										</view>
+									</view>
 								</view>
 							</y-box>
 						</view>
@@ -56,15 +105,61 @@
 					<view class="mian-item">
 						<view class="mian-item-box">
 							<view style="width: 100%;height: 100%;">
+								<view style="height: 40%;">
+									<!-- 鎶樼嚎鍥� -->
+									<y-box>
+										<view class="box-item">
+											<view class="flex-row" style="width: 100%;">
+												<!-- 宸︿晶 -->
+												<view class="flex-col" style="align-items: flex-start;justify-content: flex-start;">
+													<text class="item-title">鍏ュ嚭搴撶粺璁�</text>
+													<text class="item-subTitle">ORDER STATISTICS</text>
+												</view>
+												<!-- 鍙充晶 -->
+												<view style="margin-left: auto;">
+													<!-- 鐧惧垎姣� -->
+													<view class="flex-col" style="align-items: flex-end;justify-content: flex-end;" >
+														<!-- style="justify-content: flex-end;position: absolute;top: 0;right: 1vw;text-align: right;" -->
+														<text class="item-title">31</text>
+														<text class="item-subTitle">浠婃棩璁㈠崟鏁�</text>
+													</view>
+												</view>
+											</view>
+											<view class="charts-box" v-if="!showCharts">
+												<qiun-data-charts type="line" :chartData="chartsDataLine1" :echartsH5="true" :echartsApp="true"/>
+											</view>
+										</view>
+									</y-box>
+								</view>
+								
+								
+								<!-- null -->
+								<view style="height: 2%;"></view>
+								
+								
 								<view style="height: 38%;">
-									<y-box></y-box>
+									<y-box>
+										<view class="box-item">
+											<view class="flex-row" style="width: 100%;">
+												<!-- 宸︿晶 -->
+												<view class="flex-col" style="align-items: flex-start;justify-content: flex-start;">
+													<text class="item-title">搴撳瓨绫诲瀷</text>
+													<text class="item-subTitle">INCOME DATE</text>
+												</view>
+												<!-- 鍙充晶 -->
+												<view style="margin-left: auto;">
+													<!-- 鐧惧垎姣� -->
+													<view class="flex-col" style="align-items: flex-end;justify-content: flex-end;" >
+														<text class="item-title">浠婂ぉ</text> 
+														<text class="item-subTitle">Today</text>
+													</view>
+												</view>
+											</view>
+										</view>
+									</y-box>
 								</view>
 								<view style="height: 2%;"></view>
-								<view style="height: 38%;">
-									<y-box></y-box>
-								</view>
-								<view style="height: 2%;"></view>
-								<view style="height: 20%;">
+								<view style="height: 18%;">
 									<y-box></y-box>
 								</view>
 							</view>
@@ -83,9 +178,11 @@
 </template>
 
 <script>
+	import demodata from '@/mockdata/demodata.json';
 	export default {
 		data() {
 			return {
+				series: [],
 				homeViewShow: true,
 				modeClass: ['fade', 'slide-top'],
 				homeView: {
@@ -98,14 +195,33 @@
 					backgroundColor: '#4cd964',
 					boxShadow: '0 0 5px 1px rgba(0,0,0,0.2)'
 				},
+				baseInfo: {
+					xDistance: 1,
+					yDistance: 2,
+					xDuration: 3,
+					yDuration: 4,
+					usedPr: 50,
+					used: 3537
+				},
+				chartsData: {
+					"Line": {
+						"categories": [],
+						"series": []
+					},
+					"Pie": {
+						"series": [{
+							"data": []
+						}]
+					},
+				},
 				duration: 1000,
 				calendar: '',
-				xDistance: '',
-				yDistance: '',
-				xDuration: '',
-				yDuration: '',
+				ringOpts:{},
+				chartsDataLine1: {},
+				chartsDataPie2: {},
 				fontSize: '',
-				height: ''
+				height: '',
+				showCharts: false
 			}
 		},
 		onShow() {
@@ -115,17 +231,26 @@
 			// #endif
 		},
 		onLoad() {
+			this.getServerData()
 			this.getDate()
 			setInterval(()=>{
 				this.getDate()
+				
 			},1000)
 			setInterval(()=>{
-				// this.handle(['fade', 'slide-top'])
+				this.handle(['fade', 'slide-top'])
 			},4000)
 		},
 		methods: {
+			getServerData() {
+				this.chartsDataLine1=JSON.parse(JSON.stringify(demodata.Line))
+			},
 			handle(type) {
 				this.homeViewShow = !this.homeViewShow
+				setTimeout(()=>{
+					this.showCharts = !this.showCharts
+				},1000)
+				
 				this.modeClass = type
 			},
 			// 鏃ュ巻
@@ -157,6 +282,17 @@
 
 <style>
 	@import url("../../static/css/common.css");
+	/* 鍒� */
+	.flex-col {
+		display: flex;
+		flex-direction: column;
+	}
+	/* 琛� */
+	.flex-row {
+		display: flex;
+		flex-direction: row;
+	}
+	
 	.container{
 		width: 100vw;
 		min-height: 100vh;
@@ -219,6 +355,25 @@
 		width: 13.5%;
 		height: 8.5%;
 	}
+	.progressBar {
+		margin-top: 9%;
+		/* width: 100%; */
+		height: 20%;
+		background-color: #233751;
+		border-radius: 5vw;
+	}
+	.progress {
+		/* width: 90%; */
+		height: 100%;
+		background-color: #FF5722;
+		border-radius: 5vw;
+	}
+	.charts-box {
+	  width: 80%;
+	  height: 24vh;
+	  margin-left: 10%;
+	} 
+	
 	
 	
 	
@@ -244,7 +399,7 @@
 	}
 	.box-item {
 		width: 100%;
-		margin-top: 2%;
+		margin-top: 4%;
 		display: flex;
 		flex-direction: column;
 		align-items: flex-start;
@@ -256,30 +411,35 @@
 	}
 	.item-subTitle {
 		font-size:0.5vw;
-		text-indent: 1em;
+		text-indent: 0em;
 	}
 	.item-text {
 		font-size: 1vw;
 		text-indent: 2em;
 		letter-spacing: 1px;
+		line-height: 3vh;
 	}
 	.img-box {
 		width: 100%;
-		background-color: #666666;
+		/* background-color: #666666; */
 		display: flex;
 		flex-direction: row;
 		justify-content: flex-start;
 		flex-wrap: wrap;
+		font-size: 1vw;
 	}
 	.item-img {
 		width: 50%;
-		margin-top: 3%;
-		background-color: #00ffff;
+		margin-top: 5%;
 		display: flex;
 		flex-direction: row;
+		/* background-color: #00ffff; */
 		justify-content: flex-start;
 		align-items: flex-start;
 	}
+	.distance {
+		
+	}
 	.item-img image {
 		height: 5vw;
 		width: 5vw;
diff --git a/Monitor-APP/pages/index/index.vue b/Monitor-APP/pages/index/index.vue
index ec4e206..7e137dd 100644
--- a/Monitor-APP/pages/index/index.vue
+++ b/Monitor-APP/pages/index/index.vue
@@ -187,7 +187,6 @@
 								<p class="english">Today</p>
 							</view>
 							<view class="sub-main">
-								<!-- 鎶樼嚎鍥� -->
 								<view class="charts-box ring">
 									<qiun-data-charts type="ring" :opts="{legend:{position:'bottom'}}" :eopts="ringOpts" :chartData="chartsDataPie2" :echartsH5="true" :echartsApp="true"/>
 								</view>
diff --git a/Monitor-APP/uni_modules/qiun-data-charts/changelog.md b/Monitor-APP/uni_modules/qiun-data-charts/changelog.md
index 5128254..55484df 100644
--- a/Monitor-APP/uni_modules/qiun-data-charts/changelog.md
+++ b/Monitor-APP/uni_modules/qiun-data-charts/changelog.md
@@ -1,3 +1,90 @@
+## 2.4.4-20221102锛�2022-11-02锛�
+- 绉嬩簯鍥捐〃缁勪欢 淇浣跨敤echarts鏃秗eload銆乺eshow鏃犳硶璋冪敤閲嶆柊娓叉煋鐨刡ug锛孾璇﹁鐮佷簯PR](https://gitee.com/uCharts/uCharts/pulls/40)
+- 绉嬩簯鍥捐〃缁勪欢 淇浣跨敤echarts鏃讹紝鍒濆鍖栨椂瀹介珮涓嶆纭殑bug锛孾璇﹁鐮佷簯PR](https://gitee.com/uCharts/uCharts/pulls/42)
+- 绉嬩簯鍥捐〃缁勪欢 淇uniapp鐨刪5浣跨敤history妯″紡鏃讹紝鏃犳硶鍔犺浇echarts鐨刡ug
+- 绉嬩簯鍥捐〃缁勪欢 灏忕▼搴忕@complete銆丂scrollLeft銆丂scrollRight銆丂getTouchStart銆丂getTouchMove銆丂getTouchEnd浜嬩欢澧炲姞opts鍙傛暟浼犲嚭锛屾柟渚夸竴浜涚壒娈婇渶姹傜殑浜や簰鑾峰彇鏁版嵁銆�
+
+- uCharts.js 淇calTooltipYAxisData鏂规硶鍐協ormatter鏍煎紡鍖栨柟娉曟湭涓巠杞存柟娉曞悓姝ョ殑闂锛孾璇﹁鐮佷簯PR](https://gitee.com/uCharts/uCharts/pulls/43)
+- uCharts.js 鍦板浘鏂板鍙傛暟opts.series[i].fillOpacity锛屼互閫忔槑搴︽柟寮忔潵璁剧疆棰滆壊杩囧害鏁堟灉锛孾璇﹁鐮佷簯PR](https://gitee.com/uCharts/uCharts/pulls/38)
+- uCharts.js 鍦板浘鏂板鍙傛暟opts.extra.map.active锛屾槸鍚﹀惎鐢ㄧ偣鍑绘縺娲诲彉鑹�
+- uCharts.js 鍦板浘鏂板鍙傛暟opts.extra.map.activeTextColor锛屾槸鍚﹀惎鐢ㄧ偣鍑绘縺娲诲彉鑹�
+- uCharts.js 鍦板浘鏂板娓叉煋瀹屾垚浜嬩欢renderComplete
+- uCharts.js 婕忔枟鍥句慨澶嶅綋閮ㄥ垎鏁版嵁鐩稿悓鏃秚ooltip鎻愮ず绐楃偣鍑婚敊璇殑bug
+- uCharts.js 婕忔枟鍥炬柊澧炲弬鏁皊eries.data[i].centerText 灞呬腑鏍囩鏂囨
+- uCharts.js 婕忔枟鍥炬柊澧炲弬鏁皊eries.data[i].centerTextSize 灞呬腑鏍囩鏂囨瀛椾綋澶у皬锛岄粯璁pts.fontSize
+- uCharts.js 婕忔枟鍥炬柊澧炲弬鏁皊eries.data[i].centerTextColor 灞呬腑鏍囩鏂囨瀛椾綋棰滆壊锛岄粯璁�#FFFFFF
+- uCharts.js 婕忔枟鍥炬柊澧炲弬鏁皁pts.extra.funnel.minSize 鏈�灏忓�肩殑鏈�灏忓搴︼紝榛樿0
+- uCharts.js 杩涘害鏉℃柊澧炲弬鏁皁pts.extra.arcbar.direction锛屽姩鐢绘柟鍚戯紝鍙�夊�间负cw椤烘椂閽堛�乧cw閫嗘椂閽�
+- uCharts.js 娣峰悎鍥炬柊澧炲弬鏁皁pts.extra.mix.line.width锛屾姌绾跨殑瀹藉害锛岄粯璁�2
+- uCharts.js 淇tooltip寮�鍚痟orizentalLine姘村钩妯嚎鏍囨敞鏃讹紝鍥捐〃鏄剧ず閿欎綅鐨刡ug
+- uCharts.js 浼樺寲tooltip褰撴枃瀛楀緢澶氬彉涓哄乏渚ф樉绀烘椂锛屽鏋滅敾甯冧粛鏄炬樉绀轰笉涓嬶紝鎻愮ず妗嗛敊浣嶇疆鍙樹负浠ュ乏渚�0浣嶇疆璧风敾
+- uCharts.js 淇寮�鍚粴鍔ㄦ潯鍚嶺杞存枃瀛楄秴鍑虹粯鍥惧尯鍩熷悗鐨勯殣钘忛�昏緫
+- uCharts.js 鏌辩姸鍥俱�佹潯鐘跺浘淇鍫嗗彔妯″紡涓嶈兘閫氳繃{value,color}璧嬪�煎崟涓煴瀛愰鑹茬殑闂
+- uCharts.js 姘旀场鍥句慨澶嶄笉璇嗗埆series.textSize鍜宻eries.textColor鐨刡ug
+
+## 鎶ラ敊TypeError: Cannot read properties of undefined (reading 'length')
+1. 濡傛灉鏄痷ni-modules鐗堟湰缁勪欢锛岃鍏堢櫥褰旽BuilderX璐﹀彿锛�
+2. 鍦℉BuilderX涓殑manifest.json锛岀偣鍑婚噸鏂拌幏鍙杣niapp鐨刟ppid锛屾垨鑰呭垹闄ppid閲嶆柊绮樿创锛岄噸鏂拌繍琛岋紱
+3. 濡傛灉鏄痗li椤圭洰璇蜂娇鐢ㄧ爜浜戜笂鐨勯潪uniCloud鐗堟湰缁勪欢锛�
+4. 鎴栬�呮坊鍔爑niCloud鐨勪緷璧栵紱
+5. 鎴栬�呬娇鐢ㄥ師鐢焨Charts锛�
+## 2.4.3-20220505锛�2022-05-05锛�
+- 绉嬩簯鍥捐〃缁勪欢 淇寮�鍚痗anvas2d鍚庡皢series璧嬪�间负绌烘暟缁勬樉绀哄姞杞藉浘鏍囨椂锛屽啀娆¤祴鍊煎悗鐢诲竷闂姩鐨刡ug
+- 绉嬩簯鍥捐〃缁勪欢 淇鍗囩骇hbx鏈�鏂扮増鍚嶦Charts鐨刪ighlight鏂规硶鎶ラ敊鐨刡ug
+- uCharts.js 闆疯揪鍥炬柊澧炲弬鏁皁pts.extra.radar.gridEval锛屾暟鎹偣浣嶇綉鏍兼娊甯岋紝榛樿1
+- uCharts.js 闆疯揪鍥炬柊澧炲弬鏁皁pts.extra.radar.axisLabel锛�	鏄惁鏄剧ず鍒诲害鐐瑰�硷紝榛樿false
+- uCharts.js 闆疯揪鍥炬柊澧炲弬鏁皁pts.extra.radar.axisLabelTofix锛屽埢搴︾偣鍊煎皬鏁颁綅鏁帮紝榛樿0
+- uCharts.js 闆疯揪鍥炬柊澧炲弬鏁皁pts.extra.radar.labelPointShow锛屾槸鍚︽樉绀烘湯绔埢搴﹀渾鐐癸紝榛樿false
+- uCharts.js 闆疯揪鍥炬柊澧炲弬鏁皁pts.extra.radar.labelPointRadius锛屽埢搴﹀渾鐐圭殑鍗婂緞锛岄粯璁�3
+- uCharts.js 闆疯揪鍥炬柊澧炲弬鏁皁pts.extra.radar.labelPointColor锛屽埢搴﹀渾鐐圭殑棰滆壊锛岄粯璁�#cccccc
+- uCharts.js 闆疯揪鍥炬柊澧炲弬鏁皁pts.extra.radar.linearType锛屾笎鍙樿壊绫诲瀷锛屽彲閫夊��"none"鍏抽棴娓愬彉,"custom"寮�鍚笎鍙�
+- uCharts.js 闆疯揪鍥炬柊澧炲弬鏁皁pts.extra.radar.customColor锛岃嚜瀹氫箟娓愬彉棰滆壊锛屾暟缁勭被鍨嬪搴攕eries鐨勬暟缁勯暱搴︿互鍖归厤涓嶅悓series棰滆壊鐨勪笉鍚岄厤鑹叉柟妗堬紝渚嬪["#FA7D8D", "#EB88E2"]
+- uCharts.js 闆疯揪鍥句紭鍖栨敮鎸乻eries.textColor銆乻eries.textSize灞炴��
+- uCharts.js 鏌辩姸鍥句腑娓╁害璁″紡鍥炬爣锛屼紭鍖栨敮鎸佸叏鍦嗚绫诲瀷锛屼慨澶嶈竟妗嗘湁缂濋殭鐨刡ug锛岃瑙佸畼缃戙�愭紨绀恒�戜腑鐨勬俯搴﹁鍥捐〃
+- uCharts.js 鏌辩姸鍥炬柊澧炲弬鏁皁pts.extra.column.activeWidth锛屽綋鍓嶇偣鍑绘煴鐘跺浘鐨勮儗鏅搴︼紝榛樿涓�涓崟鍏冩牸鍗曚綅
+- uCharts.js 娣峰悎鍥惧鍔爋pts.extra.mix.area.gradient 鍖哄煙鍥炬槸鍚﹀紑鍚笎鍙樿壊
+- uCharts.js 娣峰悎鍥惧鍔爋pts.extra.mix.area.opacity 鍖哄煙鍥鹃�忔槑搴︼紝榛樿0.2
+- uCharts.js 楗煎浘銆佸渾鐜浘銆佺帿鐟板浘銆佹紡鏂楀浘锛屽鍔爋pts.series[0].data[i].labelText锛岃嚜瀹氫箟鏍囩鏂囧瓧锛岄伩鍏峟ormatter鏍煎紡鍖栫殑绻佺悙锛岃瑙佸畼缃戙�愭紨绀恒�戜腑鐨勯ゼ鍥�
+- uCharts.js 楗煎浘銆佸渾鐜浘銆佺帿鐟板浘銆佹紡鏂楀浘锛屽鍔爋pts.series[0].data[i].labelShow锛岃嚜瀹氫箟鏄惁鏄剧ず鏌愪竴涓寚绀烘爣绛撅紝閬垮厤鍥犻ゼ鍥剧被鍒お澶氬鑷存爣绛鹃噸澶嶆垨鑰呭眳澶氬鑷村浘褰㈠彉褰㈢殑闂锛岃瑙佸畼缃戙�愭紨绀恒�戜腑鐨勯ゼ鍥�
+- uCharts.js 澧炲姞opts.series[i].legendText/opts.series[0].data[i].legendText锛堜笌series.name鍚岀骇锛夎嚜瀹氫箟鍥句緥鏄剧ず鏂囧瓧鐨勬柟娉�
+- uCharts.js 浼樺寲X杞淬�乊杞磃ormatter鏍煎紡鍖栨柟娉曞鍔犲舰鍙傦紝缁熶竴涓篺romatter:function(value,index,opts){}
+- uCharts.js 淇妯睆妯″紡涓嬫棤娉曚娇鐢ㄥ弻鎸囩缉鏀炬柟娉曠殑bug
+- uCharts.js 淇褰撳彧鏈変竴鏉℃暟鎹垨鑰呭鏉℃暟鎹�肩浉绛夌殑鏃跺�橸杞磋嚜鍔ㄨ绠楃殑鏈�澶у�奸敊璇殑bug
+- 銆愬畼缃戞ā鏉裤�戝鍔犲閮ㄨ嚜瀹氫箟鍥句緥涓庡浘琛ㄤ氦浜掔殑渚嬪瓙锛孾鐐瑰嚮璺宠浆](https://www.ucharts.cn/v2/#/layout/info?id=2)
+
+## 娉ㄦ剰锛氶潪unimodules 鐗堟湰濡傚洜鏇存柊 hbx 鑷� 3.4.7 瀵艰嚧鎶ラ敊濡備笅锛岃鍒扮爜浜戞洿鏂伴潪 unimodules 鐗堟湰缁勪欢锛孾鐐瑰嚮璺宠浆](https://gitee.com/uCharts/uCharts/tree/master/uni-app/uCharts-%E7%BB%84%E4%BB%B6)
+> Error in callback for immediate watcher "uchartsOpts": "SyntaxError: Unexpected token u in JSON at position 0"
+## 2.4.2-20220421锛�2022-04-21锛�
+- 绉嬩簯鍥捐〃缁勪欢 淇HBX鍗囩骇3.4.6.20220420鐗堟湰鍚巈charts鎶ラ敊鐨勯棶棰�
+## 2.4.2-20220420锛�2022-04-20锛�
+## 閲嶈锛佹鐗堟湰uCharts鏂板浜嗗緢澶氬姛鑳斤紝淇浜嗚澶氬凡鐭ラ棶棰�
+- 绉嬩簯鍥捐〃缁勪欢 鏂板onzoom寮�鍚弻鎸囩缉鏀惧姛鑳斤紙浠卽Charts锛夛紝鍓嶆彁闇�瑕佺洿瑙掑潗鏍囩郴绫诲浘琛ㄧ被鍨嬶紝骞朵笖ontouch涓簍rue銆乷pts.enableScroll涓簍rue锛岃瑙佸疄渚嬮」鐩甂绾垮浘
+- 绉嬩簯鍥捐〃缁勪欢 鏂板optsWatch鏄惁鐩戝惉opts鍙樺寲锛屽叧闂璷ptsWatch鍚庯紝鍔ㄦ�佷慨鏀筼pts涓嶄細瑙﹀彂鍥捐〃閲嶇粯
+- 绉嬩簯鍥捐〃缁勪欢 淇寮�鍚痗anvas2d鍔熻兘鍚庯紝鍔ㄦ�佹洿鏂版暟鎹悗鐢诲竷闂姩鐨刡ug
+- 绉嬩簯鍥捐〃缁勪欢 鍘婚櫎directory灞炴�э紝鏀逛负鑷姩鑾峰彇echarts.min.js璺緞锛堝崌绾т笉鍙楀奖鍝嶏級
+- 绉嬩簯鍥捐〃缁勪欢 澧炲姞getImage()鏂规硶鍙夽getImage浜嬩欢锛岄�氳繃ref璋冪敤getImage()鏂规硶鑾凤紝瑙﹀彂@getImage浜嬩欢鑾峰彇褰撳墠鐢诲竷鐨刡ase64鍥剧墖鏂囦欢娴併��
+- 绉嬩簯鍥捐〃缁勪欢 鏀粯瀹濄�佸瓧鑺傝烦鍔ㄣ�侀涔︺�佸揩鎵嬪皬绋嬪簭鏀寔寮�鍚痗anvas2d鍚屽眰娓叉煋璁剧疆銆�
+- 绉嬩簯鍥捐〃缁勪欢 鏂板鍔犮�愰潪uniCloud銆戠増鏈粍浠讹紝閬垮厤鏈変簺涓嶉渶瑕乽niCloud鐨勪娇鐢ㄧ粍浠跺彂甯冭嚦灏忕▼搴忛渶瑕佹彁浜ら殣绉佸0鏄庨棶棰橈紝璇峰埌鐮佷簯[銆愰潪uniCloud鐗堟湰銆慮(https://gitee.com/uCharts/uCharts/tree/master/uni-app/uCharts-%E7%BB%84%E4%BB%B6)锛屾垨npm[銆愰潪uniCloud鐗堟湰銆慮(https://www.npmjs.com/package/@qiun/uni-ucharts)涓嬭浇浣跨敤銆�
+- uCharts.js 鏂板dobuleZoom鍙屾寚缂╂斁鍔熻兘
+- uCharts.js 鏂板灞卞嘲鍥総ype="mount"锛屾暟鎹牸寮忎负楗煎浘绫绘牸寮忥紝涓嶉渶瑕佷紶鍏ategories锛屽叿浣撹瑙佹柊鐗堝畼缃戝湪绾挎紨绀�
+- uCharts.js 淇鎶樼嚎鍥惧綋鏁版嵁涓瓨鍦╪ull鏃秚ooltip鎶ラ敊鐨刡ug
+- uCharts.js 淇楗煎浘绫诲綋鐢诲竷姣旇緝灏忔椂鑷姩璁$畻鐨勫崐寰勬槸璐熸暟鎶ラ敊鐨刡ug
+- uCharts.js 缁熶竴鍚勫浘琛ㄧ被鍨嬬殑series.formatter鏍煎紡鍖栨柟娉曠殑褰㈠弬涓�(val, index, series, opts)锛屾柟渚挎牸寮忓寲鏃舵湁鏇村鍙傛暟鍙敤
+- uCharts.js 鏍囪绾垮姛鑳藉鍔爈abelText鑷畾涔夋樉绀烘枃瀛楋紝澧炲姞labelAlign鏍囩鏄剧ず浣嶇疆锛堝乏渚ф垨鍙充晶锛夛紝澧炲姞鏍囩鏄剧ず浣嶇疆寰皟labelOffsetX銆乴abelOffsetY
+- uCharts.js 淇鏉$姸鍥惧綋鏁板�煎緢灏忔椂寮�鍚渾瑙掑悗鏍峰紡閿欒鐨刡ug
+- uCharts.js 淇X杞村紑鍚痙isabled鍚庯紝X杞翠粛鍗犵敤绌洪棿鐨刡ug
+- uCharts.js 淇X杞村紑鍚粴鍔ㄦ潯骞朵笖寮�鍚痳otateLabel鍚庯紝X杞存枃瀛椾笌婊氬姩鏉¢噸鍙犵殑bug
+- uCharts.js 澧炲姞X杞磖otateAngle鏂囧瓧鏃嬭浆鑷畾涔夎搴︼紝鍙栧�艰寖鍥�(-90鑷�90)
+- uCharts.js 淇鍦板浘鏂囧瓧鏍囩灞傜骇鏄剧ず涓嶆纭殑bug
+- uCharts.js 淇楗煎浘銆佸渾鐜浘銆佺帿鐟板浘褰撴暟鎹叏閮ㄤ负0鐨勬椂鍊欎笉鏄剧ず鏁版嵁鏍囩鐨刡ug
+- uCharts.js 淇褰搊pts.padding涓婅竟璺濅负0鏃讹紝Y杞撮《閮ㄥ埢搴︽爣绛句綅缃笉姝g‘鐨刡ug
+
+## 鍙﹀鎴戜滑杩樺紑鍙戜簡鍚勫ぇ鍘熺敓灏忕▼搴忕粍浠讹紝宸插彂甯冭嚦鐮佷簯鍜宯pm
+[https://gitee.com/uCharts/uCharts](https://gitee.com/uCharts/uCharts)
+[https://www.npmjs.com/~qiun](https://www.npmjs.com/~qiun)
+
+## 瀵逛簬鍘熺敓uCharts鏂囨。鎴戜滑宸蹭笂绾挎柊鐗堝畼鏂圭綉绔欙紝璇︽儏鐐瑰嚮涓嬮潰閾炬帴杩涘叆瀹樼綉
+[https://www.uCharts.cn/v2/](https://www.ucharts.cn/v2/)
 ## 2.3.7-20220122锛�2022-01-22锛�
 ## 閲嶈锛佷娇鐢╲ue3缂栬瘧锛岃浣跨敤cli妯″紡骞跺崌绾ц嚦鏈�鏂颁緷璧栵紝HbuilderX缂栬瘧闇�瑕佷娇鐢�3.3.8浠ヤ笂鐗堟湰
 - uCharts.js 淇uni-app骞冲彴缁勪欢妯″紡浣跨敤vue3缂栬瘧鍒板皬绋嬪簭鎶ラ敊鐨刡ug銆�
diff --git a/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue b/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue
index ef5375c..09ae81e 100644
--- a/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue
+++ b/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue
@@ -1,5 +1,5 @@
 <!-- 
- * qiun-data-charts 绉嬩簯楂樻�ц兘璺ㄥ叏绔浘琛ㄧ粍浠� v2.3.7-20220118
+ * qiun-data-charts 绉嬩簯楂樻�ц兘璺ㄥ叏绔浘琛ㄧ粍浠�
  * Copyright (c) 2021 QIUN庐 绉嬩簯 https://www.ucharts.cn All rights reserved.
  * Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
  * 澶嶅埗浣跨敤璇蜂繚鐣欐湰娈垫敞閲婏紝鎰熻阿鏀寔寮�婧愶紒
@@ -97,7 +97,7 @@
     </block>
     <!-- #endif -->
     <!-- 鍏朵粬灏忕▼搴忛�氳繃vue娓叉煋鍥捐〃 -->
-    <!-- #ifdef MP-360 || MP-BAIDU || MP-QQ || MP-TOUTIAO || MP-WEIXIN -->
+    <!-- #ifdef MP-360 || MP-BAIDU || MP-QQ || MP-TOUTIAO || MP-WEIXIN || MP-KUAISHOU || MP-LARK || MP-JD -->
     <block v-if="type2d">
       <view v-if="ontouch" @tap="_tap">
         <canvas
@@ -175,7 +175,7 @@
 
 function formatterAssign(args,formatter) {
   for (let key in args) {
-    if(args[key] !== null && typeof args[key] === 'object'){
+    if(args.hasOwnProperty(key) && args[key] !== null && typeof args[key] === 'object'){
       formatterAssign(args[key],formatter)
     }else if(key === 'format' && typeof args[key] === 'string'){
       args['formatter'] = formatter[args[key]] ? formatter[args[key]] : undefined;
@@ -306,6 +306,14 @@
       type: Boolean,
       default: false
     },
+    optsWatch: {
+      type: Boolean,
+      default: true
+    },
+    onzoom: {
+      type: Boolean,
+      default: false
+    },
     ontap: {
       type: Boolean,
       default: true
@@ -399,7 +407,9 @@
       cHeight: 250,
       showchart: false,
       echarts: false,
-      echartsResize:false,
+      echartsResize:{
+        state:false
+      },
       uchartsOpts: {},
       echartsOpts: {},
       drawData:{},
@@ -426,15 +436,16 @@
     if (this.canvas2d === false || systemInfo.platform === 'windows' || systemInfo.platform === 'mac') {
       this.type2d = false;
     }else{
+      this.type2d = true;
       this.pixel = systemInfo.pixelRatio;
-      if (this.canvasId === 'uchartsid' || this.canvasId == '') {
-        console.log('[uCharts]:寮�鍚痗anvas2d妯″紡锛屽繀椤绘寚瀹歝anvasId锛屽惁鍒欎細鍑虹幇鍋跺皵鑾峰彇涓嶅埌dom鑺傜偣鐨勯棶棰橈紒');
-      }
     }
     // #endif
     //闈炲井淇″皬绋嬪簭绔己鍒跺叧闂璫anvas2d妯″紡
     // #ifndef MP-WEIXIN
     this.type2d = false;
+    // #endif
+    // #ifdef  MP-TOUTIAO || MP-LARK || MP-ALIPAY
+    this.type2d = this.canvas2d;
     // #endif
     // #ifdef MP-ALIPAY
     this.inAli = true;
@@ -486,7 +497,7 @@
           return;
         }
         if (_this.echarts) {
-          _this.echartsResize = !_this.echartsResize;
+          _this.echartsResize.state = !_this.echartsResize.state;
         } else {
           _this.resizeHandler();
         }
@@ -511,11 +522,11 @@
       handler(val, oldval) {
         if (typeof val === 'object') {
           if (JSON.stringify(val) !== JSON.stringify(oldval)) {
+            this._clearChart();
             if (val.series && val.series.length > 0) {
               this.beforeInit();
             }else{
               this.mixinDatacomLoading = true;
-              this._clearChart();
               this.showchart = false;
               this.mixinDatacomErrorMessage = null;
             }
@@ -549,7 +560,7 @@
     optsProps: {
       handler(val, oldval) {
         if (typeof val === 'object') {
-          if (JSON.stringify(val) !== JSON.stringify(oldval) && this.echarts === false) {
+          if (JSON.stringify(val) !== JSON.stringify(oldval) && this.echarts === false && this.optsWatch == true) {
             this.checkData(this.drawData);
           }
         } else {
@@ -581,7 +592,7 @@
       if (val === true && this.mixinDatacomLoading === false) {
         setTimeout(() => {
           this.mixinDatacomErrorMessage = null;
-          this.echartsResize = !this.echartsResize;
+          this.echartsResize.state = !this.echartsResize.state;
           this.checkData(this.drawData);
         }, 200);
       }
@@ -854,10 +865,12 @@
     },
     _clearChart() {
       let cid = this.cid
-      if (this.echrts !== true) {
-        const ctx = uni.createCanvasContext(cid, this);
-        ctx.clearRect(0, 0, this.cWidth, this.cHeight);
-        ctx.draw();
+      if (this.echarts !== true && cfu.option[cid] && cfu.option[cid].context) {
+        const ctx = cfu.option[cid].context;
+        if(typeof ctx === "object" && !!!cfu.option[cid].update){
+          ctx.clearRect(0, 0, this.cWidth*this.pixel, this.cHeight*this.pixel);
+          ctx.draw();
+        }
       }
     },
     init() {
@@ -882,6 +895,7 @@
               cfu.option[cid].animation = this.animation;
               cfu.option[cid].width = data.width * this.pixel;
               cfu.option[cid].height = data.height * this.pixel;
+              cfu.option[cid].onzoom = this.onzoom;
               cfu.option[cid].ontap = this.ontap;
               cfu.option[cid].ontouch = this.ontouch;
               cfu.option[cid].onmouse = this.openmouse;
@@ -924,14 +938,14 @@
                         const canvas = res[0].node;
                         const ctx = canvas.getContext('2d');
                         cfu.option[cid].context = ctx;
-                        canvas.width = data.width * this.pixel;
-                        canvas.height = data.height * this.pixel;
-                        canvas._width = data.width * this.pixel;
-                        canvas._height = data.height * this.pixel;
                         cfu.option[cid].rotateLock = cfu.option[cid].rotate;
                         if(cfu.instance[cid] && cfu.option[cid] && cfu.option[cid].update === true){
                           this._updataUChart(cid)
                         }else{
+                          canvas.width = data.width * this.pixel;
+                          canvas.height = data.height * this.pixel;
+                          canvas._width = data.width * this.pixel;
+                          canvas._height = data.height * this.pixel;
                           setTimeout(()=>{
                             cfu.option[cid].context.restore();
                             cfu.option[cid].context.save();
@@ -983,17 +997,38 @@
     	    //#endif
     	    //#ifndef H5
     	      uni.saveImageToPhotosAlbum({
-    	          filePath: res.tempFilePath,
-    	          success: function () {
-    	              uni.showToast({
-    	                  title: '淇濆瓨鎴愬姛',
-    	                  duration: 2000
-    	              });
-    	          }
+              filePath: res.tempFilePath,
+              success: function () {
+                uni.showToast({
+                  title: '淇濆瓨鎴愬姛',
+                  duration: 2000
+                });
+              }
     	      });
     	    //#endif
     	  } 
     	},this);
+    },
+    getImage(){
+      if(this.type2d == false){
+        uni.canvasToTempFilePath({
+          canvasId: this.cid,
+          success: res=>{
+            this.emitMsg({name: 'getImage', params: {type:"getImage", base64: res.tempFilePath}});
+          }
+        },this);
+      }else{
+        const query = uni.createSelectorQuery().in(this)
+        query
+          .select('#' + this.cid)
+          .fields({ node: true, size: true })
+          .exec(res => {
+            if (res[0]) {
+              const canvas = res[0].node;
+              this.emitMsg({name: 'getImage', params: {type:"getImage", base64: canvas.toDataURL('image/png')}});
+            }
+          });
+      }
     },
     // #ifndef APP-VUE || H5
     _newChart(cid) {
@@ -1003,14 +1038,14 @@
       this.showchart = true;
       cfu.instance[cid] = new uCharts(cfu.option[cid]);
       cfu.instance[cid].addEventListener('renderComplete', () => {
-        this.emitMsg({name: 'complete', params: {type:"complete", complete: true, id: cid}});
+        this.emitMsg({name: 'complete', params: {type:"complete", complete: true, id: cid, opts: cfu.instance[cid].opts}});
         cfu.instance[cid].delEventListener('renderComplete')
       });
       cfu.instance[cid].addEventListener('scrollLeft', () => {
-        this.emitMsg({name: 'scrollLeft', params: {type:"scrollLeft", scrollLeft: true, id: cid}});
+        this.emitMsg({name: 'scrollLeft', params: {type:"scrollLeft", scrollLeft: true, id: cid, opts: cfu.instance[cid].opts}});
       });
       cfu.instance[cid].addEventListener('scrollRight', () => {
-        this.emitMsg({name: 'scrollRight', params: {type:"scrollRight", scrollRight: true, id: cid}});
+        this.emitMsg({name: 'scrollRight', params: {type:"scrollRight", scrollRight: true, id: cid, opts: cfu.instance[cid].opts}});
       });
     },
     _updataUChart(cid) {
@@ -1124,31 +1159,35 @@
     _touchStart(e) {
       let cid = this.cid
       lastMoveTime=Date.now();
-      if(cfu.option[cid].enableScroll === true){
+      if(cfu.option[cid].enableScroll === true && e.touches.length == 1){
         cfu.instance[cid].scrollStart(e);
       }
-      this.emitMsg({name:'getTouchStart', params:{type:"touchStart", event:e.changedTouches[0], id:cid}});
+      this.emitMsg({name:'getTouchStart', params:{type:"touchStart", event:e.changedTouches[0], id:cid, opts: cfu.instance[cid].opts}});
     },
     _touchMove(e) {
       let cid = this.cid
       let currMoveTime = Date.now();
       let duration = currMoveTime - lastMoveTime;
-      if (duration < Math.floor(1000 / 60)) return;//姣忕60甯�
+      let touchMoveLimit = cfu.option[cid].touchMoveLimit || 24;
+      if (duration < Math.floor(1000 / touchMoveLimit)) return;//姣忕60甯�
       lastMoveTime = currMoveTime;
-      if(cfu.option[cid].enableScroll === true){
+      if(cfu.option[cid].enableScroll === true && e.changedTouches.length == 1){
         cfu.instance[cid].scroll(e);
       }
-      this.emitMsg({name: 'getTouchMove', params: {type:"touchMove", event:e.changedTouches[0], id: cid}});
       if(this.ontap === true && cfu.option[cid].enableScroll === false && this.onmovetip === true){
         this._tap(e,true)
       }
+      if(this.ontouch === true && cfu.option[cid].enableScroll === true && this.onzoom === true && e.changedTouches.length == 2){
+        cfu.instance[cid].dobuleZoom(e);
+      }
+      this.emitMsg({name: 'getTouchMove', params: {type:"touchMove", event:e.changedTouches[0], id: cid, opts: cfu.instance[cid].opts}});
     },
     _touchEnd(e) {
       let cid = this.cid
-      if(cfu.option[cid].enableScroll === true){
+      if(cfu.option[cid].enableScroll === true && e.touches.length == 0){
         cfu.instance[cid].scrollEnd(e);
       }
-      this.emitMsg({name:'getTouchEnd', params:{type:"touchEnd", event:e.changedTouches[0], id:cid}});
+      this.emitMsg({name:'getTouchEnd', params:{type:"touchEnd", event:e.changedTouches[0], id:cid, opts: cfu.instance[cid].opts}});
       if(this.ontap === true && cfu.option[cid].enableScroll === false && this.onmovetip === true){
         this._tap(e,true)
       }
@@ -1195,7 +1234,7 @@
 
 function rdformatterAssign(args,formatter) {
   for (let key in args) {
-    if(args[key] !== null && typeof args[key] === 'object'){
+    if(args.hasOwnProperty(key) && args[key] !== null && typeof args[key] === 'object'){
       rdformatterAssign(args[key],formatter)
     }else if(key === 'format' && typeof args[key] === 'string'){
       args['formatter'] = formatter[args[key]] ? formatter[args[key]] : undefined;
@@ -1246,19 +1285,22 @@
         cfe.option[cid] = rddeepCloneAssign({}, eopts);
       }
       let newData = eopts.chartData;
-      //鎸傝浇categories鍜宻eries
-      if(cfe.option[cid].xAxis && cfe.option[cid].xAxis.type && cfe.option[cid].xAxis.type === 'category'){
-        cfe.option[cid].xAxis.data = newData.categories
+      if(newData){
+        //鎸傝浇categories鍜宻eries
+        if(cfe.option[cid].xAxis && cfe.option[cid].xAxis.type && cfe.option[cid].xAxis.type === 'category'){
+          cfe.option[cid].xAxis.data = newData.categories
+        }
+        if(cfe.option[cid].yAxis && cfe.option[cid].yAxis.type && cfe.option[cid].yAxis.type === 'category'){
+          cfe.option[cid].yAxis.data = newData.categories
+        }
+        cfe.option[cid].series = []
+        for (var i = 0; i < newData.series.length; i++) {
+          cfe.option[cid].seriesTemplate = cfe.option[cid].seriesTemplate ? cfe.option[cid].seriesTemplate : {}
+          let Template = rddeepCloneAssign({},cfe.option[cid].seriesTemplate,newData.series[i])
+          cfe.option[cid].series.push(Template)
+        }
       }
-      if(cfe.option[cid].yAxis && cfe.option[cid].yAxis.type && cfe.option[cid].yAxis.type === 'category'){
-        cfe.option[cid].yAxis.data = newData.categories
-      }
-      cfe.option[cid].series = []
-      for (var i = 0; i < newData.series.length; i++) {
-        cfe.option[cid].seriesTemplate = cfe.option[cid].seriesTemplate ? cfe.option[cid].seriesTemplate : {}
-        let Template = rddeepCloneAssign({},cfe.option[cid].seriesTemplate,newData.series[i])
-        cfe.option[cid].series.push(Template)
-      }
+      
       if (typeof window.echarts === 'object') {
           this.newEChart()
       }else{
@@ -1267,9 +1309,9 @@
         script.src = './uni_modules/qiun-data-charts/static/app-plus/echarts.min.js'
         // #endif
         // #ifdef H5
-        const rooturl = window.location.origin 
-        const directory = instance.getDataset().directory
-        script.src = rooturl + directory + 'uni_modules/qiun-data-charts/static/h5/echarts.min.js'
+        const { origin } = window.location
+        const rooturl = origin + process.env.BASE_URL
+        script.src = rooturl + 'uni_modules/qiun-data-charts/static/h5/echarts.min.js'
         // #endif
         script.onload = this.newEChart
         document.head.appendChild(script)
@@ -1294,7 +1336,7 @@
           })
           // 澧炲姞ECharts鐨刪ighlight娑堟伅锛屽疄鐜版寜涓嬬Щ鍔ㄨ繑鍥炵储寮曞姛鑳姐�俛dd by onefish 鍒涘缓浜� 2021-12-11 09:50
           cfe.instance[cid].on('highlight', resdata => {
-            that[cid].callMethod('emitMsg',{name:"getHighlight", params:{type:"highlight", dataIndex:resdata.batch[0].dataIndex, id:cid}})
+            that[cid].callMethod('emitMsg',{name:"getHighlight", params:{type:"highlight", res:resdata, id:cid}})
           })
         }
         this.updataEChart(cid,cfe.option[cid])
@@ -1328,7 +1370,16 @@
         if(cfe.instance[cid]){
           cfe.instance[cid].off('finished')
         }
-      })
+      });
+
+      //淇init鍒濆鍖栧疄渚嬭幏鍙栧楂樹笉姝g‘闂
+      if(
+        typeof that[cid].$el.children[0].clientWidth != 'undefined' &&
+          (
+            Math.abs( that[cid].$el.children[0].clientWidth - cfe.instance[cid].getWidth() )>3 ||
+            Math.abs( that[cid].$el.children[0].clientHeight - cfe.instance[cid].getHeight() )>3
+          )
+      ){this.ecresize();}
     },
     tooltipPosition(){
       return (point, params, dom, rect, size) => {
@@ -1380,14 +1431,14 @@
       let cid = this.rid
       cfu.instance[cid] = new uChartsRD(cfu.option[cid])
       cfu.instance[cid].addEventListener('renderComplete', () => {
-        that[cid].callMethod('emitMsg',{name:"complete",params:{type:"complete",complete:true,id:cid}})
+        that[cid].callMethod('emitMsg',{name:"complete",params:{type:"complete",complete:true,id:cid, opts: cfu.instance[cid].opts}})
         cfu.instance[cid].delEventListener('renderComplete')
       });
       cfu.instance[cid].addEventListener('scrollLeft', () => {
-        that[cid].callMethod('emitMsg',{name:"scrollLeft",params:{type:"scrollLeft",scrollLeft:true,id:cid}})
+        that[cid].callMethod('emitMsg',{name:"scrollLeft",params:{type:"scrollLeft",scrollLeft:true,id:cid, opts: cfu.instance[cid].opts}})
       });
       cfu.instance[cid].addEventListener('scrollRight', () => {
-        that[cid].callMethod('emitMsg',{name:"scrollRight",params:{type:"scrollRight",scrollRight:true,id:cid}})
+        that[cid].callMethod('emitMsg',{name:"scrollRight",params:{type:"scrollRight",scrollRight:true,id:cid, opts: cfu.instance[cid].opts}})
       });
     },
     updataUChart() {
@@ -1471,31 +1522,39 @@
       let cid = this.rid
       let ontouch = cfu.option[cid].ontouch
       if(ontouch == false) return;
-      cfu.instance[cid].scrollStart(e)
-      that[cid].callMethod('emitMsg',{name:"getTouchStart",params:{type:"touchStart",event:e.changedTouches[0],id:cid}})
+      if(cfu.option[cid].enableScroll === true && e.touches.length == 1){
+        cfu.instance[cid].scrollStart(e);
+      }
+      that[cid].callMethod('emitMsg',{name:"getTouchStart",params:{type:"touchStart",event:e.changedTouches[0],id:cid, opts: cfu.instance[cid].opts}})
     },
     touchMove(e) {
       let cid = this.rid
       let ontouch = cfu.option[cid].ontouch
       if(ontouch == false) return;
-      cfu.instance[cid].scroll(e)
-      that[cid].callMethod('emitMsg',{name:"getTouchMove",params:{type:"touchMove",event:e.changedTouches[0],id:cid}})
+      if(cfu.option[cid].enableScroll === true && e.changedTouches.length == 1){
+        cfu.instance[cid].scroll(e);
+      }
       if(cfu.option[cid].ontap === true && cfu.option[cid].enableScroll === false && cfu.option[cid].onmovetip === true){
         let rchartdom = document.getElementById('UC'+cid).getBoundingClientRect()
         let tmpe = { x: e.changedTouches[0].clientX - rchartdom.left, y:e.changedTouches[0].clientY - rchartdom.top + rootdom.top}
-        e.changedTouches = [];
         e.changedTouches.unshift(tmpe)
         if(cfu.option[cid].tooltipShow === true){
           this.showTooltip(e,cid)
         }
       }
+      if(ontouch === true && cfu.option[cid].enableScroll === true && cfu.option[cid].onzoom === true && e.changedTouches.length == 2){
+        cfu.instance[cid].dobuleZoom(e);
+      }
+      that[cid].callMethod('emitMsg',{name:"getTouchMove",params:{type:"touchMove",event:e.changedTouches[0],id:cid, opts: cfu.instance[cid].opts}})
     },
     touchEnd(e) {
       let cid = this.rid
       let ontouch = cfu.option[cid].ontouch
       if(ontouch == false) return;
-      cfu.instance[cid].scrollEnd(e)
-      that[cid].callMethod('emitMsg',{name:"getTouchEnd",params:{type:"touchEnd",event:e.changedTouches[0],id:cid}})
+      if(cfu.option[cid].enableScroll === true && e.touches.length == 0){
+        cfu.instance[cid].scrollEnd(e);
+      }
+      that[cid].callMethod('emitMsg',{name:"getTouchEnd",params:{type:"touchEnd",event:e.changedTouches[0],id:cid, opts: cfu.instance[cid].opts}})
     },
     mouseDown(e) {
       let cid = this.rid
@@ -1508,7 +1567,7 @@
       e.changedTouches.unshift(tmpe)
       cfu.instance[cid].scrollStart(e)
       cfu.option[cid].mousedown=true;
-      that[cid].callMethod('emitMsg',{name:"getTouchStart",params:{type:"mouseDown",event:tmpe,id:cid}})
+      that[cid].callMethod('emitMsg',{name:"getTouchStart",params:{type:"mouseDown",event:tmpe,id:cid, opts: cfu.instance[cid].opts}})
     },
     mouseMove(e) {
       let cid = this.rid
@@ -1522,7 +1581,7 @@
       e.changedTouches.unshift(tmpe)
       if(cfu.option[cid].mousedown){
         cfu.instance[cid].scroll(e)
-        that[cid].callMethod('emitMsg',{name:"getTouchMove",params:{type:"mouseMove",event:tmpe,id:cid}})
+        that[cid].callMethod('emitMsg',{name:"getTouchMove",params:{type:"mouseMove",event:tmpe,id:cid, opts: cfu.instance[cid].opts}})
       }else if(cfu.instance[cid]){
         if(tooltipShow==true){
           this.showTooltip(e,cid)
@@ -1540,7 +1599,7 @@
       e.changedTouches.unshift(tmpe)
       cfu.instance[cid].scrollEnd(e)
       cfu.option[cid].mousedown=false;
-      that[cid].callMethod('emitMsg',{name:"getTouchEnd",params:{type:"mouseUp",event:tmpe,id:cid}})
+      that[cid].callMethod('emitMsg',{name:"getTouchEnd",params:{type:"mouseUp",event:tmpe,id:cid, opts: cfu.instance[cid].opts}})
     },
   }
 }
diff --git a/Monitor-APP/uni_modules/qiun-data-charts/js_sdk/u-charts/config-ucharts.js b/Monitor-APP/uni_modules/qiun-data-charts/js_sdk/u-charts/config-ucharts.js
index 2b890d8..5447a0a 100644
--- a/Monitor-APP/uni_modules/qiun-data-charts/js_sdk/u-charts/config-ucharts.js
+++ b/Monitor-APP/uni_modules/qiun-data-charts/js_sdk/u-charts/config-ucharts.js
@@ -43,22 +43,22 @@
 
 const cfu = {
   //demotype涓鸿嚜瀹氫箟鍥捐〃绫诲瀷锛屼竴鑸笉闇�瑕佽嚜瀹氫箟鍥捐〃绫诲瀷锛屽彧闇�瑕佹敼鏍硅妭鐐逛笂瀵瑰簲鐨勭被鍨嬪嵆鍙�
-	"type":["pie","ring","rose","word","funnel","map","arcbar","line","column","bar","area","radar","gauge","candle","mix","tline","tarea","scatter","bubble","demotype"],
-	"range":["楗肩姸鍥�","鍦嗙幆鍥�","鐜懓鍥�","璇嶄簯鍥�","婕忔枟鍥�","鍦板浘","鍦嗗姬杩涘害鏉�","鎶樼嚎鍥�","鏌辩姸鍥�","鏉$姸鍥�","鍖哄煙鍥�","闆疯揪鍥�","浠〃鐩�","K绾垮浘","娣峰悎鍥�","鏃堕棿杞存姌绾�","鏃堕棿杞村尯鍩�","鏁g偣鍥�","姘旀场鍥�","鑷畾涔夌被鍨�"],
+	"type":["pie","ring","rose","word","funnel","map","arcbar","line","column","mount","bar","area","radar","gauge","candle","mix","tline","tarea","scatter","bubble","demotype"],
+	"range":["楗肩姸鍥�","鍦嗙幆鍥�","鐜懓鍥�","璇嶄簯鍥�","婕忔枟鍥�","鍦板浘","鍦嗗姬杩涘害鏉�","鎶樼嚎鍥�","鏌辩姸鍥�","灞卞嘲鍥�","鏉$姸鍥�","鍖哄煙鍥�","闆疯揪鍥�","浠〃鐩�","K绾垮浘","娣峰悎鍥�","鏃堕棿杞存姌绾�","鏃堕棿杞村尯鍩�","鏁g偣鍥�","姘旀场鍥�","鑷畾涔夌被鍨�"],
   //澧炲姞鑷畾涔夊浘琛ㄧ被鍨嬶紝濡傛灉闇�瑕乧ategories锛岃鍦ㄨ繖閲屽姞鍏ユ偍鐨勫浘琛ㄧ被鍨嬶紝渚嬪鏈�鍚庣殑"demotype"
   //鑷畾涔夌被鍨嬫椂闇�瑕佹敞鎰�"tline","tarea","scatter","bubble"绛夋椂闂磋酱锛堢煝閲弜杞达級绫诲浘琛紝娌℃湁categories锛屼笉闇�瑕佸姞鍏ategories
-	"categories":["line","column","bar","area","radar","gauge","candle","mix","demotype"],
+	"categories":["line","column","mount","bar","area","radar","gauge","candle","mix","demotype"],
   //instance涓哄疄渚嬪彉閲忔壙杞藉睘鎬э紝涓嶈鍒犻櫎
   "instance":{},
   //option涓簅pts鍙奺opts鎵胯浇灞炴�э紝涓嶈鍒犻櫎
   "option":{},
   //涓嬮潰鏄嚜瀹氫箟format閰嶇疆锛屽洜闄5绔鐨勫叾浠栫鏃犳硶閫氳繃props浼犻�掑嚱鏁帮紝鍙兘閫氳繃姝ゅ睘鎬у搴斾笅鏍囩殑鏂瑰紡鏉ユ浛鎹�
   "formatter":{
-    "yAxisDemo1":function(val){return val+'鍏�'},
-    "yAxisDemo2":function(val){return val.toFixed(2)},
-    "xAxisDemo1":function(val){return val+'骞�'},
-    "xAxisDemo2":function(val){return formatDateTime(val,'h:m')},
-    "seriesDemo1":function(val){return val+'鍏�'},
+    "yAxisDemo1":function(val, index, opts){return val+'鍏�'},
+    "yAxisDemo2":function(val, index, opts){return val.toFixed(2)},
+    "xAxisDemo1":function(val, index, opts){return val+'骞�';},
+    "xAxisDemo2":function(val, index, opts){return formatDateTime(val,'h:m')},
+    "seriesDemo1":function(val, index, series, opts){return val+'鍏�'},
     "tooltipDemo1":function(item, category, index, opts){
       if(index==0){
       	return '闅忎究鐢�'+item.data+'骞�'
@@ -66,7 +66,7 @@
       	return '鍏朵粬鎴戞病鏀�'+item.data+'澶�'
       }
     },
-    "pieDemo":function(val, index, series){
+    "pieDemo":function(val, index, series, opts){
       if(index !== undefined){
         return series[index].name+'锛�'+series[index].data+'鍏�'
       }
@@ -333,6 +333,25 @@
 			},
 		}
 	},
+  "mount":{
+  	"type": "mount",
+    "color": color,
+  	"padding": [15,15,0,5],
+  	"xAxis": {
+      "disableGrid": true,
+  	},
+  	"yAxis": {
+      "data":[{"min":0}]
+  	},
+  	"legend": {
+  	},
+  	"extra": {
+  		"mount": {
+  			"type": "mount",
+  			"widthRatio": 1.5,
+  		},
+  	}
+  },
   "bar":{
   	"type": "bar",
     "color": color,
diff --git a/Monitor-APP/uni_modules/qiun-data-charts/js_sdk/u-charts/readme.md b/Monitor-APP/uni_modules/qiun-data-charts/js_sdk/u-charts/readme.md
index 953abed..d307ba3 100644
--- a/Monitor-APP/uni_modules/qiun-data-charts/js_sdk/u-charts/readme.md
+++ b/Monitor-APP/uni_modules/qiun-data-charts/js_sdk/u-charts/readme.md
@@ -1,12 +1,5 @@
 # uCharts JSSDK璇存槑
-1銆佸涓嶄娇鐢╱Charts缁勪欢锛屽彲鐩存帴寮曠敤u-charts.js锛屾墦鍖呯紪璇戝悗浼歚鑷姩鍘嬬缉`锛屽帇缂╁悗浣撶Н绾︿负`98kb`銆�
-2銆佸鏋�100kb鐨勪綋绉粛闇�鍘嬬缉锛岃鎵嬪姩鍒犻櫎u-charts.js鍐呮偍涓嶉渶瑕佺殑鍥捐〃绫诲瀷锛屽k绾垮浘candle銆�
+1銆佸涓嶄娇鐢╱Charts缁勪欢锛屽彲鐩存帴寮曠敤u-charts.js锛屾墦鍖呯紪璇戝悗浼歚鑷姩鍘嬬缉`锛屽帇缂╁悗浣撶Н绾︿负`120kb`銆�
+2銆佸鏋�120kb鐨勪綋绉粛闇�鍘嬬缉锛岃鎵嬪埌uCharts瀹樼綉閫氳繃鍦ㄧ嚎瀹氬埗閫夋嫨鎮ㄩ渶瑕佺殑鍥捐〃銆�
 3銆乧onfig-ucharts.js涓簎Charts缁勪欢鐨勭敤鎴烽厤缃枃浠讹紝鍗囩骇鍓嶈`鑷澶囦唤config-ucharts.js`鏂囦欢锛屼互鍏嶈寮哄埗瑕嗙洊銆�
-3銆乧onfig-echarts.js涓篍Charts缁勪欢鐨勭敤鎴烽厤缃枃浠讹紝鍗囩骇鍓嶈`鑷澶囦唤config-echarts.js`鏂囦欢锛屼互鍏嶈寮哄埗瑕嗙洊銆�
-
-# v1.0杞瑅2.0娉ㄦ剰浜嬮」
-1銆乷pts.colors鍙樻洿涓簅pts.color
-2銆乺ing鍦嗙幆鍥剧殑鎵╁睍閰嶇疆鐢眅xtra.pie鍙樻洿涓篹xtra.ring
-3銆佹贩鍚堝浘鍊熺敤鐨勬墿灞曢厤缃敱extra.column鍙樻洿涓篹xtra.mix.column
-4銆佸叏閮ㄦ秹鍙婂埌format鐨勬牸寮忓寲灞炴�у彉鏇翠负formatter
-5銆佷笉闇�瑕佸啀浼燾anvasId鍙�$this鍙傛暟锛屽鏋滈�氳繃uChats鑾峰彇context锛屽彲鑳戒細瀵艰嚧this瀹炰緥娣蜂贡锛屽鑷村皬绋嬪簭寮�鍙戣�呭伐鍏锋姤閿欍�傚鏋滀笉浣跨敤qiun-data-charts瀹樻柟缁勪欢锛岄渶瑕佸湪new uCharts()瀹炰緥鍖栦箣鍓嶏紝鑷鑾峰彇canvas鐨勪笂涓嬫枃context锛坈tx锛夛紝骞朵紶鍏ew涓殑context锛坥pts.context锛夈�備负浜嗚兘璺ㄦ洿澶氱殑绔紝缁欐偍甯︽潵鐨勪笉渚挎暚璇疯皡瑙c��
\ No newline at end of file
+4銆乧onfig-echarts.js涓篍Charts缁勪欢鐨勭敤鎴烽厤缃枃浠讹紝鍗囩骇鍓嶈`鑷澶囦唤config-echarts.js`鏂囦欢锛屼互鍏嶈寮哄埗瑕嗙洊銆�
\ No newline at end of file
diff --git a/Monitor-APP/uni_modules/qiun-data-charts/js_sdk/u-charts/u-charts.js b/Monitor-APP/uni_modules/qiun-data-charts/js_sdk/u-charts/u-charts.js
index b3858c4..b3dfa73 100644
--- a/Monitor-APP/uni_modules/qiun-data-charts/js_sdk/u-charts/u-charts.js
+++ b/Monitor-APP/uni_modules/qiun-data-charts/js_sdk/u-charts/u-charts.js
@@ -1,11 +1,11 @@
 /*
- * uCharts庐
- * 楂樻�ц兘璺ㄥ钩鍙板浘琛ㄥ簱锛屾敮鎸丠5銆丄PP銆佸皬绋嬪簭锛堝井淇�/鏀粯瀹�/鐧惧害/澶存潯/QQ/360锛夈�乂ue銆乀aro绛夋敮鎸乧anvas鐨勬鏋跺钩鍙�
- * Copyright (c) 2021 QIUN庐绉嬩簯 https://www.ucharts.cn All rights reserved.
+ * uCharts (R)
+ * 楂樻�ц兘璺ㄥ钩鍙板浘琛ㄥ簱锛屾敮鎸丠5銆丄PP銆佸皬绋嬪簭锛堝井淇�/鏀粯瀹�/鐧惧害/澶存潯/QQ/360/蹇墜锛夈�乂ue銆乀aro绛夋敮鎸乧anvas鐨勬鏋跺钩鍙�
+ * Copyright (C) 2018-2022 QIUN (R) 绉嬩簯 https://www.ucharts.cn All rights reserved.
  * Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
  * 澶嶅埗浣跨敤璇蜂繚鐣欐湰娈垫敞閲婏紝鎰熻阿鏀寔寮�婧愶紒
  * 
- * uCharts庐瀹樻柟缃戠珯
+ * uCharts (R) 瀹樻柟缃戠珯
  * https://www.uCharts.cn
  * 
  * 寮�婧愬湴鍧�:
@@ -19,17 +19,13 @@
 'use strict';
 
 var config = {
-  version: 'v2.3.7-20220122',
+  version: 'v2.4.4-20221102',
   yAxisWidth: 15,
-  yAxisSplit: 5,
   xAxisHeight: 22,
-  xAxisLineHeight: 22,
-  legendHeight: 15,
-  yAxisTitleWidth: 15,
+  xAxisTextPadding: 3,
   padding: [10, 10, 10, 10],
   pixelRatio: 1,
   rotate: false,
-  columePadding: 3,
   fontSize: 13,
   fontColor: '#666666',
   dataPointShape: ['circle', 'circle', 'circle', 'circle'],
@@ -37,17 +33,13 @@
   linearColor: ['#0EE2F8', '#2BDCA8', '#FA7D8D', '#EB88E2', '#2AE3A0', '#0EE2F8', '#EB88E2', '#6773E3', '#F78A85'],
   pieChartLinePadding: 15,
   pieChartTextPadding: 5,
-  xAxisTextPadding: 3,
-  titleColor: '#333333',
   titleFontSize: 20,
-  subtitleColor: '#999999',
   subtitleFontSize: 15,
   toolTipPadding: 3,
   toolTipBackground: '#000000',
   toolTipOpacity: 0.7,
   toolTipLineHeight: 20,
   radarLabelTextMargin: 13,
-  gaugeLabelTextMargin: 13
 };
 
 var assign = function(target, ...varArgs) {
@@ -115,28 +107,6 @@
   return e;
 }
 
-// 缁忕含搴﹁浆澧ㄥ崱鎵�
-function lonlat2mercator(longitude, latitude) {
-  var mercator = Array(2);
-  var x = longitude * 20037508.34 / 180;
-  var y = Math.log(Math.tan((90 + latitude) * Math.PI / 360)) / (Math.PI / 180);
-  y = y * 20037508.34 / 180;
-  mercator[0] = x;
-  mercator[1] = y;
-  return mercator;
-}
-
-// 澧ㄥ崱鎵樿浆缁忕含搴�
-function mercator2lonlat(longitude, latitude) {
-  var lonlat = Array(2)
-  var x = longitude / 20037508.34 * 180;
-  var y = latitude / 20037508.34 * 180;
-  y = 180 / Math.PI * (2 * Math.atan(Math.exp(y * Math.PI / 180)) - Math.PI / 2);
-  lonlat[0] = x;
-  lonlat[1] = y;
-  return lonlat;
-}
-
 // hex 杞� rgba
 function hexToRgb(hexValue, opc) {
   var rgx = /^#?([a-f\d])([a-f\d])([a-f\d])$/i;
@@ -168,6 +138,9 @@
   }
   while (num % limit !== 0) {
     if (type === 'upper') {
+      if (num == num + 1) { //淇鏁版嵁鍊艰繃澶um++鏃犳晥鐨刡ug by 鍚戞棩钁� @xrk_jy
+        break;
+      }
       num++;
     } else {
       num--;
@@ -203,6 +176,10 @@
 function calValidDistance(self, distance, chartData, config, opts) {
   var dataChartAreaWidth = opts.width - opts.area[1] - opts.area[3];
   var dataChartWidth = chartData.eachSpacing * (opts.chartData.xAxisData.xAxisPoints.length - 1);
+  if(opts.type == 'mount' && opts.extra && opts.extra.mount && opts.extra.mount.widthRatio && opts.extra.mount.widthRatio > 1){
+    if(opts.extra.mount.widthRatio>2) opts.extra.mount.widthRatio = 2
+    dataChartWidth += (opts.extra.mount.widthRatio - 1)*chartData.eachSpacing;
+  }
   var validDistance = distance;
   if (distance >= 0) {
     validDistance = 0;
@@ -241,18 +218,6 @@
     }
   }
   return angle >= startAngle && angle <= endAngle;
-}
-
-function calRotateTranslate(x, y, h) {
-  var xv = x;
-  var yv = h - y;
-  var transX = xv + (h - yv - xv) / Math.sqrt(2);
-  transX *= -1;
-  var transY = (h - yv) * (Math.sqrt(2) - 1) - (h - yv - xv) / Math.sqrt(2);
-  return {
-    transX: transX,
-    transY: transY
-  };
 }
 
 function createCurveControlPoints(points, i) {
@@ -330,6 +295,7 @@
   };
 }
 
+
 function convertCoordinateOrigin(x, y, center) {
   return {
     x: center.x + x,
@@ -406,13 +372,12 @@
           item.legendShape = "line";
           break;
         case 'column':
+        case 'bar':
           item.legendShape = "rect";
           break;
         case 'area':
+        case 'mount':
           item.legendShape = "triangle";
-          break;
-        case 'bar':
-          item.legendShape = "rect";
           break;
         default:
           item.legendShape = "circle";
@@ -435,7 +400,7 @@
   }
   return newcolor;
 }
-  
+
 function getDataRange(minData, maxData) {
   var limit = 0;
   var range = maxData - minData;
@@ -618,7 +583,12 @@
     }
     points = filterPoints[0][index[0]];
   }else{
-    points = calPoints[0][index];
+    for (let i = 0; i < calPoints.length; i++) {
+      if(calPoints[i][index]){
+        points = calPoints[i][index];
+        break;
+      }
+    }
   };
   var textList = seriesData.map(function(item) {
     let titleText = null;
@@ -959,6 +929,7 @@
   return Math.pow(currentPoints.x - center.x, 2) + Math.pow(currentPoints.y - center.y, 2) <= Math.pow(radius, 2);
 }
 
+
 function splitPoints(points,eachSeries) {
   var newPoints = [];
   var items = [];
@@ -984,6 +955,7 @@
   }
   return newPoints;
 }
+
 
 function calLegendData(series, opts, config, chartData, context) {
   let legendData = {
@@ -1022,7 +994,8 @@
     let currentRow = [];
     for (let i = 0; i < series.length; i++) {
       let item = series[i];
-      let itemWidth = shapeWidth + shapeRight + measureText(item.name || 'undefined', fontSize, context) + opts.legend.itemGap * opts.pix;
+      const legendText = item.legendText ? item.legendText : item.name;
+      let itemWidth = shapeWidth + shapeRight + measureText(legendText || 'undefined', fontSize, context) + opts.legend.itemGap * opts.pix;
       if (widthCount + itemWidth > opts.width - opts.area[1] - opts.area[3]) {
         legendList.push(currentRow);
         widthCountArr.push(widthCount - opts.legend.itemGap * opts.pix);
@@ -1131,14 +1104,24 @@
     angle: 0,
     xAxisHeight: config.xAxisHeight
   };
-  var categoriesTextLenth = categories.map(function(item) {
-    return measureText(item, opts.xAxis.fontSize * opts.pix || config.fontSize, context);
+  var fontSize = opts.xAxis.fontSize * opts.pix || config.fontSize;
+  var categoriesTextLenth = categories.map(function(item,index) {
+    var xitem = opts.xAxis.formatter ? opts.xAxis.formatter(item,index,opts) : item;
+    return measureText(String(xitem), fontSize, context);
   });
+  
   var maxTextLength = Math.max.apply(this, categoriesTextLenth);
-
-  if (opts.xAxis.rotateLabel == true && maxTextLength + 2 * config.xAxisTextPadding > eachSpacing) {
-    result.angle = 45 * Math.PI / 180;
-    result.xAxisHeight = 2 * config.xAxisTextPadding + maxTextLength * Math.sin(result.angle);
+  if (opts.xAxis.rotateLabel == true) {
+    result.angle = opts.xAxis.rotateAngle * Math.PI / 180;
+    let tempHeight = 2 * config.xAxisTextPadding +  Math.abs(maxTextLength * Math.sin(result.angle))
+    tempHeight = tempHeight < fontSize + 2 * config.xAxisTextPadding ? tempHeight + 2 * config.xAxisTextPadding : tempHeight;
+    if(opts.enableScroll == true && opts.xAxis.scrollShow == true){
+      tempHeight += 12 * opts.pix;
+    }
+    result.xAxisHeight = tempHeight;
+  }
+  if (opts.xAxis.disabled){
+    result.xAxisHeight = 0;
   }
   return result;
 }
@@ -1314,22 +1297,19 @@
   return series;
 }
 
-function getFunnelDataPoints(series, radius, type, eachSpacing) {
+function getFunnelDataPoints(series, radius, option, eachSpacing) {
   var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;
-  series = series.sort(function(a, b) {
-    return parseInt(b.data) - parseInt(a.data);
-  });
   for (let i = 0; i < series.length; i++) {
-    if(type == 'funnel'){
+    if(option.type == 'funnel'){
       series[i].radius = series[i].data / series[0].data * radius * process;
     }else{
       series[i].radius =  (eachSpacing * (series.length - i)) / (eachSpacing * series.length) * radius * process;
     }
     series[i]._proportion_ = series[i].data / series[0].data;
   }
-  if(type !== 'pyramid'){
-    series.reverse();
-  }
+  // if(option.type !== 'pyramid'){
+  //   series.reverse();
+  // }
   return series;
 }
 
@@ -1372,6 +1352,43 @@
 }
 
 function getArcbarDataPoints(series, arcbarOption) {
+  var process = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
+  if (process == 1) {
+    process = 0.999999;
+  }
+  for (let i = 0; i < series.length; i++) {
+    let item = series[i];
+    item.data = item.data === null ? 0 : item.data;
+    let totalAngle;
+    if (arcbarOption.type == 'circle') {
+      totalAngle = 2;
+    } else {
+      if(arcbarOption.direction == 'ccw'){
+        if (arcbarOption.startAngle < arcbarOption.endAngle) {
+          totalAngle = 2 + arcbarOption.startAngle - arcbarOption.endAngle;
+        } else {
+          totalAngle = arcbarOption.startAngle - arcbarOption.endAngle;
+        }
+      }else{
+        if (arcbarOption.endAngle < arcbarOption.startAngle) {
+          totalAngle = 2 + arcbarOption.endAngle - arcbarOption.startAngle;
+        } else {
+          totalAngle = arcbarOption.startAngle - arcbarOption.endAngle;
+        }
+      }
+    }
+    item._proportion_ = totalAngle * item.data * process + arcbarOption.startAngle;
+    if(arcbarOption.direction == 'ccw'){
+      item._proportion_ = arcbarOption.startAngle - totalAngle * item.data * process ;
+    }
+    if (item._proportion_ >= 2) {
+      item._proportion_ = item._proportion_ % 2;
+    }
+  }
+  return series;
+}
+
+function getGaugeArcbarDataPoints(series, arcbarOption) {
   var process = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
   if (process == 1) {
     process = 0.999999;
@@ -1516,12 +1533,12 @@
     if (item === null) {
       return null;
     }
-    item.width = Math.ceil(eachSpacing - 2 * categoryGap);
+    item.width = eachSpacing - 2 * categoryGap;
     if (opts.extra.column && opts.extra.column.width && +opts.extra.column.width > 0) {
       item.width = Math.min(item.width, +opts.extra.column.width * opts.pix);
     }
     if (index > 0) {
-      item.width -= 2 * border;
+      item.width -= border;
     }
     return item;
   });
@@ -1567,16 +1584,22 @@
   if ((opts.type == 'line' || opts.type == 'area' || opts.type == 'scatter' || opts.type == 'bubble' || opts.type == 'bar') && dataCount > 1 && opts.xAxis.boundaryGap == 'justify') {
     dataCount -= 1;
   }
+  var widthRatio = 0;
+  if(opts.type == 'mount' && opts.extra && opts.extra.mount && opts.extra.mount.widthRatio && opts.extra.mount.widthRatio > 1){
+    if(opts.extra.mount.widthRatio>2) opts.extra.mount.widthRatio = 2
+    widthRatio = opts.extra.mount.widthRatio - 1;
+    dataCount += widthRatio;
+  }
   var eachSpacing = spacingValid / dataCount;
   var xAxisPoints = [];
   var startX = opts.area[3];
   var endX = opts.width - opts.area[1];
   categories.forEach(function(item, index) {
-    xAxisPoints.push(startX + index * eachSpacing);
+    xAxisPoints.push(startX + widthRatio / 2 * eachSpacing + index * eachSpacing);
   });
   if (opts.xAxis.boundaryGap !== 'justify') {
     if (opts.enableScroll === true) {
-      xAxisPoints.push(startX + categories.length * eachSpacing);
+      xAxisPoints.push(startX + widthRatio * eachSpacing + categories.length * eachSpacing);
     } else {
       xAxisPoints.push(endX);
     }
@@ -1658,6 +1681,32 @@
   return points;
 }
 
+function getMountDataPoints(series, minRange, maxRange, xAxisPoints, eachSpacing, opts, mountOption) {
+  var process = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : 1;
+  var points = [];
+  var validHeight = opts.height - opts.area[0] - opts.area[2];
+  var validWidth = opts.width - opts.area[1] - opts.area[3];
+  var mountWidth = eachSpacing * mountOption.widthRatio;
+  series.forEach(function(item, index) {
+    if (item === null) {
+      points.push(null);
+    } else {
+      var point = {};
+      point.color = item.color;
+      point.x = xAxisPoints[index];
+      point.x += eachSpacing / 2;
+      var value = item.data;
+      var height = validHeight * (value - minRange) / (maxRange - minRange);
+      height *= process;
+      point.y = opts.height - height - opts.area[2];
+      point.value = value;
+      point.width = mountWidth;
+      points.push(point);
+    }
+  });
+  return points;
+}
+
 function getBarDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config) {
   var process = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : 1;
   var points = [];
@@ -1707,6 +1756,9 @@
         var height0 = validHeight * (value0 - minRange) / (maxRange - minRange);
       } else {
         var value = item;
+        if (typeof item === 'object' && item !== null) {
+          value = item.value;
+        }
         var height = validHeight * (value - minRange) / (maxRange - minRange);
         var height0 = 0;
       }
@@ -1742,6 +1794,9 @@
         var height0 = validHeight * (value0 - minRange) / (maxRange - minRange);
       } else {
         var value = item;
+        if (typeof item === 'object' && item !== null) {
+          value = item.value;
+        }
         var height = validHeight * (value - minRange) / (maxRange - minRange);
         var height0 = 0;
       }
@@ -1802,31 +1857,18 @@
     minData = Math.min.apply(this, sorted);
     maxData = Math.max.apply(this, sorted);
   }
-  //涓轰簡鍏煎v1.9.0涔嬪墠鐨勯」鐩�
-  // if (index > -1) {
-  //   if (typeof opts.yAxis.data[index].min === 'number') {
-  //     minData = Math.min(opts.yAxis.data[index].min, minData);
-  //   }
-  //   if (typeof opts.yAxis.data[index].max === 'number') {
-  //     maxData = Math.max(opts.yAxis.data[index].max, maxData);
-  //   }
-  // } else {
-  //   if (typeof opts.yAxis.min === 'number') {
-  //     minData = Math.min(opts.yAxis.min, minData);
-  //   }
-  //   if (typeof opts.yAxis.max === 'number') {
-  //     maxData = Math.max(opts.yAxis.max, maxData);
-  //   }
-  // }
   if (minData === maxData) {
-    var rangeSpan = maxData || 10;
-    maxData += rangeSpan;
+    if(maxData == 0){
+      maxData = 10;
+    }else{
+      minData = 0;
+    }
   }
   var dataRange = getDataRange(minData, maxData);
-  var minRange = yData.min === undefined || yData.min === null ? dataRange.minRange : yData.min;
-  var maxRange = yData.max === undefined || yData.min === null ? dataRange.maxRange : yData.max;
-  var range = [];
+  var minRange = (yData.min === undefined || yData.min === null) ? dataRange.minRange : yData.min;
+  var maxRange = (yData.max === undefined || yData.max === null) ? dataRange.maxRange : yData.max;
   var eachRange = (maxRange - minRange) / opts.yAxis.splitNumber;
+  var range = [];
   for (var i = 0; i <= opts.yAxis.splitNumber; i++) {
     range.push(minRange + eachRange * i);
   }
@@ -1862,13 +1904,13 @@
       }
       if(yData.type === 'categories'){
         if(!yData.formatter){
-          yData.formatter = (val) => {return val + (yData.unit || '')};
+          yData.formatter = (val,index,opts) => {return val + (yData.unit || '')};
         }
         yData.categories = yData.categories || opts.categories;
         rangesArr[i] = yData.categories;
       }else{
         if(!yData.formatter){
-          yData.formatter = (val) => {return val.toFixed(yData.tofix) + (yData.unit || '')};
+          yData.formatter = (val,index,opts) => {return util.toFixed(val, yData.tofix || 0) + (yData.unit || '')};
         }
         rangesArr[i] = getYAxisTextList(newSeries[i], opts, config, columnstyle.type, yData, i);
       }
@@ -1877,8 +1919,8 @@
         position: yData.position ? yData.position : 'left',
         width: 0
       };
-      rangesFormatArr[i] = rangesArr[i].map(function(items) {
-        items = yData.formatter(items);
+      rangesFormatArr[i] = rangesArr[i].map(function(items,index) {
+        items = yData.formatter(items,index,opts);
         yAxisWidthArr[i].width = Math.max(yAxisWidthArr[i].width, measureText(items, yAxisFontSizes, context) + 5);
         return items;
       });
@@ -1894,26 +1936,14 @@
     var yAxisWidthArr = new Array(1);
     if(opts.type === 'bar'){
       rangesArr[0] = opts.categories;
-      if(!opts.yAxis.formatter){
-        opts.yAxis.formatter = (val) => {return val + (opts.yAxis.unit || '')}
-      }
     }else{
-      if(!opts.yAxis.formatter){
-        opts.yAxis.formatter = (val) => {return val.toFixed(opts.yAxis.tofix ) + (opts.yAxis.unit || '')}
-      }
       rangesArr[0] = getYAxisTextList(series, opts, config, columnstyle.type, {});
     }
     yAxisWidthArr[0] = {
       position: 'left',
       width: 0
     };
-    var yAxisFontSize = opts.yAxis.fontSize * opts.pix || config.fontSize;
-    rangesFormatArr[0] = rangesArr[0].map(function(item) {
-      item = opts.yAxis.formatter(item);
-      yAxisWidthArr[0].width = Math.max(yAxisWidthArr[0].width, measureText(item, yAxisFontSize, context) + 5);
-      return item;
-    });
-    yAxisWidthArr[0].width += 3 * opts.pix;
+    
     if (opts.yAxis.disabled === true) {
       yAxisWidthArr[0] = {
         position: 'left',
@@ -1928,13 +1958,20 @@
         position: 'left',
         max: opts.yAxis.max,
         min: opts.yAxis.min,
-        formatter: opts.yAxis.formatter
+        formatter: (val,index,opts) => {return val}
       };
       if(opts.type === 'bar'){
         opts.yAxis.data[0].categories = opts.categories;
         opts.yAxis.data[0].type = 'categories';
       }
     }
+    var yAxisFontSize = opts.yAxis.fontSize * opts.pix || config.fontSize;
+    rangesFormatArr[0] = rangesArr[0].map(function(item,index) {
+      item = opts.yAxis.data[0].formatter(item,index,opts);
+      yAxisWidthArr[0].width = Math.max(yAxisWidthArr[0].width, measureText(item, yAxisFontSize, context) + 5);
+      return item;
+    });
+    yAxisWidthArr[0].width += 3 * opts.pix;
   }
   return {
     rangesFormat: rangesFormatArr,
@@ -1949,10 +1986,10 @@
   let minAxis = opts.area[0];
   let items = [];
   for (let i = 0; i < ranges.length; i++) {
-    let maxVal = ranges[i].shift();
-    let minVal = ranges[i].pop();
+    let maxVal = Math.max.apply(this, ranges[i]);
+    let minVal = Math.min.apply(this, ranges[i]);
     let item = maxVal - (maxVal - minVal) * (point - minAxis) / spacingValid;
-    item = opts.yAxis.data[i].formatter ? opts.yAxis.data[i].formatter(item) : item.toFixed(0);
+    item = opts.yAxis.data && opts.yAxis.data[i].formatter ? opts.yAxis.data[i].formatter(item, i, opts) : item.toFixed(0);
     items.push(String(item))
   }
   return items;
@@ -2027,7 +2064,7 @@
         context.lineTo(item.x, item.y - 4.5);
       }
     });
-  } else if (shape === 'triangle') {
+  } else if (shape === 'none') {
     return;
   }
   context.closePath();
@@ -2093,7 +2130,28 @@
           value = data[index].value
         }
       }
-      var formatVal = series.formatter ? series.formatter(value,index) : value;
+      var formatVal = series.formatter ? series.formatter(value,index,series,opts) : value;
+      context.setTextAlign('center');
+      context.fillText(String(formatVal), item.x, item.y - 4 + textOffset * opts.pix);
+      context.closePath();
+      context.stroke();
+      context.setTextAlign('left');
+    }
+  });
+}
+
+function drawMountPointText(points, series, config, context, opts) {
+  // 缁樺埗鏁版嵁鏂囨
+  var data = series.data;
+  var textOffset = series.textOffset ? series.textOffset : 0;
+  points.forEach(function(item, index) {
+    if (item !== null) {
+      context.beginPath();
+      var fontSize = series[index].textSize ? series[index].textSize * opts.pix : config.fontSize;
+      context.setFontSize(fontSize);
+      context.setFillStyle(series[index].textColor || opts.fontColor);
+      var value = item.value
+      var formatVal = series[index].formatter ? series[index].formatter(value,index,series,opts) : value;
       context.setTextAlign('center');
       context.fillText(String(formatVal), item.x, item.y - 4 + textOffset * opts.pix);
       context.closePath();
@@ -2117,7 +2175,7 @@
       if (typeof data[index] === 'object' && data[index] !== null) {
         value = data[index].value ;
       }
-      var formatVal = series.formatter ? series.formatter(value,index) : value;
+      var formatVal = series.formatter ? series.formatter(value,index,series,opts) : value;
       context.setTextAlign('left');
       context.fillText(String(formatVal), item.x + 4 * opts.pix , item.y + fontSize / 2 - 3 );
       context.closePath();
@@ -2128,6 +2186,7 @@
 
 function drawGaugeLabel(gaugeOption, radius, centerPosition, opts, config, context) {
   radius -= gaugeOption.width / 2 + gaugeOption.labelOffset * opts.pix;
+  radius = radius < 10 ? 10 : radius;
   let totalAngle = gaugeOption.startAngle - gaugeOption.endAngle + 1;
   let splitAngle = totalAngle / gaugeOption.splitLine.splitNumber;
   let totalNumber = gaugeOption.endNumber - gaugeOption.startNumber;
@@ -2139,7 +2198,7 @@
       x: radius * Math.cos(nowAngle * Math.PI),
       y: radius * Math.sin(nowAngle * Math.PI)
     };
-    var labelText = gaugeOption.formatter ? gaugeOption.formatter(nowNumber) : nowNumber;
+    var labelText = gaugeOption.formatter ? gaugeOption.formatter(nowNumber,i,opts) : nowNumber;
     pos.x += centerPosition.x - measureText(labelText, config.fontSize, context) / 2;
     pos.y += centerPosition.y;
     var startX = pos.x;
@@ -2156,16 +2215,26 @@
     }
     nowNumber += splitNumber;
   }
-
 }
 
 function drawRadarLabel(angleList, radius, centerPosition, opts, config, context) {
   var radarOption = opts.extra.radar || {};
-  radius += config.radarLabelTextMargin * opts.pix;
   angleList.forEach(function(angle, index) {
+    if(radarOption.labelPointShow === true && opts.categories[index] !== ''){
+      var posPoint = {
+        x: radius * Math.cos(angle),
+        y: radius * Math.sin(angle)
+      };
+      var posPointAxis = convertCoordinateOrigin(posPoint.x, posPoint.y, centerPosition);
+      context.setFillStyle(radarOption.labelPointColor);
+      context.beginPath();
+      context.arc(posPointAxis.x, posPointAxis.y, radarOption.labelPointRadius * opts.pix, 0, 2 * Math.PI, false);
+      context.closePath();
+      context.fill();
+    }
     var pos = {
-      x: radius * Math.cos(angle),
-      y: radius * Math.sin(angle)
+      x: (radius + config.radarLabelTextMargin * opts.pix) * Math.cos(angle),
+      y: (radius + config.radarLabelTextMargin * opts.pix) * Math.sin(angle)
     };
     var posRelativeCanvas = convertCoordinateOrigin(pos.x, pos.y, centerPosition);
     var startX = posRelativeCanvas.x;
@@ -2189,8 +2258,9 @@
   var lineRadius = config.pieChartLinePadding;
   var textObjectCollection = [];
   var lastTextObject = null;
-  var seriesConvert = series.map(function(item,index,series) {
-    var text = item.formatter ? item.formatter(item,index,series) : util.toFixed(item._proportion_.toFixed(4) * 100) + '%';
+  var seriesConvert = series.map(function(item,index) {
+    var text = item.formatter ? item.formatter(item,index,series,opts) : util.toFixed(item._proportion_.toFixed(4) * 100) + '%';
+    text = item.labelText ? item.labelText : text;
     var arc = 2 * Math.PI - (item._start_ + 2 * Math.PI * item._proportion_ / 2);
     if (item._rose_proportion_) {
       arc = 2 * Math.PI - (item._start_ + 2 * Math.PI * item._rose_proportion_ / 2);
@@ -2204,6 +2274,7 @@
       radius: radius,
       textColor: item.textColor,
       textSize: item.textSize,
+      labelShow: item.labelShow
     };
   });
   for (let i = 0; i < seriesConvert.length; i++) {
@@ -2261,6 +2332,9 @@
     textObjectCollection.push(lastTextObject);
   }
   for (let i = 0; i < textObjectCollection.length; i++) {
+    if(seriesConvert[i].labelShow === false){
+      continue;
+    }
     let item = textObjectCollection[i];
     let lineStartPoistion = convertCoordinateOrigin(item.lineStart.x, item.lineStart.y, center);
     let lineEndPoistion = convertCoordinateOrigin(item.lineEnd.x, item.lineEnd.y, center);
@@ -2279,7 +2353,7 @@
     context.closePath();
     context.beginPath();
     context.moveTo(textPosition.x + item.width, textPosition.y);
-    context.arc(curveStartX, textPosition.y, 2, 0, 2 * Math.PI);
+    context.arc(curveStartX, textPosition.y, 2 * opts.pix, 0, 2 * Math.PI);
     context.closePath();
     context.fill();
     context.beginPath();
@@ -2313,7 +2387,7 @@
     context.setFontSize(config.fontSize);
     let textWidth = measureText(labelText, config.fontSize, context);
     let textX = offsetX - 0.5 * textWidth;
-    let textY = endY;
+    let textY = endY + 2 * opts.pix;
     context.beginPath();
     context.setFillStyle(hexToRgb(toolTipOption.labelBgColor || config.toolTipBackground, toolTipOption.labelBgOpacity || config.toolTipOpacity));
     context.setStrokeStyle(toolTipOption.labelBgColor || config.toolTipBackground);
@@ -2347,7 +2421,9 @@
       labelFontColor: '#666666',
       labelBgColor: '#DFE8FF',
       labelBgOpacity: 0.8,
-      yAxisIndex: 0
+      labelAlign: 'left',
+      labelOffsetX: 0,
+      labelOffsetY: 0,
     }, points[i]);
     if (markLineOption.type == 'dash') {
       context.setLineDash([markLineOption.dashLength, markLineOption.dashLength]);
@@ -2360,27 +2436,28 @@
     context.stroke();
     context.setLineDash([]);
     if (item.showLabel) {
-      let labelText = opts.yAxis.formatter ? opts.yAxis.formatter(item.value) : item.value;
+      let labelText = item.labelText ? item.labelText : item.value;
       context.setFontSize(config.fontSize);
       let textWidth = measureText(labelText, config.fontSize, context);
-      let yAxisWidth = opts.chartData.yAxisData.yAxisWidth[0].width;
-      let bgStartX = opts.area[3] - textWidth - config.toolTipPadding * 2;
-      let bgEndX = opts.area[3];
-      let bgWidth = bgEndX - bgStartX;
-      let textX = bgEndX - config.toolTipPadding;
+      let bgWidth = textWidth + config.toolTipPadding * 2;
+      let bgStartX = item.labelAlign == 'left' ? opts.area[3] - bgWidth : opts.width - opts.area[1];
+      bgStartX += item.labelOffsetX;
+      let bgStartY = item.y - 0.5 * config.fontSize - config.toolTipPadding;
+      bgStartY += item.labelOffsetY;
+      let textX = bgStartX + config.toolTipPadding;
       let textY = item.y;
       context.setFillStyle(hexToRgb(item.labelBgColor, item.labelBgOpacity));
       context.setStrokeStyle(item.labelBgColor);
       context.setLineWidth(1 * opts.pix);
       context.beginPath();
-      context.rect(bgStartX, textY - 0.5 * config.fontSize - config.toolTipPadding, bgWidth, config.fontSize + 2 * config.toolTipPadding);
+      context.rect(bgStartX, bgStartY, bgWidth, config.fontSize + 2 * config.toolTipPadding);
       context.closePath();
       context.stroke();
       context.fill();
       context.setFontSize(config.fontSize);
-      context.setTextAlign('right');
+      context.setTextAlign('left');
       context.setFillStyle(item.labelFontColor);
-      context.fillText(String(labelText), textX, textY + 0.5 * config.fontSize);
+      context.fillText(String(labelText), textX, bgStartY + config.fontSize + config.toolTipPadding/2);
       context.stroke();
       context.setTextAlign('left');
     }
@@ -2414,10 +2491,10 @@
       let textWidth = measureText(labelText[i], config.fontSize, context);
       let bgStartX, bgEndX, bgWidth;
       if (widthArr[i].position == 'left') {
-        bgStartX = tStartLeft - widthArr[i].width;
+        bgStartX = tStartLeft - (textWidth + config.toolTipPadding * 2) - 2 * opts.pix;
         bgEndX = Math.max(bgStartX, bgStartX + textWidth + config.toolTipPadding * 2);
       } else {
-        bgStartX = tStartRight;
+        bgStartX = tStartRight + 2 * opts.pix;
         bgEndX = Math.max(bgStartX + widthArr[i].width, bgStartX + textWidth + config.toolTipPadding * 2);
       }
       bgWidth = bgEndX - bgStartX;
@@ -2427,8 +2504,7 @@
       context.setFillStyle(hexToRgb(toolTipOption.labelBgColor || config.toolTipBackground, toolTipOption.labelBgOpacity || config.toolTipOpacity));
       context.setStrokeStyle(toolTipOption.labelBgColor || config.toolTipBackground);
       context.setLineWidth(1 * opts.pix);
-      context.rect(bgStartX, textY - 0.5 * config.fontSize - config.toolTipPadding, bgWidth, config.fontSize + 2 *
-        config.toolTipPadding);
+      context.rect(bgStartX, textY - 0.5 * config.fontSize - config.toolTipPadding, bgWidth, config.fontSize + 2 * config.toolTipPadding);
       context.closePath();
       context.stroke();
       context.fill();
@@ -2450,13 +2526,15 @@
 function drawToolTipSplitArea(offsetX, opts, config, context, eachSpacing) {
   var toolTipOption = assign({}, {
     activeBgColor: '#000000',
-    activeBgOpacity: 0.08
+    activeBgOpacity: 0.08,
+    activeWidth: eachSpacing
   }, opts.extra.column);
+  toolTipOption.activeWidth = toolTipOption.activeWidth > eachSpacing ? eachSpacing : toolTipOption.activeWidth;
   var startY = opts.area[0];
   var endY = opts.height - opts.area[2];
   context.beginPath();
   context.setFillStyle(hexToRgb(toolTipOption.activeBgColor, toolTipOption.activeBgOpacity));
-  context.rect(offsetX - eachSpacing / 2, startY, eachSpacing, endY - startY);
+  context.rect(offsetX - toolTipOption.activeWidth / 2, startY, toolTipOption.activeWidth, endY - startY);
   context.closePath();
   context.fill();
   context.setFillStyle("#FFFFFF");
@@ -2476,6 +2554,7 @@
   context.fill();
   context.setFillStyle("#FFFFFF");
 }
+
 
 function drawToolTip(textList, offset, opts, config, context, eachSpacing, xAxisPoints) {
   var toolTipOption = assign({}, {
@@ -2498,7 +2577,7 @@
   var legendMarginRight = 5 * opts.pix;
   var arrowWidth = toolTipOption.showArrow ? 8 * opts.pix : 0;
   var isOverRightBorder = false;
-  if (opts.type == 'line' || opts.type == 'area' || opts.type == 'candle' || opts.type == 'mix') {
+  if (opts.type == 'line' || opts.type == 'mount' || opts.type == 'area' || opts.type == 'candle' || opts.type == 'mix') {
     if (toolTipOption.splitLine == true) {
       drawToolTipSplitLine(opts.tooltip.offset.x, opts, config, context);
     }
@@ -2530,6 +2609,10 @@
   context.setStrokeStyle(hexToRgb(toolTipOption.borderColor, toolTipOption.borderOpacity));
   var radius = toolTipOption.borderRadius;
   if (isOverRightBorder) {
+    // 澧炲姞宸︿晶浠嶇劧瓒呭嚭鐨勫垽鏂�
+    if(toolTipWidth + arrowWidth > opts.width){
+      offset.x = opts.width + Math.abs(opts._scrollDistance_ || 0) + arrowWidth + (toolTipWidth - opts.width)
+    }
     if (toolTipOption.showArrow) {
       context.moveTo(offset.x, offset.y + 10 * opts.pix);
       context.lineTo(offset.x - arrowWidth, offset.y + 10 * opts.pix + 5 * opts.pix);
@@ -2575,7 +2658,10 @@
         startX = offset.x - toolTipWidth - arrowWidth + 2 * config.toolTipPadding;
       }
       context.fillRect(startX, startY, legendWidth, config.fontSize);
+      // 鍦嗗舰鍥句緥璇锋敞閲婁笂琛岋紝骞舵妸涓嬭鍙栨秷娉ㄩ噴
+      // context.arc(startX + legendWidth / 2 , startY + opts.fontSize / 2, 4 * opts.pix, 0, 2 * Math.PI);
       context.closePath();
+      context.fill();
     }
   });
   // draw text list
@@ -2684,8 +2770,8 @@
               context.arc(left + r3, top + height - r3, r3, Math.PI / 2, Math.PI);
             } else {
               context.moveTo(startX, item.y);
-              context.lineTo(startX + item.width - 2, item.y);
-              context.lineTo(startX + item.width - 2, opts.height - opts.area[2]);
+              context.lineTo(startX + item.width, item.y);
+              context.lineTo(startX + item.width, opts.height - opts.area[2]);
               context.lineTo(startX, opts.height - opts.area[2]);
               context.lineTo(startX, item.y);
               context.setLineWidth(1)
@@ -2716,7 +2802,7 @@
             }
             context.setFillStyle(fillColor);
             context.moveTo(startX, item.y);
-            context.fillRect(startX, item.y, item.width - 2, height);
+            context.fillRect(startX, item.y, item.width, height);
             context.closePath();
             context.fill();
           }
@@ -2727,84 +2813,59 @@
         var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);
         calPoints.push(points);
         points = fixColumeMeterData(points, eachSpacing, series.length, seriesIndex, config, opts, columnOption.meterBorder);
-        if (seriesIndex == 0) {
           for (let i = 0; i < points.length; i++) {
             let item = points[i];
             if (item !== null && i > leftNum && i < rightNum) {
               //鐢昏儗鏅鑹�
               context.beginPath();
-              context.setFillStyle(columnOption.meterFillColor);
+              if (seriesIndex == 0 && columnOption.meterBorder > 0) {
+                context.setStrokeStyle(eachSeries.color);
+                context.setLineWidth(columnOption.meterBorder * opts.pix);
+              }
+              if(seriesIndex == 0){
+                context.setFillStyle(columnOption.meterFillColor);
+              }else{
+                context.setFillStyle(item.color || eachSeries.color);
+              }
               var startX = item.x - item.width / 2;
               var height = opts.height - item.y - opts.area[2];
-              if (columnOption.barBorderCircle) {
-                var barBorderRadius = (item.width - columnOption.meterBorder*2) / 2;
-                if(barBorderRadius>height){
-                  barBorderRadius = height;
+              if ((columnOption.barBorderRadius && columnOption.barBorderRadius.length === 4) || columnOption.barBorderCircle === true) {
+                const left = startX;
+                const top = item.y;
+                const width = item.width;
+                const height = opts.height - opts.area[2] - item.y;
+                if (columnOption.barBorderCircle) {
+                  columnOption.barBorderRadius = [width / 2, width / 2, 0, 0];
                 }
-                context.moveTo(startX + columnOption.meterBorder, opts.height - opts.area[2]);
-                context.lineTo(startX + columnOption.meterBorder, item.y + barBorderRadius);
-                context.arc(startX + item.width/2, item.y + barBorderRadius, barBorderRadius, -Math.PI, 0);
-                context.lineTo(startX + item.width - columnOption.meterBorder , opts.height - opts.area[2]);
-                context.lineTo(startX, opts.height - opts.area[2]);
+                let [r0, r1, r2, r3] = columnOption.barBorderRadius;
+                let minRadius = Math.min(width/2,height/2);
+                r0 = r0 > minRadius ? minRadius : r0;
+                r1 = r1 > minRadius ? minRadius : r1;
+                r2 = r2 > minRadius ? minRadius : r2;
+                r3 = r3 > minRadius ? minRadius : r3;
+                r0 = r0 < 0 ? 0 : r0;
+                r1 = r1 < 0 ? 0 : r1;
+                r2 = r2 < 0 ? 0 : r2;
+                r3 = r3 < 0 ? 0 : r3;
+                context.arc(left + r0, top + r0, r0, -Math.PI, -Math.PI / 2);
+                context.arc(left + width - r1, top + r1, r1, -Math.PI / 2, 0);
+                context.arc(left + width - r2, top + height - r2, r2, 0, Math.PI / 2);
+                context.arc(left + r3, top + height - r3, r3, Math.PI / 2, Math.PI);
                 context.fill();
               }else{
                 context.moveTo(startX, item.y);
-                context.fillRect(startX, item.y, item.width, height);
-                context.closePath();
+                context.lineTo(startX + item.width, item.y);
+                context.lineTo(startX + item.width, opts.height - opts.area[2]);
+                context.lineTo(startX, opts.height - opts.area[2]);
+                context.lineTo(startX, item.y);
                 context.fill();
               }
-              //鐢昏竟妗嗙嚎
-              if (columnOption.meterBorder > 0) {
-                context.beginPath();
-                context.setStrokeStyle(eachSeries.color);
-                context.setLineWidth(columnOption.meterBorder * opts.pix);
-                if (columnOption.barBorderCircle) {
-                  var barBorderRadius = (item.width - columnOption.meterBorder)/ 2;
-                  if(barBorderRadius>height){
-                    barBorderRadius = height;
-                  }
-                  context.moveTo(startX  + columnOption.meterBorder * 0.5, opts.height - opts.area[2]);
-                  context.lineTo(startX + columnOption.meterBorder * 0.5, item.y + barBorderRadius);
-                  context.arc(startX + item.width/2, item.y + barBorderRadius - columnOption.meterBorder * 0.5, barBorderRadius, -Math.PI, 0);
-                  context.lineTo(startX + item.width - columnOption.meterBorder * 0.5, opts.height - opts.area[2]);
-                }else{
-                  context.moveTo(startX + columnOption.meterBorder * 0.5, item.y + height);
-                  context.lineTo(startX + columnOption.meterBorder * 0.5, item.y + columnOption.meterBorder * 0.5);
-                  context.lineTo(startX + item.width - columnOption.meterBorder * 0.5, item.y + columnOption.meterBorder * 0.5);
-                  context.lineTo(startX + item.width - columnOption.meterBorder * 0.5, item.y + height);
-                }
+              if (seriesIndex == 0 && columnOption.meterBorder > 0) {
+                context.closePath();
                 context.stroke();
               }
             }
-          };
-        } else {
-          for (let i = 0; i < points.length; i++) {
-            let item = points[i];
-            if (item !== null && i > leftNum && i < rightNum) {
-              context.beginPath();
-              context.setFillStyle(item.color || eachSeries.color);
-              var startX = item.x - item.width / 2;
-              var height = opts.height - item.y - opts.area[2];
-              if (columnOption.barBorderCircle) {
-                var barBorderRadius = item.width / 2;
-                if(barBorderRadius>height){
-                  barBorderRadius = height;
-                }
-                context.moveTo(startX, opts.height - opts.area[2]);
-                context.arc(startX + barBorderRadius, item.y + barBorderRadius, barBorderRadius, -Math.PI, -Math.PI / 2);
-                context.arc(startX + item.width - barBorderRadius, item.y + barBorderRadius, barBorderRadius, -Math.PI / 2, 0);
-                context.lineTo(startX + item.width, opts.height - opts.area[2]);
-                context.lineTo(startX, opts.height - opts.area[2]);
-                context.fill();
-              }else{
-                context.moveTo(startX, item.y);
-                context.fillRect(startX, item.y, item.width, height);
-                context.closePath();
-                context.fill();
-              }
-            }
-          };
-        }
+          }
         break;
     }
   });
@@ -2837,6 +2898,226 @@
   return {
     xAxisPoints: xAxisPoints,
     calPoints: calPoints,
+    eachSpacing: eachSpacing
+  };
+}
+
+function drawMountDataPoints(series, opts, config, context) {
+  let process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;
+  let xAxisData = opts.chartData.xAxisData,
+    xAxisPoints = xAxisData.xAxisPoints,
+    eachSpacing = xAxisData.eachSpacing;
+  let mountOption = assign({}, {
+    type: 'mount',
+    widthRatio: 1,
+    borderWidth: 1,
+    barBorderCircle: false,
+    barBorderRadius: [],
+    linearType: 'none',
+    linearOpacity: 1,
+    customColor: [],
+    colorStop: 0,
+  }, opts.extra.mount);
+  mountOption.widthRatio = mountOption.widthRatio <= 0 ? 0 : mountOption.widthRatio;
+  mountOption.widthRatio = mountOption.widthRatio >= 2 ? 2 : mountOption.widthRatio;
+  let calPoints = [];
+  context.save();
+  let leftNum = -2;
+  let rightNum = xAxisPoints.length + 2;
+  if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {
+    context.translate(opts._scrollDistance_, 0);
+    leftNum = Math.floor(-opts._scrollDistance_ / eachSpacing) - 2;
+    rightNum = leftNum + opts.xAxis.itemCount + 4;
+  }
+  mountOption.customColor = fillCustomColor(mountOption.linearType, mountOption.customColor, series, config);
+    let ranges, minRange, maxRange;
+    ranges = [].concat(opts.chartData.yAxisData.ranges[0]);
+    minRange = ranges.pop();
+    maxRange = ranges.shift();
+    var points = getMountDataPoints(series, minRange, maxRange, xAxisPoints, eachSpacing, opts, mountOption, process);
+    switch (mountOption.type) {
+      case 'bar':
+        for (let i = 0; i < points.length; i++) {
+          let item = points[i];
+          if (item !== null && i > leftNum && i < rightNum) {
+            var startX = item.x - eachSpacing*mountOption.widthRatio/2;
+            var height = opts.height - item.y - opts.area[2];
+            context.beginPath();
+            var fillColor = item.color || series[i].color
+            var strokeColor = item.color || series[i].color
+            if (mountOption.linearType !== 'none') {
+              var grd = context.createLinearGradient(startX, item.y, startX, opts.height - opts.area[2]);
+              //閫忔槑娓愬彉
+              if (mountOption.linearType == 'opacity') {
+                grd.addColorStop(0, hexToRgb(fillColor, mountOption.linearOpacity));
+                grd.addColorStop(1, hexToRgb(fillColor, 1));
+              } else {
+                grd.addColorStop(0, hexToRgb(mountOption.customColor[series[i].linearIndex], mountOption.linearOpacity));
+                grd.addColorStop(mountOption.colorStop, hexToRgb(mountOption.customColor[series[i].linearIndex],mountOption.linearOpacity));
+                grd.addColorStop(1, hexToRgb(fillColor, 1));
+              }
+              fillColor = grd
+            }
+            // 鍦嗚杈规
+            if ((mountOption.barBorderRadius && mountOption.barBorderRadius.length === 4) || mountOption.barBorderCircle === true) {
+              const left = startX;
+              const top = item.y;
+              const width = item.width;
+              const height = opts.height - opts.area[2] - item.y - mountOption.borderWidth * opts.pix / 2; 
+              if (mountOption.barBorderCircle) {
+                mountOption.barBorderRadius = [width / 2, width / 2, 0, 0];
+              }
+              let [r0, r1, r2, r3] = mountOption.barBorderRadius;
+              let minRadius = Math.min(width/2,height/2);
+              r0 = r0 > minRadius ? minRadius : r0;
+              r1 = r1 > minRadius ? minRadius : r1;
+              r2 = r2 > minRadius ? minRadius : r2;
+              r3 = r3 > minRadius ? minRadius : r3;
+              r0 = r0 < 0 ? 0 : r0;
+              r1 = r1 < 0 ? 0 : r1;
+              r2 = r2 < 0 ? 0 : r2;
+              r3 = r3 < 0 ? 0 : r3;
+              context.arc(left + r0, top + r0, r0, -Math.PI, -Math.PI / 2);
+              context.arc(left + width - r1, top + r1, r1, -Math.PI / 2, 0);
+              context.arc(left + width - r2, top + height - r2, r2, 0, Math.PI / 2);
+              context.arc(left + r3, top + height - r3, r3, Math.PI / 2, Math.PI);
+            } else {
+              context.moveTo(startX, item.y);
+              context.lineTo(startX + item.width, item.y);
+              context.lineTo(startX + item.width, opts.height - opts.area[2]);
+              context.lineTo(startX, opts.height - opts.area[2]);
+              context.lineTo(startX, item.y);
+            }
+            context.setStrokeStyle(strokeColor);
+            context.setFillStyle(fillColor);
+            if(mountOption.borderWidth > 0){
+              context.setLineWidth(mountOption.borderWidth * opts.pix);
+              context.closePath();
+              context.stroke();
+            }
+            context.fill();
+          }
+        };
+        break;
+      case 'triangle':
+        for (let i = 0; i < points.length; i++) {
+          let item = points[i];
+          if (item !== null && i > leftNum && i < rightNum) {
+            var startX = item.x - eachSpacing*mountOption.widthRatio/2;
+            var height = opts.height - item.y - opts.area[2];
+            context.beginPath();
+            var fillColor = item.color || series[i].color
+            var strokeColor = item.color || series[i].color
+            if (mountOption.linearType !== 'none') {
+              var grd = context.createLinearGradient(startX, item.y, startX, opts.height - opts.area[2]);
+              //閫忔槑娓愬彉
+              if (mountOption.linearType == 'opacity') {
+                grd.addColorStop(0, hexToRgb(fillColor, mountOption.linearOpacity));
+                grd.addColorStop(1, hexToRgb(fillColor, 1));
+              } else {
+                grd.addColorStop(0, hexToRgb(mountOption.customColor[series[i].linearIndex], mountOption.linearOpacity));
+                grd.addColorStop(mountOption.colorStop, hexToRgb(mountOption.customColor[series[i].linearIndex],mountOption.linearOpacity));
+                grd.addColorStop(1, hexToRgb(fillColor, 1));
+              }
+              fillColor = grd
+            }
+            context.moveTo(startX, opts.height - opts.area[2]);
+            context.lineTo(item.x, item.y);
+            context.lineTo(startX + item.width, opts.height - opts.area[2]);
+            context.setStrokeStyle(strokeColor);
+            context.setFillStyle(fillColor);
+            if(mountOption.borderWidth > 0){
+              context.setLineWidth(mountOption.borderWidth * opts.pix);
+              context.stroke();
+            }
+            context.fill();
+          }
+        };
+        break;
+      case 'mount':
+        for (let i = 0; i < points.length; i++) {
+          let item = points[i];
+          if (item !== null && i > leftNum && i < rightNum) {
+            var startX = item.x - eachSpacing*mountOption.widthRatio/2;
+            var height = opts.height - item.y - opts.area[2];
+            context.beginPath();
+            var fillColor = item.color || series[i].color
+            var strokeColor = item.color || series[i].color
+            if (mountOption.linearType !== 'none') {
+              var grd = context.createLinearGradient(startX, item.y, startX, opts.height - opts.area[2]);
+              //閫忔槑娓愬彉
+              if (mountOption.linearType == 'opacity') {
+                grd.addColorStop(0, hexToRgb(fillColor, mountOption.linearOpacity));
+                grd.addColorStop(1, hexToRgb(fillColor, 1));
+              } else {
+                grd.addColorStop(0, hexToRgb(mountOption.customColor[series[i].linearIndex], mountOption.linearOpacity));
+                grd.addColorStop(mountOption.colorStop, hexToRgb(mountOption.customColor[series[i].linearIndex],mountOption.linearOpacity));
+                grd.addColorStop(1, hexToRgb(fillColor, 1));
+              }
+              fillColor = grd
+            }
+            context.moveTo(startX, opts.height - opts.area[2]);
+            context.bezierCurveTo(item.x - item.width/4, opts.height - opts.area[2], item.x - item.width/4, item.y, item.x, item.y);
+            context.bezierCurveTo(item.x + item.width/4, item.y, item.x + item.width/4, opts.height - opts.area[2], startX + item.width, opts.height - opts.area[2]);
+            context.setStrokeStyle(strokeColor);
+            context.setFillStyle(fillColor);
+            if(mountOption.borderWidth > 0){
+              context.setLineWidth(mountOption.borderWidth * opts.pix);
+              context.stroke();
+            }
+            context.fill();
+          }
+        };
+        break;
+      case 'sharp':
+        for (let i = 0; i < points.length; i++) {
+          let item = points[i];
+          if (item !== null && i > leftNum && i < rightNum) {
+            var startX = item.x - eachSpacing*mountOption.widthRatio/2;
+            var height = opts.height - item.y - opts.area[2];
+            context.beginPath();
+            var fillColor = item.color || series[i].color
+            var strokeColor = item.color || series[i].color
+            if (mountOption.linearType !== 'none') {
+              var grd = context.createLinearGradient(startX, item.y, startX, opts.height - opts.area[2]);
+              //閫忔槑娓愬彉
+              if (mountOption.linearType == 'opacity') {
+                grd.addColorStop(0, hexToRgb(fillColor, mountOption.linearOpacity));
+                grd.addColorStop(1, hexToRgb(fillColor, 1));
+              } else {
+                grd.addColorStop(0, hexToRgb(mountOption.customColor[series[i].linearIndex], mountOption.linearOpacity));
+                grd.addColorStop(mountOption.colorStop, hexToRgb(mountOption.customColor[series[i].linearIndex],mountOption.linearOpacity));
+                grd.addColorStop(1, hexToRgb(fillColor, 1));
+              }
+              fillColor = grd
+            }
+            context.moveTo(startX, opts.height - opts.area[2]);
+            context.quadraticCurveTo(item.x - 0, opts.height - opts.area[2] - height/4, item.x, item.y);
+            context.quadraticCurveTo(item.x + 0, opts.height - opts.area[2] - height/4, startX + item.width, opts.height - opts.area[2])
+            context.setStrokeStyle(strokeColor);
+            context.setFillStyle(fillColor);
+            if(mountOption.borderWidth > 0){
+              context.setLineWidth(mountOption.borderWidth * opts.pix);
+              context.stroke();
+            }
+            context.fill();
+          }
+        };
+        break;
+    }
+
+  if (opts.dataLabel !== false && process === 1) {
+    let ranges, minRange, maxRange;
+    ranges = [].concat(opts.chartData.yAxisData.ranges[0]);
+    minRange = ranges.pop();
+    maxRange = ranges.shift();
+    var points = getMountDataPoints(series, minRange, maxRange, xAxisPoints, eachSpacing, opts, mountOption, process);
+    drawMountPointText(points, series, config, context, opts);
+  }
+  context.restore();
+  return {
+    xAxisPoints: xAxisPoints,
+    calPoints: points,
     eachSpacing: eachSpacing
   };
 }
@@ -2910,7 +3191,7 @@
               const left = startX;
               const width = item.width;
               const top = item.y - item.width / 2;
-              const height = item.heigh;
+              const height = item.height;
               if (columnOption.barBorderCircle) {
                 columnOption.barBorderRadius = [width / 2, width / 2, 0, 0];
               }
@@ -2932,8 +3213,8 @@
             } else {
               context.moveTo(startX, startY);
               context.lineTo(item.x, startY);
-              context.lineTo(item.x, startY + item.width - 2);
-              context.lineTo(startX, startY + item.width - 2);
+              context.lineTo(item.x, startY + item.width);
+              context.lineTo(startX, startY + item.width);
               context.lineTo(startX, startY);
               context.setLineWidth(1)
               context.setStrokeStyle(strokeColor);
@@ -2958,7 +3239,7 @@
             var startX = item.x0;
             context.setFillStyle(fillColor);
             context.moveTo(startX, item.y - item.width/2);
-            context.fillRect(startX, item.y - item.width/2, item.height , item.width - 2);
+            context.fillRect(startX, item.y - item.width/2, item.height , item.width);
             context.closePath();
             context.fill();
           }
@@ -3443,9 +3724,9 @@
     if (opts.dataLabel !== false && process === 1) {
       points.forEach(function(item, index) {
         context.beginPath();
-        var fontSize = series.textSize * opts.pix || config.fontSize;
+        var fontSize = eachSeries.textSize * opts.pix || config.fontSize;
         context.setFontSize(fontSize);
-        context.setFillStyle(series.textColor || "#FFFFFF");
+        context.setFillStyle(eachSeries.textColor || "#FFFFFF");
         context.setTextAlign('center');
         context.fillText(String(item.t), item.x, item.y + fontSize/2);
         context.closePath();
@@ -3461,7 +3742,6 @@
     eachSpacing: eachSpacing
   };
 }
-
 
 function drawLineDataPoints(series, opts, config, context) {
   var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;
@@ -3574,6 +3854,9 @@
 
 function drawMixDataPoints(series, opts, config, context) {
   let process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;
+  let xAxisData = opts.chartData.xAxisData,
+    xAxisPoints = xAxisData.xAxisPoints,
+    eachSpacing = xAxisData.eachSpacing;
   let columnOption = assign({}, {
     width: eachSpacing / 2,
     barBorderCircle: false,
@@ -3584,9 +3867,13 @@
     customColor: [],
     colorStop: 0,
   }, opts.extra.mix.column);
-  let xAxisData = opts.chartData.xAxisData,
-    xAxisPoints = xAxisData.xAxisPoints,
-    eachSpacing = xAxisData.eachSpacing;
+  let areaOption = assign({}, {
+    opacity: 0.2,
+    gradient: false
+  }, opts.extra.mix.area);
+  let lineOption = assign({}, {
+    width: 2
+  }, opts.extra.mix.line);
   let endY = opts.height - opts.area[2];
   let calPoints = [];
   var columnIndex = 0;
@@ -3666,8 +3953,8 @@
             context.arc(left + r3, top + height - r3, r3, Math.PI / 2, Math.PI);
           } else {
             context.moveTo(startX, item.y);
-            context.lineTo(startX + item.width - 2, item.y);
-            context.lineTo(startX + item.width - 2, opts.height - opts.area[2]);
+            context.lineTo(startX + item.width, item.y);
+            context.lineTo(startX + item.width, opts.height - opts.area[2]);
             context.lineTo(startX, opts.height - opts.area[2]);
             context.lineTo(startX, item.y);
             context.setLineWidth(1)
@@ -3688,7 +3975,15 @@
         // 缁樺埗鍖哄煙鏁版嵁
         context.beginPath();
         context.setStrokeStyle(eachSeries.color);
-        context.setFillStyle(hexToRgb(eachSeries.color, 0.2));
+        context.setStrokeStyle(hexToRgb(eachSeries.color, areaOption.opacity));
+        if (areaOption.gradient) {
+          let gradient = context.createLinearGradient(0, opts.area[0], 0, opts.height - opts.area[2]);
+          gradient.addColorStop('0', hexToRgb(eachSeries.color, areaOption.opacity));
+          gradient.addColorStop('1.0', hexToRgb("#FFFFFF", 0.1));
+          context.setFillStyle(gradient);
+        } else {
+          context.setFillStyle(hexToRgb(eachSeries.color, areaOption.opacity));
+        }
         context.setLineWidth(2 * opts.pix);
         if (points.length > 1) {
           var firstPoint = points[0];
@@ -3745,7 +4040,7 @@
         }
         context.beginPath();
         context.setStrokeStyle(eachSeries.color);
-        context.setLineWidth(2 * opts.pix);
+        context.setLineWidth(lineOption.width * opts.pix);
         if (points.length === 1) {
           context.moveTo(points[0].x, points[0].y);
           context.arc(points[0].x, points[0].y, 1, 0, 2 * Math.PI);
@@ -3817,9 +4112,10 @@
   }
 }
 
+
 function drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints) {
   var toolTipOption = opts.extra.tooltip || {};
-  if (toolTipOption.horizentalLine && opts.tooltip && process === 1 && (opts.type == 'line' || opts.type == 'area' || opts.type == 'column' || opts.type == 'candle' || opts.type == 'mix')) {
+  if (toolTipOption.horizentalLine && opts.tooltip && process === 1 && (opts.type == 'line' || opts.type == 'area' || opts.type == 'column' || opts.type == 'mount' || opts.type == 'candle' || opts.type == 'mix')) {
     drawToolTipHorizentalLine(opts, config, context, eachSpacing, xAxisPoints)
   }
   context.save();
@@ -3852,6 +4148,10 @@
     var scrollY = opts.height - opts.area[2] + config.xAxisHeight;
     var scrollScreenWidth = endX - startX;
     var scrollTotalWidth = eachSpacing * (xAxisPoints.length - 1);
+    if(opts.type == 'mount' && opts.extra && opts.extra.mount && opts.extra.mount.widthRatio && opts.extra.mount.widthRatio > 1){
+      if(opts.extra.mount.widthRatio>2) opts.extra.mount.widthRatio = 2
+      scrollTotalWidth += (opts.extra.mount.widthRatio - 1)*eachSpacing;
+    }
     var scrollWidth = scrollScreenWidth * scrollScreenWidth / scrollTotalWidth;
     var scrollLeft = 0;
     if (opts._scrollDistance_) {
@@ -3944,7 +4244,7 @@
     var xAxisFontSize = opts.xAxis.fontSize * opts.pix || config.fontSize;
     if (config._xAxisTextAngle_ === 0) {
       newCategories.forEach(function(item, index) {
-        var xitem = opts.xAxis.formatter ? opts.xAxis.formatter(item) : item;
+        var xitem = opts.xAxis.formatter ? opts.xAxis.formatter(item,index,opts) : item;
         var offset = -measureText(String(xitem), xAxisFontSize, context) / 2;
         if (boundaryGap == 'center') {
           offset += eachSpacing / 2;
@@ -3953,35 +4253,53 @@
         if (opts.xAxis.scrollShow) {
           scrollHeight = 6 * opts.pix;
         }
-        context.beginPath();
-        context.setFontSize(xAxisFontSize);
-        context.setFillStyle(opts.xAxis.fontColor || opts.fontColor);
-        context.fillText(String(xitem), xAxisPoints[index] + offset, startY + xAxisFontSize + (config.xAxisHeight - scrollHeight - xAxisFontSize) / 2);
-        context.closePath();
-        context.stroke();
+        // 濡傛灉鍦ㄤ富瑙嗗浘鍖哄煙鍐�
+        var _scrollDistance_ = opts._scrollDistance_ || 0;
+        var truePoints = boundaryGap == 'center' ? xAxisPoints[index] + eachSpacing / 2 : xAxisPoints[index];
+        if((truePoints - Math.abs(_scrollDistance_)) >= opts.area[3] && (truePoints - Math.abs(_scrollDistance_)) <= (opts.width - opts.area[1])){
+          context.beginPath();
+          context.setFontSize(xAxisFontSize);
+          context.setFillStyle(opts.xAxis.fontColor || opts.fontColor);
+          context.fillText(String(xitem), xAxisPoints[index] + offset, startY + xAxisFontSize + (config.xAxisHeight - scrollHeight - xAxisFontSize) / 2);
+          context.closePath();
+          context.stroke();
+        }
       });
     } else {
       newCategories.forEach(function(item, index) {
         var xitem = opts.xAxis.formatter ? opts.xAxis.formatter(item) : item;
-        context.save();
-        context.beginPath();
-        context.setFontSize(xAxisFontSize);
-        context.setFillStyle(opts.xAxis.fontColor || opts.fontColor);
-        var textWidth = measureText(String(xitem), xAxisFontSize, context);
-        var offset = -textWidth;
-        if (boundaryGap == 'center') {
-          offset += eachSpacing / 2;
+        // 濡傛灉鍦ㄤ富瑙嗗浘鍖哄煙鍐�
+        var _scrollDistance_ = opts._scrollDistance_ || 0;
+        var truePoints = boundaryGap == 'center' ? xAxisPoints[index] + eachSpacing / 2 : xAxisPoints[index];
+        if((truePoints - Math.abs(_scrollDistance_)) >= opts.area[3] && (truePoints - Math.abs(_scrollDistance_)) <= (opts.width - opts.area[1])){
+          context.save();
+          context.beginPath();
+          context.setFontSize(xAxisFontSize);
+          context.setFillStyle(opts.xAxis.fontColor || opts.fontColor);
+          var textWidth = measureText(String(xitem), xAxisFontSize, context);
+          var offsetX = xAxisPoints[index];
+          if (boundaryGap == 'center') {
+            offsetX = xAxisPoints[index] + eachSpacing / 2;
+          }
+          var scrollHeight = 0;
+          if (opts.xAxis.scrollShow) {
+            scrollHeight = 6 * opts.pix;
+          }
+          var offsetY = startY + 6 * opts.pix + xAxisFontSize - xAxisFontSize * Math.abs(Math.sin(config._xAxisTextAngle_));
+          if(opts.xAxis.rotateAngle < 0){
+            offsetX -= xAxisFontSize / 2;
+            textWidth = 0;
+          }else{
+            offsetX += xAxisFontSize / 2;
+            textWidth = -textWidth;
+          }
+          context.translate(offsetX, offsetY);
+          context.rotate(-1 * config._xAxisTextAngle_);
+          context.fillText(String(xitem), textWidth , 0 );
+          context.closePath();
+          context.stroke();
+          context.restore();
         }
-        var _calRotateTranslate = calRotateTranslate(xAxisPoints[index] + eachSpacing / 2, startY + xAxisFontSize / 2 + 5, opts.height),
-          transX = _calRotateTranslate.transX,
-          transY = _calRotateTranslate.transY;
-
-        context.rotate(-1 * config._xAxisTextAngle_);
-        context.translate(transX, transY);
-        context.fillText(String(xitem), xAxisPoints[index] + offset, startY + xAxisFontSize + 5);
-        context.closePath();
-        context.stroke();
-        context.restore();
       });
     }
   }
@@ -4007,6 +4325,10 @@
   let xAxisPoints = opts.chartData.xAxisData.xAxisPoints,
     xAxiseachSpacing = opts.chartData.xAxisData.eachSpacing;
   let TotalWidth = xAxiseachSpacing * (xAxisPoints.length - 1);
+  if(opts.type == 'mount' && opts.extra && opts.extra.mount && opts.extra.mount.widthRatio && opts.extra.mount.widthRatio > 1 ){
+    if(opts.extra.mount.widthRatio>2) opts.extra.mount.widthRatio = 2
+    TotalWidth += (opts.extra.mount.widthRatio - 1)*xAxiseachSpacing;
+  }
   let endX = startX + TotalWidth;
   let points = [];
   let startY = 1
@@ -4044,21 +4366,14 @@
   var startX = opts.area[3];
   var endX = opts.width - opts.area[1];
   var endY = opts.height - opts.area[2];
-  var fillEndY = endY + config.xAxisHeight;
-  if (opts.xAxis.scrollShow) {
-    fillEndY -= 3 * opts.pix;
-  }
-  if (opts.xAxis.rotateLabel) {
-    fillEndY = opts.height - opts.area[2] + opts.fontSize * opts.pix / 2;
-  }
   // set YAxis background
   context.beginPath();
   context.setFillStyle(opts.background);
   if (opts.enableScroll == true && opts.xAxis.scrollPosition && opts.xAxis.scrollPosition !== 'left') {
-    context.fillRect(0, 0, startX, fillEndY);
+    context.fillRect(0, 0, startX, endY + 2 * opts.pix);
   }
   if (opts.enableScroll == true && opts.xAxis.scrollPosition && opts.xAxis.scrollPosition !== 'right') {
-    context.fillRect(endX, 0, opts.width, fillEndY);
+    context.fillRect(endX, 0, opts.width, endY + 2 * opts.pix);
   }
   context.closePath();
   context.stroke();
@@ -4086,7 +4401,7 @@
         let textAlign = yData.textAlign || "right";
         //鐢籝杞村埢搴﹀強鏂囨
         rangesFormat.forEach(function(item, index) {
-          var pos = points[index] ? points[index] : endY;
+          var pos = points[index];
           context.beginPath();
           context.setFontSize(yAxisFontSize);
           context.setLineWidth(1 * opts.pix);
@@ -4313,17 +4628,18 @@
       context.stroke();
       startX += shapeWidth + shapeRight;
       let fontTrans = 0.5 * lineHeight + 0.5 * fontSize - 2;
+      const legendText = item.legendText ? item.legendText : item.name;
       context.beginPath();
       context.setFontSize(fontSize);
       context.setFillStyle(item.show ? opts.legend.fontColor : opts.legend.hiddenColor);
-      context.fillText(item.name, startX, startY + fontTrans);
+      context.fillText(legendText, startX, startY + fontTrans);
       context.closePath();
       context.stroke();
       if (opts.legend.position == 'top' || opts.legend.position == 'bottom') {
-        startX += measureText(item.name, fontSize, context) + itemGap;
+        startX += measureText(legendText, fontSize, context) + itemGap;
         item.area[2] = startX;
       } else {
-        item.area[2] = startX + measureText(item.name, fontSize, context) + itemGap;;
+        item.area[2] = startX + measureText(legendText, fontSize, context) + itemGap;;
         startX -= shapeWidth + shapeRight;
         startY += lineHeight;
       }
@@ -4356,6 +4672,7 @@
   }
 
   var radius = Math.min((opts.width - opts.area[1] - opts.area[3]) / 2 - config.pieChartLinePadding - config.pieChartTextPadding - config._pieTextMaxLength_, (opts.height - opts.area[0] - opts.area[2]) / 2 - config.pieChartLinePadding - config.pieChartTextPadding);
+  radius = radius < 10 ? 10 : radius;
   if (pieOption.customRadius > 0) {
     radius = pieOption.customRadius * opts.pix;
   }
@@ -4415,16 +4732,7 @@
     context.fill();
   }
   if (opts.dataLabel !== false && process === 1) {
-    var valid = false;
-    for (var i = 0, len = series.length; i < len; i++) {
-      if (series[i].data > 0) {
-        valid = true;
-        break;
-      }
-    }
-    if (valid) {
-      drawPieText(series, opts, config, context, radius, centerPosition);
-    }
+    drawPieText(series, opts, config, context, radius, centerPosition);
   }
   if (process === 1 && opts.type === 'ring') {
     drawRingTitle(opts, config, context, centerPosition);
@@ -4458,6 +4766,7 @@
     y: opts.area[0] + (opts.height - opts.area[0] - opts.area[2]) / 2
   };
   var radius = Math.min((opts.width - opts.area[1] - opts.area[3]) / 2 - config.pieChartLinePadding - config.pieChartTextPadding - config._pieTextMaxLength_, (opts.height - opts.area[0] - opts.area[2]) / 2 - config.pieChartLinePadding - config.pieChartTextPadding);
+  radius = radius < 10 ? 10 : radius;
   var minRadius = roseOption.minRadius || radius * 0.5;
   series = getRoseDataPoints(series, roseOption.type, minRadius, radius, process);
   var activeRadius = roseOption.activeRadius * opts.pix;
@@ -4504,16 +4813,7 @@
   });
 
   if (opts.dataLabel !== false && process === 1) {
-    var valid = false;
-    for (var i = 0, len = series.length; i < len; i++) {
-      if (series[i].data > 0) {
-        valid = true;
-        break;
-      }
-    }
-    if (valid) {
-      drawPieText(series, opts, config, context, radius, centerPosition);
-    }
+    drawPieText(series, opts, config, context, radius, centerPosition);
   }
   return {
     center: centerPosition,
@@ -4528,6 +4828,8 @@
     startAngle: 0.75,
     endAngle: 0.25,
     type: 'default',
+    direction: 'cw',
+    lineCap: 'round',
     width: 12 ,
     gap: 2 ,
     linearType: 'none',
@@ -4554,6 +4856,7 @@
     radius -= 5 * opts.pix;
     radius -= arcbarOption.width / 2;
   }
+  radius = radius < 10 ? 10 : radius;
   arcbarOption.customColor = fillCustomColor(arcbarOption.linearType, arcbarOption.customColor, series, config);
   
   for (let i = 0; i < series.length; i++) {
@@ -4561,12 +4864,12 @@
     //鑳屾櫙棰滆壊
     context.setLineWidth(arcbarOption.width * opts.pix);
     context.setStrokeStyle(arcbarOption.backgroundColor || '#E9E9E9');
-    context.setLineCap('round');
+    context.setLineCap(arcbarOption.lineCap);
     context.beginPath();
     if (arcbarOption.type == 'default') {
-      context.arc(centerPosition.x, centerPosition.y, radius - (arcbarOption.width * opts.pix + arcbarOption.gap * opts.pix) * i, arcbarOption.startAngle * Math.PI, arcbarOption.endAngle * Math.PI, false);
+      context.arc(centerPosition.x, centerPosition.y, radius - (arcbarOption.width * opts.pix + arcbarOption.gap * opts.pix) * i, arcbarOption.startAngle * Math.PI, arcbarOption.endAngle * Math.PI, arcbarOption.direction == 'ccw');
     } else {
-      context.arc(centerPosition.x, centerPosition.y, radius - (arcbarOption.width * opts.pix + arcbarOption.gap * opts.pix) * i, 0, 2 * Math.PI, false);
+      context.arc(centerPosition.x, centerPosition.y, radius - (arcbarOption.width * opts.pix + arcbarOption.gap * opts.pix) * i, 0, 2 * Math.PI, arcbarOption.direction == 'ccw');
     }
     context.stroke();
     //杩涘害鏉�
@@ -4579,9 +4882,9 @@
     }
     context.setLineWidth(arcbarOption.width * opts.pix);
     context.setStrokeStyle(fillColor);
-    context.setLineCap('round');
+    context.setLineCap(arcbarOption.lineCap);
     context.beginPath();
-    context.arc(centerPosition.x, centerPosition.y, radius - (arcbarOption.width * opts.pix + arcbarOption.gap * opts.pix) * i, arcbarOption.startAngle * Math.PI, eachSeries._proportion_ * Math.PI, false);
+    context.arc(centerPosition.x, centerPosition.y, radius - (arcbarOption.width * opts.pix + arcbarOption.gap * opts.pix) * i, arcbarOption.startAngle * Math.PI, eachSeries._proportion_ * Math.PI, arcbarOption.direction == 'ccw');
     context.stroke();
   }
   drawRingTitle(opts, config, context, centerPosition);
@@ -4627,6 +4930,7 @@
   var radius = Math.min(centerPosition.x, centerPosition.y);
   radius -= 5 * opts.pix;
   radius -= gaugeOption.width / 2;
+  radius = radius < 10 ? 10 : radius;
   var innerRadius = radius - gaugeOption.width;
   var totalAngle = 0;
   //鍒ゆ柇浠〃鐩樼殑鏍峰紡锛歞efault鐧惧害鏍峰紡锛宲rogress鏂版牱寮�
@@ -4676,7 +4980,7 @@
     }
     context.restore();
     //## 绗笁姝ョ敾杩涘害鏉�
-    series = getArcbarDataPoints(series, gaugeOption, process);
+    series = getGaugeArcbarDataPoints(series, gaugeOption, process);
     context.setLineWidth(gaugeOption.width);
     context.setStrokeStyle(series[0].color);
     context.setLineCap('round');
@@ -4799,10 +5103,19 @@
   var radarOption = assign({}, {
     gridColor: '#cccccc',
     gridType: 'radar',
+    gridEval:1,
+    axisLabel:false,
+    axisLabelTofix:0,
+    labelColor:'#666666',
+    labelPointShow:false,
+    labelPointRadius:3,
+    labelPointColor:'#cccccc',
     opacity: 0.2,
     gridCount: 3,
     border:false,
-    borderWidth:2
+    borderWidth:2,
+    linearType: 'none',
+    customColor: [],
   }, opts.extra.radar);
   var coordinateAngle = getRadarCoordinateSeries(opts.categories.length);
   var centerPosition = {
@@ -4813,14 +5126,17 @@
   var yr = (opts.height - opts.area[0] - opts.area[2]) / 2
   var radius = Math.min(xr - (getMaxTextListLength(opts.categories, config.fontSize, context) + config.radarLabelTextMargin), yr - config.radarLabelTextMargin);
   radius -= config.radarLabelTextMargin * opts.pix;
+  radius = radius < 10 ? 10 : radius;
   // 鐢诲垎鍓茬嚎
   context.beginPath();
   context.setLineWidth(1 * opts.pix);
   context.setStrokeStyle(radarOption.gridColor);
-  coordinateAngle.forEach(function(angle) {
+  coordinateAngle.forEach(function(angle,index) {
     var pos = convertCoordinateOrigin(radius * Math.cos(angle), radius * Math.sin(angle), centerPosition);
     context.moveTo(centerPosition.x, centerPosition.y);
-    context.lineTo(pos.x, pos.y);
+    if (index % radarOption.gridEval == 0) {
+      context.lineTo(pos.x, pos.y);
+    }
   });
   context.stroke();
   context.closePath();
@@ -4853,13 +5169,28 @@
   for (var i = 1; i <= radarOption.gridCount; i++) {
     _loop(i);
   }
+  radarOption.customColor = fillCustomColor(radarOption.linearType, radarOption.customColor, series, config);
   var radarDataPoints = getRadarDataPoints(coordinateAngle, centerPosition, radius, series, opts, process);
   radarDataPoints.forEach(function(eachSeries, seriesIndex) {
     // 缁樺埗鍖哄煙鏁版嵁
     context.beginPath();
     context.setLineWidth(radarOption.borderWidth * opts.pix);
     context.setStrokeStyle(eachSeries.color);
-    context.setFillStyle(hexToRgb(eachSeries.color, radarOption.opacity));
+    
+    var fillcolor = hexToRgb(eachSeries.color, radarOption.opacity);
+    if (radarOption.linearType == 'custom') {
+      var grd;
+      if(context.createCircularGradient){
+        grd = context.createCircularGradient(centerPosition.x, centerPosition.y, radius)
+      }else{
+        grd = context.createRadialGradient(centerPosition.x, centerPosition.y, 0,centerPosition.x, centerPosition.y, radius)
+      }
+      grd.addColorStop(0, hexToRgb(radarOption.customColor[series[seriesIndex].linearIndex], radarOption.opacity))
+      grd.addColorStop(1, hexToRgb(eachSeries.color, radarOption.opacity))
+      fillcolor = grd
+    }
+    
+    context.setFillStyle(fillcolor);
     eachSeries.data.forEach(function(item, index) {
       if (index === 0) {
         context.moveTo(item.position.x, item.position.y);
@@ -4880,6 +5211,21 @@
       drawPointShape(points, eachSeries.color, eachSeries.pointShape, context, opts);
     }
   });
+  // 鐢诲埢搴﹀��
+  if(radarOption.axisLabel === true){
+    const maxData = Math.max(radarOption.max, Math.max.apply(null, dataCombine(series)));
+    const stepLength = radius / radarOption.gridCount;
+    const fontSize = opts.fontSize * opts.pix;
+    context.setFontSize(fontSize);
+    context.setFillStyle(opts.fontColor);
+    context.setTextAlign('left');
+    for (var i = 0; i < radarOption.gridCount + 1; i++) {
+      let label = i * maxData / radarOption.gridCount;
+      label = label.toFixed(radarOption.axisLabelTofix);
+      context.fillText(String(label), centerPosition.x + 3 * opts.pix, centerPosition.y - i * stepLength + fontSize / 2);
+    }
+  }
+  
   // draw label text
   drawRadarLabel(coordinateAngle, radius, centerPosition, opts, config, context);
   
@@ -4925,36 +5271,27 @@
   };
 }
 
-function normalInt(min, max, iter) {
-  iter = iter == 0 ? 1 : iter;
-  var arr = [];
-  for (var i = 0; i < iter; i++) {
-    arr[i] = Math.random();
-  };
-  return Math.floor(arr.reduce(function(i, j) {
-    return i + j
-  }) / iter * (max - min)) + min;
-};
+// 缁忕含搴﹁浆澧ㄥ崱鎵�
+function lonlat2mercator(longitude, latitude) {
+  var mercator = Array(2);
+  var x = longitude * 20037508.34 / 180;
+  var y = Math.log(Math.tan((90 + latitude) * Math.PI / 360)) / (Math.PI / 180);
+  y = y * 20037508.34 / 180;
+  mercator[0] = x;
+  mercator[1] = y;
+  return mercator;
+}
 
-function collisionNew(area, points, width, height) {
-  var isIn = false;
-  for (let i = 0; i < points.length; i++) {
-    if (points[i].area) {
-      if (area[3] < points[i].area[1] || area[0] > points[i].area[2] || area[1] > points[i].area[3] || area[2] < points[i].area[0]) {
-        if (area[0] < 0 || area[1] < 0 || area[2] > width || area[3] > height) {
-          isIn = true;
-          break;
-        } else {
-          isIn = false;
-        }
-      } else {
-        isIn = true;
-        break;
-      }
-    }
-  }
-  return isIn;
-};
+// 澧ㄥ崱鎵樿浆缁忕含搴�
+function mercator2lonlat(longitude, latitude) {
+  var lonlat = Array(2)
+  var x = longitude / 20037508.34 * 180;
+  var y = latitude / 20037508.34 * 180;
+  y = 180 / Math.PI * (2 * Math.atan(Math.exp(y * Math.PI / 180)) - Math.PI / 2);
+  lonlat[0] = x;
+  lonlat[1] = y;
+  return lonlat;
+}
 
 function getBoundingBox(data) {
   var bounds = {},coords;
@@ -5053,12 +5390,12 @@
   }
 }
 
-
 function drawMapDataPoints(series, opts, config, context) {
   var mapOption = assign({}, {
     border: true,
     mercator: false,
     borderWidth: 1,
+    active:true,
     borderColor: '#666666',
     fillOpacity: 0.6,
     activeBorderColor: '#f04864',
@@ -5085,8 +5422,8 @@
     context.beginPath();
     context.setLineWidth(mapOption.borderWidth * opts.pix);
     context.setStrokeStyle(mapOption.borderColor);
-    context.setFillStyle(hexToRgb(series[i].color, mapOption.fillOpacity));
-    if (opts.tooltip) {
+    context.setFillStyle(hexToRgb(series[i].color, series[i].fillOpacity||mapOption.fillOpacity));
+    if (mapOption.active == true && opts.tooltip) {
       if (opts.tooltip.index == i) {
         context.setStrokeStyle(mapOption.activeBorderColor);
         context.setFillStyle(hexToRgb(mapOption.activeFillColor, mapOption.activeFillOpacity));
@@ -5118,7 +5455,9 @@
         context.stroke();
       }
     }
-    if (opts.dataLabel == true) {
+  }
+  if (opts.dataLabel == true) {
+    for (var i = 0; i < data.length; i++) {
       var centerPoint = data[i].properties.centroid;
       if (centerPoint) {
         if (mapOption.mercator) {
@@ -5126,10 +5465,14 @@
         }
         point = coordinateToPoint(centerPoint[1], centerPoint[0], bounds, scale, xoffset, yoffset);
         let fontSize = data[i].textSize * opts.pix || config.fontSize;
+        let fontColor = data[i].textColor || opts.fontColor;
+        if(mapOption.active && mapOption.activeTextColor && opts.tooltip && opts.tooltip.index == i){
+          fontColor = mapOption.activeTextColor;
+        }
         let text = data[i].properties.name;
         context.beginPath();
         context.setFontSize(fontSize)
-        context.setFillStyle(data[i].textColor || opts.fontColor)
+        context.setFillStyle(fontColor)
         context.fillText(text, point.x - measureText(text, fontSize, context) / 2, point.y + fontSize / 2);
         context.closePath();
         context.stroke();
@@ -5146,6 +5489,37 @@
   drawToolTipBridge(opts, config, context, 1);
   context.draw();
 }
+
+function normalInt(min, max, iter) {
+  iter = iter == 0 ? 1 : iter;
+  var arr = [];
+  for (var i = 0; i < iter; i++) {
+    arr[i] = Math.random();
+  };
+  return Math.floor(arr.reduce(function(i, j) {
+    return i + j
+  }) / iter * (max - min)) + min;
+};
+
+function collisionNew(area, points, width, height) {
+  var isIn = false;
+  for (let i = 0; i < points.length; i++) {
+    if (points[i].area) {
+      if (area[3] < points[i].area[1] || area[0] > points[i].area[2] || area[1] > points[i].area[3] || area[2] < points[i].area[0]) {
+        if (area[0] < 0 || area[1] < 0 || area[2] > width || area[3] > height) {
+          isIn = true;
+          break;
+        } else {
+          isIn = false;
+        }
+      } else {
+        isIn = true;
+        break;
+      }
+    }
+  }
+  return isIn;
+};
 
 function getWordCloudPoint(opts, type, context) {
   let points = opts.series;
@@ -5225,7 +5599,6 @@
   return points;
 }
 
-
 function drawWordCloudDataPoints(series, opts, config, context) {
   let process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;
   let wordOption = assign({}, {
@@ -5295,6 +5668,7 @@
     borderWidth: 2,
     borderColor: '#FFFFFF',
     fillOpacity: 1,
+    minSize: 0,
     labelAlign: 'right',
     linearType: 'none',
     customColor: [],
@@ -5306,42 +5680,42 @@
   };
   let activeWidth = funnelOption.activeWidth * opts.pix;
   let radius = Math.min((opts.width - opts.area[1] - opts.area[3]) / 2 - activeWidth, (opts.height - opts.area[0] - opts.area[2]) / 2 - activeWidth);
-  series = getFunnelDataPoints(series, radius, funnelOption.type, eachSpacing, process);
+  let seriesNew = getFunnelDataPoints(series, radius, funnelOption, eachSpacing, process);
   context.save();
   context.translate(centerPosition.x, centerPosition.y);
   funnelOption.customColor = fillCustomColor(funnelOption.linearType, funnelOption.customColor, series, config);
   if(funnelOption.type == 'pyramid'){
-    for (let i = 0; i < series.length; i++) {
-      if (i == series.length -1) {
+    for (let i = 0; i < seriesNew.length; i++) {
+      if (i == seriesNew.length -1) {
         if (opts.tooltip) {
           if (opts.tooltip.index == i) {
             context.beginPath();
-            context.setFillStyle(hexToRgb(series[i].color, funnelOption.activeOpacity));
+            context.setFillStyle(hexToRgb(seriesNew[i].color, funnelOption.activeOpacity));
             context.moveTo(-activeWidth, -eachSpacing);
-            context.lineTo(-series[i].radius - activeWidth, 0);
-            context.lineTo(series[i].radius + activeWidth, 0);
+            context.lineTo(-seriesNew[i].radius - activeWidth, 0);
+            context.lineTo(seriesNew[i].radius + activeWidth, 0);
             context.lineTo(activeWidth, -eachSpacing);
             context.lineTo(-activeWidth, -eachSpacing);
             context.closePath();
             context.fill();
           }
         }
-        series[i].funnelArea = [centerPosition.x - series[i].radius, centerPosition.y - eachSpacing * (i + 1), centerPosition.x + series[i].radius, centerPosition.y - eachSpacing * i];
+        seriesNew[i].funnelArea = [centerPosition.x - seriesNew[i].radius, centerPosition.y - eachSpacing * (i + 1), centerPosition.x + seriesNew[i].radius, centerPosition.y - eachSpacing * i];
         context.beginPath();
         context.setLineWidth(funnelOption.borderWidth * opts.pix);
         context.setStrokeStyle(funnelOption.borderColor);
-        var fillColor = hexToRgb(series[i].color, funnelOption.fillOpacity);
+        var fillColor = hexToRgb(seriesNew[i].color, funnelOption.fillOpacity);
         if (funnelOption.linearType == 'custom') {
-          var grd = context.createLinearGradient(series[i].radius, -eachSpacing, -series[i].radius, -eachSpacing);
-          grd.addColorStop(0, hexToRgb(series[i].color, funnelOption.fillOpacity));
-          grd.addColorStop(0.5, hexToRgb(funnelOption.customColor[series[i].linearIndex], funnelOption.fillOpacity));
-          grd.addColorStop(1, hexToRgb(series[i].color, funnelOption.fillOpacity));
+          var grd = context.createLinearGradient(seriesNew[i].radius, -eachSpacing, -seriesNew[i].radius, -eachSpacing);
+          grd.addColorStop(0, hexToRgb(seriesNew[i].color, funnelOption.fillOpacity));
+          grd.addColorStop(0.5, hexToRgb(funnelOption.customColor[seriesNew[i].linearIndex], funnelOption.fillOpacity));
+          grd.addColorStop(1, hexToRgb(seriesNew[i].color, funnelOption.fillOpacity));
           fillColor = grd
         }
         context.setFillStyle(fillColor);
         context.moveTo(0, -eachSpacing);
-        context.lineTo(-series[i].radius, 0);
-        context.lineTo(series[i].radius, 0);
+        context.lineTo(-seriesNew[i].radius, 0);
+        context.lineTo(seriesNew[i].radius, 0);
         context.lineTo(0, -eachSpacing);
         context.closePath();
         context.fill();
@@ -5352,35 +5726,35 @@
         if (opts.tooltip) {
           if (opts.tooltip.index == i) {
             context.beginPath();
-            context.setFillStyle(hexToRgb(series[i].color, funnelOption.activeOpacity));
+            context.setFillStyle(hexToRgb(seriesNew[i].color, funnelOption.activeOpacity));
             context.moveTo(0, 0);
-            context.lineTo(-series[i].radius - activeWidth, 0);
-            context.lineTo(-series[i + 1].radius - activeWidth, -eachSpacing);
-            context.lineTo(series[i + 1].radius + activeWidth, -eachSpacing);
-            context.lineTo(series[i].radius + activeWidth, 0);
+            context.lineTo(-seriesNew[i].radius - activeWidth, 0);
+            context.lineTo(-seriesNew[i + 1].radius - activeWidth, -eachSpacing);
+            context.lineTo(seriesNew[i + 1].radius + activeWidth, -eachSpacing);
+            context.lineTo(seriesNew[i].radius + activeWidth, 0);
             context.lineTo(0, 0);
             context.closePath();
             context.fill();
           }
         }
-        series[i].funnelArea = [centerPosition.x - series[i].radius, centerPosition.y - eachSpacing * (i + 1), centerPosition.x + series[i].radius, centerPosition.y - eachSpacing * i];
+        seriesNew[i].funnelArea = [centerPosition.x - seriesNew[i].radius, centerPosition.y - eachSpacing * (i + 1), centerPosition.x + seriesNew[i].radius, centerPosition.y - eachSpacing * i];
         context.beginPath();
         context.setLineWidth(funnelOption.borderWidth * opts.pix);
         context.setStrokeStyle(funnelOption.borderColor);
-        var fillColor = hexToRgb(series[i].color, funnelOption.fillOpacity);
+        var fillColor = hexToRgb(seriesNew[i].color, funnelOption.fillOpacity);
         if (funnelOption.linearType == 'custom') {
-          var grd = context.createLinearGradient(series[i].radius, -eachSpacing, -series[i].radius, -eachSpacing);
-          grd.addColorStop(0, hexToRgb(series[i].color, funnelOption.fillOpacity));
-          grd.addColorStop(0.5, hexToRgb(funnelOption.customColor[series[i].linearIndex], funnelOption.fillOpacity));
-          grd.addColorStop(1, hexToRgb(series[i].color, funnelOption.fillOpacity));
+          var grd = context.createLinearGradient(seriesNew[i].radius, -eachSpacing, -seriesNew[i].radius, -eachSpacing);
+          grd.addColorStop(0, hexToRgb(seriesNew[i].color, funnelOption.fillOpacity));
+          grd.addColorStop(0.5, hexToRgb(funnelOption.customColor[seriesNew[i].linearIndex], funnelOption.fillOpacity));
+          grd.addColorStop(1, hexToRgb(seriesNew[i].color, funnelOption.fillOpacity));
           fillColor = grd
         }
         context.setFillStyle(fillColor);
         context.moveTo(0, 0);
-        context.lineTo(-series[i].radius, 0);
-        context.lineTo(-series[i + 1].radius, -eachSpacing);
-        context.lineTo(series[i + 1].radius, -eachSpacing);
-        context.lineTo(series[i].radius, 0);
+        context.lineTo(-seriesNew[i].radius, 0);
+        context.lineTo(-seriesNew[i + 1].radius, -eachSpacing);
+        context.lineTo(seriesNew[i + 1].radius, -eachSpacing);
+        context.lineTo(seriesNew[i].radius, 0);
         context.lineTo(0, 0);
         context.closePath();
         context.fill();
@@ -5391,37 +5765,40 @@
       context.translate(0, -eachSpacing)
     }
   }else{
-    for (let i = 0; i < series.length; i++) {
-      if (i == 0) {
+    context.translate(0, - (seriesNew.length - 1) * eachSpacing);
+    for (let i = 0; i < seriesNew.length; i++) {
+      if (i == seriesNew.length - 1) {
         if (opts.tooltip) {
           if (opts.tooltip.index == i) {
             context.beginPath();
-            context.setFillStyle(hexToRgb(series[i].color, funnelOption.activeOpacity));
-            context.moveTo(-activeWidth, 0);
-            context.lineTo(-series[i].radius - activeWidth, -eachSpacing);
-            context.lineTo(series[i].radius + activeWidth, -eachSpacing);
-            context.lineTo(activeWidth, 0);
-            context.lineTo(-activeWidth, 0);
+            context.setFillStyle(hexToRgb(seriesNew[i].color, funnelOption.activeOpacity));
+            context.moveTo(-activeWidth - funnelOption.minSize/2, 0);
+            context.lineTo(-seriesNew[i].radius - activeWidth, -eachSpacing);
+            context.lineTo(seriesNew[i].radius + activeWidth, -eachSpacing);
+            context.lineTo(activeWidth + funnelOption.minSize/2, 0);
+            context.lineTo(-activeWidth - funnelOption.minSize/2, 0);
             context.closePath();
             context.fill();
           }
         }
-        series[i].funnelArea = [centerPosition.x - series[i].radius, centerPosition.y - eachSpacing, centerPosition.x + series[i].radius, centerPosition.y];
+        seriesNew[i].funnelArea = [centerPosition.x - seriesNew[i].radius, centerPosition.y - eachSpacing, centerPosition.x + seriesNew[i].radius, centerPosition.y ];
         context.beginPath();
         context.setLineWidth(funnelOption.borderWidth * opts.pix);
         context.setStrokeStyle(funnelOption.borderColor);
-        var fillColor = hexToRgb(series[i].color, funnelOption.fillOpacity);
+        var fillColor = hexToRgb(seriesNew[i].color, funnelOption.fillOpacity);
         if (funnelOption.linearType == 'custom') {
-          var grd = context.createLinearGradient(series[i].radius, -eachSpacing, -series[i].radius, -eachSpacing);
-          grd.addColorStop(0, hexToRgb(series[i].color, funnelOption.fillOpacity));
-          grd.addColorStop(0.5, hexToRgb(funnelOption.customColor[series[i].linearIndex], funnelOption.fillOpacity));
-          grd.addColorStop(1, hexToRgb(series[i].color, funnelOption.fillOpacity));
+          var grd = context.createLinearGradient(seriesNew[i].radius, -eachSpacing, -seriesNew[i].radius, -eachSpacing);
+          grd.addColorStop(0, hexToRgb(seriesNew[i].color, funnelOption.fillOpacity));
+          grd.addColorStop(0.5, hexToRgb(funnelOption.customColor[seriesNew[i].linearIndex], funnelOption.fillOpacity));
+          grd.addColorStop(1, hexToRgb(seriesNew[i].color, funnelOption.fillOpacity));
           fillColor = grd
         }
         context.setFillStyle(fillColor);
         context.moveTo(0, 0);
-        context.lineTo(-series[i].radius, -eachSpacing);
-        context.lineTo(series[i].radius, -eachSpacing);
+        context.lineTo(-funnelOption.minSize/2, 0);
+        context.lineTo(-seriesNew[i].radius, -eachSpacing);
+        context.lineTo(seriesNew[i].radius, -eachSpacing);
+        context.lineTo(funnelOption.minSize/2, 0);
         context.lineTo(0, 0);
         context.closePath();
         context.fill();
@@ -5432,35 +5809,35 @@
         if (opts.tooltip) {
           if (opts.tooltip.index == i) {
             context.beginPath();
-            context.setFillStyle(hexToRgb(series[i].color, funnelOption.activeOpacity));
+            context.setFillStyle(hexToRgb(seriesNew[i].color, funnelOption.activeOpacity));
             context.moveTo(0, 0);
-            context.lineTo(-series[i - 1].radius - activeWidth, 0);
-            context.lineTo(-series[i].radius - activeWidth, -eachSpacing);
-            context.lineTo(series[i].radius + activeWidth, -eachSpacing);
-            context.lineTo(series[i - 1].radius + activeWidth, 0);
+            context.lineTo(-seriesNew[i + 1].radius - activeWidth, 0);
+            context.lineTo(-seriesNew[i].radius - activeWidth, -eachSpacing);
+            context.lineTo(seriesNew[i].radius + activeWidth, -eachSpacing);
+            context.lineTo(seriesNew[i + 1].radius + activeWidth, 0);
             context.lineTo(0, 0);
             context.closePath();
             context.fill();
           }
         }
-        series[i].funnelArea = [centerPosition.x - series[i].radius, centerPosition.y - eachSpacing * (i + 1), centerPosition.x + series[i].radius, centerPosition.y - eachSpacing * i];
+        seriesNew[i].funnelArea = [centerPosition.x - seriesNew[i].radius, centerPosition.y - eachSpacing * (seriesNew.length - i), centerPosition.x + seriesNew[i].radius, centerPosition.y - eachSpacing * (seriesNew.length - i - 1)];
         context.beginPath();
         context.setLineWidth(funnelOption.borderWidth * opts.pix);
         context.setStrokeStyle(funnelOption.borderColor);
-        var fillColor = hexToRgb(series[i].color, funnelOption.fillOpacity);
+        var fillColor = hexToRgb(seriesNew[i].color, funnelOption.fillOpacity);
         if (funnelOption.linearType == 'custom') {
-          var grd = context.createLinearGradient(series[i].radius, -eachSpacing, -series[i].radius, -eachSpacing);
-          grd.addColorStop(0, hexToRgb(series[i].color, funnelOption.fillOpacity));
-          grd.addColorStop(0.5, hexToRgb(funnelOption.customColor[series[i].linearIndex], funnelOption.fillOpacity));
-          grd.addColorStop(1, hexToRgb(series[i].color, funnelOption.fillOpacity));
+          var grd = context.createLinearGradient(seriesNew[i].radius, -eachSpacing, -seriesNew[i].radius, -eachSpacing);
+          grd.addColorStop(0, hexToRgb(seriesNew[i].color, funnelOption.fillOpacity));
+          grd.addColorStop(0.5, hexToRgb(funnelOption.customColor[seriesNew[i].linearIndex], funnelOption.fillOpacity));
+          grd.addColorStop(1, hexToRgb(seriesNew[i].color, funnelOption.fillOpacity));
           fillColor = grd
         }
         context.setFillStyle(fillColor);
         context.moveTo(0, 0);
-        context.lineTo(-series[i - 1].radius, 0);
-        context.lineTo(-series[i].radius, -eachSpacing);
-        context.lineTo(series[i].radius, -eachSpacing);
-        context.lineTo(series[i - 1].radius, 0);
+        context.lineTo(-seriesNew[i + 1].radius, 0);
+        context.lineTo(-seriesNew[i].radius, -eachSpacing);
+        context.lineTo(seriesNew[i].radius, -eachSpacing);
+        context.lineTo(seriesNew[i + 1].radius, 0);
         context.lineTo(0, 0);
         context.closePath();
         context.fill();
@@ -5468,39 +5845,38 @@
           context.stroke();
         }
       }
-      context.translate(0, -eachSpacing)
+      context.translate(0, eachSpacing)
     }
   }
   
   context.restore();
   if (opts.dataLabel !== false && process === 1) {
-    drawFunnelText(series, opts, context, eachSpacing, funnelOption.labelAlign, activeWidth, centerPosition);
+    drawFunnelText(seriesNew, opts, context, eachSpacing, funnelOption.labelAlign, activeWidth, centerPosition);
+  }
+  if (process === 1) {
+    drawFunnelCenterText(seriesNew, opts, context, eachSpacing, funnelOption.labelAlign, activeWidth, centerPosition);
   }
   return {
     center: centerPosition,
     radius: radius,
-    series: series
+    series: seriesNew
   };
 }
 
 function drawFunnelText(series, opts, context, eachSpacing, labelAlign, activeWidth, centerPosition) {
   for (let i = 0; i < series.length; i++) {
     let item = series[i];
+    if(item.labelShow === false){
+      continue;
+    }
     let startX, endX, startY, fontSize;
-    let text = item.formatter ? item.formatter(item,i,series) : util.toFixed(item._proportion_ * 100) + '%';
+    let text = item.formatter ? item.formatter(item,i,series,opts) : util.toFixed(item._proportion_ * 100) + '%';
+    text = item.labelText ? item.labelText : text;
     if (labelAlign == 'right') {
-      if(opts.extra.funnel.type === 'pyramid'){
-        if (i == series.length -1) {
-          startX = (item.funnelArea[2] + centerPosition.x) / 2;
-        } else {
-          startX = (item.funnelArea[2] + series[i + 1].funnelArea[2]) / 2;
-        }
-      }else{
-        if (i == 0) {
-          startX = (item.funnelArea[2] + centerPosition.x) / 2;
-        } else {
-          startX = (item.funnelArea[2] + series[i - 1].funnelArea[2]) / 2;
-        }
+      if (i == series.length -1) {
+        startX = (item.funnelArea[2] + centerPosition.x) / 2;
+      } else {
+        startX = (item.funnelArea[2] + series[i + 1].funnelArea[2]) / 2;
       }
       endX = startX + activeWidth * 2;
       startY = item.funnelArea[1] + eachSpacing / 2;
@@ -5515,7 +5891,7 @@
       context.closePath();
       context.beginPath();
       context.moveTo(endX, startY);
-      context.arc(endX, startY, 2, 0, 2 * Math.PI);
+      context.arc(endX, startY, 2 * opts.pix, 0, 2 * Math.PI);
       context.closePath();
       context.fill();
       context.beginPath();
@@ -5525,19 +5901,12 @@
       context.closePath();
       context.stroke();
       context.closePath();
-    } else {
-      if(opts.extra.funnel.type === 'pyramid'){
-        if (i == series.length -1) {
-          startX = (item.funnelArea[0] + centerPosition.x) / 2;
-        } else {
-          startX = (item.funnelArea[0] + series[i + 1].funnelArea[0]) / 2;
-        }
-      }else{
-        if (i == 0) {
-          startX = (item.funnelArea[0] + centerPosition.x) / 2;
-        } else {
-          startX = (item.funnelArea[0] + series[i - 1].funnelArea[0]) / 2;
-        }
+    }
+    if (labelAlign == 'left') {
+      if (i == series.length -1) {
+        startX = (item.funnelArea[0] + centerPosition.x) / 2;
+      } else {
+        startX = (item.funnelArea[0] + series[i + 1].funnelArea[0]) / 2;
       }
       endX = startX - activeWidth * 2;
       startY = item.funnelArea[1] + eachSpacing / 2;
@@ -5563,9 +5932,27 @@
       context.stroke();
       context.closePath();
     }
-
   }
 }
+
+function drawFunnelCenterText(series, opts, context, eachSpacing, labelAlign, activeWidth, centerPosition) {
+  for (let i = 0; i < series.length; i++) {
+    let item = series[i];
+    let startY, fontSize;
+    if (item.centerText) {
+      startY = item.funnelArea[1] + eachSpacing / 2;
+      fontSize = item.centerTextSize * opts.pix || opts.fontSize * opts.pix;
+      context.beginPath();
+      context.setFontSize(fontSize);
+      context.setFillStyle(item.centerTextColor || "#FFFFFF");
+      context.fillText(item.centerText, centerPosition.x - measureText(item.centerText, fontSize, context) / 2, startY + fontSize / 2 - 2);
+      context.closePath();
+      context.stroke();
+      context.closePath();
+    }
+  }
+}
+
 
 function drawCanvas(opts, context) {
   context.draw();
@@ -5645,10 +6032,17 @@
   var _this = this;
   var series = opts.series;
   //鍏煎ECharts楗煎浘绫绘暟鎹牸寮�
-  if (type === 'pie' || type === 'ring' || type === 'rose' || type === 'funnel') {
+  if (type === 'pie' || type === 'ring' || type === 'mount' || type === 'rose' || type === 'funnel') {
     series = fixPieSeries(series, opts, config);
   }
   var categories = opts.categories;
+  if (type === 'mount') {
+    categories = [];
+    for (let j = 0; j < series.length; j++) {
+      if(series[j].show !== false) categories.push(series[j].name)
+    }
+    opts.categories = categories;
+  }
   series = fillSeries(series, opts, config);
   var duration = opts.animation ? opts.duration : 0;
   _this.animationInstance && _this.animationInstance.stop();
@@ -5697,7 +6091,7 @@
 
   let _calYAxisData = {},
     yAxisWidth = 0;
-  if (opts.type === 'line' || opts.type === 'column' || opts.type === 'area' || opts.type === 'mix' || opts.type === 'candle' || opts.type === 'scatter'  || opts.type === 'bubble' || opts.type === 'bar') {
+  if (opts.type === 'line' || opts.type === 'column'|| opts.type === 'mount' || opts.type === 'area' || opts.type === 'mix' || opts.type === 'candle' || opts.type === 'scatter'  || opts.type === 'bubble' || opts.type === 'bar') {
       _calYAxisData = calYAxisData(series, opts, config, context);
       yAxisWidth = _calYAxisData.yAxisWidth;
     //濡傛灉鏄剧ずY杞存爣棰�
@@ -5759,6 +6153,7 @@
       };
     }
   }
+
   //璁$畻鍙冲榻愬亸绉昏窛绂�
   if (opts.enableScroll && opts.xAxis.scrollAlign == 'right' && opts._scrollDistance_ === undefined) {
     let offsetLeft = 0,
@@ -5769,18 +6164,17 @@
     let totalWidth = eachSpacing * (xAxisPoints.length - 1);
     let screenWidth = endX - startX;
     offsetLeft = screenWidth - totalWidth;
-    _this.scrollOption = {
-      currentOffset: offsetLeft,
-      startTouchX: offsetLeft,
-      distance: 0,
-      lastMoveTime: 0
-    };
+    _this.scrollOption.currentOffset = offsetLeft;
+    _this.scrollOption.startTouchX = offsetLeft;
+    _this.scrollOption.distance = 0;
+    _this.scrollOption.lastMoveTime = 0;
     opts._scrollDistance_ = offsetLeft;
   }
 
   if (type === 'pie' || type === 'ring' || type === 'rose') {
     config._pieTextMaxLength_ = opts.dataLabel === false ? 0 : getPieTextMaxLength(seriesMA, config, context, opts);
   }
+  
   switch (type) {
     case 'word':
       this.animationInstance = new Animation({
@@ -5802,6 +6196,9 @@
     case 'map':
       context.clearRect(0, 0, opts.width, opts.height);
       drawMapDataPoints(series, opts, config, context);
+      setTimeout(()=>{
+        this.uevent.trigger('renderComplete');
+      },50)
       break;
     case 'funnel':
       this.animationInstance = new Animation({
@@ -5977,6 +6374,37 @@
         }
       });
       break;
+    case 'mount':
+      this.animationInstance = new Animation({
+        timing: opts.timing,
+        duration: duration,
+        onProcess: function onProcess(process) {
+          context.clearRect(0, 0, opts.width, opts.height);
+          if (opts.rotate) {
+            contextRotate(context, opts);
+          }
+          drawYAxisGrid(categories, opts, config, context);
+          drawXAxis(categories, opts, config, context);
+          var _drawMountDataPoints = drawMountDataPoints(series, opts, config, context, process),
+            xAxisPoints = _drawMountDataPoints.xAxisPoints,
+            calPoints = _drawMountDataPoints.calPoints,
+            eachSpacing = _drawMountDataPoints.eachSpacing;
+          opts.chartData.xAxisPoints = xAxisPoints;
+          opts.chartData.calPoints = calPoints;
+          opts.chartData.eachSpacing = eachSpacing;
+          drawYAxis(series, opts, config, context);
+          if (opts.enableMarkLine !== false && process === 1) {
+            drawMarkLine(opts, config, context);
+          }
+          drawLegend(opts.series, opts, config, context, opts.chartData);
+          drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);
+          drawCanvas(opts, context);
+        },
+        onAnimationFinish: function onAnimationFinish() {
+          _this.uevent.trigger('renderComplete');
+        }
+      });
+      break;
     case 'bar':
       this.animationInstance = new Animation({
         timing: opts.timing,
@@ -6040,6 +6468,24 @@
       });
       break;
     case 'ring':
+      this.animationInstance = new Animation({
+        timing: opts.timing,
+        duration: duration,
+        onProcess: function onProcess(process) {
+          context.clearRect(0, 0, opts.width, opts.height);
+          if (opts.rotate) {
+            contextRotate(context, opts);
+          }
+          opts.chartData.pieData = drawPieDataPoints(series, opts, config, context, process);
+          drawLegend(opts.series, opts, config, context, opts.chartData);
+          drawToolTipBridge(opts, config, context, process);
+          drawCanvas(opts, context);
+        },
+        onAnimationFinish: function onAnimationFinish() {
+          _this.uevent.trigger('renderComplete');
+        }
+      });
+      break;
     case 'pie':
       this.animationInstance = new Animation({
         timing: opts.timing,
@@ -6214,6 +6660,7 @@
     showTitle: false,
     disabled: false,
     disableGrid: false,
+    gridSet: 'number',
     splitNumber: 5,
     gridType: 'solid',
     dashLength: 4 * opts.pix,
@@ -6223,6 +6670,7 @@
   }, opts.yAxis);
   opts.xAxis = assign({}, {
     rotateLabel: false,
+    rotateAngle:45,
     disabled: false,
     disableGrid: false,
     splitNumber: 5,
@@ -6257,9 +6705,8 @@
   opts.rotate = opts.rotate ? true : false;
   opts.canvas2d = opts.canvas2d ? true : false;
   
-  let config$$1 = JSON.parse(JSON.stringify(config));
+  let config$$1 = assign({}, config);
   config$$1.color = opts.color ? opts.color : config$$1.color;
-  config$$1.yAxisTitleWidth = opts.yAxis.disabled !== true && opts.yAxis.title ? config$$1.yAxisTitleWidth : 0;
   if (opts.type == 'pie') {
     config$$1.pieChartLinePadding = opts.dataLabel === false ? 0 : opts.extra.pie.labelWidth * opts.pix || config$$1.pieChartLinePadding * opts.pix;
   }
@@ -6270,7 +6717,6 @@
     config$$1.pieChartLinePadding = opts.dataLabel === false ? 0 : opts.extra.rose.labelWidth * opts.pix || config$$1.pieChartLinePadding * opts.pix;
   }
   config$$1.pieChartTextPadding = opts.dataLabel === false ? 0 : config$$1.pieChartTextPadding * opts.pix;
-  config$$1.yAxisSplit = opts.yAxis.splitNumber ? opts.yAxis.splitNumber : config.yAxisSplit;
 
   //灞忓箷鏃嬭浆
   config$$1.rotate = opts.rotate;
@@ -6288,15 +6734,11 @@
   if (opts.enableScroll && opts.xAxis.scrollShow) {
     config$$1.xAxisHeight += 6 * opts.pix;
   }
-  config$$1.xAxisLineHeight = config.xAxisLineHeight * opts.pix;
   config$$1.fontSize = opts.fontSize * opts.pix;
   config$$1.titleFontSize = config.titleFontSize * opts.pix;
   config$$1.subtitleFontSize = config.subtitleFontSize * opts.pix;
   config$$1.toolTipPadding = config.toolTipPadding * opts.pix;
   config$$1.toolTipLineHeight = config.toolTipLineHeight * opts.pix;
-  config$$1.columePadding = config.columePadding * opts.pix;
-  //this.context = opts.context ? opts.context : uni.createCanvasContext(opts.canvasId, opts.$this);
-  //v2.0鐗堟湰鍚庨渶瑕佽嚜琛岃幏鍙朿ontext骞朵紶鍏pts杩涜鍒濆鍖栵紝杩欎箞鍋氭槸涓轰簡纭繚uCharts鍙互璺ㄦ洿澶氱浣跨敤锛屽苟淇濊瘉浜嗚嚜瀹氫箟缁勪欢this瀹炰緥涓嶈寰幆宓屽銆傚鏋滄偍瑙夊緱涓嶄究璇峰彇娑堜笂闈㈡敞閲婏紝閲囩敤v1.0鐗堟湰鐨勬柟寮忎娇鐢紝瀵规缁欐偍甯︽潵鐨勪笉渚挎暚璇疯皡瑙o紒
   if(!opts.context){
     throw new Error('[uCharts] 鏈幏鍙栧埌context锛佹敞鎰忥細v2.0鐗堟湰鍚庯紝闇�瑕佽嚜琛岃幏鍙朿anvas鐨勭粯鍥句笂涓嬫枃骞朵紶鍏pts.context锛�');
   }
@@ -6346,7 +6788,7 @@
   let scrollPosition = data.scrollPosition || 'current';
   switch (scrollPosition) {
     case 'current':
-      //this.opts._scrollDistance_ = this.scrollOption.currentOffset;
+      this.opts._scrollDistance_ = this.scrollOption.currentOffset;
       break;
     case 'left':
       this.opts._scrollDistance_ = 0;
@@ -6412,13 +6854,77 @@
   }
   this.scrollOption = {
     currentOffset: offsetLeft,
-    startTouchX: offsetLeft,
+    startTouchX: 0,
     distance: 0,
     lastMoveTime: 0
   };
+  calValidDistance(this, offsetLeft, this.opts.chartData, this.config, this.opts);
   this.opts._scrollDistance_ = offsetLeft;
   drawCharts.call(this, this.opts.type, this.opts, this.config, this.context);
 };
+
+uCharts.prototype.dobuleZoom = function(e) {
+  if (this.opts.enableScroll !== true) {
+    console.log('[uCharts] 璇峰惎鐢ㄦ粴鍔ㄦ潯鍚庝娇鐢�')
+    return;
+  }
+  const tcs = e.changedTouches;
+  if (tcs.length < 2) {
+    return;
+  }
+  for (var i = 0; i < tcs.length; i++) {
+    tcs[i].x = tcs[i].x ? tcs[i].x : tcs[i].clientX;
+    tcs[i].y = tcs[i].y ? tcs[i].y : tcs[i].clientY;
+  }
+  const ntcs = [getTouches(tcs[0], this.opts, e),getTouches(tcs[1], this.opts, e)]; 
+  const xlength = Math.abs(ntcs[0].x - ntcs[1].x);
+  // 璁板綍鍒濆鐨勪袱鎸囦箣闂寸殑鏁版嵁
+  if(!this.scrollOption.moveCount){
+    let cts0 = {changedTouches:[{x:tcs[0].x,y:this.opts.area[0] / this.opts.pix + 2}]};
+    let cts1 = {changedTouches:[{x:tcs[1].x,y:this.opts.area[0] / this.opts.pix + 2}]};
+    if(this.opts.rotate){
+      cts0 = {changedTouches:[{x:this.opts.height / this.opts.pix - this.opts.area[0] / this.opts.pix - 2,y:tcs[0].y}]};
+      cts1 = {changedTouches:[{x:this.opts.height / this.opts.pix - this.opts.area[0] / this.opts.pix - 2,y:tcs[1].y}]};
+    }
+    const moveCurrent1 = this.getCurrentDataIndex(cts0).index;
+    const moveCurrent2 = this.getCurrentDataIndex(cts1).index;
+    const moveCount = Math.abs(moveCurrent1 - moveCurrent2);
+    this.scrollOption.moveCount = moveCount;
+    this.scrollOption.moveCurrent1 = Math.min(moveCurrent1, moveCurrent2);
+    this.scrollOption.moveCurrent2 = Math.max(moveCurrent1, moveCurrent2);
+    return;
+  }
+  
+  let currentEachSpacing = xlength / this.scrollOption.moveCount;
+  let itemCount = (this.opts.width - this.opts.area[1] - this.opts.area[3]) / currentEachSpacing;
+  itemCount = itemCount <= 2 ? 2 : itemCount;
+  itemCount = itemCount >= this.opts.categories.length ? this.opts.categories.length : itemCount;
+  this.opts.animation = false;
+  this.opts.xAxis.itemCount = itemCount;
+  // 閲嶆柊璁$畻婊氬姩鏉″亸绉昏窛绂�
+  let offsetLeft = 0;
+  let _getXAxisPoints0 = getXAxisPoints(this.opts.categories, this.opts, this.config),
+    xAxisPoints = _getXAxisPoints0.xAxisPoints,
+    startX = _getXAxisPoints0.startX,
+    endX = _getXAxisPoints0.endX,
+    eachSpacing = _getXAxisPoints0.eachSpacing;
+  let currentLeft = eachSpacing * this.scrollOption.moveCurrent1;
+  let screenWidth = endX - startX;
+  let MaxLeft = screenWidth - eachSpacing * (xAxisPoints.length - 1);
+  offsetLeft = -currentLeft+Math.min(ntcs[0].x,ntcs[1].x)-this.opts.area[3]-eachSpacing;
+  if (offsetLeft > 0) {
+    offsetLeft = 0;
+  }
+  if (offsetLeft < MaxLeft) {
+    offsetLeft = MaxLeft;
+  }
+  this.scrollOption.currentOffset= offsetLeft;
+  this.scrollOption.startTouchX= 0;
+  this.scrollOption.distance=0;
+  calValidDistance(this, offsetLeft, this.opts.chartData, this.config, this.opts);
+  this.opts._scrollDistance_ = offsetLeft;
+  drawCharts.call(this, this.opts.type, this.opts, this.config, this.context);
+}
 
 uCharts.prototype.stopAnimation = function() {
   this.animationInstance && this.animationInstance.stop();
@@ -6563,6 +7069,29 @@
         };
       }
     }
+    drawCharts.call(this, opts.type, opts, this.config, this.context);
+  }
+  if (this.opts.type === 'mount') {
+    var index = option.index == undefined ? this.getCurrentDataIndex(e).index : option.index;
+    if (index > -1) {
+      var opts = assign({}, this.opts, {animation: false});
+      var seriesData = assign({}, opts._series_[index]);
+      var textList = [{
+        text: option.formatter ? option.formatter(seriesData, undefined, index, opts) : seriesData.name + ': ' + seriesData.data,
+        color: seriesData.color
+      }];
+      var offset = {
+        x: opts.chartData.calPoints[index].x,
+        y: _touches$.y
+      };
+      opts.tooltip = {
+        textList: option.textList ? option.textList : textList,
+        offset: option.offset !== undefined ? option.offset : offset,
+        option: option,
+        index: index
+      };
+    }
+    
     drawCharts.call(this, opts.type, opts, this.config, this.context);
   }
   if (this.opts.type === 'bar') {
@@ -6767,6 +7296,7 @@
   let currMoveTime = Date.now();
   let duration = currMoveTime - this.scrollOption.lastMoveTime;
   if (duration < Math.floor(1000 / Limit)) return;
+  if (this.scrollOption.startTouchX == 0) return;
   this.scrollOption.lastMoveTime = currMoveTime;
   var touches = null;
   if (e.changedTouches) {
@@ -6798,6 +7328,7 @@
       distance = _scrollOption.distance;
     this.scrollOption.currentOffset = currentOffset + distance;
     this.scrollOption.distance = 0;
+    this.scrollOption.moveCount = 0;
   }
 };
 
diff --git a/Monitor-APP/uni_modules/qiun-data-charts/package.json b/Monitor-APP/uni_modules/qiun-data-charts/package.json
index 22cab8a..ec2799f 100644
--- a/Monitor-APP/uni_modules/qiun-data-charts/package.json
+++ b/Monitor-APP/uni_modules/qiun-data-charts/package.json
@@ -1,8 +1,8 @@
 {
   "id": "qiun-data-charts",
   "displayName": "绉嬩簯 ucharts echarts 楂樻�ц兘璺ㄥ叏绔浘琛ㄧ粍浠�",
-  "version": "2.3.7-20220122",
-  "description": "uCharts v2.3.7鏀寔Vue3锛佸叏鏂板畼鏂瑰浘琛ㄧ粍浠讹紝鏀寔H5鍙夾PP鐢‥Charts娓叉煋鍥捐〃锛寀niapp鍙鍖栭閫夌粍浠�",
+  "version": "2.4.4-20221102",
+  "description": "uCharts 鏂板鍙屾寚缂╂斁銆佹柊澧炲北宄板浘锛佹敮鎸丠5鍙夾PP鐢� ucharts echarts 娓叉煋鍥捐〃锛寀niapp鍙鍖栭閫夌粍浠�",
   "keywords": [
     "ucharts",
     "echarts",
@@ -14,11 +14,7 @@
   "engines": {
     "HBuilderX": "^3.3.8"
   },
-  "dcloudext": {
-    "category": [
-        "鍓嶇缁勪欢",
-        "閫氱敤缁勪欢"
-    ],
+"dcloudext": {
     "sale": {
       "regular": {
         "price": "0.00"
@@ -35,7 +31,8 @@
       "data": "鎻掍欢涓嶉噰闆嗕换浣曟暟鎹�",
       "permissions": "鏃�"
     },
-    "npmurl": ""
+    "npmurl": "https://www.npmjs.com/~qiun",
+    "type": "component-vue"
   },
   "uni_modules": {
     "dependencies": [],
diff --git a/Monitor-APP/uni_modules/qiun-data-charts/readme.md b/Monitor-APP/uni_modules/qiun-data-charts/readme.md
index a389bad..1e99bca 100644
--- a/Monitor-APP/uni_modules/qiun-data-charts/readme.md
+++ b/Monitor-APP/uni_modules/qiun-data-charts/readme.md
@@ -1,453 +1,102 @@
-## [uCharts瀹樻柟缃戠珯](https://www.ucharts.cn)
-## [DEMO婕旂ず鍙婂湪绾跨敓鎴愬伐鍏凤紙v2.0鏂囨。锛塰ttps://demo.ucharts.cn](https://demo.ucharts.cn)
-## [浼樼鐨刵vue鍏ㄧ缁勪欢涓庢ā鐗堝簱nPro](https://ext.dcloud.net.cn/plugin?id=5169)
-## [鍥捐〃缁勪欢鍦ㄩ」鐩腑鐨勫簲鐢� UReport鏁版嵁鎶ヨ〃](https://ext.dcloud.net.cn/plugin?id=4651) 
-## [濡備綍瀹夎銆佹洿鏂� uni_modules 鎻掍欢鐐硅繖閲岋紝蹇呯湅锛屽繀鐪嬶紝蹇呯湅](https://uniapp.dcloud.io/uni_modules?id=%e4%bd%bf%e7%94%a8-uni_modules-%e6%8f%92%e4%bb%b6)
-## 鐐瑰嚮鍙充晶缁胯壊銆愪娇鐢℉BuilderX瀵煎叆鎻掍欢銆戝嵆鍙娇鐢紝绀轰緥椤圭洰璇风偣鍑诲彸渚ц摑鑹叉寜閽�愪娇鐢℉BuilderX瀵煎叆绀轰緥椤圭洰銆戙��
-## 鍒濇浣跨敤涓嶆樉绀洪棶棰樿瑙乕甯歌闂閫夐」鍗(https://demo.ucharts.cn)
-## <font color=#FF0000> 鏂版墜璇峰厛瀹屾暣闃呰銆愬府鍔╂枃妗c�戝強銆愬父瑙侀棶棰樸��3閬嶏紝鍙充晶钃濊壊鎸夐挳銆愮ず渚嬮」鐩�戣鐪�2閬嶏紒 </font> 
-## <font color=#FF0000> 鍏充簬NVUE鍏煎鐨勮鏄庯細 </font> uCharts.js浠�2.3.0寮�濮嬫敮鎸乶uve锛堟殏鏃跺彧鑳介�氳繃鍘熺敓canvas鍐欐硶璋冪敤uCharts锛宯uve鐗堟湰缁勪欢璇疯鐮佷簯绀轰緥椤圭洰[uCharts-demo-nvue](https://gitee.com/uCharts/uCharts)锛夛紝鍥犲叾娓叉煋鏂瑰紡鏄�氳繃nvue鐨刧canvas缁勪欢鏉ユ覆鏌擄紝鐞嗚涓婃�ц兘涓嶅強renderjs鐨剄iun-data-charts缁勪欢鎬ц兘銆傚畼鏂逛粛鐒跺缓璁甆VUE浣跨敤鍥捐〃鐨勯〉闈㈡敼涓簐ue椤甸潰锛屽湪App绔紝浠庢�ц兘鏉ヨ锛岀敱浜庨�氳闃诲鐨勯棶棰橈紝nvue鐨刢anvas鎬ц兘涓嶅彲鑳借揪鍒颁娇鐢╮enderjs鐨剉ue椤甸潰鐨刢anvas銆傚湪App绔紝浠嶇劧鎺ㄨ崘浣跨敤qiun-data-charts缁勪欢銆俒璇﹁uni-app瀹樻柟璇存槑](https://uniapp.dcloud.io/component/canvas?id=canvas)
-
-[![uCharts/uCharts](https://gitee.com/uCharts/uCharts/widgets/widget_card.svg?colors=393222,ebdfc1,fffae5,d8ca9f,393222,a28b40)](https://gitee.com/uCharts/uCharts)
-
-## 绉嬩簯鍥捐〃缁勪欢浣跨敤甯姪
-
-鍏ㄦ柊鍥捐〃缁勪欢锛屽叏绔叏骞冲彴鏀寔锛屽紑绠卞嵆鐢紝鍙�夋嫨uCharts寮曟搸鍏ㄧ娓叉煋锛屼篃鍙寚瀹歅C绔垨APP绔痐鍗曠嫭浣跨敤ECharts`寮曟搸娓叉煋鍥捐〃銆傛敮鎸佹瀬绠�鍗曠殑璋冪敤鏂瑰紡锛屽彧闇�鎸囧畾鍥捐〃绫诲瀷鍙婁紶鍏ョ鍚堟爣鍑嗙殑鍥捐〃鏁版嵁鍗冲彲锛屼娇寮�鍙戣�呭彧闇�涓撴敞涓氬姟鍙婃暟鎹�傚悓鏃朵篃鏀寔datacom缁勪欢璇诲彇uniClinetDB锛屾棤闇�鍏冲績濡備綍鎷兼帴鏁版嵁绛変笉蹇呰鐨勯噸澶嶅伐浣滐紝澶уぇ缂╃煭寮�鍙戞椂闂淬��
-
-## 涓轰綍浣跨敤瀹樻柟灏佽鐨勭粍浠讹紵
-
-灏佽缁勪欢骞朵笉闅撅紝璋侀兘浼氾紝浣嗙粍浠惰皟璇曞嵈鏄竴浠朵护浜烘帀澶村彂鐨勪簨锛屽挨鍏舵槸canvas灏佽鎴愮粍浠朵細甯︽潵涓�绯诲垪闂锛氫緥濡傚皝瑁呭悗涓嶆樉绀猴紝鍥捐〃澶氭鍒濆鍖栧鑷存姈鍔ㄩ棶棰橈紝鍗曢〉闈㈠涓浘琛ㄧ偣鍑讳簨浠堕敊涔憋紝缁勪欢鏀惧湪scroll-view涓棤娉曠偣鍑伙紝鍦ㄥ浘琛ㄤ笂婊戝姩鏃堕〉闈㈡棤娉曟粴鍔ㄧ瓑绛変竴绯诲垪闂銆備负瑙e喅寮�鍙戣�呬娇鐢ㄥ彲瑙嗗寲缁勪欢鐨勫洶鎵帮紝uCharts瀹樻柟鐗规帹鍑哄彲瑙嗗寲閫氱敤缁勪欢锛屾湰缁勪欢鍏峰浠ヤ笅鐗圭偣锛�
-
-- 鏋佺畝鍗曠殑璋冪敤鏂瑰紡锛岄粯璁ら厤缃笅鍙渶瑕佷紶鍏鍥捐〃绫诲瀷`鍙奰鍥捐〃鏁版嵁`鍗冲彲鍏ㄧ鏄剧ず銆�
-- 鎻愪緵寮哄ぇ鐨刞鍦ㄧ嚎閰嶇疆鐢熸垚宸ュ叿`锛屽彲瑙嗗寲涓殑鍙鍖栵紝榧犳爣鐐逛竴鐐瑰氨鍙互鐢熸垚鍥捐〃锛屽彲瑙嗗寲浠庢涓嶅啀闅鹃厤銆�
-- 鍏煎ECharts锛屽彲閫夋嫨`PC绔垨APP绔崟鐙娇鐢‥Charts`寮曟搸娓叉煋鍥捐〃銆�
-- H5鍙夾pp閲囩敤`renderjs`娓叉煋鍥捐〃锛屽姩鐢绘祦鐣呫�佹�ц兘缈诲�嶃��
-- 鏍规嵁鐖跺鍣ㄥ昂瀵竊寮规�ф樉绀哄浘琛╜锛屽啀涔熶笉蹇呬负瀹介珮鍖归厤鍙婂绔�傞厤闂鍙戞剚銆�
-- 鏀寔`鍔犺浇鐘舵�乴oading鍙奺rror灞曠ず`锛岄伩鍏嶆暟鎹鍙栨樉绀虹┖鐧界殑灏村艾銆�
-- chartData`閰嶇疆涓庢暟鎹В鑰锛屽嵆渚夸娇鐢‥Charts寮曟搸涔熶笉蹇呮媴蹇冩嫾鎺ption鐨勫洶鎵般��
-- localdata`鍚庣鏁版嵁鐩存帴娓叉煋`锛屾棤闇�鑷鎷兼帴chartData鐨刢ategories鍙妔eries锛屼粠鍚庣鎷垮洖鐨勬暟鎹畝鍗曞鐞嗗嵆鍙敓鎴愬浘琛ㄣ��
-- 灏忕▼搴忕涓嶅繀鎷呭績鍖呬綋绉繃澶ч棶棰橈紝ECharts寮曟搸灏嗕笉浼氱紪璇戝埌鍚勫皬绋嬪簭绔紝u-charts.js缂栬瘧鍚巂浠呬负93kb`銆�
-- 鏈潵灏嗘敮鎸侀�氳繃HbuilderX鐨刐schema2code鑷姩鐢熸垚鍏ㄧ鍏ㄥ钩鍙板浘琛╙(https://ext.dcloud.net.cn/plugin?id=4684)锛屾暚璇锋湡寰咃紒锛侊紒
-- uCharts瀹樻柟鎷ユ湁4涓�2000浜虹殑QQ缇ゆ敮鎸侊紝搴炲ぇ鐨勭敤鎴烽噺璇佹槑鎴戜滑涓�鐩村湪鍔姏锛屾湰缁勪欢灏嗘寔缁洿鏂帮紝璇峰悇浣嶆斁蹇冧娇鐢紝鎮ㄧ殑瀹濊吹寤鸿鏄垜浠姫鍔涚殑鍔ㄥ姏锛侊紒
 
 
-## 鑷村紑鍙戣��
+## <font color='red'>鍐欑粰uCharts浣跨敤鑰呯殑涓�灏佷俊</font>
+<font color='red'>
+浜茬埍鐨勭敤鎴凤細
 
-鎰熻阿鍚勪綅寮�鍙戣�卄涓夊勾`鏉ュ绉嬩簯鍙妘Charts鐨勬敮鎸侊紝uCharts鐨勮繘姝ョ涓嶅紑鍚勪綅寮�鍙戣�呯殑榧撳姳涓庤础鐚紝涓烘洿濂界殑甯姪鍚勪綅寮�鍙戣�呭湪uni-app鐢熸�佺郴缁熸洿濂界殑搴旂敤鍥捐〃锛寀Charts濮嬬粓鍧氭寔寮�婧愶紝骞舵彁渚涚ぞ缇ゅ府鍔╁紑鍙戣�呰В鍐抽棶棰樸�� 涓虹‘淇濇偍鑳芥洿濂界殑搴旂敤鍥捐〃缁勪欢锛屽缓璁偍鍏坄浠旂粏闃呰鏈〉鏂囨。`浠ュ強uCharts瀹樻柟鏂囨。锛岃�屼笉鏄笅杞戒笅鏉鐩存帴浣跨敤`銆� 濡傞亣鍒伴棶棰樿鍏堥槄璇绘枃妗o紝濡備粛鐒朵笉鑳借В鍐筹紝璇峰姞鍏Q缇ゅ挩璇紝濡傜兢鍙嬪潎涓嶈兘瑙e喅鎴栬�呮偍鏈夌壒娈婇渶姹傦紝璇峰湪缇ゅ唴绉佽亰鎴戯紝鍥犲伐浣滃師鍥狅紝鍥炲涓嶄竴瀹氬緢鍙婃椂锛屾偍鍙洿鎺ヨ闂锛屾湁鏃堕棿涓�瀹氫細鍥炲鎮ㄣ��
+- 鐢变簬鏈�杩戜笂绾跨殑瀹樼綉涓疄琛屼簡閮ㄥ垎鏀惰垂浣撻獙锛屾敹鍒颁簡璁稿鐢ㄦ埛鐨勪娇鐢ㄥ弽棣堬紝澶ц嚧鍙嶉鐨勯棶棰橀兘鎸囧悜鍚屼竴鐭涘ご锛氫负浣曟柊瀹樼綉鐨勫湪绾垮伐鍏蜂篃瑕佹敹璐癸紵瀵逛簬杩欎欢浜嬶紝鎴戜滑娣辫〃姝夋剰銆傜敱浜庢柊瀹樼綉鏈韩鏈彁渚涙妧鏈枃妗o紝浣垮緱鐢ㄦ埛璇互涓烘垜浠鏂囨。瀹炶浜嗘敹璐广�傜粡鎴戜滑杩炲鏁存敼锛屾柊瀹樼綉鐩墠宸茬粡灏嗘妧鏈枃妗e紑鏀惧嚭鏉ヤ緵澶у闃呰浣跨敤锛屽苟鍏嶈垂瀵瑰寮�鏀句簡銆愭紨绀恒�戜腑鐨勬煡鐪嬪叏绔叏骞冲彴鐨勪唬鐮佺殑鍔熻兘锛屼负姝ゅ啀娆″悜鎵�鍙楀奖鍝嶇殑鐢ㄦ埛浠嚧浠ヨ瘹鎭崇殑姝夋剰銆�
 
-uCharts鐨勫紑婧愬浘琛ㄧ粍浠剁殑寮�鍙戯紝浠樺嚭浜嗗ぇ閲忕殑涓汉鏃堕棿涓庣簿鍔涳紝缁忚繃涓ゅ勾鏉ョ殑鑰冮獙锛屼笉浼氭湁姣旇緝鏄庢樉鐨刡ug锛岃鍚勪綅鏀惧績浣跨敤銆備笉姹傛偍5鏄熻瘎浠凤紝涔熶笉姹傛偍璧炶祻锛宍鍙眰鎮ㄥ寮�婧愯础鐚殑鏀寔鎬佸害`锛屾墍浠ワ紝褰撴偍鎯崇粰`1鏄熻瘎浠穈鐨勬椂鍊欙紝绉嬩簯鐪熺殑浼歚鍚唱甯屾湜鎮ㄧ粫璺�岃鈥︹�銆傚鏋滄偍鏈夋洿濂界殑鎯虫硶锛屽彲浠ュ湪`鐮佷簯鎻愪氦Pull Requests`浠ュ府鍔╂洿澶氬紑鍙戣�呭畬鎴愰渶姹傦紝鍐嶆鎰熻阿鍚勪綅瀵箄Charts鐨勯紦鍔变笌鏀寔锛�
+- 鍏舵锛屾垜浠』婢勬竻鍑犵偣锛屽涓嬶細
+1. uCharts鐨勬彃浠舵湰韬伒寰紑婧愬師鍒欙紝骞朵笉鏀惰垂锛岀敤鎴峰彲鑷鍒癉Cloud甯傚満涓嶨itee鐮佷簯涓婅幏鍙栨簮鐮�
+2. uCharts鐨勬妧鏈枃妗f案涔呭鐢ㄦ埛寮�鏀�
+3. 鏀惰垂鍐呭浠呴拡瀵瑰師鐢熷伐鍏枫�佺粍浠跺伐鍏枫�佸畾鍒跺姛鑳戒互鍙婃ā鏉垮競鍦虹殑閮ㄥ垎鏀惰垂妯℃澘
+
+- uCharts涓轰粈涔堝疄琛屾敹璐瑰師鍒欙紵
+1. 鏈嶅姟鍣ㄧ殑璐圭敤鏀拺
+2. 鍥㈤槦鐨勮繍钀ユ敮鍑猴紱姝e浣犳墍瑙侊紝鎴戜滑鐨勭兢閲屾湁澶ч噺鐨勭敤鎴峰湪璇锋暀鍥捐〃閰嶇疆涓庡弽棣堥棶棰橈紝缇ら噷鐨勬瘡涓�浣嶇鐞嗗憳閮藉湪鑺辫垂涓嶅皯绮惧姏鍦ㄧН鏋佽В鍐崇敤鎴风殑闂锛岀劧鑰岄亣鍒板法澶х殑鍜ㄨ閲忔椂锛屾垜浠棤娉曞強鏃躲�佺簿鍑嗚В绛斿洖澶嶏紝鍥犳锛屾垜浠帹鍑轰簡浼氬憳浼樺厛鏈嶅姟
+3. 涓庡叾璇存ā鏉垮競鍦烘槸鏀惰垂锛屽�掍笉濡傝缁欓噹鐢熺敤鎴锋彁渚涗簡鍒涢�犱环鍊肩殑鏈轰細锛岀敤鎴锋棦鍙互鍦ㄤ笂闈㈠彂甯冩ā鏉胯禋鍙栬垂鐢紝閬囧埌蹇冨姩鐨勬ā鏉夸篃鑳藉厤璐�/浠樿垂浣跨敤
+
+- 鏀惰垂涓嶆槸鐩殑锛屾濡備綘浠墍瑙侊紝鐢ㄦ埛鍙互鐢宠鎴愪负[銆愬紑鍙戣�呫�慮(https://www.ucharts.cn/v2/#/agreement/developer)锛屽紑鍙戣�呬笉闄愬埗浠讳綍瀹樼綉鍔熻兘锛屽苟浜湁瀹樻柟鎸囧銆佸紑鍙戙�佹敼閫爑Charts鐨勬潈鍔涳紝骞朵笖娲诲姩鏈熼棿銆愯繑杩樿秴绾т細鍛樿垂鐢ㄣ�戯紒鎴戜滑鎯宠鐨勬槸锛屾垜浠柊鐗堝畼缃戜笂绾挎棬鍦ㄥ笇鏈涙洿澶氱殑鐢ㄦ埛鍔犲叆鍒板紑鍙戣�呯殑闃熶紞锛屾垜浠叡鍚屽幓缁存姢uCharts锛�
+       
+鎴戜滑鐩镐俊锛氭槦鏄熶箣鐏彲浠ョ噹鍘燂紒
+
+uCharts鎶�鏈洟闃�
+
+2022.4.23
+
+</font>
 
 
-## 鍙嬫儏鎺ㄨ崘锛圼https://ext.dcloud.net.cn/plugin?id=7088](https://ext.dcloud.net.cn/plugin?id=7088)锛�
-![鍦ㄨ繖閲屾彃鍏ュ浘鐗囨弿杩癩(https://img-blog.csdnimg.cn/b2782da0ab6d415c98c4de28b0279bd5.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAVHVfTmlhbw==,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
-**鍥鹃笩UI**锛屾槸鍩轰簬uni-app杩涜寮�鍙戠殑UI妗嗘灦锛屾彁渚涗赴瀵岀殑缁勪欢杩涜蹇�熷紑鍙戯紝宸茬粡鏀寔**APP**銆�**H5**銆�**寰俊灏忕▼搴�**锛屽寘鍚叏闈㈢殑UI鍏冪礌銆�60+鍔熻兘缁勪欢銆侀叿鐐嚜瀹氫箟tabbar锛屽苟鎻愪緵涓板瘜濂界湅鐨勫厤璐瑰墠绔ā鏉裤��
+![logo](https://img-blog.csdnimg.cn/4a276226973841468c1be356f8d9438b.png)
 
+
+[![star](https://gitee.com/uCharts/uCharts/badge/star.svg?theme=gvp)](https://gitee.com/uCharts/uCharts/stargazers)
+[![fork](https://gitee.com/uCharts/uCharts/badge/fork.svg?theme=gvp)](https://gitee.com/uCharts/uCharts/members)
+[![License](https://img.shields.io/badge/license-Apache%202-4EB1BA.svg)](https://www.apache.org/licenses/LICENSE-2.0.html)
+[![npm package](https://img.shields.io/npm/v/@qiun/ucharts.svg?style=flat-square)](https://www.npmjs.com/~qiun)
+
+
+## uCharts绠�浠�
+
+`uCharts`鏄竴娆惧熀浜巂canvas API`寮�鍙戠殑閫傜敤浜庢墍鏈夊墠绔簲鐢ㄧ殑鍥捐〃搴擄紝寮�鍙戣�呯紪鍐欎竴濂椾唬鐮侊紝鍙繍琛屽埌 Web銆乮OS銆丄ndroid锛堝熀浜� uni-app / taro 锛夈�佷互鍙婂悇绉嶅皬绋嬪簭锛堝井淇�/鏀粯瀹�/鐧惧害/澶存潯/椋炰功/QQ/蹇墜/閽夐拤/娣樺疂锛夈�佸揩搴旂敤绛夋洿澶氭敮鎸� canvas API 鐨勫钩鍙般��
+
+## 瀹樻柟缃戠珯
+
+## [https://www.ucharts.cn](https://www.ucharts.cn)
 
 ## 蹇�熶綋楠�
 
-涓�濂椾唬鐮佺紪鍒�7涓钩鍙帮紝渚濇鎵弿浜岀淮鐮侊紝浜茶嚜浣撻獙uCharts鍥捐〃璺ㄥ钩鍙版晥鏋滐紒IOS鍥燿emo姣旇緝绠�鍗曟棤娉曚笂鏋讹紝璇疯嚜琛岀紪璇戙��
-![](https://box.kancloud.cn/58092090f2bccc6871ca54dbec268811_654x479.png)
+涓�濂椾唬鐮佺紪鍒板涓钩鍙帮紝渚濇鎵弿浜岀淮鐮侊紝浜茶嚜浣撻獙uCharts鍥捐〃璺ㄥ钩鍙版晥鏋滐紒鍏朵粬骞冲彴璇疯嚜琛岀紪璇戙��
 
-## 蹇�熶笂鎵�
-### <font color=#FF0000> 娉ㄦ剰鍓嶆彁鏉′欢銆愮増鏈姹傦細HBuilderX 3.1.0+銆� </font> 
-- 1銆佹彃浠跺競鍦虹偣鍑诲彸渚х豢鑹叉寜閽�愪娇鐢℉BuilderX瀵煎叆鎻掍欢銆戯紝鎴栬�呫�愪娇鐢℉BuilderX瀵煎叆绀轰緥椤圭洰銆戞煡鐪嬪畬鏁寸ず渚嬪伐绋�
-- 2銆佷緷璧杣niapp鐨剉ue-cli椤圭洰锛氳灏唘ni-modules鐩綍澶嶅埗鍒皊rc鐩綍锛屽嵆src/uni_modules銆傦紙璇峰崌绾niapp渚濊禆涓烘渶鏂扮増鏈級
-- 3銆侀〉闈腑鐩存帴鎸変笅闈㈢敤娉曠洿鎺ヨ皟鐢ㄥ嵆鍙紝鏃犻渶鍦ㄩ〉闈腑娉ㄥ唽缁勪欢qiun-data-charts
-- 4銆佹敞鎰忕埗鍏冪礌class='charts-box'杩欎釜鏍峰紡闇�瑕佹湁瀹介珮
+![](https://www.ucharts.cn/images/web/guide/qrcode20220224.png)
 
-## 鍩烘湰鐢ㄦ硶
+## 鑷村紑鍙戣��
 
-- template浠g爜锛氾紙[寤鸿浣跨敤鍦ㄧ嚎宸ュ叿鐢熸垚](https://demo.ucharts.cn)锛�
+鎰熻阿鍚勪綅寮�鍙戣�卄鍥涘勾`鏉ュ绉嬩簯鍙妘Charts鐨勬敮鎸侊紝uCharts鐨勮繘姝ョ涓嶅紑鍚勪綅寮�鍙戣�呯殑榧撳姳涓庤础鐚�備负鏇村ソ鐨勫府鍔╁悇浣嶅紑鍙戣�呬娇鐢ㄥ浘琛ㄥ伐鍏凤紝鎴戜滑鎺ㄥ嚭浜嗘柊鐗堝畼缃戯紝澧炲姞浜嗗湪绾垮畾鍒躲�侀棶绛旂ぞ鍖恒�佸湪绾块厤缃瓑涓�浜涘鍊兼湇鍔★紝涓虹‘淇濇偍鑳芥洿濂界殑搴旂敤鍥捐〃缁勪欢锛屽缓璁偍鍏坄浠旂粏闃呰鏈〉鎸囧崡`浠ュ強`甯歌闂`锛岃�屼笉鏄笅杞戒笅鏉鐩存帴浣跨敤`銆傚浠嶇劧涓嶈兘瑙e喅锛岃鍒癭瀹樼綉绀惧尯`鎴栧紑閫氫細鍛樺悗鍔犲叆`涓撳睘VIP浼氬憳缇鎻愰棶灏嗕細寰堝揩寰楀埌鍥炵瓟銆�
 
-```
-<view class="charts-box">
-	<qiun-data-charts type="column" :chartData="chartData" />
-</view>
-```
+## 绀剧兢鏀寔
 
-- 鏍囧噯鏁版嵁鏍煎紡1锛氾紙鎶樼嚎鍥俱�佹煴鐘跺浘銆佸尯鍩熷浘绛夐渶瑕乧ategories鐨勭洿瑙掑潗鏍囩郴鍥捐〃绫诲瀷锛�
+uCharts瀹樻柟鎷ユ湁4涓�2000浜虹殑QQ缇ゅ強涓撳睘VIP浼氬憳缇ゆ敮鎸侊紝搴炲ぇ鐨勭敤鎴烽噺璇佹槑鎴戜滑涓�鐩村湪鍔姏锛岃鍚勪綅鏀惧績浣跨敤锛乽Charts鐨勫紑婧愬浘琛ㄧ粍浠剁殑寮�鍙戯紝鍥㈤槦浠樺嚭浜嗗ぇ閲忕殑鏃堕棿涓庣簿鍔涳紝缁忚繃鍥涙潵鐨勮�冮獙锛屼笉浼氭湁姣旇緝鏄庢樉鐨刡ug锛岃鍚勪綅鏀惧績浣跨敤銆傚鏋滄偍鏈夋洿濂界殑鎯虫硶锛屽彲浠ュ湪`鐮佷簯鎻愪氦Pull Requests`浠ュ府鍔╂洿澶氬紑鍙戣�呭畬鎴愰渶姹傦紝鍐嶆鎰熻阿鍚勪綅瀵箄Charts鐨勯紦鍔变笌鏀寔锛�
 
-```
-chartData:{
-  categories: ["2016", "2017", "2018", "2019", "2020", "2021"],
-  series: [{
-    name: "鐩爣鍊�",
-    data: [35, 36, 31, 33, 13, 34]
-  }, {
-    name: "瀹屾垚閲�",
-    data: [18, 27, 21, 24, 6, 28]
-  }]
-}
-```
-
-- 鏍囧噯鏁版嵁鏍煎紡2锛氾紙楗煎浘銆佸渾鐜浘銆佹紡鏂楀浘绛変笉闇�瑕乧ategories鐨勫浘琛ㄧ被鍨嬶級
-
-```
-chartData:{
-  series: [{
-    data: [
-      {
-        name: "涓�鐝�",
-        value: 50
-      }, {
-        name: "浜岀彮",
-        value: 30
-      }, {
-        name: "涓夌彮",
-        value: 20
-      }, {
-        name: "鍥涚彮",
-        value: 18
-      }, {
-        name: "浜旂彮",
-        value: 8
-      }
-    ]
-  }]
-}
-```
-
-娉細鍏朵粬鐗规畩鍥捐〃绫诲瀷锛岃鍙傝�僲ockdata鏂囦欢澶逛笅鐨勬暟鎹牸寮忥紝v2.0鐗堟湰鐨剈Charts宸插吋瀹笶Charts鐨勬暟鎹牸寮忥紝v2.0鐗堟湰浠嶇劧鏀寔v1.0鐗堟湰鐨勬暟鎹牸寮忋��
-
-## localdata鏁版嵁娓叉煋鐢ㄦ硶
-
-- 浣跨敤localdata鏁版嵁鏍煎紡娓叉煋鍥捐〃鐨勪紭鍔匡細鏁版嵁缁撴瀯绠�鍗曪紝鏃犻渶鑷鎷兼帴chartData鐨刢ategories鍙妔eries锛屼粠鍚庣鎷垮洖鐨勬暟鎹畝鍗曞鐞嗗嵆鍙敓鎴愬浘琛ㄣ��
-- localdata鏁版嵁鐨勭己鐐癸細骞朵笉鏄墍鏈夌殑鍥捐〃绫诲瀷鍧囧彲閫氳繃localdata娓叉煋鍥捐〃锛屼緥濡傛贩鍚堝浘锛岀粍浠跺苟涓嶈兘璇嗗埆鍝釜series鍒嗙粍闇�瑕佹覆鏌撴垚鎶樼嚎杩樻槸鏌辩姸鍥撅紝娑夊強鍒板鏉傜殑鍥捐〃锛屼粛闇�瑕佺敱chartData浼犲叆銆�
-
-- template浠g爜锛氾紙[寤鸿浣跨敤鍦ㄧ嚎宸ュ叿鐢熸垚](https://demo.ucharts.cn)锛�
-
-```
-<view class="charts-box">
-	<qiun-data-charts type="column" :localdata="localdata" />
-</view>
-```
-
-
-- 鏍囧噯鏁版嵁鏍煎紡1锛氾紙鎶樼嚎鍥俱�佹煴鐘跺浘銆佸尯鍩熷浘绛夐渶瑕乧ategories鐨勭洿瑙掑潗鏍囩郴鍥捐〃绫诲瀷锛�
-
-鍏朵腑value浠h〃鏁版嵁鐨勬暟鍊硷紝text浠h〃X杞寸殑categories鏁版嵁鐐癸紝group浠h〃series鍒嗙粍鐨勭被鍨嬪悕绉板嵆series[i].name銆�
-
-```
-localdata:[
-  {value:35, text:"2016", group:"鐩爣鍊�"},
-  {value:18, text:"2016", group:"瀹屾垚閲�"},
-  {value:36, text:"2017", group:"鐩爣鍊�"},
-  {value:27, text:"2017", group:"瀹屾垚閲�"},
-  {value:31, text:"2018", group:"鐩爣鍊�"},
-  {value:21, text:"2018", group:"瀹屾垚閲�"},
-  {value:33, text:"2019", group:"鐩爣鍊�"},
-  {value:24, text:"2019", group:"瀹屾垚閲�"},
-  {value:13, text:"2020", group:"鐩爣鍊�"},
-  {value:6, text:"2020", group:"瀹屾垚閲�"},
-  {value:34, text:"2021", group:"鐩爣鍊�"},
-  {value:28, text:"2021", group:"瀹屾垚閲�"}
-]
-```
-
-- 鏍囧噯鏁版嵁鏍煎紡2锛氾紙楗煎浘銆佸渾鐜浘銆佹紡鏂楀浘绛変笉闇�瑕乧ategories鐨勫浘琛ㄧ被鍨嬶級
-
-鍏朵腑value浠h〃鏁版嵁鐨勬暟鍊硷紝text浠h〃value鏁板�煎搴旂殑鎻忚堪銆�
-
-```
-localdata:[
-  {value:50, text:"涓�鐝�"},
-  {value:30, text:"浜岀彮"},
-  {value:20, text:"涓夌彮"},
-  {value:18, text:"鍥涚彮"},
-  {value:8, text:"浜旂彮"},
-]
-```
-
-- 娉ㄦ剰锛宭ocaldata鐨勬暟鎹牸寮忓繀闇�瑕佺鍚坉atacom缁勪欢瑙勮寖[銆愯瑙乨atacom缁勪欢銆慮(https://uniapp.dcloud.io/component/datacom?id=mixindatacom)銆�
-
-## 杩涢樁鐢ㄦ硶璇诲彇uniCloud鏁版嵁搴撳苟娓叉煋鍥捐〃
-
-- 缁勪欢鍩轰簬uniCloud鐨刐clientDB](https://uniapp.dcloud.net.cn/uniCloud/clientdb)鎶�鏈紝鏃犻渶浜戝嚱鏁帮紝鍦ㄥ墠绔鏁版嵁搴撻�氳繃where鏌ヨ鏉′欢鍙奼roup鍜宑ount缁熻鍗冲彲娓叉煋鍥捐〃銆�
-- 鍏蜂綋鍙弬鑰�/pages/unicloud/unicloud.vue涓殑demo渚嬪瓙锛屼娇鐢ㄥ墠锛岃鍏堝叧鑱斾簯鏈嶅姟绌洪棿锛岀劧鍚庡湪uniCloud/database/db_init.json鏂囦欢涓婄偣鍙抽敭锛屽垵濮嬪寲浜戞暟鎹簱锛屽綋鎺у埗鍙版樉绀衡�滃垵濮嬪寲浜戞暟鎹簱瀹屾垚鈥濆嵆瀹屾垚绀轰緥鏁版嵁鐨勫鍏ワ紝涔嬪悗鏂瑰彲杩愯uniCloud鐨刣emo銆�
-
-- template浠g爜锛�
-
-```
-<qiun-data-charts
-  type="line"
-  :chartData="demoData"
-  collection="uni-id-users"
-  field="register_date,status"
-  :where="'publish_date >= ' + new Date(startDate).getTime() + ' && publish_date <= ' + new Date(endDate).getTime()"
-  groupby="dateToString(add(new Date(0),register_date),'%Y-%m-%d','+0800') as text,status as group"
-  group-field="count(*) as value"
-/>
-```
-
-- 娉ㄦ剰锛屼粠uniCloud璇诲彇鍑虹殑鏁版嵁锛岄渶瑕佺鍚坙ocaldata鐨勬爣鍑嗙粨鏋滄暟鎹牸寮忥紙鍙傝�冧笂閮ㄥ垎localdata锛夛紝骞堕渶瑕佹妸杈撳嚭鐨勫瓧娈礱s鎴愯瀹氱殑鍒悕锛坴alue銆乼ext銆乬roup锛夈��
-
-
-## 绀轰緥鏂囦欢鍦板潃锛�
-
-### <font color=#FF0000> 寮虹儓寤鸿鍏堢湅鏈〉甯姪锛屽啀鐪嬩笅闈㈢ず渚嬫枃浠舵簮鐮侊紒</font>
-
-```
-/pages/ucharts/ucharts.vue锛堝睍绀虹敤uCharts鍏ㄧ杩愯鐨勪緥瀛愶級
-
-/pages/echarts/echarts.vue锛堝睍绀篐5鍜孉pp鐢‥Charts锛屽皬绋嬪簭绔敤uCharts鐨勪緥瀛愶級
-
-/pages/unicloud/unicloud.vue锛堝睍绀鸿鍙杣niCloud鏁版嵁搴撳悗鐩存帴娓叉煋鍥捐〃鐨勪緥瀛愶級
-
-/pages/updata/updata.vue锛堝睍绀哄姩鎬佹洿鏂板浘琛ㄦ暟鎹殑渚嬪瓙锛�
-
-/pages/other/other.vue锛堝睍绀哄浘琛ㄤ氦浜掔殑渚嬪瓙锛氬姩鎬佹洿鏂板浘琛ㄦ暟鎹紝娓叉煋瀹屾垚浜嬩欢锛岃幏鍙栫偣鍑荤储寮曪紝鑷畾涔塼ooltip锛屽浘琛ㄤ繚瀛樹负鍥剧墖锛屽己鍒跺睍绀洪敊璇俊鎭瓑锛�
-
-/pages/format-u/format-u.vue锛堝睍绀簎Charts鐨刦ormatter鐢ㄦ硶鐨勪緥瀛愶級
-
-/pages/format-e/format-e.vue锛堝睍绀篍Charts鐨刦ormatter鐢ㄦ硶鐨勪緥瀛愶級
-
-/pages/tab/tab.vue锛堝睍绀哄啀tab閫夐」鍗′腑鐢ㄦ硶鐨勪緥瀛愶紝鍗崇埗瀹瑰櫒閲囩敤v-show鎴杤-if鏃堕渶瑕佹敞鎰忕殑闂锛�
-
-/pages/layout/layout.vue锛堝睍绀虹壒娈婂竷灞�鐢ㄦ硶鐨勪緥瀛愶細swiper銆乻croll-view銆佺粷瀵瑰畾浣嶇瓑甯冨眬锛�
-
-/pages/canvas/canvas.vue锛堝睍绀簎Charts v2.0鐗堟湰鍘熺敓js鐢ㄦ硶鐨勪緥瀛愶級
-
-```
-
-
-## 缁勪欢鍩烘湰API鍙傛暟
-
-|灞炴�у悕|绫诲瀷|榛樿鍊紎蹇呭~|璇存槑|
-| -- | -- | -- | -- | -- |
-|type|String|null|`鏄痐|鍥捐〃绫诲瀷锛屽鍏ㄧ鐢╱Charts锛屽彲閫夊�间负pie銆乺ing銆乺ose銆亀ord銆乫unnel銆乵ap銆乤rcbar銆乴ine銆乧olumn銆乥ar銆乤rea銆乺adar銆乬auge銆乧andle銆乵ix銆乼line銆乼area銆乻catter銆乥ubble <font color=#FF0000>锛堟偍涔熷彲浠ユ牴鎹渶姹傝嚜瀹氫箟鏂板浘琛ㄧ被鍨嬶紝闇�瑕佸湪config-ucharts.js鎴朿onfig-echarts.js鍐呮坊鍔狅紝鍙弬鑰僣onfig-ucharts.js鍐呯殑"demotype"绫诲瀷锛�</font>|
-|chartData|Object|瑙佽鏄巪`鏄痐|鍥捐〃鏁版嵁锛屽父鐢ㄧ殑鏍囧噯鏁版嵁鏍煎紡涓簕categories: [],series: []}锛岃鎸変笉鍚屽浘琛ㄧ被鍨嬩紶鍏ュ搴旂殑鏍囧噯鏁版嵁銆倈
-|localdata|Array|[]|`鏄痐|鍥捐〃鏁版嵁锛屽鏋滄偍瑙夊緱鎷兼帴涓婇潰chartData姣旇緝绻佺悙锛屽彲浠ラ�氳繃浣跨敤localdata娓叉煋锛岀粍浠朵細鏍规嵁浼犲叆鐨則ype绫诲瀷锛岃嚜鍔ㄦ嫾鎺ategories鎴杝eries鏁版嵁锛堜娇鐢╨ocaldata灏变笉蹇呭啀浼犲叆chartData锛岃瑙� /pages/other/other.vue 涓娇鐢╨ocaldata娓叉煋鍥捐〃鐨勪緥瀛愶級銆傘�恖ocaldata鍜宑ollection锛坲niCloud鏁版嵁搴擄級鍚屾椂瀛樺湪锛屼紭鍏堜娇鐢╨ocaldata锛涘鏋渓ocaldata鍜宑hartData鍚屾椂瀛樺湪锛屼紭鍏堜娇鐢╟hartData銆�<font color=#FF0000> 鍗砪hartData>localdata>collection鐨勪紭鍏堢骇</font>娓叉煋鍥捐〃銆戙�倈
-|opts|Object|{}|鍚uCharts鍥捐〃閰嶇疆鍙傛暟(option)锛岃鍙傝�僛銆愬湪绾跨敓鎴愬伐鍏枫�慮(https://demo.ucharts.cn)<font color=#FF0000>娉細浼犲叆鐨刼pts浼氳鐩栭粯璁onfig-ucharts.js涓殑閰嶇疆锛屽彧闇�浼犲叆涓巆onfig-ucharts.js涓睘鎬т笉涓�鑷寸殑opts鍗冲彲瀹炵幇銆愬悓绫诲瀷鐨勫浘琛ㄦ樉绀轰笉鍚岀殑鏍峰紡銆戙��</font>|
-|eopts|Object|{}|鍚ECharts鍥捐〃閰嶇疆鍙傛暟(option)锛岃鍙傝�僛銆怑Charts閰嶇疆鎵嬪唽銆慮(https://echarts.apache.org/zh/option.html)浼犲叆eopts銆�<font color=#FF0000>娉細1銆佷紶鍏ョ殑eopts浼氳鐩栭粯璁onfig-echarts.js涓殑閰嶇疆锛屼互瀹炵幇鍚岀被鍨嬬殑鍥捐〃鏄剧ず涓嶅悓鐨勬牱寮忋��2銆乪opts涓嶈兘浼犻�抐unction锛屽鏋渙ption閰嶇疆鍙傛暟闇�瑕乫unction锛岃灏唎ption鍐欏湪config-echarts.js涓嵆鍙疄鐜般��</font>|
-|loadingType|Number|2|鍚鍔犺浇鍔ㄧ敾鏍峰紡锛�0涓轰笉鏄剧ず鍔犺浇鍔ㄧ敾锛�1-5涓轰笉鍚岀殑鏍峰紡锛岃涓嬮潰绀轰緥銆倈
-|errorShow|Boolean|true|鍚鏄惁鍦ㄩ〉闈笂鏄剧ず閿欒鎻愮ず锛宼rue涓烘樉绀洪敊璇彁绀哄浘鐗囷紝false鏃朵細鏄剧ず绌虹櫧鍖哄煙|
-|errorReload|Boolean|true|鍚鏄惁鍚敤鐐瑰嚮閿欒鎻愮ず鍥捐〃閲嶆柊鍔犺浇锛宼rue涓哄厑璁哥偣鍑婚噸鏂板姞杞斤紝false涓虹鐢ㄧ偣鍑婚噸鏂板姞杞戒簨浠秥
-|errorMessage|String|null|鍚鑷畾涔夐敊璇俊鎭紝寮哄埗鏄剧ず閿欒鍥剧墖鍙婇敊璇俊鎭紝褰撲笂闈rrorShow涓簍rue鏃跺彲鐢ㄣ�傦紙缁勪欢浼氱洃鍚灞炴�х殑鍙樺寲锛屽彧瑕佹湁鍙樺寲锛屽氨浼氬己鍒舵樉绀洪敊璇俊鎭紒锛夈�傝鏄庯細1銆佷竴鑸敤浜庨〉闈㈢綉缁滀笉濂芥垨鍏朵粬鎯呭喌瀵艰嚧鍥捐〃loading鍔ㄧ敾涓�鐩存樉绀猴紝鍙互浼犱换鎰�(涓嶄负null鎴栬��"null"鎴栬�呯┖"")瀛楃涓插己鍒舵樉绀洪敊璇浘鐗囧強璇存槑銆�2銆佸鏋滅粍浠朵娇鐢ㄤ簡data-come灞炴�ц鍙杣niCloud鏁版嵁锛岀粍浠朵細鑷姩鍒ゆ柇閿欒鐘舵�佸苟灞曠ず閿欒鍥炬爣锛屼笉蹇呬娇鐢ㄦ鍔熻兘銆�3銆佸綋鐘舵�佷粠闈瀗ull鏀瑰彉涓簄ull鎴栬�呯┖鏃讹紝浼氬己鍒惰皟鐢╮eload閲嶆柊鍔犺浇骞舵覆鏌撳浘琛ㄦ暟鎹�倈
-|echartsH5|Boolean|false|鍚鏄惁鍦℉5绔娇鐢‥Charts寮曟搸娓叉煋鍥捐〃|
-|directory|String|'/'|鍚浜岀骇鐩綍鍚嶇О锛屽鏋滃紑鍚笂闈chartsH5鍗矵5绔敤ECharts寮曟搸娓叉煋鍥捐〃锛屽苟涓旈」鐩湭鍙戝竷鍦╳ebsite鏍圭洰褰曪紝闇�瑕佸~鍐欐椤归厤缃�備緥濡備簩绾х洰褰曟槸h5锛屽垯闇�瑕佸~鍐檂/h5/`锛屽乏鍙充袱渚ч渶瑕佸甫`/`锛屽彂甯冨埌涓夌骇鎴栨洿澶氬眰鐩綍绀轰緥`/web/v2/h5/`|
-|echartsApp|Boolean|false|鍚鏄惁鍦ˋPP绔娇鐢‥Charts寮曟搸娓叉煋鍥捐〃|
-|canvasId|String|瑙佽鏄巪鍚榛樿鐢熸垚32浣嶉殢鏈哄瓧绗︿覆銆傚鏋滄寚瀹歝anvasId锛屽彲鏂逛究鍚庨潰璋冪敤鎸囧畾鍥捐〃瀹炰緥锛屽惁鍒欓渶瑕侀�氳繃娓叉煋瀹屾垚浜嬩欢鑾峰彇鑷姩鐢熸垚闅忔満鐨刢anvasId|
-|canvas2d|Boolean|false|鍚鏄惁寮�鍚痗anvas2d妯″紡锛岀敤浜庤В鍐冲井淇″皬绋嬪簭灞傜骇杩囬珮闂锛屼粎寰俊灏忕▼搴忕鍙敤锛屽叾浠栫浼氬己鍒跺叧闂璫anvas2d妯″紡銆�<font color=#FF0000>娉細寮�鍚痗anvas2d妯″紡锛屽繀椤昏浼犲叆涓婇潰鐨刢anvasId锛堥殢鏈哄瓧绗︿覆锛屼笉鑳芥槸鍔ㄦ�佺粦瀹氱殑鍊硷紝涓嶈兘鏄暟瀛楋級锛屽惁鍒欏井淇″皬绋嬪簭鍙兘浼氳幏鍙栦笉鍒癲om瀵艰嚧鏃犳硶娓叉煋鍥捐〃锛�**寮�鍚悗锛屽紑鍙戣�呭伐鍏锋樉绀轰笉姝e父锛岄瑙堟甯革紙涓嶈兘鈥滅湡鏈鸿皟璇曗��,涓嶈兘鈥滅湡鏈鸿皟璇曗��,涓嶈兘鈥滅湡鏈鸿皟璇曗�濓級**</font>|
-|background|String|none|鍚鑳屾櫙棰滆壊锛岄粯璁ら�忔槑none锛屽彲閫塩ss鐨�16杩涘埗color鍊硷紝濡�#FFFFFF|
-|animation|Boolean|true|鍚鏄惁寮�鍚浘琛ㄥ姩鐢绘晥鏋渱
-|inScrollView|Boolean|false|鍚鍥捐〃缁勪欢鏄惁鍦╯croll-view涓紝濡傛灉鍦ㄨ浼爐rue锛屽惁鍒欎細鍑虹幇鐐瑰嚮浜嬩欢鍧愭爣涓嶅噯纭殑鐜拌薄|
-|pageScrollTop|Number|0|鍚濡傛灉鍥捐〃缁勪欢鏄湪scroll-view涓紝骞朵笖鏁翠釜椤甸潰杩樺瓨鍦ㄦ粴鍔ㄦ潯锛岃繖涓�煎簲涓虹粦瀹氫负椤甸潰婊氬姩鏉℃粴鍔ㄧ殑璺濈锛屽惁鍒欎細鍑虹幇鐐瑰嚮浜嬩欢鍧愭爣涓嶅噯纭殑鐜拌薄|
-|reshow|Boolean|false|鍚寮哄埗閲嶆柊娓叉煋灞炴�э紝濡傛灉鍥捐〃缁勪欢鐖剁骇鐢╲-show鍖呰9锛屽垵濮嬪寲鐨勬椂鍊欎細鑾峰彇涓嶅埌鍏冪礌鐨勫楂樺�硷紝瀵艰嚧娓叉煋澶辫触锛屾鏃堕渶瑕佹妸鐖跺厓绱犵殑v-show鏂规硶澶嶅埗鍒皉eshow涓紝缁勪欢妫�娴嬪埌reshow鍊煎彉鍖栧苟涓斾负true鐨勬椂鍊欎細寮哄埗閲嶆柊娓叉煋|
-|reload|Boolean|false|鍚寮哄埗閲嶆柊鍔犺浇灞炴�э紝涓庝笂闈㈢殑reshow鍖哄埆鍦ㄤ簬锛�1銆乺eload浼氶噸鏂版樉绀簂oading鍔ㄧ敾锛�2銆佸鏋滅粍浠剁粦瀹氫簡uniCloud鏁版嵁鏌ヨ锛岄�氳繃reload浼氶噸鏂版墽琛孲QL璇彞鏌ヨ锛岄噸鏂拌姹傜綉缁溿�傝�宺eshow鍒欎笉浼氭樉绀簂oading鍔ㄧ敾锛屽彧鏄簲鐢ㄧ幇鏈夌殑chartData鏁版嵁杩涜閲嶆柊娓叉煋|
-|disableScroll|Boolean|false|鍚褰撳湪canvas涓Щ鍔ㄦ椂锛屼笖鏈夌粦瀹氭墜鍔夸簨浠舵椂锛岀姝㈠睆骞曟粴鍔ㄤ互鍙婁笅鎷夊埛鏂帮紙璧嬪�间负true鏃讹紝鍦ㄥ浘琛ㄥ尯鍩熷唴鏃犳硶鎷栧姩椤甸潰婊氬姩锛墊
-|tooltipShow|Boolean|true|鍚鐐瑰嚮鎴栬�呴紶鏍囩粡杩囧浘琛ㄦ椂锛屾槸鍚︽樉绀簍ooltip鎻愮ず绐楋紝榛樿鏄剧ず|
-|tooltipFormat|String|undefined|鍚鑷畾涔夋牸寮忓寲Tooltip鏄剧ず鍐呭锛岃瑙佷笅闈€�恡ooltipFormat鏍煎紡鍖栥�憒
-|tooltipCustom|Object|undefined|鍚锛堜粎uCharts锛夊鏋滀互涓婄郴缁熻嚜甯︾殑Tooltip鏍煎紡鍖栨柟妗堜粛鐒朵笉婊¤冻鎮紝鎮ㄥ彲浠ョ敤姝ゅ睘鎬у疄鐜版洿澶氶渶姹傦紝璇﹁涓嬮潰銆恡ooltipCustom鑷畾涔夈�憒
-|startDate|String|undefined|鍚闇�涓烘爣鍑嗘椂闂存牸寮忥紝渚嬪"2021-02-14"銆傜敤浜庨厤鍚坲niClinetDB鑷姩鐢熸垚categories浣跨敤|
-|endDate|String|undefined|鍚闇�涓烘爣鍑嗘椂闂存牸寮忥紝渚嬪"2021-03-31"銆傜敤浜庨厤鍚坲niClinetDB鑷姩鐢熸垚categories浣跨敤|
-|groupEnum|Array|[]|鍚褰撲娇鐢ㄥ埌uniCloud鏁版嵁搴撴椂锛実roup瀛楁灞炴�у鏋滈亣鍒扮粺璁℃灇涓惧睘鎬х殑瀛楁锛岄渶瑕侀�氳繃灏咲B Schema涓殑enum鐨勬弿杩板畾涔夋寚娲剧粰璇ュ睘鎬э紝鍏蜂綋鏍煎紡涓篬{value: 1,text: "鐢�"},{value: 2,text: "濂�"}]|
-|textEnum|Array|[]|鍚褰撲娇鐢ㄥ埌uniCloud鏁版嵁搴撴椂锛宼ext瀛楁灞炴�у鏋滈亣鍒扮粺璁℃灇涓惧睘鎬х殑瀛楁锛岄渶瑕侀�氳繃灏咲B Schema涓殑enum鐨勬弿杩板畾涔夋寚娲剧粰璇ュ睘鎬э紝鍏蜂綋鏍煎紡涓篬{value: 1,text: "鐢�"},{value: 2,text: "濂�"}]|
-|ontap|Boolean|true|鍚鏄惁鐩戝惉@tap@cilck浜嬩欢锛岀鐢ㄥ悗涓嶄細瑙﹀彂缁勪欢鐐瑰嚮浜嬩欢|
-|ontouch|Boolean|false|鍚锛堜粎uCharts锛夋槸鍚︾洃鍚珸touchstart@touchmove@touchend浜嬩欢锛堣祴鍊间负true鏃讹紝闈濸C绔湪鍥捐〃鍖哄煙鍐呮棤娉曟嫋鍔ㄩ〉闈㈡粴鍔級|
-|onmouse|Boolean|true|鍚鏄惁鐩戝惉@mousedown@mousemove@mouseup浜嬩欢锛岀鐢ㄥ悗榧犳爣缁忚繃鍥捐〃涓婃柟涓嶄細鏄剧ずtooltip|
-|on movetip|Boolean|false|鍚锛堜粎uCharts锛夋槸鍚﹀紑鍚窡鎵嬫樉绀簍ooltip鍔熻兘锛堝墠鎻愭潯浠讹紝1銆侀渶瑕佸紑鍚痶ouch鍔熻兘锛屽嵆:ontouch="true"锛�2銆佸苟涓攐pts.enableScroll=false鍗冲叧闂浘琛ㄧ殑婊氬姩鏉″姛鑳斤級锛堝缓璁井淇″皬绋嬪簭寮�鍚痗anvas2d鍔熻兘锛屽惁鍒欏師鐢焎anvas缁勪欢浼氬緢鍗★級|
-|tapLegend|Boolean|true|鍚锛堜粎uCharts锛夋槸鍚﹀紑鍚浘渚嬬偣鍑讳氦浜掍簨浠� |
-
-## 缁勪欢浜嬩欢鍙婃柟娉�
-
-|浜嬩欢鍚峾璇存槑|
-| --| --|
-|@complete|鍥捐〃娓叉煋瀹屾垚浜嬩欢锛屾覆鏌撳畬鎴愪細杩斿洖鍥捐〃瀹炰緥{complete: true, id:"xxxxx"(canvasId), type:"complete"}銆傚彲浠ュ紩鍏onfig-ucharts.js/config-echarts.js鏉ユ牴鎹繑鍥炵殑id锛岃皟鐢╱Charts鎴栬�匛Charts瀹炰緥鐨勭浉鍏虫柟娉曪紝璇﹁other.vue鍏朵粬鍥捐〃楂樼骇搴旂敤銆倈
-|@getIndex|鑾峰彇鐐瑰嚮鏁版嵁绱㈠紩锛岀偣鍑诲悗杩斿洖鍥捐〃绱㈠紩currentIndex锛屽浘渚嬬储寮曪紙浠卽Charts锛塴egendIndex锛岀瓑淇℃伅銆傝繑鍥炴暟鎹細{type: "getIndex", currentIndex: 3, legendIndex: -1, id:"xxxxx"(canvasId), event: {x: 100, y: 100}锛堢偣鍑诲潗鏍囧�硷級}|
-|@error|褰撶粍浠跺彂鐢熼敊璇椂浼氳Е鍙戣浜嬩欢銆傝繑鍥炴暟鎹細杩斿洖鏁版嵁锛歿type:"error",errorShow:true/false(缁勪欢props涓殑errorShow鐘舵�佸��) , msg:"閿欒娑堟伅xxxx", id: "xxxxx"(canvasId)}|
-|@getTouchStart|锛堜粎uCharts锛夋嫋鍔ㄥ紑濮嬬洃鍚簨浠躲�傝繑鍥炴暟鎹細{type:"touchStart",event:{x: 100, y: 100}锛堢偣鍑诲潗鏍囧�硷級,id:"xxxxx"(canvasId)}|
-|@getTouchMove|锛堜粎uCharts锛夋嫋鍔ㄤ腑鐩戝惉浜嬩欢銆傝繑鍥炴暟鎹細{type:"touchMove",event:{x: 100, y: 100}锛堢偣鍑诲潗鏍囧�硷級,id:"xxxxx"(canvasId)}|
-|@getTouchEnd|锛堜粎uCharts锛夋嫋鍔ㄧ粨鏉熺洃鍚簨浠躲�傝繑鍥炴暟鎹細{type:"touchEnd",event:{x: 100, y: 100}锛堢偣鍑诲潗鏍囧�硷級,id:"xxxxx"(canvasId)}|
-|@scrollLeft|锛堜粎uCharts锛夊紑鍚粴鍔ㄦ潯鍚庯紝婊氬姩鏉″埌鏈�宸︿晶瑙﹀彂鐨勪簨浠讹紝鐢ㄤ簬鍔ㄦ�佹墦鐐癸紝闇�瑕佽嚜琛岀紪鍐欓槻鎶栨柟娉曘�傝繑鍥炴暟鎹細{type:"scrollLeft", scrollLeft: true, id: "xxxxx"(canvasId)}|
-|@scrollRight|锛堜粎uCharts锛夊紑鍚粴鍔ㄦ潯鍚庯紝婊氬姩鏉″埌鏈�鍙充晶瑙﹀彂鐨勪簨浠讹紝鐢ㄤ簬鍔ㄦ�佹墦鐐癸紝闇�瑕佽嚜琛岀紪鍐欓槻鎶栨柟娉曘�傝繑鍥炴暟鎹細杩斿洖鏁版嵁锛歿type:"scrollRight", scrollRight: true, id: "xxxxx"(canvasId)}|
-
-## tooltipFormat鏍煎紡鍖栵紙uCharts鍜孍Charts锛�
-
-tooltipFormat绫诲瀷涓簊tring瀛楃涓茬被鍨嬶紝闇�瑕佹寚瀹歝onfig-ucharts.js/config-echarts.js涓璮ormatter涓嬬殑灞炴�у�笺�傚洜鍚勫皬绋嬪簭鍙奱pp绔�氳繃缁勪欢鍧囦笉鑳戒紶閫抐unction绫诲瀷鍙傛暟锛屽洜姝よ鍏堝湪config-ucharts.js/config-echarts.js鍐呭畾涔夋偍鎯虫牸寮忓寲鐨勬暟鎹紝鐒跺悗鍦ㄨ繖閲屼紶鍏ormatter涓嬬殑key鍊硷紝缁勪欢浼氳嚜鍔ㄥ尮閰嶄笌鍏跺搴旂殑function銆傚涓嶅畾涔夎灞炴�э紝缁勪欢浼氳皟鐢ㄩ粯璁ょ殑tooltip鏂规锛屾爣鍑嗙殑tooltipFormat浣跨敤濮垮娍濡備笅锛�
-
-```
-<qiun-data-charts
-  type="column"
-  :chartData="chartData"
-  tooltipFormat="tooltipDemo1"
-鈦�>
-==================
-config-ucharts.js
-formatter:{
-  tooltipDemo1:function(item, category, index, opts){return item.data+'澶�'}
-}
-==================
-config-echarts.js
-formatter:{
-  tooltipDemo1:function(){
-    
-  }
-}
-```
-
-娉ㄦ剰锛宑onfig-ucharts.js鍐呯殑formatter涓嬬殑function闇�瑕佹惡甯�(item, category, index, opts)鍙傛暟锛岃繖4涓弬鏁伴兘鏄痷Charts瀹炰緥鍐呬紶閫掕繃鏉ョ殑鏁版嵁锛屽叿浣撳畾涔夊涓嬶細
-
-|灞炴�у悕|璇存槑|
-| -- | -- |
-|item|缁勪欢鍐呰绠楀ソ鐨勫綋鍓嶇偣浣嶇殑series[index]鏁版嵁锛屽叾灞炴�ф湁data(缁ф壙series[index].format灞炴��),color,type,style,pointShape,disableLegend,name,show|
-|category|褰撳墠鐐逛綅鐨刋杞碿ategories[index]鍒嗙被鍚嶇О锛堝鏋滃浘琛ㄧ被鍨嬫病鏈塩ategory锛屽叾鍊煎垯涓簎ndefined锛墊
-|index|褰撳墠鐐逛綅鐨勭储寮曞�紎
-|opts|鍏ㄩ儴uCharts鐨刼pts閰嶇疆锛屽寘鍚玞ategories銆乻eries绛変竴鍒囦綘闇�瑕佺殑閮藉湪閲岄潰锛屽彲浠ユ牴鎹甶ndex绱㈠紩鍊艰幏鍙栧叾浠栫浉鍏虫暟鎹�傛偍鍙互鍦ㄦ覆鏌撳畬鎴愬悗鎵撳嵃涓�涓媜pts锛岀湅鐪嬮噷闈㈤兘鏈変粈涔堬紝涔熷彲浠ヨ嚜瀹氫箟涓�浜涗綘闇�瑕佺殑鎸傝浇鍒皁pts涓婏紝杩欐牱灏卞彲浠ユ牴鎹渶姹傛洿鏂逛究鐨勬樉绀鸿嚜瀹氫箟鍐呭浜嗐�倈
-
-## tooltipCustom鑷畾涔夛紙浠卽Charts锛�
-
-涓婇潰浠呬粎灞曠ず浜員ooltip鐨勮嚜瀹氫箟鏍煎紡鍖栵紝濡傛灉浠嶇劧浠嶇劧杩樹笉鑳借繕涓嶈兘婊¤冻鎮ㄧ殑闇�姹傦紝鍙兘鐪嬭繖閲岀殑鏂规硶浜嗐�倀ooltipCustom鍙互鑷畾涔夊湪浠讳綍浣嶇疆鏄剧ず浠讳綍鍐呭鐨勬枃鏈紝褰撶劧tooltipCustom鍙互鍜宼ooltipFormat鏍煎紡鍖栧悓鏃朵娇鐢ㄤ互杈惧埌鏇村涓嶅悓鐨勯渶姹傦紝涓嬮潰灞曠ず浜唗ooltip鍥哄畾浣嶇疆鏄剧ず鐨勬柟娉曪細
-
-```
-<qiun-data-charts 
-	type="column" 
-	:chartData="chartData" 
-	:tooltipCustom="{x:10,y:10}"
-/>
-```
-
-tooltipCustom灞炴�у涓嬶細
-
-|灞炴�у悕|绫诲瀷|榛樿鍊紎璇存槑|
-| -- | -- | -- | -- |
-|x|Number|undefined|tooltip宸︿笂瑙掔浉瀵逛簬鐢诲竷鐨刋鍧愭爣|
-|y|Number|undefined|tooltip宸︿笂瑙掔浉瀵逛簬鐢诲竷鐨刌鍧愭爣|
-|index|Number|undefined|鐩稿浜巗eries鎴栬�卌ategories涓殑绱㈠紩鍊笺�傚綋娌℃湁瀹氫箟index鎴栬�卛ndex瀹氫箟涓簎ndefined鐨勬椂鍊欙紝缁勪欢浼氳嚜鍔ㄨ幏鍙栧綋鍓嶇偣鍑荤殑绱㈠紩锛屽苟鏍规嵁涓婇潰鐨剎y浣嶇疆缁樺埗tooltip鎻愮ず妗嗐�傚鏋滀负0鍙婁互涓婄殑鏁板瓧鏃讹紝浼氭牴鎹偍浼犵殑绱㈠紩鑷姩璁$畻x杞存柟鍚戠殑鍋忕Щ閲忥紙浠呯洿瑙掑潗鏍囩郴鏈夋晥锛墊
-|textList|Array.Object|undefined|澶氬璞℃暟缁勶紝tooltip鐨勬枃瀛楃粍銆傚綋娌℃湁瀹氫箟textList鎴栬�卼extList瀹氫箟涓簎ndefined鐨勬椂鍊欙紝浼氳皟鑷姩鑾峰彇鐐瑰嚮绱㈠紩骞舵嫾鎺ョ浉搴旂殑textList銆傚浼犻�抂{text:'榛樿鏄剧ず鐨則ooltip',color:null},{text:'绫诲埆1锛氭煇涓�紉xx',color:'#2fc25b'},{text:'绫诲埆2锛氭煇涓�紉xx',color:'#facc14'},{text:'绫诲埆3锛氭煇涓�紉xx',color:'#f04864'}]杩欐牱瀹氫箟濂界殑鏁扮粍锛屽垯浼氬彧鏄剧ず璇ユ暟缁勩�倈
-|textList[i].text|String| |鏄剧ず鐨勬枃瀛梶
-|textList[i].color|Color| |宸︿晶鍥捐〃棰滆壊|
-
-## datacome灞炴�у強璇存槑
-
-- 閫氳繃閰嶇疆datacome灞炴�э紝鍙洿鎺ヨ幏鍙杣niCloud浜戞暟鎹紝骞跺揩閫熻嚜鍔ㄧ敓鎴愬浘琛紝浣垮紑鍙戣�呭彧闇�涓撴敞涓氬姟鍙婃暟鎹紝鏃犻渶鍏冲績濡備綍鎷兼帴鏁版嵁绛変笉蹇呰鐨勯噸澶嶅伐浣滐紝澶уぇ缂╃煭寮�鍙戞椂闂淬�俤atacome灞炴�у強璇存槑锛岃瑙乕datacom缁勪欢瑙勮寖](https://uniapp.dcloud.io/component/datacom?id=mixindatacom)
-
-|灞炴�у悕|绫诲瀷|榛樿鍊紎璇存槑|
-| -- | -- | -- | -- |
-|collection|String| |琛ㄥ悕銆傛敮鎸佽緭鍏ュ涓〃鍚嶏紝鐢� , 鍒嗗壊|
-|field|String| |鏌ヨ瀛楁锛屽涓瓧娈电敤 , 鍒嗗壊|
-|where|String| |鏌ヨ鏉′欢锛屽唴瀹硅緝澶氾紝鍙﹁jql鏂囨。锛歔璇︽儏](https://uniapp.dcloud.net.cn/uniCloud/uni-clientDB?id=jsquery)|
-|orderby|String| |鎺掑簭瀛楁鍙婃搴忓�掑彊璁剧疆|
-|groupby|String| |瀵规暟鎹繘琛屽垎缁剕
-|group-field|String| |瀵规暟鎹繘琛屽垎缁勭粺璁
-|distinct|Boolean|false|鏄惁瀵规暟鎹煡璇㈢粨鏋滀腑閲嶅鐨勮褰曡繘琛屽幓閲峾
-|action|string| |浜戠鎵ц鏁版嵁搴撴煡璇㈢殑鍓嶆垨鍚庯紝瑙﹀彂鏌愪釜action鍑芥暟鎿嶄綔锛岃繘琛岄澶勭悊鎴栧悗澶勭悊锛岃鎯呫�傚満鏅細鍓嶇鏃犳潈鎿嶄綔鐨勬暟鎹紝姣斿闃呰鏁�+1|
-|page-data|string|add|鍒嗛〉绛栫暐閫夋嫨銆傚�间负 add 浠h〃涓嬩竴椤电殑鏁版嵁杩藉姞鍒颁箣鍓嶇殑鏁版嵁涓紝甯哥敤浜庢粴鍔ㄥ埌搴曞姞杞戒笅涓�椤碉紱鍊间负 replace 鏃跺垯鏇挎崲褰撳墠data鏁版嵁锛屽父鐢ㄤ簬PC寮忎氦浜掞紝鍒楄〃搴曢儴鏈夐〉鐮佸垎椤垫寜閽畖
-|page-current|Number|0|褰撳墠椤祙
-|page-size|Number|0|姣忛〉鏁版嵁鏁伴噺|
-|getcount|Boolean|false|鏄惁鏌ヨ鎬绘暟鎹潯鏁帮紝榛樿 false锛岄渶瑕佸垎椤垫ā寮忔椂鎸囧畾涓� true|
-|getone|Boolean|false|鎸囧畾鏌ヨ缁撴灉鏄惁浠呰繑鍥炴暟缁勭涓�鏉℃暟鎹紝榛樿 false銆傚湪false鎯呭喌涓嬭繑鍥炵殑鏄暟缁勶紝鍗充究鍙湁涓�鏉$粨鏋滐紝涔熼渶瑕乕0]鐨勬柟寮忚幏鍙栥�傚湪鍊间负 true 鏃讹紝鐩存帴杩斿洖缁撴灉鏁版嵁锛屽皯涓�灞傛暟缁勩�備竴鑸敤浜庨潪鍒楄〃椤碉紝姣斿璇︽儏椤祙
-|gettree|Boolean|false|鏄惁鏌ヨ鏍戠姸鏁版嵁锛岄粯璁� false|
-|startwith|String|''|gettree鐨勭涓�灞傜骇鏉′欢锛屾鍒濆鏉′欢鍙互鐪佺暐锛屼笉浼爏tartWith鏃堕粯璁や粠鏈�椤剁骇寮�濮嬫煡璇
-|limitlevel|Number|10|gettree鏌ヨ杩斿洖鐨勬爲鐨勬渶澶у眰绾с�傝秴杩囪瀹氬眰绾х殑鑺傜偣涓嶄細杩斿洖銆傞粯璁�10绾э紝鏈�澶�15锛屾渶灏�1|
-
-## uni_modules鐩綍璇存槑
-
-```
-鈹溾攢鈹� components
-鈹� 鈹斺攢鈹� qiun-data-chatrs鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�# 缁勪欢涓诲叆鍙fā鍧�
-鈹� 鈹斺攢鈹� qiun-error鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�# 鍔犺浇鍔ㄧ敾缁勪欢鏂囦欢鐩綍锛堝彲浠ヤ慨鏀归敊璇彁绀哄浘鏍囦互鍑忓皯鍖呬綋绉級
-鈹� 鈹斺攢鈹� qiun-loading鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�# 鍔犺浇鍔ㄧ敾缁勪欢鏂囦欢鐩綍锛堝彲浠ュ垹闄ゆ偍涓嶉渶瑕佺殑鍔ㄧ敾鏁堟灉浠ュ噺灏戝寘浣撶Н锛�
-鈹溾攢鈹� js_skd
-鈹� 鈹斺攢鈹� u-charts
-鈹� 鈹�鈹� 鈹斺攢鈹�config-echarts.js 鈹�鈹�鈹�鈹�鈹�鈹�# ECharts榛樿閰嶇疆鏂囦欢锛堥潪APP绔唴鍙綔涓哄疄渚嬪叕鐢ㄤ腑杞級
-鈹� 鈹�鈹� 鈹斺攢鈹�config-ucharts.js 鈹�鈹�鈹�鈹�鈹�鈹�# uCharts榛樿閰嶇疆鏂囦欢锛堥潪APP绔唴鍙綔涓哄疄渚嬪叕鐢ㄤ腑杞級
-鈹� 鈹�鈹� 鈹斺攢鈹�u-charts-v2.0.0.js鈹�鈹�鈹�鈹�鈹�鈹�# uCharts鍩虹搴搗2.0.0鐗堟湰锛岄儴鍒咥PI涓庝箣鍓嶇増鏈笉鍚�
-鈹溾攢鈹� static
-鈹� 鈹斺攢鈹� app-plus鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�# 鏉′欢缂栬瘧鐩綍锛屼粎缂栬瘧鍒癆PP绔�
-鈹� 鈹�鈹� 鈹斺攢鈹�echarts.min.js鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�# Echarts鍩虹搴搗4.2.1
-鈹� 鈹斺攢鈹� h5鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�# 鏉′欢缂栬瘧鐩綍锛屼粎缂栬瘧鍒癏5绔�
-鈹� 鈹�鈹� 鈹斺攢鈹�echarts.min.js鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�# Echarts鍩虹搴搗4.2.1
-```
-
-
-## 鍔犺浇鍔ㄧ敾鍙婇敊璇彁绀�
-- 涓轰繚璇佺紪璇戝悗鐨勫寘浣撶Н锛屽姞杞藉姩鐢诲紩鐢ㄤ綔鑰厀kiwi鎻愪緵鐨刐w-loading](https://ext.dcloud.net.cn/plugin?id=504)涓�夊彇5绉嶏紝濡傞渶鍏朵粬鏍峰紡璇风湅涓嬮潰璇存槑銆�
-- loading鐨勫睍绀洪�昏緫锛�
-	* 1銆佸鏋滄槸uniCloud鏁版嵁锛屼粠鍙戦�佺綉缁滆姹傚埌杩斿洖鏁版嵁鏈熼棿灞曠ず銆�
-	* 2銆佸鏋滄槸鑷浼犲叆鐨刢hartData锛屽綋chartData.series=[]绌烘暟缁勭殑鏃跺�欏睍绀簂oading锛屼篃灏辨槸璇村垵濮嬪寲鍥捐〃鐨勬椂鍊欙紝濡傛灉鎮ㄦ病鏈夋暟鎹紝鍙互閫氳繃鍏堜紶涓┖鏁扮粍鏉ュ睍绀簂oading鏁堟灉锛屽綋chartData.series鏈夋暟鎹悗浼氳嚜鍔ㄩ殣钘弆oading鍥炬爣銆�
-- <font color=#FF0000>濡傛偍淇敼浜唓iun-data-charts.vue缁勪欢鏂囦欢锛岃鍔″繀鍦ㄥ崌绾у墠澶囦唤鎮ㄧ殑鏂囦欢锛屼互鍏嶈瑕嗙洊锛侊紒锛佸缓璁皢鍔犺浇鐘舵�佹樉绀哄仛鎴愮粍浠讹紝閬垮厤涓嬫鍗囩骇鏃朵涪澶卞悗鏃犳硶鎵惧埌銆�</font>
-
-
-## 閰嶇疆鏂囦欢璇存槑
-
-- <font color=#FF0000>娉ㄦ剰锛宑onfig-echarts.js鍜宑onfig-ucharts.js鍐呭彧闇�瑕侀厤缃鍚堟偍椤圭洰鏁翠綋UI鐨勬暣浣撻粯璁ら厤缃紝鏍规嵁闇�姹傦紝鍏堢敤[銆愬湪绾垮伐鍏枫�慮(http://demo.ucharts.cn)璋冭瘯濂介粯璁ら厤缃紝骞剁矘璐村埌閰嶇疆鏂囦欢涓��</font>
-- <font color=#FF0000>濡傛灉闇�瑕佷笌configjs涓笉鍚岀殑閰嶇疆锛屽彧闇�瑕佸湪缁勪欢涓婄粦瀹�:opts鎴栬��:eopts浼犲叆涓庨粯璁ら厤缃笉鍚岀殑鏌愪釜灞炴�у強鍊煎嵆鍙鐩栭粯璁ら厤缃紝鏋佸ぇ闄嶄綆浜嗕唬鐮侀噺銆�</font>
-
-- ECharts榛樿閰嶇疆鏂囦欢锛歝onfig-echarts.js
-
-	i銆�<font color=#FF0000>濡傛偍淇敼浜嗛粯璁ら厤缃枃浠讹紝璇峰姟蹇呭湪鍗囩骇鍓嶅浠芥偍鐨勯厤缃枃浠讹紝浠ュ厤琚鐩栵紒锛侊紒</font>
-	
-	ii銆丒Charts閰嶇疆鎵嬪唽锛歔https://echarts.apache.org/zh/option.html](https://echarts.apache.org/zh/option.html)
-	
-	iii銆�"type"鍙�"categories"灞炴�т负鏀寔鐨勫浘琛ㄥ睘鎬э紝鎮ㄥ彲鍙傜収ECharts閰嶇疆鎵嬪唽锛岄厤缃偍鏇村鐨勫浘琛ㄧ被鍨嬶紝骞跺皢瀵瑰簲鐨勫浘琛ㄩ厤缃坊鍔犺嚦涓嬮潰
-	
-	iv銆�"formatter"灞炴�э紝鍥犲悇灏忕▼搴忓強app绔�氳繃缁勪欢鍧囦笉鑳戒紶閫抐unction绫诲瀷鍙傛暟锛屽洜姝よ鍏堝湪姝ゅ睘鎬т笅瀹氫箟鎮ㄦ兂鏍煎紡鍖栫殑鏁版嵁锛岀粍浠朵細鑷姩鍖归厤涓庡叾瀵瑰簲鐨刦unction
-	
-	v銆�"seriesTemplate"灞炴�э紝鍥燛Charts鐨勫ぇ閮ㄥ垎閰嶇疆鍧囧湪series鍐咃紝seriesTemplate浣滀负series鐨勬ā鏉匡紝杩欐牱鍙渶瑕佸湪杩欓噷鍋氬ソ妯℃澘閰嶇疆锛岀粍浠剁殑鏁扮粍灞俢hartData锛堟垨鑰卨ocaldata鎴栬�卌ollection锛夌殑series浼氳嚜鍔ㄦ寕杞芥ā鏉块厤缃�傚闇�涓存椂鎴栧姩鎬佹敼鍙榮eriesTemplate锛屽彲鍦�:eopts涓紶閫抯eriesTemplate锛岃瑙乸ages/echarts/echarts.vue涓殑鏇茬嚎鍥俱��
-
-	vi銆丒Charts閰嶇疆浠呭彲鐢ㄤ簬H5鎴栬�匒PP绔紝骞朵笖閰嶇疆`echartsH5`鎴朻echartsApp`涓篳true`鏃跺彲鐢�
-
-- uCharts榛樿閰嶇疆鏂囦欢锛歝onfig-ucharts.js
-
-	i銆�<font color=#FF0000>濡傛偍淇敼浜嗛粯璁ら厤缃枃浠讹紝璇峰姟蹇呭湪鍗囩骇鍓嶅浠芥偍鐨勯厤缃枃浠讹紝浠ュ厤琚鐩栵紒锛侊紒</font>
-	
-	ii銆乿2鐗堟湰鍚庣殑uCharts鍩虹搴撲笉鎻愪緵閰嶇疆鎵嬪唽锛屾偍鍙互浣跨敤鍦ㄧ嚎閰嶇疆鐢熸垚宸ュ叿鏉ュ揩閫熺敓鎴愰厤缃細[http://demo.ucharts.cn](http://demo.ucharts.cn)
-	
-	iii銆�"type"鍙�"categories"灞炴�т负鏀寔鐨勫浘琛ㄥ睘鎬э紝涓嶆敮鎸佹坊鍔爑Charts鍩虹搴撴病鏈夌殑鍥捐〃绫诲瀷
-	
-	iv銆�"formatter"灞炴�у洜鍚勫皬绋嬪簭鍙奱pp绔�氳繃缁勪欢鍧囦笉鑳戒紶閫抐unction绫诲瀷鍙傛暟锛屽洜姝よ鍏堝湪姝ゅ睘鎬т笅瀹氫箟鎮ㄦ兂鏍煎紡鍖栫殑鏁版嵁锛岀粍浠朵細鑷姩鍖归厤涓庡叾瀵瑰簲鐨刦unction
-	
-	v銆乽Charts閰嶇疆鍙法鍏ㄧ浣跨敤
-
-
-## 甯歌闂鍙婃敞鎰忎簨椤�
-
-- `鍥捐〃鏃犳硶鏄剧ず闂`锛�
-	* 璇峰厛妫�鏌ユ偍鐨凥BuilderX鐗堟湰锛岃姹傞珮浜�3.1.0+銆�
-	* 1銆佸鏋滄槸棣栨瀵煎叆鎻掍欢涓嶆樉绀猴紝鎴栬�呮姤浠ヤ笅鏈敞鍐宍qiun-data-charts`鐨勯敊璇細
-	> Unknown custom element: &lt; qiun-data-charts &gt; - did you register the component correctly? For recursive components, make sure to provide the "name" option.
-	* 2銆�<font color=#FF0000>璇枫�愰噸鍚疕BuilderX銆戞垨鑰呫�愰噸鍚」鐩�戞垨鑰呫�愰噸鍚紑鍙戣�呭伐鍏枫�戞垨鑰呫�愬垹闄PP鍩哄骇銆戦噸鏂拌繍琛岋紝閬垮厤缂撳瓨闂瀵艰嚧涓嶈兘鏄剧ず銆�</font>
-  * 3銆佸鏋滄槸鍩轰簬uniapp鐨剉ue-cli椤圭洰锛�1銆佽 npm update 鍗囩骇uniapp渚濊禆涓烘渶鏂扮増鏈紱2銆佽灏濊瘯娓呯悊node-modules锛岄噸鏂癷nstall锛岃繕涓嶈灏卞垹闄ら」鐩紝鍐嶉噸鏂癷nstall銆傚鏋滀粛鐒朵笉琛岋紝璇锋鏌niapp渚濊禆鏄惁涓烘渶鏂扮増鏈紝鍐嶉噸璇曚互涓婃楠ゃ�傚鏋滀粛鐒朵笉琛岋紝璇蜂娇鐢�<font color=#FF0000>銆愰潪uni_modules鐗堟湰銆�</font>缁勪欢锛屾渶鏂伴潪uni_modules鐗堟湰鍦ㄧ爜浜戝彂甯冿紝[鐐瑰嚮姝ゅ鑾峰彇](https://gitee.com/uCharts/uCharts/tree/master/qiun-data-charts%EF%BC%88%E9%9D%9Euni-modules%EF%BC%89)銆傘��
-	* 4銆佽妫�鏌ユ帶鍒跺彴鏄惁鏈夋姤閿欐垨鎻愮ず淇℃伅锛屽鏋滄病鏈夋姤閿欙紝涔熸病鏈夋彁绀轰俊鎭紝骞朵笖妫�鏌ヨ鍥句腑class="charts-box"杩欎釜鍏冪礌鐨勫楂樺潎涓�0锛岃淇敼鐖跺厓绱犵殑css鏍峰紡鎴栬繘琛屼笅闈㈢4姝ユ鏌ャ��
-	* 5銆佹鏌ョ埗绾ф槸鍚︿娇鐢ㄤ簡v-show鏉ユ帶鍒舵樉绀恒�傚鏋滈〉闈㈠垵濮嬪寲鏃剁粍浠跺浜庨殣钘忕姸鎬侊紝缁勪欢鍒欐棤娉曟纭幏鍙栧楂樺昂瀵革紝姝ゆ椂<font color=#FF0000>闇�瑕佺粍浠跺唴缁戝畾reshow灞炴�э紙閫昏緫搴斾笌鐖剁骇鐨剉-show鐨勯�昏緫鐩稿悓锛�</font>锛屽己鍒堕噸鏂版覆鏌撳浘琛紝渚嬪:reshow="鐖剁骇v-show缁戝畾鐨勪簨浠�"銆�
-	* 6銆佸鏋滃湪寰俊灏忕▼搴忕寮�鍚簡canvas2d妯″紡<font color=#FF0000>锛堜笉鑳戒娇鐢ㄧ湡鏈鸿皟璇曪紝璇风洿鎺ラ瑙堬級</font>涓嶆樉绀哄浘琛細
-		* a銆佽鍔″繀鍦ㄧ粍浠朵笂瀹氫箟canvasId锛屼笉鑳戒负绾暟瀛椼�佷笉鑳戒负鍙橀噺銆佷笉鑳介噸澶嶃�佸敖閲忛暱涓�浜涖��
-		* b銆佽妫�鏌ュ井淇″皬绋嬪簭鐨勫熀纭�搴擄紝淇敼鑷�2.16.0鎴栬�呮渶鏂扮増鏈殑鍩虹搴撱��
-		* c銆佽妫�鏌ョ埗鍏冪礌鎴栫埗缁勪欢鏄惁鐢╲-if鏉ユ帶鍒舵樉绀猴紝濡傛湁璇锋敼涓簐-show锛屽苟灏唙-show鐨勯�昏緫缁戝畾鑷崇粍浠躲��
-- `formatter鏍煎紡鍖栭棶棰榒锛氭棤璁烘槸uCharts杩樻槸ECharts锛屽洜涓虹粍浠朵笉鑳戒紶閫抐unction锛屾墍鏈夌殑formatter鍧囬渶瑕佸彉鎴愬埆鍚峟ormat鏉ュ畾涔夛紝骞跺湪config-ucharts.js鎴朿onfig-echarts.js閰嶇疆瀵瑰簲鐨刦ormatter鏂规硶锛岀粍浠朵細鏍规嵁format鐨勫�艰嚜鍔ㄦ浛鎹㈤厤缃枃浠朵腑鐨刦ormatter鏂规硶銆傦紙鍙傝�冪ず渚嬮」鐩畃ages/format/format.vue锛�
-- `鍥捐〃鎶栧姩闂`锛氬鏋滃紑鍚簡animation鍔ㄧ敾鏁堟灉锛岀敱浜庣粍浠跺唴寮�鍚簡chartData鍜宱pts鐨勭洃鍚紝褰撴暟鎹彉鍖栨椂浼氶噸鏂版覆鏌撳浘琛紝<font color=#FF0000>寤鸿鏁翠綋鏀瑰彉chartData鍙妎pts鐨勫睘鎬у��</font>锛岃�屼笉瑕侀�氳繃寰幆鎴栭亶鍘嗘潵鏀瑰彉this瀹炰緥涓嬬殑chartData鍙妎pts锛屼緥濡傚厛瀹氫箟涓�涓复鏃跺彉閲忥紝鎷兼帴濂芥暟鎹悗鍐嶆暣浣撹祴鍊笺�傦紙鍙傝�冪ず渚嬮」鐩畃ages/updata/updata.vue锛�
-- `寰俊灏忕▼搴忔姤閿橫aximum call stack size exceeded闂`:鐢变簬缁勪欢鍐呭紑鍚簡chartData鍜宱pts鐨勭洃鍚紝褰撴暟鎹彉鍖栨椂浼氶噸鏂版覆鏌撳浘琛紝<font color=#FF0000>寤鸿鏁翠綋鏀瑰彉chartData鍙妎pts鐨勫睘鎬у��</font>锛岃�屼笉瑕侀�氳繃寰幆鎴栭亶鍘嗘潵鏀瑰彉this瀹炰緥涓嬬殑chartData鍙妎pts锛屼緥濡傚厛瀹氫箟涓�涓复鏃跺彉閲忥紝鎷兼帴濂芥暟鎹悗鍐嶆暣浣撹祴鍊笺�傦紙鍙傝�冪ず渚嬮」鐩畃ages/updata/updata.vue锛�
-- `Loading鐘舵�侀棶棰榒锛氬涓嶄娇鐢╱niClinetDB鑾峰彇鏁版嵁婧愶紝骞朵笖闇�瑕佸睍绀篖oading鐘舵�侊紝璇峰厛娓呯┖series锛屼娇缁勪欢鍙樻洿涓篖oading鐘舵�侊紝鍗硉his.chartData.series=[]鍗冲彲灞曠ず锛岀劧鍚庡啀浠庢湇鍔$鑾峰彇鏁版嵁锛屾嫾鎺ュ畬鎴愬悗鍐嶄紶鍏his.chartData銆傚鏋滀笉闇�瑕佸睍绀篖oading鐘舵�侊紝鍒欎笉闇�瑕佷互涓婃楠わ紝鑾峰彇鍒版暟鎹紝鎷兼帴濂芥爣鍑嗘牸寮忓悗锛岀洿鎺ヨ祴鍊煎嵆鍙��
-- `寰俊灏忕▼搴忓浘琛ㄥ眰绾ц繃楂橀棶棰榒锛氬洜canvas鍦ㄥ井淇″皬绋嬪簭鏄師鐢熺粍浠讹紝濡傛灉浣跨敤鑷畾涔塼abbar鎴栬�呰嚜瀹氫箟瀵艰埅鏍忥紝鍥捐〃鍒欎細瓒呭嚭棰勬湡锛屾鏃堕渶瑕佺粰缁勪欢鐨刢anvas2d浼犲�紅rue鏉ヤ娇鐢╰ype='2d'鐨勫姛鑳斤紝寮�鍚妯″紡鍚庯紝<font color=#FF0000>涓�瀹氳鍦ㄧ粍浠朵笂鑷畾涔塩anvasId锛屼笉鑳戒负鏁板瓧锛屼笉鑳藉姩鎬佺粦瀹氾紝瑕佷负闅忔満瀛楃涓诧紒涓嶈兘鈥滅湡鏈鸿皟璇曗�濓紝涓嶈兘鈥滅湡鏈鸿皟璇曗�濓紝涓嶈兘鈥滅湡鏈鸿皟璇曗��</font>寮�鍙戣�呭伐鍏锋樉绀轰笉姝e父锛屽浘琛ㄥ眰绾т細鍙橀珮锛岃�屾甯搁瑙堟垨鑰呭彂甯冧笂绾垮垯鏄甯哥姸鎬侊紝寮�鍙戣�呬笉蹇呮媴蹇冿紝涓�鍒囦互鐪熸満棰勮涓哄噯锛堝洜寰俊寮�鍙戣�呭伐鍏锋樉绀轰笉姝g‘锛宑anvas2d杩欑妯″紡涓嬬粰璋冭瘯甯︽潵浜嗗洶闅撅紝寮�鍙戞椂锛屽彲浠ュ厛鐢�:canvas2d="false"鏉ヨ皟璇曪紝棰勮鏃犺鍚庡啀鏀规垚true锛夈��
-- `寮�鍚痗anvas2d鍚庡浘琛ㄤ笉鏄剧ず闂`锛氬紑鍚痗anvas2d鍚庯紝闇�瑕佹墜鍔ㄦ寚瀹歝anvasId锛屽苟涓旂埗鍏冪礌涓嶈兘鍚湁v-if锛屽惁鍒欎細瀵艰嚧鑾峰彇涓嶅埌dom鑺傜偣闂锛岃灏唙-if鏀规垚v-show锛屾洿澶氬紑鍚痗anvas2d涓嶆樉绀洪棶棰橈紝璇峰弬鑰冪ず渚嬮」鐩畃ages/layout/layout.vue鏂囦欢锛屽鐓хず渚嬮」鐩慨鏀规偍鐨勯」鐩��
-- `MiniPorgramError U.createEvent is ot a function`锛氭闂涓�鑸槸寰俊灏忕▼搴忓紑鍚簡canvas2d锛屽苟鐐瑰嚮浜嗏�滅湡鏈鸿皟璇曞鑷粹�濓紝鍙傝�冧笂闈€�愬井淇″皬绋嬪簭鍥捐〃灞傜骇杩囬珮闂銆戣В鍐冲姙娉曪紝寮�鍚�2d鍚庯紝涓嶅彲浠ョ湡鏈鸿皟璇曪紝鍙兘寮�鍙戣�呭伐鍏疯皟璇曟垨鑰呮壂浜岀淮鐮佲�滈瑙堚�濄��
-- `鍦ㄥ浘琛ㄤ笂婊戝姩鏃犳硶浣块〉闈㈡粴鍔ㄩ棶棰榒锛氭闂鏄洜涓虹洃鍚簡touchstart銆乼ouchmove鍜宼ouchend涓変釜浜嬩欢锛屾垨鑰呭紑鍚簡disableScroll灞炴�э紝濡傛灉鎮ㄧ殑鍥捐〃涓嶉渶瑕佸紑鍚浘琛ㄥ唴鐨勬粴鍔ㄦ潯鍔熻兘锛岃绂佺敤杩欎笁涓柟娉曠殑鐩戝惉锛屽嵆:ontouch="false"鎴栬��:disableScroll="false"鍗冲彲锛堟鏃跺浘琛ㄧ粍浠堕粯璁ら�氳繃@tap浜嬩欢鏉ョ洃鍚偣鍑伙紝鍙甯告樉绀篢ooltip鎻愮ず绐楋級銆�
-- `寮�鍚粴鍔ㄦ潯鏃犳硶鎷栧姩鍥捐〃闂`锛氭闂姝d笌浠ヤ笂闂鐩稿弽锛屾槸鍥犱负绂佺敤浜嗙洃鍚瑃ouchstart銆乼ouchmove鍜宼ouchend涓変釜浜嬩欢锛岃鍚敤杩欎笁涓柟娉曠殑鐩戝惉锛屽嵆鍦ㄧ粍浠朵笂鍔犲叆 :ontouch="true" 鍗冲彲銆傛敞鎰忥紝涓嶈蹇樿鍦╫pts閲岄渶瑕侀厤缃甧nableScroll:true锛屽彟澶栧鏋滈渶瑕佹樉绀烘粴鍔ㄦ潯锛岄渶瑕佸湪xAxis涓厤缃畇crollShow:ture锛屽強itemCount锛堝崟灞忔暟鎹瘑搴︼級鏁伴噺鐨勯厤缃��
-- `寮�鍚粴鍔ㄦ潯鍚庡浘琛ㄤ袱渚ф湁鐧借竟闂`锛氭闂鏄洜涓虹粍浠朵笂鐨刡ackground涓簄one鎴栬�呮病鏈夋寚瀹氾紝璇峰湪缁勪欢涓婂姞鍏ackground="#000000"(鎮ㄧ殑鑳屾櫙鑹�)銆傚鏋滅埗鍏冪礌涓哄浘鐗囷紝灏介噺涓嶈寮�鍚粴鍔ㄦ潯锛屾鏃跺浘琛ㄦ槸閫忔槑鑹诧紝鍙互鏄剧ず鐖跺厓绱犺儗鏅浘鐗囥��
-- `寮�鍚粴鍔ㄦ潯鍚庡姩鎬佹墦鐐规洿鏂版暟鎹粴鍔ㄦ潯浣嶇疆闂`锛氬紑鍚粴鍔ㄦ潯鍚庡姩鎬佹墦鐐癸紝闇�瑕佹妸opts涓璾pdate闇�瑕佽祴鍊间负true锛屾潵鍚敤uCharts鐨剈pdateData鏂规硶鏉ユ洿鏂拌鍥撅紝璇﹁绀轰緥椤圭洰pages/updata/updata.vue銆�
-- `鍦板浘鍙樺舰闂`锛氭闂鏄洜涓烘偍寮曠敤鐨刧eojson鍦板浘鏁版嵁鐨勫潗鏍囩郴鍙兘鏄湴鐞冨潗鏍�(WGS84)瀵艰嚧锛岄渶瑕佸紑鍚�愭槸鍚﹁繘琛學GS84杞ⅷ鍗℃墭鎶曞奖銆戝姛鑳姐�傚紑鍚悗鍥犲ぇ閲忕殑鏁版嵁杩愮畻tooltip鍙兘浼氫笉璺熸墜锛屽缓璁嚜琛岃浆鎹负澧ㄥ崱鎵樺潗鏍囩郴锛屽彲鍙傜収婧愮爜鍐協unction lonlat2mercator()銆傚叾浠栧湴鍥炬暟鎹笅杞藉湴鍧�锛歔http://datav.aliyun.com/tools/atlas/](http://datav.aliyun.com/tools/atlas/)
-- `鏀粯瀹濓紙閽夐拤锛夊皬绋嬪簭鏃犳硶鐐瑰嚮闂`锛氳妫�鏌ユ敮浠樺疂灏忕▼搴忓紑鍙戣�呭伐鍏蜂腑锛岀偣鍑汇�愯鎯呫�戯紝鍦ㄥ脊鍑虹殑銆愰」鐩鎯呫�戜腑銆愬彇娑堛�戝惎鐢ㄥ皬绋嬪簭鍩虹搴� 2.0 鏋勫缓锛屼竴瀹氫笉瑕佸嬀閫夋椤广��
-- `uni-simple-router涓娇鐢ㄩ棶棰榒锛氬鏋滀娇鐢╱ni-simple-router璺敱鎻掍欢锛孒5寮�鍚畬鍏ㄨ矾鐢辨ā寮忥紙鍗砲5:{vueRouterDev:true}锛夋椂锛屼細瀵艰嚧缁勪欢鍐卽ni.xxx閮ㄥ垎鏂规硶澶辨晥锛屽紩鍙戣妭鐐硅幏鍙栦笉姝e父鎶ラ敊锛岃浣跨敤鏅�氭ā寮忓嵆鍙��
-- `Y杞村埢搴︽爣绛炬暟瀛楅噸澶嶉棶棰榒锛氭闂涓�鑸槸series鏁版嵁鍐呮暟鍊艰緝灏忥紝鑰孻杞寸綉鏍兼暟閲忚緝澶氾紝骞朵笖Y杞村埢搴︾偣鏄剧ず鏁存暟瀵艰嚧銆傝В鍐虫柟娉�1锛孻杞村埢搴﹀�间繚鐣欎袱浣嶅皬鏁帮紝缁勪欢涓婁紶鍊� :opts="{yAxis:{data:[{tofix:2}]}}"锛涜В鍐虫柟娉�2锛屼慨鏀筜杞寸綉鏍兼暟閲忎负series涓殑鏈�澶у�肩殑鏁伴噺锛屼緥濡俿eries涓渶澶у�间负3锛岄偅涔堜慨鏀箉Axis.splitNumber=3鍗冲彲锛涜В鍐虫柟娉�3锛屾牴鎹甕杞寸綉鏍兼暟閲忎慨鏀筜杞存渶澶у�� :opts="{yAxis:{data:[{max:5}]}}"銆�
-- `鏌辩姸鍥炬煴瀛愰珮搴︿笉绗﹀悎棰勬湡闂`锛氭闂鏄痀杞存渶灏忓�兼湭榛樿涓�0鐨勯棶棰樺鑷达紝缁勪欢涓婁紶鍊� :opts="{yAxis:{data:[{min:0}]}}"鍗冲彲瑙e喅銆�
-- `楗煎浘绫荤櫨鍒嗘瘮鏀瑰叾浠栨枃妗堢殑闂`锛氬弬鑰冪ず渚嬮」鐩畃ages/format-u/format-u.vue锛屽湪chartData鐨剆eries涓娇鐢╢ormat銆�
-
-## [鏇村甯歌闂浠ュ畼鏂圭綉绔欍�愬父瑙侀棶棰樸�戜负鍑哴(http://demo.ucharts.cn)
-
-## QQ缇ゅ彿鐮�
-## <font color=#FF0000> 璇峰厛瀹屾暣闃呰銆愬府鍔╂枃妗c�戝強銆愬父瑙侀棶棰樸��3閬嶏紝鍙充晶钃濊壊鎸夐挳銆愮ず渚嬮」鐩�戣鐪�2閬嶏紒涓嶇湅鏂囨。涓嶇湅甯歌闂杩涚兢灏遍棶鐨勬嫆缁濆洖绛旈棶棰橈紒鍜ㄨ閲忓お澶ц鐞嗚В浣滆�咃紒 </font> 
+#### 瀹樻柟浜ゆ祦缇�
 - 浜ゆ祦缇�1锛�371774600锛堝凡婊★級
-- 浜ゆ祦缇�2锛�619841586
+- 浜ゆ祦缇�2锛�619841586锛堝凡婊★級
 - 浜ゆ祦缇�3锛�955340127锛堝凡婊★級
 - 浜ゆ祦缇�4锛�641669795
 - 鍙d护`uniapp`
 
+#### 涓撳睘VIP浼氬憳缇�
+- 寮�閫氫細鍛樺悗璇﹁銆愯处鍙疯鎯呫�戦〉闈腑椤堕儴鐨勬粴鍔ㄩ�氱煡
+- 鍙d护`鎮ㄧ殑鐢ㄦ埛ID`
+
+## 鐗堟潈淇℃伅
+
+uCharts濮嬬粓鍧氭寔寮�婧愶紝閬靛惊 [Apache Licence 2.0](https://www.apache.org/licenses/LICENSE-2.0.html) 寮�婧愬崗璁紝鎰忓懗鐫�鎮ㄦ棤闇�鏀粯浠讳綍璐圭敤锛屽嵆鍙皢uCharts搴旂敤鍒版偍鐨勪骇鍝佷腑銆�
+
+娉ㄦ剰锛氳繖骞朵笉鎰忓懗鐫�鎮ㄥ彲浠ュ皢uCharts搴旂敤鍒伴潪娉曠殑棰嗗煙锛屾瘮濡傛秹鍙婅祵鍗氾紝鏆村姏绛夋柟闈€�傚鍥犳浜х敓绾犵悍鎴栨硶寰嬮棶棰橈紝uCharts鐩稿叧鏂瑰強绉嬩簯绉戞妧涓嶆壙鎷呬换浣曡矗浠汇��
+
+## 鍚堜綔浼欎即
+
+[![DIY瀹樼綉](https://www.ucharts.cn/images/web/guide/links/diy-gw.png)](https://www.diygw.com/)
+[![HasChat](https://www.ucharts.cn/images/web/guide/links/haschat.png)](https://gitee.com/howcode/has-chat)
+[![uViewUI](https://www.ucharts.cn/images/web/guide/links/uView.png)](https://www.uviewui.com/)
+[![鍥鹃笩UI](https://www.ucharts.cn/images/web/guide/links/tuniao.png)](https://ext.dcloud.net.cn/plugin?id=7088)
+[![thorui](https://www.ucharts.cn/images/web/guide/links/thorui.png)](https://ext.dcloud.net.cn/publisher?id=202)
+[![FirstUI](https://www.ucharts.cn/images/web/guide/links/first.png)](https://www.firstui.cn/)
+[![nProUI](https://www.ucharts.cn/images/web/guide/links/nPro.png)](https://ext.dcloud.net.cn/plugin?id=5169)
+[![GraceUI](https://www.ucharts.cn/images/web/guide/links/grace.png)](https://www.graceui.com/)
+
+
+## 鏇存柊璁板綍
+
+璇﹁瀹樼綉鎸囧崡涓鏄庯紝[鐐瑰嚮姝ゅ鏌ョ湅](https://www.ucharts.cn/v2/#/guide/index?id=100)
+
 
 ## 鐩稿叧閾炬帴
-- [DCloud鎻掍欢甯傚満鍦板潃](https://ext.dcloud.net.cn/plugin?id=271)
 - [uCharts瀹樼綉](https://www.ucharts.cn)
+- [DCloud鎻掍欢甯傚満鍦板潃](https://ext.dcloud.net.cn/plugin?id=271)
 - [uCharts鐮佷簯寮�婧愭墭绠″湴鍧�](https://gitee.com/uCharts/uCharts) [![star](https://gitee.com/uCharts/uCharts/badge/star.svg?theme=gvp)](https://gitee.com/uCharts/uCharts/stargazers)
-- [鍥捐〃缁勪欢鍦ㄩ」鐩腑鐨勫簲鐢� UReport鏁版嵁鎶ヨ〃](https://ext.dcloud.net.cn/plugin?id=4651) 
+- [uCharts npm寮�婧愬湴鍧�](https://www.ucharts.cn)
 - [ECharts瀹樼綉](https://echarts.apache.org/zh/index.html)
 - [ECharts閰嶇疆鎵嬪唽](https://echarts.apache.org/zh/option.html)
-- [`wkiwi`鎻愪緵鐨剋-loading缁勪欢鍦板潃](https://ext.dcloud.net.cn/plugin?id=504)
\ No newline at end of file
+- [鍥捐〃缁勪欢鍦ㄩ」鐩腑鐨勫簲鐢� ReportPlus鏁版嵁鎶ヨ〃](https://www.ucharts.cn/v2/#/layout/info?id=1) 
\ No newline at end of file
diff --git a/Monitor-APP/unpackage/dist/dev/app-plus/app-service.js b/Monitor-APP/unpackage/dist/dev/app-plus/app-service.js
index 7865f3f..cdf80b6 100644
--- a/Monitor-APP/unpackage/dist/dev/app-plus/app-service.js
+++ b/Monitor-APP/unpackage/dist/dev/app-plus/app-service.js
@@ -7,7 +7,7 @@
 /***/ (function(module, exports, __webpack_require__) {
 
 "use strict";
-eval("__webpack_require__(/*! uni-pages */ 1);var _App = _interopRequireDefault(__webpack_require__(/*! ./App */ 107));\n\n\nvar _vue = _interopRequireDefault(__webpack_require__(/*! vue */ 66));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}function ownKeys(object, enumerableOnly) {var keys = Object.keys(object);if (Object.getOwnPropertySymbols) {var symbols = Object.getOwnPropertySymbols(object);if (enumerableOnly) symbols = symbols.filter(function (sym) {return Object.getOwnPropertyDescriptor(object, sym).enumerable;});keys.push.apply(keys, symbols);}return keys;}function _objectSpread(target) {for (var i = 1; i < arguments.length; i++) {var source = arguments[i] != null ? arguments[i] : {};if (i % 2) {ownKeys(Object(source), true).forEach(function (key) {_defineProperty(target, key, source[key]);});} else if (Object.getOwnPropertyDescriptors) {Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));} else {ownKeys(Object(source)).forEach(function (key) {Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));});}}return target;}function _defineProperty(obj, key, value) {if (key in obj) {Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true });} else {obj[key] = value;}return obj;}\n_vue.default.config.productionTip = false;\n_vue.default.prototype.baseHttp = 'http://';\n_vue.default.prototype.baseUrl = '/bfwcs';\n_App.default.mpType = 'app';\nvar app = new _vue.default(_objectSpread({},\n_App.default));\n\napp.$mount();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vbWFpbi5qcyJdLCJuYW1lcyI6WyJWdWUiLCJjb25maWciLCJwcm9kdWN0aW9uVGlwIiwicHJvdG90eXBlIiwiYmFzZUh0dHAiLCJiYXNlVXJsIiwiQXBwIiwibXBUeXBlIiwiYXBwIiwiJG1vdW50Il0sIm1hcHBpbmdzIjoiQUFBQSx3Q0FBbUI7OztBQUduQixzRTtBQUNBQSxhQUFJQyxNQUFKLENBQVdDLGFBQVgsR0FBMkIsS0FBM0I7QUFDQUYsYUFBSUcsU0FBSixDQUFjQyxRQUFkLEdBQXlCLFNBQXpCO0FBQ0FKLGFBQUlHLFNBQUosQ0FBY0UsT0FBZCxHQUF3QixRQUF4QjtBQUNBQyxhQUFJQyxNQUFKLEdBQWEsS0FBYjtBQUNBLElBQU1DLEdBQUcsR0FBRyxJQUFJUixZQUFKO0FBQ0xNLFlBREssRUFBWjs7QUFHQUUsR0FBRyxDQUFDQyxNQUFKIiwiZmlsZSI6IjAuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJ3VuaS1wYWdlcyc7aW1wb3J0IEFwcCBmcm9tICcuL0FwcCdcclxuXHJcblxyXG5pbXBvcnQgVnVlIGZyb20gJ3Z1ZSdcclxuVnVlLmNvbmZpZy5wcm9kdWN0aW9uVGlwID0gZmFsc2VcclxuVnVlLnByb3RvdHlwZS5iYXNlSHR0cCA9ICdodHRwOi8vJ1xyXG5WdWUucHJvdG90eXBlLmJhc2VVcmwgPSAnL2Jmd2NzJ1xyXG5BcHAubXBUeXBlID0gJ2FwcCdcclxuY29uc3QgYXBwID0gbmV3IFZ1ZSh7XHJcbiAgICAuLi5BcHBcclxufSlcclxuYXBwLiRtb3VudCgpXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///0\n");
+eval("__webpack_require__(/*! uni-pages */ 1);var _App = _interopRequireDefault(__webpack_require__(/*! ./App */ 107));\n\n\nvar _vue = _interopRequireDefault(__webpack_require__(/*! vue */ 61));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}function ownKeys(object, enumerableOnly) {var keys = Object.keys(object);if (Object.getOwnPropertySymbols) {var symbols = Object.getOwnPropertySymbols(object);if (enumerableOnly) symbols = symbols.filter(function (sym) {return Object.getOwnPropertyDescriptor(object, sym).enumerable;});keys.push.apply(keys, symbols);}return keys;}function _objectSpread(target) {for (var i = 1; i < arguments.length; i++) {var source = arguments[i] != null ? arguments[i] : {};if (i % 2) {ownKeys(Object(source), true).forEach(function (key) {_defineProperty(target, key, source[key]);});} else if (Object.getOwnPropertyDescriptors) {Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));} else {ownKeys(Object(source)).forEach(function (key) {Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));});}}return target;}function _defineProperty(obj, key, value) {if (key in obj) {Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true });} else {obj[key] = value;}return obj;}\n_vue.default.config.productionTip = false;\n_vue.default.prototype.baseHttp = 'http://';\n_vue.default.prototype.baseUrl = '/bfwcs';\n_App.default.mpType = 'app';\nvar app = new _vue.default(_objectSpread({},\n_App.default));\n\napp.$mount();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vbWFpbi5qcyJdLCJuYW1lcyI6WyJWdWUiLCJjb25maWciLCJwcm9kdWN0aW9uVGlwIiwicHJvdG90eXBlIiwiYmFzZUh0dHAiLCJiYXNlVXJsIiwiQXBwIiwibXBUeXBlIiwiYXBwIiwiJG1vdW50Il0sIm1hcHBpbmdzIjoiQUFBQSx3Q0FBbUI7OztBQUduQixzRTtBQUNBQSxhQUFJQyxNQUFKLENBQVdDLGFBQVgsR0FBMkIsS0FBM0I7QUFDQUYsYUFBSUcsU0FBSixDQUFjQyxRQUFkLEdBQXlCLFNBQXpCO0FBQ0FKLGFBQUlHLFNBQUosQ0FBY0UsT0FBZCxHQUF3QixRQUF4QjtBQUNBQyxhQUFJQyxNQUFKLEdBQWEsS0FBYjtBQUNBLElBQU1DLEdBQUcsR0FBRyxJQUFJUixZQUFKO0FBQ0xNLFlBREssRUFBWjs7QUFHQUUsR0FBRyxDQUFDQyxNQUFKIiwiZmlsZSI6IjAuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJ3VuaS1wYWdlcyc7aW1wb3J0IEFwcCBmcm9tICcuL0FwcCdcclxuXHJcblxyXG5pbXBvcnQgVnVlIGZyb20gJ3Z1ZSdcclxuVnVlLmNvbmZpZy5wcm9kdWN0aW9uVGlwID0gZmFsc2VcclxuVnVlLnByb3RvdHlwZS5iYXNlSHR0cCA9ICdodHRwOi8vJ1xyXG5WdWUucHJvdG90eXBlLmJhc2VVcmwgPSAnL2Jmd2NzJ1xyXG5BcHAubXBUeXBlID0gJ2FwcCdcclxuY29uc3QgYXBwID0gbmV3IFZ1ZSh7XHJcbiAgICAuLi5BcHBcclxufSlcclxuYXBwLiRtb3VudCgpXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///0\n");
 
 /***/ }),
 /* 1 */
@@ -53,7 +53,7 @@
   uni.restoreGlobal(weex, plus, setTimeout, clearTimeout, setInterval, clearInterval);
 }
 __definePage('pages/home/home', function () {return Vue.extend(__webpack_require__(/*! pages/home/home.vue?mpType=page */ 2).default);});
-__definePage('pages/index/index', function () {return Vue.extend(__webpack_require__(/*! pages/index/index.vue?mpType=page */ 20).default);});
+__definePage('pages/index/index', function () {return Vue.extend(__webpack_require__(/*! pages/index/index.vue?mpType=page */ 78).default);});
 __definePage('pages/index/monitor', function () {return Vue.extend(__webpack_require__(/*! pages/index/monitor.vue?mpType=page */ 102).default);});
 
 /***/ }),
@@ -65,7 +65,7 @@
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 
 "use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _home_vue_vue_type_template_id_44021cb6_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./home.vue?vue&type=template&id=44021cb6&mpType=page */ 3);\n/* harmony import */ var _home_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./home.vue?vue&type=script&lang=js&mpType=page */ 18);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _home_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _home_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 12);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n  _home_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n  _home_vue_vue_type_template_id_44021cb6_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n  _home_vue_vue_type_template_id_44021cb6_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n  false,\n  null,\n  null,\n  null,\n  false,\n  _home_vue_vue_type_template_id_44021cb6_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n  renderjs\n)\n\ncomponent.options.__file = \"pages/home/home.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBNEg7QUFDNUg7QUFDbUU7QUFDTDs7O0FBRzlEO0FBQ3VNO0FBQ3ZNLGdCQUFnQiwyTUFBVTtBQUMxQixFQUFFLHFGQUFNO0FBQ1IsRUFBRSwwRkFBTTtBQUNSLEVBQUUsbUdBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsOEZBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMi5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zLCByZWN5Y2xhYmxlUmVuZGVyLCBjb21wb25lbnRzIH0gZnJvbSBcIi4vaG9tZS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NDQwMjFjYjYmbXBUeXBlPXBhZ2VcIlxudmFyIHJlbmRlcmpzXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL2hvbWUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJm1wVHlwZT1wYWdlXCJcbmV4cG9ydCAqIGZyb20gXCIuL2hvbWUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJm1wVHlwZT1wYWdlXCJcblxuXG4vKiBub3JtYWxpemUgY29tcG9uZW50ICovXG5pbXBvcnQgbm9ybWFsaXplciBmcm9tIFwiIS4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgbnVsbCxcbiAgbnVsbCxcbiAgZmFsc2UsXG4gIGNvbXBvbmVudHMsXG4gIHJlbmRlcmpzXG4pXG5cbmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwicGFnZXMvaG9tZS9ob21lLnZ1ZVwiXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///2\n");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _home_vue_vue_type_template_id_44021cb6_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./home.vue?vue&type=template&id=44021cb6&mpType=page */ 3);\n/* harmony import */ var _home_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./home.vue?vue&type=script&lang=js&mpType=page */ 75);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _home_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _home_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 12);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n  _home_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n  _home_vue_vue_type_template_id_44021cb6_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n  _home_vue_vue_type_template_id_44021cb6_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n  false,\n  null,\n  null,\n  null,\n  false,\n  _home_vue_vue_type_template_id_44021cb6_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n  renderjs\n)\n\ncomponent.options.__file = \"pages/home/home.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBNEg7QUFDNUg7QUFDbUU7QUFDTDs7O0FBRzlEO0FBQ3VNO0FBQ3ZNLGdCQUFnQiwyTUFBVTtBQUMxQixFQUFFLHFGQUFNO0FBQ1IsRUFBRSwwRkFBTTtBQUNSLEVBQUUsbUdBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsOEZBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMi5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zLCByZWN5Y2xhYmxlUmVuZGVyLCBjb21wb25lbnRzIH0gZnJvbSBcIi4vaG9tZS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NDQwMjFjYjYmbXBUeXBlPXBhZ2VcIlxudmFyIHJlbmRlcmpzXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL2hvbWUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJm1wVHlwZT1wYWdlXCJcbmV4cG9ydCAqIGZyb20gXCIuL2hvbWUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJm1wVHlwZT1wYWdlXCJcblxuXG4vKiBub3JtYWxpemUgY29tcG9uZW50ICovXG5pbXBvcnQgbm9ybWFsaXplciBmcm9tIFwiIS4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgbnVsbCxcbiAgbnVsbCxcbiAgZmFsc2UsXG4gIGNvbXBvbmVudHMsXG4gIHJlbmRlcmpzXG4pXG5cbmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwicGFnZXMvaG9tZS9ob21lLnZ1ZVwiXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///2\n");
 
 /***/ }),
 /* 3 */
@@ -107,7 +107,9 @@
   components = {
     uniTransition: __webpack_require__(/*! @/uni_modules/uni-transition/components/uni-transition/uni-transition.vue */ 5)
       .default,
-    yBox: __webpack_require__(/*! @/components/y-box/y-box.vue */ 13).default
+    yBox: __webpack_require__(/*! @/components/y-box/y-box.vue */ 13).default,
+    qiunDataCharts: __webpack_require__(/*! @/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue */ 18)
+      .default
   }
 } catch (e) {
   if (
@@ -257,84 +259,236 @@
                                             src: _vm._$s(
                                               21,
                                               "a-src",
-                                              __webpack_require__(/*! ../../static/a1.png */ 91)
+                                              __webpack_require__(/*! ../../static/a1.png */ 71)
                                             ),
                                             _i: 21
                                           }
                                         }),
-                                        _c("view")
+                                        _c(
+                                          "view",
+                                          {
+                                            staticClass: _vm._$s(
+                                              22,
+                                              "sc",
+                                              "flex-col"
+                                            ),
+                                            attrs: { _i: 22 }
+                                          },
+                                          [
+                                            _c(
+                                              "view",
+                                              {
+                                                staticClass: _vm._$s(
+                                                  23,
+                                                  "sc",
+                                                  "flex-row"
+                                                ),
+                                                attrs: { _i: 23 }
+                                              },
+                                              [
+                                                _c("view", [
+                                                  _vm._v(
+                                                    _vm._$s(
+                                                      24,
+                                                      "t0-0",
+                                                      _vm._s(
+                                                        _vm.baseInfo.xDistance
+                                                      )
+                                                    )
+                                                  )
+                                                ]),
+                                                _c("view")
+                                              ]
+                                            ),
+                                            _c("view")
+                                          ]
+                                        )
                                       ]
                                     ),
                                     _c(
                                       "view",
                                       {
                                         staticClass: _vm._$s(
-                                          23,
+                                          27,
                                           "sc",
                                           "item-img"
                                         ),
-                                        attrs: { _i: 23 }
+                                        attrs: { _i: 27 }
                                       },
                                       [
                                         _c("image", {
                                           attrs: {
                                             src: _vm._$s(
-                                              24,
+                                              28,
                                               "a-src",
-                                              __webpack_require__(/*! ../../static/a1.png */ 91)
+                                              __webpack_require__(/*! ../../static/b1.png */ 72)
                                             ),
-                                            _i: 24
+                                            _i: 28
                                           }
                                         }),
-                                        _c("view")
+                                        _c(
+                                          "view",
+                                          {
+                                            staticClass: _vm._$s(
+                                              29,
+                                              "sc",
+                                              "flex-col"
+                                            ),
+                                            attrs: { _i: 29 }
+                                          },
+                                          [
+                                            _c(
+                                              "view",
+                                              {
+                                                staticClass: _vm._$s(
+                                                  30,
+                                                  "sc",
+                                                  "flex-row"
+                                                ),
+                                                attrs: { _i: 30 }
+                                              },
+                                              [
+                                                _c("view", [
+                                                  _vm._v(
+                                                    _vm._$s(
+                                                      31,
+                                                      "t0-0",
+                                                      _vm._s(
+                                                        _vm.baseInfo.yDistance
+                                                      )
+                                                    )
+                                                  )
+                                                ]),
+                                                _c("view")
+                                              ]
+                                            ),
+                                            _c("view")
+                                          ]
+                                        )
                                       ]
                                     ),
                                     _c(
                                       "view",
                                       {
                                         staticClass: _vm._$s(
-                                          26,
+                                          34,
                                           "sc",
                                           "item-img"
                                         ),
-                                        attrs: { _i: 26 }
+                                        attrs: { _i: 34 }
                                       },
                                       [
                                         _c("image", {
                                           attrs: {
                                             src: _vm._$s(
-                                              27,
+                                              35,
                                               "a-src",
-                                              __webpack_require__(/*! ../../static/a1.png */ 91)
+                                              __webpack_require__(/*! ../../static/c1.png */ 73)
                                             ),
-                                            _i: 27
+                                            _i: 35
                                           }
                                         }),
-                                        _c("view")
+                                        _c(
+                                          "view",
+                                          {
+                                            staticClass: _vm._$s(
+                                              36,
+                                              "sc",
+                                              "flex-col"
+                                            ),
+                                            attrs: { _i: 36 }
+                                          },
+                                          [
+                                            _c(
+                                              "view",
+                                              {
+                                                staticClass: _vm._$s(
+                                                  37,
+                                                  "sc",
+                                                  "flex-row"
+                                                ),
+                                                attrs: { _i: 37 }
+                                              },
+                                              [
+                                                _c("view", [
+                                                  _vm._v(
+                                                    _vm._$s(
+                                                      38,
+                                                      "t0-0",
+                                                      _vm._s(
+                                                        _vm.baseInfo.xDuration
+                                                      )
+                                                    )
+                                                  )
+                                                ]),
+                                                _c("view")
+                                              ]
+                                            ),
+                                            _c("view")
+                                          ]
+                                        )
                                       ]
                                     ),
                                     _c(
                                       "view",
                                       {
                                         staticClass: _vm._$s(
-                                          29,
+                                          41,
                                           "sc",
                                           "item-img"
                                         ),
-                                        attrs: { _i: 29 }
+                                        attrs: { _i: 41 }
                                       },
                                       [
                                         _c("image", {
                                           attrs: {
                                             src: _vm._$s(
-                                              30,
+                                              42,
                                               "a-src",
-                                              __webpack_require__(/*! ../../static/a1.png */ 91)
+                                              __webpack_require__(/*! ../../static/d1.png */ 74)
                                             ),
-                                            _i: 30
+                                            _i: 42
                                           }
                                         }),
-                                        _c("view")
+                                        _c(
+                                          "view",
+                                          {
+                                            staticClass: _vm._$s(
+                                              43,
+                                              "sc",
+                                              "flex-col"
+                                            ),
+                                            attrs: { _i: 43 }
+                                          },
+                                          [
+                                            _c(
+                                              "view",
+                                              {
+                                                staticClass: _vm._$s(
+                                                  44,
+                                                  "sc",
+                                                  "flex-row"
+                                                ),
+                                                attrs: { _i: 44 }
+                                              },
+                                              [
+                                                _c("view", [
+                                                  _vm._v(
+                                                    _vm._$s(
+                                                      45,
+                                                      "t0-0",
+                                                      _vm._s(
+                                                        _vm.baseInfo.yDuration
+                                                      )
+                                                    )
+                                                  )
+                                                ]),
+                                                _c("view")
+                                              ]
+                                            ),
+                                            _c("view")
+                                          ]
+                                        )
                                       ]
                                     )
                                   ]
@@ -344,22 +498,150 @@
                             _c(
                               "view",
                               {
-                                staticClass: _vm._$s(32, "sc", "box-item"),
-                                attrs: { _i: 32 }
+                                staticClass: _vm._$s(48, "sc", "box-item"),
+                                attrs: { _i: 48 }
                               },
                               [
-                                _c("text", {
-                                  staticClass: _vm._$s(33, "sc", "item-title"),
-                                  attrs: { _i: 33 }
-                                }),
-                                _c("text", {
-                                  staticClass: _vm._$s(
-                                    34,
-                                    "sc",
-                                    "item-subTitle"
-                                  ),
-                                  attrs: { _i: 34 }
-                                })
+                                _c(
+                                  "view",
+                                  {
+                                    staticClass: _vm._$s(49, "sc", "flex-row"),
+                                    attrs: { _i: 49 }
+                                  },
+                                  [
+                                    _c(
+                                      "view",
+                                      {
+                                        staticClass: _vm._$s(
+                                          50,
+                                          "sc",
+                                          "flex-col"
+                                        ),
+                                        attrs: { _i: 50 }
+                                      },
+                                      [
+                                        _c("text", {
+                                          staticClass: _vm._$s(
+                                            51,
+                                            "sc",
+                                            "item-title"
+                                          ),
+                                          attrs: { _i: 51 }
+                                        }),
+                                        _c("text", {
+                                          staticClass: _vm._$s(
+                                            52,
+                                            "sc",
+                                            "item-subTitle"
+                                          ),
+                                          attrs: { _i: 52 }
+                                        })
+                                      ]
+                                    ),
+                                    _c("view", [
+                                      _c(
+                                        "view",
+                                        {
+                                          staticClass: _vm._$s(
+                                            54,
+                                            "sc",
+                                            "flex-col"
+                                          ),
+                                          attrs: { _i: 54 }
+                                        },
+                                        [
+                                          _c(
+                                            "text",
+                                            {
+                                              staticClass: _vm._$s(
+                                                55,
+                                                "sc",
+                                                "item-title"
+                                              ),
+                                              attrs: { _i: 55 }
+                                            },
+                                            [
+                                              _vm._v(
+                                                _vm._$s(
+                                                  55,
+                                                  "t0-0",
+                                                  _vm._s(_vm.baseInfo.usedPr)
+                                                )
+                                              )
+                                            ]
+                                          ),
+                                          _c("text", {
+                                            staticClass: _vm._$s(
+                                              56,
+                                              "sc",
+                                              "item-subTitle"
+                                            ),
+                                            attrs: { _i: 56 }
+                                          })
+                                        ]
+                                      )
+                                    ])
+                                  ]
+                                ),
+                                _c(
+                                  "view",
+                                  {
+                                    staticClass: _vm._$s(57, "sc", "flex-col"),
+                                    attrs: { _i: 57 }
+                                  },
+                                  [
+                                    _c(
+                                      "view",
+                                      {
+                                        staticClass: _vm._$s(
+                                          58,
+                                          "sc",
+                                          "flex-row"
+                                        ),
+                                        attrs: { _i: 58 }
+                                      },
+                                      [
+                                        _c(
+                                          "view",
+                                          {
+                                            staticClass: _vm._$s(
+                                              59,
+                                              "sc",
+                                              "progressBar"
+                                            ),
+                                            attrs: { _i: 59 }
+                                          },
+                                          [
+                                            _c("view", {
+                                              staticClass: _vm._$s(
+                                                60,
+                                                "sc",
+                                                "progress"
+                                              ),
+                                              style: _vm._$s(
+                                                60,
+                                                "s",
+                                                "width:" +
+                                                  _vm.baseInfo.usedPr +
+                                                  "%"
+                                              ),
+                                              attrs: { _i: 60 }
+                                            })
+                                          ]
+                                        ),
+                                        _c("view", [
+                                          _vm._v(
+                                            _vm._$s(
+                                              61,
+                                              "t0-0",
+                                              _vm._s(_vm.baseInfo.used)
+                                            )
+                                          )
+                                        ])
+                                      ]
+                                    )
+                                  ]
+                                )
                               ]
                             )
                           ])
@@ -371,23 +653,235 @@
                   _c(
                     "view",
                     {
-                      staticClass: _vm._$s(35, "sc", "mian-item"),
-                      attrs: { _i: 35 }
+                      staticClass: _vm._$s(62, "sc", "mian-item"),
+                      attrs: { _i: 62 }
                     },
                     [
                       _c(
                         "view",
                         {
-                          staticClass: _vm._$s(36, "sc", "mian-item-box"),
-                          attrs: { _i: 36 }
+                          staticClass: _vm._$s(63, "sc", "mian-item-box"),
+                          attrs: { _i: 63 }
                         },
                         [
                           _c("view", [
-                            _c("view", [_c("y-box", { attrs: { _i: 39 } })], 1),
+                            _c(
+                              "view",
+                              [
+                                _c("y-box", { attrs: { _i: 66 } }, [
+                                  _c(
+                                    "view",
+                                    {
+                                      staticClass: _vm._$s(
+                                        67,
+                                        "sc",
+                                        "box-item"
+                                      ),
+                                      attrs: { _i: 67 }
+                                    },
+                                    [
+                                      _c(
+                                        "view",
+                                        {
+                                          staticClass: _vm._$s(
+                                            68,
+                                            "sc",
+                                            "flex-row"
+                                          ),
+                                          attrs: { _i: 68 }
+                                        },
+                                        [
+                                          _c(
+                                            "view",
+                                            {
+                                              staticClass: _vm._$s(
+                                                69,
+                                                "sc",
+                                                "flex-col"
+                                              ),
+                                              attrs: { _i: 69 }
+                                            },
+                                            [
+                                              _c("text", {
+                                                staticClass: _vm._$s(
+                                                  70,
+                                                  "sc",
+                                                  "item-title"
+                                                ),
+                                                attrs: { _i: 70 }
+                                              }),
+                                              _c("text", {
+                                                staticClass: _vm._$s(
+                                                  71,
+                                                  "sc",
+                                                  "item-subTitle"
+                                                ),
+                                                attrs: { _i: 71 }
+                                              })
+                                            ]
+                                          ),
+                                          _c("view", [
+                                            _c(
+                                              "view",
+                                              {
+                                                staticClass: _vm._$s(
+                                                  73,
+                                                  "sc",
+                                                  "flex-col"
+                                                ),
+                                                attrs: { _i: 73 }
+                                              },
+                                              [
+                                                _c("text", {
+                                                  staticClass: _vm._$s(
+                                                    74,
+                                                    "sc",
+                                                    "item-title"
+                                                  ),
+                                                  attrs: { _i: 74 }
+                                                }),
+                                                _c("text", {
+                                                  staticClass: _vm._$s(
+                                                    75,
+                                                    "sc",
+                                                    "item-subTitle"
+                                                  ),
+                                                  attrs: { _i: 75 }
+                                                })
+                                              ]
+                                            )
+                                          ])
+                                        ]
+                                      ),
+                                      _vm._$s(76, "i", !_vm.showCharts)
+                                        ? _c(
+                                            "view",
+                                            {
+                                              staticClass: _vm._$s(
+                                                76,
+                                                "sc",
+                                                "charts-box"
+                                              ),
+                                              attrs: { _i: 76 }
+                                            },
+                                            [
+                                              _c("qiun-data-charts", {
+                                                attrs: {
+                                                  type: "line",
+                                                  chartData:
+                                                    _vm.chartsDataLine1,
+                                                  echartsH5: true,
+                                                  echartsApp: true,
+                                                  _i: 77
+                                                }
+                                              })
+                                            ],
+                                            1
+                                          )
+                                        : _vm._e()
+                                    ]
+                                  )
+                                ])
+                              ],
+                              1
+                            ),
                             _c("view"),
-                            _c("view", [_c("y-box", { attrs: { _i: 42 } })], 1),
+                            _c(
+                              "view",
+                              [
+                                _c("y-box", { attrs: { _i: 80 } }, [
+                                  _c(
+                                    "view",
+                                    {
+                                      staticClass: _vm._$s(
+                                        81,
+                                        "sc",
+                                        "box-item"
+                                      ),
+                                      attrs: { _i: 81 }
+                                    },
+                                    [
+                                      _c(
+                                        "view",
+                                        {
+                                          staticClass: _vm._$s(
+                                            82,
+                                            "sc",
+                                            "flex-row"
+                                          ),
+                                          attrs: { _i: 82 }
+                                        },
+                                        [
+                                          _c(
+                                            "view",
+                                            {
+                                              staticClass: _vm._$s(
+                                                83,
+                                                "sc",
+                                                "flex-col"
+                                              ),
+                                              attrs: { _i: 83 }
+                                            },
+                                            [
+                                              _c("text", {
+                                                staticClass: _vm._$s(
+                                                  84,
+                                                  "sc",
+                                                  "item-title"
+                                                ),
+                                                attrs: { _i: 84 }
+                                              }),
+                                              _c("text", {
+                                                staticClass: _vm._$s(
+                                                  85,
+                                                  "sc",
+                                                  "item-subTitle"
+                                                ),
+                                                attrs: { _i: 85 }
+                                              })
+                                            ]
+                                          ),
+                                          _c("view", [
+                                            _c(
+                                              "view",
+                                              {
+                                                staticClass: _vm._$s(
+                                                  87,
+                                                  "sc",
+                                                  "flex-col"
+                                                ),
+                                                attrs: { _i: 87 }
+                                              },
+                                              [
+                                                _c("text", {
+                                                  staticClass: _vm._$s(
+                                                    88,
+                                                    "sc",
+                                                    "item-title"
+                                                  ),
+                                                  attrs: { _i: 88 }
+                                                }),
+                                                _c("text", {
+                                                  staticClass: _vm._$s(
+                                                    89,
+                                                    "sc",
+                                                    "item-subTitle"
+                                                  ),
+                                                  attrs: { _i: 89 }
+                                                })
+                                              ]
+                                            )
+                                          ])
+                                        ]
+                                      )
+                                    ]
+                                  )
+                                ])
+                              ],
+                              1
+                            ),
                             _c("view"),
-                            _c("view", [_c("y-box", { attrs: { _i: 45 } })], 1)
+                            _c("view", [_c("y-box", { attrs: { _i: 92 } })], 1)
                           ])
                         ]
                       )
@@ -849,1521 +1343,6 @@
 
 /***/ }),
 /* 18 */
-/*!***************************************************************************************************!*\
-  !*** D:/Workspace/zy/private/Monitor-APP/pages/home/home.vue?vue&type=script&lang=js&mpType=page ***!
-  \***************************************************************************************************/
-/*! no static exports found */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_home_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./home.vue?vue&type=script&lang=js&mpType=page */ 19);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_home_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_home_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_home_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_home_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_home_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQTJyQixDQUFnQiw2ckJBQUcsRUFBQyIsImZpbGUiOiIxOC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNi0xIS4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2hvbWUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJm1wVHlwZT1wYWdlXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNi0xIS4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2hvbWUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJm1wVHlwZT1wYWdlXCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///18\n");
-
-/***/ }),
-/* 19 */
-/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
-  !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Workspace/zy/private/Monitor-APP/pages/home/home.vue?vue&type=script&lang=js&mpType=page ***!
-  \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
-/*! no static exports found */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-eval("Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0; //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default =\n{\n  data: function data() {\n    return {\n      homeViewShow: true,\n      modeClass: ['fade', 'slide-top'],\n      homeView: {\n        justifyContent: 'center',\n        alignItems: 'center',\n        width: '100vw',\n        height: '100vh',\n        borderRadius: '5px',\n        textAlign: 'center',\n        backgroundColor: '#4cd964',\n        boxShadow: '0 0 5px 1px rgba(0,0,0,0.2)' },\n\n      duration: 1000,\n      calendar: '',\n      xDistance: '',\n      yDistance: '',\n      xDuration: '',\n      yDuration: '',\n      fontSize: '',\n      height: '' };\n\n  },\n  onShow: function onShow() {\n    // 闅愯棌鏃堕棿,鐢甸噺,淇″彿绛塡n\n    plus.navigator.setFullscreen(true);\n\n  },\n  onLoad: function onLoad() {var _this = this;\n    this.getDate();\n    setInterval(function () {\n      _this.getDate();\n    }, 1000);\n    setInterval(function () {\n      // this.handle(['fade', 'slide-top'])\n    }, 4000);\n  },\n  methods: {\n    handle: function handle(type) {\n      this.homeViewShow = !this.homeViewShow;\n      this.modeClass = type;\n    },\n    // 鏃ュ巻\n    getDate: function getDate() {\n      var dt = new Date();\n      var year, month, day, hours, minutes, seconds, weeks;\n      year = dt.getFullYear();\n      month = dt.getMonth() + 1 < 10 ? '0' + (dt.getMonth() + 1) : dt.getMonth() + 1;\n      day = dt.getDate() < 10 ? '0' + dt.getDate() : dt.getDate();\n      hours = dt.getHours() < 10 ? '0' + dt.getHours() : dt.getHours();\n      minutes = dt.getMinutes() < 10 ? '0' + dt.getMinutes() : dt.getMinutes();\n      seconds = dt.getSeconds() < 10 ? '0' + dt.getSeconds() : dt.getSeconds();\n      weeks = dt.getDay();\n      switch (weeks) {\n        case 0:weeks = \"鏄熸湡鏃";break;\n        case 1:weeks = \"鏄熸湡涓�\";break;\n        case 2:weeks = \"鏄熸湡浜孿";break;\n        case 3:weeks = \"鏄熸湡涓塡";break;\n        case 4:weeks = \"鏄熸湡鍥沑";break;\n        case 5:weeks = \"鏄熸湡浜擻";break;\n        default:weeks = \"鏄熸湡鍏璡";}\n\n      this.calendar = year + \"骞碶" + month + \"鏈圽" + day + \"鏃� \" + hours + \":\" + minutes + \":\" + seconds + \" \" + weeks;\n    } } };exports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaG9tZS9ob21lLnZ1ZSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBcUZBO0FBQ0EsTUFEQSxrQkFDQTtBQUNBO0FBQ0Esd0JBREE7QUFFQSxzQ0FGQTtBQUdBO0FBQ0EsZ0NBREE7QUFFQSw0QkFGQTtBQUdBLHNCQUhBO0FBSUEsdUJBSkE7QUFLQSwyQkFMQTtBQU1BLDJCQU5BO0FBT0Esa0NBUEE7QUFRQSxnREFSQSxFQUhBOztBQWFBLG9CQWJBO0FBY0Esa0JBZEE7QUFlQSxtQkFmQTtBQWdCQSxtQkFoQkE7QUFpQkEsbUJBakJBO0FBa0JBLG1CQWxCQTtBQW1CQSxrQkFuQkE7QUFvQkEsZ0JBcEJBOztBQXNCQSxHQXhCQTtBQXlCQSxRQXpCQSxvQkF5QkE7QUFDQTs7QUFFQTs7QUFFQSxHQTlCQTtBQStCQSxRQS9CQSxvQkErQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUZBLEVBRUEsSUFGQTtBQUdBO0FBQ0E7QUFDQSxLQUZBLEVBRUEsSUFGQTtBQUdBLEdBdkNBO0FBd0NBO0FBQ0EsVUFEQSxrQkFDQSxJQURBLEVBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FKQTtBQUtBO0FBQ0EsV0FOQSxxQkFNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEJBUEE7O0FBU0E7QUFDQSxLQTFCQSxFQXhDQSxFIiwiZmlsZSI6IjE5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiPHRlbXBsYXRlPlxyXG5cdDx2aWV3IGNsYXNzPVwiY29udGFpbmVyXCI+XHJcblx0XHQ8IS0tIOS4u+inhuWbviAtLT5cclxuXHRcdDx1bmktdHJhbnNpdGlvbiA6ZHVyYXRpb249XCJkdXJhdGlvblwiIDptb2RlLWNsYXNzPVwibW9kZUNsYXNzXCIgOnN0eWxlcz1cImhvbWVWaWV3XCIgOnNob3c9XCJob21lVmlld1Nob3dcIj5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJob21lLXZpZXdcIj5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cImhlYWRcIj5cclxuXHRcdFx0XHRcdDx0ZXh0PuiHquWKqOS7k+W6k1dDU+ebkeaOp+W5s+WPsDwvdGV4dD5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PCEtLSDml6XljoYgLS0+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0aW1lLXRvb2xzXCI+e3tjYWxlbmRhcn19PC92aWV3PlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiYnV0dG9uLWxlZnRcIj48L3ZpZXc+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJidXR0b24tcmlnaHRcIj48L3ZpZXc+XHJcblx0XHRcdFx0PCEtLSDkuLvkvZMgLS0+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJtYWluXCI+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIm1pYW4taXRlbVwiPlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIm1pYW4taXRlbS1ib3hcIj5cclxuXHRcdFx0XHRcdFx0XHQ8eS1ib3g+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJveC1pdGVtXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwiaXRlbS10aXRsZVwiPuiHquWKqOWMlueri+S9k+S7k+W6kzwvdGV4dD5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJpdGVtLXN1YlRpdGxlXCI+QXV0b21hdGljIFN0b3JhZ2VhbmQgUmV0cmlldmFsIFN5c3RlbTwvdGV4dD5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJpdGVtLXRleHRcIj7liKnnlKjnq4vkvZPku5PlupPorr7lpIflj6/lrp7njrDku5PlupPpq5jlsYLlkIjnkIbljJbjgIHlrZjlj5boh6rliqjljJbjgIHmk43kvZznroDkvr/ljJbvvJvoh6rliqjljJbnq4vkvZPku5PlupPmmK/lvZPliY3mioDmnK/msLTlubPovoPpq5jnmoTlvaLlvI/jgILoh6rliqjljJbnq4vkvZPku5PlupPnmoTkuLvkvZPnlLHotKfmnrbjgIHlt7fpgZPlvI/loIblnpvotbfph43mnLrjgIHlhaXvvIjlh7rvvInlupPlt6XkvZzlj7Dlkozoh6rliqjov5Dov5vvvIjlh7rvvInlj4rmk43kvZzmjqfliLbns7vnu5/nu4TmiJDjgILotKfmnrbmmK/pkqLnu5PmnoTmiJbpkqLnrYvmt7flh53lnJ/nu5PmnoTnmoTlu7rnrZHnianmiJbnu5PmnoTkvZPvvIzotKfmnrblhoXmmK/moIflh4blsLrlr7jnmoTotKfkvY3nqbrpl7TvvIzlt7fpgZPloIblnpvotbfph43mnLrnqb/ooYzkuo7otKfmnrbkuYvpl7TnmoTlt7fpgZPkuK3vvIzlrozmiJDlrZjjgIHlj5botKfnmoTlt6XkvZzjgILnrqHnkIbkuIrph4fnlKjorqHnrpfmnLrlj4rmnaHlvaLnoIHmioDmnK/jgII8L3RleHQ+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJveC1pdGVtXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwiaXRlbS10aXRsZVwiPuS7k+W6k+aVsOaNrjwvdGV4dD5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJpdGVtLXN1YlRpdGxlXCI+d2FyZWhvdXNlIGRhdGE8L3RleHQ+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiaW1nLWJveFwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiaXRlbS1pbWdcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxpbWFnZSBzcmM9XCIuLi8uLi9zdGF0aWMvYTEucG5nXCIgbW9kZT1cImFzcGVjdEZpdFwiPjwvaW1hZ2U+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3Pue0r+iuoei1sOihjOi3neemuyjnsbMpPC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIml0ZW0taW1nXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8aW1hZ2Ugc3JjPVwiLi4vLi4vc3RhdGljL2ExLnBuZ1wiIG1vZGU9XCJhc3BlY3RGaXRcIj48L2ltYWdlPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldz7ntK/orqHotbDooYzot53nprso57GzKTwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpdGVtLWltZ1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGltYWdlIHNyYz1cIi4uLy4uL3N0YXRpYy9hMS5wbmdcIiBtb2RlPVwiYXNwZWN0Rml0XCI+PC9pbWFnZT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXc+57Sv6K6h6LWw6KGM6Led56a7KOexsyk8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiaXRlbS1pbWdcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxpbWFnZSBzcmM9XCIuLi8uLi9zdGF0aWMvYTEucG5nXCIgbW9kZT1cImFzcGVjdEZpdFwiPjwvaW1hZ2U+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3Pue0r+iuoei1sOihjOi3neemuyjnsbMpPC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJib3gtaXRlbVwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cIml0ZW0tdGl0bGVcIj7lupPkvY3kvb/nlKjnjoc8L3RleHQ+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwiaXRlbS1zdWJUaXRsZVwiPkVRVUlQTUVOVCBVU0FHRSBUSElTIE1PTlRIPC90ZXh0PlxyXG5cdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdDwveS1ib3g+XHJcblx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwibWlhbi1pdGVtXCI+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwibWlhbi1pdGVtLWJveFwiPlxyXG5cdFx0XHRcdFx0XHRcdDx2aWV3IHN0eWxlPVwid2lkdGg6IDEwMCU7aGVpZ2h0OiAxMDAlO1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgc3R5bGU9XCJoZWlnaHQ6IDM4JTtcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHktYm94PjwveS1ib3g+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBzdHlsZT1cImhlaWdodDogMiU7XCI+PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgc3R5bGU9XCJoZWlnaHQ6IDM4JTtcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHktYm94PjwveS1ib3g+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBzdHlsZT1cImhlaWdodDogMiU7XCI+PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgc3R5bGU9XCJoZWlnaHQ6IDIwJTtcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHktYm94PjwveS1ib3g+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHQ8L3VuaS10cmFuc2l0aW9uPlxyXG5cdFx0PCEtLSDlhajmnb8v5ouj5paZ5L+h5oGvIC0tPlxyXG5cdFx0PCEtLSA8dmlldyBjbGFzcz1cImluZm9cIj5cclxuXHRcdFx0XHJcblx0XHQ8L3ZpZXc+IC0tPlxyXG5cdFx0PCEtLSDlvILluLjkv6Hmga8gLS0+XHJcblx0XHQ8IS0tIDx2aWV3IGNsYXNzPVwiZXJyb3ItaW5mb1wiPjwvdmlldz4gLS0+XHJcblx0PC92aWV3PlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuXHRleHBvcnQgZGVmYXVsdCB7XHJcblx0XHRkYXRhKCkge1xyXG5cdFx0XHRyZXR1cm4ge1xyXG5cdFx0XHRcdGhvbWVWaWV3U2hvdzogdHJ1ZSxcclxuXHRcdFx0XHRtb2RlQ2xhc3M6IFsnZmFkZScsICdzbGlkZS10b3AnXSxcclxuXHRcdFx0XHRob21lVmlldzoge1xyXG5cdFx0XHRcdFx0anVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxyXG5cdFx0XHRcdFx0YWxpZ25JdGVtczogJ2NlbnRlcicsXHJcblx0XHRcdFx0XHR3aWR0aDogJzEwMHZ3JyxcclxuXHRcdFx0XHRcdGhlaWdodDogJzEwMHZoJyxcclxuXHRcdFx0XHRcdGJvcmRlclJhZGl1czogJzVweCcsXHJcblx0XHRcdFx0XHR0ZXh0QWxpZ246ICdjZW50ZXInLFxyXG5cdFx0XHRcdFx0YmFja2dyb3VuZENvbG9yOiAnIzRjZDk2NCcsXHJcblx0XHRcdFx0XHRib3hTaGFkb3c6ICcwIDAgNXB4IDFweCByZ2JhKDAsMCwwLDAuMiknXHJcblx0XHRcdFx0fSxcclxuXHRcdFx0XHRkdXJhdGlvbjogMTAwMCxcclxuXHRcdFx0XHRjYWxlbmRhcjogJycsXHJcblx0XHRcdFx0eERpc3RhbmNlOiAnJyxcclxuXHRcdFx0XHR5RGlzdGFuY2U6ICcnLFxyXG5cdFx0XHRcdHhEdXJhdGlvbjogJycsXHJcblx0XHRcdFx0eUR1cmF0aW9uOiAnJyxcclxuXHRcdFx0XHRmb250U2l6ZTogJycsXHJcblx0XHRcdFx0aGVpZ2h0OiAnJ1xyXG5cdFx0XHR9XHJcblx0XHR9LFxyXG5cdFx0b25TaG93KCkge1xyXG5cdFx0XHQvLyDpmpDol4/ml7bpl7Qs55S16YePLOS/oeWPt+etiVxyXG5cdFx0XHQvLyAjaWZkZWYgQVBQLVBMVVNcclxuXHRcdFx0cGx1cy5uYXZpZ2F0b3Iuc2V0RnVsbHNjcmVlbih0cnVlKVxyXG5cdFx0XHQvLyAjZW5kaWZcclxuXHRcdH0sXHJcblx0XHRvbkxvYWQoKSB7XHJcblx0XHRcdHRoaXMuZ2V0RGF0ZSgpXHJcblx0XHRcdHNldEludGVydmFsKCgpPT57XHJcblx0XHRcdFx0dGhpcy5nZXREYXRlKClcclxuXHRcdFx0fSwxMDAwKVxyXG5cdFx0XHRzZXRJbnRlcnZhbCgoKT0+e1xyXG5cdFx0XHRcdC8vIHRoaXMuaGFuZGxlKFsnZmFkZScsICdzbGlkZS10b3AnXSlcclxuXHRcdFx0fSw0MDAwKVxyXG5cdFx0fSxcclxuXHRcdG1ldGhvZHM6IHtcclxuXHRcdFx0aGFuZGxlKHR5cGUpIHtcclxuXHRcdFx0XHR0aGlzLmhvbWVWaWV3U2hvdyA9ICF0aGlzLmhvbWVWaWV3U2hvd1xyXG5cdFx0XHRcdHRoaXMubW9kZUNsYXNzID0gdHlwZVxyXG5cdFx0XHR9LFxyXG5cdFx0XHQvLyDml6XljoZcclxuXHRcdFx0Z2V0RGF0ZSgpIHtcclxuXHRcdFx0XHR2YXIgZHQgPSBuZXcgRGF0ZSgpO1xyXG5cdFx0XHRcdHZhciB5ZWFyLG1vbnRoLGRheSxob3VycyxtaW51dGVzLHNlY29uZHMsd2Vla3NcclxuXHRcdFx0XHR5ZWFyID0gZHQuZ2V0RnVsbFllYXIoKTtcclxuXHRcdFx0XHRtb250aCA9IChkdC5nZXRNb250aCgpKzEpIDwgMTAgPyAnMCcrIChkdC5nZXRNb250aCgpKzEpIDogKGR0LmdldE1vbnRoKCkrMSk7XHJcblx0XHRcdFx0ZGF5ID0gZHQuZ2V0RGF0ZSgpIDwgMTAgPyAnMCcrZHQuZ2V0RGF0ZSgpIDogZHQuZ2V0RGF0ZSgpO1xyXG5cdFx0XHRcdGhvdXJzID0gZHQuZ2V0SG91cnMoKSA8IDEwID8gJzAnICsgZHQuZ2V0SG91cnMoKSA6IGR0LmdldEhvdXJzKCk7XHJcblx0XHRcdFx0bWludXRlcyA9IGR0LmdldE1pbnV0ZXMoKSA8IDEwID8gJzAnICsgZHQuZ2V0TWludXRlcygpIDogZHQuZ2V0TWludXRlcygpO1xyXG5cdFx0XHRcdHNlY29uZHMgPSBkdC5nZXRTZWNvbmRzKCkgPCAxMCA/ICcwJyArIGR0LmdldFNlY29uZHMoKSA6IGR0LmdldFNlY29uZHMoKTsgXHJcblx0XHRcdFx0d2Vla3MgPSBkdC5nZXREYXkoKTsgXHJcblx0XHRcdFx0c3dpdGNoICh3ZWVrcykge1xyXG5cdFx0XHRcdFx0Y2FzZSAwOiB3ZWVrcyA9IFwi5pif5pyf5pelXCI7IGJyZWFrO1xyXG5cdFx0XHRcdFx0Y2FzZSAxOiB3ZWVrcyA9IFwi5pif5pyf5LiAXCI7IGJyZWFrO1xyXG5cdFx0XHRcdFx0Y2FzZSAyOiB3ZWVrcyA9IFwi5pif5pyf5LqMXCI7IGJyZWFrO1xyXG5cdFx0XHRcdFx0Y2FzZSAzOiB3ZWVrcyA9IFwi5pif5pyf5LiJXCI7IGJyZWFrO1xyXG5cdFx0XHRcdFx0Y2FzZSA0OiB3ZWVrcyA9IFwi5pif5pyf5ZubXCI7IGJyZWFrO1xyXG5cdFx0XHRcdFx0Y2FzZSA1OiB3ZWVrcyA9IFwi5pif5pyf5LqUXCI7IGJyZWFrO1xyXG5cdFx0XHRcdFx0ZGVmYXVsdCA6IHdlZWtzID0gXCLmmJ/mnJ/lha1cIjtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0dGhpcy5jYWxlbmRhciA9IHllYXIgKyBcIuW5tFwiICsgbW9udGggKyBcIuaciFwiICsgZGF5ICsgXCLml6UgXCIgKyBob3VycyArIFwiOlwiICsgbWludXRlcyArIFwiOlwiICsgc2Vjb25kcyArIFwiIFwiICsgd2Vla3NcclxuXHRcdFx0fSxcclxuXHRcdH1cclxuXHRcdFxyXG5cdH1cclxuPC9zY3JpcHQ+XHJcblxyXG48c3R5bGU+XHJcblx0QGltcG9ydCB1cmwoXCIuLi8uLi9zdGF0aWMvY3NzL2NvbW1vbi5jc3NcIik7XHJcblx0LmNvbnRhaW5lcntcclxuXHRcdHdpZHRoOiAxMDB2dztcclxuXHRcdG1pbi1oZWlnaHQ6IDEwMHZoO1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogYmx1ZTtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRcdGNvbG9yOiAjZmZmO1xyXG5cdFx0XHJcblx0fVxyXG5cdC8qIOS4u+inhuWbviAqL1xyXG5cdC5ob21lLXZpZXcge1xyXG5cdFx0d2lkdGg6IDEwMHZ3O1xyXG5cdFx0bWluLWhlaWdodDogMTAwdmg7XHJcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vLi4vc3RhdGljL2JhY2tncm91bmQucG5nKTtcclxuXHRcdGJhY2tncm91bmQtc2l6ZTogMTAwdncgMTAwdmg7XHJcblx0fVxyXG5cdC5ob21lLXJpZ2h0IHtcclxuXHRcdHdpZHRoOiA1MHZ3O1xyXG5cdFx0aGVpZ2h0OiA4OXZoO1xyXG5cdFx0LyogYmFja2dyb3VuZC1jb2xvcjogY2FkZXRibHVlOyAqL1xyXG5cdH1cclxuXHQuaG9tZS1yaWdodC1ib3gge1xyXG5cdFx0d2lkdGg6IDk4JTtcclxuXHRcdGhlaWdodDogOTglO1xyXG5cdH1cclxuXHQuaGVhZCB7XHJcblx0XHR3aWR0aDogMTAwdnc7XHJcblx0XHRoZWlnaHQ6IDExdmg7XHJcblx0XHRmb250LXNpemU6NHZ3O1xyXG5cdFx0Zm9udC13ZWlnaHQ6IDcwMDtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcblx0XHR0cmFuc2Zvcm06IHNjYWxlKDAuNyk7XHJcblx0fVxyXG5cdC50aW1lLXRvb2xzIHtcclxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdHJpZ2h0OiAyJTtcclxuXHRcdHRvcDogMiU7XHJcblx0XHRmb250LXNpemU6MXZ3O1xyXG5cdFx0dHJhbnNmb3JtOiBzY2FsZSgwLjgpO1xyXG5cdH1cclxuXHQuYnV0dG9uLWxlZnQge1xyXG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKC4uLy4uL3N0YXRpYy9yaWdodC5wbmcpO1xyXG5cdFx0YmFja2dyb3VuZC1zaXplOiAxMDAlIDEwMCU7XHJcblx0XHR0b3A6IDEuOCU7XHJcblx0XHRsZWZ0OiAyMS4zJTtcclxuXHRcdHdpZHRoOiAxMy41JTtcclxuXHRcdGhlaWdodDogOC41JTtcclxuXHRcdHRyYW5zZm9ybTogc2NhbGVYKC0xKTtcclxuXHR9XHJcblx0LmJ1dHRvbi1yaWdodCB7XHJcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vLi4vc3RhdGljL3JpZ2h0LnBuZyk7XHJcblx0XHRiYWNrZ3JvdW5kLXNpemU6IDEwMCUgMTAwJTtcclxuXHRcdHRvcDogMS44JTtcclxuXHRcdGxlZnQ6IDY1JTtcclxuXHRcdHdpZHRoOiAxMy41JTtcclxuXHRcdGhlaWdodDogOC41JTtcclxuXHR9XHJcblx0XHJcblx0XHJcblx0XHJcblx0Lyog5YWx55SoICovXHJcblx0Lm1haW4ge1xyXG5cdFx0d2lkdGg6IDEwMHZ3O1xyXG5cdFx0aGVpZ2h0OiA4OHZoO1xyXG5cdFx0bWFyZ2luLXRvcDogMXZoO1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdFxyXG5cdH1cclxuXHQubWlhbi1pdGVtIHtcclxuXHRcdHdpZHRoOiA1MCU7XHJcblx0XHRoZWlnaHQ6IDEwMCU7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHR9XHJcblx0Lm1pYW4taXRlbS1ib3gge1xyXG5cdFx0d2lkdGg6IDk4JTtcclxuXHRcdGhlaWdodDogOTglO1xyXG5cdH1cclxuXHQuYm94LWl0ZW0ge1xyXG5cdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRtYXJnaW4tdG9wOiAyJTtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG5cdFx0YWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcblx0fVxyXG5cdC5pdGVtLXRpdGxlIHtcclxuXHRcdGZvbnQtc2l6ZToxLjV2dztcclxuXHRcdGZvbnQtd2VpZ2h0OiA3MDA7XHJcblx0fVxyXG5cdC5pdGVtLXN1YlRpdGxlIHtcclxuXHRcdGZvbnQtc2l6ZTowLjV2dztcclxuXHRcdHRleHQtaW5kZW50OiAxZW07XHJcblx0fVxyXG5cdC5pdGVtLXRleHQge1xyXG5cdFx0Zm9udC1zaXplOiAxdnc7XHJcblx0XHR0ZXh0LWluZGVudDogMmVtO1xyXG5cdFx0bGV0dGVyLXNwYWNpbmc6IDFweDtcclxuXHR9XHJcblx0LmltZy1ib3gge1xyXG5cdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjNjY2NjY2O1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcblx0XHRmbGV4LXdyYXA6IHdyYXA7XHJcblx0fVxyXG5cdC5pdGVtLWltZyB7XHJcblx0XHR3aWR0aDogNTAlO1xyXG5cdFx0bWFyZ2luLXRvcDogMyU7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjMDBmZmZmO1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcblx0XHRhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxuXHR9XHJcblx0Lml0ZW0taW1nIGltYWdlIHtcclxuXHRcdGhlaWdodDogNXZ3O1xyXG5cdFx0d2lkdGg6IDV2dztcclxuXHR9XHJcblx0Lyog5YWo5p2/L+aLo+aWmeS/oeaBryAqL1xyXG5cdC5pbmZvIHtcclxuXHRcdHdpZHRoOiAxMDB2dztcclxuXHRcdG1pbi1oZWlnaHQ6IDEwMHZoO1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogIzY2NjY2NjtcclxuXHR9XHJcblx0Lyog5byC5bi45L+h5oGvICovXHJcblx0LmVycm9yLWluZm8ge1xyXG5cdFx0d2lkdGg6IDEwMHZ3O1xyXG5cdFx0bWluLWhlaWdodDogMTAwdmg7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjMDBmZmZmO1xyXG5cdH1cclxuPC9zdHlsZT4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///19\n");
-
-/***/ }),
-/* 20 */
-/*!*****************************************************************************!*\
-  !*** D:/Workspace/zy/private/Monitor-APP/pages/index/index.vue?mpType=page ***!
-  \*****************************************************************************/
-/*! no static exports found */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _index_vue_vue_type_template_id_2be84a3c_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index.vue?vue&type=template&id=2be84a3c&mpType=page */ 21);\n/* harmony import */ var _index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index.vue?vue&type=script&lang=js&mpType=page */ 98);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 12);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n  _index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n  _index_vue_vue_type_template_id_2be84a3c_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n  _index_vue_vue_type_template_id_2be84a3c_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n  false,\n  null,\n  null,\n  null,\n  false,\n  _index_vue_vue_type_template_id_2be84a3c_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n  renderjs\n)\n\ncomponent.options.__file = \"pages/index/index.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBNkg7QUFDN0g7QUFDb0U7QUFDTDs7O0FBRy9EO0FBQ3VNO0FBQ3ZNLGdCQUFnQiwyTUFBVTtBQUMxQixFQUFFLHNGQUFNO0FBQ1IsRUFBRSwyRkFBTTtBQUNSLEVBQUUsb0dBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsK0ZBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMjAuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL2luZGV4LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0yYmU4NGEzYyZtcFR5cGU9cGFnZVwiXG52YXIgcmVuZGVyanNcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vaW5kZXgudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJm1wVHlwZT1wYWdlXCJcbmV4cG9ydCAqIGZyb20gXCIuL2luZGV4LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZtcFR5cGU9cGFnZVwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIG51bGwsXG4gIG51bGwsXG4gIGZhbHNlLFxuICBjb21wb25lbnRzLFxuICByZW5kZXJqc1xuKVxuXG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInBhZ2VzL2luZGV4L2luZGV4LnZ1ZVwiXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///20\n");
-
-/***/ }),
-/* 21 */
-/*!***********************************************************************************************************!*\
-  !*** D:/Workspace/zy/private/Monitor-APP/pages/index/index.vue?vue&type=template&id=2be84a3c&mpType=page ***!
-  \***********************************************************************************************************/
-/*! exports provided: render, staticRenderFns, recyclableRender, components */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_template_id_2be84a3c_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./index.vue?vue&type=template&id=2be84a3c&mpType=page */ 22);
-/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_template_id_2be84a3c_mpType_page__WEBPACK_IMPORTED_MODULE_0__["render"]; });
-
-/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_template_id_2be84a3c_mpType_page__WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
-
-/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_template_id_2be84a3c_mpType_page__WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; });
-
-/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_template_id_2be84a3c_mpType_page__WEBPACK_IMPORTED_MODULE_0__["components"]; });
-
-
-
-/***/ }),
-/* 22 */
-/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
-  !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Workspace/zy/private/Monitor-APP/pages/index/index.vue?vue&type=template&id=2be84a3c&mpType=page ***!
-  \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
-/*! exports provided: render, staticRenderFns, recyclableRender, components */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; });
-var components
-try {
-  components = {
-    qiunDataCharts: __webpack_require__(/*! @/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue */ 23)
-      .default,
-    uniPopup: __webpack_require__(/*! @/uni_modules/uni-popup/components/uni-popup/uni-popup.vue */ 76)
-      .default,
-    uniPopupDialog: __webpack_require__(/*! @/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue */ 81)
-      .default
-  }
-} catch (e) {
-  if (
-    e.message.indexOf("Cannot find module") !== -1 &&
-    e.message.indexOf(".vue") !== -1
-  ) {
-    console.error(e.message)
-    console.error("1. 鎺掓煡缁勪欢鍚嶇О鎷煎啓鏄惁姝g‘")
-    console.error(
-      "2. 鎺掓煡缁勪欢鏄惁绗﹀悎 easycom 瑙勮寖锛屾枃妗o細https://uniapp.dcloud.net.cn/collocation/pages?id=easycom"
-    )
-    console.error(
-      "3. 鑻ョ粍浠朵笉绗﹀悎 easycom 瑙勮寖锛岄渶鎵嬪姩寮曞叆锛屽苟鍦� components 涓敞鍐岃缁勪欢"
-    )
-  } else {
-    throw e
-  }
-}
-var render = function() {
-  var _vm = this
-  var _h = _vm.$createElement
-  var _c = _vm._self._c || _h
-  return _c(
-    "view",
-    { staticClass: _vm._$s(0, "sc", "container"), attrs: { _i: 0 } },
-    [
-      _c(
-        "view",
-        {
-          staticClass: _vm._$s(1, "sc", "floor-screen"),
-          class: _vm._$s(1, "c", _vm.floorMove),
-          attrs: { _i: 1 }
-        },
-        [
-          _c(
-            "view",
-            { staticClass: _vm._$s(2, "sc", "head"), attrs: { _i: 2 } },
-            [
-              _c("text", {
-                attrs: { _i: 3 },
-                on: {
-                  click: function($event) {
-                    return _vm.port()
-                  }
-                }
-              }),
-              _c(
-                "view",
-                {
-                  staticClass: _vm._$s(4, "sc", "time-tools"),
-                  attrs: { _i: 4 }
-                },
-                [
-                  _vm._v(
-                    _vm._$s(4, "t0-0", _vm._s(_vm.year)) +
-                      _vm._$s(4, "t0-1", _vm._s(_vm.month)) +
-                      _vm._$s(4, "t0-2", _vm._s(_vm.day)) +
-                      _vm._$s(4, "t0-3", _vm._s(_vm.hours)) +
-                      _vm._$s(4, "t0-4", _vm._s(_vm.minutes)) +
-                      _vm._$s(4, "t0-5", _vm._s(_vm.seconds)) +
-                      _vm._$s(4, "t0-6", _vm._s(_vm.week))
-                  )
-                ]
-              ),
-              _c("view", {
-                staticClass: _vm._$s(5, "sc", "button-left"),
-                attrs: { _i: 5 },
-                on: {
-                  click: function($event) {
-                    return _vm.ejected()
-                  }
-                }
-              }),
-              _c("view", {
-                staticClass: _vm._$s(6, "sc", "button-right"),
-                attrs: { _i: 6 },
-                on: {
-                  click: function($event) {
-                    return _vm.ledId()
-                  }
-                }
-              })
-            ]
-          ),
-          _c(
-            "view",
-            { staticClass: _vm._$s(7, "sc", "main"), attrs: { _i: 7 } },
-            [
-              _c(
-                "view",
-                {
-                  staticClass: _vm._$s(8, "sc", "main-sides"),
-                  attrs: { _i: 8 }
-                },
-                [
-                  _c(
-                    "view",
-                    { staticClass: _vm._$s(9, "sc", "box"), attrs: { _i: 9 } },
-                    [
-                      _c("view", {
-                        staticClass: _vm._$s(
-                          10,
-                          "sc",
-                          "box-border box-border1"
-                        ),
-                        attrs: { _i: 10 }
-                      }),
-                      _c("view", {
-                        staticClass: _vm._$s(
-                          11,
-                          "sc",
-                          "box-border box-border2"
-                        ),
-                        attrs: { _i: 11 }
-                      }),
-                      _c("view", {
-                        staticClass: _vm._$s(
-                          12,
-                          "sc",
-                          "box-border box-border3"
-                        ),
-                        attrs: { _i: 12 }
-                      }),
-                      _c("view", {
-                        staticClass: _vm._$s(
-                          13,
-                          "sc",
-                          "box-border box-border4"
-                        ),
-                        attrs: { _i: 13 }
-                      }),
-                      _c(
-                        "view",
-                        {
-                          directives: [
-                            {
-                              name: "show",
-                              rawName: "v-show",
-                              value: _vm._$s(14, "v-show", !_vm.errorShow),
-                              expression: "_$s(14,'v-show',!errorShow)"
-                            }
-                          ],
-                          attrs: { _i: 14 }
-                        },
-                        [
-                          _c(
-                            "view",
-                            {
-                              class: _vm._$s(15, "c", _vm.width),
-                              attrs: { _i: 15 }
-                            },
-                            [
-                              _c(
-                                "view",
-                                {
-                                  staticClass: _vm._$s(16, "sc", "box-items"),
-                                  attrs: { _i: 16 }
-                                },
-                                [_vm._v(_vm._$s(16, "t0-0", _vm._s(_vm.title)))]
-                              ),
-                              _c(
-                                "view",
-                                {
-                                  staticClass: _vm._$s(17, "sc", "box-items"),
-                                  attrs: { _i: 17 }
-                                },
-                                [_vm._v(_vm._$s(17, "t0-0", _vm._s(_vm.staNo)))]
-                              ),
-                              _c(
-                                "view",
-                                {
-                                  staticClass: _vm._$s(18, "sc", "box-items"),
-                                  attrs: { _i: 18 }
-                                },
-                                [_vm._v(_vm._$s(18, "t0-0", _vm._s(_vm.matnr)))]
-                              ),
-                              _c(
-                                "view",
-                                {
-                                  staticClass: _vm._$s(19, "sc", "box-items"),
-                                  attrs: { _i: 19 }
-                                },
-                                [_vm._v(_vm._$s(19, "t0-0", _vm._s(_vm.maknx)))]
-                              ),
-                              _c(
-                                "view",
-                                {
-                                  staticClass: _vm._$s(20, "sc", "box-items"),
-                                  attrs: { _i: 20 }
-                                },
-                                [_vm._v(_vm._$s(20, "t0-0", _vm._s(_vm.count)))]
-                              )
-                            ]
-                          ),
-                          _c(
-                            "view",
-                            {
-                              directives: [
-                                {
-                                  name: "show",
-                                  rawName: "v-show",
-                                  value: _vm._$s(21, "v-show", _vm.orderShow),
-                                  expression: "_$s(21,'v-show',orderShow)"
-                                }
-                              ],
-                              attrs: { _i: 21 }
-                            },
-                            [
-                              _c(
-                                "view",
-                                {
-                                  staticClass: _vm._$s(22, "sc", "box-items"),
-                                  attrs: { _i: 22 }
-                                },
-                                [
-                                  _vm._v(
-                                    _vm._$s(22, "t0-0", _vm._s(_vm.orderNo))
-                                  )
-                                ]
-                              ),
-                              _c(
-                                "view",
-                                {
-                                  staticClass: _vm._$s(23, "sc", "box-items"),
-                                  attrs: { _i: 23 }
-                                },
-                                [
-                                  _vm._v(
-                                    _vm._$s(23, "t0-0", _vm._s(_vm.doneOfTray))
-                                  )
-                                ]
-                              ),
-                              _c(
-                                "view",
-                                {
-                                  staticClass: _vm._$s(24, "sc", "box-items"),
-                                  attrs: { _i: 24 }
-                                },
-                                [
-                                  _vm._v(
-                                    _vm._$s(24, "t0-0", _vm._s(_vm.totalOfTray))
-                                  )
-                                ]
-                              ),
-                              _c(
-                                "view",
-                                {
-                                  staticClass: _vm._$s(25, "sc", "box-items"),
-                                  attrs: { _i: 25 }
-                                },
-                                [
-                                  _vm._v(
-                                    _vm._$s(25, "t0-0", _vm._s(_vm.doneOfUnit))
-                                  )
-                                ]
-                              ),
-                              _c(
-                                "view",
-                                {
-                                  staticClass: _vm._$s(26, "sc", "box-items"),
-                                  attrs: { _i: 26 }
-                                },
-                                [
-                                  _vm._v(
-                                    _vm._$s(26, "t0-0", _vm._s(_vm.totalOfUnit))
-                                  )
-                                ]
-                              )
-                            ]
-                          )
-                        ]
-                      ),
-                      _c(
-                        "view",
-                        {
-                          directives: [
-                            {
-                              name: "show",
-                              rawName: "v-show",
-                              value: _vm._$s(27, "v-show", _vm.errorShow),
-                              expression: "_$s(27,'v-show',errorShow)"
-                            }
-                          ],
-                          attrs: { _i: 27 }
-                        },
-                        [
-                          _c("view", [
-                            _vm._v(_vm._$s(28, "t0-0", _vm._s(_vm.errorMsg)))
-                          ])
-                        ]
-                      )
-                    ]
-                  )
-                ]
-              )
-            ]
-          )
-        ]
-      ),
-      _c(
-        "view",
-        {
-          staticClass: _vm._$s(29, "sc", "top-screen"),
-          class: _vm._$s(29, "c", _vm.topMove),
-          attrs: { _i: 29 }
-        },
-        [
-          _c(
-            "view",
-            { staticClass: _vm._$s(30, "sc", "head"), attrs: { _i: 30 } },
-            [
-              _c("text", {
-                attrs: { _i: 31 },
-                on: {
-                  click: function($event) {
-                    return _vm.port()
-                  }
-                }
-              }),
-              _c(
-                "view",
-                {
-                  staticClass: _vm._$s(32, "sc", "time-tools"),
-                  attrs: { _i: 32 }
-                },
-                [
-                  _vm._v(
-                    _vm._$s(32, "t0-0", _vm._s(_vm.year)) +
-                      _vm._$s(32, "t0-1", _vm._s(_vm.month)) +
-                      _vm._$s(32, "t0-2", _vm._s(_vm.day)) +
-                      _vm._$s(32, "t0-3", _vm._s(_vm.hours)) +
-                      _vm._$s(32, "t0-4", _vm._s(_vm.minutes)) +
-                      _vm._$s(32, "t0-5", _vm._s(_vm.seconds)) +
-                      _vm._$s(32, "t0-6", _vm._s(_vm.week))
-                  )
-                ]
-              ),
-              _c("view", {
-                staticClass: _vm._$s(33, "sc", "button-left"),
-                attrs: { _i: 33 },
-                on: {
-                  click: function($event) {
-                    return _vm.ejected()
-                  }
-                }
-              }),
-              _c("view", {
-                staticClass: _vm._$s(34, "sc", "button-right"),
-                attrs: { _i: 34 },
-                on: {
-                  click: function($event) {
-                    return _vm.ledId()
-                  }
-                }
-              })
-            ]
-          ),
-          _c(
-            "view",
-            { staticClass: _vm._$s(35, "sc", "main"), attrs: { _i: 35 } },
-            [
-              _c(
-                "view",
-                {
-                  staticClass: _vm._$s(36, "sc", "main-sides"),
-                  attrs: { _i: 36 }
-                },
-                [
-                  _c(
-                    "view",
-                    {
-                      staticClass: _vm._$s(37, "sc", "box box-lg"),
-                      attrs: { _i: 37 }
-                    },
-                    [
-                      _c("view", {
-                        staticClass: _vm._$s(
-                          38,
-                          "sc",
-                          "box-border box-border1"
-                        ),
-                        attrs: { _i: 38 }
-                      }),
-                      _c("view", {
-                        staticClass: _vm._$s(
-                          39,
-                          "sc",
-                          "box-border box-border2"
-                        ),
-                        attrs: { _i: 39 }
-                      }),
-                      _c("view", {
-                        staticClass: _vm._$s(
-                          40,
-                          "sc",
-                          "box-border box-border3"
-                        ),
-                        attrs: { _i: 40 }
-                      }),
-                      _c("view", {
-                        staticClass: _vm._$s(
-                          41,
-                          "sc",
-                          "box-border box-border4"
-                        ),
-                        attrs: { _i: 41 }
-                      }),
-                      _c(
-                        "view",
-                        {
-                          staticClass: _vm._$s(42, "sc", "box-item introduce"),
-                          attrs: { _i: 42 }
-                        },
-                        [
-                          _c("h3"),
-                          _c("p", {
-                            staticClass: _vm._$s(44, "sc", "english"),
-                            attrs: { _i: 44 }
-                          }),
-                          _c("p", {
-                            staticClass: _vm._$s(45, "sc", "introduce-content"),
-                            attrs: { _i: 45 }
-                          })
-                        ]
-                      ),
-                      _c(
-                        "view",
-                        {
-                          staticClass: _vm._$s(
-                            46,
-                            "sc",
-                            "box-item charge-info"
-                          ),
-                          attrs: { _i: 46 }
-                        },
-                        [
-                          _c("h3"),
-                          _c("p", {
-                            staticClass: _vm._$s(48, "sc", "english"),
-                            attrs: { _i: 48 }
-                          }),
-                          _c(
-                            "view",
-                            {
-                              staticClass: _vm._$s(
-                                49,
-                                "sc",
-                                "charge-info-item"
-                              ),
-                              attrs: { _i: 49 }
-                            },
-                            [
-                              _c("image", {
-                                attrs: {
-                                  src: _vm._$s(
-                                    50,
-                                    "a-src",
-                                    __webpack_require__(/*! ../../static/a1.png */ 91)
-                                  ),
-                                  _i: 50
-                                }
-                              }),
-                              _c("view", [
-                                _c(
-                                  "text",
-                                  {
-                                    staticClass: _vm._$s(52, "sc", "count"),
-                                    attrs: { _i: 52 }
-                                  },
-                                  [
-                                    _vm._v(
-                                      _vm._$s(52, "t0-0", _vm._s(_vm.xDistance))
-                                    )
-                                  ]
-                                ),
-                                _c("text", {
-                                  staticClass: _vm._$s(53, "sc", "unit"),
-                                  attrs: { _i: 53 }
-                                })
-                              ]),
-                              _c("view")
-                            ]
-                          ),
-                          _c(
-                            "view",
-                            {
-                              staticClass: _vm._$s(
-                                55,
-                                "sc",
-                                "charge-info-item"
-                              ),
-                              attrs: { _i: 55 }
-                            },
-                            [
-                              _c("image", {
-                                attrs: {
-                                  src: _vm._$s(
-                                    56,
-                                    "a-src",
-                                    __webpack_require__(/*! ../../static/b1.png */ 92)
-                                  ),
-                                  _i: 56
-                                }
-                              }),
-                              _c("view", [
-                                _c(
-                                  "text",
-                                  {
-                                    staticClass: _vm._$s(58, "sc", "count"),
-                                    attrs: { _i: 58 }
-                                  },
-                                  [
-                                    _vm._v(
-                                      _vm._$s(58, "t0-0", _vm._s(_vm.yDistance))
-                                    )
-                                  ]
-                                ),
-                                _c("text", {
-                                  staticClass: _vm._$s(59, "sc", "unit"),
-                                  attrs: { _i: 59 }
-                                })
-                              ]),
-                              _c("view")
-                            ]
-                          ),
-                          _c(
-                            "view",
-                            {
-                              staticClass: _vm._$s(
-                                61,
-                                "sc",
-                                "charge-info-item"
-                              ),
-                              attrs: { _i: 61 }
-                            },
-                            [
-                              _c("image", {
-                                attrs: {
-                                  src: _vm._$s(
-                                    62,
-                                    "a-src",
-                                    __webpack_require__(/*! ../../static/c1.png */ 93)
-                                  ),
-                                  _i: 62
-                                }
-                              }),
-                              _c("view", [
-                                _c(
-                                  "text",
-                                  {
-                                    staticClass: _vm._$s(64, "sc", "count"),
-                                    attrs: { _i: 64 }
-                                  },
-                                  [
-                                    _vm._v(
-                                      _vm._$s(64, "t0-0", _vm._s(_vm.xDuration))
-                                    )
-                                  ]
-                                ),
-                                _c("text", {
-                                  staticClass: _vm._$s(65, "sc", "unit"),
-                                  attrs: { _i: 65 }
-                                })
-                              ]),
-                              _c("view")
-                            ]
-                          ),
-                          _c(
-                            "view",
-                            {
-                              staticClass: _vm._$s(
-                                67,
-                                "sc",
-                                "charge-info-item"
-                              ),
-                              attrs: { _i: 67 }
-                            },
-                            [
-                              _c("image", {
-                                attrs: {
-                                  src: _vm._$s(
-                                    68,
-                                    "a-src",
-                                    __webpack_require__(/*! ../../static/d1.png */ 94)
-                                  ),
-                                  _i: 68
-                                }
-                              }),
-                              _c("view", [
-                                _c(
-                                  "text",
-                                  {
-                                    staticClass: _vm._$s(70, "sc", "count"),
-                                    attrs: { _i: 70 }
-                                  },
-                                  [
-                                    _vm._v(
-                                      _vm._$s(70, "t0-0", _vm._s(_vm.yDuration))
-                                    )
-                                  ]
-                                ),
-                                _c("text", {
-                                  staticClass: _vm._$s(71, "sc", "unit"),
-                                  attrs: { _i: 71 }
-                                })
-                              ]),
-                              _c("view")
-                            ]
-                          )
-                        ]
-                      ),
-                      _c(
-                        "view",
-                        {
-                          staticClass: _vm._$s(73, "sc", "box-item use-info"),
-                          attrs: { _i: 73 }
-                        },
-                        [
-                          _c(
-                            "view",
-                            {
-                              staticClass: _vm._$s(74, "sc", "use-left"),
-                              attrs: { _i: 74 }
-                            },
-                            [
-                              _c("h3"),
-                              _c("p", {
-                                staticClass: _vm._$s(76, "sc", "english"),
-                                attrs: { _i: 76 }
-                              })
-                            ]
-                          ),
-                          _c(
-                            "view",
-                            {
-                              staticClass: _vm._$s(77, "sc", "use-right"),
-                              attrs: { _i: 77 }
-                            },
-                            [
-                              _c("h3", [
-                                _vm._v(_vm._$s(78, "t0-0", _vm._s(_vm.usedPr)))
-                              ]),
-                              _c("p", {
-                                staticClass: _vm._$s(79, "sc", "english"),
-                                attrs: { _i: 79 }
-                              })
-                            ]
-                          ),
-                          _c(
-                            "view",
-                            {
-                              staticClass: _vm._$s(80, "sc", "use-main"),
-                              attrs: { _i: 80 }
-                            },
-                            [
-                              _c(
-                                "view",
-                                {
-                                  staticClass: _vm._$s(81, "sc", "left"),
-                                  attrs: { _i: 81 }
-                                },
-                                [
-                                  _c(
-                                    "view",
-                                    {
-                                      staticClass: _vm._$s(
-                                        82,
-                                        "sc",
-                                        "progressBar"
-                                      ),
-                                      attrs: { _i: 82 }
-                                    },
-                                    [
-                                      _c("view", {
-                                        staticClass: _vm._$s(
-                                          83,
-                                          "sc",
-                                          "progress"
-                                        ),
-                                        style: _vm._$s(
-                                          83,
-                                          "s",
-                                          "width:" + _vm.usedPr + "%"
-                                        ),
-                                        attrs: { _i: 83 }
-                                      })
-                                    ]
-                                  )
-                                ]
-                              ),
-                              _c(
-                                "view",
-                                {
-                                  staticClass: _vm._$s(84, "sc", "right"),
-                                  attrs: { _i: 84 }
-                                },
-                                [_vm._v(_vm._$s(84, "t0-0", _vm._s(_vm.used)))]
-                              )
-                            ]
-                          )
-                        ]
-                      )
-                    ]
-                  )
-                ]
-              ),
-              _c(
-                "view",
-                {
-                  staticClass: _vm._$s(85, "sc", "main-sides"),
-                  attrs: { _i: 85 }
-                },
-                [
-                  _c(
-                    "view",
-                    {
-                      staticClass: _vm._$s(86, "sc", "box box-tp"),
-                      attrs: { _i: 86 }
-                    },
-                    [
-                      _c("view", {
-                        staticClass: _vm._$s(
-                          87,
-                          "sc",
-                          "box-border box-border1"
-                        ),
-                        attrs: { _i: 87 }
-                      }),
-                      _c("view", {
-                        staticClass: _vm._$s(
-                          88,
-                          "sc",
-                          "box-border box-border2"
-                        ),
-                        attrs: { _i: 88 }
-                      }),
-                      _c("view", {
-                        staticClass: _vm._$s(
-                          89,
-                          "sc",
-                          "box-border box-border3"
-                        ),
-                        attrs: { _i: 89 }
-                      }),
-                      _c("view", {
-                        staticClass: _vm._$s(
-                          90,
-                          "sc",
-                          "box-border box-border4"
-                        ),
-                        attrs: { _i: 90 }
-                      }),
-                      _c(
-                        "view",
-                        {
-                          staticClass: _vm._$s(91, "sc", "box-item right-item"),
-                          attrs: { _i: 91 }
-                        },
-                        [
-                          _c(
-                            "view",
-                            {
-                              staticClass: _vm._$s(92, "sc", "sub-left"),
-                              attrs: { _i: 92 }
-                            },
-                            [
-                              _c("h3"),
-                              _c("p", {
-                                staticClass: _vm._$s(94, "sc", "english"),
-                                attrs: { _i: 94 }
-                              })
-                            ]
-                          ),
-                          _c(
-                            "view",
-                            {
-                              staticClass: _vm._$s(95, "sc", "sub-right"),
-                              attrs: { _i: 95 }
-                            },
-                            [
-                              _c("h3"),
-                              _c("p", {
-                                staticClass: _vm._$s(97, "sc", "english"),
-                                attrs: { _i: 97 }
-                              })
-                            ]
-                          ),
-                          _c(
-                            "view",
-                            {
-                              staticClass: _vm._$s(98, "sc", "sub-main"),
-                              attrs: { _i: 98 }
-                            },
-                            [
-                              _c(
-                                "view",
-                                {
-                                  staticClass: _vm._$s(99, "sc", "charts-box"),
-                                  attrs: { _i: 99 }
-                                },
-                                [
-                                  _c("qiun-data-charts", {
-                                    attrs: {
-                                      type: "line",
-                                      chartData: _vm.chartsDataLine1,
-                                      echartsH5: true,
-                                      echartsApp: true,
-                                      _i: 100
-                                    }
-                                  })
-                                ],
-                                1
-                              )
-                            ]
-                          )
-                        ]
-                      )
-                    ]
-                  ),
-                  _c(
-                    "view",
-                    {
-                      staticClass: _vm._$s(101, "sc", "box box-md"),
-                      attrs: { _i: 101 }
-                    },
-                    [
-                      _c("view", {
-                        staticClass: _vm._$s(
-                          102,
-                          "sc",
-                          "box-border box-border1"
-                        ),
-                        attrs: { _i: 102 }
-                      }),
-                      _c("view", {
-                        staticClass: _vm._$s(
-                          103,
-                          "sc",
-                          "box-border box-border2"
-                        ),
-                        attrs: { _i: 103 }
-                      }),
-                      _c("view", {
-                        staticClass: _vm._$s(
-                          104,
-                          "sc",
-                          "box-border box-border3"
-                        ),
-                        attrs: { _i: 104 }
-                      }),
-                      _c("view", {
-                        staticClass: _vm._$s(
-                          105,
-                          "sc",
-                          "box-border box-border4"
-                        ),
-                        attrs: { _i: 105 }
-                      }),
-                      _c(
-                        "view",
-                        {
-                          staticClass: _vm._$s(
-                            106,
-                            "sc",
-                            "box-item right-item"
-                          ),
-                          attrs: { _i: 106 }
-                        },
-                        [
-                          _c(
-                            "view",
-                            {
-                              staticClass: _vm._$s(107, "sc", "sub-left"),
-                              attrs: { _i: 107 }
-                            },
-                            [
-                              _c("h3"),
-                              _c("p", {
-                                staticClass: _vm._$s(109, "sc", "english"),
-                                attrs: { _i: 109 }
-                              })
-                            ]
-                          ),
-                          _c(
-                            "view",
-                            {
-                              staticClass: _vm._$s(110, "sc", "sub-right"),
-                              attrs: { _i: 110 }
-                            },
-                            [
-                              _c("h3"),
-                              _c("p", {
-                                staticClass: _vm._$s(112, "sc", "english"),
-                                attrs: { _i: 112 }
-                              })
-                            ]
-                          ),
-                          _c(
-                            "view",
-                            {
-                              staticClass: _vm._$s(113, "sc", "sub-main"),
-                              attrs: { _i: 113 }
-                            },
-                            [
-                              _c(
-                                "view",
-                                {
-                                  staticClass: _vm._$s(
-                                    114,
-                                    "sc",
-                                    "charts-box ring"
-                                  ),
-                                  attrs: { _i: 114 }
-                                },
-                                [
-                                  _c("qiun-data-charts", {
-                                    attrs: {
-                                      type: "ring",
-                                      opts: { legend: { position: "bottom" } },
-                                      eopts: _vm.ringOpts,
-                                      chartData: _vm.chartsDataPie2,
-                                      echartsH5: true,
-                                      echartsApp: true,
-                                      _i: 115
-                                    }
-                                  })
-                                ],
-                                1
-                              ),
-                              _c(
-                                "view",
-                                {
-                                  staticClass: _vm._$s(
-                                    116,
-                                    "sc",
-                                    "sub-main-right"
-                                  ),
-                                  attrs: { _i: 116 }
-                                },
-                                [
-                                  _c(
-                                    "view",
-                                    {
-                                      staticClass: _vm._$s(
-                                        117,
-                                        "sc",
-                                        "sub-info"
-                                      ),
-                                      attrs: { _i: 117 }
-                                    },
-                                    [
-                                      _c("image", {
-                                        attrs: {
-                                          src: _vm._$s(
-                                            118,
-                                            "a-src",
-                                            __webpack_require__(/*! ../../static/g1.png */ 95)
-                                          ),
-                                          _i: 118
-                                        }
-                                      }),
-                                      _c("text"),
-                                      _c("text", [
-                                        _vm._v(
-                                          _vm._$s(
-                                            120,
-                                            "t0-0",
-                                            _vm._s(_vm.stockCount)
-                                          )
-                                        )
-                                      ])
-                                    ]
-                                  ),
-                                  _c(
-                                    "view",
-                                    {
-                                      staticClass: _vm._$s(
-                                        121,
-                                        "sc",
-                                        "sub-info"
-                                      ),
-                                      attrs: { _i: 121 }
-                                    },
-                                    [
-                                      _c("image", {
-                                        attrs: {
-                                          src: _vm._$s(
-                                            122,
-                                            "a-src",
-                                            __webpack_require__(/*! ../../static/f1.png */ 96)
-                                          ),
-                                          _i: 122
-                                        }
-                                      }),
-                                      _c("text"),
-                                      _c("text", [
-                                        _vm._v(
-                                          _vm._$s(
-                                            124,
-                                            "t0-0",
-                                            _vm._s(_vm.emptyCount)
-                                          )
-                                        )
-                                      ])
-                                    ]
-                                  ),
-                                  _c(
-                                    "view",
-                                    {
-                                      staticClass: _vm._$s(
-                                        125,
-                                        "sc",
-                                        "sub-info"
-                                      ),
-                                      attrs: { _i: 125 }
-                                    },
-                                    [
-                                      _c("image", {
-                                        attrs: {
-                                          src: _vm._$s(
-                                            126,
-                                            "a-src",
-                                            __webpack_require__(/*! ../../static/e1.png */ 97)
-                                          ),
-                                          _i: 126
-                                        }
-                                      }),
-                                      _c("text"),
-                                      _c("text", [
-                                        _vm._v(
-                                          _vm._$s(
-                                            128,
-                                            "t0-0",
-                                            _vm._s(_vm.noneCount)
-                                          )
-                                        )
-                                      ])
-                                    ]
-                                  )
-                                ]
-                              )
-                            ]
-                          )
-                        ]
-                      )
-                    ]
-                  ),
-                  _c(
-                    "view",
-                    {
-                      staticClass: _vm._$s(129, "sc", "box box-bt"),
-                      attrs: { _i: 129 }
-                    },
-                    [
-                      _c("view", {
-                        staticClass: _vm._$s(
-                          130,
-                          "sc",
-                          "box-border box-border1"
-                        ),
-                        attrs: { _i: 130 }
-                      }),
-                      _c("view", {
-                        staticClass: _vm._$s(
-                          131,
-                          "sc",
-                          "box-border box-border2"
-                        ),
-                        attrs: { _i: 131 }
-                      }),
-                      _c("view", {
-                        staticClass: _vm._$s(
-                          132,
-                          "sc",
-                          "box-border box-border3"
-                        ),
-                        attrs: { _i: 132 }
-                      }),
-                      _c("view", {
-                        staticClass: _vm._$s(
-                          133,
-                          "sc",
-                          "box-border box-border4"
-                        ),
-                        attrs: { _i: 133 }
-                      }),
-                      _c("view", {
-                        attrs: { _i: 134 },
-                        on: {
-                          click: function($event) {
-                            return _vm.crn()
-                          }
-                        }
-                      })
-                    ]
-                  )
-                ]
-              )
-            ]
-          )
-        ]
-      ),
-      _c(
-        "view",
-        [
-          _c(
-            "uni-popup",
-            { ref: "url", attrs: { type: "dialog", _i: 136 } },
-            [
-              _c("uni-popup-dialog", {
-                ref: "inputClose",
-                attrs: {
-                  mode: "input",
-                  title: "閰嶇疆url",
-                  value: _vm.baseIP,
-                  placeholder: "绀轰緥:192.168.1.1",
-                  _i: 137
-                },
-                on: { confirm: _vm.baseUrlConfirm }
-              })
-            ],
-            1
-          )
-        ],
-        1
-      ),
-      _c(
-        "view",
-        [
-          _c(
-            "uni-popup",
-            { ref: "ledId", attrs: { type: "dialog", _i: 139 } },
-            [
-              _c("uni-popup-dialog", {
-                ref: "inputClose",
-                attrs: {
-                  mode: "input",
-                  title: "閰嶇疆ledId",
-                  value: _vm.baseLedId,
-                  placeholder: "绀轰緥:188",
-                  _i: 140
-                },
-                on: { confirm: _vm.ledIdConfirm }
-              })
-            ],
-            1
-          )
-        ],
-        1
-      ),
-      _c(
-        "view",
-        [
-          _c(
-            "uni-popup",
-            { ref: "port", attrs: { type: "dialog", _i: 142 } },
-            [
-              _c("uni-popup-dialog", {
-                ref: "inputClose",
-                attrs: {
-                  mode: "input",
-                  title: "閰嶇疆绔彛鍙�",
-                  value: _vm.basePort,
-                  placeholder: "绀轰緥:9090",
-                  _i: 143
-                },
-                on: { confirm: _vm.portConfirm }
-              })
-            ],
-            1
-          )
-        ],
-        1
-      ),
-      _c(
-        "view",
-        [
-          _c(
-            "uni-popup",
-            { ref: "crnId", attrs: { type: "dialog", _i: 145 } },
-            [
-              _c("uni-popup-dialog", {
-                ref: "inputClose",
-                attrs: {
-                  mode: "input",
-                  title: "閰嶇疆鍫嗗灈鏈�",
-                  value: _vm.crnId,
-                  placeholder: "绀轰緥:1",
-                  _i: 146
-                },
-                on: { confirm: _vm.crnConfirm }
-              })
-            ],
-            1
-          )
-        ],
-        1
-      ),
-      _c(
-        "view",
-        {
-          directives: [
-            {
-              name: "show",
-              rawName: "v-show",
-              value: _vm._$s(147, "v-show", _vm.ejectShow),
-              expression: "_$s(147,'v-show',ejectShow)"
-            }
-          ],
-          staticClass: _vm._$s(147, "sc", "eject-mask"),
-          attrs: { _i: 147 }
-        },
-        [
-          _c(
-            "view",
-            { staticClass: _vm._$s(148, "sc", "eject"), attrs: { _i: 148 } },
-            [
-              _c("view", {
-                staticClass: _vm._$s(149, "sc", "eject-title"),
-                attrs: { _i: 149 }
-              }),
-              _c(
-                "view",
-                {
-                  staticClass: _vm._$s(150, "sc", "eject-input"),
-                  attrs: { _i: 150 }
-                },
-                [
-                  _c(
-                    "view",
-                    {
-                      staticClass: _vm._$s(151, "sc", "item"),
-                      attrs: { _i: 151 }
-                    },
-                    [
-                      _c("view", {
-                        staticClass: _vm._$s(152, "sc", "desc"),
-                        attrs: { _i: 152 }
-                      }),
-                      _c(
-                        "view",
-                        {
-                          staticClass: _vm._$s(153, "sc", "input"),
-                          attrs: { _i: 153 }
-                        },
-                        [
-                          _c("input", {
-                            directives: [
-                              {
-                                name: "model",
-                                rawName: "v-model",
-                                value: _vm.baseIP,
-                                expression: "baseIP"
-                              }
-                            ],
-                            attrs: { _i: 154 },
-                            domProps: {
-                              value: _vm._$s(154, "v-model", _vm.baseIP)
-                            },
-                            on: {
-                              input: function($event) {
-                                if ($event.target.composing) {
-                                  return
-                                }
-                                _vm.baseIP = $event.target.value
-                              }
-                            }
-                          })
-                        ]
-                      )
-                    ]
-                  ),
-                  _c(
-                    "view",
-                    {
-                      staticClass: _vm._$s(155, "sc", "item"),
-                      attrs: { _i: 155 }
-                    },
-                    [
-                      _c("view", {
-                        staticClass: _vm._$s(156, "sc", "desc"),
-                        attrs: { _i: 156 }
-                      }),
-                      _c(
-                        "view",
-                        {
-                          staticClass: _vm._$s(157, "sc", "input"),
-                          attrs: { _i: 157 }
-                        },
-                        [
-                          _c("input", {
-                            directives: [
-                              {
-                                name: "model",
-                                rawName: "v-model",
-                                value: _vm.basePort,
-                                expression: "basePort"
-                              }
-                            ],
-                            attrs: { _i: 158 },
-                            domProps: {
-                              value: _vm._$s(158, "v-model", _vm.basePort)
-                            },
-                            on: {
-                              input: function($event) {
-                                if ($event.target.composing) {
-                                  return
-                                }
-                                _vm.basePort = $event.target.value
-                              }
-                            }
-                          })
-                        ]
-                      )
-                    ]
-                  ),
-                  _c(
-                    "view",
-                    {
-                      staticClass: _vm._$s(159, "sc", "item"),
-                      attrs: { _i: 159 }
-                    },
-                    [
-                      _c("view", {
-                        staticClass: _vm._$s(160, "sc", "desc"),
-                        attrs: { _i: 160 }
-                      }),
-                      _c(
-                        "view",
-                        {
-                          staticClass: _vm._$s(161, "sc", "input"),
-                          attrs: { _i: 161 }
-                        },
-                        [
-                          _c("input", {
-                            directives: [
-                              {
-                                name: "model",
-                                rawName: "v-model",
-                                value: _vm.baseLedId,
-                                expression: "baseLedId"
-                              }
-                            ],
-                            attrs: { _i: 162 },
-                            domProps: {
-                              value: _vm._$s(162, "v-model", _vm.baseLedId)
-                            },
-                            on: {
-                              input: function($event) {
-                                if ($event.target.composing) {
-                                  return
-                                }
-                                _vm.baseLedId = $event.target.value
-                              }
-                            }
-                          })
-                        ]
-                      )
-                    ]
-                  ),
-                  _c(
-                    "view",
-                    {
-                      staticClass: _vm._$s(163, "sc", "item"),
-                      attrs: { _i: 163 }
-                    },
-                    [
-                      _c("view", {
-                        staticClass: _vm._$s(164, "sc", "desc"),
-                        attrs: { _i: 164 }
-                      }),
-                      _c(
-                        "view",
-                        {
-                          staticClass: _vm._$s(165, "sc", "input"),
-                          attrs: { _i: 165 }
-                        },
-                        [
-                          _c("input", {
-                            directives: [
-                              {
-                                name: "model",
-                                rawName: "v-model",
-                                value: _vm.baseCrnId,
-                                expression: "baseCrnId"
-                              }
-                            ],
-                            attrs: { _i: 166 },
-                            domProps: {
-                              value: _vm._$s(166, "v-model", _vm.baseCrnId)
-                            },
-                            on: {
-                              input: function($event) {
-                                if ($event.target.composing) {
-                                  return
-                                }
-                                _vm.baseCrnId = $event.target.value
-                              }
-                            }
-                          })
-                        ]
-                      )
-                    ]
-                  )
-                ]
-              ),
-              _c(
-                "view",
-                {
-                  staticClass: _vm._$s(167, "sc", "eject-button"),
-                  attrs: { _i: 167 }
-                },
-                [
-                  _c("view", {
-                    staticClass: _vm._$s(168, "sc", "button-item"),
-                    attrs: { _i: 168 },
-                    on: { click: _vm.ejectClose }
-                  }),
-                  _c("view", {
-                    staticClass: _vm._$s(169, "sc", "button-item"),
-                    attrs: { _i: 169 },
-                    on: { click: _vm.ejectConfirm }
-                  })
-                ]
-              )
-            ]
-          )
-        ]
-      )
-    ]
-  )
-}
-var recyclableRender = false
-var staticRenderFns = []
-render._withStripped = true
-
-
-
-/***/ }),
-/* 23 */
 /*!*************************************************************************************************************************!*\
   !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue ***!
   \*************************************************************************************************************************/
@@ -2371,33 +1350,33 @@
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 
 "use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _qiun_data_charts_vue_vue_type_template_id_fe947b98_scoped_true_filter_modules_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM3MjU4LCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjUxOTM1fX0_3D___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./qiun-data-charts.vue?vue&type=template&id=fe947b98&scoped=true&filter-modules=eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM3MjU4LCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjUxOTM1fX0%3D& */ 24);\n/* harmony import */ var _qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./qiun-data-charts.vue?vue&type=script&lang=js& */ 61);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 12);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n  _qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n  _qiun_data_charts_vue_vue_type_template_id_fe947b98_scoped_true_filter_modules_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM3MjU4LCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjUxOTM1fX0_3D___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n  _qiun_data_charts_vue_vue_type_template_id_fe947b98_scoped_true_filter_modules_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM3MjU4LCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjUxOTM1fX0_3D___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n  false,\n  null,\n  \"fe947b98\",\n  null,\n  false,\n  _qiun_data_charts_vue_vue_type_template_id_fe947b98_scoped_true_filter_modules_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM3MjU4LCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjUxOTM1fX0_3D___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n  renderjs\n)\n\ncomponent.options.__file = \"uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBbVQ7QUFDblQ7QUFDb0U7QUFDTDs7O0FBRy9EO0FBQzZNO0FBQzdNLGdCQUFnQiwyTUFBVTtBQUMxQixFQUFFLHNGQUFNO0FBQ1IsRUFBRSxpUkFBTTtBQUNSLEVBQUUsMFJBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUscVJBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMjMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL3FpdW4tZGF0YS1jaGFydHMudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPWZlOTQ3Yjk4JnNjb3BlZD10cnVlJmZpbHRlci1tb2R1bGVzPWV5SnlaR05vWVhKMGN5STZleUowZVhCbElqb2ljbVZ1WkdWeWFuTWlMQ0pqYjI1MFpXNTBJam9pSWl3aWMzUmhjblFpT2pNM01qVTRMQ0poZEhSeWN5STZleUp0YjJSMWJHVWlPaUp5WkdOb1lYSjBjeUlzSW14aGJtY2lPaUpxY3lKOUxDSmxibVFpT2pVeE9UTTFmWDAlM0QmXCJcbnZhciByZW5kZXJqc1xuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9xaXVuLWRhdGEtY2hhcnRzLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vcWl1bi1kYXRhLWNoYXJ0cy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcblxuXG4vKiBub3JtYWxpemUgY29tcG9uZW50ICovXG5pbXBvcnQgbm9ybWFsaXplciBmcm9tIFwiIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgXCJmZTk0N2I5OFwiLFxuICBudWxsLFxuICBmYWxzZSxcbiAgY29tcG9uZW50cyxcbiAgcmVuZGVyanNcbilcblxuY29tcG9uZW50Lm9wdGlvbnMuX19maWxlID0gXCJ1bmlfbW9kdWxlcy9xaXVuLWRhdGEtY2hhcnRzL2NvbXBvbmVudHMvcWl1bi1kYXRhLWNoYXJ0cy9xaXVuLWRhdGEtY2hhcnRzLnZ1ZVwiXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///23\n");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _qiun_data_charts_vue_vue_type_template_id_fe947b98_scoped_true_filter_modules_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjcyfX0_3D___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./qiun-data-charts.vue?vue&type=template&id=fe947b98&scoped=true&filter-modules=eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjcyfX0%3D& */ 19);\n/* harmony import */ var _qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./qiun-data-charts.vue?vue&type=script&lang=js& */ 56);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 12);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n  _qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n  _qiun_data_charts_vue_vue_type_template_id_fe947b98_scoped_true_filter_modules_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjcyfX0_3D___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n  _qiun_data_charts_vue_vue_type_template_id_fe947b98_scoped_true_filter_modules_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjcyfX0_3D___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n  false,\n  null,\n  \"fe947b98\",\n  null,\n  false,\n  _qiun_data_charts_vue_vue_type_template_id_fe947b98_scoped_true_filter_modules_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjcyfX0_3D___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n  renderjs\n)\n\ncomponent.options.__file = \"uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBbVQ7QUFDblQ7QUFDb0U7QUFDTDs7O0FBRy9EO0FBQzZNO0FBQzdNLGdCQUFnQiwyTUFBVTtBQUMxQixFQUFFLHNGQUFNO0FBQ1IsRUFBRSxpUkFBTTtBQUNSLEVBQUUsMFJBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUscVJBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMTguanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL3FpdW4tZGF0YS1jaGFydHMudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPWZlOTQ3Yjk4JnNjb3BlZD10cnVlJmZpbHRlci1tb2R1bGVzPWV5SnlaR05vWVhKMGN5STZleUowZVhCbElqb2ljbVZ1WkdWeWFuTWlMQ0pqYjI1MFpXNTBJam9pSWl3aWMzUmhjblFpT2pNNE9Ea3dMQ0poZEhSeWN5STZleUp0YjJSMWJHVWlPaUp5WkdOb1lYSjBjeUlzSW14aGJtY2lPaUpxY3lKOUxDSmxibVFpT2pVME5qY3lmWDAlM0QmXCJcbnZhciByZW5kZXJqc1xuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9xaXVuLWRhdGEtY2hhcnRzLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vcWl1bi1kYXRhLWNoYXJ0cy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcblxuXG4vKiBub3JtYWxpemUgY29tcG9uZW50ICovXG5pbXBvcnQgbm9ybWFsaXplciBmcm9tIFwiIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgXCJmZTk0N2I5OFwiLFxuICBudWxsLFxuICBmYWxzZSxcbiAgY29tcG9uZW50cyxcbiAgcmVuZGVyanNcbilcblxuY29tcG9uZW50Lm9wdGlvbnMuX19maWxlID0gXCJ1bmlfbW9kdWxlcy9xaXVuLWRhdGEtY2hhcnRzL2NvbXBvbmVudHMvcWl1bi1kYXRhLWNoYXJ0cy9xaXVuLWRhdGEtY2hhcnRzLnZ1ZVwiXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///18\n");
 
 /***/ }),
-/* 24 */
+/* 19 */
 /*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
-  !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue?vue&type=template&id=fe947b98&scoped=true&filter-modules=eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM3MjU4LCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjUxOTM1fX0%3D& ***!
+  !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue?vue&type=template&id=fe947b98&scoped=true&filter-modules=eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjcyfX0%3D& ***!
   \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************/
 /*! exports provided: render, staticRenderFns, recyclableRender, components */
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 
 "use strict";
 __webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_data_charts_vue_vue_type_template_id_fe947b98_scoped_true_filter_modules_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM3MjU4LCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjUxOTM1fX0_3D___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./qiun-data-charts.vue?vue&type=template&id=fe947b98&scoped=true&filter-modules=eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM3MjU4LCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjUxOTM1fX0%3D& */ 25);
-/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_data_charts_vue_vue_type_template_id_fe947b98_scoped_true_filter_modules_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM3MjU4LCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjUxOTM1fX0_3D___WEBPACK_IMPORTED_MODULE_0__["render"]; });
+/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_data_charts_vue_vue_type_template_id_fe947b98_scoped_true_filter_modules_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjcyfX0_3D___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./qiun-data-charts.vue?vue&type=template&id=fe947b98&scoped=true&filter-modules=eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjcyfX0%3D& */ 20);
+/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_data_charts_vue_vue_type_template_id_fe947b98_scoped_true_filter_modules_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjcyfX0_3D___WEBPACK_IMPORTED_MODULE_0__["render"]; });
 
-/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_data_charts_vue_vue_type_template_id_fe947b98_scoped_true_filter_modules_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM3MjU4LCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjUxOTM1fX0_3D___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
+/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_data_charts_vue_vue_type_template_id_fe947b98_scoped_true_filter_modules_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjcyfX0_3D___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
 
-/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_data_charts_vue_vue_type_template_id_fe947b98_scoped_true_filter_modules_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM3MjU4LCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjUxOTM1fX0_3D___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; });
+/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_data_charts_vue_vue_type_template_id_fe947b98_scoped_true_filter_modules_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjcyfX0_3D___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; });
 
-/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_data_charts_vue_vue_type_template_id_fe947b98_scoped_true_filter_modules_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM3MjU4LCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjUxOTM1fX0_3D___WEBPACK_IMPORTED_MODULE_0__["components"]; });
+/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_data_charts_vue_vue_type_template_id_fe947b98_scoped_true_filter_modules_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjcyfX0_3D___WEBPACK_IMPORTED_MODULE_0__["components"]; });
 
 
 
 /***/ }),
-/* 25 */
+/* 20 */
 /*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
-  !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue?vue&type=template&id=fe947b98&scoped=true&filter-modules=eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM3MjU4LCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjUxOTM1fX0%3D& ***!
+  !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue?vue&type=template&id=fe947b98&scoped=true&filter-modules=eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjcyfX0%3D& ***!
   \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
 /*! exports provided: render, staticRenderFns, recyclableRender, components */
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
@@ -2411,9 +1390,9 @@
 var components
 try {
   components = {
-    qiunLoading: __webpack_require__(/*! @/uni_modules/qiun-data-charts/components/qiun-loading/qiun-loading.vue */ 26)
+    qiunLoading: __webpack_require__(/*! @/uni_modules/qiun-data-charts/components/qiun-loading/qiun-loading.vue */ 21)
       .default,
-    qiunError: __webpack_require__(/*! @/uni_modules/qiun-data-charts/components/qiun-error/qiun-error.vue */ 56)
+    qiunError: __webpack_require__(/*! @/uni_modules/qiun-data-charts/components/qiun-error/qiun-error.vue */ 51)
       .default
   }
 } catch (e) {
@@ -2545,7 +1524,7 @@
 
 
 /***/ }),
-/* 26 */
+/* 21 */
 /*!*****************************************************************************************************************!*\
   !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/qiun-loading.vue ***!
   \*****************************************************************************************************************/
@@ -2553,10 +1532,10 @@
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 
 "use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _qiun_loading_vue_vue_type_template_id_1c4fd998___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./qiun-loading.vue?vue&type=template&id=1c4fd998& */ 27);\n/* harmony import */ var _qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./qiun-loading.vue?vue&type=script&lang=js& */ 29);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 12);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n  _qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n  _qiun_loading_vue_vue_type_template_id_1c4fd998___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n  _qiun_loading_vue_vue_type_template_id_1c4fd998___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n  false,\n  null,\n  null,\n  null,\n  false,\n  _qiun_loading_vue_vue_type_template_id_1c4fd998___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n  renderjs\n)\n\ncomponent.options.__file = \"uni_modules/qiun-data-charts/components/qiun-loading/qiun-loading.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBeUg7QUFDekg7QUFDZ0U7QUFDTDs7O0FBRzNEO0FBQzZNO0FBQzdNLGdCQUFnQiwyTUFBVTtBQUMxQixFQUFFLGtGQUFNO0FBQ1IsRUFBRSx1RkFBTTtBQUNSLEVBQUUsZ0dBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsMkZBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMjYuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL3FpdW4tbG9hZGluZy52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MWM0ZmQ5OTgmXCJcbnZhciByZW5kZXJqc1xuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9xaXVuLWxvYWRpbmcudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5leHBvcnQgKiBmcm9tIFwiLi9xaXVuLWxvYWRpbmcudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIG51bGwsXG4gIG51bGwsXG4gIGZhbHNlLFxuICBjb21wb25lbnRzLFxuICByZW5kZXJqc1xuKVxuXG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInVuaV9tb2R1bGVzL3FpdW4tZGF0YS1jaGFydHMvY29tcG9uZW50cy9xaXVuLWxvYWRpbmcvcWl1bi1sb2FkaW5nLnZ1ZVwiXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///26\n");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _qiun_loading_vue_vue_type_template_id_1c4fd998___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./qiun-loading.vue?vue&type=template&id=1c4fd998& */ 22);\n/* harmony import */ var _qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./qiun-loading.vue?vue&type=script&lang=js& */ 24);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 12);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n  _qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n  _qiun_loading_vue_vue_type_template_id_1c4fd998___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n  _qiun_loading_vue_vue_type_template_id_1c4fd998___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n  false,\n  null,\n  null,\n  null,\n  false,\n  _qiun_loading_vue_vue_type_template_id_1c4fd998___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n  renderjs\n)\n\ncomponent.options.__file = \"uni_modules/qiun-data-charts/components/qiun-loading/qiun-loading.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBeUg7QUFDekg7QUFDZ0U7QUFDTDs7O0FBRzNEO0FBQzZNO0FBQzdNLGdCQUFnQiwyTUFBVTtBQUMxQixFQUFFLGtGQUFNO0FBQ1IsRUFBRSx1RkFBTTtBQUNSLEVBQUUsZ0dBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsMkZBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMjEuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL3FpdW4tbG9hZGluZy52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MWM0ZmQ5OTgmXCJcbnZhciByZW5kZXJqc1xuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9xaXVuLWxvYWRpbmcudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5leHBvcnQgKiBmcm9tIFwiLi9xaXVuLWxvYWRpbmcudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIG51bGwsXG4gIG51bGwsXG4gIGZhbHNlLFxuICBjb21wb25lbnRzLFxuICByZW5kZXJqc1xuKVxuXG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInVuaV9tb2R1bGVzL3FpdW4tZGF0YS1jaGFydHMvY29tcG9uZW50cy9xaXVuLWxvYWRpbmcvcWl1bi1sb2FkaW5nLnZ1ZVwiXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///21\n");
 
 /***/ }),
-/* 27 */
+/* 22 */
 /*!************************************************************************************************************************************************!*\
   !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/qiun-loading.vue?vue&type=template&id=1c4fd998& ***!
   \************************************************************************************************************************************************/
@@ -2565,7 +1544,7 @@
 
 "use strict";
 __webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_loading_vue_vue_type_template_id_1c4fd998___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./qiun-loading.vue?vue&type=template&id=1c4fd998& */ 28);
+/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_loading_vue_vue_type_template_id_1c4fd998___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./qiun-loading.vue?vue&type=template&id=1c4fd998& */ 23);
 /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_loading_vue_vue_type_template_id_1c4fd998___WEBPACK_IMPORTED_MODULE_0__["render"]; });
 
 /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_loading_vue_vue_type_template_id_1c4fd998___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
@@ -2577,7 +1556,7 @@
 
 
 /***/ }),
-/* 28 */
+/* 23 */
 /*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
   !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/qiun-loading.vue?vue&type=template&id=1c4fd998& ***!
   \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
@@ -2624,7 +1603,7 @@
 
 
 /***/ }),
-/* 29 */
+/* 24 */
 /*!******************************************************************************************************************************************!*\
   !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/qiun-loading.vue?vue&type=script&lang=js& ***!
   \******************************************************************************************************************************************/
@@ -2632,10 +1611,10 @@
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 
 "use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./qiun-loading.vue?vue&type=script&lang=js& */ 30);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQWd0QixDQUFnQiwwckJBQUcsRUFBQyIsImZpbGUiOiIyOS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNi0xIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL3FpdW4tbG9hZGluZy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNi0xIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL3FpdW4tbG9hZGluZy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///29\n");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./qiun-loading.vue?vue&type=script&lang=js& */ 25);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQWd0QixDQUFnQiwwckJBQUcsRUFBQyIsImZpbGUiOiIyNC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNi0xIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL3FpdW4tbG9hZGluZy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNi0xIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL3FpdW4tbG9hZGluZy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///24\n");
 
 /***/ }),
-/* 30 */
+/* 25 */
 /*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
   !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/qiun-loading.vue?vue&type=script&lang=js& ***!
   \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
@@ -2643,10 +1622,10 @@
 /***/ (function(module, exports, __webpack_require__) {
 
 "use strict";
-eval("Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0;\n\n\n\n\n\n\n\n\n\n\nvar _loading = _interopRequireDefault(__webpack_require__(/*! ./loading1.vue */ 31));\nvar _loading2 = _interopRequireDefault(__webpack_require__(/*! ./loading2.vue */ 36));\nvar _loading3 = _interopRequireDefault(__webpack_require__(/*! ./loading3.vue */ 41));\nvar _loading4 = _interopRequireDefault(__webpack_require__(/*! ./loading4.vue */ 46));\nvar _loading5 = _interopRequireDefault(__webpack_require__(/*! ./loading5.vue */ 51));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} //\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default = { components: { Loading1: _loading.default, Loading2: _loading2.default, Loading3: _loading3.default, Loading4: _loading4.default, Loading5: _loading5.default }, name: 'qiun-loading', props: { loadingType: { type: Number, default: 2 } }, data: function data() {\n    return {};\n\n\n  } };exports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tbG9hZGluZy9xaXVuLWxvYWRpbmcudnVlIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBV0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzRjs7Ozs7Ozs7OztlQUNBLEVBQ0EsOEpBREEsRUFFQSxvQkFGQSxFQUdBLFNBQ0EsZUFDQSxZQURBLEVBRUEsVUFGQSxFQURBLEVBSEEsRUFTQSxJQVRBLGtCQVNBO0FBQ0E7OztBQUdBLEdBYkEsRSIsImZpbGUiOiIzMC5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuXHQ8dmlldz5cclxuXHQgPExvYWRpbmcxIHYtaWY9XCJsb2FkaW5nVHlwZT09MVwiLz5cclxuXHQgPExvYWRpbmcyIHYtaWY9XCJsb2FkaW5nVHlwZT09MlwiLz5cclxuXHQgPExvYWRpbmczIHYtaWY9XCJsb2FkaW5nVHlwZT09M1wiLz5cclxuXHQgPExvYWRpbmc0IHYtaWY9XCJsb2FkaW5nVHlwZT09NFwiLz5cclxuXHQgPExvYWRpbmc1IHYtaWY9XCJsb2FkaW5nVHlwZT09NVwiLz5cclxuXHQ8L3ZpZXc+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0PlxyXG5cdGltcG9ydCBMb2FkaW5nMSBmcm9tIFwiLi9sb2FkaW5nMS52dWVcIjtcclxuXHRpbXBvcnQgTG9hZGluZzIgZnJvbSBcIi4vbG9hZGluZzIudnVlXCI7XHJcblx0aW1wb3J0IExvYWRpbmczIGZyb20gXCIuL2xvYWRpbmczLnZ1ZVwiO1xyXG5cdGltcG9ydCBMb2FkaW5nNCBmcm9tIFwiLi9sb2FkaW5nNC52dWVcIjtcclxuXHRpbXBvcnQgTG9hZGluZzUgZnJvbSBcIi4vbG9hZGluZzUudnVlXCI7XHJcblx0ZXhwb3J0IGRlZmF1bHQge1xyXG5cdFx0Y29tcG9uZW50czp7TG9hZGluZzEsTG9hZGluZzIsTG9hZGluZzMsTG9hZGluZzQsTG9hZGluZzV9LFxyXG5cdFx0bmFtZTogJ3FpdW4tbG9hZGluZycsXHJcblx0XHRwcm9wczoge1xyXG5cdFx0XHRsb2FkaW5nVHlwZToge1xyXG5cdFx0XHRcdHR5cGU6IE51bWJlcixcclxuXHRcdFx0XHRkZWZhdWx0OiAyXHJcblx0XHRcdH0sXHJcblx0XHR9LFxyXG5cdFx0ZGF0YSgpIHtcclxuXHRcdFx0cmV0dXJuIHtcclxuXHRcdFx0XHRcclxuXHRcdFx0fTtcclxuXHRcdH0sXHJcblx0fVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZT5cclxuXHJcbjwvc3R5bGU+XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///30\n");
+eval("Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0;\n\n\n\n\n\n\n\n\n\n\nvar _loading = _interopRequireDefault(__webpack_require__(/*! ./loading1.vue */ 26));\nvar _loading2 = _interopRequireDefault(__webpack_require__(/*! ./loading2.vue */ 31));\nvar _loading3 = _interopRequireDefault(__webpack_require__(/*! ./loading3.vue */ 36));\nvar _loading4 = _interopRequireDefault(__webpack_require__(/*! ./loading4.vue */ 41));\nvar _loading5 = _interopRequireDefault(__webpack_require__(/*! ./loading5.vue */ 46));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} //\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default = { components: { Loading1: _loading.default, Loading2: _loading2.default, Loading3: _loading3.default, Loading4: _loading4.default, Loading5: _loading5.default }, name: 'qiun-loading', props: { loadingType: { type: Number, default: 2 } }, data: function data() {\n    return {};\n\n\n  } };exports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tbG9hZGluZy9xaXVuLWxvYWRpbmcudnVlIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBV0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzRjs7Ozs7Ozs7OztlQUNBLEVBQ0EsOEpBREEsRUFFQSxvQkFGQSxFQUdBLFNBQ0EsZUFDQSxZQURBLEVBRUEsVUFGQSxFQURBLEVBSEEsRUFTQSxJQVRBLGtCQVNBO0FBQ0E7OztBQUdBLEdBYkEsRSIsImZpbGUiOiIyNS5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuXHQ8dmlldz5cclxuXHQgPExvYWRpbmcxIHYtaWY9XCJsb2FkaW5nVHlwZT09MVwiLz5cclxuXHQgPExvYWRpbmcyIHYtaWY9XCJsb2FkaW5nVHlwZT09MlwiLz5cclxuXHQgPExvYWRpbmczIHYtaWY9XCJsb2FkaW5nVHlwZT09M1wiLz5cclxuXHQgPExvYWRpbmc0IHYtaWY9XCJsb2FkaW5nVHlwZT09NFwiLz5cclxuXHQgPExvYWRpbmc1IHYtaWY9XCJsb2FkaW5nVHlwZT09NVwiLz5cclxuXHQ8L3ZpZXc+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0PlxyXG5cdGltcG9ydCBMb2FkaW5nMSBmcm9tIFwiLi9sb2FkaW5nMS52dWVcIjtcclxuXHRpbXBvcnQgTG9hZGluZzIgZnJvbSBcIi4vbG9hZGluZzIudnVlXCI7XHJcblx0aW1wb3J0IExvYWRpbmczIGZyb20gXCIuL2xvYWRpbmczLnZ1ZVwiO1xyXG5cdGltcG9ydCBMb2FkaW5nNCBmcm9tIFwiLi9sb2FkaW5nNC52dWVcIjtcclxuXHRpbXBvcnQgTG9hZGluZzUgZnJvbSBcIi4vbG9hZGluZzUudnVlXCI7XHJcblx0ZXhwb3J0IGRlZmF1bHQge1xyXG5cdFx0Y29tcG9uZW50czp7TG9hZGluZzEsTG9hZGluZzIsTG9hZGluZzMsTG9hZGluZzQsTG9hZGluZzV9LFxyXG5cdFx0bmFtZTogJ3FpdW4tbG9hZGluZycsXHJcblx0XHRwcm9wczoge1xyXG5cdFx0XHRsb2FkaW5nVHlwZToge1xyXG5cdFx0XHRcdHR5cGU6IE51bWJlcixcclxuXHRcdFx0XHRkZWZhdWx0OiAyXHJcblx0XHRcdH0sXHJcblx0XHR9LFxyXG5cdFx0ZGF0YSgpIHtcclxuXHRcdFx0cmV0dXJuIHtcclxuXHRcdFx0XHRcclxuXHRcdFx0fTtcclxuXHRcdH0sXHJcblx0fVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZT5cclxuXHJcbjwvc3R5bGU+XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///25\n");
 
 /***/ }),
-/* 31 */
+/* 26 */
 /*!*************************************************************************************************************!*\
   !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading1.vue ***!
   \*************************************************************************************************************/
@@ -2654,10 +1633,10 @@
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 
 "use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _loading1_vue_vue_type_template_id_e4e769ee_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./loading1.vue?vue&type=template&id=e4e769ee&scoped=true& */ 32);\n/* harmony import */ var _loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./loading1.vue?vue&type=script&lang=js& */ 34);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 12);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n  _loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n  _loading1_vue_vue_type_template_id_e4e769ee_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n  _loading1_vue_vue_type_template_id_e4e769ee_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n  false,\n  null,\n  \"e4e769ee\",\n  null,\n  false,\n  _loading1_vue_vue_type_template_id_e4e769ee_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n  renderjs\n)\n\ncomponent.options.__file = \"uni_modules/qiun-data-charts/components/qiun-loading/loading1.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBaUk7QUFDakk7QUFDNEQ7QUFDTDs7O0FBR3ZEO0FBQzZNO0FBQzdNLGdCQUFnQiwyTUFBVTtBQUMxQixFQUFFLDhFQUFNO0FBQ1IsRUFBRSwrRkFBTTtBQUNSLEVBQUUsd0dBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsbUdBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMzEuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL2xvYWRpbmcxLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1lNGU3NjllZSZzY29wZWQ9dHJ1ZSZcIlxudmFyIHJlbmRlcmpzXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL2xvYWRpbmcxLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vbG9hZGluZzEudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIFwiZTRlNzY5ZWVcIixcbiAgbnVsbCxcbiAgZmFsc2UsXG4gIGNvbXBvbmVudHMsXG4gIHJlbmRlcmpzXG4pXG5cbmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwidW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tbG9hZGluZy9sb2FkaW5nMS52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///31\n");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _loading1_vue_vue_type_template_id_e4e769ee_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./loading1.vue?vue&type=template&id=e4e769ee&scoped=true& */ 27);\n/* harmony import */ var _loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./loading1.vue?vue&type=script&lang=js& */ 29);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 12);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n  _loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n  _loading1_vue_vue_type_template_id_e4e769ee_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n  _loading1_vue_vue_type_template_id_e4e769ee_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n  false,\n  null,\n  \"e4e769ee\",\n  null,\n  false,\n  _loading1_vue_vue_type_template_id_e4e769ee_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n  renderjs\n)\n\ncomponent.options.__file = \"uni_modules/qiun-data-charts/components/qiun-loading/loading1.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBaUk7QUFDakk7QUFDNEQ7QUFDTDs7O0FBR3ZEO0FBQzZNO0FBQzdNLGdCQUFnQiwyTUFBVTtBQUMxQixFQUFFLDhFQUFNO0FBQ1IsRUFBRSwrRkFBTTtBQUNSLEVBQUUsd0dBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsbUdBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMjYuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL2xvYWRpbmcxLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1lNGU3NjllZSZzY29wZWQ9dHJ1ZSZcIlxudmFyIHJlbmRlcmpzXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL2xvYWRpbmcxLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vbG9hZGluZzEudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIFwiZTRlNzY5ZWVcIixcbiAgbnVsbCxcbiAgZmFsc2UsXG4gIGNvbXBvbmVudHMsXG4gIHJlbmRlcmpzXG4pXG5cbmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwidW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tbG9hZGluZy9sb2FkaW5nMS52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///26\n");
 
 /***/ }),
-/* 32 */
+/* 27 */
 /*!********************************************************************************************************************************************************!*\
   !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading1.vue?vue&type=template&id=e4e769ee&scoped=true& ***!
   \********************************************************************************************************************************************************/
@@ -2666,7 +1645,7 @@
 
 "use strict";
 __webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading1_vue_vue_type_template_id_e4e769ee_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./loading1.vue?vue&type=template&id=e4e769ee&scoped=true& */ 33);
+/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading1_vue_vue_type_template_id_e4e769ee_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./loading1.vue?vue&type=template&id=e4e769ee&scoped=true& */ 28);
 /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading1_vue_vue_type_template_id_e4e769ee_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; });
 
 /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading1_vue_vue_type_template_id_e4e769ee_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
@@ -2678,7 +1657,7 @@
 
 
 /***/ }),
-/* 33 */
+/* 28 */
 /*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
   !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading1.vue?vue&type=template&id=e4e769ee&scoped=true& ***!
   \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
@@ -2726,7 +1705,7 @@
 
 
 /***/ }),
-/* 34 */
+/* 29 */
 /*!**************************************************************************************************************************************!*\
   !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading1.vue?vue&type=script&lang=js& ***!
   \**************************************************************************************************************************************/
@@ -2734,10 +1713,10 @@
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 
 "use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./loading1.vue?vue&type=script&lang=js& */ 35);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQTRzQixDQUFnQixzckJBQUcsRUFBQyIsImZpbGUiOiIzNC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNi0xIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2xvYWRpbmcxLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIjsgZXhwb3J0IGRlZmF1bHQgbW9kOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS02LTEhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXVuaS1hcHAtbG9hZGVyL3VzaW5nLWNvbXBvbmVudHMuanMhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vbG9hZGluZzEudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///34\n");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./loading1.vue?vue&type=script&lang=js& */ 30);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQTRzQixDQUFnQixzckJBQUcsRUFBQyIsImZpbGUiOiIyOS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNi0xIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2xvYWRpbmcxLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIjsgZXhwb3J0IGRlZmF1bHQgbW9kOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS02LTEhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXVuaS1hcHAtbG9hZGVyL3VzaW5nLWNvbXBvbmVudHMuanMhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vbG9hZGluZzEudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///29\n");
 
 /***/ }),
-/* 35 */
+/* 30 */
 /*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
   !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading1.vue?vue&type=script&lang=js& ***!
   \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
@@ -2745,10 +1724,10 @@
 /***/ (function(module, exports, __webpack_require__) {
 
 "use strict";
-eval("Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0; //\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default =\n{\n  name: 'loading1',\n  data: function data() {\n    return {};\n\n\n  } };exports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tbG9hZGluZy9sb2FkaW5nMS52dWUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQVVBO0FBQ0Esa0JBREE7QUFFQSxNQUZBLGtCQUVBO0FBQ0E7OztBQUdBLEdBTkEsRSIsImZpbGUiOiIzNS5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuXHQgPHZpZXcgY2xhc3M9XCJjb250YWluZXIgbG9hZGluZzFcIj5cclxuXHRcdDx2aWV3IGNsYXNzPVwic2hhcGUgc2hhcGUxXCI+PC92aWV3PlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJzaGFwZSBzaGFwZTJcIj48L3ZpZXc+XHJcblx0XHQ8dmlldyBjbGFzcz1cInNoYXBlIHNoYXBlM1wiPjwvdmlldz5cclxuXHRcdDx2aWV3IGNsYXNzPVwic2hhcGUgc2hhcGU0XCI+PC92aWV3PlxyXG5cdDwvdmlldz5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcblx0ZXhwb3J0IGRlZmF1bHQge1xyXG5cdFx0bmFtZTogJ2xvYWRpbmcxJyxcclxuXHRcdGRhdGEoKSB7XHJcblx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0XHJcblx0XHRcdH07XHJcblx0XHR9XHJcblx0fVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBzY29wZWQ9XCJ0cnVlXCI+XHJcbi5jb250YWluZXIge1xyXG4gIHdpZHRoOiAzMHB4O1xyXG4gIGhlaWdodDogMzBweDtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuLmNvbnRhaW5lci5sb2FkaW5nMSB7XHJcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XHJcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XHJcbn1cclxuXHJcbi5jb250YWluZXIgLnNoYXBlIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgd2lkdGg6IDEwcHg7XHJcbiAgaGVpZ2h0OiAxMHB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDFweDtcclxufVxyXG4uY29udGFpbmVyIC5zaGFwZS5zaGFwZTEge1xyXG4gIGxlZnQ6IDA7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE4OTBGRjtcclxufVxyXG4uY29udGFpbmVyIC5zaGFwZS5zaGFwZTIge1xyXG4gIHJpZ2h0OiAwO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICM5MUNCNzQ7XHJcbn1cclxuLmNvbnRhaW5lciAuc2hhcGUuc2hhcGUzIHtcclxuICBib3R0b206IDA7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZBQzg1ODtcclxufVxyXG4uY29udGFpbmVyIC5zaGFwZS5zaGFwZTQge1xyXG4gIGJvdHRvbTogMDtcclxuICByaWdodDogMDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUU2NjY2O1xyXG59XHJcblxyXG4ubG9hZGluZzEgLnNoYXBlMSB7XHJcbiAgLXdlYmtpdC1hbmltYXRpb246IGFuaW1hdGlvbjFzaGFwZTEgMC41cyBlYXNlIDBzIGluZmluaXRlIGFsdGVybmF0ZTtcclxuICAgICAgICAgIGFuaW1hdGlvbjogYW5pbWF0aW9uMXNoYXBlMSAwLjVzIGVhc2UgMHMgaW5maW5pdGUgYWx0ZXJuYXRlO1xyXG59XHJcblxyXG5ALXdlYmtpdC1rZXlmcmFtZXMgYW5pbWF0aW9uMXNoYXBlMSB7XHJcbiAgZnJvbSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgdG8ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgxNnB4LCAxNnB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTZweCwgMTZweCk7XHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGFuaW1hdGlvbjFzaGFwZTEge1xyXG4gIGZyb20ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIHRvIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTZweCwgMTZweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDE2cHgsIDE2cHgpO1xyXG4gIH1cclxufVxyXG4ubG9hZGluZzEgLnNoYXBlMiB7XHJcbiAgLXdlYmtpdC1hbmltYXRpb246IGFuaW1hdGlvbjFzaGFwZTIgMC41cyBlYXNlIDBzIGluZmluaXRlIGFsdGVybmF0ZTtcclxuICAgICAgICAgIGFuaW1hdGlvbjogYW5pbWF0aW9uMXNoYXBlMiAwLjVzIGVhc2UgMHMgaW5maW5pdGUgYWx0ZXJuYXRlO1xyXG59XHJcblxyXG5ALXdlYmtpdC1rZXlmcmFtZXMgYW5pbWF0aW9uMXNoYXBlMiB7XHJcbiAgZnJvbSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgdG8ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTZweCwgMTZweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNnB4LCAxNnB4KTtcclxuICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgYW5pbWF0aW9uMXNoYXBlMiB7XHJcbiAgZnJvbSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgdG8ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTZweCwgMTZweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNnB4LCAxNnB4KTtcclxuICB9XHJcbn1cclxuLmxvYWRpbmcxIC5zaGFwZTMge1xyXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBhbmltYXRpb24xc2hhcGUzIDAuNXMgZWFzZSAwcyBpbmZpbml0ZSBhbHRlcm5hdGU7XHJcbiAgICAgICAgICBhbmltYXRpb246IGFuaW1hdGlvbjFzaGFwZTMgMC41cyBlYXNlIDBzIGluZmluaXRlIGFsdGVybmF0ZTtcclxufVxyXG5cclxuQC13ZWJraXQta2V5ZnJhbWVzIGFuaW1hdGlvbjFzaGFwZTMge1xyXG4gIGZyb20ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIHRvIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTZweCwgLTE2cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxNnB4LCAtMTZweCk7XHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGFuaW1hdGlvbjFzaGFwZTMge1xyXG4gIGZyb20ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIHRvIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTZweCwgLTE2cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxNnB4LCAtMTZweCk7XHJcbiAgfVxyXG59XHJcbi5sb2FkaW5nMSAuc2hhcGU0IHtcclxuICAtd2Via2l0LWFuaW1hdGlvbjogYW5pbWF0aW9uMXNoYXBlNCAwLjVzIGVhc2UgMHMgaW5maW5pdGUgYWx0ZXJuYXRlO1xyXG4gICAgICAgICAgYW5pbWF0aW9uOiBhbmltYXRpb24xc2hhcGU0IDAuNXMgZWFzZSAwcyBpbmZpbml0ZSBhbHRlcm5hdGU7XHJcbn1cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyBhbmltYXRpb24xc2hhcGU0IHtcclxuICBmcm9tIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICB0byB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNnB4LCAtMTZweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNnB4LCAtMTZweCk7XHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGFuaW1hdGlvbjFzaGFwZTQge1xyXG4gIGZyb20ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIHRvIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE2cHgsIC0xNnB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE2cHgsIC0xNnB4KTtcclxuICB9XHJcbn1cclxuXHJcblxyXG48L3N0eWxlPlxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///35\n");
+eval("Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0; //\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default =\n{\n  name: 'loading1',\n  data: function data() {\n    return {};\n\n\n  } };exports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tbG9hZGluZy9sb2FkaW5nMS52dWUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQVVBO0FBQ0Esa0JBREE7QUFFQSxNQUZBLGtCQUVBO0FBQ0E7OztBQUdBLEdBTkEsRSIsImZpbGUiOiIzMC5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuXHQgPHZpZXcgY2xhc3M9XCJjb250YWluZXIgbG9hZGluZzFcIj5cclxuXHRcdDx2aWV3IGNsYXNzPVwic2hhcGUgc2hhcGUxXCI+PC92aWV3PlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJzaGFwZSBzaGFwZTJcIj48L3ZpZXc+XHJcblx0XHQ8dmlldyBjbGFzcz1cInNoYXBlIHNoYXBlM1wiPjwvdmlldz5cclxuXHRcdDx2aWV3IGNsYXNzPVwic2hhcGUgc2hhcGU0XCI+PC92aWV3PlxyXG5cdDwvdmlldz5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcblx0ZXhwb3J0IGRlZmF1bHQge1xyXG5cdFx0bmFtZTogJ2xvYWRpbmcxJyxcclxuXHRcdGRhdGEoKSB7XHJcblx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0XHJcblx0XHRcdH07XHJcblx0XHR9XHJcblx0fVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBzY29wZWQ9XCJ0cnVlXCI+XHJcbi5jb250YWluZXIge1xyXG4gIHdpZHRoOiAzMHB4O1xyXG4gIGhlaWdodDogMzBweDtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuLmNvbnRhaW5lci5sb2FkaW5nMSB7XHJcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XHJcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XHJcbn1cclxuXHJcbi5jb250YWluZXIgLnNoYXBlIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgd2lkdGg6IDEwcHg7XHJcbiAgaGVpZ2h0OiAxMHB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDFweDtcclxufVxyXG4uY29udGFpbmVyIC5zaGFwZS5zaGFwZTEge1xyXG4gIGxlZnQ6IDA7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE4OTBGRjtcclxufVxyXG4uY29udGFpbmVyIC5zaGFwZS5zaGFwZTIge1xyXG4gIHJpZ2h0OiAwO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICM5MUNCNzQ7XHJcbn1cclxuLmNvbnRhaW5lciAuc2hhcGUuc2hhcGUzIHtcclxuICBib3R0b206IDA7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZBQzg1ODtcclxufVxyXG4uY29udGFpbmVyIC5zaGFwZS5zaGFwZTQge1xyXG4gIGJvdHRvbTogMDtcclxuICByaWdodDogMDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUU2NjY2O1xyXG59XHJcblxyXG4ubG9hZGluZzEgLnNoYXBlMSB7XHJcbiAgLXdlYmtpdC1hbmltYXRpb246IGFuaW1hdGlvbjFzaGFwZTEgMC41cyBlYXNlIDBzIGluZmluaXRlIGFsdGVybmF0ZTtcclxuICAgICAgICAgIGFuaW1hdGlvbjogYW5pbWF0aW9uMXNoYXBlMSAwLjVzIGVhc2UgMHMgaW5maW5pdGUgYWx0ZXJuYXRlO1xyXG59XHJcblxyXG5ALXdlYmtpdC1rZXlmcmFtZXMgYW5pbWF0aW9uMXNoYXBlMSB7XHJcbiAgZnJvbSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgdG8ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgxNnB4LCAxNnB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTZweCwgMTZweCk7XHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGFuaW1hdGlvbjFzaGFwZTEge1xyXG4gIGZyb20ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIHRvIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTZweCwgMTZweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDE2cHgsIDE2cHgpO1xyXG4gIH1cclxufVxyXG4ubG9hZGluZzEgLnNoYXBlMiB7XHJcbiAgLXdlYmtpdC1hbmltYXRpb246IGFuaW1hdGlvbjFzaGFwZTIgMC41cyBlYXNlIDBzIGluZmluaXRlIGFsdGVybmF0ZTtcclxuICAgICAgICAgIGFuaW1hdGlvbjogYW5pbWF0aW9uMXNoYXBlMiAwLjVzIGVhc2UgMHMgaW5maW5pdGUgYWx0ZXJuYXRlO1xyXG59XHJcblxyXG5ALXdlYmtpdC1rZXlmcmFtZXMgYW5pbWF0aW9uMXNoYXBlMiB7XHJcbiAgZnJvbSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgdG8ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTZweCwgMTZweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNnB4LCAxNnB4KTtcclxuICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgYW5pbWF0aW9uMXNoYXBlMiB7XHJcbiAgZnJvbSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgdG8ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTZweCwgMTZweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNnB4LCAxNnB4KTtcclxuICB9XHJcbn1cclxuLmxvYWRpbmcxIC5zaGFwZTMge1xyXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBhbmltYXRpb24xc2hhcGUzIDAuNXMgZWFzZSAwcyBpbmZpbml0ZSBhbHRlcm5hdGU7XHJcbiAgICAgICAgICBhbmltYXRpb246IGFuaW1hdGlvbjFzaGFwZTMgMC41cyBlYXNlIDBzIGluZmluaXRlIGFsdGVybmF0ZTtcclxufVxyXG5cclxuQC13ZWJraXQta2V5ZnJhbWVzIGFuaW1hdGlvbjFzaGFwZTMge1xyXG4gIGZyb20ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIHRvIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTZweCwgLTE2cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxNnB4LCAtMTZweCk7XHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGFuaW1hdGlvbjFzaGFwZTMge1xyXG4gIGZyb20ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIHRvIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTZweCwgLTE2cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxNnB4LCAtMTZweCk7XHJcbiAgfVxyXG59XHJcbi5sb2FkaW5nMSAuc2hhcGU0IHtcclxuICAtd2Via2l0LWFuaW1hdGlvbjogYW5pbWF0aW9uMXNoYXBlNCAwLjVzIGVhc2UgMHMgaW5maW5pdGUgYWx0ZXJuYXRlO1xyXG4gICAgICAgICAgYW5pbWF0aW9uOiBhbmltYXRpb24xc2hhcGU0IDAuNXMgZWFzZSAwcyBpbmZpbml0ZSBhbHRlcm5hdGU7XHJcbn1cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyBhbmltYXRpb24xc2hhcGU0IHtcclxuICBmcm9tIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICB0byB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNnB4LCAtMTZweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNnB4LCAtMTZweCk7XHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGFuaW1hdGlvbjFzaGFwZTQge1xyXG4gIGZyb20ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIHRvIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE2cHgsIC0xNnB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE2cHgsIC0xNnB4KTtcclxuICB9XHJcbn1cclxuXHJcblxyXG48L3N0eWxlPlxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///30\n");
 
 /***/ }),
-/* 36 */
+/* 31 */
 /*!*************************************************************************************************************!*\
   !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading2.vue ***!
   \*************************************************************************************************************/
@@ -2756,10 +1735,10 @@
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 
 "use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _loading2_vue_vue_type_template_id_e4cb3aec_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./loading2.vue?vue&type=template&id=e4cb3aec&scoped=true& */ 37);\n/* harmony import */ var _loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./loading2.vue?vue&type=script&lang=js& */ 39);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 12);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n  _loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n  _loading2_vue_vue_type_template_id_e4cb3aec_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n  _loading2_vue_vue_type_template_id_e4cb3aec_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n  false,\n  null,\n  \"e4cb3aec\",\n  null,\n  false,\n  _loading2_vue_vue_type_template_id_e4cb3aec_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n  renderjs\n)\n\ncomponent.options.__file = \"uni_modules/qiun-data-charts/components/qiun-loading/loading2.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBaUk7QUFDakk7QUFDNEQ7QUFDTDs7O0FBR3ZEO0FBQzZNO0FBQzdNLGdCQUFnQiwyTUFBVTtBQUMxQixFQUFFLDhFQUFNO0FBQ1IsRUFBRSwrRkFBTTtBQUNSLEVBQUUsd0dBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsbUdBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMzYuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL2xvYWRpbmcyLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1lNGNiM2FlYyZzY29wZWQ9dHJ1ZSZcIlxudmFyIHJlbmRlcmpzXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL2xvYWRpbmcyLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vbG9hZGluZzIudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIFwiZTRjYjNhZWNcIixcbiAgbnVsbCxcbiAgZmFsc2UsXG4gIGNvbXBvbmVudHMsXG4gIHJlbmRlcmpzXG4pXG5cbmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwidW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tbG9hZGluZy9sb2FkaW5nMi52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///36\n");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _loading2_vue_vue_type_template_id_e4cb3aec_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./loading2.vue?vue&type=template&id=e4cb3aec&scoped=true& */ 32);\n/* harmony import */ var _loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./loading2.vue?vue&type=script&lang=js& */ 34);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 12);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n  _loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n  _loading2_vue_vue_type_template_id_e4cb3aec_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n  _loading2_vue_vue_type_template_id_e4cb3aec_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n  false,\n  null,\n  \"e4cb3aec\",\n  null,\n  false,\n  _loading2_vue_vue_type_template_id_e4cb3aec_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n  renderjs\n)\n\ncomponent.options.__file = \"uni_modules/qiun-data-charts/components/qiun-loading/loading2.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBaUk7QUFDakk7QUFDNEQ7QUFDTDs7O0FBR3ZEO0FBQzZNO0FBQzdNLGdCQUFnQiwyTUFBVTtBQUMxQixFQUFFLDhFQUFNO0FBQ1IsRUFBRSwrRkFBTTtBQUNSLEVBQUUsd0dBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsbUdBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMzEuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL2xvYWRpbmcyLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1lNGNiM2FlYyZzY29wZWQ9dHJ1ZSZcIlxudmFyIHJlbmRlcmpzXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL2xvYWRpbmcyLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vbG9hZGluZzIudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIFwiZTRjYjNhZWNcIixcbiAgbnVsbCxcbiAgZmFsc2UsXG4gIGNvbXBvbmVudHMsXG4gIHJlbmRlcmpzXG4pXG5cbmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwidW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tbG9hZGluZy9sb2FkaW5nMi52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///31\n");
 
 /***/ }),
-/* 37 */
+/* 32 */
 /*!********************************************************************************************************************************************************!*\
   !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading2.vue?vue&type=template&id=e4cb3aec&scoped=true& ***!
   \********************************************************************************************************************************************************/
@@ -2768,7 +1747,7 @@
 
 "use strict";
 __webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading2_vue_vue_type_template_id_e4cb3aec_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./loading2.vue?vue&type=template&id=e4cb3aec&scoped=true& */ 38);
+/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading2_vue_vue_type_template_id_e4cb3aec_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./loading2.vue?vue&type=template&id=e4cb3aec&scoped=true& */ 33);
 /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading2_vue_vue_type_template_id_e4cb3aec_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; });
 
 /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading2_vue_vue_type_template_id_e4cb3aec_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
@@ -2780,7 +1759,7 @@
 
 
 /***/ }),
-/* 38 */
+/* 33 */
 /*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
   !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading2.vue?vue&type=template&id=e4cb3aec&scoped=true& ***!
   \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
@@ -2828,7 +1807,7 @@
 
 
 /***/ }),
-/* 39 */
+/* 34 */
 /*!**************************************************************************************************************************************!*\
   !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading2.vue?vue&type=script&lang=js& ***!
   \**************************************************************************************************************************************/
@@ -2836,10 +1815,10 @@
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 
 "use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./loading2.vue?vue&type=script&lang=js& */ 40);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQTRzQixDQUFnQixzckJBQUcsRUFBQyIsImZpbGUiOiIzOS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNi0xIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2xvYWRpbmcyLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIjsgZXhwb3J0IGRlZmF1bHQgbW9kOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS02LTEhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXVuaS1hcHAtbG9hZGVyL3VzaW5nLWNvbXBvbmVudHMuanMhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vbG9hZGluZzIudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///39\n");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./loading2.vue?vue&type=script&lang=js& */ 35);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQTRzQixDQUFnQixzckJBQUcsRUFBQyIsImZpbGUiOiIzNC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNi0xIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2xvYWRpbmcyLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIjsgZXhwb3J0IGRlZmF1bHQgbW9kOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS02LTEhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXVuaS1hcHAtbG9hZGVyL3VzaW5nLWNvbXBvbmVudHMuanMhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vbG9hZGluZzIudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///34\n");
 
 /***/ }),
-/* 40 */
+/* 35 */
 /*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
   !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading2.vue?vue&type=script&lang=js& ***!
   \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
@@ -2847,10 +1826,10 @@
 /***/ (function(module, exports, __webpack_require__) {
 
 "use strict";
-eval("Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0; //\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default =\n{\n  name: 'loading2',\n  data: function data() {\n    return {};\n\n\n  } };exports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tbG9hZGluZy9sb2FkaW5nMi52dWUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQVVBO0FBQ0Esa0JBREE7QUFFQSxNQUZBLGtCQUVBO0FBQ0E7OztBQUdBLEdBTkEsRSIsImZpbGUiOiI0MC5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuXHQgPHZpZXcgY2xhc3M9XCJjb250YWluZXIgbG9hZGluZzJcIj5cclxuXHRcdDx2aWV3IGNsYXNzPVwic2hhcGUgc2hhcGUxXCI+PC92aWV3PlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJzaGFwZSBzaGFwZTJcIj48L3ZpZXc+XHJcblx0XHQ8dmlldyBjbGFzcz1cInNoYXBlIHNoYXBlM1wiPjwvdmlldz5cclxuXHRcdDx2aWV3IGNsYXNzPVwic2hhcGUgc2hhcGU0XCI+PC92aWV3PlxyXG5cdDwvdmlldz5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcblx0ZXhwb3J0IGRlZmF1bHQge1xyXG5cdFx0bmFtZTogJ2xvYWRpbmcyJyxcclxuXHRcdGRhdGEoKSB7XHJcblx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0XHJcblx0XHRcdH07XHJcblx0XHR9XHJcblx0fVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBzY29wZWQ9XCJ0cnVlXCI+XHJcbi5jb250YWluZXIge1xyXG4gIHdpZHRoOiAzMHB4O1xyXG4gIGhlaWdodDogMzBweDtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuXHJcbi5jb250YWluZXIubG9hZGluZzIge1xyXG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMTBkZWcpO1xyXG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTBkZWcpO1xyXG59XHJcbi5jb250YWluZXIubG9hZGluZzIgLnNoYXBlIHtcclxuICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbn1cclxuLmNvbnRhaW5lci5sb2FkaW5nMntcclxuICAtd2Via2l0LWFuaW1hdGlvbjogcm90YXRpb24gMXMgaW5maW5pdGU7XHJcbiAgICAgICAgICBhbmltYXRpb246IHJvdGF0aW9uIDFzIGluZmluaXRlO1xyXG59XHJcblxyXG4uY29udGFpbmVyIC5zaGFwZSB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHdpZHRoOiAxMHB4O1xyXG4gIGhlaWdodDogMTBweDtcclxuICBib3JkZXItcmFkaXVzOiAxcHg7XHJcbn1cclxuLmNvbnRhaW5lciAuc2hhcGUuc2hhcGUxIHtcclxuICBsZWZ0OiAwO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICMxODkwRkY7XHJcbn1cclxuLmNvbnRhaW5lciAuc2hhcGUuc2hhcGUyIHtcclxuICByaWdodDogMDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTFDQjc0O1xyXG59XHJcbi5jb250YWluZXIgLnNoYXBlLnNoYXBlMyB7XHJcbiAgYm90dG9tOiAwO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNGQUM4NTg7XHJcbn1cclxuLmNvbnRhaW5lciAuc2hhcGUuc2hhcGU0IHtcclxuICBib3R0b206IDA7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI0VFNjY2NjtcclxufVxyXG5cclxuXHJcbi5sb2FkaW5nMiAuc2hhcGUxIHtcclxuICAtd2Via2l0LWFuaW1hdGlvbjogYW5pbWF0aW9uMnNoYXBlMSAwLjVzIGVhc2UgMHMgaW5maW5pdGUgYWx0ZXJuYXRlO1xyXG4gICAgICAgICAgYW5pbWF0aW9uOiBhbmltYXRpb24yc2hhcGUxIDAuNXMgZWFzZSAwcyBpbmZpbml0ZSBhbHRlcm5hdGU7XHJcbn1cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyBhbmltYXRpb24yc2hhcGUxIHtcclxuICBmcm9tIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICB0byB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDIwcHgsIDIwcHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgyMHB4LCAyMHB4KTtcclxuICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgYW5pbWF0aW9uMnNoYXBlMSB7XHJcbiAgZnJvbSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgdG8ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgyMHB4LCAyMHB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMjBweCwgMjBweCk7XHJcbiAgfVxyXG59XHJcbi5sb2FkaW5nMiAuc2hhcGUyIHtcclxuICAtd2Via2l0LWFuaW1hdGlvbjogYW5pbWF0aW9uMnNoYXBlMiAwLjVzIGVhc2UgMHMgaW5maW5pdGUgYWx0ZXJuYXRlO1xyXG4gICAgICAgICAgYW5pbWF0aW9uOiBhbmltYXRpb24yc2hhcGUyIDAuNXMgZWFzZSAwcyBpbmZpbml0ZSBhbHRlcm5hdGU7XHJcbn1cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyBhbmltYXRpb24yc2hhcGUyIHtcclxuICBmcm9tIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICB0byB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0yMHB4LCAyMHB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTIwcHgsIDIwcHgpO1xyXG4gIH1cclxufVxyXG5cclxuQGtleWZyYW1lcyBhbmltYXRpb24yc2hhcGUyIHtcclxuICBmcm9tIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICB0byB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0yMHB4LCAyMHB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTIwcHgsIDIwcHgpO1xyXG4gIH1cclxufVxyXG4ubG9hZGluZzIgLnNoYXBlMyB7XHJcbiAgLXdlYmtpdC1hbmltYXRpb246IGFuaW1hdGlvbjJzaGFwZTMgMC41cyBlYXNlIDBzIGluZmluaXRlIGFsdGVybmF0ZTtcclxuICAgICAgICAgIGFuaW1hdGlvbjogYW5pbWF0aW9uMnNoYXBlMyAwLjVzIGVhc2UgMHMgaW5maW5pdGUgYWx0ZXJuYXRlO1xyXG59XHJcblxyXG5ALXdlYmtpdC1rZXlmcmFtZXMgYW5pbWF0aW9uMnNoYXBlMyB7XHJcbiAgZnJvbSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgdG8ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgyMHB4LCAtMjBweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDIwcHgsIC0yMHB4KTtcclxuICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgYW5pbWF0aW9uMnNoYXBlMyB7XHJcbiAgZnJvbSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgdG8ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgyMHB4LCAtMjBweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDIwcHgsIC0yMHB4KTtcclxuICB9XHJcbn1cclxuLmxvYWRpbmcyIC5zaGFwZTQge1xyXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBhbmltYXRpb24yc2hhcGU0IDAuNXMgZWFzZSAwcyBpbmZpbml0ZSBhbHRlcm5hdGU7XHJcbiAgICAgICAgICBhbmltYXRpb246IGFuaW1hdGlvbjJzaGFwZTQgMC41cyBlYXNlIDBzIGluZmluaXRlIGFsdGVybmF0ZTtcclxufVxyXG5cclxuQC13ZWJraXQta2V5ZnJhbWVzIGFuaW1hdGlvbjJzaGFwZTQge1xyXG4gIGZyb20ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIHRvIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTIwcHgsIC0yMHB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTIwcHgsIC0yMHB4KTtcclxuICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgYW5pbWF0aW9uMnNoYXBlNCB7XHJcbiAgZnJvbSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgdG8ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjBweCwgLTIwcHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjBweCwgLTIwcHgpO1xyXG4gIH1cclxufVxyXG5cclxuPC9zdHlsZT5cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///40\n");
+eval("Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0; //\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default =\n{\n  name: 'loading2',\n  data: function data() {\n    return {};\n\n\n  } };exports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tbG9hZGluZy9sb2FkaW5nMi52dWUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQVVBO0FBQ0Esa0JBREE7QUFFQSxNQUZBLGtCQUVBO0FBQ0E7OztBQUdBLEdBTkEsRSIsImZpbGUiOiIzNS5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuXHQgPHZpZXcgY2xhc3M9XCJjb250YWluZXIgbG9hZGluZzJcIj5cclxuXHRcdDx2aWV3IGNsYXNzPVwic2hhcGUgc2hhcGUxXCI+PC92aWV3PlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJzaGFwZSBzaGFwZTJcIj48L3ZpZXc+XHJcblx0XHQ8dmlldyBjbGFzcz1cInNoYXBlIHNoYXBlM1wiPjwvdmlldz5cclxuXHRcdDx2aWV3IGNsYXNzPVwic2hhcGUgc2hhcGU0XCI+PC92aWV3PlxyXG5cdDwvdmlldz5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcblx0ZXhwb3J0IGRlZmF1bHQge1xyXG5cdFx0bmFtZTogJ2xvYWRpbmcyJyxcclxuXHRcdGRhdGEoKSB7XHJcblx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0XHJcblx0XHRcdH07XHJcblx0XHR9XHJcblx0fVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBzY29wZWQ9XCJ0cnVlXCI+XHJcbi5jb250YWluZXIge1xyXG4gIHdpZHRoOiAzMHB4O1xyXG4gIGhlaWdodDogMzBweDtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuXHJcbi5jb250YWluZXIubG9hZGluZzIge1xyXG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMTBkZWcpO1xyXG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTBkZWcpO1xyXG59XHJcbi5jb250YWluZXIubG9hZGluZzIgLnNoYXBlIHtcclxuICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbn1cclxuLmNvbnRhaW5lci5sb2FkaW5nMntcclxuICAtd2Via2l0LWFuaW1hdGlvbjogcm90YXRpb24gMXMgaW5maW5pdGU7XHJcbiAgICAgICAgICBhbmltYXRpb246IHJvdGF0aW9uIDFzIGluZmluaXRlO1xyXG59XHJcblxyXG4uY29udGFpbmVyIC5zaGFwZSB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHdpZHRoOiAxMHB4O1xyXG4gIGhlaWdodDogMTBweDtcclxuICBib3JkZXItcmFkaXVzOiAxcHg7XHJcbn1cclxuLmNvbnRhaW5lciAuc2hhcGUuc2hhcGUxIHtcclxuICBsZWZ0OiAwO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICMxODkwRkY7XHJcbn1cclxuLmNvbnRhaW5lciAuc2hhcGUuc2hhcGUyIHtcclxuICByaWdodDogMDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTFDQjc0O1xyXG59XHJcbi5jb250YWluZXIgLnNoYXBlLnNoYXBlMyB7XHJcbiAgYm90dG9tOiAwO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNGQUM4NTg7XHJcbn1cclxuLmNvbnRhaW5lciAuc2hhcGUuc2hhcGU0IHtcclxuICBib3R0b206IDA7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI0VFNjY2NjtcclxufVxyXG5cclxuXHJcbi5sb2FkaW5nMiAuc2hhcGUxIHtcclxuICAtd2Via2l0LWFuaW1hdGlvbjogYW5pbWF0aW9uMnNoYXBlMSAwLjVzIGVhc2UgMHMgaW5maW5pdGUgYWx0ZXJuYXRlO1xyXG4gICAgICAgICAgYW5pbWF0aW9uOiBhbmltYXRpb24yc2hhcGUxIDAuNXMgZWFzZSAwcyBpbmZpbml0ZSBhbHRlcm5hdGU7XHJcbn1cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyBhbmltYXRpb24yc2hhcGUxIHtcclxuICBmcm9tIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICB0byB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDIwcHgsIDIwcHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgyMHB4LCAyMHB4KTtcclxuICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgYW5pbWF0aW9uMnNoYXBlMSB7XHJcbiAgZnJvbSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgdG8ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgyMHB4LCAyMHB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMjBweCwgMjBweCk7XHJcbiAgfVxyXG59XHJcbi5sb2FkaW5nMiAuc2hhcGUyIHtcclxuICAtd2Via2l0LWFuaW1hdGlvbjogYW5pbWF0aW9uMnNoYXBlMiAwLjVzIGVhc2UgMHMgaW5maW5pdGUgYWx0ZXJuYXRlO1xyXG4gICAgICAgICAgYW5pbWF0aW9uOiBhbmltYXRpb24yc2hhcGUyIDAuNXMgZWFzZSAwcyBpbmZpbml0ZSBhbHRlcm5hdGU7XHJcbn1cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyBhbmltYXRpb24yc2hhcGUyIHtcclxuICBmcm9tIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICB0byB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0yMHB4LCAyMHB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTIwcHgsIDIwcHgpO1xyXG4gIH1cclxufVxyXG5cclxuQGtleWZyYW1lcyBhbmltYXRpb24yc2hhcGUyIHtcclxuICBmcm9tIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICB0byB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0yMHB4LCAyMHB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTIwcHgsIDIwcHgpO1xyXG4gIH1cclxufVxyXG4ubG9hZGluZzIgLnNoYXBlMyB7XHJcbiAgLXdlYmtpdC1hbmltYXRpb246IGFuaW1hdGlvbjJzaGFwZTMgMC41cyBlYXNlIDBzIGluZmluaXRlIGFsdGVybmF0ZTtcclxuICAgICAgICAgIGFuaW1hdGlvbjogYW5pbWF0aW9uMnNoYXBlMyAwLjVzIGVhc2UgMHMgaW5maW5pdGUgYWx0ZXJuYXRlO1xyXG59XHJcblxyXG5ALXdlYmtpdC1rZXlmcmFtZXMgYW5pbWF0aW9uMnNoYXBlMyB7XHJcbiAgZnJvbSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgdG8ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgyMHB4LCAtMjBweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDIwcHgsIC0yMHB4KTtcclxuICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgYW5pbWF0aW9uMnNoYXBlMyB7XHJcbiAgZnJvbSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgdG8ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgyMHB4LCAtMjBweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDIwcHgsIC0yMHB4KTtcclxuICB9XHJcbn1cclxuLmxvYWRpbmcyIC5zaGFwZTQge1xyXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBhbmltYXRpb24yc2hhcGU0IDAuNXMgZWFzZSAwcyBpbmZpbml0ZSBhbHRlcm5hdGU7XHJcbiAgICAgICAgICBhbmltYXRpb246IGFuaW1hdGlvbjJzaGFwZTQgMC41cyBlYXNlIDBzIGluZmluaXRlIGFsdGVybmF0ZTtcclxufVxyXG5cclxuQC13ZWJraXQta2V5ZnJhbWVzIGFuaW1hdGlvbjJzaGFwZTQge1xyXG4gIGZyb20ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIHRvIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTIwcHgsIC0yMHB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTIwcHgsIC0yMHB4KTtcclxuICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgYW5pbWF0aW9uMnNoYXBlNCB7XHJcbiAgZnJvbSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgdG8ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjBweCwgLTIwcHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjBweCwgLTIwcHgpO1xyXG4gIH1cclxufVxyXG5cclxuPC9zdHlsZT5cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///35\n");
 
 /***/ }),
-/* 41 */
+/* 36 */
 /*!*************************************************************************************************************!*\
   !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading3.vue ***!
   \*************************************************************************************************************/
@@ -2858,10 +1837,10 @@
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 
 "use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _loading3_vue_vue_type_template_id_e4af0bea_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./loading3.vue?vue&type=template&id=e4af0bea&scoped=true& */ 42);\n/* harmony import */ var _loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./loading3.vue?vue&type=script&lang=js& */ 44);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 12);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n  _loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n  _loading3_vue_vue_type_template_id_e4af0bea_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n  _loading3_vue_vue_type_template_id_e4af0bea_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n  false,\n  null,\n  \"e4af0bea\",\n  null,\n  false,\n  _loading3_vue_vue_type_template_id_e4af0bea_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n  renderjs\n)\n\ncomponent.options.__file = \"uni_modules/qiun-data-charts/components/qiun-loading/loading3.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBaUk7QUFDakk7QUFDNEQ7QUFDTDs7O0FBR3ZEO0FBQzZNO0FBQzdNLGdCQUFnQiwyTUFBVTtBQUMxQixFQUFFLDhFQUFNO0FBQ1IsRUFBRSwrRkFBTTtBQUNSLEVBQUUsd0dBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsbUdBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiNDEuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL2xvYWRpbmczLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1lNGFmMGJlYSZzY29wZWQ9dHJ1ZSZcIlxudmFyIHJlbmRlcmpzXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL2xvYWRpbmczLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vbG9hZGluZzMudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIFwiZTRhZjBiZWFcIixcbiAgbnVsbCxcbiAgZmFsc2UsXG4gIGNvbXBvbmVudHMsXG4gIHJlbmRlcmpzXG4pXG5cbmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwidW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tbG9hZGluZy9sb2FkaW5nMy52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///41\n");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _loading3_vue_vue_type_template_id_e4af0bea_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./loading3.vue?vue&type=template&id=e4af0bea&scoped=true& */ 37);\n/* harmony import */ var _loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./loading3.vue?vue&type=script&lang=js& */ 39);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 12);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n  _loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n  _loading3_vue_vue_type_template_id_e4af0bea_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n  _loading3_vue_vue_type_template_id_e4af0bea_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n  false,\n  null,\n  \"e4af0bea\",\n  null,\n  false,\n  _loading3_vue_vue_type_template_id_e4af0bea_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n  renderjs\n)\n\ncomponent.options.__file = \"uni_modules/qiun-data-charts/components/qiun-loading/loading3.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBaUk7QUFDakk7QUFDNEQ7QUFDTDs7O0FBR3ZEO0FBQzZNO0FBQzdNLGdCQUFnQiwyTUFBVTtBQUMxQixFQUFFLDhFQUFNO0FBQ1IsRUFBRSwrRkFBTTtBQUNSLEVBQUUsd0dBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsbUdBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMzYuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL2xvYWRpbmczLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1lNGFmMGJlYSZzY29wZWQ9dHJ1ZSZcIlxudmFyIHJlbmRlcmpzXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL2xvYWRpbmczLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vbG9hZGluZzMudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIFwiZTRhZjBiZWFcIixcbiAgbnVsbCxcbiAgZmFsc2UsXG4gIGNvbXBvbmVudHMsXG4gIHJlbmRlcmpzXG4pXG5cbmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwidW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tbG9hZGluZy9sb2FkaW5nMy52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///36\n");
 
 /***/ }),
-/* 42 */
+/* 37 */
 /*!********************************************************************************************************************************************************!*\
   !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading3.vue?vue&type=template&id=e4af0bea&scoped=true& ***!
   \********************************************************************************************************************************************************/
@@ -2870,7 +1849,7 @@
 
 "use strict";
 __webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading3_vue_vue_type_template_id_e4af0bea_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./loading3.vue?vue&type=template&id=e4af0bea&scoped=true& */ 43);
+/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading3_vue_vue_type_template_id_e4af0bea_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./loading3.vue?vue&type=template&id=e4af0bea&scoped=true& */ 38);
 /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading3_vue_vue_type_template_id_e4af0bea_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; });
 
 /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading3_vue_vue_type_template_id_e4af0bea_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
@@ -2882,7 +1861,7 @@
 
 
 /***/ }),
-/* 43 */
+/* 38 */
 /*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
   !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading3.vue?vue&type=template&id=e4af0bea&scoped=true& ***!
   \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
@@ -2930,7 +1909,7 @@
 
 
 /***/ }),
-/* 44 */
+/* 39 */
 /*!**************************************************************************************************************************************!*\
   !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading3.vue?vue&type=script&lang=js& ***!
   \**************************************************************************************************************************************/
@@ -2938,10 +1917,10 @@
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 
 "use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./loading3.vue?vue&type=script&lang=js& */ 45);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQTRzQixDQUFnQixzckJBQUcsRUFBQyIsImZpbGUiOiI0NC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNi0xIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2xvYWRpbmczLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIjsgZXhwb3J0IGRlZmF1bHQgbW9kOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS02LTEhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXVuaS1hcHAtbG9hZGVyL3VzaW5nLWNvbXBvbmVudHMuanMhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vbG9hZGluZzMudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///44\n");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./loading3.vue?vue&type=script&lang=js& */ 40);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQTRzQixDQUFnQixzckJBQUcsRUFBQyIsImZpbGUiOiIzOS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNi0xIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2xvYWRpbmczLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIjsgZXhwb3J0IGRlZmF1bHQgbW9kOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS02LTEhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXVuaS1hcHAtbG9hZGVyL3VzaW5nLWNvbXBvbmVudHMuanMhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vbG9hZGluZzMudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///39\n");
 
 /***/ }),
-/* 45 */
+/* 40 */
 /*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
   !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading3.vue?vue&type=script&lang=js& ***!
   \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
@@ -2949,10 +1928,10 @@
 /***/ (function(module, exports, __webpack_require__) {
 
 "use strict";
-eval("Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0; //\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default =\n{\n  name: 'loading3',\n  data: function data() {\n    return {};\n\n\n  } };exports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tbG9hZGluZy9sb2FkaW5nMy52dWUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQVVBO0FBQ0Esa0JBREE7QUFFQSxNQUZBLGtCQUVBO0FBQ0E7OztBQUdBLEdBTkEsRSIsImZpbGUiOiI0NS5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuXHQgPHZpZXcgY2xhc3M9XCJjb250YWluZXIgbG9hZGluZzNcIj5cclxuXHRcdDx2aWV3IGNsYXNzPVwic2hhcGUgc2hhcGUxXCI+PC92aWV3PlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJzaGFwZSBzaGFwZTJcIj48L3ZpZXc+XHJcblx0XHQ8dmlldyBjbGFzcz1cInNoYXBlIHNoYXBlM1wiPjwvdmlldz5cclxuXHRcdDx2aWV3IGNsYXNzPVwic2hhcGUgc2hhcGU0XCI+PC92aWV3PlxyXG5cdDwvdmlldz5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcblx0ZXhwb3J0IGRlZmF1bHQge1xyXG5cdFx0bmFtZTogJ2xvYWRpbmczJyxcclxuXHRcdGRhdGEoKSB7XHJcblx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0XHJcblx0XHRcdH07XHJcblx0XHR9XHJcblx0fVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBzY29wZWQ9XCJ0cnVlXCI+XHJcbi5jb250YWluZXIge1xyXG4gIHdpZHRoOiAzMHB4O1xyXG4gIGhlaWdodDogMzBweDtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuXHJcbiAuY29udGFpbmVyLmxvYWRpbmczIHtcclxuICAtd2Via2l0LWFuaW1hdGlvbjogcm90YXRpb24gMXMgaW5maW5pdGU7XHJcbiAgICAgICAgICBhbmltYXRpb246IHJvdGF0aW9uIDFzIGluZmluaXRlO1xyXG59XHJcbi5jb250YWluZXIubG9hZGluZzMgLnNoYXBlMSB7XHJcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMTBweDtcclxufVxyXG4uY29udGFpbmVyLmxvYWRpbmczIC5zaGFwZTIge1xyXG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAxMHB4O1xyXG59XHJcbi5jb250YWluZXIubG9hZGluZzMgLnNoYXBlMyB7XHJcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMTBweDtcclxufVxyXG4uY29udGFpbmVyLmxvYWRpbmczIC5zaGFwZTQge1xyXG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAxMHB4O1xyXG59XHJcblxyXG4uY29udGFpbmVyIC5zaGFwZSB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHdpZHRoOiAxMHB4O1xyXG4gIGhlaWdodDogMTBweDtcclxuICBib3JkZXItcmFkaXVzOiAxcHg7XHJcbn1cclxuLmNvbnRhaW5lciAuc2hhcGUuc2hhcGUxIHtcclxuICBsZWZ0OiAwO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICMxODkwRkY7XHJcbn1cclxuLmNvbnRhaW5lciAuc2hhcGUuc2hhcGUyIHtcclxuICByaWdodDogMDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTFDQjc0O1xyXG59XHJcbi5jb250YWluZXIgLnNoYXBlLnNoYXBlMyB7XHJcbiAgYm90dG9tOiAwO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNGQUM4NTg7XHJcbn1cclxuLmNvbnRhaW5lciAuc2hhcGUuc2hhcGU0IHtcclxuICBib3R0b206IDA7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI0VFNjY2NjtcclxufVxyXG5cclxuLmxvYWRpbmczIC5zaGFwZTEge1xyXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBhbmltYXRpb24zc2hhcGUxIDAuNXMgZWFzZSAwcyBpbmZpbml0ZSBhbHRlcm5hdGU7XHJcbiAgICAgICAgICBhbmltYXRpb246IGFuaW1hdGlvbjNzaGFwZTEgMC41cyBlYXNlIDBzIGluZmluaXRlIGFsdGVybmF0ZTtcclxufVxyXG5cclxuQC13ZWJraXQta2V5ZnJhbWVzIGFuaW1hdGlvbjNzaGFwZTEge1xyXG4gIGZyb20ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIHRvIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoNXB4LCA1cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSg1cHgsIDVweCk7XHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGFuaW1hdGlvbjNzaGFwZTEge1xyXG4gIGZyb20ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIHRvIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoNXB4LCA1cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSg1cHgsIDVweCk7XHJcbiAgfVxyXG59XHJcbi5sb2FkaW5nMyAuc2hhcGUyIHtcclxuICAtd2Via2l0LWFuaW1hdGlvbjogYW5pbWF0aW9uM3NoYXBlMiAwLjVzIGVhc2UgMHMgaW5maW5pdGUgYWx0ZXJuYXRlO1xyXG4gICAgICAgICAgYW5pbWF0aW9uOiBhbmltYXRpb24zc2hhcGUyIDAuNXMgZWFzZSAwcyBpbmZpbml0ZSBhbHRlcm5hdGU7XHJcbn1cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyBhbmltYXRpb24zc2hhcGUyIHtcclxuICBmcm9tIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICB0byB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC01cHgsIDVweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01cHgsIDVweCk7XHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGFuaW1hdGlvbjNzaGFwZTIge1xyXG4gIGZyb20ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIHRvIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTVweCwgNXB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTVweCwgNXB4KTtcclxuICB9XHJcbn1cclxuLmxvYWRpbmczIC5zaGFwZTMge1xyXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBhbmltYXRpb24zc2hhcGUzIDAuNXMgZWFzZSAwcyBpbmZpbml0ZSBhbHRlcm5hdGU7XHJcbiAgICAgICAgICBhbmltYXRpb246IGFuaW1hdGlvbjNzaGFwZTMgMC41cyBlYXNlIDBzIGluZmluaXRlIGFsdGVybmF0ZTtcclxufVxyXG5cclxuQC13ZWJraXQta2V5ZnJhbWVzIGFuaW1hdGlvbjNzaGFwZTMge1xyXG4gIGZyb20ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIHRvIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoNXB4LCAtNXB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoNXB4LCAtNXB4KTtcclxuICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgYW5pbWF0aW9uM3NoYXBlMyB7XHJcbiAgZnJvbSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgdG8ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSg1cHgsIC01cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSg1cHgsIC01cHgpO1xyXG4gIH1cclxufVxyXG4ubG9hZGluZzMgLnNoYXBlNCB7XHJcbiAgLXdlYmtpdC1hbmltYXRpb246IGFuaW1hdGlvbjNzaGFwZTQgMC41cyBlYXNlIDBzIGluZmluaXRlIGFsdGVybmF0ZTtcclxuICAgICAgICAgIGFuaW1hdGlvbjogYW5pbWF0aW9uM3NoYXBlNCAwLjVzIGVhc2UgMHMgaW5maW5pdGUgYWx0ZXJuYXRlO1xyXG59XHJcblxyXG5ALXdlYmtpdC1rZXlmcmFtZXMgYW5pbWF0aW9uM3NoYXBlNCB7XHJcbiAgZnJvbSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgdG8ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNXB4LCAtNXB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTVweCwgLTVweCk7XHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGFuaW1hdGlvbjNzaGFwZTQge1xyXG4gIGZyb20ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIHRvIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTVweCwgLTVweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01cHgsIC01cHgpO1xyXG4gIH1cclxufVxyXG48L3N0eWxlPlxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///45\n");
+eval("Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0; //\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default =\n{\n  name: 'loading3',\n  data: function data() {\n    return {};\n\n\n  } };exports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tbG9hZGluZy9sb2FkaW5nMy52dWUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQVVBO0FBQ0Esa0JBREE7QUFFQSxNQUZBLGtCQUVBO0FBQ0E7OztBQUdBLEdBTkEsRSIsImZpbGUiOiI0MC5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuXHQgPHZpZXcgY2xhc3M9XCJjb250YWluZXIgbG9hZGluZzNcIj5cclxuXHRcdDx2aWV3IGNsYXNzPVwic2hhcGUgc2hhcGUxXCI+PC92aWV3PlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJzaGFwZSBzaGFwZTJcIj48L3ZpZXc+XHJcblx0XHQ8dmlldyBjbGFzcz1cInNoYXBlIHNoYXBlM1wiPjwvdmlldz5cclxuXHRcdDx2aWV3IGNsYXNzPVwic2hhcGUgc2hhcGU0XCI+PC92aWV3PlxyXG5cdDwvdmlldz5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcblx0ZXhwb3J0IGRlZmF1bHQge1xyXG5cdFx0bmFtZTogJ2xvYWRpbmczJyxcclxuXHRcdGRhdGEoKSB7XHJcblx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0XHJcblx0XHRcdH07XHJcblx0XHR9XHJcblx0fVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBzY29wZWQ9XCJ0cnVlXCI+XHJcbi5jb250YWluZXIge1xyXG4gIHdpZHRoOiAzMHB4O1xyXG4gIGhlaWdodDogMzBweDtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuXHJcbiAuY29udGFpbmVyLmxvYWRpbmczIHtcclxuICAtd2Via2l0LWFuaW1hdGlvbjogcm90YXRpb24gMXMgaW5maW5pdGU7XHJcbiAgICAgICAgICBhbmltYXRpb246IHJvdGF0aW9uIDFzIGluZmluaXRlO1xyXG59XHJcbi5jb250YWluZXIubG9hZGluZzMgLnNoYXBlMSB7XHJcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMTBweDtcclxufVxyXG4uY29udGFpbmVyLmxvYWRpbmczIC5zaGFwZTIge1xyXG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAxMHB4O1xyXG59XHJcbi5jb250YWluZXIubG9hZGluZzMgLnNoYXBlMyB7XHJcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMTBweDtcclxufVxyXG4uY29udGFpbmVyLmxvYWRpbmczIC5zaGFwZTQge1xyXG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAxMHB4O1xyXG59XHJcblxyXG4uY29udGFpbmVyIC5zaGFwZSB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHdpZHRoOiAxMHB4O1xyXG4gIGhlaWdodDogMTBweDtcclxuICBib3JkZXItcmFkaXVzOiAxcHg7XHJcbn1cclxuLmNvbnRhaW5lciAuc2hhcGUuc2hhcGUxIHtcclxuICBsZWZ0OiAwO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICMxODkwRkY7XHJcbn1cclxuLmNvbnRhaW5lciAuc2hhcGUuc2hhcGUyIHtcclxuICByaWdodDogMDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTFDQjc0O1xyXG59XHJcbi5jb250YWluZXIgLnNoYXBlLnNoYXBlMyB7XHJcbiAgYm90dG9tOiAwO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNGQUM4NTg7XHJcbn1cclxuLmNvbnRhaW5lciAuc2hhcGUuc2hhcGU0IHtcclxuICBib3R0b206IDA7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI0VFNjY2NjtcclxufVxyXG5cclxuLmxvYWRpbmczIC5zaGFwZTEge1xyXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBhbmltYXRpb24zc2hhcGUxIDAuNXMgZWFzZSAwcyBpbmZpbml0ZSBhbHRlcm5hdGU7XHJcbiAgICAgICAgICBhbmltYXRpb246IGFuaW1hdGlvbjNzaGFwZTEgMC41cyBlYXNlIDBzIGluZmluaXRlIGFsdGVybmF0ZTtcclxufVxyXG5cclxuQC13ZWJraXQta2V5ZnJhbWVzIGFuaW1hdGlvbjNzaGFwZTEge1xyXG4gIGZyb20ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIHRvIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoNXB4LCA1cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSg1cHgsIDVweCk7XHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGFuaW1hdGlvbjNzaGFwZTEge1xyXG4gIGZyb20ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIHRvIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoNXB4LCA1cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSg1cHgsIDVweCk7XHJcbiAgfVxyXG59XHJcbi5sb2FkaW5nMyAuc2hhcGUyIHtcclxuICAtd2Via2l0LWFuaW1hdGlvbjogYW5pbWF0aW9uM3NoYXBlMiAwLjVzIGVhc2UgMHMgaW5maW5pdGUgYWx0ZXJuYXRlO1xyXG4gICAgICAgICAgYW5pbWF0aW9uOiBhbmltYXRpb24zc2hhcGUyIDAuNXMgZWFzZSAwcyBpbmZpbml0ZSBhbHRlcm5hdGU7XHJcbn1cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyBhbmltYXRpb24zc2hhcGUyIHtcclxuICBmcm9tIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICB0byB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC01cHgsIDVweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01cHgsIDVweCk7XHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGFuaW1hdGlvbjNzaGFwZTIge1xyXG4gIGZyb20ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIHRvIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTVweCwgNXB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTVweCwgNXB4KTtcclxuICB9XHJcbn1cclxuLmxvYWRpbmczIC5zaGFwZTMge1xyXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBhbmltYXRpb24zc2hhcGUzIDAuNXMgZWFzZSAwcyBpbmZpbml0ZSBhbHRlcm5hdGU7XHJcbiAgICAgICAgICBhbmltYXRpb246IGFuaW1hdGlvbjNzaGFwZTMgMC41cyBlYXNlIDBzIGluZmluaXRlIGFsdGVybmF0ZTtcclxufVxyXG5cclxuQC13ZWJraXQta2V5ZnJhbWVzIGFuaW1hdGlvbjNzaGFwZTMge1xyXG4gIGZyb20ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIHRvIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoNXB4LCAtNXB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoNXB4LCAtNXB4KTtcclxuICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgYW5pbWF0aW9uM3NoYXBlMyB7XHJcbiAgZnJvbSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgdG8ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSg1cHgsIC01cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSg1cHgsIC01cHgpO1xyXG4gIH1cclxufVxyXG4ubG9hZGluZzMgLnNoYXBlNCB7XHJcbiAgLXdlYmtpdC1hbmltYXRpb246IGFuaW1hdGlvbjNzaGFwZTQgMC41cyBlYXNlIDBzIGluZmluaXRlIGFsdGVybmF0ZTtcclxuICAgICAgICAgIGFuaW1hdGlvbjogYW5pbWF0aW9uM3NoYXBlNCAwLjVzIGVhc2UgMHMgaW5maW5pdGUgYWx0ZXJuYXRlO1xyXG59XHJcblxyXG5ALXdlYmtpdC1rZXlmcmFtZXMgYW5pbWF0aW9uM3NoYXBlNCB7XHJcbiAgZnJvbSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgdG8ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNXB4LCAtNXB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTVweCwgLTVweCk7XHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGFuaW1hdGlvbjNzaGFwZTQge1xyXG4gIGZyb20ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIHRvIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTVweCwgLTVweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01cHgsIC01cHgpO1xyXG4gIH1cclxufVxyXG48L3N0eWxlPlxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///40\n");
 
 /***/ }),
-/* 46 */
+/* 41 */
 /*!*************************************************************************************************************!*\
   !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading4.vue ***!
   \*************************************************************************************************************/
@@ -2960,10 +1939,10 @@
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 
 "use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _loading4_vue_vue_type_template_id_e492dce8_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./loading4.vue?vue&type=template&id=e492dce8&scoped=true& */ 47);\n/* harmony import */ var _loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./loading4.vue?vue&type=script&lang=js& */ 49);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 12);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n  _loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n  _loading4_vue_vue_type_template_id_e492dce8_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n  _loading4_vue_vue_type_template_id_e492dce8_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n  false,\n  null,\n  \"e492dce8\",\n  null,\n  false,\n  _loading4_vue_vue_type_template_id_e492dce8_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n  renderjs\n)\n\ncomponent.options.__file = \"uni_modules/qiun-data-charts/components/qiun-loading/loading4.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBaUk7QUFDakk7QUFDNEQ7QUFDTDs7O0FBR3ZEO0FBQzZNO0FBQzdNLGdCQUFnQiwyTUFBVTtBQUMxQixFQUFFLDhFQUFNO0FBQ1IsRUFBRSwrRkFBTTtBQUNSLEVBQUUsd0dBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsbUdBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiNDYuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL2xvYWRpbmc0LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1lNDkyZGNlOCZzY29wZWQ9dHJ1ZSZcIlxudmFyIHJlbmRlcmpzXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL2xvYWRpbmc0LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vbG9hZGluZzQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIFwiZTQ5MmRjZThcIixcbiAgbnVsbCxcbiAgZmFsc2UsXG4gIGNvbXBvbmVudHMsXG4gIHJlbmRlcmpzXG4pXG5cbmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwidW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tbG9hZGluZy9sb2FkaW5nNC52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///46\n");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _loading4_vue_vue_type_template_id_e492dce8_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./loading4.vue?vue&type=template&id=e492dce8&scoped=true& */ 42);\n/* harmony import */ var _loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./loading4.vue?vue&type=script&lang=js& */ 44);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 12);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n  _loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n  _loading4_vue_vue_type_template_id_e492dce8_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n  _loading4_vue_vue_type_template_id_e492dce8_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n  false,\n  null,\n  \"e492dce8\",\n  null,\n  false,\n  _loading4_vue_vue_type_template_id_e492dce8_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n  renderjs\n)\n\ncomponent.options.__file = \"uni_modules/qiun-data-charts/components/qiun-loading/loading4.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBaUk7QUFDakk7QUFDNEQ7QUFDTDs7O0FBR3ZEO0FBQzZNO0FBQzdNLGdCQUFnQiwyTUFBVTtBQUMxQixFQUFFLDhFQUFNO0FBQ1IsRUFBRSwrRkFBTTtBQUNSLEVBQUUsd0dBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsbUdBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiNDEuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL2xvYWRpbmc0LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1lNDkyZGNlOCZzY29wZWQ9dHJ1ZSZcIlxudmFyIHJlbmRlcmpzXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL2xvYWRpbmc0LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vbG9hZGluZzQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIFwiZTQ5MmRjZThcIixcbiAgbnVsbCxcbiAgZmFsc2UsXG4gIGNvbXBvbmVudHMsXG4gIHJlbmRlcmpzXG4pXG5cbmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwidW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tbG9hZGluZy9sb2FkaW5nNC52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///41\n");
 
 /***/ }),
-/* 47 */
+/* 42 */
 /*!********************************************************************************************************************************************************!*\
   !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading4.vue?vue&type=template&id=e492dce8&scoped=true& ***!
   \********************************************************************************************************************************************************/
@@ -2972,7 +1951,7 @@
 
 "use strict";
 __webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading4_vue_vue_type_template_id_e492dce8_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./loading4.vue?vue&type=template&id=e492dce8&scoped=true& */ 48);
+/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading4_vue_vue_type_template_id_e492dce8_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./loading4.vue?vue&type=template&id=e492dce8&scoped=true& */ 43);
 /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading4_vue_vue_type_template_id_e492dce8_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; });
 
 /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading4_vue_vue_type_template_id_e492dce8_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
@@ -2984,7 +1963,7 @@
 
 
 /***/ }),
-/* 48 */
+/* 43 */
 /*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
   !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading4.vue?vue&type=template&id=e492dce8&scoped=true& ***!
   \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
@@ -3032,7 +2011,7 @@
 
 
 /***/ }),
-/* 49 */
+/* 44 */
 /*!**************************************************************************************************************************************!*\
   !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading4.vue?vue&type=script&lang=js& ***!
   \**************************************************************************************************************************************/
@@ -3040,10 +2019,10 @@
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 
 "use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./loading4.vue?vue&type=script&lang=js& */ 50);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQTRzQixDQUFnQixzckJBQUcsRUFBQyIsImZpbGUiOiI0OS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNi0xIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2xvYWRpbmc0LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIjsgZXhwb3J0IGRlZmF1bHQgbW9kOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS02LTEhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXVuaS1hcHAtbG9hZGVyL3VzaW5nLWNvbXBvbmVudHMuanMhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vbG9hZGluZzQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///49\n");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./loading4.vue?vue&type=script&lang=js& */ 45);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQTRzQixDQUFnQixzckJBQUcsRUFBQyIsImZpbGUiOiI0NC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNi0xIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2xvYWRpbmc0LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIjsgZXhwb3J0IGRlZmF1bHQgbW9kOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS02LTEhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXVuaS1hcHAtbG9hZGVyL3VzaW5nLWNvbXBvbmVudHMuanMhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vbG9hZGluZzQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///44\n");
 
 /***/ }),
-/* 50 */
+/* 45 */
 /*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
   !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading4.vue?vue&type=script&lang=js& ***!
   \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
@@ -3051,10 +2030,10 @@
 /***/ (function(module, exports, __webpack_require__) {
 
 "use strict";
-eval("Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0; //\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default =\n{\n  name: 'loading5',\n  data: function data() {\n    return {};\n\n\n  } };exports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tbG9hZGluZy9sb2FkaW5nNC52dWUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQVVBO0FBQ0Esa0JBREE7QUFFQSxNQUZBLGtCQUVBO0FBQ0E7OztBQUdBLEdBTkEsRSIsImZpbGUiOiI1MC5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuXHQgPHZpZXcgY2xhc3M9XCJjb250YWluZXIgbG9hZGluZzVcIj5cclxuXHRcdDx2aWV3IGNsYXNzPVwic2hhcGUgc2hhcGUxXCI+PC92aWV3PlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJzaGFwZSBzaGFwZTJcIj48L3ZpZXc+XHJcblx0XHQ8dmlldyBjbGFzcz1cInNoYXBlIHNoYXBlM1wiPjwvdmlldz5cclxuXHRcdDx2aWV3IGNsYXNzPVwic2hhcGUgc2hhcGU0XCI+PC92aWV3PlxyXG5cdDwvdmlldz5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcblx0ZXhwb3J0IGRlZmF1bHQge1xyXG5cdFx0bmFtZTogJ2xvYWRpbmc1JyxcclxuXHRcdGRhdGEoKSB7XHJcblx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0XHJcblx0XHRcdH07XHJcblx0XHR9XHJcblx0fVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBzY29wZWQ9XCJ0cnVlXCI+XHJcbi5jb250YWluZXIge1xyXG4gIHdpZHRoOiAzMHB4O1xyXG4gIGhlaWdodDogMzBweDtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuXHJcbi5jb250YWluZXIubG9hZGluZzUgLnNoYXBlIHtcclxuICB3aWR0aDogMTVweDtcclxuICBoZWlnaHQ6IDE1cHg7XHJcbn1cclxuXHJcbi5jb250YWluZXIgLnNoYXBlIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgd2lkdGg6IDEwcHg7XHJcbiAgaGVpZ2h0OiAxMHB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDFweDtcclxufVxyXG4uY29udGFpbmVyIC5zaGFwZS5zaGFwZTEge1xyXG4gIGxlZnQ6IDA7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE4OTBGRjtcclxufVxyXG4uY29udGFpbmVyIC5zaGFwZS5zaGFwZTIge1xyXG4gIHJpZ2h0OiAwO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICM5MUNCNzQ7XHJcbn1cclxuLmNvbnRhaW5lciAuc2hhcGUuc2hhcGUzIHtcclxuICBib3R0b206IDA7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZBQzg1ODtcclxufVxyXG4uY29udGFpbmVyIC5zaGFwZS5zaGFwZTQge1xyXG4gIGJvdHRvbTogMDtcclxuICByaWdodDogMDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUU2NjY2O1xyXG59XHJcblxyXG4ubG9hZGluZzUgLnNoYXBlMSB7XHJcbiAgYW5pbWF0aW9uOiBhbmltYXRpb241c2hhcGUxIDJzIGVhc2UgMHMgaW5maW5pdGUgcmV2ZXJzZTtcclxufVxyXG5cclxuQC13ZWJraXQta2V5ZnJhbWVzIGFuaW1hdGlvbjVzaGFwZTEge1xyXG4gIDAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICAyNSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAxNXB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMTVweCk7XHJcbiAgfVxyXG4gIDUwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDE1cHgsIDE1cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxNXB4LCAxNXB4KTtcclxuICB9XHJcbiAgNzUlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTVweCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDE1cHgsIDApO1xyXG4gIH1cclxufVxyXG5cclxuQGtleWZyYW1lcyBhbmltYXRpb241c2hhcGUxIHtcclxuICAwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgMjUlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMTVweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDE1cHgpO1xyXG4gIH1cclxuICA1MCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgxNXB4LCAxNXB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTVweCwgMTVweCk7XHJcbiAgfVxyXG4gIDc1JSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDE1cHgsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxNXB4LCAwKTtcclxuICB9XHJcbn1cclxuLmxvYWRpbmc1IC5zaGFwZTIge1xyXG4gIGFuaW1hdGlvbjogYW5pbWF0aW9uNXNoYXBlMiAycyBlYXNlIDBzIGluZmluaXRlIHJldmVyc2U7XHJcbn1cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyBhbmltYXRpb241c2hhcGUyIHtcclxuICAwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgMjUlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE1cHgsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTVweCwgMCk7XHJcbiAgfVxyXG4gIDUwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNXB4LCAxNXB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE1cHgsIDE1cHgpO1xyXG4gIH1cclxuICA3NSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAxNXB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMTVweCk7XHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGFuaW1hdGlvbjVzaGFwZTIge1xyXG4gIDAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICAyNSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTVweCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNXB4LCAwKTtcclxuICB9XHJcbiAgNTAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE1cHgsIDE1cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTVweCwgMTVweCk7XHJcbiAgfVxyXG4gIDc1JSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDE1cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAxNXB4KTtcclxuICB9XHJcbn1cclxuLmxvYWRpbmc1IC5zaGFwZTMge1xyXG4gIGFuaW1hdGlvbjogYW5pbWF0aW9uNXNoYXBlMyAycyBlYXNlIDBzIGluZmluaXRlIHJldmVyc2U7XHJcbn1cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyBhbmltYXRpb241c2hhcGUzIHtcclxuICAwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgMjUlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTVweCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDE1cHgsIDApO1xyXG4gIH1cclxuICA1MCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgxNXB4LCAtMTVweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDE1cHgsIC0xNXB4KTtcclxuICB9XHJcbiAgNzUlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTE1cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMTVweCk7XHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGFuaW1hdGlvbjVzaGFwZTMge1xyXG4gIDAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICAyNSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgxNXB4LCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTVweCwgMCk7XHJcbiAgfVxyXG4gIDUwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDE1cHgsIC0xNXB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTVweCwgLTE1cHgpO1xyXG4gIH1cclxuICA3NSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMTVweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0xNXB4KTtcclxuICB9XHJcbn1cclxuLmxvYWRpbmc1IC5zaGFwZTQge1xyXG4gIGFuaW1hdGlvbjogYW5pbWF0aW9uNXNoYXBlNCAycyBlYXNlIDBzIGluZmluaXRlIHJldmVyc2U7XHJcbn1cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyBhbmltYXRpb241c2hhcGU0IHtcclxuICAwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgMjUlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTE1cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMTVweCk7XHJcbiAgfVxyXG4gIDUwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNXB4LCAtMTVweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNXB4LCAtMTVweCk7XHJcbiAgfVxyXG4gIDc1JSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNXB4LCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE1cHgsIDApO1xyXG4gIH1cclxufVxyXG5cclxuQGtleWZyYW1lcyBhbmltYXRpb241c2hhcGU0IHtcclxuICAwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgMjUlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTE1cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMTVweCk7XHJcbiAgfVxyXG4gIDUwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNXB4LCAtMTVweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNXB4LCAtMTVweCk7XHJcbiAgfVxyXG4gIDc1JSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNXB4LCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE1cHgsIDApO1xyXG4gIH1cclxufVxyXG5cclxuPC9zdHlsZT5cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///50\n");
+eval("Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0; //\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default =\n{\n  name: 'loading5',\n  data: function data() {\n    return {};\n\n\n  } };exports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tbG9hZGluZy9sb2FkaW5nNC52dWUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQVVBO0FBQ0Esa0JBREE7QUFFQSxNQUZBLGtCQUVBO0FBQ0E7OztBQUdBLEdBTkEsRSIsImZpbGUiOiI0NS5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuXHQgPHZpZXcgY2xhc3M9XCJjb250YWluZXIgbG9hZGluZzVcIj5cclxuXHRcdDx2aWV3IGNsYXNzPVwic2hhcGUgc2hhcGUxXCI+PC92aWV3PlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJzaGFwZSBzaGFwZTJcIj48L3ZpZXc+XHJcblx0XHQ8dmlldyBjbGFzcz1cInNoYXBlIHNoYXBlM1wiPjwvdmlldz5cclxuXHRcdDx2aWV3IGNsYXNzPVwic2hhcGUgc2hhcGU0XCI+PC92aWV3PlxyXG5cdDwvdmlldz5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcblx0ZXhwb3J0IGRlZmF1bHQge1xyXG5cdFx0bmFtZTogJ2xvYWRpbmc1JyxcclxuXHRcdGRhdGEoKSB7XHJcblx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0XHJcblx0XHRcdH07XHJcblx0XHR9XHJcblx0fVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBzY29wZWQ9XCJ0cnVlXCI+XHJcbi5jb250YWluZXIge1xyXG4gIHdpZHRoOiAzMHB4O1xyXG4gIGhlaWdodDogMzBweDtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuXHJcbi5jb250YWluZXIubG9hZGluZzUgLnNoYXBlIHtcclxuICB3aWR0aDogMTVweDtcclxuICBoZWlnaHQ6IDE1cHg7XHJcbn1cclxuXHJcbi5jb250YWluZXIgLnNoYXBlIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgd2lkdGg6IDEwcHg7XHJcbiAgaGVpZ2h0OiAxMHB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDFweDtcclxufVxyXG4uY29udGFpbmVyIC5zaGFwZS5zaGFwZTEge1xyXG4gIGxlZnQ6IDA7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE4OTBGRjtcclxufVxyXG4uY29udGFpbmVyIC5zaGFwZS5zaGFwZTIge1xyXG4gIHJpZ2h0OiAwO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICM5MUNCNzQ7XHJcbn1cclxuLmNvbnRhaW5lciAuc2hhcGUuc2hhcGUzIHtcclxuICBib3R0b206IDA7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZBQzg1ODtcclxufVxyXG4uY29udGFpbmVyIC5zaGFwZS5zaGFwZTQge1xyXG4gIGJvdHRvbTogMDtcclxuICByaWdodDogMDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUU2NjY2O1xyXG59XHJcblxyXG4ubG9hZGluZzUgLnNoYXBlMSB7XHJcbiAgYW5pbWF0aW9uOiBhbmltYXRpb241c2hhcGUxIDJzIGVhc2UgMHMgaW5maW5pdGUgcmV2ZXJzZTtcclxufVxyXG5cclxuQC13ZWJraXQta2V5ZnJhbWVzIGFuaW1hdGlvbjVzaGFwZTEge1xyXG4gIDAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICAyNSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAxNXB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMTVweCk7XHJcbiAgfVxyXG4gIDUwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDE1cHgsIDE1cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxNXB4LCAxNXB4KTtcclxuICB9XHJcbiAgNzUlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTVweCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDE1cHgsIDApO1xyXG4gIH1cclxufVxyXG5cclxuQGtleWZyYW1lcyBhbmltYXRpb241c2hhcGUxIHtcclxuICAwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgMjUlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMTVweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDE1cHgpO1xyXG4gIH1cclxuICA1MCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgxNXB4LCAxNXB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTVweCwgMTVweCk7XHJcbiAgfVxyXG4gIDc1JSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDE1cHgsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxNXB4LCAwKTtcclxuICB9XHJcbn1cclxuLmxvYWRpbmc1IC5zaGFwZTIge1xyXG4gIGFuaW1hdGlvbjogYW5pbWF0aW9uNXNoYXBlMiAycyBlYXNlIDBzIGluZmluaXRlIHJldmVyc2U7XHJcbn1cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyBhbmltYXRpb241c2hhcGUyIHtcclxuICAwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgMjUlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE1cHgsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTVweCwgMCk7XHJcbiAgfVxyXG4gIDUwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNXB4LCAxNXB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE1cHgsIDE1cHgpO1xyXG4gIH1cclxuICA3NSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAxNXB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMTVweCk7XHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGFuaW1hdGlvbjVzaGFwZTIge1xyXG4gIDAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICAyNSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTVweCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNXB4LCAwKTtcclxuICB9XHJcbiAgNTAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE1cHgsIDE1cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTVweCwgMTVweCk7XHJcbiAgfVxyXG4gIDc1JSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDE1cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAxNXB4KTtcclxuICB9XHJcbn1cclxuLmxvYWRpbmc1IC5zaGFwZTMge1xyXG4gIGFuaW1hdGlvbjogYW5pbWF0aW9uNXNoYXBlMyAycyBlYXNlIDBzIGluZmluaXRlIHJldmVyc2U7XHJcbn1cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyBhbmltYXRpb241c2hhcGUzIHtcclxuICAwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgMjUlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTVweCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDE1cHgsIDApO1xyXG4gIH1cclxuICA1MCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgxNXB4LCAtMTVweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDE1cHgsIC0xNXB4KTtcclxuICB9XHJcbiAgNzUlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTE1cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMTVweCk7XHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGFuaW1hdGlvbjVzaGFwZTMge1xyXG4gIDAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICAyNSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgxNXB4LCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTVweCwgMCk7XHJcbiAgfVxyXG4gIDUwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDE1cHgsIC0xNXB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTVweCwgLTE1cHgpO1xyXG4gIH1cclxuICA3NSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMTVweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0xNXB4KTtcclxuICB9XHJcbn1cclxuLmxvYWRpbmc1IC5zaGFwZTQge1xyXG4gIGFuaW1hdGlvbjogYW5pbWF0aW9uNXNoYXBlNCAycyBlYXNlIDBzIGluZmluaXRlIHJldmVyc2U7XHJcbn1cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyBhbmltYXRpb241c2hhcGU0IHtcclxuICAwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgMjUlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTE1cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMTVweCk7XHJcbiAgfVxyXG4gIDUwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNXB4LCAtMTVweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNXB4LCAtMTVweCk7XHJcbiAgfVxyXG4gIDc1JSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNXB4LCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE1cHgsIDApO1xyXG4gIH1cclxufVxyXG5cclxuQGtleWZyYW1lcyBhbmltYXRpb241c2hhcGU0IHtcclxuICAwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgMjUlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTE1cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMTVweCk7XHJcbiAgfVxyXG4gIDUwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNXB4LCAtMTVweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNXB4LCAtMTVweCk7XHJcbiAgfVxyXG4gIDc1JSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNXB4LCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE1cHgsIDApO1xyXG4gIH1cclxufVxyXG5cclxuPC9zdHlsZT5cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///45\n");
 
 /***/ }),
-/* 51 */
+/* 46 */
 /*!*************************************************************************************************************!*\
   !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading5.vue ***!
   \*************************************************************************************************************/
@@ -3062,10 +2041,10 @@
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 
 "use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _loading5_vue_vue_type_template_id_e476ade6_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./loading5.vue?vue&type=template&id=e476ade6&scoped=true& */ 52);\n/* harmony import */ var _loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./loading5.vue?vue&type=script&lang=js& */ 54);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 12);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n  _loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n  _loading5_vue_vue_type_template_id_e476ade6_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n  _loading5_vue_vue_type_template_id_e476ade6_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n  false,\n  null,\n  \"e476ade6\",\n  null,\n  false,\n  _loading5_vue_vue_type_template_id_e476ade6_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n  renderjs\n)\n\ncomponent.options.__file = \"uni_modules/qiun-data-charts/components/qiun-loading/loading5.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBaUk7QUFDakk7QUFDNEQ7QUFDTDs7O0FBR3ZEO0FBQzZNO0FBQzdNLGdCQUFnQiwyTUFBVTtBQUMxQixFQUFFLDhFQUFNO0FBQ1IsRUFBRSwrRkFBTTtBQUNSLEVBQUUsd0dBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsbUdBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiNTEuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL2xvYWRpbmc1LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1lNDc2YWRlNiZzY29wZWQ9dHJ1ZSZcIlxudmFyIHJlbmRlcmpzXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL2xvYWRpbmc1LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vbG9hZGluZzUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIFwiZTQ3NmFkZTZcIixcbiAgbnVsbCxcbiAgZmFsc2UsXG4gIGNvbXBvbmVudHMsXG4gIHJlbmRlcmpzXG4pXG5cbmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwidW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tbG9hZGluZy9sb2FkaW5nNS52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///51\n");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _loading5_vue_vue_type_template_id_e476ade6_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./loading5.vue?vue&type=template&id=e476ade6&scoped=true& */ 47);\n/* harmony import */ var _loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./loading5.vue?vue&type=script&lang=js& */ 49);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 12);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n  _loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n  _loading5_vue_vue_type_template_id_e476ade6_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n  _loading5_vue_vue_type_template_id_e476ade6_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n  false,\n  null,\n  \"e476ade6\",\n  null,\n  false,\n  _loading5_vue_vue_type_template_id_e476ade6_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n  renderjs\n)\n\ncomponent.options.__file = \"uni_modules/qiun-data-charts/components/qiun-loading/loading5.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBaUk7QUFDakk7QUFDNEQ7QUFDTDs7O0FBR3ZEO0FBQzZNO0FBQzdNLGdCQUFnQiwyTUFBVTtBQUMxQixFQUFFLDhFQUFNO0FBQ1IsRUFBRSwrRkFBTTtBQUNSLEVBQUUsd0dBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsbUdBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiNDYuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL2xvYWRpbmc1LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1lNDc2YWRlNiZzY29wZWQ9dHJ1ZSZcIlxudmFyIHJlbmRlcmpzXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL2xvYWRpbmc1LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vbG9hZGluZzUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIFwiZTQ3NmFkZTZcIixcbiAgbnVsbCxcbiAgZmFsc2UsXG4gIGNvbXBvbmVudHMsXG4gIHJlbmRlcmpzXG4pXG5cbmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwidW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tbG9hZGluZy9sb2FkaW5nNS52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///46\n");
 
 /***/ }),
-/* 52 */
+/* 47 */
 /*!********************************************************************************************************************************************************!*\
   !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading5.vue?vue&type=template&id=e476ade6&scoped=true& ***!
   \********************************************************************************************************************************************************/
@@ -3074,7 +2053,7 @@
 
 "use strict";
 __webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading5_vue_vue_type_template_id_e476ade6_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./loading5.vue?vue&type=template&id=e476ade6&scoped=true& */ 53);
+/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading5_vue_vue_type_template_id_e476ade6_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./loading5.vue?vue&type=template&id=e476ade6&scoped=true& */ 48);
 /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading5_vue_vue_type_template_id_e476ade6_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; });
 
 /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading5_vue_vue_type_template_id_e476ade6_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
@@ -3086,7 +2065,7 @@
 
 
 /***/ }),
-/* 53 */
+/* 48 */
 /*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
   !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading5.vue?vue&type=template&id=e476ade6&scoped=true& ***!
   \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
@@ -3134,7 +2113,7 @@
 
 
 /***/ }),
-/* 54 */
+/* 49 */
 /*!**************************************************************************************************************************************!*\
   !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading5.vue?vue&type=script&lang=js& ***!
   \**************************************************************************************************************************************/
@@ -3142,10 +2121,10 @@
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 
 "use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./loading5.vue?vue&type=script&lang=js& */ 55);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQTRzQixDQUFnQixzckJBQUcsRUFBQyIsImZpbGUiOiI1NC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNi0xIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2xvYWRpbmc1LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIjsgZXhwb3J0IGRlZmF1bHQgbW9kOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS02LTEhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXVuaS1hcHAtbG9hZGVyL3VzaW5nLWNvbXBvbmVudHMuanMhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vbG9hZGluZzUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///54\n");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./loading5.vue?vue&type=script&lang=js& */ 50);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQTRzQixDQUFnQixzckJBQUcsRUFBQyIsImZpbGUiOiI0OS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNi0xIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2xvYWRpbmc1LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIjsgZXhwb3J0IGRlZmF1bHQgbW9kOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS02LTEhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXVuaS1hcHAtbG9hZGVyL3VzaW5nLWNvbXBvbmVudHMuanMhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vbG9hZGluZzUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///49\n");
 
 /***/ }),
-/* 55 */
+/* 50 */
 /*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
   !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading5.vue?vue&type=script&lang=js& ***!
   \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
@@ -3153,10 +2132,10 @@
 /***/ (function(module, exports, __webpack_require__) {
 
 "use strict";
-eval("Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0; //\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default =\n{\n  name: 'loading6',\n  data: function data() {\n    return {};\n\n\n  } };exports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tbG9hZGluZy9sb2FkaW5nNS52dWUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQVVBO0FBQ0Esa0JBREE7QUFFQSxNQUZBLGtCQUVBO0FBQ0E7OztBQUdBLEdBTkEsRSIsImZpbGUiOiI1NS5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuXHQgPHZpZXcgY2xhc3M9XCJjb250YWluZXIgbG9hZGluZzZcIj5cclxuXHRcdDx2aWV3IGNsYXNzPVwic2hhcGUgc2hhcGUxXCI+PC92aWV3PlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJzaGFwZSBzaGFwZTJcIj48L3ZpZXc+XHJcblx0XHQ8dmlldyBjbGFzcz1cInNoYXBlIHNoYXBlM1wiPjwvdmlldz5cclxuXHRcdDx2aWV3IGNsYXNzPVwic2hhcGUgc2hhcGU0XCI+PC92aWV3PlxyXG5cdDwvdmlldz5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcblx0ZXhwb3J0IGRlZmF1bHQge1xyXG5cdFx0bmFtZTogJ2xvYWRpbmc2JyxcclxuXHRcdGRhdGEoKSB7XHJcblx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0XHJcblx0XHRcdH07XHJcblx0XHR9XHJcblx0fVxyXG48L3NjcmlwdD5cclxuPHN0eWxlIHNjb3BlZD1cInRydWVcIj5cclxuLmNvbnRhaW5lciB7XHJcbiAgd2lkdGg6IDMwcHg7XHJcbiAgaGVpZ2h0OiAzMHB4O1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxufVxyXG5cclxuLmNvbnRhaW5lci5sb2FkaW5nNiB7XHJcbiAgLXdlYmtpdC1hbmltYXRpb246IHJvdGF0aW9uIDFzIGluZmluaXRlO1xyXG4gICAgICAgICAgYW5pbWF0aW9uOiByb3RhdGlvbiAxcyBpbmZpbml0ZTtcclxufVxyXG4uY29udGFpbmVyLmxvYWRpbmc2IC5zaGFwZSB7XHJcbiAgd2lkdGg6IDEycHg7XHJcbiAgaGVpZ2h0OiAxMnB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDJweDtcclxufVxyXG4uY29udGFpbmVyIC5zaGFwZSB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHdpZHRoOiAxMHB4O1xyXG4gIGhlaWdodDogMTBweDtcclxuICBib3JkZXItcmFkaXVzOiAxcHg7XHJcbn1cclxuLmNvbnRhaW5lciAuc2hhcGUuc2hhcGUxIHtcclxuICBsZWZ0OiAwO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICMxODkwRkY7XHJcbn1cclxuLmNvbnRhaW5lciAuc2hhcGUuc2hhcGUyIHtcclxuICByaWdodDogMDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTFDQjc0O1xyXG59XHJcbi5jb250YWluZXIgLnNoYXBlLnNoYXBlMyB7XHJcbiAgYm90dG9tOiAwO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNGQUM4NTg7XHJcbn1cclxuLmNvbnRhaW5lciAuc2hhcGUuc2hhcGU0IHtcclxuICBib3R0b206IDA7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI0VFNjY2NjtcclxufVxyXG5cclxuXHJcbi5sb2FkaW5nNiAuc2hhcGUxIHtcclxuICAtd2Via2l0LWFuaW1hdGlvbjogYW5pbWF0aW9uNnNoYXBlMSAycyBsaW5lYXIgMHMgaW5maW5pdGUgbm9ybWFsO1xyXG4gICAgICAgICAgYW5pbWF0aW9uOiBhbmltYXRpb242c2hhcGUxIDJzIGxpbmVhciAwcyBpbmZpbml0ZSBub3JtYWw7XHJcbn1cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyBhbmltYXRpb242c2hhcGUxIHtcclxuICAwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgMjUlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMThweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDE4cHgpO1xyXG4gIH1cclxuICA1MCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgxOHB4LCAxOHB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMThweCwgMThweCk7XHJcbiAgfVxyXG4gIDc1JSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDE4cHgsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxOHB4LCAwKTtcclxuICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgYW5pbWF0aW9uNnNoYXBlMSB7XHJcbiAgMCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIDI1JSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDE4cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAxOHB4KTtcclxuICB9XHJcbiAgNTAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMThweCwgMThweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDE4cHgsIDE4cHgpO1xyXG4gIH1cclxuICA3NSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgxOHB4LCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMThweCwgMCk7XHJcbiAgfVxyXG59XHJcbi5sb2FkaW5nNiAuc2hhcGUyIHtcclxuICAtd2Via2l0LWFuaW1hdGlvbjogYW5pbWF0aW9uNnNoYXBlMiAycyBsaW5lYXIgMHMgaW5maW5pdGUgbm9ybWFsO1xyXG4gICAgICAgICAgYW5pbWF0aW9uOiBhbmltYXRpb242c2hhcGUyIDJzIGxpbmVhciAwcyBpbmZpbml0ZSBub3JtYWw7XHJcbn1cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyBhbmltYXRpb242c2hhcGUyIHtcclxuICAwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgMjUlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE4cHgsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMThweCwgMCk7XHJcbiAgfVxyXG4gIDUwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0xOHB4LCAxOHB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE4cHgsIDE4cHgpO1xyXG4gIH1cclxuICA3NSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAxOHB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMThweCk7XHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGFuaW1hdGlvbjZzaGFwZTIge1xyXG4gIDAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICAyNSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMThweCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xOHB4LCAwKTtcclxuICB9XHJcbiAgNTAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE4cHgsIDE4cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMThweCwgMThweCk7XHJcbiAgfVxyXG4gIDc1JSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDE4cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAxOHB4KTtcclxuICB9XHJcbn1cclxuLmxvYWRpbmc2IC5zaGFwZTMge1xyXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBhbmltYXRpb242c2hhcGUzIDJzIGxpbmVhciAwcyBpbmZpbml0ZSBub3JtYWw7XHJcbiAgICAgICAgICBhbmltYXRpb246IGFuaW1hdGlvbjZzaGFwZTMgMnMgbGluZWFyIDBzIGluZmluaXRlIG5vcm1hbDtcclxufVxyXG5cclxuQC13ZWJraXQta2V5ZnJhbWVzIGFuaW1hdGlvbjZzaGFwZTMge1xyXG4gIDAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICAyNSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgxOHB4LCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMThweCwgMCk7XHJcbiAgfVxyXG4gIDUwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDE4cHgsIC0xOHB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMThweCwgLTE4cHgpO1xyXG4gIH1cclxuICA3NSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMThweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0xOHB4KTtcclxuICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgYW5pbWF0aW9uNnNoYXBlMyB7XHJcbiAgMCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIDI1JSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDE4cHgsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxOHB4LCAwKTtcclxuICB9XHJcbiAgNTAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMThweCwgLTE4cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxOHB4LCAtMThweCk7XHJcbiAgfVxyXG4gIDc1JSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0xOHB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTE4cHgpO1xyXG4gIH1cclxufVxyXG4ubG9hZGluZzYgLnNoYXBlNCB7XHJcbiAgLXdlYmtpdC1hbmltYXRpb246IGFuaW1hdGlvbjZzaGFwZTQgMnMgbGluZWFyIDBzIGluZmluaXRlIG5vcm1hbDtcclxuICAgICAgICAgIGFuaW1hdGlvbjogYW5pbWF0aW9uNnNoYXBlNCAycyBsaW5lYXIgMHMgaW5maW5pdGUgbm9ybWFsO1xyXG59XHJcblxyXG5ALXdlYmtpdC1rZXlmcmFtZXMgYW5pbWF0aW9uNnNoYXBlNCB7XHJcbiAgMCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIDI1JSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0xOHB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTE4cHgpO1xyXG4gIH1cclxuICA1MCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMThweCwgLTE4cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMThweCwgLTE4cHgpO1xyXG4gIH1cclxuICA3NSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMThweCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xOHB4LCAwKTtcclxuICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgYW5pbWF0aW9uNnNoYXBlNCB7XHJcbiAgMCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIDI1JSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0xOHB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTE4cHgpO1xyXG4gIH1cclxuICA1MCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMThweCwgLTE4cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMThweCwgLTE4cHgpO1xyXG4gIH1cclxuICA3NSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMThweCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xOHB4LCAwKTtcclxuICB9XHJcbn1cclxuPC9zdHlsZT5cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///55\n");
+eval("Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0; //\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default =\n{\n  name: 'loading6',\n  data: function data() {\n    return {};\n\n\n  } };exports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tbG9hZGluZy9sb2FkaW5nNS52dWUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQVVBO0FBQ0Esa0JBREE7QUFFQSxNQUZBLGtCQUVBO0FBQ0E7OztBQUdBLEdBTkEsRSIsImZpbGUiOiI1MC5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuXHQgPHZpZXcgY2xhc3M9XCJjb250YWluZXIgbG9hZGluZzZcIj5cclxuXHRcdDx2aWV3IGNsYXNzPVwic2hhcGUgc2hhcGUxXCI+PC92aWV3PlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJzaGFwZSBzaGFwZTJcIj48L3ZpZXc+XHJcblx0XHQ8dmlldyBjbGFzcz1cInNoYXBlIHNoYXBlM1wiPjwvdmlldz5cclxuXHRcdDx2aWV3IGNsYXNzPVwic2hhcGUgc2hhcGU0XCI+PC92aWV3PlxyXG5cdDwvdmlldz5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcblx0ZXhwb3J0IGRlZmF1bHQge1xyXG5cdFx0bmFtZTogJ2xvYWRpbmc2JyxcclxuXHRcdGRhdGEoKSB7XHJcblx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0XHJcblx0XHRcdH07XHJcblx0XHR9XHJcblx0fVxyXG48L3NjcmlwdD5cclxuPHN0eWxlIHNjb3BlZD1cInRydWVcIj5cclxuLmNvbnRhaW5lciB7XHJcbiAgd2lkdGg6IDMwcHg7XHJcbiAgaGVpZ2h0OiAzMHB4O1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxufVxyXG5cclxuLmNvbnRhaW5lci5sb2FkaW5nNiB7XHJcbiAgLXdlYmtpdC1hbmltYXRpb246IHJvdGF0aW9uIDFzIGluZmluaXRlO1xyXG4gICAgICAgICAgYW5pbWF0aW9uOiByb3RhdGlvbiAxcyBpbmZpbml0ZTtcclxufVxyXG4uY29udGFpbmVyLmxvYWRpbmc2IC5zaGFwZSB7XHJcbiAgd2lkdGg6IDEycHg7XHJcbiAgaGVpZ2h0OiAxMnB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDJweDtcclxufVxyXG4uY29udGFpbmVyIC5zaGFwZSB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHdpZHRoOiAxMHB4O1xyXG4gIGhlaWdodDogMTBweDtcclxuICBib3JkZXItcmFkaXVzOiAxcHg7XHJcbn1cclxuLmNvbnRhaW5lciAuc2hhcGUuc2hhcGUxIHtcclxuICBsZWZ0OiAwO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICMxODkwRkY7XHJcbn1cclxuLmNvbnRhaW5lciAuc2hhcGUuc2hhcGUyIHtcclxuICByaWdodDogMDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTFDQjc0O1xyXG59XHJcbi5jb250YWluZXIgLnNoYXBlLnNoYXBlMyB7XHJcbiAgYm90dG9tOiAwO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNGQUM4NTg7XHJcbn1cclxuLmNvbnRhaW5lciAuc2hhcGUuc2hhcGU0IHtcclxuICBib3R0b206IDA7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI0VFNjY2NjtcclxufVxyXG5cclxuXHJcbi5sb2FkaW5nNiAuc2hhcGUxIHtcclxuICAtd2Via2l0LWFuaW1hdGlvbjogYW5pbWF0aW9uNnNoYXBlMSAycyBsaW5lYXIgMHMgaW5maW5pdGUgbm9ybWFsO1xyXG4gICAgICAgICAgYW5pbWF0aW9uOiBhbmltYXRpb242c2hhcGUxIDJzIGxpbmVhciAwcyBpbmZpbml0ZSBub3JtYWw7XHJcbn1cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyBhbmltYXRpb242c2hhcGUxIHtcclxuICAwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgMjUlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMThweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDE4cHgpO1xyXG4gIH1cclxuICA1MCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgxOHB4LCAxOHB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMThweCwgMThweCk7XHJcbiAgfVxyXG4gIDc1JSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDE4cHgsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxOHB4LCAwKTtcclxuICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgYW5pbWF0aW9uNnNoYXBlMSB7XHJcbiAgMCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIDI1JSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDE4cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAxOHB4KTtcclxuICB9XHJcbiAgNTAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMThweCwgMThweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDE4cHgsIDE4cHgpO1xyXG4gIH1cclxuICA3NSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgxOHB4LCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMThweCwgMCk7XHJcbiAgfVxyXG59XHJcbi5sb2FkaW5nNiAuc2hhcGUyIHtcclxuICAtd2Via2l0LWFuaW1hdGlvbjogYW5pbWF0aW9uNnNoYXBlMiAycyBsaW5lYXIgMHMgaW5maW5pdGUgbm9ybWFsO1xyXG4gICAgICAgICAgYW5pbWF0aW9uOiBhbmltYXRpb242c2hhcGUyIDJzIGxpbmVhciAwcyBpbmZpbml0ZSBub3JtYWw7XHJcbn1cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyBhbmltYXRpb242c2hhcGUyIHtcclxuICAwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgMjUlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE4cHgsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMThweCwgMCk7XHJcbiAgfVxyXG4gIDUwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0xOHB4LCAxOHB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE4cHgsIDE4cHgpO1xyXG4gIH1cclxuICA3NSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAxOHB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMThweCk7XHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGFuaW1hdGlvbjZzaGFwZTIge1xyXG4gIDAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICAyNSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMThweCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xOHB4LCAwKTtcclxuICB9XHJcbiAgNTAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE4cHgsIDE4cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMThweCwgMThweCk7XHJcbiAgfVxyXG4gIDc1JSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDE4cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAxOHB4KTtcclxuICB9XHJcbn1cclxuLmxvYWRpbmc2IC5zaGFwZTMge1xyXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBhbmltYXRpb242c2hhcGUzIDJzIGxpbmVhciAwcyBpbmZpbml0ZSBub3JtYWw7XHJcbiAgICAgICAgICBhbmltYXRpb246IGFuaW1hdGlvbjZzaGFwZTMgMnMgbGluZWFyIDBzIGluZmluaXRlIG5vcm1hbDtcclxufVxyXG5cclxuQC13ZWJraXQta2V5ZnJhbWVzIGFuaW1hdGlvbjZzaGFwZTMge1xyXG4gIDAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICAyNSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgxOHB4LCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMThweCwgMCk7XHJcbiAgfVxyXG4gIDUwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDE4cHgsIC0xOHB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMThweCwgLTE4cHgpO1xyXG4gIH1cclxuICA3NSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMThweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0xOHB4KTtcclxuICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgYW5pbWF0aW9uNnNoYXBlMyB7XHJcbiAgMCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIDI1JSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDE4cHgsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxOHB4LCAwKTtcclxuICB9XHJcbiAgNTAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMThweCwgLTE4cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxOHB4LCAtMThweCk7XHJcbiAgfVxyXG4gIDc1JSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0xOHB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTE4cHgpO1xyXG4gIH1cclxufVxyXG4ubG9hZGluZzYgLnNoYXBlNCB7XHJcbiAgLXdlYmtpdC1hbmltYXRpb246IGFuaW1hdGlvbjZzaGFwZTQgMnMgbGluZWFyIDBzIGluZmluaXRlIG5vcm1hbDtcclxuICAgICAgICAgIGFuaW1hdGlvbjogYW5pbWF0aW9uNnNoYXBlNCAycyBsaW5lYXIgMHMgaW5maW5pdGUgbm9ybWFsO1xyXG59XHJcblxyXG5ALXdlYmtpdC1rZXlmcmFtZXMgYW5pbWF0aW9uNnNoYXBlNCB7XHJcbiAgMCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIDI1JSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0xOHB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTE4cHgpO1xyXG4gIH1cclxuICA1MCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMThweCwgLTE4cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMThweCwgLTE4cHgpO1xyXG4gIH1cclxuICA3NSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMThweCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xOHB4LCAwKTtcclxuICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgYW5pbWF0aW9uNnNoYXBlNCB7XHJcbiAgMCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIDI1JSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0xOHB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTE4cHgpO1xyXG4gIH1cclxuICA1MCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMThweCwgLTE4cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMThweCwgLTE4cHgpO1xyXG4gIH1cclxuICA3NSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMThweCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xOHB4LCAwKTtcclxuICB9XHJcbn1cclxuPC9zdHlsZT5cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///50\n");
 
 /***/ }),
-/* 56 */
+/* 51 */
 /*!*************************************************************************************************************!*\
   !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-error/qiun-error.vue ***!
   \*************************************************************************************************************/
@@ -3164,10 +2143,10 @@
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 
 "use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _qiun_error_vue_vue_type_template_id_0507f1f4___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./qiun-error.vue?vue&type=template&id=0507f1f4& */ 57);\n/* harmony import */ var _qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./qiun-error.vue?vue&type=script&lang=js& */ 59);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 12);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n  _qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n  _qiun_error_vue_vue_type_template_id_0507f1f4___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n  _qiun_error_vue_vue_type_template_id_0507f1f4___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n  false,\n  null,\n  null,\n  null,\n  false,\n  _qiun_error_vue_vue_type_template_id_0507f1f4___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n  renderjs\n)\n\ncomponent.options.__file = \"uni_modules/qiun-data-charts/components/qiun-error/qiun-error.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBdUg7QUFDdkg7QUFDOEQ7QUFDTDs7O0FBR3pEO0FBQzZNO0FBQzdNLGdCQUFnQiwyTUFBVTtBQUMxQixFQUFFLGdGQUFNO0FBQ1IsRUFBRSxxRkFBTTtBQUNSLEVBQUUsOEZBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUseUZBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiNTYuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL3FpdW4tZXJyb3IudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTA1MDdmMWY0JlwiXG52YXIgcmVuZGVyanNcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vcWl1bi1lcnJvci52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmV4cG9ydCAqIGZyb20gXCIuL3FpdW4tZXJyb3IudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIG51bGwsXG4gIG51bGwsXG4gIGZhbHNlLFxuICBjb21wb25lbnRzLFxuICByZW5kZXJqc1xuKVxuXG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInVuaV9tb2R1bGVzL3FpdW4tZGF0YS1jaGFydHMvY29tcG9uZW50cy9xaXVuLWVycm9yL3FpdW4tZXJyb3IudnVlXCJcbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///56\n");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _qiun_error_vue_vue_type_template_id_0507f1f4___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./qiun-error.vue?vue&type=template&id=0507f1f4& */ 52);\n/* harmony import */ var _qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./qiun-error.vue?vue&type=script&lang=js& */ 54);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 12);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n  _qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n  _qiun_error_vue_vue_type_template_id_0507f1f4___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n  _qiun_error_vue_vue_type_template_id_0507f1f4___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n  false,\n  null,\n  null,\n  null,\n  false,\n  _qiun_error_vue_vue_type_template_id_0507f1f4___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n  renderjs\n)\n\ncomponent.options.__file = \"uni_modules/qiun-data-charts/components/qiun-error/qiun-error.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBdUg7QUFDdkg7QUFDOEQ7QUFDTDs7O0FBR3pEO0FBQzZNO0FBQzdNLGdCQUFnQiwyTUFBVTtBQUMxQixFQUFFLGdGQUFNO0FBQ1IsRUFBRSxxRkFBTTtBQUNSLEVBQUUsOEZBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUseUZBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiNTEuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL3FpdW4tZXJyb3IudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTA1MDdmMWY0JlwiXG52YXIgcmVuZGVyanNcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vcWl1bi1lcnJvci52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmV4cG9ydCAqIGZyb20gXCIuL3FpdW4tZXJyb3IudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIG51bGwsXG4gIG51bGwsXG4gIGZhbHNlLFxuICBjb21wb25lbnRzLFxuICByZW5kZXJqc1xuKVxuXG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInVuaV9tb2R1bGVzL3FpdW4tZGF0YS1jaGFydHMvY29tcG9uZW50cy9xaXVuLWVycm9yL3FpdW4tZXJyb3IudnVlXCJcbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///51\n");
 
 /***/ }),
-/* 57 */
+/* 52 */
 /*!********************************************************************************************************************************************!*\
   !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-error/qiun-error.vue?vue&type=template&id=0507f1f4& ***!
   \********************************************************************************************************************************************/
@@ -3176,7 +2155,7 @@
 
 "use strict";
 __webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_error_vue_vue_type_template_id_0507f1f4___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./qiun-error.vue?vue&type=template&id=0507f1f4& */ 58);
+/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_error_vue_vue_type_template_id_0507f1f4___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./qiun-error.vue?vue&type=template&id=0507f1f4& */ 53);
 /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_error_vue_vue_type_template_id_0507f1f4___WEBPACK_IMPORTED_MODULE_0__["render"]; });
 
 /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_error_vue_vue_type_template_id_0507f1f4___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
@@ -3188,7 +2167,7 @@
 
 
 /***/ }),
-/* 58 */
+/* 53 */
 /*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
   !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-error/qiun-error.vue?vue&type=template&id=0507f1f4& ***!
   \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
@@ -3237,7 +2216,7 @@
 
 
 /***/ }),
-/* 59 */
+/* 54 */
 /*!**************************************************************************************************************************************!*\
   !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-error/qiun-error.vue?vue&type=script&lang=js& ***!
   \**************************************************************************************************************************************/
@@ -3245,10 +2224,10 @@
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 
 "use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./qiun-error.vue?vue&type=script&lang=js& */ 60);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQThzQixDQUFnQix3ckJBQUcsRUFBQyIsImZpbGUiOiI1OS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNi0xIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL3FpdW4tZXJyb3IudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTYtMSEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9xaXVuLWVycm9yLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///59\n");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./qiun-error.vue?vue&type=script&lang=js& */ 55);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQThzQixDQUFnQix3ckJBQUcsRUFBQyIsImZpbGUiOiI1NC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNi0xIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL3FpdW4tZXJyb3IudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTYtMSEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9xaXVuLWVycm9yLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///54\n");
 
 /***/ }),
-/* 60 */
+/* 55 */
 /*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
   !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-error/qiun-error.vue?vue&type=script&lang=js& ***!
   \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
@@ -3256,10 +2235,10 @@
 /***/ (function(module, exports, __webpack_require__) {
 
 "use strict";
-eval("Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0; //\n//\n//\n//\n//\n//\n//\nvar _default =\n{\n  name: 'qiun-error',\n  props: {\n    errorMessage: {\n      type: String,\n      default: null } },\n\n\n  data: function data() {\n    return {};\n\n\n  } };exports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tZXJyb3IvcWl1bi1lcnJvci52dWUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFRQTtBQUNBLG9CQURBO0FBRUE7QUFDQTtBQUNBLGtCQURBO0FBRUEsbUJBRkEsRUFEQSxFQUZBOzs7QUFRQSxNQVJBLGtCQVFBO0FBQ0E7OztBQUdBLEdBWkEsRSIsImZpbGUiOiI2MC5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuXHQ8dmlldyBjbGFzcz1cImNoYXJ0c3ZpZXdcIj5cclxuXHRcdDx2aWV3IGNsYXNzPVwiY2hhcnRzLWVycm9yXCI+PC92aWV3PlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJjaGFydHMtZm9udFwiPnt7ZXJyb3JNZXNzYWdlPT1udWxsPyfor7fngrnlh7vph43or5UnOmVycm9yTWVzc2FnZX19PC92aWV3PlxyXG5cdDwvdmlldz5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcblx0ZXhwb3J0IGRlZmF1bHQge1xyXG5cdFx0bmFtZTogJ3FpdW4tZXJyb3InLFxyXG5cdFx0cHJvcHM6IHtcclxuXHRcdFx0ZXJyb3JNZXNzYWdlOiB7XHJcblx0XHRcdFx0dHlwZTogU3RyaW5nLFxyXG5cdFx0XHRcdGRlZmF1bHQ6IG51bGxcclxuXHRcdFx0fSxcclxuXHRcdH0sXHJcblx0XHRkYXRhKCkge1xyXG5cdFx0XHRyZXR1cm4ge1xyXG5cdFx0XHRcdFxyXG5cdFx0XHR9O1xyXG5cdFx0fSxcclxuXHR9XHJcbjwvc2NyaXB0PlxyXG5cclxuPHN0eWxlPlxyXG5cdC5jaGFydHN2aWV3IHtcclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0aGVpZ2h0OiAxMDAlO1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcblx0XHRmbGV4OiAxO1xyXG5cdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdH1cclxuXHQuY2hhcnRzLWZvbnR7XHJcblx0XHRmb250LXNpemU6IDE0cHg7XHJcblx0XHRjb2xvcjogI0NDQ0NDQztcclxuXHRcdG1hcmdpbi10b3A6IDEwcHg7XHJcblx0fVxyXG5cdC5jaGFydHMtZXJyb3J7XHJcblx0XHR3aWR0aDogMTI4cHg7XHJcblx0XHRoZWlnaHQ6IDEyOHB4O1xyXG5cdFx0YmFja2dyb3VuZDogdXJsKFwiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFJQUFBQUNBQ0FZQUFBRERQbUhMQUFBVXowbEVRVlI0WHUxZGUzQmMxWDMrem1wM2pZVldma1BBZ0NXd1k4ekxFZ2xOUUNTVzB5VDlvMlNRYURLZE51bFV5a3dmTStrMDlwK0ozSW1ZSVBKWGk5eVp6RFNaWml3eWFadVpCQ3duTkcxRE1vZ0VtVUFBeTd4cy9NQXlOaENNaldXdHNLMWRlVS9uMjNPdnRMdTZqM1B2M3QyOWQ3MW54ak9TZGU0NTUvNSszL205ejdrQ2pSWTRCUjdlSzdma2NtaHJhc0xUMzdoYlRBWStRWUFEaWdESGFnd0ZZR2hjN2dad0hNQVVnRzRoTVB6TmU4Um9XSW5UQUVDQW5IbDRyK3lSRXQwRFhXSWJoeDNjSjVmSFA4VFlqbnRGUjREVEJEcVVJd0JtTXJKREN0eVBIRG9RdzBROGprZVhpbkNMdEVDcDQzR3doNTZSMjJJeFRCYnUrS0Z4T1RiUUpibzlEbFcxN3JZQVNHZGxOeVNlS2wySkFEcGJrbUtpYWl0MG1XaG9YSFprbXpFNTJDa29jbXZhdnZPc2JNdmw4TWhBbCtqbFFyZzJDUXp1NkJJOU5WMll3K1QyQUppVm8rRHVMMmtTZUxRMUtmckM4a0xjWWJrWUJ2L3BiakVXaGpVTmpVdlNwazlLU0FpY20ydEdYeGpBYVVjYmV3QmtKQW02eGVMQnAxUEoyb3MwNnR0Y0RsOEgwQ0VFYUdudkdlZ1NnMkVBUVpUVzRCMEFFbnRTUzJvdjBtaGdKYzVqbXdUNklERVdpMkUwek5aMldFRmhDNENaakNSeEg3R3dBZnBia21Ja0xDOUVGUUJnMjBCWGVPeVNzTkJHWngyT1hrQjZWZzVDZ0FiTVpnRDdCVERTa2hURE9nTTMra1NEQXI3aUFOTno4bjRoUVJkeG9qVXU5a1RqVlJ1cnRLS0FKd0JJS1pmUFpQT3VZV0ZnWTZ3bGdWNGhhdStHTlZqc25RS2VBSkRPU0lwL1d0NmxiU0tlUUc4alNPU2RBYlYrd2lzQTdGeERTR0FxQm13TlM1RElpR0l1Y3lOd0tpR2VkdXRUejMvM0JnQ2I0SkJKb0dxRElKMlZXNFJFbXhSb2cwUzNsR2dUL05sZlkzUnpDZ0pqUW1KU0NreGVEdUR3QmdDYjhIQWh2UWtDSWRDYlNnUWZtU1BEbVdHRHpIc20xVXF3akJFVUFNYnFFUkNlQUVCR3oyUmtud1IydVcweUFaUWRMNkRSK1dFVzkwc3lYTG1qdFc4U28wSmc5TW9FOXRTRDRlc1pBTlVBQWQxTTVOQWpHT1VMYWFPa0F6Q0tHRWFqN0FyN0FvQkhFR3hyU1lxZE9ueE1aK1czWkE1OVplaHhuV2tDN3lNbEprVU1JeTF4N0l5YVZQQU5BQU1FSFRsZ1RBQ08xcllFUmxxVG90K0o4bmJwNThDNVZjRUJEZnRuT0VwQUtBc0FnWVBBUGdOWlFiWUZQM1FlQ0F5YkovQmcyQ1ZDMlFEd0NvSlVBdHVkaUpLdUV4Q1FMb1piUEtpckFvT0hvdnVJVGhWQnl1WGlpMmpFL0M5STJUYVhCWXNmbVRoeWFoTXRDV3kxQTRFUmJqN3J2dlJJOWFDYTNGN3BJTm0zbjVYZFhndGpGZ0hBWUNRclc0djhiQm82TVlGZXA1Y3dtRWVmdVN3UXBETlNSb3E5K29zZHJxUmFHQnFYTWhmRFZpOGdXQVNBZEVidXN3dXlHQ0tOU0xhdEJ5Z1hCSFVxQVFvaE1tSEVTQUtycXpTcm80VElTMnlPcTEwZFZRUUF1eUtRVW9DN0JYbkl4SFFXd3dMNGF5L3FJTS84REhhRkp1aWp2N005OVF6YU5tQXg2aHpRRnN2aEtTbXh2YWtKbzdvSFVvb0E0TVVBMHdIQlREWWZRblZVQjZiRm5MYzFKSHFpRmdQd3hQblN6aEtqTFVuMEIrVXBzRG9xRmtPZkx2TzVITjhBTU41bE9KVVUyKzJJTUQwbmUwUU90Q2NxMGs3T0FOZTFWR1RvYWc3cWFCUlhlaUZGQUpqT3lCRU5zVjIwSnFjZ2oyRlFIZ3Z5SldZdkFRZlBBSnV2QXY3MTk4QURtNERNSEpCS0FtdWFnNXlwZW1QcEdOaVZXazJwRGNDREREUUNQVFU3RU9nbWpyeE1SZ0E4ZGdCWW13Sk9Yd0J1V2dIODdtM2d6MjZPTGdEeTZxOUc5UlNMdklBeW1GWlVHc2FDakp6RTdxQjErdnZuZ1hSR1FlYkc1UUIvUDMwZWFGMmlRQkhsbGs4d3hkRGZHcS9lWVZMTFFKQmZFT1FOT3BrMy9CZzg2aGJBOGlBWnd0Mi9hNzhhc1g4enNLUkovZnpZUWVEdHRGSUhVYmNKcWkwSm5NNEZhT1g5ZzJTdzdsZ0hUZ1BUczBESFJ4VGpUNXdEdHF6VGZUcjgvYW9KQXJmVHdYMDU1UDE1MTlxNmFwR1Y0djgvWGxVNm56di92bzhDdnp3SzNMMFcyTFM2V3F1by9EelZBb0ZyTWlpdnl6VlN2cFVueWNJTVZBVVUvLy8ya2dJQzliK3BEcXE1amlyTVZYRVgwUlVBZk1rd2dvRHJNb0ZRQlViVWNvcXhWRkpzcmRRQ3RBQVFaaEJVaWpDaEdsZml3ZFNTeXB4ODFnYUFBUUxMQTZPaElsYU5GMk1HcXJpTW0xY0ZxSm9FdGxhaTBsb2JBSXpxWmJQWUY3UnJWMk4rQlQ3OUw5OWM4RWgrZHpJNDc0UkdZU3FCOXFEeUJ1YUxhd01nblpFOEV4amF1MjRDNTZUUEFaOCt2c0QwNTk0R1BySFc1MERXandWdUQyZ0J3RGdtL3ExQVg2Vk9CL3Y1WWVEV05lcmxYbnNmK01LR1lGL1VMUXZyZFRaWEFGUWlvZU4xa1ZIcVR4dUFnU28yeGlXQ2RrK0RWZ1d1QUVqUHl0MzFYcUFSSllBWmE5MlpTcXE3Q010dGpnQ29oMXI5Y2drVTF1ZUR1cTdQRVFEVHMvSlkwTm04c0JJMGd1c0t4Q0NNWkRJb2dzeXF6SklEaUEzWUFxQ3greXZEczRCSExWc0tCRm9QRVBETE5ZYlRvVUNaVXNBU0FGSFkvU2ZUQ3hXdHE1cUJLNHppRUIyYTFWbWZzcVRBSWdCVXVwTFhML0V2c2hqME5OQ2FCTTdOQXI4OXNURFNwNjRIT2ovaWQrVG9QMWVPUjdBWUFENHFnNnRCd3VmZUFSaGFiVjhCZlBKYUZXeFpFZ2VTTVdEVG1zdGFBcEQ4dnVNQ1JRQUk0N0dzMzd3RnJHNEdya3NCUjg4Mm1HMjEyVmhXM3JwRXRQdlppTDZPaHZtWnlPc3pGUG03RDZxcVgrNzZMNnhmR0lIL2w3bWtWTUdOS3k3NzNaOG5qSXloMTA4MWNmSEJrSkFFZmdxWnYya1Y4Q21qNEhQL0g0QURaMVJCcU5tWWJmdkV0VjdoVlgvOS9YN0hZUjRBWVVyNlBQbW1ZalNaLzdrYmxSVDQ3eU9LOFV5dThEeEE2eFhxSEFEVncyWHNBUlFodVNXQkZWN3JCZVlCb0hzeXVOSjc1ODJ6d0JOSGdOVkxnYis4VFRILzhZT3Evbys3ZmZQVkN3eW5wQWlDK1crY1VmT2Nud091dmxJZE80dGk4Nk1HNWdHUWRya0Z0Rm9FMmZVeWtKNEYrdTRBa25IZ3g2K3BuZi9aZHVDVzFRRDlmM29EUEEvQTV0Y0ZwQTN4OGluZ3hYY1Z1UEo2MURndDI3TVJ1S0cxV204YzZEeWV2WUU4QU1Kay9mL25xOEJOSzVWZU4xMC9rOG12bndaK1pSdzFwZmpuWWRDT3ExVlp1SmQyL0J6d3YwY1hHTDlocGRyMVBHTklnTVVGOE9lM0FxdVdlaGsxRkgwblVrblI2V1VsZVFDRU5lMzd2WmVVRk9pL0F5aFVEYlFML0p3RTVxNG5nSTRZTnhCeGw3TmlaNWtCb0NlUEFiOS9SNG1CcTY0RWVqY0dYOURoaFRsKytzWVRhUGR5YTdzQ2dQb3lTTTFMdnVqek04RHpkM2N1TU55MDhpa1plQnFZcW9FN25qdjF0MjhwM2MzZi8raGFwU0xzMmpzekFJMUx1bzQwSk1uNGo2NHM3djNQenltcFFOZVNnTHRuTGZEeGlIa1lYa3ZHRkFBMHIyWWpzZjNzUEYwa20vci9IKzlhRVA4UDhPUlBFaGg1ZWNFcklQTnBHTEp4RjcvM29XTGNmZXNWODByYm9RK1V5RGY3ZjNIVFl1UHgrWGVBWDAwQ3Q2OEJQbjBEOE84VGFzeXZiZ1pha3JwdkVJcCtudXlBUEFDbU0vS3NXN2szYitONC9BQkE1bFNxOGNJSDAvbzM5ZjlmM0tvWVFZYWIwdURuUjRCalo0R3YzTFlBZ0IrOXFpUUIreGUyWDArcTRrdzIyaEw4Vjlyb1RYejNCVFhQMXo2bVZBSnpEZnhIcVVJRE5FTE4wMmY5aEk3L1Q2djd6U2tsYm1sOE1mRkNYenpvUnAxUHY1N24vV2o1TS9SckpubjIvUUc0cmxWSklQTTQrRGZ2V1ZqQjkvWXBGZkZKSXpCRVp2N2lNSEFpclVUKzU5cUJPMnpjdTd6dWYxZnRmck9LdHhBVVZFbEJGM2NHVFR0elBCYU50aWFGaFJ5MG5sSG9HSURjL2ErZlVsZXowRHEvWlkyNmtpWG9Sb0NSMEc1V3ZSa29NbmYwL3h3Rlhud1BpQUZJTmdFM0xBT21Md0tualBFb0tlamZXN1hqMCtxME1lZjkyc2VMVlFOTHZGOTVIL2lUbTRDTkpmWkMwTzhlNUhoZUFrSkNOd0JrSHN2Kyt6dURYS3Evc1NnZC91dTF4ZjQ3Z2ZuV09SNW1WZU5lMVF4OGFkT0NsVzhsK244d29RekRMOTY4MkNpazdmRFRnOEQxS2FEM1puOXJyZFJUbEhBMG1tbXZMSkpPSG9wRVJGZzhBSytFSWdpb21vNmRBeTdPS2RYd054M0FpUm5nUnk4RE9RbDBYZ044WnAxOXRKRE1KWk1MUlgvcE9oN2Vxd2hNTlJDbVp0cGtWcmVpZVBFRUNBRExqMFNINldXZDFrSWdQUDZHMnNWdHk0QXYzNnBFLys0M2dETVgxSzYrYjhOaUVKaEdIcVhFVjI2M0J3bTlBWTczMVE2Z0pWRjdxbkRuVDd5bmJDUzZ6RHg4UXBYSmdOaThKUEJ3bWxqb3VvQzFmM1g3RmRESEgzMERtTXNCRzFZb3NVK20wVmc4ZXhHNHBrVjVCMmJlZ0NGZzVodElNQ2Y3Z0RPYWRzQ1hiZ0d1c2JFanFra2JNcCtpdjdRUjVQT0crZVVHQURML3JXbWdTUUJ6RXVpNEN2alQ5Y0JVQm5qaWtQcWJDWUp6RjRFZkdCZE5NVzVnNXhtWUJLWTNjT2dNc0dFVmNDbFhUVlk3eitXa0FyeFVDSWtvRklBNmtlTFh4NERYVGl1RGIydWJpaGRrY3NDbkRaK2ZEUHpaSVJYK3BZdkpSQlBGNkdmYlZQUlF0MTI0RkU0QVVMSlpCT2UwWXdGVUFaRzltdjJGZDRHOUo0dGRPRWIwZm5OQ1ZReHR1UUhvdWc0Z0NINXlBRGd4cmRqdFpQUlplUXF2bkZJU2dFbWlNRFY2WmpidWVQMERnQm05UFllczlUaXpocjg0bXI5OE9sOVF3cHM2Nk9zelpPeUYrV1MyR1NRS2l3MmdDY0Q2QmtCTUFCVDlETkxZNlhGS2dpY25WV0NJdVFSNkJNd2IwT2p6MGhoaXBnM3g1ZHNpbFI2dWJ3QTB4d0dDZ0R2YUxzSkhKdFBQUC95Qkt2UWc4NjJTUUc1Z1lCeUFyWkk1RUxjMStQaTdQZ0NtTTVKZnVBck5SWkJ1TDB1R01rZGc1ZHNYUGt0d2NQZlM0UE1xOXMxeHpEQXhTOUtabFl4UTB3ZEFsT0lBRk9QVTVXeG0xczZLS2ZUenFidkxZVDdITldNQU5DWlppeGloVnA4QVlIU1BscnhkV3BjTU1pTjgvUG11YTFRVzBFK0xhamJRZU5mNkE0QloxTUd3NXo5OGJERkx5YkFuRHF2WVBwdE9rTWNKR0JHdUIrQnJhUmVGUkNZVS9PUFhnVk1mV2pPVytwNEduMW51NVJiZWRaTUlIT2U3TDZwZXZKYStFcWx2dHpXVTlYZFBvZUNRMUFNNnZiQ3ArMHQzUDNjOTZ3Slp6TUhHNmw0V2RKUjdWdUNSNTRFTGM2cTR4RXUwc0N5bUJmaXdwMnlnYmoxQWdPdnpQQlFqY1U4ZEw5YnBOUFFvcHMxZFQ3c2dDR1l4U2NTeEdVUmEyK3J1YlhoK21Xbzg0S2tlSUN1N0ljRmJRRVBiNlBxeDZtZHBYQlY5SHZsZ29SaWt0TFM3bkpjdzlYNGlwdUlNOUNKV1hxSFN4VkZxWGtyRFJaZ09oZGdST1pzRHZ2OFNjTW5NV2dpVjl1V09YeGZBQ1I2cUVycDhCSnBWWTdLRjJVVzNVclV3Z0VRQzUxcVRRcnRpVTFVRno4cEpJUkRxajY3TXpBR1B2YTVFUHNPN3pQa0h3WHlPOThOWDFJZW9tRTRteUZnblFIQXh5c2lRTWtQQkxJWmxzV29FbXJZTHlIZnhkQzZnMWkvUHhmSmtEOU8vYk9XSWYvT2FHZXA3TnVyOGVFd0JvTkNGcEhRdzZ3Yi85czd5RGN3cTBGRGJCVndBUUFROGdVTENVVlNQbjF5NEo0QmxYK3VXcWZJdjg1aVhGYUhONGc3dWFKNElOcjg0d3RMenJBUmVlRnM5OVZlM0Z4OE8vWmZuVmQzaFhkZXFieE9GdVhueEFPWUJFTmFMb1p3SVRXbkEzY3Q2QVBOMEwvdFRiRk9FWHhGWFAzT25UMTFVSTVIeGhZMkhQbmpZaENxRnBlWTgrOEJXR0duazg5L2ZCOUFPWVdQUkNYTUxZVzFlRE1CNUFQQ0hxQmFHRUFpc0RXQ0krUERaNHR0RFNwbEVZS3hmb2R5Nzl1VUtLT2FwSTU1SjRHbGcyZ0lzSnFGNklZQUlNdlpoLzJNR1FHNWJBM3ltTFhnSTBJQVRBajNtbDBHOFZteExpZU90UzRTbmxZWHVmb0J5eWRvVVV3ZEhlVWhrZGs2ZExxYnp3Q05uZE84S0c1bk84REdaYmxZSHMyYndKd2VMZ1dRR21GZ2J5RGdCRzA4T1h4K0FCMUswSUF2LzNjdEhQUDFjRXhPNkcwTEtCWUR1ODJRK3E0YTUyeW5TV1RsVUdFRmtLcGh0K1pKaXU0TC9UOC9nOCsxQWM2SlkvZWpPYmRjdmxSU1dSV2M4dlNVbFJ0M1M5bVhkRUtKelJyRGNGd3pMODZ5blo3cVl6Vyt0QUEzS254NVFoYWEwR2NvdHJIUTcwNmYxNlQ2SjBaWWsrcjNjRTFTRXVIUkdUZ0RZSEJaR1ZXSWRoY3ozV2hsY3VKN0NkREdEVW4vY3JvekpjcHJiRHRZQ0FlRHBZNVBGQUlpWU8raVYyTnoxNXVkY3lrMFhjKzdDcWlQZUtQTEF4dkpBb1BPNVdPT3I3S011Z1R0dEVCUUJvSjdWUUNIekdTOXdxaVgwQWl5Q3dLeEJxQllJalBBOXY5THVKSzBuNGduMHVsMFhFNW03Z3Iwd3BiU3ZlWXFtbkRGMG53M3FXaG0zZ0k0T0NIUWt5aUlBNk53WG9FdU1zUFNqSDgvSVgyYXVzaXVpSWNqYXdYSnRBWE9WZ1lCQVlqS1ZSS2VkWVdqM3ZZRFFKNGNxeThyd2pPNEdBcTUwMnVXR2R5ZmpzdkhGa1BEdzJuNGxBb09waEhqUWFhbE9JSEFDa1NVQXFGL1NXVXk2QlI2aVFMdDZXYU1FUmxxVG90OHJDQmhlVGlUUVlXY00yaDUzOUJLQ3JCY2loLzA5ZEVCQXZ1V0FZVzVlTWg4eDlKblh5QnU1aFMzNTl4UVlhNGxqcCtONTF5Z1Vpb1NkYVVHdmp5QklKYkRkTGRwSEtWN1l4eXF4eE55Qkl3RHEwU01JbWlFMUdrODcwR091eitvRUdOMUUxeFB2VVRvNlZpTm0xR3BhVHlDd0MvTzdBb0NoUnduc3E5VmJOdVoxcElBMkNDeTlCSWs5cmdEZzlPbU1IQWJ3OVFZelFra0JMUkFZa2NOUkFNb0lCUFlMb0U4TEFBWUk2ajVUR0VyMjZpM0tVeUZvNFpEYUFOQk1SZW90dDlFclVBcTQxUkk0VGFZTkFBNFNoV05rZ1ZJMlFvUFpWUk81dllJdEFJYkdaWWNRV0paWml2MkRuY0lvaDh4L1hDTFNONHU2RVNTcWZ3OFVBRVBqZWFPdmoxK2tCTEN1cVFtZDM3aGI4R2Z6KzBKdXVlaW8wakdTNi9aVERHcSs2Q0lKTUxoUExrK2N4OWxZRE8xaytrUFB5QkVoTURuUUpRYk5oMWc0a3MxaW9wRXJxRGhlOXNjVDZKbkxZQmdDOTF2TjVoYnJkMXZoSWdCODUxblpsc3ZoV0xZWkt5ajZEV21BZ1M2eHJYQ3dobEhvUnRyeS9zNGEvMVFTSFdZNGw2RmNLYkN0Y05PeFQweWdweVVwNktINWFwWTJnTEhydDFBRkNJSE9XQXdkcGdvb25LVVJLdlpGYzllSHVLdGpRSGNwWS9NbGUzTm9Rdzdkc2drVGZyNFZYRHE1clJINDhGN1prOHVocmFrSm8xYk1Od2RxWkExZCtlbXBneDN6UFEzaW9iTW5OOUJ1M0FZSVBGRGNvV3UxbWMrbEJBSUFEc1FEcHNoaHBHRVkrZ05ETFpnZkNBRG9OU1F2cVBMa1RTdXhmdU5xN0l3SmhPRFRDdjRZVVl1bnNqa2MzZjgrQm83TTR2OEtZeTVjaXhtUEtWeFhhV3ltbkRXWExRR0d4aVZqQW1hQ29aeTFYUGJQU29uOU8rNFZIU1loYUlkSmlkMmxoSkVTVXp2dTFmODBuQk5oeXdZQTNjWTVvT2hJOHVxbGFMaytoZldYUFVjMUNIQWlqU09uTDJDR1hlUEFaS0hCemQwUGdFRzUwalpSNnBaclRHWFpwV3dBK0oyNDhWdzRLTkFBUURqNFVMTlZCQTZBYno4cnU4VWw5U1Z5SVRDVmJVWS9EUnNqeEx4TFNtaGRZU1lFSGgzb0VpTWNoMnJtMGlYc3NxSFN4STU3eGZaS1UvQ2haK1FqQU9iMWM2WG5NK2czVDROS3pSYzRBSWJHWlI4VFNlYUNZekgwVWE4WkllWThRelhiU0JFQWN2bFNaeXZ3QktZUG5kYjEwTGprQlExYTROVjhQNTF1OHpUUTZleW5UK0FBOExPSXhqTzFvMEFEQUxXamZTaG1qaHdBQ2dOUG9hQ2dzbldPTytWTHdySk9xM1ZFRGdDR0xyYk1qZGVLMEVFR1pxcjlEcEVEZ0ZYZ3FkcEVLNTB2bHNQVVFKZi9uSHd0MS8vLzg5YnFEakNQV1BBQUFBQUFTVVZPUks1Q1lJST1cIik7XHJcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XHJcblx0fVxyXG48L3N0eWxlPlxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///60\n");
+eval("Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0; //\n//\n//\n//\n//\n//\n//\nvar _default =\n{\n  name: 'qiun-error',\n  props: {\n    errorMessage: {\n      type: String,\n      default: null } },\n\n\n  data: function data() {\n    return {};\n\n\n  } };exports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tZXJyb3IvcWl1bi1lcnJvci52dWUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFRQTtBQUNBLG9CQURBO0FBRUE7QUFDQTtBQUNBLGtCQURBO0FBRUEsbUJBRkEsRUFEQSxFQUZBOzs7QUFRQSxNQVJBLGtCQVFBO0FBQ0E7OztBQUdBLEdBWkEsRSIsImZpbGUiOiI1NS5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuXHQ8dmlldyBjbGFzcz1cImNoYXJ0c3ZpZXdcIj5cclxuXHRcdDx2aWV3IGNsYXNzPVwiY2hhcnRzLWVycm9yXCI+PC92aWV3PlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJjaGFydHMtZm9udFwiPnt7ZXJyb3JNZXNzYWdlPT1udWxsPyfor7fngrnlh7vph43or5UnOmVycm9yTWVzc2FnZX19PC92aWV3PlxyXG5cdDwvdmlldz5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcblx0ZXhwb3J0IGRlZmF1bHQge1xyXG5cdFx0bmFtZTogJ3FpdW4tZXJyb3InLFxyXG5cdFx0cHJvcHM6IHtcclxuXHRcdFx0ZXJyb3JNZXNzYWdlOiB7XHJcblx0XHRcdFx0dHlwZTogU3RyaW5nLFxyXG5cdFx0XHRcdGRlZmF1bHQ6IG51bGxcclxuXHRcdFx0fSxcclxuXHRcdH0sXHJcblx0XHRkYXRhKCkge1xyXG5cdFx0XHRyZXR1cm4ge1xyXG5cdFx0XHRcdFxyXG5cdFx0XHR9O1xyXG5cdFx0fSxcclxuXHR9XHJcbjwvc2NyaXB0PlxyXG5cclxuPHN0eWxlPlxyXG5cdC5jaGFydHN2aWV3IHtcclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0aGVpZ2h0OiAxMDAlO1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcblx0XHRmbGV4OiAxO1xyXG5cdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdH1cclxuXHQuY2hhcnRzLWZvbnR7XHJcblx0XHRmb250LXNpemU6IDE0cHg7XHJcblx0XHRjb2xvcjogI0NDQ0NDQztcclxuXHRcdG1hcmdpbi10b3A6IDEwcHg7XHJcblx0fVxyXG5cdC5jaGFydHMtZXJyb3J7XHJcblx0XHR3aWR0aDogMTI4cHg7XHJcblx0XHRoZWlnaHQ6IDEyOHB4O1xyXG5cdFx0YmFja2dyb3VuZDogdXJsKFwiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFJQUFBQUNBQ0FZQUFBRERQbUhMQUFBVXowbEVRVlI0WHUxZGUzQmMxWDMrem1wM2pZVldma1BBZ0NXd1k4ekxFZ2xOUUNTVzB5VDlvMlNRYURLZE51bFV5a3dmTStrMDlwK0ozSW1ZSVBKWGk5eVp6RFNaWml3eWFadVpCQ3duTkcxRE1vZ0VtVUFBeTd4cy9NQXlOaENNaldXdHNLMWRlVS9uMjNPdnRMdTZqM1B2M3QyOWQ3MW54ak9TZGU0NTUvNSszL205ejdrQ2pSWTRCUjdlSzdma2NtaHJhc0xUMzdoYlRBWStRWUFEaWdESGFnd0ZZR2hjN2dad0hNQVVnRzRoTVB6TmU4Um9XSW5UQUVDQW5IbDRyK3lSRXQwRFhXSWJoeDNjSjVmSFA4VFlqbnRGUjREVEJEcVVJd0JtTXJKREN0eVBIRG9RdzBROGprZVhpbkNMdEVDcDQzR3doNTZSMjJJeFRCYnUrS0Z4T1RiUUpibzlEbFcxN3JZQVNHZGxOeVNlS2wySkFEcGJrbUtpYWl0MG1XaG9YSFprbXpFNTJDa29jbXZhdnZPc2JNdmw4TWhBbCtqbFFyZzJDUXp1NkJJOU5WMll3K1QyQUppVm8rRHVMMmtTZUxRMUtmckM4a0xjWWJrWUJ2L3BiakVXaGpVTmpVdlNwazlLU0FpY20ydEdYeGpBYVVjYmV3QmtKQW02eGVMQnAxUEoyb3MwNnR0Y0RsOEgwQ0VFYUdudkdlZ1NnMkVBUVpUVzRCMEFFbnRTUzJvdjBtaGdKYzVqbXdUNklERVdpMkUwek5aMldFRmhDNENaakNSeEg3R3dBZnBia21Ja0xDOUVGUUJnMjBCWGVPeVNzTkJHWngyT1hrQjZWZzVDZ0FiTVpnRDdCVERTa2hURE9nTTMra1NEQXI3aUFOTno4bjRoUVJkeG9qVXU5a1RqVlJ1cnRLS0FKd0JJS1pmUFpQT3VZV0ZnWTZ3bGdWNGhhdStHTlZqc25RS2VBSkRPU0lwL1d0NmxiU0tlUUc4alNPU2RBYlYrd2lzQTdGeERTR0FxQm13TlM1RElpR0l1Y3lOd0tpR2VkdXRUejMvM0JnQ2I0SkJKb0dxRElKMlZXNFJFbXhSb2cwUzNsR2dUL05sZlkzUnpDZ0pqUW1KU0NreGVEdUR3QmdDYjhIQWh2UWtDSWRDYlNnUWZtU1BEbVdHRHpIc20xVXF3akJFVUFNYnFFUkNlQUVCR3oyUmtud1IydVcweUFaUWRMNkRSK1dFVzkwc3lYTG1qdFc4U28wSmc5TW9FOXRTRDRlc1pBTlVBQWQxTTVOQWpHT1VMYWFPa0F6Q0tHRWFqN0FyN0FvQkhFR3hyU1lxZE9ueE1aK1czWkE1OVplaHhuV2tDN3lNbEprVU1JeTF4N0l5YVZQQU5BQU1FSFRsZ1RBQ08xcllFUmxxVG90K0o4bmJwNThDNVZjRUJEZnRuT0VwQUtBc0FnWVBBUGdOWlFiWUZQM1FlQ0F5YkovQmcyQ1ZDMlFEd0NvSlVBdHVkaUpLdUV4Q1FMb1piUEtpckFvT0hvdnVJVGhWQnl1WGlpMmpFL0M5STJUYVhCWXNmbVRoeWFoTXRDV3kxQTRFUmJqN3J2dlJJOWFDYTNGN3BJTm0zbjVYZFhndGpGZ0hBWUNRclc0djhiQm82TVlGZXA1Y3dtRWVmdVN3UXBETlNSb3E5K29zZHJxUmFHQnFYTWhmRFZpOGdXQVNBZEVidXN3dXlHQ0tOU0xhdEJ5Z1hCSFVxQVFvaE1tSEVTQUtycXpTcm80VElTMnlPcTEwZFZRUUF1eUtRVW9DN0JYbkl4SFFXd3dMNGF5L3FJTS84REhhRkp1aWp2N005OVF6YU5tQXg2aHpRRnN2aEtTbXh2YWtKbzdvSFVvb0E0TVVBMHdIQlREWWZRblZVQjZiRm5MYzFKSHFpRmdQd3hQblN6aEtqTFVuMEIrVXBzRG9xRmtPZkx2TzVITjhBTU41bE9KVVUyKzJJTUQwbmUwUU90Q2NxMGs3T0FOZTFWR1RvYWc3cWFCUlhlaUZGQUpqT3lCRU5zVjIwSnFjZ2oyRlFIZ3Z5SldZdkFRZlBBSnV2QXY3MTk4QURtNERNSEpCS0FtdWFnNXlwZW1QcEdOaVZXazJwRGNDREREUUNQVFU3RU9nbWpyeE1SZ0E4ZGdCWW13Sk9Yd0J1V2dIODdtM2d6MjZPTGdEeTZxOUc5UlNMdklBeW1GWlVHc2FDakp6RTdxQjErdnZuZ1hSR1FlYkc1UUIvUDMwZWFGMmlRQkhsbGs4d3hkRGZHcS9lWVZMTFFKQmZFT1FOT3BrMy9CZzg2aGJBOGlBWnd0Mi9hNzhhc1g4enNLUkovZnpZUWVEdHRGSUhVYmNKcWkwSm5NNEZhT1g5ZzJTdzdsZ0hUZ1BUczBESFJ4VGpUNXdEdHF6VGZUcjgvYW9KQXJmVHdYMDU1UDE1MTlxNmFwR1Y0djgvWGxVNm56di92bzhDdnp3SzNMMFcyTFM2V3F1by9EelZBb0ZyTWlpdnl6VlN2cFVueWNJTVZBVVUvLy8ya2dJQzliK3BEcXE1amlyTVZYRVgwUlVBZk1rd2dvRHJNb0ZRQlViVWNvcXhWRkpzcmRRQ3RBQVFaaEJVaWpDaEdsZml3ZFNTeXB4ODFnYUFBUUxMQTZPaElsYU5GMk1HcXJpTW0xY0ZxSm9FdGxhaTBsb2JBSXpxWmJQWUY3UnJWMk4rQlQ3OUw5OWM4RWgrZHpJNDc0UkdZU3FCOXFEeUJ1YUxhd01nblpFOEV4amF1MjRDNTZUUEFaOCt2c0QwNTk0R1BySFc1MERXandWdUQyZ0J3RGdtL3ExQVg2Vk9CL3Y1WWVEV05lcmxYbnNmK01LR1lGL1VMUXZyZFRaWEFGUWlvZU4xa1ZIcVR4dUFnU28yeGlXQ2RrK0RWZ1d1QUVqUHl0MzFYcUFSSllBWmE5MlpTcXE3Q010dGpnQ29oMXI5Y2drVTF1ZUR1cTdQRVFEVHMvSlkwTm04c0JJMGd1c0t4Q0NNWkRJb2dzeXF6SklEaUEzWUFxQ3greXZEczRCSExWc0tCRm9QRVBETE5ZYlRvVUNaVXNBU0FGSFkvU2ZUQ3hXdHE1cUJLNHppRUIyYTFWbWZzcVRBSWdCVXVwTFhML0V2c2hqME5OQ2FCTTdOQXI4OXNURFNwNjRIT2ovaWQrVG9QMWVPUjdBWUFENHFnNnRCd3VmZUFSaGFiVjhCZlBKYUZXeFpFZ2VTTVdEVG1zdGFBcEQ4dnVNQ1JRQUk0N0dzMzd3RnJHNEdya3NCUjg4Mm1HMjEyVmhXM3JwRXRQdlppTDZPaHZtWnlPc3pGUG03RDZxcVgrNzZMNnhmR0lIL2w3bWtWTUdOS3k3NzNaOG5qSXloMTA4MWNmSEJrSkFFZmdxWnYya1Y4Q21qNEhQL0g0QURaMVJCcU5tWWJmdkV0VjdoVlgvOS9YN0hZUjRBWVVyNlBQbW1ZalNaLzdrYmxSVDQ3eU9LOFV5dThEeEE2eFhxSEFEVncyWHNBUlFodVNXQkZWN3JCZVlCb0hzeXVOSjc1ODJ6d0JOSGdOVkxnYis4VFRILzhZT3Evbys3ZmZQVkN3eW5wQWlDK1crY1VmT2Nud091dmxJZE80dGk4Nk1HNWdHUWRya0Z0Rm9FMmZVeWtKNEYrdTRBa25IZ3g2K3BuZi9aZHVDVzFRRDlmM29EUEEvQTV0Y0ZwQTN4OGluZ3hYY1Z1UEo2MURndDI3TVJ1S0cxV204YzZEeWV2WUU4QU1Kay9mL25xOEJOSzVWZU4xMC9rOG12bndaK1pSdzFwZmpuWWRDT3ExVlp1SmQyL0J6d3YwY1hHTDlocGRyMVBHTklnTVVGOE9lM0FxdVdlaGsxRkgwblVrblI2V1VsZVFDRU5lMzd2WmVVRk9pL0F5aFVEYlFML0p3RTVxNG5nSTRZTnhCeGw3TmlaNWtCb0NlUEFiOS9SNG1CcTY0RWVqY0dYOURoaFRsKytzWVRhUGR5YTdzQ2dQb3lTTTFMdnVqek04RHpkM2N1TU55MDhpa1plQnFZcW9FN25qdjF0MjhwM2MzZi8raGFwU0xzMmpzekFJMUx1bzQwSk1uNGo2NHM3djNQenltcFFOZVNnTHRuTGZEeGlIa1lYa3ZHRkFBMHIyWWpzZjNzUEYwa20vci9IKzlhRVA4UDhPUlBFaGg1ZWNFcklQTnBHTEp4RjcvM29XTGNmZXNWODByYm9RK1V5RGY3ZjNIVFl1UHgrWGVBWDAwQ3Q2OEJQbjBEOE84VGFzeXZiZ1pha3JwdkVJcCtudXlBUEFDbU0vS3NXN2szYitONC9BQkE1bFNxOGNJSDAvbzM5ZjlmM0tvWVFZYWIwdURuUjRCalo0R3YzTFlBZ0IrOXFpUUIreGUyWDArcTRrdzIyaEw4Vjlyb1RYejNCVFhQMXo2bVZBSnpEZnhIcVVJRE5FTE4wMmY5aEk3L1Q2djd6U2tsYm1sOE1mRkNYenpvUnAxUHY1N24vV2o1TS9SckpubjIvUUc0cmxWSklQTTQrRGZ2V1ZqQjkvWXBGZkZKSXpCRVp2N2lNSEFpclVUKzU5cUJPMnpjdTd6dWYxZnRmck9LdHhBVVZFbEJGM2NHVFR0elBCYU50aWFGaFJ5MG5sSG9HSURjL2ErZlVsZXowRHEvWlkyNmtpWG9Sb0NSMEc1V3ZSa29NbmYwL3h3Rlhud1BpQUZJTmdFM0xBT21Md0tualBFb0tlamZXN1hqMCtxME1lZjkyc2VMVlFOTHZGOTVIL2lUbTRDTkpmWkMwTzhlNUhoZUFrSkNOd0JrSHN2Kyt6dURYS3Evc1NnZC91dTF4ZjQ3Z2ZuV09SNW1WZU5lMVF4OGFkT0NsVzhsK244d29RekRMOTY4MkNpazdmRFRnOEQxS2FEM1puOXJyZFJUbEhBMG1tbXZMSkpPSG9wRVJGZzhBSytFSWdpb21vNmRBeTdPS2RYd054M0FpUm5nUnk4RE9RbDBYZ044WnAxOXRKRE1KWk1MUlgvcE9oN2Vxd2hNTlJDbVp0cGtWcmVpZVBFRUNBRExqMFNINldXZDFrSWdQUDZHMnNWdHk0QXYzNnBFLys0M2dETVgxSzYrYjhOaUVKaEdIcVhFVjI2M0J3bTlBWTczMVE2Z0pWRjdxbkRuVDd5bmJDUzZ6RHg4UXBYSmdOaThKUEJ3bWxqb3VvQzFmM1g3RmRESEgzMERtTXNCRzFZb3NVK20wVmc4ZXhHNHBrVjVCMmJlZ0NGZzVodElNQ2Y3Z0RPYWRzQ1hiZ0d1c2JFanFra2JNcCtpdjdRUjVQT0crZVVHQURML3JXbWdTUUJ6RXVpNEN2alQ5Y0JVQm5qaWtQcWJDWUp6RjRFZkdCZE5NVzVnNXhtWUJLWTNjT2dNc0dFVmNDbFhUVlk3eitXa0FyeFVDSWtvRklBNmtlTFh4NERYVGl1RGIydWJpaGRrY3NDbkRaK2ZEUHpaSVJYK3BZdkpSQlBGNkdmYlZQUlF0MTI0RkU0QVVMSlpCT2UwWXdGVUFaRzltdjJGZDRHOUo0dGRPRWIwZm5OQ1ZReHR1UUhvdWc0Z0NINXlBRGd4cmRqdFpQUlplUXF2bkZJU2dFbWlNRFY2WmpidWVQMERnQm05UFllczlUaXpocjg0bXI5OE9sOVF3cHM2Nk9zelpPeUYrV1MyR1NRS2l3MmdDY0Q2QmtCTUFCVDlETkxZNlhGS2dpY25WV0NJdVFSNkJNd2IwT2p6MGhoaXBnM3g1ZHNpbFI2dWJ3QTB4d0dDZ0R2YUxzSkhKdFBQUC95Qkt2UWc4NjJTUUc1Z1lCeUFyWkk1RUxjMStQaTdQZ0NtTTVKZnVBck5SWkJ1TDB1R01rZGc1ZHNYUGt0d2NQZlM0UE1xOXMxeHpEQXhTOUtabFl4UTB3ZEFsT0lBRk9QVTVXeG0xczZLS2ZUenFidkxZVDdITldNQU5DWlppeGloVnA4QVlIU1BscnhkV3BjTU1pTjgvUG11YTFRVzBFK0xhamJRZU5mNkE0QloxTUd3NXo5OGJERkx5YkFuRHF2WVBwdE9rTWNKR0JHdUIrQnJhUmVGUkNZVS9PUFhnVk1mV2pPVytwNEduMW51NVJiZWRaTUlIT2U3TDZwZXZKYStFcWx2dHpXVTlYZFBvZUNRMUFNNnZiQ3ArMHQzUDNjOTZ3Slp6TUhHNmw0V2RKUjdWdUNSNTRFTGM2cTR4RXUwc0N5bUJmaXdwMnlnYmoxQWdPdnpQQlFqY1U4ZEw5YnBOUFFvcHMxZFQ3c2dDR1l4U2NTeEdVUmEyK3J1YlhoK21Xbzg0S2tlSUN1N0ljRmJRRVBiNlBxeDZtZHBYQlY5SHZsZ29SaWt0TFM3bkpjdzlYNGlwdUlNOUNKV1hxSFN4VkZxWGtyRFJaZ09oZGdST1pzRHZ2OFNjTW5NV2dpVjl1V09YeGZBQ1I2cUVycDhCSnBWWTdLRjJVVzNVclV3Z0VRQzUxcVRRcnRpVTFVRno4cEpJUkRxajY3TXpBR1B2YTVFUHNPN3pQa0h3WHlPOThOWDFJZW9tRTRteUZnblFIQXh5c2lRTWtQQkxJWmxzV29FbXJZTHlIZnhkQzZnMWkvUHhmSmtEOU8vYk9XSWYvT2FHZXA3TnVyOGVFd0JvTkNGcEhRdzZ3Yi85czd5RGN3cTBGRGJCVndBUUFROGdVTENVVlNQbjF5NEo0QmxYK3VXcWZJdjg1aVhGYUhONGc3dWFKNElOcjg0d3RMenJBUmVlRnM5OVZlM0Z4OE8vWmZuVmQzaFhkZXFieE9GdVhueEFPWUJFTmFMb1p3SVRXbkEzY3Q2QVBOMEwvdFRiRk9FWHhGWFAzT25UMTFVSTVIeGhZMkhQbmpZaENxRnBlWTgrOEJXR0duazg5L2ZCOUFPWVdQUkNYTUxZVzFlRE1CNUFQQ0hxQmFHRUFpc0RXQ0krUERaNHR0RFNwbEVZS3hmb2R5Nzl1VUtLT2FwSTU1SjRHbGcyZ0lzSnFGNklZQUlNdlpoLzJNR1FHNWJBM3ltTFhnSTBJQVRBajNtbDBHOFZteExpZU90UzRTbmxZWHVmb0J5eWRvVVV3ZEhlVWhrZGs2ZExxYnp3Q05uZE84S0c1bk84REdaYmxZSHMyYndKd2VMZ1dRR21GZ2J5RGdCRzA4T1h4K0FCMUswSUF2LzNjdEhQUDFjRXhPNkcwTEtCWUR1ODJRK3E0YTUyeW5TV1RsVUdFRmtLcGh0K1pKaXU0TC9UOC9nOCsxQWM2SlkvZWpPYmRjdmxSU1dSV2M4dlNVbFJ0M1M5bVhkRUtKelJyRGNGd3pMODZ5blo3cVl6Vyt0QUEzS254NVFoYWEwR2NvdHJIUTcwNmYxNlQ2SjBaWWsrcjNjRTFTRXVIUkdUZ0RZSEJaR1ZXSWRoY3ozV2hsY3VKN0NkREdEVW4vY3JvekpjcHJiRHRZQ0FlRHBZNVBGQUlpWU8raVYyTnoxNXVkY3lrMFhjKzdDcWlQZUtQTEF4dkpBb1BPNVdPT3I3S011Z1R0dEVCUUJvSjdWUUNIekdTOXdxaVgwQWl5Q3dLeEJxQllJalBBOXY5THVKSzBuNGduMHVsMFhFNW03Z3Iwd3BiU3ZlWXFtbkRGMG53M3FXaG0zZ0k0T0NIUWt5aUlBNk53WG9FdU1zUFNqSDgvSVgyYXVzaXVpSWNqYXdYSnRBWE9WZ1lCQVlqS1ZSS2VkWVdqM3ZZRFFKNGNxeThyd2pPNEdBcTUwMnVXR2R5ZmpzdkhGa1BEdzJuNGxBb09waEhqUWFhbE9JSEFDa1NVQXFGL1NXVXk2QlI2aVFMdDZXYU1FUmxxVG90OHJDQmhlVGlUUVlXY00yaDUzOUJLQ3JCY2loLzA5ZEVCQXZ1V0FZVzVlTWg4eDlKblh5QnU1aFMzNTl4UVlhNGxqcCtONTF5Z1Vpb1NkYVVHdmp5QklKYkRkTGRwSEtWN1l4eXF4eE55Qkl3RHEwU01JbWlFMUdrODcwR091eitvRUdOMUUxeFB2VVRvNlZpTm0xR3BhVHlDd0MvTzdBb0NoUnduc3E5VmJOdVoxcElBMkNDeTlCSWs5cmdEZzlPbU1IQWJ3OVFZelFra0JMUkFZa2NOUkFNb0lCUFlMb0U4TEFBWUk2ajVUR0VyMjZpM0tVeUZvNFpEYUFOQk1SZW90dDlFclVBcTQxUkk0VGFZTkFBNFNoV05rZ1ZJMlFvUFpWUk81dllJdEFJYkdaWWNRV0paWml2MkRuY0lvaDh4L1hDTFNONHU2RVNTcWZ3OFVBRVBqZWFPdmoxK2tCTEN1cVFtZDM3aGI4R2Z6KzBKdXVlaW8wakdTNi9aVERHcSs2Q0lKTUxoUExrK2N4OWxZRE8xaytrUFB5QkVoTURuUUpRYk5oMWc0a3MxaW9wRXJxRGhlOXNjVDZKbkxZQmdDOTF2TjVoYnJkMXZoSWdCODUxblpsc3ZoV0xZWkt5ajZEV21BZ1M2eHJYQ3dobEhvUnRyeS9zNGEvMVFTSFdZNGw2RmNLYkN0Y05PeFQweWdweVVwNktINWFwWTJnTEhydDFBRkNJSE9XQXdkcGdvb25LVVJLdlpGYzllSHVLdGpRSGNwWS9NbGUzTm9Rdzdkc2drVGZyNFZYRHE1clJINDhGN1prOHVocmFrSm8xYk1Od2RxWkExZCtlbXBneDN6UFEzaW9iTW5OOUJ1M0FZSVBGRGNvV3UxbWMrbEJBSUFEc1FEcHNoaHBHRVkrZ05ETFpnZkNBRG9OU1F2cVBMa1RTdXhmdU5xN0l3SmhPRFRDdjRZVVl1bnNqa2MzZjgrQm83TTR2OEtZeTVjaXhtUEtWeFhhV3ltbkRXWExRR0d4aVZqQW1hQ29aeTFYUGJQU29uOU8rNFZIU1loYUlkSmlkMmxoSkVTVXp2dTFmODBuQk5oeXdZQTNjWTVvT2hJOHVxbGFMaytoZldYUFVjMUNIQWlqU09uTDJDR1hlUEFaS0hCemQwUGdFRzUwalpSNnBaclRHWFpwV3dBK0oyNDhWdzRLTkFBUURqNFVMTlZCQTZBYno4cnU4VWw5U1Z5SVRDVmJVWS9EUnNqeEx4TFNtaGRZU1lFSGgzb0VpTWNoMnJtMGlYc3NxSFN4STU3eGZaS1UvQ2haK1FqQU9iMWM2WG5NK2czVDROS3pSYzRBSWJHWlI4VFNlYUNZekgwVWE4WkllWThRelhiU0JFQWN2bFNaeXZ3QktZUG5kYjEwTGprQlExYTROVjhQNTF1OHpUUTZleW5UK0FBOExPSXhqTzFvMEFEQUxXamZTaG1qaHdBQ2dOUG9hQ2dzbldPTytWTHdySk9xM1ZFRGdDR0xyYk1qZGVLMEVFR1pxcjlEcEVEZ0ZYZ3FkcEVLNTB2bHNQVVFKZi9uSHd0MS8vLzg5YnFEakNQV1BBQUFBQUFTVVZPUks1Q1lJST1cIik7XHJcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XHJcblx0fVxyXG48L3N0eWxlPlxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///55\n");
 
 /***/ }),
-/* 61 */
+/* 56 */
 /*!**************************************************************************************************************************************************!*\
   !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue?vue&type=script&lang=js& ***!
   \**************************************************************************************************************************************************/
@@ -3267,10 +2246,10 @@
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 
 "use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./qiun-data-charts.vue?vue&type=script&lang=js& */ 62);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQW90QixDQUFnQiw4ckJBQUcsRUFBQyIsImZpbGUiOiI2MS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNi0xIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL3FpdW4tZGF0YS1jaGFydHMudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTYtMSEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9xaXVuLWRhdGEtY2hhcnRzLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///61\n");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./qiun-data-charts.vue?vue&type=script&lang=js& */ 57);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQW90QixDQUFnQiw4ckJBQUcsRUFBQyIsImZpbGUiOiI1Ni5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNi0xIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL3FpdW4tZGF0YS1jaGFydHMudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTYtMSEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9xaXVuLWRhdGEtY2hhcnRzLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///56\n");
 
 /***/ }),
-/* 62 */
+/* 57 */
 /*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
   !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue?vue&type=script&lang=js& ***!
   \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
@@ -3278,10 +2257,10 @@
 /***/ (function(module, exports, __webpack_require__) {
 
 "use strict";
-eval("/* WEBPACK VAR INJECTION */(function(uniCloud, __f__) {Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0;\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar _uCharts = _interopRequireDefault(__webpack_require__(/*! ../../js_sdk/u-charts/u-charts.js */ 73));\nvar _configUcharts = _interopRequireDefault(__webpack_require__(/*! ../../js_sdk/u-charts/config-ucharts.js */ 74));\n\nvar _configEcharts = _interopRequireDefault(__webpack_require__(/*! ../../js_sdk/u-charts/config-echarts.js */ 75));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nfunction deepCloneAssign() {var origin = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {args[_key - 1] = arguments[_key];}for (var i in args) {for (var key in args[i]) {if (args[i].hasOwnProperty(key)) {origin[key] = args[i][key] && typeof args[i][key] === 'object' ? deepCloneAssign(Array.isArray(args[i][key]) ? [] : {}, origin[key], args[i][key]) : args[i][key];}}}return origin;}function formatterAssign(args, formatter) {for (var key in args) {if (args[key] !== null && typeof args[key] === 'object') {formatterAssign(args[key], formatter);} else if (key === 'format' && typeof args[key] === 'string') {args['formatter'] = formatter[args[key]] ? formatter[args[key]] : undefined;}}return args;} // 鏃堕棿杞崲鍑芥暟锛屼负浜嗗尮閰島niClinetDB璇诲彇鍑虹殑鏃堕棿涓巆ategories涓嶅悓\nfunction getFormatDate(date) {var seperator = \"-\";var year = date.getFullYear();var month = date.getMonth() + 1;var strDate = date.getDate();if (month >= 1 && month <= 9) {month = \"0\" + month;}if (strDate >= 0 && strDate <= 9) {strDate = \"0\" + strDate;}var currentdate = year + seperator + month + seperator + strDate;return currentdate;}var lastMoveTime = null; /**\r\n                                                                                                                                                                                                                                                                                                                                                                            * 闃叉姈\r\n                                                                                                                                                                                                                                                                                                                                                                            *\r\n                                                                                                                                                                                                                                                                                                                                                                            * @param { Function } fn 瑕佹墽琛岀殑鏂规硶\r\n                                                                                                                                                                                                                                                                                                                                                                            * @param { Number } wait  闃叉姈澶氬皯姣\r\n                                                                                                                                                                                                                                                                                                                                                                            *\r\n                                                                                                                                                                                                                                                                                                                                                                            * 鍦� vue 涓娇鐢紙娉ㄦ剰锛氫笉鑳戒娇鐢ㄧ澶村嚱鏁帮紝鍚﹀垯this鎸囧悜涓嶅锛屽苟涓斾笉鑳藉啀娆″皝瑁呭锛歕r\n                                                                                                                                                                                                                                                                                                                                                                            * move(){  // 閿欒璋冪敤鏂瑰紡\r\n                                                                                                                                                                                                                                                                                                                                                                            *   debounce(function () {\r\n                                                                                                                                                                                                                                                                                                                                                                            *   console.log(this.title);\r\n                                                                                                                                                                                                                                                                                                                                                                            * }, 1000)}锛�;\r\n                                                                                                                                                                                                                                                                                                                                                                            * 搴旇鐩存帴浣跨敤锛�// 姝g‘璋冪敤鏂瑰紡\r\n                                                                                                                                                                                                                                                                                                                                                                            * move: debounce(function () {\r\n                                                                                                                                                                                                                                                                                                                                                                            *   console.log(this.title);\r\n                                                                                                                                                                                                                                                                                                                                                                            * }, 1000)\r\n                                                                                                                                                                                                                                                                                                                                                                            */function debounce(fn, wait) {var timer = false;return function () {var _arguments = arguments,_this = this;clearTimeout(timer);timer && clearTimeout(timer);timer = setTimeout(function () {timer = false;fn.apply(_this, _arguments); // 鎶婂弬鏁颁紶杩涘幓\n    }, wait);};}var _default2 = { name: 'qiun-data-charts', mixins: [uniCloud.mixinDatacom], props: { type: { type: String, default: null }, canvasId: { type: String, default: 'uchartsid' }, canvas2d: { type: Boolean, default: false }, background: { type: String, default: 'rgba(0,0,0,0)' }, animation: { type: Boolean, default: true }, chartData: { type: Object, default: function _default() {return { categories: [], series: [] };} }, opts: { type: Object, default: function _default() {return {};} }, eopts: { type: Object, default: function _default() {return {};} }, loadingType: { type: Number, default: 2 }, errorShow: { type: Boolean, default: true }, errorReload: { type: Boolean, default: true }, errorMessage: { type: String, default: null }, inScrollView: { type: Boolean, default: false }, reshow: { type: Boolean, default: false }, reload: { type: Boolean, default: false }, disableScroll: { type: Boolean, default: false }, ontap: { type: Boolean, default: true }, ontouch: { type: Boolean, default: false }, onmouse: { type: Boolean, default: true }, onmovetip: { type: Boolean, default: false }, echartsH5: { type: Boolean, default: false }, echartsApp: { type: Boolean, default: false }, tooltipShow: { type: Boolean, default: true },\n    tooltipFormat: {\n      type: String,\n      default: undefined },\n\n    tooltipCustom: {\n      type: Object,\n      default: undefined },\n\n    startDate: {\n      type: String,\n      default: undefined },\n\n    endDate: {\n      type: String,\n      default: undefined },\n\n    textEnum: {\n      type: Array,\n      default: function _default() {\n        return [];\n      } },\n\n    groupEnum: {\n      type: Array,\n      default: function _default() {\n        return [];\n      } },\n\n    pageScrollTop: {\n      type: Number,\n      default: 0 },\n\n    directory: {\n      type: String,\n      default: '/' },\n\n    tapLegend: {\n      type: Boolean,\n      default: true },\n\n    menus: {\n      type: Array,\n      default: function _default() {\n        return [];\n      } } },\n\n\n  data: function data() {\n    return {\n      cid: 'uchartsid',\n      inWx: false,\n      inAli: false,\n      inTt: false,\n      inBd: false,\n      inH5: false,\n      inApp: false,\n      inWin: false,\n      type2d: true,\n      disScroll: false,\n      openmouse: false,\n      pixel: 1,\n      cWidth: 375,\n      cHeight: 250,\n      showchart: false,\n      echarts: false,\n      echartsResize: false,\n      uchartsOpts: {},\n      echartsOpts: {},\n      drawData: {},\n      lastDrawTime: null };\n\n  },\n  created: function created() {\n    this.cid = this.canvasId;\n    if (this.canvasId == 'uchartsid' || this.canvasId == '') {\n      var t = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';\n      var len = t.length;\n      var id = '';\n      for (var i = 0; i < 32; i++) {\n        id += t.charAt(Math.floor(Math.random() * len));\n      }\n      this.cid = id;\n    }\n    var systemInfo = uni.getSystemInfoSync();\n    if (systemInfo.platform === 'windows' || systemInfo.platform === 'mac') {\n      this.inWin = true;\n    }\n\n\n\n\n\n\n\n\n\n\n\n    //闈炲井淇″皬绋嬪簭绔己鍒跺叧闂璫anvas2d妯″紡\n\n    this.type2d = false;\n\n\n\n\n\n\n\n\n\n\n\n    this.disScroll = this.disableScroll;\n  },\n  mounted: function mounted() {var _this2 = this;\n\n    this.inApp = true;\n    if (this.echartsApp === true) {\n      this.echarts = true;\n      this.openmouse = false;\n    }\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n    this.$nextTick(function () {\n      _this2.beforeInit();\n    });\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n  },\n  destroyed: function destroyed() {\n    if (this.echarts === true) {\n      delete _configEcharts.default.option[this.cid];\n      delete _configEcharts.default.instance[this.cid];\n    } else {\n      delete _configUcharts.default.option[this.cid];\n      delete _configUcharts.default.instance[this.cid];\n    }\n\n    uni.offWindowResize(function () {});\n\n  },\n  watch: {\n    chartDataProps: {\n      handler: function handler(val, oldval) {\n        if (typeof val === 'object') {\n          if (JSON.stringify(val) !== JSON.stringify(oldval)) {\n            if (val.series && val.series.length > 0) {\n              this.beforeInit();\n            } else {\n              this.mixinDatacomLoading = true;\n              this._clearChart();\n              this.showchart = false;\n              this.mixinDatacomErrorMessage = null;\n            }\n          }\n        } else {\n          this.mixinDatacomLoading = false;\n          this._clearChart();\n          this.showchart = false;\n          this.mixinDatacomErrorMessage = '鍙傛暟閿欒锛歝hartData鏁版嵁绫诲瀷閿欒';\n        }\n      },\n      immediate: false,\n      deep: true },\n\n    localdata: {\n      handler: function handler(val, oldval) {\n        if (JSON.stringify(val) !== JSON.stringify(oldval)) {\n          if (val.length > 0) {\n            this.beforeInit();\n          } else {\n            this.mixinDatacomLoading = true;\n            this._clearChart();\n            this.showchart = false;\n            this.mixinDatacomErrorMessage = null;\n          }\n        }\n      },\n      immediate: false,\n      deep: true },\n\n    optsProps: {\n      handler: function handler(val, oldval) {\n        if (typeof val === 'object') {\n          if (JSON.stringify(val) !== JSON.stringify(oldval) && this.echarts === false) {\n            this.checkData(this.drawData);\n          }\n        } else {\n          this.mixinDatacomLoading = false;\n          this._clearChart();\n          this.showchart = false;\n          this.mixinDatacomErrorMessage = '鍙傛暟閿欒锛歰pts鏁版嵁绫诲瀷閿欒';\n        }\n      },\n      immediate: false,\n      deep: true },\n\n    eoptsProps: {\n      handler: function handler(val, oldval) {\n        if (typeof val === 'object') {\n          if (JSON.stringify(val) !== JSON.stringify(oldval) && this.echarts === true) {\n            this.checkData(this.drawData);\n          }\n        } else {\n          this.mixinDatacomLoading = false;\n          this.showchart = false;\n          this.mixinDatacomErrorMessage = '鍙傛暟閿欒锛歟opts鏁版嵁绫诲瀷閿欒';\n        }\n      },\n      immediate: false,\n      deep: true },\n\n    reshow: function reshow(val, oldval) {var _this3 = this;\n      if (val === true && this.mixinDatacomLoading === false) {\n        setTimeout(function () {\n          _this3.mixinDatacomErrorMessage = null;\n          _this3.echartsResize = !_this3.echartsResize;\n          _this3.checkData(_this3.drawData);\n        }, 200);\n      }\n    },\n    reload: function reload(val, oldval) {\n      if (val === true) {\n        this.showchart = false;\n        this.mixinDatacomErrorMessage = null;\n        this.reloading();\n      }\n    },\n    mixinDatacomErrorMessage: function mixinDatacomErrorMessage(val, oldval) {\n      if (val) {\n        this.emitMsg({ name: 'error', params: { type: \"error\", errorShow: this.errorShow, msg: val, id: this.cid } });\n        if (this.errorShow) {\n          __f__(\"log\", '[绉嬩簯鍥捐〃缁勪欢]' + val, \" at uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue:600\");\n        }\n      }\n    },\n    errorMessage: function errorMessage(val, oldval) {\n      if (val && this.errorShow && val !== null && val !== 'null' && val !== '') {\n        this.showchart = false;\n        this.mixinDatacomLoading = false;\n        this.mixinDatacomErrorMessage = val;\n      } else {\n        this.showchart = false;\n        this.mixinDatacomErrorMessage = null;\n        this.reloading();\n      }\n    } },\n\n  computed: {\n    optsProps: function optsProps() {\n      return JSON.parse(JSON.stringify(this.opts));\n    },\n    eoptsProps: function eoptsProps() {\n      return JSON.parse(JSON.stringify(this.eopts));\n    },\n    chartDataProps: function chartDataProps() {\n      return JSON.parse(JSON.stringify(this.chartData));\n    } },\n\n  methods: {\n    beforeInit: function beforeInit() {\n      this.mixinDatacomErrorMessage = null;\n      if (typeof this.chartData === 'object' && this.chartData != null && this.chartData.series !== undefined && this.chartData.series.length > 0) {\n        //鎷疯礉涓�涓媍hartData锛屼负浜唎pts鍙樻洿鍚庣粺涓�鏁版嵁鏉ユ簮\n        this.drawData = deepCloneAssign({}, this.chartData);\n        this.mixinDatacomLoading = false;\n        this.showchart = true;\n        this.checkData(this.chartData);\n      } else if (this.localdata.length > 0) {\n        this.mixinDatacomLoading = false;\n        this.showchart = true;\n        this.localdataInit(this.localdata);\n      } else if (this.collection !== '') {\n        this.mixinDatacomLoading = false;\n        this.getCloudData();\n      } else {\n        this.mixinDatacomLoading = true;\n      }\n    },\n    localdataInit: function localdataInit(resdata) {\n      //鏇挎崲enum绫诲瀷涓烘纭殑鎻忚堪\n      if (this.groupEnum.length > 0) {\n        for (var i = 0; i < resdata.length; i++) {\n          for (var j = 0; j < this.groupEnum.length; j++) {\n            if (resdata[i].group === this.groupEnum[j].value) {\n              resdata[i].group = this.groupEnum[j].text;\n            }\n          }\n        }\n      }\n      if (this.textEnum.length > 0) {\n        for (var _i = 0; _i < resdata.length; _i++) {\n          for (var _j = 0; _j < this.textEnum.length; _j++) {\n            if (resdata[_i].text === this.textEnum[_j].value) {\n              resdata[_i].text = this.textEnum[_j].text;\n            }\n          }\n        }\n      }\n      var needCategories = false;\n      var tmpData = { categories: [], series: [] };\n      var tmpcategories = [];\n      var tmpseries = [];\n      //鎷兼帴categories\n      if (this.echarts === true) {\n        needCategories = _configEcharts.default.categories.includes(this.type);\n      } else {\n        needCategories = _configUcharts.default.categories.includes(this.type);\n      }\n      if (needCategories === true) {\n        //濡傛灉props涓殑chartData甯︽湁categories锛屽垯浼樺厛浣跨敤chartData鐨刢ategories\n        if (this.chartData && this.chartData.categories && this.chartData.categories.length > 0) {\n          tmpcategories = this.chartData.categories;\n        } else {\n          //濡傛灉鏄棩鏈熺被鍨嬬殑鏁版嵁锛屼笉绠℃槸鏈湴鏁版嵁杩樻槸浜戞暟鎹紝閮芥寜璧锋鏃ユ湡鑷姩鎷兼帴categories\n          if (this.startDate && this.endDate) {\n            var idate = new Date(this.startDate);\n            var edate = new Date(this.endDate);\n            while (idate <= edate) {\n              tmpcategories.push(getFormatDate(idate));\n              idate = idate.setDate(idate.getDate() + 1);\n              idate = new Date(idate);\n            }\n            //鍚﹀垯浠庣粨鏋滀腑鍘婚噸骞舵嫾鎺ategories\n          } else {\n            var tempckey = {};\n            resdata.map(function (item, index) {\n              if (item.text != undefined && !tempckey[item.text]) {\n                tmpcategories.push(item.text);\n                tempckey[item.text] = true;\n              }\n            });\n          }\n        }\n        tmpData.categories = tmpcategories;\n      }\n      //鎷兼帴series\n      var tempskey = {};\n      resdata.map(function (item, index) {\n        if (item.group != undefined && !tempskey[item.group]) {\n          tmpseries.push({ name: item.group, data: [] });\n          tempskey[item.group] = true;\n        }\n      });\n      //濡傛灉娌℃湁鑾峰彇鍒板垎缁勫悕绉�(鍙兘鏄甫categories鐨勬暟鎹紝涔熷彲鑳芥槸涓嶅甫鐨勯ゼ鍥剧被)\n      if (tmpseries.length == 0) {\n        tmpseries = [{ name: '榛樿鍒嗙粍', data: [] }];\n        //濡傛灉鏄渶瑕乧ategories鐨勫浘琛ㄧ被鍨媆n        if (needCategories === true) {\n          for (var _j2 = 0; _j2 < tmpcategories.length; _j2++) {\n            var seriesdata = 0;\n            for (var _i2 = 0; _i2 < resdata.length; _i2++) {\n              if (resdata[_i2].text == tmpcategories[_j2]) {\n                seriesdata = resdata[_i2].value;\n              }\n            }\n            tmpseries[0].data.push(seriesdata);\n          }\n          //濡傛灉鏄ゼ鍥剧被鐨勫浘琛ㄧ被鍨媆n        } else {\n          for (var _i3 = 0; _i3 < resdata.length; _i3++) {\n            tmpseries[0].data.push({ \"name\": resdata[_i3].text, \"value\": resdata[_i3].value });\n          }\n        }\n        //濡傛灉鏈夊垎缁勫悕\n      } else {\n        for (var k = 0; k < tmpseries.length; k++) {\n          //濡傛灉鏈塩ategories\n          if (tmpcategories.length > 0) {\n            for (var _j3 = 0; _j3 < tmpcategories.length; _j3++) {\n              var _seriesdata = 0;\n              for (var _i4 = 0; _i4 < resdata.length; _i4++) {\n                if (tmpseries[k].name == resdata[_i4].group && resdata[_i4].text == tmpcategories[_j3]) {\n                  _seriesdata = resdata[_i4].value;\n                }\n              }\n              tmpseries[k].data.push(_seriesdata);\n            }\n            //濡傛灉浼犱簡group鑰屾病鏈変紶text锛屽嵆娌℃湁categories锛堟甯告儏鍐典笅杩欑鏁版嵁鏄笉绗﹀悎鏁版嵁瑕佹眰瑙勮寖鐨勶級\n          } else {\n            for (var _i5 = 0; _i5 < resdata.length; _i5++) {\n              if (tmpseries[k].name == resdata[_i5].group) {\n                tmpseries[k].data.push(resdata[_i5].value);\n              }\n            }\n          }\n        }\n      }\n      tmpData.series = tmpseries;\n      //鎷疯礉涓�涓媍hartData锛屼负浜唎pts鍙樻洿鍚庣粺涓�鏁版嵁鏉ユ簮\n      this.drawData = deepCloneAssign({}, tmpData);\n      this.checkData(tmpData);\n    },\n    reloading: function reloading() {\n      if (this.errorReload === false) {\n        return;\n      }\n      this.showchart = false;\n      this.mixinDatacomErrorMessage = null;\n      if (this.collection !== '') {\n        this.mixinDatacomLoading = false;\n        this.onMixinDatacomPropsChange(true);\n      } else {\n        this.beforeInit();\n      }\n    },\n    checkData: function checkData(anyData) {var _this4 = this;\n      var cid = this.cid;\n      //澶嶄綅opts鎴杄opts\n      if (this.echarts === true) {\n        _configEcharts.default.option[cid] = deepCloneAssign({}, this.eopts);\n        _configEcharts.default.option[cid].id = cid;\n        _configEcharts.default.option[cid].type = this.type;\n      } else {\n        if (this.type && _configUcharts.default.type.includes(this.type)) {\n          _configUcharts.default.option[cid] = deepCloneAssign({}, _configUcharts.default[this.type], this.opts);\n          _configUcharts.default.option[cid].canvasId = cid;\n        } else {\n          this.mixinDatacomLoading = false;\n          this.showchart = false;\n          this.mixinDatacomErrorMessage = '鍙傛暟閿欒锛歱rops鍙傛暟涓璽ype绫诲瀷涓嶆纭�';\n        }\n      }\n      //鎸傝浇categories鍜宻eries\n      var newData = deepCloneAssign({}, anyData);\n      if (newData.series !== undefined && newData.series.length > 0) {\n        this.mixinDatacomErrorMessage = null;\n        if (this.echarts === true) {\n          _configEcharts.default.option[cid].chartData = newData;\n          this.$nextTick(function () {\n            _this4.init();\n          });\n        } else {\n          _configUcharts.default.option[cid].categories = newData.categories;\n          _configUcharts.default.option[cid].series = newData.series;\n          this.$nextTick(function () {\n            _this4.init();\n          });\n        }\n      }\n    },\n    resizeHandler: function resizeHandler() {var _this5 = this;\n      //娓叉煋闃叉姈\n      var currTime = Date.now();\n      var lastDrawTime = this.lastDrawTime ? this.lastDrawTime : currTime - 3000;\n      var duration = currTime - lastDrawTime;\n      if (duration < 1000) return;\n      var chartdom = uni.\n      createSelectorQuery().\n\n      in(this).\n\n      select('#ChartBoxId' + this.cid).\n      boundingClientRect(function (data) {\n        _this5.showchart = true;\n        if (data.width > 0 && data.height > 0) {\n          if (data.width !== _this5.cWidth || data.height !== _this5.cHeight) {\n            _this5.checkData(_this5.drawData);\n          }\n        }\n      }).\n      exec();\n    },\n    getCloudData: function getCloudData() {var _this6 = this;\n      if (this.mixinDatacomLoading == true) {\n        return;\n      }\n      this.mixinDatacomLoading = true;\n      this.mixinDatacomGet().\n      then(function (res) {\n        _this6.mixinDatacomResData = res.result.data;\n        _this6.localdataInit(_this6.mixinDatacomResData);\n      }).\n      catch(function (err) {\n        _this6.mixinDatacomLoading = false;\n        _this6.showchart = false;\n        _this6.mixinDatacomErrorMessage = '璇锋眰閿欒锛�' + err;\n      });\n    },\n    onMixinDatacomPropsChange: function onMixinDatacomPropsChange(needReset, changed) {\n      if (needReset == true && this.collection !== '') {\n        this.showchart = false;\n        this.mixinDatacomErrorMessage = null;\n        this._clearChart();\n        this.getCloudData();\n      }\n    },\n    _clearChart: function _clearChart() {\n      var cid = this.cid;\n      if (this.echrts !== true) {\n        var ctx = uni.createCanvasContext(cid, this);\n        ctx.clearRect(0, 0, this.cWidth, this.cHeight);\n        ctx.draw();\n      }\n    },\n    init: function init() {var _this7 = this;\n      var cid = this.cid;\n      var chartdom = uni.\n      createSelectorQuery().\n\n      in(this).\n\n      select('#ChartBoxId' + cid).\n      boundingClientRect(function (data) {\n        if (data.width > 0 && data.height > 0) {\n          _this7.mixinDatacomLoading = false;\n          _this7.showchart = true;\n          _this7.lastDrawTime = Date.now();\n          _this7.cWidth = data.width;\n          _this7.cHeight = data.height;\n          if (_this7.echarts !== true) {\n            _configUcharts.default.option[cid].background = _this7.background == 'rgba(0,0,0,0)' ? '#FFFFFF' : _this7.background;\n            _configUcharts.default.option[cid].canvas2d = _this7.type2d;\n            _configUcharts.default.option[cid].pixelRatio = _this7.pixel;\n            _configUcharts.default.option[cid].animation = _this7.animation;\n            _configUcharts.default.option[cid].width = data.width * _this7.pixel;\n            _configUcharts.default.option[cid].height = data.height * _this7.pixel;\n            _configUcharts.default.option[cid].ontap = _this7.ontap;\n            _configUcharts.default.option[cid].ontouch = _this7.ontouch;\n            _configUcharts.default.option[cid].onmouse = _this7.openmouse;\n            _configUcharts.default.option[cid].onmovetip = _this7.onmovetip;\n            _configUcharts.default.option[cid].tooltipShow = _this7.tooltipShow;\n            _configUcharts.default.option[cid].tooltipFormat = _this7.tooltipFormat;\n            _configUcharts.default.option[cid].tooltipCustom = _this7.tooltipCustom;\n            _configUcharts.default.option[cid].inScrollView = _this7.inScrollView;\n            _configUcharts.default.option[cid].lastDrawTime = _this7.lastDrawTime;\n            _configUcharts.default.option[cid].tapLegend = _this7.tapLegend;\n          }\n          //濡傛灉鏄疕5鎴栬�匒pp绔紝閲囩敤renderjs娓叉煋鍥捐〃\n          if (_this7.inH5 || _this7.inApp) {\n            if (_this7.echarts == true) {\n              _configEcharts.default.option[cid].ontap = _this7.ontap;\n              _configEcharts.default.option[cid].onmouse = _this7.openmouse;\n              _configEcharts.default.option[cid].tooltipShow = _this7.tooltipShow;\n              _configEcharts.default.option[cid].tooltipFormat = _this7.tooltipFormat;\n              _configEcharts.default.option[cid].tooltipCustom = _this7.tooltipCustom;\n              _configEcharts.default.option[cid].lastDrawTime = _this7.lastDrawTime;\n              _this7.echartsOpts = deepCloneAssign({}, _configEcharts.default.option[cid]);\n            } else {\n              _configUcharts.default.option[cid].rotateLock = _configUcharts.default.option[cid].rotate;\n              _this7.uchartsOpts = deepCloneAssign({}, _configUcharts.default.option[cid]);\n            }\n            //濡傛灉鏄皬绋嬪簭绔紝閲囩敤uCharts娓叉煋\n          } else {\n            _configUcharts.default.option[cid] = formatterAssign(_configUcharts.default.option[cid], _configUcharts.default.formatter);\n            _this7.mixinDatacomErrorMessage = null;\n            _this7.mixinDatacomLoading = false;\n            _this7.showchart = true;\n            _this7.$nextTick(function () {\n              if (_this7.type2d === true) {\n                var query = uni.createSelectorQuery().in(_this7);\n                query.\n                select('#' + cid).\n                fields({ node: true, size: true }).\n                exec(function (res) {\n                  if (res[0]) {\n                    var canvas = res[0].node;\n                    var ctx = canvas.getContext('2d');\n                    _configUcharts.default.option[cid].context = ctx;\n                    canvas.width = data.width * _this7.pixel;\n                    canvas.height = data.height * _this7.pixel;\n                    canvas._width = data.width * _this7.pixel;\n                    canvas._height = data.height * _this7.pixel;\n                    _configUcharts.default.option[cid].rotateLock = _configUcharts.default.option[cid].rotate;\n                    if (_configUcharts.default.instance[cid] && _configUcharts.default.option[cid] && _configUcharts.default.option[cid].update === true) {\n                      _this7._updataUChart(cid);\n                    } else {\n                      setTimeout(function () {\n                        _configUcharts.default.option[cid].context.restore();\n                        _configUcharts.default.option[cid].context.save();\n                        _this7._newChart(cid);\n                      }, 100);\n                    }\n                  } else {\n                    _this7.showchart = false;\n                    _this7.mixinDatacomErrorMessage = '鍙傛暟閿欒锛氬紑鍚�2d妯″紡鍚庯紝鏈幏鍙栧埌dom鑺傜偣锛宑anvas-id:' + cid;\n                  }\n                });\n              } else {\n                if (_this7.inAli) {\n                  _configUcharts.default.option[cid].rotateLock = _configUcharts.default.option[cid].rotate;\n                }\n                _configUcharts.default.option[cid].context = uni.createCanvasContext(cid, _this7);\n                if (_configUcharts.default.instance[cid] && _configUcharts.default.option[cid] && _configUcharts.default.option[cid].update === true) {\n                  _this7._updataUChart(cid);\n                } else {\n                  setTimeout(function () {\n                    _configUcharts.default.option[cid].context.restore();\n                    _configUcharts.default.option[cid].context.save();\n                    _this7._newChart(cid);\n                  }, 100);\n                }\n              }\n            });\n          }\n        } else {\n          _this7.mixinDatacomLoading = false;\n          _this7.showchart = false;\n          if (_this7.reshow == true) {\n            _this7.mixinDatacomErrorMessage = '甯冨眬閿欒锛氭湭鑾峰彇鍒扮埗鍏冪礌瀹介珮灏哄锛乧anvas-id:' + cid;\n          }\n        }\n      }).\n      exec();\n    },\n    saveImage: function saveImage() {\n      uni.canvasToTempFilePath({\n        canvasId: this.cid,\n        success: function success(res) {\n\n\n\n\n\n\n\n\n          uni.saveImageToPhotosAlbum({\n            filePath: res.tempFilePath,\n            success: function success() {\n              uni.showToast({\n                title: '淇濆瓨鎴愬姛',\n                duration: 2000 });\n\n            } });\n\n\n        } },\n      this);\n    },\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n    _error: function _error(e) {\n      this.mixinDatacomErrorMessage = e.detail.errMsg;\n    },\n    emitMsg: function emitMsg(msg) {\n      this.$emit(msg.name, msg.params);\n    },\n    getRenderType: function getRenderType() {\n      //闃叉濡傛灉寮�鍚痚charts涓旂埗鍏冪礌涓簐-if鐨勬儏鍐祌enderjs鐩戝惉涓嶅埌prop鍙樺寲鐨勯棶棰榎n      if (this.echarts === true && this.mixinDatacomLoading === false) {\n        this.beforeInit();\n      }\n    },\n    toJSON: function toJSON() {\n      return this;\n    } } };exports.default = _default2;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/uni-cloud/dist/index.js */ 63)[\"default\"], __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 10)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tZGF0YS1jaGFydHMvcWl1bi1kYXRhLWNoYXJ0cy52dWUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUE4SkE7QUFDQTs7QUFFQSxvSDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUdBLCtQQUNBLHFCQUNBLDBCQUNBLGtDQUNBLGtLQUNBLENBQ0EsQ0FDQSxDQUNBLGNBQ0EsQ0FFQSwyQ0FDQSx1QkFDQSwwREFDQSxzQ0FDQSxDQUZBLE1BRUEsd0RBQ0EsNEVBQ0EsQ0FDQSxDQUNBLFlBQ0EsQyxDQUVBO0FBQ0EsOEJBQ0Esb0JBQ0EsOEJBQ0EsZ0NBQ0EsNkJBQ0EsK0JBQ0Esb0JBQ0EsQ0FDQSxtQ0FDQSx3QkFDQSxDQUNBLGlFQUNBLG1CQUNBLENBRUEsd0IsQ0FDQTs7Ozs7Ozs7Ozs7Ozs7OzhXQWdCQSw2QkFDQSxrQkFDQSw0REFDQSxvQkFDQSw2QkFDQSxnQ0FDQSxjQUNBLDRCQUZBLENBRUE7QUFDQSxLQUhBLEVBR0EsSUFIQSxFQUlBLENBUEEsQ0FRQSxDLGdCQUVBLEVBQ0Esd0JBREEsRUFFQSwrQkFGQSxFQUdBLFNBQ0EsUUFDQSxZQURBLEVBRUEsYUFGQSxFQURBLEVBS0EsWUFDQSxZQURBLEVBRUEsb0JBRkEsRUFMQSxF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QUFJQSxhQVBBOzs7QUFVQSxTQXJCQTtBQXNCQSxVQXRCQTtBQXVCQSxLQWxYQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWtoQkEsVUFsaEJBLGtCQWtoQkEsQ0FsaEJBLEVBa2hCQTtBQUNBO0FBQ0EsS0FwaEJBO0FBcWhCQSxXQXJoQkEsbUJBcWhCQSxHQXJoQkEsRUFxaEJBO0FBQ0E7QUFDQSxLQXZoQkE7QUF3aEJBLGlCQXhoQkEsMkJBd2hCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0E3aEJBO0FBOGhCQSxVQTloQkEsb0JBOGhCQTtBQUNBO0FBQ0EsS0FoaUJBLEVBM1lBLEUiLCJmaWxlIjoiNjIuanMiLCJzb3VyY2VzQ29udGVudCI6WyI8IS0tIFxyXG4gKiBxaXVuLWRhdGEtY2hhcnRzIOeni+S6kemrmOaAp+iDvei3qOWFqOerr+WbvuihqOe7hOS7tiB2Mi4zLjctMjAyMjAxMThcclxuICogQ29weXJpZ2h0IChjKSAyMDIxIFFJVU7CriDnp4vkupEgaHR0cHM6Ly93d3cudWNoYXJ0cy5jbiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG4gKiBMaWNlbnNlZCAoIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMCApXHJcbiAqIOWkjeWItuS9v+eUqOivt+S/neeVmeacrOauteazqOmHiu+8jOaEn+iwouaUr+aMgeW8gOa6kO+8gVxyXG4gKiDkuLrmlrnkvr/mm7TlpJrlvIDlj5HogIXkvb/nlKjvvIzlpoLmnInmm7Tlpb3nmoTlu7rorq7or7fmj5DkuqTnoIHkupEgUHVsbCBSZXF1ZXN0cyDvvIFcclxuICpcclxuICogdUNoYXJ0c8Ku5a6Y5pa5572R56uZXHJcbiAqIGh0dHBzOi8vd3d3LnVDaGFydHMuY25cclxuICogXHJcbiAqIOW8gOa6kOWcsOWdgDpcclxuICogaHR0cHM6Ly9naXRlZS5jb20vdUNoYXJ0cy91Q2hhcnRzXHJcbiAqIFxyXG4gKiB1bmktYXBw5o+S5Lu25biC5Zy65Zyw5Z2A77yaXHJcbiAqIGh0dHA6Ly9leHQuZGNsb3VkLm5ldC5jbi9wbHVnaW4/aWQ9MjcxXHJcbiAqIFxyXG4gLS0+XHJcbjx0ZW1wbGF0ZT5cclxuICA8dmlldyBjbGFzcz1cImNoYXJ0c3ZpZXdcIiA6aWQ9XCInQ2hhcnRCb3hJZCcrY2lkXCI+XHJcbiAgICA8dmlldyB2LWlmPVwibWl4aW5EYXRhY29tTG9hZGluZ1wiPlxyXG4gICAgICA8IS0tIOiHquWumuS5ieWKoOi9veeKtuaAge+8jOivt+aUuei/memHjCAtLT5cclxuICAgICAgPHFpdW4tbG9hZGluZyA6bG9hZGluZ1R5cGU9XCJsb2FkaW5nVHlwZVwiIC8+XHJcbiAgICA8L3ZpZXc+XHJcbiAgICA8dmlldyB2LWlmPVwibWl4aW5EYXRhY29tRXJyb3JNZXNzYWdlICYmIGVycm9yU2hvd1wiIEB0YXA9XCJyZWxvYWRpbmdcIj5cclxuICAgICAgPCEtLSDoh6rlrprkuYnplJnor6/mj5DnpLrvvIzor7fmlLnov5nph4wgLS0+XHJcbiAgICAgIDxxaXVuLWVycm9yIDplcnJvck1lc3NhZ2U9XCJlcnJvck1lc3NhZ2VcIiAvPlxyXG4gICAgPC92aWV3PlxyXG4gICAgPCEtLSBBUFDlkoxINemHh+eUqHJlbmRlcmpz5riy5p+T5Zu+6KGoIC0tPlxyXG4gICAgPCEtLSAjaWZkZWYgQVBQLVZVRSB8fCBINSAtLT5cclxuICAgIDxibG9jayB2LWlmPVwiZWNoYXJ0c1wiPlxyXG4gICAgICA8dmlld1xyXG4gICAgICAgIDpzdHlsZT1cInsgYmFja2dyb3VuZDogYmFja2dyb3VuZCB9XCJcclxuICAgICAgICBzdHlsZT1cIndpZHRoOiAxMDAlO2hlaWdodDogMTAwJTtcIlxyXG4gICAgICAgIDpkYXRhLWRpcmVjdG9yeT1cImRpcmVjdG9yeVwiXHJcbiAgICAgICAgOmlkPVwiJ0VDJytjaWRcIiBcclxuICAgICAgICA6cHJvcD1cImVjaGFydHNPcHRzXCIgXHJcbiAgICAgICAgOmNoYW5nZTpwcm9wPVwicmRjaGFydHMuZWNpbml0XCIgXHJcbiAgICAgICAgOnJlc2l6ZT1cImVjaGFydHNSZXNpemVcIlxyXG4gICAgICAgIDpjaGFuZ2U6cmVzaXplPVwicmRjaGFydHMuZWNyZXNpemVcIlxyXG4gICAgICAgIHYtc2hvdz1cInNob3djaGFydFwiXHJcbiAgICAgIC8+XHJcbiAgICA8L2Jsb2NrPlxyXG4gICAgPGJsb2NrIHYtZWxzZT5cclxuICAgICAgPHZpZXdcclxuICAgICAgICB2LW9uOnRhcD1cInJkY2hhcnRzLnRhcFwiXHJcbiAgICAgICAgdi1vbjptb3VzZW1vdmU9XCJyZGNoYXJ0cy5tb3VzZU1vdmVcIlxyXG4gICAgICAgIHYtb246bW91c2Vkb3duPVwicmRjaGFydHMubW91c2VEb3duXCJcclxuICAgICAgICB2LW9uOm1vdXNldXA9XCJyZGNoYXJ0cy5tb3VzZVVwXCJcclxuICAgICAgICB2LW9uOnRvdWNoc3RhcnQ9XCJyZGNoYXJ0cy50b3VjaFN0YXJ0XCJcclxuICAgICAgICB2LW9uOnRvdWNobW92ZT1cInJkY2hhcnRzLnRvdWNoTW92ZVwiXHJcbiAgICAgICAgdi1vbjp0b3VjaGVuZD1cInJkY2hhcnRzLnRvdWNoRW5kXCJcclxuICAgICAgICA6aWQ9XCInVUMnK2NpZFwiXHJcbiAgICAgICAgOnByb3A9XCJ1Y2hhcnRzT3B0c1wiXHJcbiAgICAgICAgOmNoYW5nZTpwcm9wPVwicmRjaGFydHMudWNpbml0XCJcclxuICAgICAgPlxyXG4gICAgICAgIDxjYW52YXNcclxuICAgICAgICAgIDppZD1cImNpZFwiXHJcbiAgICAgICAgICA6Y2FudmFzSWQ9XCJjaWRcIlxyXG4gICAgICAgICAgOnN0eWxlPVwieyB3aWR0aDogY1dpZHRoICsgJ3B4JywgaGVpZ2h0OiBjSGVpZ2h0ICsgJ3B4JywgYmFja2dyb3VuZDogYmFja2dyb3VuZCB9XCJcclxuICAgICAgICAgIDpkaXNhYmxlLXNjcm9sbD1cImRpc2FibGVTY3JvbGxcIlxyXG4gICAgICAgICAgQGVycm9yPVwiX2Vycm9yXCJcclxuICAgICAgICAgIHYtc2hvdz1cInNob3djaGFydFwiXHJcbiAgICAgICAgLz5cclxuICAgICAgPC92aWV3PlxyXG4gICAgPC9ibG9jaz5cclxuICAgIDwhLS0gI2VuZGlmIC0tPlxyXG4gICAgPCEtLSDmlK/ku5jlrp3lsI/nqIvluo8gLS0+XHJcbiAgICA8IS0tICNpZmRlZiBNUC1BTElQQVkgLS0+XHJcbiAgICA8YmxvY2sgdi1pZj1cIm9udG91Y2hcIj5cclxuICAgICAgPGNhbnZhc1xyXG4gICAgICAgIDppZD1cImNpZFwiXHJcbiAgICAgICAgOmNhbnZhc0lkPVwiY2lkXCJcclxuICAgICAgICA6d2lkdGg9XCJjV2lkdGggKiBwaXhlbFwiXHJcbiAgICAgICAgOmhlaWdodD1cImNIZWlnaHQgKiBwaXhlbFwiXHJcbiAgICAgICAgOnN0eWxlPVwieyB3aWR0aDogY1dpZHRoICsgJ3B4JywgaGVpZ2h0OiBjSGVpZ2h0ICsgJ3B4JywgYmFja2dyb3VuZDogYmFja2dyb3VuZCB9XCJcclxuICAgICAgICA6ZGlzYWJsZS1zY3JvbGw9XCJkaXNTY3JvbGxcIlxyXG4gICAgICAgIEB0YXA9XCJfdGFwXCJcclxuICAgICAgICBAdG91Y2hzdGFydD1cIl90b3VjaFN0YXJ0XCJcclxuICAgICAgICBAdG91Y2htb3ZlPVwiX3RvdWNoTW92ZVwiXHJcbiAgICAgICAgQHRvdWNoZW5kPVwiX3RvdWNoRW5kXCJcclxuICAgICAgICBAZXJyb3I9XCJfZXJyb3JcIlxyXG4gICAgICAgIHYtc2hvdz1cInNob3djaGFydFwiXHJcbiAgICAgIC8+XHJcbiAgICA8L2Jsb2NrPlxyXG4gICAgPGJsb2NrIHYtaWY9XCIhb250b3VjaFwiPlxyXG4gICAgICA8Y2FudmFzXHJcbiAgICAgICAgOmlkPVwiY2lkXCJcclxuICAgICAgICA6Y2FudmFzSWQ9XCJjaWRcIlxyXG4gICAgICAgIDp3aWR0aD1cImNXaWR0aCAqIHBpeGVsXCJcclxuICAgICAgICA6aGVpZ2h0PVwiY0hlaWdodCAqIHBpeGVsXCJcclxuICAgICAgICA6c3R5bGU9XCJ7IHdpZHRoOiBjV2lkdGggKyAncHgnLCBoZWlnaHQ6IGNIZWlnaHQgKyAncHgnLCBiYWNrZ3JvdW5kOiBiYWNrZ3JvdW5kIH1cIlxyXG4gICAgICAgIDpkaXNhYmxlLXNjcm9sbD1cImRpc1Njcm9sbFwiXHJcbiAgICAgICAgQHRhcD1cIl90YXBcIlxyXG4gICAgICAgIEBlcnJvcj1cIl9lcnJvclwiXHJcbiAgICAgICAgdi1zaG93PVwic2hvd2NoYXJ0XCJcclxuICAgICAgLz5cclxuICAgIDwvYmxvY2s+XHJcbiAgICA8IS0tICNlbmRpZiAtLT5cclxuICAgIDwhLS0g5YW25LuW5bCP56iL5bqP6YCa6L+HdnVl5riy5p+T5Zu+6KGoIC0tPlxyXG4gICAgPCEtLSAjaWZkZWYgTVAtMzYwIHx8IE1QLUJBSURVIHx8IE1QLVFRIHx8IE1QLVRPVVRJQU8gfHwgTVAtV0VJWElOIC0tPlxyXG4gICAgPGJsb2NrIHYtaWY9XCJ0eXBlMmRcIj5cclxuICAgICAgPHZpZXcgdi1pZj1cIm9udG91Y2hcIiBAdGFwPVwiX3RhcFwiPlxyXG4gICAgICAgIDxjYW52YXNcclxuICAgICAgICAgIDppZD1cImNpZFwiXHJcbiAgICAgICAgICA6Y2FudmFzSWQ9XCJjaWRcIlxyXG4gICAgICAgICAgOnN0eWxlPVwieyB3aWR0aDogY1dpZHRoICsgJ3B4JywgaGVpZ2h0OiBjSGVpZ2h0ICsgJ3B4JywgYmFja2dyb3VuZDogYmFja2dyb3VuZCB9XCJcclxuICAgICAgICAgIHR5cGU9XCIyZFwiXHJcbiAgICAgICAgICA6ZGlzYWJsZS1zY3JvbGw9XCJkaXNTY3JvbGxcIlxyXG4gICAgICAgICAgQHRvdWNoc3RhcnQ9XCJfdG91Y2hTdGFydFwiXHJcbiAgICAgICAgICBAdG91Y2htb3ZlPVwiX3RvdWNoTW92ZVwiXHJcbiAgICAgICAgICBAdG91Y2hlbmQ9XCJfdG91Y2hFbmRcIlxyXG4gICAgICAgICAgQGVycm9yPVwiX2Vycm9yXCJcclxuICAgICAgICAgIHYtc2hvdz1cInNob3djaGFydFwiXHJcbiAgICAgICAgLz5cclxuICAgICAgPC92aWV3PlxyXG4gICAgICA8dmlldyB2LWlmPVwiIW9udG91Y2hcIiBAdGFwPVwiX3RhcFwiPlxyXG4gICAgICAgIDxjYW52YXNcclxuICAgICAgICAgIDppZD1cImNpZFwiXHJcbiAgICAgICAgICA6Y2FudmFzSWQ9XCJjaWRcIlxyXG4gICAgICAgICAgOnN0eWxlPVwieyB3aWR0aDogY1dpZHRoICsgJ3B4JywgaGVpZ2h0OiBjSGVpZ2h0ICsgJ3B4JywgYmFja2dyb3VuZDogYmFja2dyb3VuZCB9XCJcclxuICAgICAgICAgIHR5cGU9XCIyZFwiXHJcbiAgICAgICAgICA6ZGlzYWJsZS1zY3JvbGw9XCJkaXNTY3JvbGxcIlxyXG4gICAgICAgICAgQGVycm9yPVwiX2Vycm9yXCJcclxuICAgICAgICAgIHYtc2hvdz1cInNob3djaGFydFwiXHJcbiAgICAgICAgLz5cclxuICAgICAgPC92aWV3PlxyXG4gICAgPC9ibG9jaz5cclxuICAgIDxibG9jayB2LWlmPVwiIXR5cGUyZFwiPlxyXG4gICAgICA8dmlldyB2LWlmPVwib250b3VjaFwiIEB0YXA9XCJfdGFwXCI+XHJcbiAgICAgICAgPGNhbnZhc1xyXG4gICAgICAgICAgOmlkPVwiY2lkXCJcclxuICAgICAgICAgIDpjYW52YXNJZD1cImNpZFwiXHJcbiAgICAgICAgICA6c3R5bGU9XCJ7IHdpZHRoOiBjV2lkdGggKyAncHgnLCBoZWlnaHQ6IGNIZWlnaHQgKyAncHgnLCBiYWNrZ3JvdW5kOiBiYWNrZ3JvdW5kIH1cIlxyXG4gICAgICAgICAgQHRvdWNoc3RhcnQ9XCJfdG91Y2hTdGFydFwiXHJcbiAgICAgICAgICBAdG91Y2htb3ZlPVwiX3RvdWNoTW92ZVwiXHJcbiAgICAgICAgICBAdG91Y2hlbmQ9XCJfdG91Y2hFbmRcIlxyXG4gICAgICAgICAgOmRpc2FibGUtc2Nyb2xsPVwiZGlzU2Nyb2xsXCJcclxuICAgICAgICAgIEBlcnJvcj1cIl9lcnJvclwiXHJcbiAgICAgICAgICB2LWlmPVwic2hvd2NoYXJ0XCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L3ZpZXc+XHJcbiAgICAgIDx2aWV3IHYtaWY9XCIhb250b3VjaFwiID5cclxuICAgICAgICA8Y2FudmFzXHJcbiAgICAgICAgICA6aWQ9XCJjaWRcIlxyXG4gICAgICAgICAgOmNhbnZhc0lkPVwiY2lkXCJcclxuICAgICAgICAgIDpzdHlsZT1cInsgd2lkdGg6IGNXaWR0aCArICdweCcsIGhlaWdodDogY0hlaWdodCArICdweCcsIGJhY2tncm91bmQ6IGJhY2tncm91bmQgfVwiXHJcbiAgICAgICAgICA6ZGlzYWJsZS1zY3JvbGw9XCJkaXNTY3JvbGxcIlxyXG4gICAgICAgICAgQHRhcD1cIl90YXBcIlxyXG4gICAgICAgICAgQGVycm9yPVwiX2Vycm9yXCJcclxuICAgICAgICAgIHYtaWY9XCJzaG93Y2hhcnRcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvdmlldz5cclxuICAgIDwvYmxvY2s+XHJcbiAgICA8IS0tICNlbmRpZiAtLT5cclxuICA8L3ZpZXc+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0PlxyXG5pbXBvcnQgdUNoYXJ0cyBmcm9tICcuLi8uLi9qc19zZGsvdS1jaGFydHMvdS1jaGFydHMuanMnO1xyXG5pbXBvcnQgY2Z1IGZyb20gJy4uLy4uL2pzX3Nkay91LWNoYXJ0cy9jb25maWctdWNoYXJ0cy5qcyc7XHJcbi8vICNpZmRlZiBBUFAtVlVFIHx8IEg1XHJcbmltcG9ydCBjZmUgZnJvbSAnLi4vLi4vanNfc2RrL3UtY2hhcnRzL2NvbmZpZy1lY2hhcnRzLmpzJztcclxuLy8gI2VuZGlmXHJcblxyXG5mdW5jdGlvbiBkZWVwQ2xvbmVBc3NpZ24ob3JpZ2luID0ge30sIC4uLmFyZ3MpIHtcclxuICBmb3IgKGxldCBpIGluIGFyZ3MpIHtcclxuICAgIGZvciAobGV0IGtleSBpbiBhcmdzW2ldKSB7XHJcbiAgICAgIGlmIChhcmdzW2ldLmhhc093blByb3BlcnR5KGtleSkpIHtcclxuICAgICAgICBvcmlnaW5ba2V5XSA9IGFyZ3NbaV1ba2V5XSAmJiB0eXBlb2YgYXJnc1tpXVtrZXldID09PSAnb2JqZWN0JyA/IGRlZXBDbG9uZUFzc2lnbihBcnJheS5pc0FycmF5KGFyZ3NbaV1ba2V5XSkgPyBbXSA6IHt9LCBvcmlnaW5ba2V5XSwgYXJnc1tpXVtrZXldKSA6IGFyZ3NbaV1ba2V5XTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gb3JpZ2luO1xyXG59XHJcblxyXG5mdW5jdGlvbiBmb3JtYXR0ZXJBc3NpZ24oYXJncyxmb3JtYXR0ZXIpIHtcclxuICBmb3IgKGxldCBrZXkgaW4gYXJncykge1xyXG4gICAgaWYoYXJnc1trZXldICE9PSBudWxsICYmIHR5cGVvZiBhcmdzW2tleV0gPT09ICdvYmplY3QnKXtcclxuICAgICAgZm9ybWF0dGVyQXNzaWduKGFyZ3Nba2V5XSxmb3JtYXR0ZXIpXHJcbiAgICB9ZWxzZSBpZihrZXkgPT09ICdmb3JtYXQnICYmIHR5cGVvZiBhcmdzW2tleV0gPT09ICdzdHJpbmcnKXtcclxuICAgICAgYXJnc1snZm9ybWF0dGVyJ10gPSBmb3JtYXR0ZXJbYXJnc1trZXldXSA/IGZvcm1hdHRlclthcmdzW2tleV1dIDogdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gYXJncztcclxufVxyXG5cclxuLy8g5pe26Ze06L2s5o2i5Ye95pWw77yM5Li65LqG5Yy56YWNdW5pQ2xpbmV0RELor7vlj5blh7rnmoTml7bpl7TkuI5jYXRlZ29yaWVz5LiN5ZCMXHJcbmZ1bmN0aW9uIGdldEZvcm1hdERhdGUoZGF0ZSkge1xyXG5cdHZhciBzZXBlcmF0b3IgPSBcIi1cIjtcclxuXHR2YXIgeWVhciA9IGRhdGUuZ2V0RnVsbFllYXIoKTtcclxuXHR2YXIgbW9udGggPSBkYXRlLmdldE1vbnRoKCkgKyAxO1xyXG5cdHZhciBzdHJEYXRlID0gZGF0ZS5nZXREYXRlKCk7XHJcblx0aWYgKG1vbnRoID49IDEgJiYgbW9udGggPD0gOSkge1xyXG5cdFx0XHRtb250aCA9IFwiMFwiICsgbW9udGg7XHJcblx0fVxyXG5cdGlmIChzdHJEYXRlID49IDAgJiYgc3RyRGF0ZSA8PSA5KSB7XHJcblx0XHRcdHN0ckRhdGUgPSBcIjBcIiArIHN0ckRhdGU7XHJcblx0fVxyXG5cdHZhciBjdXJyZW50ZGF0ZSA9IHllYXIgKyBzZXBlcmF0b3IgKyBtb250aCArIHNlcGVyYXRvciArIHN0ckRhdGU7XHJcblx0cmV0dXJuIGN1cnJlbnRkYXRlO1xyXG59XHJcblxyXG52YXIgbGFzdE1vdmVUaW1lID0gbnVsbDtcclxuLyoqXHJcbiAqIOmYsuaKllxyXG4gKlxyXG4gKiBAcGFyYW0geyBGdW5jdGlvbiB9IGZuIOimgeaJp+ihjOeahOaWueazlVxyXG4gKiBAcGFyYW0geyBOdW1iZXIgfSB3YWl0ICDpmLLmipblpJrlsJHmr6vnp5JcclxuICpcclxuICog5ZyoIHZ1ZSDkuK3kvb/nlKjvvIjms6jmhI/vvJrkuI3og73kvb/nlKjnrq3lpLTlh73mlbDvvIzlkKbliJl0aGlz5oyH5ZCR5LiN5a+577yM5bm25LiU5LiN6IO95YaN5qyh5bCB6KOF5aaC77yaXHJcbiAqIG1vdmUoKXsgIC8vIOmUmeivr+iwg+eUqOaWueW8j1xyXG4gKiAgIGRlYm91bmNlKGZ1bmN0aW9uICgpIHtcclxuICogICBjb25zb2xlLmxvZyh0aGlzLnRpdGxlKTtcclxuICogfSwgMTAwMCl977yJO1xyXG4gKiDlupTor6Xnm7TmjqXkvb/nlKjvvJovLyDmraPnoa7osIPnlKjmlrnlvI9cclxuICogbW92ZTogZGVib3VuY2UoZnVuY3Rpb24gKCkge1xyXG4gKiAgIGNvbnNvbGUubG9nKHRoaXMudGl0bGUpO1xyXG4gKiB9LCAxMDAwKVxyXG4gKi9cclxuZnVuY3Rpb24gZGVib3VuY2UoZm4sIHdhaXQpIHtcclxuICBsZXQgdGltZXIgPSBmYWxzZTtcclxuICByZXR1cm4gZnVuY3Rpb24oKSB7XHJcbiAgICBjbGVhclRpbWVvdXQodGltZXIpO1xyXG4gICAgdGltZXIgJiYgY2xlYXJUaW1lb3V0KHRpbWVyKTtcclxuICAgIHRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRpbWVyID0gZmFsc2U7XHJcbiAgICAgIGZuLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IC8vIOaKiuWPguaVsOS8oOi/m+WOu1xyXG4gICAgfSwgd2FpdCk7XHJcbiAgfTtcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQge1xyXG4gIG5hbWU6ICdxaXVuLWRhdGEtY2hhcnRzJyxcclxuICBtaXhpbnM6IFt1bmlDbG91ZC5taXhpbkRhdGFjb21dLFxyXG4gIHByb3BzOiB7XHJcbiAgICB0eXBlOiB7XHJcbiAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgZGVmYXVsdDogbnVsbFxyXG4gICAgfSxcclxuICAgIGNhbnZhc0lkOiB7XHJcbiAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgZGVmYXVsdDogJ3VjaGFydHNpZCdcclxuICAgIH0sXHJcbiAgICBjYW52YXMyZDoge1xyXG4gICAgICB0eXBlOiBCb29sZWFuLFxyXG4gICAgICBkZWZhdWx0OiBmYWxzZVxyXG4gICAgfSxcclxuICAgIGJhY2tncm91bmQ6IHtcclxuICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICBkZWZhdWx0OiAncmdiYSgwLDAsMCwwKSdcclxuICAgIH0sXHJcbiAgICBhbmltYXRpb246IHtcclxuICAgICAgdHlwZTogQm9vbGVhbixcclxuICAgICAgZGVmYXVsdDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGNoYXJ0RGF0YToge1xyXG4gICAgICB0eXBlOiBPYmplY3QsXHJcbiAgICAgIGRlZmF1bHQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIGNhdGVnb3JpZXM6IFtdLFxyXG4gICAgICAgICAgc2VyaWVzOiBbXVxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBvcHRzOiB7XHJcbiAgICAgIHR5cGU6IE9iamVjdCxcclxuICAgICAgZGVmYXVsdCgpIHtcclxuICAgICAgICByZXR1cm4ge307XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBlb3B0czoge1xyXG4gICAgICB0eXBlOiBPYmplY3QsXHJcbiAgICAgIGRlZmF1bHQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHt9O1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgbG9hZGluZ1R5cGU6IHtcclxuICAgICAgdHlwZTogTnVtYmVyLFxyXG4gICAgICBkZWZhdWx0OiAyXHJcbiAgICB9LFxyXG4gICAgZXJyb3JTaG93OiB7XHJcbiAgICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICAgIGRlZmF1bHQ6IHRydWVcclxuICAgIH0sXHJcbiAgICBlcnJvclJlbG9hZDoge1xyXG4gICAgICB0eXBlOiBCb29sZWFuLFxyXG4gICAgICBkZWZhdWx0OiB0cnVlXHJcbiAgICB9LFxyXG4gICAgZXJyb3JNZXNzYWdlOiB7XHJcbiAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgZGVmYXVsdDogbnVsbFxyXG4gICAgfSxcclxuICAgIGluU2Nyb2xsVmlldzoge1xyXG4gICAgICB0eXBlOiBCb29sZWFuLFxyXG4gICAgICBkZWZhdWx0OiBmYWxzZVxyXG4gICAgfSxcclxuICAgIHJlc2hvdzoge1xyXG4gICAgICB0eXBlOiBCb29sZWFuLFxyXG4gICAgICBkZWZhdWx0OiBmYWxzZVxyXG4gICAgfSxcclxuICAgIHJlbG9hZDoge1xyXG4gICAgICB0eXBlOiBCb29sZWFuLFxyXG4gICAgICBkZWZhdWx0OiBmYWxzZVxyXG4gICAgfSxcclxuICAgIGRpc2FibGVTY3JvbGw6IHtcclxuICAgICAgdHlwZTogQm9vbGVhbixcclxuICAgICAgZGVmYXVsdDogZmFsc2VcclxuICAgIH0sXHJcbiAgICBvbnRhcDoge1xyXG4gICAgICB0eXBlOiBCb29sZWFuLFxyXG4gICAgICBkZWZhdWx0OiB0cnVlXHJcbiAgICB9LFxyXG4gICAgb250b3VjaDoge1xyXG4gICAgICB0eXBlOiBCb29sZWFuLFxyXG4gICAgICBkZWZhdWx0OiBmYWxzZVxyXG4gICAgfSxcclxuICAgIG9ubW91c2U6IHtcclxuICAgICAgdHlwZTogQm9vbGVhbixcclxuICAgICAgZGVmYXVsdDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIG9ubW92ZXRpcDoge1xyXG4gICAgICB0eXBlOiBCb29sZWFuLFxyXG4gICAgICBkZWZhdWx0OiBmYWxzZVxyXG4gICAgfSxcclxuICAgIGVjaGFydHNINToge1xyXG4gICAgICB0eXBlOiBCb29sZWFuLFxyXG4gICAgICBkZWZhdWx0OiBmYWxzZVxyXG4gICAgfSxcclxuICAgIGVjaGFydHNBcHA6IHtcclxuICAgICAgdHlwZTogQm9vbGVhbixcclxuICAgICAgZGVmYXVsdDogZmFsc2VcclxuICAgIH0sXHJcbiAgICB0b29sdGlwU2hvdzoge1xyXG4gICAgICB0eXBlOiBCb29sZWFuLFxyXG4gICAgICBkZWZhdWx0OiB0cnVlXHJcbiAgICB9LFxyXG4gICAgdG9vbHRpcEZvcm1hdDoge1xyXG4gICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgIGRlZmF1bHQ6IHVuZGVmaW5lZFxyXG4gICAgfSxcclxuICAgIHRvb2x0aXBDdXN0b206IHtcclxuICAgICAgdHlwZTogT2JqZWN0LFxyXG4gICAgICBkZWZhdWx0OiB1bmRlZmluZWRcclxuICAgIH0sXHJcbiAgICBzdGFydERhdGU6IHtcclxuICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICBkZWZhdWx0OiB1bmRlZmluZWRcclxuICAgIH0sXHJcbiAgICBlbmREYXRlOiB7XHJcbiAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgZGVmYXVsdDogdW5kZWZpbmVkXHJcbiAgICB9LFxyXG4gICAgdGV4dEVudW06IHtcclxuICAgICAgdHlwZTogQXJyYXksXHJcbiAgICAgIGRlZmF1bHQgKCkge1xyXG4gICAgICAgIHJldHVybiBbXVxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgZ3JvdXBFbnVtOiB7XHJcbiAgICAgIHR5cGU6IEFycmF5LFxyXG4gICAgICBkZWZhdWx0ICgpIHtcclxuICAgICAgICByZXR1cm4gW11cclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIHBhZ2VTY3JvbGxUb3A6IHtcclxuICAgICAgdHlwZTogTnVtYmVyLFxyXG4gICAgICBkZWZhdWx0OiAwXHJcbiAgICB9LFxyXG4gICAgZGlyZWN0b3J5OiB7XHJcbiAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgZGVmYXVsdDogJy8nXHJcbiAgICB9LFxyXG4gICAgdGFwTGVnZW5kOiB7XHJcbiAgICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICAgIGRlZmF1bHQ6IHRydWVcclxuICAgIH0sXHJcbiAgICBtZW51czoge1xyXG4gICAgICB0eXBlOiBBcnJheSxcclxuICAgICAgZGVmYXVsdCAoKSB7XHJcbiAgICAgICAgcmV0dXJuIFtdXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9LFxyXG4gIGRhdGEoKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBjaWQ6ICd1Y2hhcnRzaWQnLFxyXG4gICAgICBpbld4OiBmYWxzZSxcclxuICAgICAgaW5BbGk6IGZhbHNlLFxyXG4gICAgICBpblR0OiBmYWxzZSxcclxuICAgICAgaW5CZDogZmFsc2UsXHJcbiAgICAgIGluSDU6IGZhbHNlLFxyXG4gICAgICBpbkFwcDogZmFsc2UsXHJcbiAgICAgIGluV2luOiBmYWxzZSxcclxuICAgICAgdHlwZTJkOiB0cnVlLFxyXG4gICAgICBkaXNTY3JvbGw6IGZhbHNlLFxyXG4gICAgICBvcGVubW91c2U6IGZhbHNlLFxyXG4gICAgICBwaXhlbDogMSxcclxuICAgICAgY1dpZHRoOiAzNzUsXHJcbiAgICAgIGNIZWlnaHQ6IDI1MCxcclxuICAgICAgc2hvd2NoYXJ0OiBmYWxzZSxcclxuICAgICAgZWNoYXJ0czogZmFsc2UsXHJcbiAgICAgIGVjaGFydHNSZXNpemU6ZmFsc2UsXHJcbiAgICAgIHVjaGFydHNPcHRzOiB7fSxcclxuICAgICAgZWNoYXJ0c09wdHM6IHt9LFxyXG4gICAgICBkcmF3RGF0YTp7fSxcclxuICAgICAgbGFzdERyYXdUaW1lOm51bGwsXHJcbiAgICB9O1xyXG4gIH0sXHJcbiAgY3JlYXRlZCgpe1xyXG4gICAgdGhpcy5jaWQgPSB0aGlzLmNhbnZhc0lkXHJcbiAgICBpZiAodGhpcy5jYW52YXNJZCA9PSAndWNoYXJ0c2lkJyB8fCB0aGlzLmNhbnZhc0lkID09ICcnKSB7XHJcbiAgICAgIGxldCB0ID0gJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXonXHJcbiAgICAgIGxldCBsZW4gPSB0Lmxlbmd0aFxyXG4gICAgICBsZXQgaWQgPSAnJ1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDMyOyBpKyspIHtcclxuICAgICAgICBpZCArPSB0LmNoYXJBdChNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBsZW4pKVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY2lkID0gaWRcclxuICAgIH1cclxuICAgIGNvbnN0IHN5c3RlbUluZm8gPSB1bmkuZ2V0U3lzdGVtSW5mb1N5bmMoKVxyXG4gICAgaWYoc3lzdGVtSW5mby5wbGF0Zm9ybSA9PT0gJ3dpbmRvd3MnIHx8IHN5c3RlbUluZm8ucGxhdGZvcm0gPT09ICdtYWMnKXtcclxuICAgICAgdGhpcy5pbldpbiA9IHRydWU7XHJcbiAgICB9XHJcbiAgICAvLyAjaWZkZWYgTVAtV0VJWElOXHJcbiAgICB0aGlzLmluV3ggPSB0cnVlO1xyXG4gICAgaWYgKHRoaXMuY2FudmFzMmQgPT09IGZhbHNlIHx8IHN5c3RlbUluZm8ucGxhdGZvcm0gPT09ICd3aW5kb3dzJyB8fCBzeXN0ZW1JbmZvLnBsYXRmb3JtID09PSAnbWFjJykge1xyXG4gICAgICB0aGlzLnR5cGUyZCA9IGZhbHNlO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIHRoaXMucGl4ZWwgPSBzeXN0ZW1JbmZvLnBpeGVsUmF0aW87XHJcbiAgICAgIGlmICh0aGlzLmNhbnZhc0lkID09PSAndWNoYXJ0c2lkJyB8fCB0aGlzLmNhbnZhc0lkID09ICcnKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ1t1Q2hhcnRzXTrlvIDlkK9jYW52YXMyZOaooeW8j++8jOW/hemhu+aMh+WummNhbnZhc0lk77yM5ZCm5YiZ5Lya5Ye6546w5YG25bCU6I635Y+W5LiN5YiwZG9t6IqC54K555qE6Zeu6aKY77yBJyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIC8vICNlbmRpZlxyXG4gICAgLy/pnZ7lvq7kv6HlsI/nqIvluo/nq6/lvLrliLblhbPpl61jYW52YXMyZOaooeW8j1xyXG4gICAgLy8gI2lmbmRlZiBNUC1XRUlYSU5cclxuICAgIHRoaXMudHlwZTJkID0gZmFsc2U7XHJcbiAgICAvLyAjZW5kaWZcclxuICAgIC8vICNpZmRlZiBNUC1BTElQQVlcclxuICAgIHRoaXMuaW5BbGkgPSB0cnVlO1xyXG4gICAgdGhpcy5waXhlbCA9IHN5c3RlbUluZm8ucGl4ZWxSYXRpbztcclxuICAgIC8vICNlbmRpZlxyXG4gICAgLy8gI2lmZGVmIE1QLUJBSURVXHJcbiAgICB0aGlzLmluQmQgPSB0cnVlO1xyXG4gICAgLy8gI2VuZGlmXHJcbiAgICAvLyAjaWZkZWYgTVAtVE9VVElBT1xyXG4gICAgdGhpcy5pblR0ID0gdHJ1ZTtcclxuICAgIC8vICNlbmRpZlxyXG4gICAgdGhpcy5kaXNTY3JvbGwgPSB0aGlzLmRpc2FibGVTY3JvbGw7XHJcbiAgfSxcclxuICBtb3VudGVkKCkge1xyXG4gICAgLy8gI2lmZGVmIEFQUC1WVUVcclxuICAgIHRoaXMuaW5BcHAgPSB0cnVlO1xyXG4gICAgaWYgKHRoaXMuZWNoYXJ0c0FwcCA9PT0gdHJ1ZSkge1xyXG4gICAgICB0aGlzLmVjaGFydHMgPSB0cnVlO1xyXG4gICAgICB0aGlzLm9wZW5tb3VzZSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgLy8gI2VuZGlmXHJcbiAgICAvLyAjaWZkZWYgQVBQLU5WVUVcclxuICAgIHRoaXMuaW5BcHAgPSB0cnVlO1xyXG4gICAgdGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID0gZmFsc2VcclxuICAgIHRoaXMubWl4aW5EYXRhY29tRXJyb3JNZXNzYWdlID0gXCLmmoLkuI3mlK/mjIFOVlVFXCJcclxuICAgIC8vICNlbmRpZlxyXG4gICAgLy8gI2lmZGVmIEg1XHJcbiAgICB0aGlzLmluSDUgPSB0cnVlO1xyXG4gICAgaWYodGhpcy5pbldpbiA9PT0gdHJ1ZSl7XHJcbiAgICAgIHRoaXMub3Blbm1vdXNlID0gdGhpcy5vbm1vdXNlO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZWNoYXJ0c0g1ID09PSB0cnVlKSB7XHJcbiAgICAgIHRoaXMuZWNoYXJ0cyA9IHRydWU7XHJcbiAgICB9XHJcbiAgICAvLyAjZW5kaWZcclxuICAgIHRoaXMuJG5leHRUaWNrKCgpPT57XHJcbiAgICAgIHRoaXMuYmVmb3JlSW5pdCgpO1xyXG4gICAgfSlcclxuICAgIC8vICNpZm5kZWYgTVAtQUxJUEFZIHx8IE1QLUJBSURVIHx8IE1QLVRPVVRJQU8gfHwgQVBQLVZVRVxyXG4gICAgY29uc3QgdGltZSA9IHRoaXMuaW5INSA/IDUwMCA6IDIwMDtcclxuICAgIGNvbnN0IF90aGlzID0gdGhpcztcclxuICAgIHVuaS5vbldpbmRvd1Jlc2l6ZShcclxuICAgICAgZGVib3VuY2UoZnVuY3Rpb24ocmVzKSB7XHJcbiAgICAgICAgaWYgKF90aGlzLm1peGluRGF0YWNvbUxvYWRpbmcgPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgZXJybXNnID0gX3RoaXMubWl4aW5EYXRhY29tRXJyb3JNZXNzYWdlO1xyXG4gICAgICAgIGlmIChlcnJtc2cgIT09IG51bGwgJiYgZXJybXNnICE9PSAnbnVsbCcgJiYgZXJybXNnICE9PSAnJykge1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoX3RoaXMuZWNoYXJ0cykge1xyXG4gICAgICAgICAgX3RoaXMuZWNoYXJ0c1Jlc2l6ZSA9ICFfdGhpcy5lY2hhcnRzUmVzaXplO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBfdGhpcy5yZXNpemVIYW5kbGVyKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LCB0aW1lKVxyXG4gICAgKTtcclxuICAgIC8vICNlbmRpZlxyXG4gIH0sXHJcbiAgZGVzdHJveWVkKCl7XHJcbiAgICBpZih0aGlzLmVjaGFydHMgPT09IHRydWUpe1xyXG4gICAgICBkZWxldGUgY2ZlLm9wdGlvblt0aGlzLmNpZF1cclxuICAgICAgZGVsZXRlIGNmZS5pbnN0YW5jZVt0aGlzLmNpZF1cclxuICAgIH1lbHNle1xyXG4gICAgICBkZWxldGUgY2Z1Lm9wdGlvblt0aGlzLmNpZF1cclxuICAgICAgZGVsZXRlIGNmdS5pbnN0YW5jZVt0aGlzLmNpZF1cclxuICAgIH1cclxuICAgIC8vICNpZm5kZWYgTVAtQUxJUEFZIHx8IE1QLUJBSURVIHx8IE1QLVRPVVRJQU9cclxuICAgIHVuaS5vZmZXaW5kb3dSZXNpemUoKCk9Pnt9KVxyXG4gICAgLy8gI2VuZGlmXHJcbiAgfSxcclxuICB3YXRjaDoge1xyXG4gICAgY2hhcnREYXRhUHJvcHM6IHtcclxuICAgICAgaGFuZGxlcih2YWwsIG9sZHZhbCkge1xyXG4gICAgICAgIGlmICh0eXBlb2YgdmFsID09PSAnb2JqZWN0Jykge1xyXG4gICAgICAgICAgaWYgKEpTT04uc3RyaW5naWZ5KHZhbCkgIT09IEpTT04uc3RyaW5naWZ5KG9sZHZhbCkpIHtcclxuICAgICAgICAgICAgaWYgKHZhbC5zZXJpZXMgJiYgdmFsLnNlcmllcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5iZWZvcmVJbml0KCk7XHJcbiAgICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICAgIHRoaXMubWl4aW5EYXRhY29tTG9hZGluZyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgdGhpcy5fY2xlYXJDaGFydCgpO1xyXG4gICAgICAgICAgICAgIHRoaXMuc2hvd2NoYXJ0ID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgdGhpcy5taXhpbkRhdGFjb21FcnJvck1lc3NhZ2UgPSBudWxsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubWl4aW5EYXRhY29tTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5fY2xlYXJDaGFydCgpO1xyXG4gICAgICAgICAgdGhpcy5zaG93Y2hhcnQgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMubWl4aW5EYXRhY29tRXJyb3JNZXNzYWdlID0gJ+WPguaVsOmUmeivr++8mmNoYXJ0RGF0YeaVsOaNruexu+Wei+mUmeivryc7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBpbW1lZGlhdGU6IGZhbHNlLFxyXG4gICAgICBkZWVwOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgbG9jYWxkYXRhOntcclxuICAgICAgaGFuZGxlcih2YWwsIG9sZHZhbCkge1xyXG4gICAgICAgIGlmIChKU09OLnN0cmluZ2lmeSh2YWwpICE9PSBKU09OLnN0cmluZ2lmeShvbGR2YWwpKSB7XHJcbiAgICAgICAgICBpZiAodmFsLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgdGhpcy5iZWZvcmVJbml0KCk7XHJcbiAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgdGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5fY2xlYXJDaGFydCgpO1xyXG4gICAgICAgICAgICB0aGlzLnNob3djaGFydCA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLm1peGluRGF0YWNvbUVycm9yTWVzc2FnZSA9IG51bGw7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBpbW1lZGlhdGU6IGZhbHNlLFxyXG4gICAgICBkZWVwOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgb3B0c1Byb3BzOiB7XHJcbiAgICAgIGhhbmRsZXIodmFsLCBvbGR2YWwpIHtcclxuICAgICAgICBpZiAodHlwZW9mIHZhbCA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgICAgIGlmIChKU09OLnN0cmluZ2lmeSh2YWwpICE9PSBKU09OLnN0cmluZ2lmeShvbGR2YWwpICYmIHRoaXMuZWNoYXJ0cyA9PT0gZmFsc2UpIHtcclxuICAgICAgICAgICAgdGhpcy5jaGVja0RhdGEodGhpcy5kcmF3RGF0YSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubWl4aW5EYXRhY29tTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5fY2xlYXJDaGFydCgpO1xyXG4gICAgICAgICAgdGhpcy5zaG93Y2hhcnQgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMubWl4aW5EYXRhY29tRXJyb3JNZXNzYWdlID0gJ+WPguaVsOmUmeivr++8mm9wdHPmlbDmja7nsbvlnovplJnor68nO1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgaW1tZWRpYXRlOiBmYWxzZSxcclxuICAgICAgZGVlcDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGVvcHRzUHJvcHM6IHtcclxuICAgICAgaGFuZGxlcih2YWwsIG9sZHZhbCkge1xyXG4gICAgICAgIGlmICh0eXBlb2YgdmFsID09PSAnb2JqZWN0Jykge1xyXG4gICAgICAgICAgaWYgKEpTT04uc3RyaW5naWZ5KHZhbCkgIT09IEpTT04uc3RyaW5naWZ5KG9sZHZhbCkgJiYgdGhpcy5lY2hhcnRzID09PSB0cnVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tEYXRhKHRoaXMuZHJhd0RhdGEpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLm1peGluRGF0YWNvbUxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuc2hvd2NoYXJ0ID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLm1peGluRGF0YWNvbUVycm9yTWVzc2FnZSA9ICflj4LmlbDplJnor6/vvJplb3B0c+aVsOaNruexu+Wei+mUmeivryc7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBpbW1lZGlhdGU6IGZhbHNlLFxyXG4gICAgICBkZWVwOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgcmVzaG93KHZhbCwgb2xkdmFsKSB7XHJcbiAgICAgIGlmICh2YWwgPT09IHRydWUgJiYgdGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID09PSBmYWxzZSkge1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5taXhpbkRhdGFjb21FcnJvck1lc3NhZ2UgPSBudWxsO1xyXG4gICAgICAgICAgdGhpcy5lY2hhcnRzUmVzaXplID0gIXRoaXMuZWNoYXJ0c1Jlc2l6ZTtcclxuICAgICAgICAgIHRoaXMuY2hlY2tEYXRhKHRoaXMuZHJhd0RhdGEpO1xyXG4gICAgICAgIH0sIDIwMCk7XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICByZWxvYWQodmFsLCBvbGR2YWwpIHtcclxuICAgICAgaWYgKHZhbCA9PT0gdHJ1ZSkge1xyXG4gICAgICAgIHRoaXMuc2hvd2NoYXJ0ID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5taXhpbkRhdGFjb21FcnJvck1lc3NhZ2UgPSBudWxsO1xyXG4gICAgICAgIHRoaXMucmVsb2FkaW5nKCk7XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBtaXhpbkRhdGFjb21FcnJvck1lc3NhZ2UodmFsLCBvbGR2YWwpIHtcclxuICAgICAgaWYgKHZhbCkge1xyXG4gICAgICAgIHRoaXMuZW1pdE1zZyh7bmFtZTogJ2Vycm9yJywgcGFyYW1zOiB7dHlwZTpcImVycm9yXCIsIGVycm9yU2hvdzogdGhpcy5lcnJvclNob3csIG1zZzogdmFsLCBpZDogdGhpcy5jaWR9fSk7XHJcbiAgICAgICAgaWYodGhpcy5lcnJvclNob3cpe1xyXG4gICAgICAgICAgY29uc29sZS5sb2coJ1vnp4vkupHlm77ooajnu4Tku7ZdJyArIHZhbCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgZXJyb3JNZXNzYWdlKHZhbCwgb2xkdmFsKSB7XHJcbiAgICAgIGlmICh2YWwgJiYgdGhpcy5lcnJvclNob3cgJiYgdmFsICE9PSBudWxsICYmIHZhbCAhPT0gJ251bGwnICYmIHZhbCAhPT0gJycpIHtcclxuICAgICAgICB0aGlzLnNob3djaGFydCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubWl4aW5EYXRhY29tTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubWl4aW5EYXRhY29tRXJyb3JNZXNzYWdlID0gdmFsO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc2hvd2NoYXJ0ID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5taXhpbkRhdGFjb21FcnJvck1lc3NhZ2UgPSBudWxsO1xyXG4gICAgICAgIHRoaXMucmVsb2FkaW5nKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9LFxyXG4gIGNvbXB1dGVkOiB7XHJcbiAgICBvcHRzUHJvcHMoKSB7XHJcbiAgICAgIHJldHVybiBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMub3B0cykpO1xyXG4gICAgfSxcclxuICAgIGVvcHRzUHJvcHMoKSB7XHJcbiAgICAgIHJldHVybiBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuZW9wdHMpKTtcclxuICAgIH0sXHJcbiAgICBjaGFydERhdGFQcm9wcygpIHtcclxuICAgICAgcmV0dXJuIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5jaGFydERhdGEpKTtcclxuICAgIH0sXHJcbiAgfSxcclxuICBtZXRob2RzOiB7XHJcbiAgICBiZWZvcmVJbml0KCl7XHJcbiAgICAgIHRoaXMubWl4aW5EYXRhY29tRXJyb3JNZXNzYWdlID0gbnVsbDtcclxuICAgICAgaWYgKHR5cGVvZiB0aGlzLmNoYXJ0RGF0YSA9PT0gJ29iamVjdCcgJiYgdGhpcy5jaGFydERhdGEgIT0gbnVsbCAmJiB0aGlzLmNoYXJ0RGF0YS5zZXJpZXMgIT09IHVuZGVmaW5lZCAmJiB0aGlzLmNoYXJ0RGF0YS5zZXJpZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIC8v5ou36LSd5LiA5LiLY2hhcnREYXRh77yM5Li65LqGb3B0c+WPmOabtOWQjue7n+S4gOaVsOaNruadpea6kFxyXG4gICAgICAgIHRoaXMuZHJhd0RhdGEgPSBkZWVwQ2xvbmVBc3NpZ24oe30sIHRoaXMuY2hhcnREYXRhKTtcclxuICAgICAgICB0aGlzLm1peGluRGF0YWNvbUxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnNob3djaGFydCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5jaGVja0RhdGEodGhpcy5jaGFydERhdGEpO1xyXG4gICAgICB9ZWxzZSBpZih0aGlzLmxvY2FsZGF0YS5sZW5ndGg+MCl7XHJcbiAgICAgICAgdGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zaG93Y2hhcnQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMubG9jYWxkYXRhSW5pdCh0aGlzLmxvY2FsZGF0YSk7XHJcbiAgICAgIH1lbHNlIGlmKHRoaXMuY29sbGVjdGlvbiAhPT0gJycpe1xyXG4gICAgICAgIHRoaXMubWl4aW5EYXRhY29tTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZ2V0Q2xvdWREYXRhKCk7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIHRoaXMubWl4aW5EYXRhY29tTG9hZGluZyA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBsb2NhbGRhdGFJbml0KHJlc2RhdGEpe1xyXG4gICAgICAvL+abv+aNomVudW3nsbvlnovkuLrmraPnoa7nmoTmj4/ov7BcclxuICAgICAgaWYodGhpcy5ncm91cEVudW0ubGVuZ3RoPjApe1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcmVzZGF0YS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCB0aGlzLmdyb3VwRW51bS5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICBpZihyZXNkYXRhW2ldLmdyb3VwID09PSB0aGlzLmdyb3VwRW51bVtqXS52YWx1ZSl7XHJcbiAgICAgICAgICAgICAgcmVzZGF0YVtpXS5ncm91cCA9IHRoaXMuZ3JvdXBFbnVtW2pdLnRleHRcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZih0aGlzLnRleHRFbnVtLmxlbmd0aD4wKXtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJlc2RhdGEubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgdGhpcy50ZXh0RW51bS5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICBpZihyZXNkYXRhW2ldLnRleHQgPT09IHRoaXMudGV4dEVudW1bal0udmFsdWUpe1xyXG4gICAgICAgICAgICAgIHJlc2RhdGFbaV0udGV4dCA9IHRoaXMudGV4dEVudW1bal0udGV4dFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGxldCBuZWVkQ2F0ZWdvcmllcyA9IGZhbHNlO1xyXG4gICAgICBsZXQgdG1wRGF0YSA9IHtjYXRlZ29yaWVzOltdLCBzZXJpZXM6W119XHJcbiAgICAgIGxldCB0bXBjYXRlZ29yaWVzID0gW11cclxuICAgICAgbGV0IHRtcHNlcmllcyA9IFtdO1xyXG4gICAgICAvL+aLvOaOpWNhdGVnb3JpZXNcclxuICAgICAgaWYodGhpcy5lY2hhcnRzID09PSB0cnVlKXtcclxuICAgICAgICBuZWVkQ2F0ZWdvcmllcyA9IGNmZS5jYXRlZ29yaWVzLmluY2x1ZGVzKHRoaXMudHlwZSlcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgbmVlZENhdGVnb3JpZXMgPSBjZnUuY2F0ZWdvcmllcy5pbmNsdWRlcyh0aGlzLnR5cGUpXHJcbiAgICAgIH1cclxuICAgICAgaWYobmVlZENhdGVnb3JpZXMgPT09IHRydWUpe1xyXG4gICAgICAgIC8v5aaC5p6ccHJvcHPkuK3nmoRjaGFydERhdGHluKbmnIljYXRlZ29yaWVz77yM5YiZ5LyY5YWI5L2/55SoY2hhcnREYXRh55qEY2F0ZWdvcmllc1xyXG4gICAgICAgIGlmKHRoaXMuY2hhcnREYXRhICYmIHRoaXMuY2hhcnREYXRhLmNhdGVnb3JpZXMgJiYgdGhpcy5jaGFydERhdGEuY2F0ZWdvcmllcy5sZW5ndGg+MCl7XHJcbiAgICAgICAgICB0bXBjYXRlZ29yaWVzID0gdGhpcy5jaGFydERhdGEuY2F0ZWdvcmllc1xyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgLy/lpoLmnpzmmK/ml6XmnJ/nsbvlnovnmoTmlbDmja7vvIzkuI3nrqHmmK/mnKzlnLDmlbDmja7ov5jmmK/kupHmlbDmja7vvIzpg73mjInotbfmraLml6XmnJ/oh6rliqjmi7zmjqVjYXRlZ29yaWVzXHJcbiAgICAgICAgICBpZih0aGlzLnN0YXJ0RGF0ZSAmJiB0aGlzLmVuZERhdGUpe1xyXG4gICAgICAgICAgICBsZXQgaWRhdGUgPSBuZXcgRGF0ZSh0aGlzLnN0YXJ0RGF0ZSlcclxuICAgICAgICAgICAgbGV0IGVkYXRlID0gbmV3IERhdGUodGhpcy5lbmREYXRlKVxyXG4gICAgICAgICAgICB3aGlsZSAoaWRhdGUgPD0gZWRhdGUpIHtcclxuICAgICAgICAgICAgXHR0bXBjYXRlZ29yaWVzLnB1c2goZ2V0Rm9ybWF0RGF0ZShpZGF0ZSkpXHJcbiAgICAgICAgICAgIFx0aWRhdGUgPSBpZGF0ZS5zZXREYXRlKGlkYXRlLmdldERhdGUoKSArIDEpXHJcbiAgICAgICAgICAgIFx0aWRhdGUgPSBuZXcgRGF0ZShpZGF0ZSlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgLy/lkKbliJnku47nu5PmnpzkuK3ljrvph43lubbmi7zmjqVjYXRlZ29yaWVzXHJcbiAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgbGV0IHRlbXBja2V5ID0ge307XHJcbiAgICAgICAgICAgIHJlc2RhdGEubWFwKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICAgICAgICAgICAgaWYgKGl0ZW0udGV4dCAhPSB1bmRlZmluZWQgJiYgIXRlbXBja2V5W2l0ZW0udGV4dF0pIHtcclxuICAgICAgICAgICAgICAgIHRtcGNhdGVnb3JpZXMucHVzaChpdGVtLnRleHQpXHJcbiAgICAgICAgICAgICAgICB0ZW1wY2tleVtpdGVtLnRleHRdID0gdHJ1ZVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRtcERhdGEuY2F0ZWdvcmllcyA9IHRtcGNhdGVnb3JpZXNcclxuICAgICAgfVxyXG4gICAgICAvL+aLvOaOpXNlcmllc1xyXG4gICAgICBsZXQgdGVtcHNrZXkgPSB7fTtcclxuICAgICAgcmVzZGF0YS5tYXAoZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgICAgICBpZiAoaXRlbS5ncm91cCAhPSB1bmRlZmluZWQgJiYgIXRlbXBza2V5W2l0ZW0uZ3JvdXBdKSB7XHJcbiAgICAgICAgICB0bXBzZXJpZXMucHVzaCh7IG5hbWU6IGl0ZW0uZ3JvdXAsIGRhdGE6IFtdIH0pO1xyXG4gICAgICAgICAgdGVtcHNrZXlbaXRlbS5ncm91cF0gPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIC8v5aaC5p6c5rKh5pyJ6I635Y+W5Yiw5YiG57uE5ZCN56ewKOWPr+iDveaYr+W4pmNhdGVnb3JpZXPnmoTmlbDmja7vvIzkuZ/lj6/og73mmK/kuI3luKbnmoTppbzlm77nsbspXHJcbiAgICAgIGlmICh0bXBzZXJpZXMubGVuZ3RoID09IDApIHtcclxuICAgICAgICB0bXBzZXJpZXMgPSBbeyBuYW1lOiAn6buY6K6k5YiG57uEJywgZGF0YTogW10gfV07XHJcbiAgICAgICAgLy/lpoLmnpzmmK/pnIDopoFjYXRlZ29yaWVz55qE5Zu+6KGo57G75Z6LXHJcbiAgICAgICAgaWYobmVlZENhdGVnb3JpZXMgPT09IHRydWUpe1xyXG4gICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCB0bXBjYXRlZ29yaWVzLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICAgIGxldCBzZXJpZXNkYXRhID0gMDtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCByZXNkYXRhLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgaWYgKHJlc2RhdGFbaV0udGV4dCA9PSB0bXBjYXRlZ29yaWVzW2pdKSB7XHJcbiAgICAgICAgICAgICAgICBzZXJpZXNkYXRhID0gcmVzZGF0YVtpXS52YWx1ZTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdG1wc2VyaWVzWzBdLmRhdGEucHVzaChzZXJpZXNkYXRhKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAvL+WmguaenOaYr+mlvOWbvuexu+eahOWbvuihqOexu+Wei1xyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCByZXNkYXRhLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIHRtcHNlcmllc1swXS5kYXRhLnB1c2goe1wibmFtZVwiOiByZXNkYXRhW2ldLnRleHQsXCJ2YWx1ZVwiOiByZXNkYXRhW2ldLnZhbHVlfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAvL+WmguaenOacieWIhue7hOWQjVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGZvciAobGV0IGsgPSAwOyBrIDwgdG1wc2VyaWVzLmxlbmd0aDsgaysrKSB7XHJcbiAgICAgICAgICAvL+WmguaenOaciWNhdGVnb3JpZXNcclxuICAgICAgICAgIGlmICh0bXBjYXRlZ29yaWVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCB0bXBjYXRlZ29yaWVzLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICAgICAgbGV0IHNlcmllc2RhdGEgPSAwO1xyXG4gICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcmVzZGF0YS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRtcHNlcmllc1trXS5uYW1lID09IHJlc2RhdGFbaV0uZ3JvdXAgJiYgcmVzZGF0YVtpXS50ZXh0ID09IHRtcGNhdGVnb3JpZXNbal0pIHtcclxuICAgICAgICAgICAgICAgICAgc2VyaWVzZGF0YSA9IHJlc2RhdGFbaV0udmFsdWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHRtcHNlcmllc1trXS5kYXRhLnB1c2goc2VyaWVzZGF0YSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIC8v5aaC5p6c5Lyg5LqGZ3JvdXDogIzmsqHmnInkvKB0ZXh077yM5Y2z5rKh5pyJY2F0ZWdvcmllc++8iOato+W4uOaDheWGteS4i+i/meenjeaVsOaNruaYr+S4jeespuWQiOaVsOaNruimgeaxguinhOiMg+eahO+8iVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCByZXNkYXRhLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgaWYgKHRtcHNlcmllc1trXS5uYW1lID09IHJlc2RhdGFbaV0uZ3JvdXApIHtcclxuICAgICAgICAgICAgICAgIHRtcHNlcmllc1trXS5kYXRhLnB1c2gocmVzZGF0YVtpXS52YWx1ZSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHRtcERhdGEuc2VyaWVzID0gdG1wc2VyaWVzXHJcbiAgICAgIC8v5ou36LSd5LiA5LiLY2hhcnREYXRh77yM5Li65LqGb3B0c+WPmOabtOWQjue7n+S4gOaVsOaNruadpea6kFxyXG4gICAgICB0aGlzLmRyYXdEYXRhID0gZGVlcENsb25lQXNzaWduKHt9LCB0bXBEYXRhKTtcclxuICAgICAgdGhpcy5jaGVja0RhdGEodG1wRGF0YSlcclxuICAgIH0sXHJcbiAgICByZWxvYWRpbmcoKSB7XHJcbiAgICAgIGlmKHRoaXMuZXJyb3JSZWxvYWQgPT09IGZhbHNlKXtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5zaG93Y2hhcnQgPSBmYWxzZTtcclxuICAgICAgdGhpcy5taXhpbkRhdGFjb21FcnJvck1lc3NhZ2UgPSBudWxsO1xyXG4gICAgICBpZiAodGhpcy5jb2xsZWN0aW9uICE9PSAnJykge1xyXG4gICAgICAgIHRoaXMubWl4aW5EYXRhY29tTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMub25NaXhpbkRhdGFjb21Qcm9wc0NoYW5nZSh0cnVlKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmJlZm9yZUluaXQoKTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIGNoZWNrRGF0YShhbnlEYXRhKSB7XHJcbiAgICAgIGxldCBjaWQgPSB0aGlzLmNpZFxyXG4gICAgICAvL+WkjeS9jW9wdHPmiJZlb3B0c1xyXG4gICAgICBpZih0aGlzLmVjaGFydHMgPT09IHRydWUpe1xyXG4gICAgICAgIGNmZS5vcHRpb25bY2lkXSA9IGRlZXBDbG9uZUFzc2lnbih7fSwgdGhpcy5lb3B0cyk7XHJcbiAgICAgICAgY2ZlLm9wdGlvbltjaWRdLmlkID0gY2lkO1xyXG4gICAgICAgIGNmZS5vcHRpb25bY2lkXS50eXBlID0gdGhpcy50eXBlO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICBpZiAodGhpcy50eXBlICYmIGNmdS50eXBlLmluY2x1ZGVzKHRoaXMudHlwZSkpIHtcclxuICAgICAgICAgIGNmdS5vcHRpb25bY2lkXSA9IGRlZXBDbG9uZUFzc2lnbih7fSwgY2Z1W3RoaXMudHlwZV0sIHRoaXMub3B0cyk7XHJcbiAgICAgICAgICBjZnUub3B0aW9uW2NpZF0uY2FudmFzSWQgPSBjaWQ7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubWl4aW5EYXRhY29tTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5zaG93Y2hhcnQgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMubWl4aW5EYXRhY29tRXJyb3JNZXNzYWdlID0gJ+WPguaVsOmUmeivr++8mnByb3Bz5Y+C5pWw5LitdHlwZeexu+Wei+S4jeato+ehric7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIC8v5oyC6L29Y2F0ZWdvcmllc+WSjHNlcmllc1xyXG4gICAgICBsZXQgbmV3RGF0YSA9IGRlZXBDbG9uZUFzc2lnbih7fSwgYW55RGF0YSk7XHJcbiAgICAgIGlmIChuZXdEYXRhLnNlcmllcyAhPT0gdW5kZWZpbmVkICYmIG5ld0RhdGEuc2VyaWVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICB0aGlzLm1peGluRGF0YWNvbUVycm9yTWVzc2FnZSA9IG51bGw7XHJcbiAgICAgICAgaWYgKHRoaXMuZWNoYXJ0cyA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgY2ZlLm9wdGlvbltjaWRdLmNoYXJ0RGF0YSA9IG5ld0RhdGE7XHJcbiAgICAgICAgICB0aGlzLiRuZXh0VGljaygoKT0+e1xyXG4gICAgICAgICAgICB0aGlzLmluaXQoKVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgIGNmdS5vcHRpb25bY2lkXS5jYXRlZ29yaWVzID0gbmV3RGF0YS5jYXRlZ29yaWVzO1xyXG4gICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLnNlcmllcyA9IG5ld0RhdGEuc2VyaWVzO1xyXG4gICAgICAgICAgdGhpcy4kbmV4dFRpY2soKCk9PntcclxuICAgICAgICAgICAgdGhpcy5pbml0KClcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgcmVzaXplSGFuZGxlcigpIHtcclxuICAgICAgLy/muLLmn5PpmLLmipZcclxuICAgICAgbGV0IGN1cnJUaW1lID0gRGF0ZS5ub3coKTtcclxuICAgICAgbGV0IGxhc3REcmF3VGltZSA9IHRoaXMubGFzdERyYXdUaW1lP3RoaXMubGFzdERyYXdUaW1lOmN1cnJUaW1lLTMwMDA7XHJcbiAgICAgIGxldCBkdXJhdGlvbiA9IGN1cnJUaW1lIC0gbGFzdERyYXdUaW1lO1xyXG4gICAgICBpZiAoZHVyYXRpb24gPCAxMDAwKSByZXR1cm47XHJcbiAgICAgIGxldCBjaGFydGRvbSA9IHVuaVxyXG4gICAgICAgIC5jcmVhdGVTZWxlY3RvclF1ZXJ5KClcclxuICAgICAgICAvLyAjaWZuZGVmIE1QLUFMSVBBWVxyXG4gICAgICAgIC5pbih0aGlzKVxyXG4gICAgICAgIC8vICNlbmRpZlxyXG4gICAgICAgIC5zZWxlY3QoJyNDaGFydEJveElkJyt0aGlzLmNpZClcclxuICAgICAgICAuYm91bmRpbmdDbGllbnRSZWN0KGRhdGEgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zaG93Y2hhcnQgPSB0cnVlO1xyXG4gICAgICAgICAgaWYgKGRhdGEud2lkdGggPiAwICYmIGRhdGEuaGVpZ2h0ID4gMCkge1xyXG4gICAgICAgICAgICBpZiAoZGF0YS53aWR0aCAhPT0gdGhpcy5jV2lkdGggfHwgZGF0YS5oZWlnaHQgIT09IHRoaXMuY0hlaWdodCkge1xyXG4gICAgICAgICAgICAgIHRoaXMuY2hlY2tEYXRhKHRoaXMuZHJhd0RhdGEpXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgICAgIC5leGVjKCk7XHJcbiAgICB9LFxyXG4gICAgZ2V0Q2xvdWREYXRhKCkge1xyXG4gICAgICBpZiAodGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID09IHRydWUpIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgdGhpcy5taXhpbkRhdGFjb21HZXQoKVxyXG4gICAgICAgIC50aGVuKHJlcyA9PiB7XHJcbiAgICAgICAgICB0aGlzLm1peGluRGF0YWNvbVJlc0RhdGEgPSByZXMucmVzdWx0LmRhdGE7XHJcbiAgICAgICAgICB0aGlzLmxvY2FsZGF0YUluaXQodGhpcy5taXhpbkRhdGFjb21SZXNEYXRhKTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaChlcnIgPT4ge1xyXG4gICAgICAgICAgdGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnNob3djaGFydCA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5taXhpbkRhdGFjb21FcnJvck1lc3NhZ2UgPSAn6K+35rGC6ZSZ6K+v77yaJyArIGVycjtcclxuICAgICAgICB9KTtcclxuICAgIH0sXHJcbiAgICBvbk1peGluRGF0YWNvbVByb3BzQ2hhbmdlKG5lZWRSZXNldCwgY2hhbmdlZCkge1xyXG4gICAgICBpZiAobmVlZFJlc2V0ID09IHRydWUgJiYgdGhpcy5jb2xsZWN0aW9uICE9PSAnJykge1xyXG4gICAgICAgIHRoaXMuc2hvd2NoYXJ0ID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5taXhpbkRhdGFjb21FcnJvck1lc3NhZ2UgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuX2NsZWFyQ2hhcnQoKTtcclxuICAgICAgICB0aGlzLmdldENsb3VkRGF0YSgpO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgX2NsZWFyQ2hhcnQoKSB7XHJcbiAgICAgIGxldCBjaWQgPSB0aGlzLmNpZFxyXG4gICAgICBpZiAodGhpcy5lY2hydHMgIT09IHRydWUpIHtcclxuICAgICAgICBjb25zdCBjdHggPSB1bmkuY3JlYXRlQ2FudmFzQ29udGV4dChjaWQsIHRoaXMpO1xyXG4gICAgICAgIGN0eC5jbGVhclJlY3QoMCwgMCwgdGhpcy5jV2lkdGgsIHRoaXMuY0hlaWdodCk7XHJcbiAgICAgICAgY3R4LmRyYXcoKTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIGluaXQoKSB7XHJcbiAgICAgIGxldCBjaWQgPSB0aGlzLmNpZFxyXG4gICAgICBsZXQgY2hhcnRkb20gPSB1bmlcclxuICAgICAgICAuY3JlYXRlU2VsZWN0b3JRdWVyeSgpXHJcbiAgICAgICAgLy8gI2lmbmRlZiBNUC1BTElQQVlcclxuICAgICAgICAuaW4odGhpcylcclxuICAgICAgICAvLyAjZW5kaWZcclxuICAgICAgICAuc2VsZWN0KCcjQ2hhcnRCb3hJZCcrY2lkKVxyXG4gICAgICAgIC5ib3VuZGluZ0NsaWVudFJlY3QoZGF0YSA9PiB7XHJcbiAgICAgICAgICBpZiAoZGF0YS53aWR0aCA+IDAgJiYgZGF0YS5oZWlnaHQgPiAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMubWl4aW5EYXRhY29tTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLnNob3djaGFydCA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMubGFzdERyYXdUaW1lID0gRGF0ZS5ub3coKTtcclxuICAgICAgICAgICAgdGhpcy5jV2lkdGggPSBkYXRhLndpZHRoO1xyXG4gICAgICAgICAgICB0aGlzLmNIZWlnaHQgPSBkYXRhLmhlaWdodDtcclxuICAgICAgICAgICAgaWYodGhpcy5lY2hhcnRzICE9PSB0cnVlKXtcclxuICAgICAgICAgICAgICBjZnUub3B0aW9uW2NpZF0uYmFja2dyb3VuZCA9IHRoaXMuYmFja2dyb3VuZCA9PSAncmdiYSgwLDAsMCwwKScgPyAnI0ZGRkZGRicgOiB0aGlzLmJhY2tncm91bmQ7XHJcbiAgICAgICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLmNhbnZhczJkID0gdGhpcy50eXBlMmQ7XHJcbiAgICAgICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLnBpeGVsUmF0aW8gPSB0aGlzLnBpeGVsO1xyXG4gICAgICAgICAgICAgIGNmdS5vcHRpb25bY2lkXS5hbmltYXRpb24gPSB0aGlzLmFuaW1hdGlvbjtcclxuICAgICAgICAgICAgICBjZnUub3B0aW9uW2NpZF0ud2lkdGggPSBkYXRhLndpZHRoICogdGhpcy5waXhlbDtcclxuICAgICAgICAgICAgICBjZnUub3B0aW9uW2NpZF0uaGVpZ2h0ID0gZGF0YS5oZWlnaHQgKiB0aGlzLnBpeGVsO1xyXG4gICAgICAgICAgICAgIGNmdS5vcHRpb25bY2lkXS5vbnRhcCA9IHRoaXMub250YXA7XHJcbiAgICAgICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLm9udG91Y2ggPSB0aGlzLm9udG91Y2g7XHJcbiAgICAgICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLm9ubW91c2UgPSB0aGlzLm9wZW5tb3VzZTtcclxuICAgICAgICAgICAgICBjZnUub3B0aW9uW2NpZF0ub25tb3ZldGlwID0gdGhpcy5vbm1vdmV0aXA7XHJcbiAgICAgICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLnRvb2x0aXBTaG93ID0gdGhpcy50b29sdGlwU2hvdztcclxuICAgICAgICAgICAgICBjZnUub3B0aW9uW2NpZF0udG9vbHRpcEZvcm1hdCA9IHRoaXMudG9vbHRpcEZvcm1hdDtcclxuICAgICAgICAgICAgICBjZnUub3B0aW9uW2NpZF0udG9vbHRpcEN1c3RvbSA9IHRoaXMudG9vbHRpcEN1c3RvbTtcclxuICAgICAgICAgICAgICBjZnUub3B0aW9uW2NpZF0uaW5TY3JvbGxWaWV3ID0gdGhpcy5pblNjcm9sbFZpZXc7XHJcbiAgICAgICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLmxhc3REcmF3VGltZSA9IHRoaXMubGFzdERyYXdUaW1lO1xyXG4gICAgICAgICAgICAgIGNmdS5vcHRpb25bY2lkXS50YXBMZWdlbmQgPSB0aGlzLnRhcExlZ2VuZDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvL+WmguaenOaYr0g15oiW6ICFQXBw56uv77yM6YeH55SocmVuZGVyanPmuLLmn5Plm77ooahcclxuICAgICAgICAgICAgaWYgKHRoaXMuaW5INSB8fCB0aGlzLmluQXBwKSB7XHJcbiAgICAgICAgICAgICAgaWYgKHRoaXMuZWNoYXJ0cyA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgICBjZmUub3B0aW9uW2NpZF0ub250YXAgPSB0aGlzLm9udGFwO1xyXG4gICAgICAgICAgICAgICAgY2ZlLm9wdGlvbltjaWRdLm9ubW91c2UgPSB0aGlzLm9wZW5tb3VzZTtcclxuICAgICAgICAgICAgICAgIGNmZS5vcHRpb25bY2lkXS50b29sdGlwU2hvdyA9IHRoaXMudG9vbHRpcFNob3c7XHJcbiAgICAgICAgICAgICAgICBjZmUub3B0aW9uW2NpZF0udG9vbHRpcEZvcm1hdCA9IHRoaXMudG9vbHRpcEZvcm1hdDtcclxuICAgICAgICAgICAgICAgIGNmZS5vcHRpb25bY2lkXS50b29sdGlwQ3VzdG9tID0gdGhpcy50b29sdGlwQ3VzdG9tO1xyXG4gICAgICAgICAgICAgICAgY2ZlLm9wdGlvbltjaWRdLmxhc3REcmF3VGltZSA9IHRoaXMubGFzdERyYXdUaW1lO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5lY2hhcnRzT3B0cyA9IGRlZXBDbG9uZUFzc2lnbih7fSwgY2ZlLm9wdGlvbltjaWRdKTtcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLnJvdGF0ZUxvY2sgPSBjZnUub3B0aW9uW2NpZF0ucm90YXRlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy51Y2hhcnRzT3B0cyA9IGRlZXBDbG9uZUFzc2lnbih7fSwgY2Z1Lm9wdGlvbltjaWRdKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8v5aaC5p6c5piv5bCP56iL5bqP56uv77yM6YeH55SodUNoYXJ0c+a4suafk1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIGNmdS5vcHRpb25bY2lkXSA9IGZvcm1hdHRlckFzc2lnbihjZnUub3B0aW9uW2NpZF0sY2Z1LmZvcm1hdHRlcilcclxuICAgICAgICAgICAgICB0aGlzLm1peGluRGF0YWNvbUVycm9yTWVzc2FnZSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgdGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgdGhpcy5zaG93Y2hhcnQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIHRoaXMuJG5leHRUaWNrKCgpPT57XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy50eXBlMmQgPT09IHRydWUpIHtcclxuICAgICAgICAgICAgICAgICAgY29uc3QgcXVlcnkgPSB1bmkuY3JlYXRlU2VsZWN0b3JRdWVyeSgpLmluKHRoaXMpXHJcbiAgICAgICAgICAgICAgICAgIHF1ZXJ5XHJcbiAgICAgICAgICAgICAgICAgICAgLnNlbGVjdCgnIycgKyBjaWQpXHJcbiAgICAgICAgICAgICAgICAgICAgLmZpZWxkcyh7IG5vZGU6IHRydWUsIHNpemU6IHRydWUgfSlcclxuICAgICAgICAgICAgICAgICAgICAuZXhlYyhyZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc1swXSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjYW52YXMgPSByZXNbMF0ubm9kZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNmdS5vcHRpb25bY2lkXS5jb250ZXh0ID0gY3R4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYW52YXMud2lkdGggPSBkYXRhLndpZHRoICogdGhpcy5waXhlbDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FudmFzLmhlaWdodCA9IGRhdGEuaGVpZ2h0ICogdGhpcy5waXhlbDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FudmFzLl93aWR0aCA9IGRhdGEud2lkdGggKiB0aGlzLnBpeGVsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYW52YXMuX2hlaWdodCA9IGRhdGEuaGVpZ2h0ICogdGhpcy5waXhlbDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLnJvdGF0ZUxvY2sgPSBjZnUub3B0aW9uW2NpZF0ucm90YXRlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZihjZnUuaW5zdGFuY2VbY2lkXSAmJiBjZnUub3B0aW9uW2NpZF0gJiYgY2Z1Lm9wdGlvbltjaWRdLnVwZGF0ZSA9PT0gdHJ1ZSl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fdXBkYXRhVUNoYXJ0KGNpZClcclxuICAgICAgICAgICAgICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKT0+e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLmNvbnRleHQucmVzdG9yZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLmNvbnRleHQuc2F2ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fbmV3Q2hhcnQoY2lkKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sMTAwKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNob3djaGFydCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1peGluRGF0YWNvbUVycm9yTWVzc2FnZSA9ICflj4LmlbDplJnor6/vvJrlvIDlkK8yZOaooeW8j+WQju+8jOacquiOt+WPluWIsGRvbeiKgueCue+8jGNhbnZhcy1pZDonICsgY2lkO1xyXG4gICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgaWYodGhpcy5pbkFsaSl7XHJcbiAgICAgICAgICAgICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLnJvdGF0ZUxvY2sgPSBjZnUub3B0aW9uW2NpZF0ucm90YXRlO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIGNmdS5vcHRpb25bY2lkXS5jb250ZXh0ID0gdW5pLmNyZWF0ZUNhbnZhc0NvbnRleHQoY2lkLCB0aGlzKTtcclxuICAgICAgICAgICAgICAgICAgaWYoY2Z1Lmluc3RhbmNlW2NpZF0gJiYgY2Z1Lm9wdGlvbltjaWRdICYmIGNmdS5vcHRpb25bY2lkXS51cGRhdGUgPT09IHRydWUpe1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3VwZGF0YVVDaGFydChjaWQpXHJcbiAgICAgICAgICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCk9PntcclxuICAgICAgICAgICAgICAgICAgICAgIGNmdS5vcHRpb25bY2lkXS5jb250ZXh0LnJlc3RvcmUoKTtcclxuICAgICAgICAgICAgICAgICAgICAgIGNmdS5vcHRpb25bY2lkXS5jb250ZXh0LnNhdmUoKTtcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX25ld0NoYXJ0KGNpZClcclxuICAgICAgICAgICAgICAgICAgICB9LDEwMClcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMubWl4aW5EYXRhY29tTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLnNob3djaGFydCA9IGZhbHNlO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5yZXNob3cgPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAgIHRoaXMubWl4aW5EYXRhY29tRXJyb3JNZXNzYWdlID0gJ+W4g+WxgOmUmeivr++8muacquiOt+WPluWIsOeItuWFg+e0oOWuvemrmOWwuuWvuO+8gWNhbnZhcy1pZDonICsgY2lkO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuZXhlYygpO1xyXG4gICAgfSxcclxuICAgIHNhdmVJbWFnZSgpe1xyXG4gICAgXHR1bmkuY2FudmFzVG9UZW1wRmlsZVBhdGgoe1xyXG4gICAgXHQgIGNhbnZhc0lkOiB0aGlzLmNpZCxcclxuICAgIFx0ICBzdWNjZXNzOiByZXM9PntcclxuICAgIFx0ICAgIC8vI2lmZGVmIEg1XHJcbiAgICBcdFx0XHR2YXIgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJhXCIpO1xyXG4gICAgXHRcdFx0YS5ocmVmID0gcmVzLnRlbXBGaWxlUGF0aDtcclxuICAgIFx0XHRcdGEuZG93bmxvYWQgPSB0aGlzLmNpZDtcclxuICAgIFx0XHRcdGEudGFyZ2V0ID0gJ19ibGFuaydcclxuICAgIFx0XHRcdGEuY2xpY2soKTtcclxuICAgIFx0ICAgIC8vI2VuZGlmXHJcbiAgICBcdCAgICAvLyNpZm5kZWYgSDVcclxuICAgIFx0ICAgICAgdW5pLnNhdmVJbWFnZVRvUGhvdG9zQWxidW0oe1xyXG4gICAgXHQgICAgICAgICAgZmlsZVBhdGg6IHJlcy50ZW1wRmlsZVBhdGgsXHJcbiAgICBcdCAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbiAoKSB7XHJcbiAgICBcdCAgICAgICAgICAgICAgdW5pLnNob3dUb2FzdCh7XHJcbiAgICBcdCAgICAgICAgICAgICAgICAgIHRpdGxlOiAn5L+d5a2Y5oiQ5YqfJyxcclxuICAgIFx0ICAgICAgICAgICAgICAgICAgZHVyYXRpb246IDIwMDBcclxuICAgIFx0ICAgICAgICAgICAgICB9KTtcclxuICAgIFx0ICAgICAgICAgIH1cclxuICAgIFx0ICAgICAgfSk7XHJcbiAgICBcdCAgICAvLyNlbmRpZlxyXG4gICAgXHQgIH0gXHJcbiAgICBcdH0sdGhpcyk7XHJcbiAgICB9LFxyXG4gICAgLy8gI2lmbmRlZiBBUFAtVlVFIHx8IEg1XHJcbiAgICBfbmV3Q2hhcnQoY2lkKSB7XHJcbiAgICAgIGlmICh0aGlzLm1peGluRGF0YWNvbUxvYWRpbmcgPT0gdHJ1ZSkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnNob3djaGFydCA9IHRydWU7XHJcbiAgICAgIGNmdS5pbnN0YW5jZVtjaWRdID0gbmV3IHVDaGFydHMoY2Z1Lm9wdGlvbltjaWRdKTtcclxuICAgICAgY2Z1Lmluc3RhbmNlW2NpZF0uYWRkRXZlbnRMaXN0ZW5lcigncmVuZGVyQ29tcGxldGUnLCAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5lbWl0TXNnKHtuYW1lOiAnY29tcGxldGUnLCBwYXJhbXM6IHt0eXBlOlwiY29tcGxldGVcIiwgY29tcGxldGU6IHRydWUsIGlkOiBjaWR9fSk7XHJcbiAgICAgICAgY2Z1Lmluc3RhbmNlW2NpZF0uZGVsRXZlbnRMaXN0ZW5lcigncmVuZGVyQ29tcGxldGUnKVxyXG4gICAgICB9KTtcclxuICAgICAgY2Z1Lmluc3RhbmNlW2NpZF0uYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsTGVmdCcsICgpID0+IHtcclxuICAgICAgICB0aGlzLmVtaXRNc2coe25hbWU6ICdzY3JvbGxMZWZ0JywgcGFyYW1zOiB7dHlwZTpcInNjcm9sbExlZnRcIiwgc2Nyb2xsTGVmdDogdHJ1ZSwgaWQ6IGNpZH19KTtcclxuICAgICAgfSk7XHJcbiAgICAgIGNmdS5pbnN0YW5jZVtjaWRdLmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbFJpZ2h0JywgKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuZW1pdE1zZyh7bmFtZTogJ3Njcm9sbFJpZ2h0JywgcGFyYW1zOiB7dHlwZTpcInNjcm9sbFJpZ2h0XCIsIHNjcm9sbFJpZ2h0OiB0cnVlLCBpZDogY2lkfX0pO1xyXG4gICAgICB9KTtcclxuICAgIH0sXHJcbiAgICBfdXBkYXRhVUNoYXJ0KGNpZCkge1xyXG4gICAgICBjZnUuaW5zdGFuY2VbY2lkXS51cGRhdGVEYXRhKGNmdS5vcHRpb25bY2lkXSlcclxuICAgIH0sXHJcbiAgICBfdG9vbHRpcERlZmF1bHQoaXRlbSwgY2F0ZWdvcnksIGluZGV4LCBvcHRzKSB7XHJcbiAgICAgIGlmIChjYXRlZ29yeSkge1xyXG4gICAgICAgIGxldCBkYXRhID0gaXRlbS5kYXRhXHJcbiAgICAgICAgaWYodHlwZW9mIGl0ZW0uZGF0YSA9PT0gXCJvYmplY3RcIil7XHJcbiAgICAgICAgICBkYXRhID0gaXRlbS5kYXRhLnZhbHVlXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBjYXRlZ29yeSArICcgJyArIGl0ZW0ubmFtZSArICc6JyArIGRhdGE7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKGl0ZW0ucHJvcGVydGllcyAmJiBpdGVtLnByb3BlcnRpZXMubmFtZSkge1xyXG4gICAgICAgICAgcmV0dXJuIGl0ZW0ucHJvcGVydGllcy5uYW1lO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXR1cm4gaXRlbS5uYW1lICsgJzonICsgaXRlbS5kYXRhO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIF9zaG93VG9vbHRpcChlKSB7XHJcbiAgICAgIGxldCBjaWQgPSB0aGlzLmNpZFxyXG4gICAgICBsZXQgdGMgPSBjZnUub3B0aW9uW2NpZF0udG9vbHRpcEN1c3RvbVxyXG4gICAgICBpZiAodGMgJiYgdGMgIT09IHVuZGVmaW5lZCAmJiB0YyAhPT0gbnVsbCkge1xyXG4gICAgICAgIGxldCBvZmZzZXQgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgaWYgKHRjLnggPj0gMCAmJiB0Yy55ID49IDApIHtcclxuICAgICAgICAgIG9mZnNldCA9IHsgeDogdGMueCwgeTogdGMueSArIDEwIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNmdS5pbnN0YW5jZVtjaWRdLnNob3dUb29sVGlwKGUsIHtcclxuICAgICAgICAgIGluZGV4OiB0Yy5pbmRleCxcclxuICAgICAgICAgIG9mZnNldDogb2Zmc2V0LFxyXG4gICAgICAgICAgdGV4dExpc3Q6IHRjLnRleHRMaXN0LFxyXG4gICAgICAgICAgZm9ybWF0dGVyOiAoaXRlbSwgY2F0ZWdvcnksIGluZGV4LCBvcHRzKSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY2Z1Lm9wdGlvbltjaWRdLnRvb2x0aXBGb3JtYXQgPT09ICdzdHJpbmcnICYmIGNmdS5mb3JtYXR0ZXJbY2Z1Lm9wdGlvbltjaWRdLnRvb2x0aXBGb3JtYXRdKSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIGNmdS5mb3JtYXR0ZXJbY2Z1Lm9wdGlvbltjaWRdLnRvb2x0aXBGb3JtYXRdKGl0ZW0sIGNhdGVnb3J5LCBpbmRleCwgb3B0cyk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3Rvb2x0aXBEZWZhdWx0KGl0ZW0sIGNhdGVnb3J5LCBpbmRleCwgb3B0cyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjZnUuaW5zdGFuY2VbY2lkXS5zaG93VG9vbFRpcChlLCB7XHJcbiAgICAgICAgICBmb3JtYXR0ZXI6IChpdGVtLCBjYXRlZ29yeSwgaW5kZXgsIG9wdHMpID0+IHtcclxuICAgICAgICAgICAgaWYgKHR5cGVvZiBjZnUub3B0aW9uW2NpZF0udG9vbHRpcEZvcm1hdCA9PT0gJ3N0cmluZycgJiYgY2Z1LmZvcm1hdHRlcltjZnUub3B0aW9uW2NpZF0udG9vbHRpcEZvcm1hdF0pIHtcclxuICAgICAgICAgICAgICByZXR1cm4gY2Z1LmZvcm1hdHRlcltjZnUub3B0aW9uW2NpZF0udG9vbHRpcEZvcm1hdF0oaXRlbSwgY2F0ZWdvcnksIGluZGV4LCBvcHRzKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fdG9vbHRpcERlZmF1bHQoaXRlbSwgY2F0ZWdvcnksIGluZGV4LCBvcHRzKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgX3RhcChlLG1vdmUpIHtcclxuICAgICAgbGV0IGNpZCA9IHRoaXMuY2lkXHJcbiAgICAgIGxldCBjdXJyZW50SW5kZXggPSBudWxsO1xyXG4gICAgICBsZXQgbGVnZW5kSW5kZXggPSBudWxsO1xyXG4gICAgICBpZiAodGhpcy5pblNjcm9sbFZpZXcgPT09IHRydWUgfHwgdGhpcy5pbkFsaSkge1xyXG4gICAgICAgIGxldCBjaGFydGRvbSA9IHVuaVxyXG4gICAgICAgICAgLmNyZWF0ZVNlbGVjdG9yUXVlcnkoKVxyXG4gICAgICAgICAgLy8gI2lmbmRlZiBNUC1BTElQQVlcclxuICAgICAgICAgIC5pbih0aGlzKVxyXG4gICAgICAgICAgLnNlbGVjdCgnI0NoYXJ0Qm94SWQnK2NpZClcclxuICAgICAgICAgIC8vICNlbmRpZlxyXG4gICAgICAgICAgLy8gI2lmZGVmIE1QLUFMSVBBWVxyXG4gICAgICAgICAgLnNlbGVjdCgnIycrdGhpcy5jaWQpXHJcbiAgICAgICAgICAvLyAjZW5kaWZcclxuICAgICAgICAgIC5ib3VuZGluZ0NsaWVudFJlY3QoZGF0YSA9PiB7XHJcbiAgICAgICAgICAgIGUuY2hhbmdlZFRvdWNoZXM9W107XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmluQWxpKSB7XHJcbiAgICAgICAgICAgICAgZS5jaGFuZ2VkVG91Y2hlcy51bnNoaWZ0KHsgeDogZS5kZXRhaWwuY2xpZW50WCAtIGRhdGEubGVmdCwgeTogZS5kZXRhaWwuY2xpZW50WSAtIGRhdGEudG9wfSk7XHJcbiAgICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICAgIGUuY2hhbmdlZFRvdWNoZXMudW5zaGlmdCh7IHg6IGUuZGV0YWlsLnggLSBkYXRhLmxlZnQsIHk6IGUuZGV0YWlsLnkgLSBkYXRhLnRvcCAtIHRoaXMucGFnZVNjcm9sbFRvcH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmKG1vdmUpe1xyXG4gICAgICAgICAgICAgIGlmICh0aGlzLnRvb2x0aXBTaG93ID09PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9zaG93VG9vbHRpcChlKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICAgIGN1cnJlbnRJbmRleCA9IGNmdS5pbnN0YW5jZVtjaWRdLmdldEN1cnJlbnREYXRhSW5kZXgoZSk7XHJcbiAgICAgICAgICAgICAgbGVnZW5kSW5kZXggPSBjZnUuaW5zdGFuY2VbY2lkXS5nZXRMZWdlbmREYXRhSW5kZXgoZSk7XHJcbiAgICAgICAgICAgICAgaWYodGhpcy50YXBMZWdlbmQgPT09IHRydWUpe1xyXG4gICAgICAgICAgICAgICAgY2Z1Lmluc3RhbmNlW2NpZF0udG91Y2hMZWdlbmQoZSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGlmICh0aGlzLnRvb2x0aXBTaG93ID09PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9zaG93VG9vbHRpcChlKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgdGhpcy5lbWl0TXNnKHtuYW1lOiAnZ2V0SW5kZXgnLCBwYXJhbXM6IHsgdHlwZTpcImdldEluZGV4XCIsIGV2ZW50OnsgeDogZS5kZXRhaWwueCAtIGRhdGEubGVmdCwgeTogZS5kZXRhaWwueSAtIGRhdGEudG9wIH0sIGN1cnJlbnRJbmRleDogY3VycmVudEluZGV4LCBsZWdlbmRJbmRleDogbGVnZW5kSW5kZXgsIGlkOiBjaWQsIG9wdHM6IGNmdS5pbnN0YW5jZVtjaWRdLm9wdHN9fSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgICAuZXhlYygpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmKG1vdmUpe1xyXG4gICAgICAgICAgaWYgKHRoaXMudG9vbHRpcFNob3cgPT09IHRydWUpIHtcclxuICAgICAgICAgICAgdGhpcy5fc2hvd1Rvb2x0aXAoZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICBlLmNoYW5nZWRUb3VjaGVzPVtdO1xyXG4gICAgICAgICAgZS5jaGFuZ2VkVG91Y2hlcy51bnNoaWZ0KHsgeDogZS5kZXRhaWwueCAtIGUuY3VycmVudFRhcmdldC5vZmZzZXRMZWZ0LCB5OiBlLmRldGFpbC55IC0gZS5jdXJyZW50VGFyZ2V0Lm9mZnNldFRvcCB9KTtcclxuICAgICAgICAgIGN1cnJlbnRJbmRleCA9IGNmdS5pbnN0YW5jZVtjaWRdLmdldEN1cnJlbnREYXRhSW5kZXgoZSk7XHJcbiAgICAgICAgICBsZWdlbmRJbmRleCA9IGNmdS5pbnN0YW5jZVtjaWRdLmdldExlZ2VuZERhdGFJbmRleChlKTtcclxuICAgICAgICAgIGlmKHRoaXMudGFwTGVnZW5kID09PSB0cnVlKXtcclxuICAgICAgICAgICAgY2Z1Lmluc3RhbmNlW2NpZF0udG91Y2hMZWdlbmQoZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAodGhpcy50b29sdGlwU2hvdyA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLl9zaG93VG9vbHRpcChlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuZW1pdE1zZyh7bmFtZTogJ2dldEluZGV4JywgcGFyYW1zOiB7dHlwZTpcImdldEluZGV4XCIsIGV2ZW50OnsgeDogZS5kZXRhaWwueCwgeTogZS5kZXRhaWwueSAtIGUuY3VycmVudFRhcmdldC5vZmZzZXRUb3AgfSwgY3VycmVudEluZGV4OiBjdXJyZW50SW5kZXgsIGxlZ2VuZEluZGV4OiBsZWdlbmRJbmRleCwgaWQ6IGNpZCwgb3B0czogY2Z1Lmluc3RhbmNlW2NpZF0ub3B0c319KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBfdG91Y2hTdGFydChlKSB7XHJcbiAgICAgIGxldCBjaWQgPSB0aGlzLmNpZFxyXG4gICAgICBsYXN0TW92ZVRpbWU9RGF0ZS5ub3coKTtcclxuICAgICAgaWYoY2Z1Lm9wdGlvbltjaWRdLmVuYWJsZVNjcm9sbCA9PT0gdHJ1ZSl7XHJcbiAgICAgICAgY2Z1Lmluc3RhbmNlW2NpZF0uc2Nyb2xsU3RhcnQoZSk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5lbWl0TXNnKHtuYW1lOidnZXRUb3VjaFN0YXJ0JywgcGFyYW1zOnt0eXBlOlwidG91Y2hTdGFydFwiLCBldmVudDplLmNoYW5nZWRUb3VjaGVzWzBdLCBpZDpjaWR9fSk7XHJcbiAgICB9LFxyXG4gICAgX3RvdWNoTW92ZShlKSB7XHJcbiAgICAgIGxldCBjaWQgPSB0aGlzLmNpZFxyXG4gICAgICBsZXQgY3Vyck1vdmVUaW1lID0gRGF0ZS5ub3coKTtcclxuICAgICAgbGV0IGR1cmF0aW9uID0gY3Vyck1vdmVUaW1lIC0gbGFzdE1vdmVUaW1lO1xyXG4gICAgICBpZiAoZHVyYXRpb24gPCBNYXRoLmZsb29yKDEwMDAgLyA2MCkpIHJldHVybjsvL+avj+enkjYw5binXHJcbiAgICAgIGxhc3RNb3ZlVGltZSA9IGN1cnJNb3ZlVGltZTtcclxuICAgICAgaWYoY2Z1Lm9wdGlvbltjaWRdLmVuYWJsZVNjcm9sbCA9PT0gdHJ1ZSl7XHJcbiAgICAgICAgY2Z1Lmluc3RhbmNlW2NpZF0uc2Nyb2xsKGUpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuZW1pdE1zZyh7bmFtZTogJ2dldFRvdWNoTW92ZScsIHBhcmFtczoge3R5cGU6XCJ0b3VjaE1vdmVcIiwgZXZlbnQ6ZS5jaGFuZ2VkVG91Y2hlc1swXSwgaWQ6IGNpZH19KTtcclxuICAgICAgaWYodGhpcy5vbnRhcCA9PT0gdHJ1ZSAmJiBjZnUub3B0aW9uW2NpZF0uZW5hYmxlU2Nyb2xsID09PSBmYWxzZSAmJiB0aGlzLm9ubW92ZXRpcCA9PT0gdHJ1ZSl7XHJcbiAgICAgICAgdGhpcy5fdGFwKGUsdHJ1ZSlcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIF90b3VjaEVuZChlKSB7XHJcbiAgICAgIGxldCBjaWQgPSB0aGlzLmNpZFxyXG4gICAgICBpZihjZnUub3B0aW9uW2NpZF0uZW5hYmxlU2Nyb2xsID09PSB0cnVlKXtcclxuICAgICAgICBjZnUuaW5zdGFuY2VbY2lkXS5zY3JvbGxFbmQoZSk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5lbWl0TXNnKHtuYW1lOidnZXRUb3VjaEVuZCcsIHBhcmFtczp7dHlwZTpcInRvdWNoRW5kXCIsIGV2ZW50OmUuY2hhbmdlZFRvdWNoZXNbMF0sIGlkOmNpZH19KTtcclxuICAgICAgaWYodGhpcy5vbnRhcCA9PT0gdHJ1ZSAmJiBjZnUub3B0aW9uW2NpZF0uZW5hYmxlU2Nyb2xsID09PSBmYWxzZSAmJiB0aGlzLm9ubW92ZXRpcCA9PT0gdHJ1ZSl7XHJcbiAgICAgICAgdGhpcy5fdGFwKGUsdHJ1ZSlcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIC8vICNlbmRpZlxyXG4gICAgX2Vycm9yKGUpIHtcclxuICAgICAgdGhpcy5taXhpbkRhdGFjb21FcnJvck1lc3NhZ2UgPSBlLmRldGFpbC5lcnJNc2c7XHJcbiAgICB9LFxyXG4gICAgZW1pdE1zZyhtc2cpIHtcclxuICAgICAgdGhpcy4kZW1pdChtc2cubmFtZSwgbXNnLnBhcmFtcyk7XHJcbiAgICB9LFxyXG4gICAgZ2V0UmVuZGVyVHlwZSgpIHtcclxuICAgICAgLy/pmLLmraLlpoLmnpzlvIDlkK9lY2hhcnRz5LiU54i25YWD57Sg5Li6di1pZueahOaDheWGtXJlbmRlcmpz55uR5ZCs5LiN5YiwcHJvcOWPmOWMlueahOmXrumimFxyXG4gICAgICBpZih0aGlzLmVjaGFydHM9PT10cnVlICYmIHRoaXMubWl4aW5EYXRhY29tTG9hZGluZz09PWZhbHNlKXtcclxuICAgICAgICB0aGlzLmJlZm9yZUluaXQoKVxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgdG9KU09OKCl7XHJcbiAgICAgIHJldHVybiB0aGlzXHJcbiAgICB9XHJcbiAgfVxyXG59O1xyXG48L3NjcmlwdD5cclxuXHJcbjwhLS0gI2lmZGVmIEFQUC1WVUUgfHwgSDUgLS0+XHJcbjxzY3JpcHQgbW9kdWxlPVwicmRjaGFydHNcIiBsYW5nPVwicmVuZGVyanNcIj5cclxuaW1wb3J0IHVDaGFydHNSRCBmcm9tICcuLi8uLi9qc19zZGsvdS1jaGFydHMvdS1jaGFydHMuanMnO1xyXG5pbXBvcnQgY2Z1IGZyb20gJy4uLy4uL2pzX3Nkay91LWNoYXJ0cy9jb25maWctdWNoYXJ0cy5qcyc7XHJcbmltcG9ydCBjZmUgZnJvbSAnLi4vLi4vanNfc2RrL3UtY2hhcnRzL2NvbmZpZy1lY2hhcnRzLmpzJztcclxuXHJcbnZhciB0aGF0ID0ge307XHJcbnZhciByb290ZG9tID0gbnVsbDtcclxuXHJcbmZ1bmN0aW9uIHJkZGVlcENsb25lQXNzaWduKG9yaWdpbiA9IHt9LCAuLi5hcmdzKSB7XHJcbiAgZm9yIChsZXQgaSBpbiBhcmdzKSB7XHJcbiAgICBmb3IgKGxldCBrZXkgaW4gYXJnc1tpXSkge1xyXG4gICAgICBpZiAoYXJnc1tpXS5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XHJcbiAgICAgICAgb3JpZ2luW2tleV0gPSBhcmdzW2ldW2tleV0gJiYgdHlwZW9mIGFyZ3NbaV1ba2V5XSA9PT0gJ29iamVjdCcgPyByZGRlZXBDbG9uZUFzc2lnbihBcnJheS5pc0FycmF5KGFyZ3NbaV1ba2V5XSkgPyBbXSA6IHt9LCBvcmlnaW5ba2V5XSwgYXJnc1tpXVtrZXldKSA6IGFyZ3NbaV1ba2V5XTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gb3JpZ2luO1xyXG59XHJcblxyXG5mdW5jdGlvbiByZGZvcm1hdHRlckFzc2lnbihhcmdzLGZvcm1hdHRlcikge1xyXG4gIGZvciAobGV0IGtleSBpbiBhcmdzKSB7XHJcbiAgICBpZihhcmdzW2tleV0gIT09IG51bGwgJiYgdHlwZW9mIGFyZ3Nba2V5XSA9PT0gJ29iamVjdCcpe1xyXG4gICAgICByZGZvcm1hdHRlckFzc2lnbihhcmdzW2tleV0sZm9ybWF0dGVyKVxyXG4gICAgfWVsc2UgaWYoa2V5ID09PSAnZm9ybWF0JyAmJiB0eXBlb2YgYXJnc1trZXldID09PSAnc3RyaW5nJyl7XHJcbiAgICAgIGFyZ3NbJ2Zvcm1hdHRlciddID0gZm9ybWF0dGVyW2FyZ3Nba2V5XV0gPyBmb3JtYXR0ZXJbYXJnc1trZXldXSA6IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIGFyZ3M7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IHtcclxuICBkYXRhKCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgcmlkOm51bGxcclxuICAgIH1cclxuICB9LFxyXG4gIG1vdW50ZWQoKSB7XHJcbiAgICByb290ZG9tID0ge3RvcDowLGxlZnQ6MH1cclxuICAgIC8vICNpZmRlZiBINVxyXG4gICAgbGV0IGRtID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgndW5pLW1haW4nKVswXVxyXG4gICAgaWYoZG0gPT09IHVuZGVmaW5lZCl7XHJcbiAgICAgIGRtID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgndW5pLXBhZ2Utd3JhcHBlcicpWzBdXHJcbiAgICB9XHJcbiAgICByb290ZG9tID0ge3RvcDpkbS5vZmZzZXRUb3AsbGVmdDpkbS5vZmZzZXRMZWZ0fVxyXG4gICAgLy8gI2VuZGlmXHJcbiAgICBzZXRUaW1lb3V0KCgpPT57XHJcbiAgICAgIGlmKHRoaXMucmlkID09PSBudWxsKXtcclxuICAgICAgICB0aGlzLiRvd25lckluc3RhbmNlICYmIHRoaXMuJG93bmVySW5zdGFuY2UuY2FsbE1ldGhvZCgnZ2V0UmVuZGVyVHlwZScpXHJcbiAgICAgIH1cclxuICAgIH0sMjAwKVxyXG4gIH0sXHJcbiAgZGVzdHJveWVkKCl7XHJcbiAgICBkZWxldGUgY2Z1Lm9wdGlvblt0aGlzLnJpZF1cclxuICAgIGRlbGV0ZSBjZnUuaW5zdGFuY2VbdGhpcy5yaWRdXHJcbiAgICBkZWxldGUgY2ZlLm9wdGlvblt0aGlzLnJpZF1cclxuICAgIGRlbGV0ZSBjZmUuaW5zdGFuY2VbdGhpcy5yaWRdXHJcbiAgfSxcclxuICBtZXRob2RzOiB7XHJcbiAgICAvLz09PT09PT09PT09PT095Lul5LiL5pivRUNoYXJ0c+eahOaWueazlT09PT09PT09PT09PT09PT09PT09XHJcbiAgICBlY2luaXQobmV3VmFsLCBvbGRWYWwsIG93bmVyLCBpbnN0YW5jZSl7XHJcbiAgICAgIGxldCBjaWQgPSBKU09OLnN0cmluZ2lmeShuZXdWYWwuaWQpXHJcbiAgICAgIHRoaXMucmlkID0gY2lkXHJcbiAgICAgIHRoYXRbY2lkXSA9IHRoaXMuJG93bmVySW5zdGFuY2UgfHwgaW5zdGFuY2VcclxuICAgICAgbGV0IGVvcHRzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShuZXdWYWwpKVxyXG4gICAgICBsZXQgdHlwZSA9IGVvcHRzLnR5cGU7XHJcbiAgICAgIC8v6L295YWl5bm26KaG55uW6buY6K6k6YWN572uXHJcbiAgICAgIGlmICh0eXBlICYmIGNmZS50eXBlLmluY2x1ZGVzKHR5cGUpKSB7XHJcbiAgICAgICAgY2ZlLm9wdGlvbltjaWRdID0gcmRkZWVwQ2xvbmVBc3NpZ24oe30sIGNmZVt0eXBlXSwgZW9wdHMpO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICBjZmUub3B0aW9uW2NpZF0gPSByZGRlZXBDbG9uZUFzc2lnbih7fSwgZW9wdHMpO1xyXG4gICAgICB9XHJcbiAgICAgIGxldCBuZXdEYXRhID0gZW9wdHMuY2hhcnREYXRhO1xyXG4gICAgICAvL+aMgui9vWNhdGVnb3JpZXPlkoxzZXJpZXNcclxuICAgICAgaWYoY2ZlLm9wdGlvbltjaWRdLnhBeGlzICYmIGNmZS5vcHRpb25bY2lkXS54QXhpcy50eXBlICYmIGNmZS5vcHRpb25bY2lkXS54QXhpcy50eXBlID09PSAnY2F0ZWdvcnknKXtcclxuICAgICAgICBjZmUub3B0aW9uW2NpZF0ueEF4aXMuZGF0YSA9IG5ld0RhdGEuY2F0ZWdvcmllc1xyXG4gICAgICB9XHJcbiAgICAgIGlmKGNmZS5vcHRpb25bY2lkXS55QXhpcyAmJiBjZmUub3B0aW9uW2NpZF0ueUF4aXMudHlwZSAmJiBjZmUub3B0aW9uW2NpZF0ueUF4aXMudHlwZSA9PT0gJ2NhdGVnb3J5Jyl7XHJcbiAgICAgICAgY2ZlLm9wdGlvbltjaWRdLnlBeGlzLmRhdGEgPSBuZXdEYXRhLmNhdGVnb3JpZXNcclxuICAgICAgfVxyXG4gICAgICBjZmUub3B0aW9uW2NpZF0uc2VyaWVzID0gW11cclxuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBuZXdEYXRhLnNlcmllcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGNmZS5vcHRpb25bY2lkXS5zZXJpZXNUZW1wbGF0ZSA9IGNmZS5vcHRpb25bY2lkXS5zZXJpZXNUZW1wbGF0ZSA/IGNmZS5vcHRpb25bY2lkXS5zZXJpZXNUZW1wbGF0ZSA6IHt9XHJcbiAgICAgICAgbGV0IFRlbXBsYXRlID0gcmRkZWVwQ2xvbmVBc3NpZ24oe30sY2ZlLm9wdGlvbltjaWRdLnNlcmllc1RlbXBsYXRlLG5ld0RhdGEuc2VyaWVzW2ldKVxyXG4gICAgICAgIGNmZS5vcHRpb25bY2lkXS5zZXJpZXMucHVzaChUZW1wbGF0ZSlcclxuICAgICAgfVxyXG4gICAgICBpZiAodHlwZW9mIHdpbmRvdy5lY2hhcnRzID09PSAnb2JqZWN0Jykge1xyXG4gICAgICAgICAgdGhpcy5uZXdFQ2hhcnQoKVxyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICBjb25zdCBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKVxyXG4gICAgICAgIC8vICNpZmRlZiBBUFAtVlVFXHJcbiAgICAgICAgc2NyaXB0LnNyYyA9ICcuL3VuaV9tb2R1bGVzL3FpdW4tZGF0YS1jaGFydHMvc3RhdGljL2FwcC1wbHVzL2VjaGFydHMubWluLmpzJ1xyXG4gICAgICAgIC8vICNlbmRpZlxyXG4gICAgICAgIC8vICNpZmRlZiBINVxyXG4gICAgICAgIGNvbnN0IHJvb3R1cmwgPSB3aW5kb3cubG9jYXRpb24ub3JpZ2luIFxyXG4gICAgICAgIGNvbnN0IGRpcmVjdG9yeSA9IGluc3RhbmNlLmdldERhdGFzZXQoKS5kaXJlY3RvcnlcclxuICAgICAgICBzY3JpcHQuc3JjID0gcm9vdHVybCArIGRpcmVjdG9yeSArICd1bmlfbW9kdWxlcy9xaXVuLWRhdGEtY2hhcnRzL3N0YXRpYy9oNS9lY2hhcnRzLm1pbi5qcydcclxuICAgICAgICAvLyAjZW5kaWZcclxuICAgICAgICBzY3JpcHQub25sb2FkID0gdGhpcy5uZXdFQ2hhcnRcclxuICAgICAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHNjcmlwdClcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIGVjcmVzaXplKG5ld1ZhbCwgb2xkVmFsLCBvd25lciwgaW5zdGFuY2Upe1xyXG4gICAgICBpZihjZmUuaW5zdGFuY2VbdGhpcy5yaWRdKXtcclxuICAgICAgICBjZmUuaW5zdGFuY2VbdGhpcy5yaWRdLnJlc2l6ZSgpXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBuZXdFQ2hhcnQoKXtcclxuICAgICAgbGV0IGNpZCA9IHRoaXMucmlkXHJcbiAgICAgIGlmKGNmZS5pbnN0YW5jZVtjaWRdID09PSB1bmRlZmluZWQpe1xyXG4gICAgICAgIGNmZS5pbnN0YW5jZVtjaWRdID0gZWNoYXJ0cy5pbml0KHRoYXRbY2lkXS4kZWwuY2hpbGRyZW5bMF0pXHJcbiAgICAgICAgLy9vbnRhcOW8gOWQr+WQjuaJjeinpuWPkWNsaWNr5LqL5Lu2XHJcbiAgICAgICAgaWYoY2ZlLm9wdGlvbltjaWRdLm9udGFwID09PSB0cnVlKXtcclxuICAgICAgICAgIGNmZS5pbnN0YW5jZVtjaWRdLm9uKCdjbGljaycsIHJlc2RhdGEgPT4ge1xyXG4gICAgICAgICAgICBsZXQgZXZlbnQgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHtcclxuICAgICAgICAgICAgICB4OnJlc2RhdGEuZXZlbnQub2Zmc2V0WCx5OnJlc2RhdGEuZXZlbnQub2Zmc2V0WVxyXG4gICAgICAgICAgICB9KSlcclxuICAgICAgICAgICAgdGhhdFtjaWRdLmNhbGxNZXRob2QoJ2VtaXRNc2cnLHtuYW1lOlwiZ2V0SW5kZXhcIiwgcGFyYW1zOnt0eXBlOlwiZ2V0SW5kZXhcIiwgZXZlbnQ6ZXZlbnQsIGN1cnJlbnRJbmRleDpyZXNkYXRhLmRhdGFJbmRleCwgdmFsdWU6cmVzZGF0YS5kYXRhLCBzZXJpZXNOYW1lOiByZXNkYXRhLnNlcmllc05hbWUsaWQ6Y2lkfX0pXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgLy8g5aKe5YqgRUNoYXJ0c+eahGhpZ2hsaWdodOa2iOaBr++8jOWunueOsOaMieS4i+enu+WKqOi/lOWbnue0ouW8leWKn+iDveOAgmFkZCBieSBvbmVmaXNoIOWIm+W7uuS6jiAyMDIxLTEyLTExIDA5OjUwXHJcbiAgICAgICAgICBjZmUuaW5zdGFuY2VbY2lkXS5vbignaGlnaGxpZ2h0JywgcmVzZGF0YSA9PiB7XHJcbiAgICAgICAgICAgIHRoYXRbY2lkXS5jYWxsTWV0aG9kKCdlbWl0TXNnJyx7bmFtZTpcImdldEhpZ2hsaWdodFwiLCBwYXJhbXM6e3R5cGU6XCJoaWdobGlnaHRcIiwgZGF0YUluZGV4OnJlc2RhdGEuYmF0Y2hbMF0uZGF0YUluZGV4LCBpZDpjaWR9fSlcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMudXBkYXRhRUNoYXJ0KGNpZCxjZmUub3B0aW9uW2NpZF0pXHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIHRoaXMudXBkYXRhRUNoYXJ0KGNpZCxjZmUub3B0aW9uW2NpZF0pXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICB1cGRhdGFFQ2hhcnQoY2lkLG9wdGlvbil7XHJcbiAgICAgIC8v5pu/5o2ib3B0aW9u5YaFZm9ybWF05bGe5oCn5Li6Zm9ybWF0dGVy55qE6aKE5a6a5LmJ5pa55rOVXHJcbiAgICAgIG9wdGlvbiA9IHJkZm9ybWF0dGVyQXNzaWduKG9wdGlvbixjZmUuZm9ybWF0dGVyKVxyXG4gICAgICBpZihvcHRpb24udG9vbHRpcCl7XHJcbiAgICAgICAgb3B0aW9uLnRvb2x0aXAuc2hvdyA9IG9wdGlvbi50b29sdGlwU2hvdz90cnVlOmZhbHNlO1xyXG4gICAgICAgIG9wdGlvbi50b29sdGlwLnBvc2l0aW9uID0gdGhpcy50b29sdGlwUG9zaXRpb24oKVxyXG4gICAgICAgIC8vdG9vbHRpcEZvcm1hdOaWueazle+8jOabv+aNoue7hOS7tueahHRvb2x0aXBGb3JtYXTkuLpjb25maWctZWNoYXJ0cy5qc+WGheWvueW6lOeahOaWueazlVxyXG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9uLnRvb2x0aXBGb3JtYXQgPT09ICdzdHJpbmcnICYmIGNmZS5mb3JtYXR0ZXJbb3B0aW9uLnRvb2x0aXBGb3JtYXRdKSB7XHJcbiAgICAgICAgICBvcHRpb24udG9vbHRpcC5mb3JtYXR0ZXIgPSBvcHRpb24udG9vbHRpcC5mb3JtYXR0ZXIgPyBvcHRpb24udG9vbHRpcC5mb3JtYXR0ZXIgOiBjZmUuZm9ybWF0dGVyW29wdGlvbi50b29sdGlwRm9ybWF0XVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICAvLyDpopzoibLmuJDlj5jmt7vliqDnmoTmlrnms5VcclxuICAgICAgaWYgKG9wdGlvbi5zZXJpZXMpIHtcclxuICAgICAgXHRmb3IgKGxldCBpIGluIG9wdGlvbi5zZXJpZXMpIHtcclxuICAgICAgXHRcdGxldCBsaW5lYXJHcmFkaWVudCA9IG9wdGlvbi5zZXJpZXNbaV0ubGluZWFyR3JhZGllbnRcclxuICAgICAgXHRcdGlmIChsaW5lYXJHcmFkaWVudCkge1xyXG4gICAgICBcdFx0XHRvcHRpb24uc2VyaWVzW2ldLmNvbG9yID0gbmV3IGVjaGFydHMuZ3JhcGhpYy5MaW5lYXJHcmFkaWVudChsaW5lYXJHcmFkaWVudFswXSxsaW5lYXJHcmFkaWVudFsxXSxsaW5lYXJHcmFkaWVudFsyXSxsaW5lYXJHcmFkaWVudFszXSxsaW5lYXJHcmFkaWVudFs0XSlcclxuICAgICAgXHRcdH1cclxuICAgICAgXHR9XHJcbiAgICAgIH1cclxuICAgICAgY2ZlLmluc3RhbmNlW2NpZF0uc2V0T3B0aW9uKG9wdGlvbiwgb3B0aW9uLm5vdE1lcmdlKVxyXG4gICAgICBjZmUuaW5zdGFuY2VbY2lkXS5vbignZmluaXNoZWQnLCBmdW5jdGlvbigpe1xyXG4gICAgICAgIHRoYXRbY2lkXS5jYWxsTWV0aG9kKCdlbWl0TXNnJyx7bmFtZTpcImNvbXBsZXRlXCIscGFyYW1zOnt0eXBlOlwiY29tcGxldGVcIixjb21wbGV0ZTp0cnVlLGlkOmNpZH19KVxyXG4gICAgICAgIGlmKGNmZS5pbnN0YW5jZVtjaWRdKXtcclxuICAgICAgICAgIGNmZS5pbnN0YW5jZVtjaWRdLm9mZignZmluaXNoZWQnKVxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgIH0sXHJcbiAgICB0b29sdGlwUG9zaXRpb24oKXtcclxuICAgICAgcmV0dXJuIChwb2ludCwgcGFyYW1zLCBkb20sIHJlY3QsIHNpemUpID0+IHtcclxuICAgICAgXHRsZXQgeCA9IHBvaW50WzBdXHJcbiAgICAgIFx0bGV0IHkgPSBwb2ludFsxXVxyXG4gICAgICBcdGxldCB2aWV3V2lkdGggPSBzaXplLnZpZXdTaXplWzBdXHJcbiAgICAgIFx0bGV0IHZpZXdIZWlnaHQgPSBzaXplLnZpZXdTaXplWzFdXHJcbiAgICAgIFx0bGV0IGJveFdpZHRoID0gc2l6ZS5jb250ZW50U2l6ZVswXVxyXG4gICAgICBcdGxldCBib3hIZWlnaHQgPSBzaXplLmNvbnRlbnRTaXplWzFdXHJcbiAgICAgIFx0bGV0IHBvc1ggPSB4ICsgMzAgXHJcbiAgICAgIFx0bGV0IHBvc1kgPSB5ICsgMzAgXHJcbiAgICAgIFx0aWYgKHBvc1ggKyBib3hXaWR0aCA+IHZpZXdXaWR0aCkgeyBcclxuICAgICAgXHRcdHBvc1ggPSB4IC0gYm94V2lkdGggLSAzMFxyXG4gICAgICBcdH1cclxuICAgICAgXHRpZiAocG9zWSArIGJveEhlaWdodCA+IHZpZXdIZWlnaHQpIHtcclxuICAgICAgXHRcdHBvc1kgPSB5IC0gYm94SGVpZ2h0IC0gMzBcclxuICAgICAgXHR9XHJcbiAgICAgIFx0cmV0dXJuIFtwb3NYLCBwb3NZXVxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgLy89PT09PT09PT09PT09PeS7peS4i+aYr3VDaGFydHPnmoTmlrnms5U9PT09PT09PT09PT09PT09PT09PVxyXG4gICAgdWNpbml0KG5ld1ZhbCwgb2xkVmFsLCBvd25lciwgaW5zdGFuY2Upe1xyXG4gICAgICBpZihKU09OLnN0cmluZ2lmeShuZXdWYWwpID09IEpTT04uc3RyaW5naWZ5KG9sZFZhbCkpe1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBpZighbmV3VmFsLmNhbnZhc0lkKXtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgbGV0IGNpZCA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkobmV3VmFsLmNhbnZhc0lkKSlcclxuICAgICAgdGhpcy5yaWQgPSBjaWRcclxuICAgICAgdGhhdFtjaWRdID0gdGhpcy4kb3duZXJJbnN0YW5jZSB8fCBpbnN0YW5jZVxyXG4gICAgICBjZnUub3B0aW9uW2NpZF0gPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KG5ld1ZhbCkpXHJcbiAgICAgIGNmdS5vcHRpb25bY2lkXSA9IHJkZm9ybWF0dGVyQXNzaWduKGNmdS5vcHRpb25bY2lkXSxjZnUuZm9ybWF0dGVyKVxyXG4gICAgICBsZXQgY2FudmFzZG9tID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoY2lkKVxyXG4gICAgICBpZihjYW52YXNkb20gJiYgY2FudmFzZG9tLmNoaWxkcmVuWzBdKXtcclxuICAgICAgICBjZnUub3B0aW9uW2NpZF0uY29udGV4dCA9IGNhbnZhc2RvbS5jaGlsZHJlblswXS5nZXRDb250ZXh0KFwiMmRcIilcclxuICAgICAgICBpZihjZnUuaW5zdGFuY2VbY2lkXSAmJiBjZnUub3B0aW9uW2NpZF0gJiYgY2Z1Lm9wdGlvbltjaWRdLnVwZGF0ZSA9PT0gdHJ1ZSl7XHJcbiAgICAgICAgICB0aGlzLnVwZGF0YVVDaGFydCgpXHJcbiAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpPT57XHJcbiAgICAgICAgICAgIGNmdS5vcHRpb25bY2lkXS5jb250ZXh0LnJlc3RvcmUoKTtcclxuICAgICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLmNvbnRleHQuc2F2ZSgpO1xyXG4gICAgICAgICAgICB0aGlzLm5ld1VDaGFydCgpXHJcbiAgICAgICAgICB9LDEwMClcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBuZXdVQ2hhcnQoKSB7XHJcbiAgICAgIGxldCBjaWQgPSB0aGlzLnJpZFxyXG4gICAgICBjZnUuaW5zdGFuY2VbY2lkXSA9IG5ldyB1Q2hhcnRzUkQoY2Z1Lm9wdGlvbltjaWRdKVxyXG4gICAgICBjZnUuaW5zdGFuY2VbY2lkXS5hZGRFdmVudExpc3RlbmVyKCdyZW5kZXJDb21wbGV0ZScsICgpID0+IHtcclxuICAgICAgICB0aGF0W2NpZF0uY2FsbE1ldGhvZCgnZW1pdE1zZycse25hbWU6XCJjb21wbGV0ZVwiLHBhcmFtczp7dHlwZTpcImNvbXBsZXRlXCIsY29tcGxldGU6dHJ1ZSxpZDpjaWR9fSlcclxuICAgICAgICBjZnUuaW5zdGFuY2VbY2lkXS5kZWxFdmVudExpc3RlbmVyKCdyZW5kZXJDb21wbGV0ZScpXHJcbiAgICAgIH0pO1xyXG4gICAgICBjZnUuaW5zdGFuY2VbY2lkXS5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGxMZWZ0JywgKCkgPT4ge1xyXG4gICAgICAgIHRoYXRbY2lkXS5jYWxsTWV0aG9kKCdlbWl0TXNnJyx7bmFtZTpcInNjcm9sbExlZnRcIixwYXJhbXM6e3R5cGU6XCJzY3JvbGxMZWZ0XCIsc2Nyb2xsTGVmdDp0cnVlLGlkOmNpZH19KVxyXG4gICAgICB9KTtcclxuICAgICAgY2Z1Lmluc3RhbmNlW2NpZF0uYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsUmlnaHQnLCAoKSA9PiB7XHJcbiAgICAgICAgdGhhdFtjaWRdLmNhbGxNZXRob2QoJ2VtaXRNc2cnLHtuYW1lOlwic2Nyb2xsUmlnaHRcIixwYXJhbXM6e3R5cGU6XCJzY3JvbGxSaWdodFwiLHNjcm9sbFJpZ2h0OnRydWUsaWQ6Y2lkfX0pXHJcbiAgICAgIH0pO1xyXG4gICAgfSxcclxuICAgIHVwZGF0YVVDaGFydCgpIHtcclxuICAgICAgbGV0IGNpZCA9IHRoaXMucmlkXHJcbiAgICAgIGNmdS5pbnN0YW5jZVtjaWRdLnVwZGF0ZURhdGEoY2Z1Lm9wdGlvbltjaWRdKVxyXG4gICAgfSxcclxuICAgIHRvb2x0aXBEZWZhdWx0KGl0ZW0sIGNhdGVnb3J5LCBpbmRleCwgb3B0cykge1xyXG4gICAgICBpZiAoY2F0ZWdvcnkpIHtcclxuICAgICAgICBsZXQgZGF0YSA9IGl0ZW0uZGF0YVxyXG4gICAgICAgIGlmKHR5cGVvZiBpdGVtLmRhdGEgPT09IFwib2JqZWN0XCIpe1xyXG4gICAgICAgICAgZGF0YSA9IGl0ZW0uZGF0YS52YWx1ZVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gY2F0ZWdvcnkgKyAnICcgKyBpdGVtLm5hbWUgKyAnOicgKyBkYXRhO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmIChpdGVtLnByb3BlcnRpZXMgJiYgaXRlbS5wcm9wZXJ0aWVzLm5hbWUpIHtcclxuICAgICAgICAgIHJldHVybiBpdGVtLnByb3BlcnRpZXMubmFtZSA7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJldHVybiBpdGVtLm5hbWUgKyAnOicgKyBpdGVtLmRhdGE7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgc2hvd1Rvb2x0aXAoZSxjaWQpIHtcclxuICAgICAgbGV0IHRjID0gY2Z1Lm9wdGlvbltjaWRdLnRvb2x0aXBDdXN0b21cclxuICAgICAgaWYgKHRjICYmIHRjICE9PSB1bmRlZmluZWQgJiYgdGMgIT09IG51bGwpIHtcclxuICAgICAgICBsZXQgb2Zmc2V0ID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIGlmICh0Yy54ID49IDAgJiYgdGMueSA+PSAwKSB7XHJcbiAgICAgICAgICBvZmZzZXQgPSB7IHg6IHRjLngsIHk6IHRjLnkgKyAxMCB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICBjZnUuaW5zdGFuY2VbY2lkXS5zaG93VG9vbFRpcChlLCB7XHJcbiAgICAgICAgICBpbmRleDogdGMuaW5kZXgsXHJcbiAgICAgICAgICBvZmZzZXQ6IG9mZnNldCxcclxuICAgICAgICAgIHRleHRMaXN0OiB0Yy50ZXh0TGlzdCxcclxuICAgICAgICAgIGZvcm1hdHRlcjogKGl0ZW0sIGNhdGVnb3J5LCBpbmRleCwgb3B0cykgPT4ge1xyXG4gICAgICAgICAgICBpZiAodHlwZW9mIGNmdS5vcHRpb25bY2lkXS50b29sdGlwRm9ybWF0ID09PSAnc3RyaW5nJyAmJiBjZnUuZm9ybWF0dGVyW2NmdS5vcHRpb25bY2lkXS50b29sdGlwRm9ybWF0XSkge1xyXG4gICAgICAgICAgICAgIHJldHVybiBjZnUuZm9ybWF0dGVyW2NmdS5vcHRpb25bY2lkXS50b29sdGlwRm9ybWF0XShpdGVtLCBjYXRlZ29yeSwgaW5kZXgsIG9wdHMpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLnRvb2x0aXBEZWZhdWx0KGl0ZW0sIGNhdGVnb3J5LCBpbmRleCwgb3B0cyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjZnUuaW5zdGFuY2VbY2lkXS5zaG93VG9vbFRpcChlLCB7XHJcbiAgICAgICAgICBmb3JtYXR0ZXI6IChpdGVtLCBjYXRlZ29yeSwgaW5kZXgsIG9wdHMpID0+IHtcclxuICAgICAgICAgICAgaWYgKHR5cGVvZiBjZnUub3B0aW9uW2NpZF0udG9vbHRpcEZvcm1hdCA9PT0gJ3N0cmluZycgJiYgY2Z1LmZvcm1hdHRlcltjZnUub3B0aW9uW2NpZF0udG9vbHRpcEZvcm1hdF0pIHtcclxuICAgICAgICAgICAgICByZXR1cm4gY2Z1LmZvcm1hdHRlcltjZnUub3B0aW9uW2NpZF0udG9vbHRpcEZvcm1hdF0oaXRlbSwgY2F0ZWdvcnksIGluZGV4LCBvcHRzKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICByZXR1cm4gdGhpcy50b29sdGlwRGVmYXVsdChpdGVtLCBjYXRlZ29yeSwgaW5kZXgsIG9wdHMpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICB0YXAoZSkge1xyXG4gICAgICBsZXQgY2lkID0gdGhpcy5yaWRcclxuICAgICAgbGV0IG9udGFwID0gY2Z1Lm9wdGlvbltjaWRdLm9udGFwXHJcbiAgICAgIGxldCB0b29sdGlwU2hvdyA9IGNmdS5vcHRpb25bY2lkXS50b29sdGlwU2hvd1xyXG4gICAgICBsZXQgdGFwTGVnZW5kID0gY2Z1Lm9wdGlvbltjaWRdLnRhcExlZ2VuZFxyXG4gICAgICBpZihvbnRhcCA9PSBmYWxzZSkgcmV0dXJuO1xyXG4gICAgICBsZXQgY3VycmVudEluZGV4PW51bGxcclxuICAgICAgbGV0IGxlZ2VuZEluZGV4PW51bGxcclxuICAgICAgbGV0IHJjaGFydGRvbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdVQycrY2lkKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxyXG4gICAgICBsZXQgdG1wZSA9IHt9XHJcbiAgICAgIGlmKGUuZGV0YWlsLngpey8vdGFw5oiW6ICFY2xpY2vnmoTkuovku7ZcclxuICAgICAgICB0bXBlID0geyB4OiBlLmRldGFpbC54IC0gcmNoYXJ0ZG9tLmxlZnQsIHk6ZS5kZXRhaWwueSAtIHJjaGFydGRvbS50b3AgKyByb290ZG9tLnRvcH1cclxuICAgICAgfWVsc2V7Ly9tb3VzZeeahOS6i+S7tlxyXG4gICAgICAgIHRtcGUgPSB7IHg6IGUuY2xpZW50WCAtIHJjaGFydGRvbS5sZWZ0LCB5OmUuY2xpZW50WSAtIHJjaGFydGRvbS50b3AgKyByb290ZG9tLnRvcH1cclxuICAgICAgfVxyXG4gICAgICBlLmNoYW5nZWRUb3VjaGVzID0gW107XHJcbiAgICAgIGUuY2hhbmdlZFRvdWNoZXMudW5zaGlmdCh0bXBlKVxyXG4gICAgICBjdXJyZW50SW5kZXg9Y2Z1Lmluc3RhbmNlW2NpZF0uZ2V0Q3VycmVudERhdGFJbmRleChlKVxyXG4gICAgICBsZWdlbmRJbmRleD1jZnUuaW5zdGFuY2VbY2lkXS5nZXRMZWdlbmREYXRhSW5kZXgoZSlcclxuICAgICAgaWYodGFwTGVnZW5kID09PSB0cnVlKXtcclxuICAgICAgICBjZnUuaW5zdGFuY2VbY2lkXS50b3VjaExlZ2VuZChlKTtcclxuICAgICAgfVxyXG4gICAgICBpZih0b29sdGlwU2hvdz09dHJ1ZSl7XHJcbiAgICAgICAgdGhpcy5zaG93VG9vbHRpcChlLGNpZClcclxuICAgICAgfVxyXG4gICAgICB0aGF0W2NpZF0uY2FsbE1ldGhvZCgnZW1pdE1zZycse25hbWU6XCJnZXRJbmRleFwiLHBhcmFtczp7dHlwZTpcImdldEluZGV4XCIsZXZlbnQ6dG1wZSxjdXJyZW50SW5kZXg6Y3VycmVudEluZGV4LGxlZ2VuZEluZGV4OmxlZ2VuZEluZGV4LGlkOmNpZCwgb3B0czogY2Z1Lmluc3RhbmNlW2NpZF0ub3B0c319KVxyXG4gICAgfSxcclxuICAgIHRvdWNoU3RhcnQoZSkge1xyXG4gICAgICBsZXQgY2lkID0gdGhpcy5yaWRcclxuICAgICAgbGV0IG9udG91Y2ggPSBjZnUub3B0aW9uW2NpZF0ub250b3VjaFxyXG4gICAgICBpZihvbnRvdWNoID09IGZhbHNlKSByZXR1cm47XHJcbiAgICAgIGNmdS5pbnN0YW5jZVtjaWRdLnNjcm9sbFN0YXJ0KGUpXHJcbiAgICAgIHRoYXRbY2lkXS5jYWxsTWV0aG9kKCdlbWl0TXNnJyx7bmFtZTpcImdldFRvdWNoU3RhcnRcIixwYXJhbXM6e3R5cGU6XCJ0b3VjaFN0YXJ0XCIsZXZlbnQ6ZS5jaGFuZ2VkVG91Y2hlc1swXSxpZDpjaWR9fSlcclxuICAgIH0sXHJcbiAgICB0b3VjaE1vdmUoZSkge1xyXG4gICAgICBsZXQgY2lkID0gdGhpcy5yaWRcclxuICAgICAgbGV0IG9udG91Y2ggPSBjZnUub3B0aW9uW2NpZF0ub250b3VjaFxyXG4gICAgICBpZihvbnRvdWNoID09IGZhbHNlKSByZXR1cm47XHJcbiAgICAgIGNmdS5pbnN0YW5jZVtjaWRdLnNjcm9sbChlKVxyXG4gICAgICB0aGF0W2NpZF0uY2FsbE1ldGhvZCgnZW1pdE1zZycse25hbWU6XCJnZXRUb3VjaE1vdmVcIixwYXJhbXM6e3R5cGU6XCJ0b3VjaE1vdmVcIixldmVudDplLmNoYW5nZWRUb3VjaGVzWzBdLGlkOmNpZH19KVxyXG4gICAgICBpZihjZnUub3B0aW9uW2NpZF0ub250YXAgPT09IHRydWUgJiYgY2Z1Lm9wdGlvbltjaWRdLmVuYWJsZVNjcm9sbCA9PT0gZmFsc2UgJiYgY2Z1Lm9wdGlvbltjaWRdLm9ubW92ZXRpcCA9PT0gdHJ1ZSl7XHJcbiAgICAgICAgbGV0IHJjaGFydGRvbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdVQycrY2lkKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxyXG4gICAgICAgIGxldCB0bXBlID0geyB4OiBlLmNoYW5nZWRUb3VjaGVzWzBdLmNsaWVudFggLSByY2hhcnRkb20ubGVmdCwgeTplLmNoYW5nZWRUb3VjaGVzWzBdLmNsaWVudFkgLSByY2hhcnRkb20udG9wICsgcm9vdGRvbS50b3B9XHJcbiAgICAgICAgZS5jaGFuZ2VkVG91Y2hlcyA9IFtdO1xyXG4gICAgICAgIGUuY2hhbmdlZFRvdWNoZXMudW5zaGlmdCh0bXBlKVxyXG4gICAgICAgIGlmKGNmdS5vcHRpb25bY2lkXS50b29sdGlwU2hvdyA9PT0gdHJ1ZSl7XHJcbiAgICAgICAgICB0aGlzLnNob3dUb29sdGlwKGUsY2lkKVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIHRvdWNoRW5kKGUpIHtcclxuICAgICAgbGV0IGNpZCA9IHRoaXMucmlkXHJcbiAgICAgIGxldCBvbnRvdWNoID0gY2Z1Lm9wdGlvbltjaWRdLm9udG91Y2hcclxuICAgICAgaWYob250b3VjaCA9PSBmYWxzZSkgcmV0dXJuO1xyXG4gICAgICBjZnUuaW5zdGFuY2VbY2lkXS5zY3JvbGxFbmQoZSlcclxuICAgICAgdGhhdFtjaWRdLmNhbGxNZXRob2QoJ2VtaXRNc2cnLHtuYW1lOlwiZ2V0VG91Y2hFbmRcIixwYXJhbXM6e3R5cGU6XCJ0b3VjaEVuZFwiLGV2ZW50OmUuY2hhbmdlZFRvdWNoZXNbMF0saWQ6Y2lkfX0pXHJcbiAgICB9LFxyXG4gICAgbW91c2VEb3duKGUpIHtcclxuICAgICAgbGV0IGNpZCA9IHRoaXMucmlkXHJcbiAgICAgIGxldCBvbm1vdXNlID0gY2Z1Lm9wdGlvbltjaWRdLm9ubW91c2VcclxuICAgICAgaWYob25tb3VzZSA9PSBmYWxzZSkgcmV0dXJuO1xyXG4gICAgICBsZXQgcmNoYXJ0ZG9tID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ1VDJytjaWQpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXHJcbiAgICAgIGxldCB0bXBlID0ge31cclxuICAgICAgdG1wZSA9IHsgeDogZS5jbGllbnRYIC0gcmNoYXJ0ZG9tLmxlZnQsIHk6ZS5jbGllbnRZIC0gcmNoYXJ0ZG9tLnRvcCArIHJvb3Rkb20udG9wfVxyXG4gICAgICBlLmNoYW5nZWRUb3VjaGVzID0gW107XHJcbiAgICAgIGUuY2hhbmdlZFRvdWNoZXMudW5zaGlmdCh0bXBlKVxyXG4gICAgICBjZnUuaW5zdGFuY2VbY2lkXS5zY3JvbGxTdGFydChlKVxyXG4gICAgICBjZnUub3B0aW9uW2NpZF0ubW91c2Vkb3duPXRydWU7XHJcbiAgICAgIHRoYXRbY2lkXS5jYWxsTWV0aG9kKCdlbWl0TXNnJyx7bmFtZTpcImdldFRvdWNoU3RhcnRcIixwYXJhbXM6e3R5cGU6XCJtb3VzZURvd25cIixldmVudDp0bXBlLGlkOmNpZH19KVxyXG4gICAgfSxcclxuICAgIG1vdXNlTW92ZShlKSB7XHJcbiAgICAgIGxldCBjaWQgPSB0aGlzLnJpZFxyXG4gICAgICBsZXQgb25tb3VzZSA9IGNmdS5vcHRpb25bY2lkXS5vbm1vdXNlXHJcbiAgICAgIGxldCB0b29sdGlwU2hvdyA9IGNmdS5vcHRpb25bY2lkXS50b29sdGlwU2hvd1xyXG4gICAgICBpZihvbm1vdXNlID09IGZhbHNlKSByZXR1cm47XHJcbiAgICAgIGxldCByY2hhcnRkb20gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnVUMnK2NpZCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcclxuICAgICAgbGV0IHRtcGUgPSB7fVxyXG4gICAgICB0bXBlID0geyB4OiBlLmNsaWVudFggLSByY2hhcnRkb20ubGVmdCwgeTplLmNsaWVudFkgLSByY2hhcnRkb20udG9wICsgcm9vdGRvbS50b3B9XHJcbiAgICAgIGUuY2hhbmdlZFRvdWNoZXMgPSBbXTtcclxuICAgICAgZS5jaGFuZ2VkVG91Y2hlcy51bnNoaWZ0KHRtcGUpXHJcbiAgICAgIGlmKGNmdS5vcHRpb25bY2lkXS5tb3VzZWRvd24pe1xyXG4gICAgICAgIGNmdS5pbnN0YW5jZVtjaWRdLnNjcm9sbChlKVxyXG4gICAgICAgIHRoYXRbY2lkXS5jYWxsTWV0aG9kKCdlbWl0TXNnJyx7bmFtZTpcImdldFRvdWNoTW92ZVwiLHBhcmFtczp7dHlwZTpcIm1vdXNlTW92ZVwiLGV2ZW50OnRtcGUsaWQ6Y2lkfX0pXHJcbiAgICAgIH1lbHNlIGlmKGNmdS5pbnN0YW5jZVtjaWRdKXtcclxuICAgICAgICBpZih0b29sdGlwU2hvdz09dHJ1ZSl7XHJcbiAgICAgICAgICB0aGlzLnNob3dUb29sdGlwKGUsY2lkKVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIG1vdXNlVXAoZSkge1xyXG4gICAgICBsZXQgY2lkID0gdGhpcy5yaWRcclxuICAgICAgbGV0IG9ubW91c2UgPSBjZnUub3B0aW9uW2NpZF0ub25tb3VzZVxyXG4gICAgICBpZihvbm1vdXNlID09IGZhbHNlKSByZXR1cm47XHJcbiAgICAgIGxldCByY2hhcnRkb20gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnVUMnK2NpZCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcclxuICAgICAgbGV0IHRtcGUgPSB7fVxyXG4gICAgICB0bXBlID0geyB4OiBlLmNsaWVudFggLSByY2hhcnRkb20ubGVmdCwgeTplLmNsaWVudFkgLSByY2hhcnRkb20udG9wICsgcm9vdGRvbS50b3B9XHJcbiAgICAgIGUuY2hhbmdlZFRvdWNoZXMgPSBbXTtcclxuICAgICAgZS5jaGFuZ2VkVG91Y2hlcy51bnNoaWZ0KHRtcGUpXHJcbiAgICAgIGNmdS5pbnN0YW5jZVtjaWRdLnNjcm9sbEVuZChlKVxyXG4gICAgICBjZnUub3B0aW9uW2NpZF0ubW91c2Vkb3duPWZhbHNlO1xyXG4gICAgICB0aGF0W2NpZF0uY2FsbE1ldGhvZCgnZW1pdE1zZycse25hbWU6XCJnZXRUb3VjaEVuZFwiLHBhcmFtczp7dHlwZTpcIm1vdXNlVXBcIixldmVudDp0bXBlLGlkOmNpZH19KVxyXG4gICAgfSxcclxuICB9XHJcbn1cclxuPC9zY3JpcHQ+XHJcbjwhLS0gI2VuZGlmIC0tPlxyXG5cclxuPHN0eWxlIHNjb3BlZD5cclxuLmNoYXJ0c3ZpZXcge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogMTAwJTtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXg6IDE7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxufVxyXG48L3N0eWxlPlxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///62\n");
+eval("/* WEBPACK VAR INJECTION */(function(uniCloud, __f__) {Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0;\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar _uCharts = _interopRequireDefault(__webpack_require__(/*! ../../js_sdk/u-charts/u-charts.js */ 68));\nvar _configUcharts = _interopRequireDefault(__webpack_require__(/*! ../../js_sdk/u-charts/config-ucharts.js */ 69));\n\nvar _configEcharts = _interopRequireDefault(__webpack_require__(/*! ../../js_sdk/u-charts/config-echarts.js */ 70));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nfunction deepCloneAssign() {var origin = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {args[_key - 1] = arguments[_key];}for (var i in args) {for (var key in args[i]) {if (args[i].hasOwnProperty(key)) {origin[key] = args[i][key] && typeof args[i][key] === 'object' ? deepCloneAssign(Array.isArray(args[i][key]) ? [] : {}, origin[key], args[i][key]) : args[i][key];}}}return origin;}function formatterAssign(args, formatter) {for (var key in args) {if (args.hasOwnProperty(key) && args[key] !== null && typeof args[key] === 'object') {formatterAssign(args[key], formatter);} else if (key === 'format' && typeof args[key] === 'string') {args['formatter'] = formatter[args[key]] ? formatter[args[key]] : undefined;}}return args;} // 鏃堕棿杞崲鍑芥暟锛屼负浜嗗尮閰島niClinetDB璇诲彇鍑虹殑鏃堕棿涓巆ategories涓嶅悓\nfunction getFormatDate(date) {var seperator = \"-\";var year = date.getFullYear();var month = date.getMonth() + 1;var strDate = date.getDate();if (month >= 1 && month <= 9) {month = \"0\" + month;}if (strDate >= 0 && strDate <= 9) {strDate = \"0\" + strDate;}var currentdate = year + seperator + month + seperator + strDate;return currentdate;}var lastMoveTime = null; /**\r\n                                                                                                                                                                                                                                                                                                                                                                            * 闃叉姈\r\n                                                                                                                                                                                                                                                                                                                                                                            *\r\n                                                                                                                                                                                                                                                                                                                                                                            * @param { Function } fn 瑕佹墽琛岀殑鏂规硶\r\n                                                                                                                                                                                                                                                                                                                                                                            * @param { Number } wait  闃叉姈澶氬皯姣\r\n                                                                                                                                                                                                                                                                                                                                                                            *\r\n                                                                                                                                                                                                                                                                                                                                                                            * 鍦� vue 涓娇鐢紙娉ㄦ剰锛氫笉鑳戒娇鐢ㄧ澶村嚱鏁帮紝鍚﹀垯this鎸囧悜涓嶅锛屽苟涓斾笉鑳藉啀娆″皝瑁呭锛歕r\n                                                                                                                                                                                                                                                                                                                                                                            * move(){  // 閿欒璋冪敤鏂瑰紡\r\n                                                                                                                                                                                                                                                                                                                                                                            *   debounce(function () {\r\n                                                                                                                                                                                                                                                                                                                                                                            *   console.log(this.title);\r\n                                                                                                                                                                                                                                                                                                                                                                            * }, 1000)}锛�;\r\n                                                                                                                                                                                                                                                                                                                                                                            * 搴旇鐩存帴浣跨敤锛�// 姝g‘璋冪敤鏂瑰紡\r\n                                                                                                                                                                                                                                                                                                                                                                            * move: debounce(function () {\r\n                                                                                                                                                                                                                                                                                                                                                                            *   console.log(this.title);\r\n                                                                                                                                                                                                                                                                                                                                                                            * }, 1000)\r\n                                                                                                                                                                                                                                                                                                                                                                            */function debounce(fn, wait) {var timer = false;return function () {var _arguments = arguments,_this = this;clearTimeout(timer);timer && clearTimeout(timer);timer = setTimeout(function () {timer = false;fn.apply(_this, _arguments); // 鎶婂弬鏁颁紶杩涘幓\n    }, wait);};}var _default2 = { name: 'qiun-data-charts', mixins: [uniCloud.mixinDatacom], props: { type: { type: String, default: null }, canvasId: { type: String, default: 'uchartsid' }, canvas2d: { type: Boolean, default: false }, background: { type: String, default: 'rgba(0,0,0,0)' }, animation: { type: Boolean, default: true }, chartData: { type: Object, default: function _default() {return { categories: [], series: [] };} }, opts: { type: Object, default: function _default() {return {};} }, eopts: { type: Object, default: function _default() {return {};} }, loadingType: { type: Number, default: 2 }, errorShow: { type: Boolean, default: true }, errorReload: { type: Boolean, default: true }, errorMessage: { type: String, default: null }, inScrollView: { type: Boolean, default: false }, reshow: { type: Boolean, default: false }, reload: { type: Boolean, default: false }, disableScroll: { type: Boolean, default: false }, optsWatch: { type: Boolean, default: true }, onzoom: { type: Boolean, default: false }, ontap: { type: Boolean, default: true }, ontouch: { type: Boolean, default: false }, onmouse: { type: Boolean, default: true }, onmovetip: { type: Boolean, default: false }, echartsH5: { type: Boolean, default: false },\n    echartsApp: {\n      type: Boolean,\n      default: false },\n\n    tooltipShow: {\n      type: Boolean,\n      default: true },\n\n    tooltipFormat: {\n      type: String,\n      default: undefined },\n\n    tooltipCustom: {\n      type: Object,\n      default: undefined },\n\n    startDate: {\n      type: String,\n      default: undefined },\n\n    endDate: {\n      type: String,\n      default: undefined },\n\n    textEnum: {\n      type: Array,\n      default: function _default() {\n        return [];\n      } },\n\n    groupEnum: {\n      type: Array,\n      default: function _default() {\n        return [];\n      } },\n\n    pageScrollTop: {\n      type: Number,\n      default: 0 },\n\n    directory: {\n      type: String,\n      default: '/' },\n\n    tapLegend: {\n      type: Boolean,\n      default: true },\n\n    menus: {\n      type: Array,\n      default: function _default() {\n        return [];\n      } } },\n\n\n  data: function data() {\n    return {\n      cid: 'uchartsid',\n      inWx: false,\n      inAli: false,\n      inTt: false,\n      inBd: false,\n      inH5: false,\n      inApp: false,\n      inWin: false,\n      type2d: true,\n      disScroll: false,\n      openmouse: false,\n      pixel: 1,\n      cWidth: 375,\n      cHeight: 250,\n      showchart: false,\n      echarts: false,\n      echartsResize: {\n        state: false },\n\n      uchartsOpts: {},\n      echartsOpts: {},\n      drawData: {},\n      lastDrawTime: null };\n\n  },\n  created: function created() {\n    this.cid = this.canvasId;\n    if (this.canvasId == 'uchartsid' || this.canvasId == '') {\n      var t = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';\n      var len = t.length;\n      var id = '';\n      for (var i = 0; i < 32; i++) {\n        id += t.charAt(Math.floor(Math.random() * len));\n      }\n      this.cid = id;\n    }\n    var systemInfo = uni.getSystemInfoSync();\n    if (systemInfo.platform === 'windows' || systemInfo.platform === 'mac') {\n      this.inWin = true;\n    }\n\n\n\n\n\n\n\n\n\n    //闈炲井淇″皬绋嬪簭绔己鍒跺叧闂璫anvas2d妯″紡\n\n    this.type2d = false;\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n    this.disScroll = this.disableScroll;\n  },\n  mounted: function mounted() {var _this2 = this;\n\n    this.inApp = true;\n    if (this.echartsApp === true) {\n      this.echarts = true;\n      this.openmouse = false;\n    }\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n    this.$nextTick(function () {\n      _this2.beforeInit();\n    });\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n  },\n  destroyed: function destroyed() {\n    if (this.echarts === true) {\n      delete _configEcharts.default.option[this.cid];\n      delete _configEcharts.default.instance[this.cid];\n    } else {\n      delete _configUcharts.default.option[this.cid];\n      delete _configUcharts.default.instance[this.cid];\n    }\n\n    uni.offWindowResize(function () {});\n\n  },\n  watch: {\n    chartDataProps: {\n      handler: function handler(val, oldval) {\n        if (typeof val === 'object') {\n          if (JSON.stringify(val) !== JSON.stringify(oldval)) {\n            this._clearChart();\n            if (val.series && val.series.length > 0) {\n              this.beforeInit();\n            } else {\n              this.mixinDatacomLoading = true;\n              this.showchart = false;\n              this.mixinDatacomErrorMessage = null;\n            }\n          }\n        } else {\n          this.mixinDatacomLoading = false;\n          this._clearChart();\n          this.showchart = false;\n          this.mixinDatacomErrorMessage = '鍙傛暟閿欒锛歝hartData鏁版嵁绫诲瀷閿欒';\n        }\n      },\n      immediate: false,\n      deep: true },\n\n    localdata: {\n      handler: function handler(val, oldval) {\n        if (JSON.stringify(val) !== JSON.stringify(oldval)) {\n          if (val.length > 0) {\n            this.beforeInit();\n          } else {\n            this.mixinDatacomLoading = true;\n            this._clearChart();\n            this.showchart = false;\n            this.mixinDatacomErrorMessage = null;\n          }\n        }\n      },\n      immediate: false,\n      deep: true },\n\n    optsProps: {\n      handler: function handler(val, oldval) {\n        if (typeof val === 'object') {\n          if (JSON.stringify(val) !== JSON.stringify(oldval) && this.echarts === false && this.optsWatch == true) {\n            this.checkData(this.drawData);\n          }\n        } else {\n          this.mixinDatacomLoading = false;\n          this._clearChart();\n          this.showchart = false;\n          this.mixinDatacomErrorMessage = '鍙傛暟閿欒锛歰pts鏁版嵁绫诲瀷閿欒';\n        }\n      },\n      immediate: false,\n      deep: true },\n\n    eoptsProps: {\n      handler: function handler(val, oldval) {\n        if (typeof val === 'object') {\n          if (JSON.stringify(val) !== JSON.stringify(oldval) && this.echarts === true) {\n            this.checkData(this.drawData);\n          }\n        } else {\n          this.mixinDatacomLoading = false;\n          this.showchart = false;\n          this.mixinDatacomErrorMessage = '鍙傛暟閿欒锛歟opts鏁版嵁绫诲瀷閿欒';\n        }\n      },\n      immediate: false,\n      deep: true },\n\n    reshow: function reshow(val, oldval) {var _this3 = this;\n      if (val === true && this.mixinDatacomLoading === false) {\n        setTimeout(function () {\n          _this3.mixinDatacomErrorMessage = null;\n          _this3.echartsResize.state = !_this3.echartsResize.state;\n          _this3.checkData(_this3.drawData);\n        }, 200);\n      }\n    },\n    reload: function reload(val, oldval) {\n      if (val === true) {\n        this.showchart = false;\n        this.mixinDatacomErrorMessage = null;\n        this.reloading();\n      }\n    },\n    mixinDatacomErrorMessage: function mixinDatacomErrorMessage(val, oldval) {\n      if (val) {\n        this.emitMsg({ name: 'error', params: { type: \"error\", errorShow: this.errorShow, msg: val, id: this.cid } });\n        if (this.errorShow) {\n          __f__(\"log\", '[绉嬩簯鍥捐〃缁勪欢]' + val, \" at uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue:611\");\n        }\n      }\n    },\n    errorMessage: function errorMessage(val, oldval) {\n      if (val && this.errorShow && val !== null && val !== 'null' && val !== '') {\n        this.showchart = false;\n        this.mixinDatacomLoading = false;\n        this.mixinDatacomErrorMessage = val;\n      } else {\n        this.showchart = false;\n        this.mixinDatacomErrorMessage = null;\n        this.reloading();\n      }\n    } },\n\n  computed: {\n    optsProps: function optsProps() {\n      return JSON.parse(JSON.stringify(this.opts));\n    },\n    eoptsProps: function eoptsProps() {\n      return JSON.parse(JSON.stringify(this.eopts));\n    },\n    chartDataProps: function chartDataProps() {\n      return JSON.parse(JSON.stringify(this.chartData));\n    } },\n\n  methods: {\n    beforeInit: function beforeInit() {\n      this.mixinDatacomErrorMessage = null;\n      if (typeof this.chartData === 'object' && this.chartData != null && this.chartData.series !== undefined && this.chartData.series.length > 0) {\n        //鎷疯礉涓�涓媍hartData锛屼负浜唎pts鍙樻洿鍚庣粺涓�鏁版嵁鏉ユ簮\n        this.drawData = deepCloneAssign({}, this.chartData);\n        this.mixinDatacomLoading = false;\n        this.showchart = true;\n        this.checkData(this.chartData);\n      } else if (this.localdata.length > 0) {\n        this.mixinDatacomLoading = false;\n        this.showchart = true;\n        this.localdataInit(this.localdata);\n      } else if (this.collection !== '') {\n        this.mixinDatacomLoading = false;\n        this.getCloudData();\n      } else {\n        this.mixinDatacomLoading = true;\n      }\n    },\n    localdataInit: function localdataInit(resdata) {\n      //鏇挎崲enum绫诲瀷涓烘纭殑鎻忚堪\n      if (this.groupEnum.length > 0) {\n        for (var i = 0; i < resdata.length; i++) {\n          for (var j = 0; j < this.groupEnum.length; j++) {\n            if (resdata[i].group === this.groupEnum[j].value) {\n              resdata[i].group = this.groupEnum[j].text;\n            }\n          }\n        }\n      }\n      if (this.textEnum.length > 0) {\n        for (var _i = 0; _i < resdata.length; _i++) {\n          for (var _j = 0; _j < this.textEnum.length; _j++) {\n            if (resdata[_i].text === this.textEnum[_j].value) {\n              resdata[_i].text = this.textEnum[_j].text;\n            }\n          }\n        }\n      }\n      var needCategories = false;\n      var tmpData = { categories: [], series: [] };\n      var tmpcategories = [];\n      var tmpseries = [];\n      //鎷兼帴categories\n      if (this.echarts === true) {\n        needCategories = _configEcharts.default.categories.includes(this.type);\n      } else {\n        needCategories = _configUcharts.default.categories.includes(this.type);\n      }\n      if (needCategories === true) {\n        //濡傛灉props涓殑chartData甯︽湁categories锛屽垯浼樺厛浣跨敤chartData鐨刢ategories\n        if (this.chartData && this.chartData.categories && this.chartData.categories.length > 0) {\n          tmpcategories = this.chartData.categories;\n        } else {\n          //濡傛灉鏄棩鏈熺被鍨嬬殑鏁版嵁锛屼笉绠℃槸鏈湴鏁版嵁杩樻槸浜戞暟鎹紝閮芥寜璧锋鏃ユ湡鑷姩鎷兼帴categories\n          if (this.startDate && this.endDate) {\n            var idate = new Date(this.startDate);\n            var edate = new Date(this.endDate);\n            while (idate <= edate) {\n              tmpcategories.push(getFormatDate(idate));\n              idate = idate.setDate(idate.getDate() + 1);\n              idate = new Date(idate);\n            }\n            //鍚﹀垯浠庣粨鏋滀腑鍘婚噸骞舵嫾鎺ategories\n          } else {\n            var tempckey = {};\n            resdata.map(function (item, index) {\n              if (item.text != undefined && !tempckey[item.text]) {\n                tmpcategories.push(item.text);\n                tempckey[item.text] = true;\n              }\n            });\n          }\n        }\n        tmpData.categories = tmpcategories;\n      }\n      //鎷兼帴series\n      var tempskey = {};\n      resdata.map(function (item, index) {\n        if (item.group != undefined && !tempskey[item.group]) {\n          tmpseries.push({ name: item.group, data: [] });\n          tempskey[item.group] = true;\n        }\n      });\n      //濡傛灉娌℃湁鑾峰彇鍒板垎缁勫悕绉�(鍙兘鏄甫categories鐨勬暟鎹紝涔熷彲鑳芥槸涓嶅甫鐨勯ゼ鍥剧被)\n      if (tmpseries.length == 0) {\n        tmpseries = [{ name: '榛樿鍒嗙粍', data: [] }];\n        //濡傛灉鏄渶瑕乧ategories鐨勫浘琛ㄧ被鍨媆n        if (needCategories === true) {\n          for (var _j2 = 0; _j2 < tmpcategories.length; _j2++) {\n            var seriesdata = 0;\n            for (var _i2 = 0; _i2 < resdata.length; _i2++) {\n              if (resdata[_i2].text == tmpcategories[_j2]) {\n                seriesdata = resdata[_i2].value;\n              }\n            }\n            tmpseries[0].data.push(seriesdata);\n          }\n          //濡傛灉鏄ゼ鍥剧被鐨勫浘琛ㄧ被鍨媆n        } else {\n          for (var _i3 = 0; _i3 < resdata.length; _i3++) {\n            tmpseries[0].data.push({ \"name\": resdata[_i3].text, \"value\": resdata[_i3].value });\n          }\n        }\n        //濡傛灉鏈夊垎缁勫悕\n      } else {\n        for (var k = 0; k < tmpseries.length; k++) {\n          //濡傛灉鏈塩ategories\n          if (tmpcategories.length > 0) {\n            for (var _j3 = 0; _j3 < tmpcategories.length; _j3++) {\n              var _seriesdata = 0;\n              for (var _i4 = 0; _i4 < resdata.length; _i4++) {\n                if (tmpseries[k].name == resdata[_i4].group && resdata[_i4].text == tmpcategories[_j3]) {\n                  _seriesdata = resdata[_i4].value;\n                }\n              }\n              tmpseries[k].data.push(_seriesdata);\n            }\n            //濡傛灉浼犱簡group鑰屾病鏈変紶text锛屽嵆娌℃湁categories锛堟甯告儏鍐典笅杩欑鏁版嵁鏄笉绗﹀悎鏁版嵁瑕佹眰瑙勮寖鐨勶級\n          } else {\n            for (var _i5 = 0; _i5 < resdata.length; _i5++) {\n              if (tmpseries[k].name == resdata[_i5].group) {\n                tmpseries[k].data.push(resdata[_i5].value);\n              }\n            }\n          }\n        }\n      }\n      tmpData.series = tmpseries;\n      //鎷疯礉涓�涓媍hartData锛屼负浜唎pts鍙樻洿鍚庣粺涓�鏁版嵁鏉ユ簮\n      this.drawData = deepCloneAssign({}, tmpData);\n      this.checkData(tmpData);\n    },\n    reloading: function reloading() {\n      if (this.errorReload === false) {\n        return;\n      }\n      this.showchart = false;\n      this.mixinDatacomErrorMessage = null;\n      if (this.collection !== '') {\n        this.mixinDatacomLoading = false;\n        this.onMixinDatacomPropsChange(true);\n      } else {\n        this.beforeInit();\n      }\n    },\n    checkData: function checkData(anyData) {var _this4 = this;\n      var cid = this.cid;\n      //澶嶄綅opts鎴杄opts\n      if (this.echarts === true) {\n        _configEcharts.default.option[cid] = deepCloneAssign({}, this.eopts);\n        _configEcharts.default.option[cid].id = cid;\n        _configEcharts.default.option[cid].type = this.type;\n      } else {\n        if (this.type && _configUcharts.default.type.includes(this.type)) {\n          _configUcharts.default.option[cid] = deepCloneAssign({}, _configUcharts.default[this.type], this.opts);\n          _configUcharts.default.option[cid].canvasId = cid;\n        } else {\n          this.mixinDatacomLoading = false;\n          this.showchart = false;\n          this.mixinDatacomErrorMessage = '鍙傛暟閿欒锛歱rops鍙傛暟涓璽ype绫诲瀷涓嶆纭�';\n        }\n      }\n      //鎸傝浇categories鍜宻eries\n      var newData = deepCloneAssign({}, anyData);\n      if (newData.series !== undefined && newData.series.length > 0) {\n        this.mixinDatacomErrorMessage = null;\n        if (this.echarts === true) {\n          _configEcharts.default.option[cid].chartData = newData;\n          this.$nextTick(function () {\n            _this4.init();\n          });\n        } else {\n          _configUcharts.default.option[cid].categories = newData.categories;\n          _configUcharts.default.option[cid].series = newData.series;\n          this.$nextTick(function () {\n            _this4.init();\n          });\n        }\n      }\n    },\n    resizeHandler: function resizeHandler() {var _this5 = this;\n      //娓叉煋闃叉姈\n      var currTime = Date.now();\n      var lastDrawTime = this.lastDrawTime ? this.lastDrawTime : currTime - 3000;\n      var duration = currTime - lastDrawTime;\n      if (duration < 1000) return;\n      var chartdom = uni.\n      createSelectorQuery().\n\n      in(this).\n\n      select('#ChartBoxId' + this.cid).\n      boundingClientRect(function (data) {\n        _this5.showchart = true;\n        if (data.width > 0 && data.height > 0) {\n          if (data.width !== _this5.cWidth || data.height !== _this5.cHeight) {\n            _this5.checkData(_this5.drawData);\n          }\n        }\n      }).\n      exec();\n    },\n    getCloudData: function getCloudData() {var _this6 = this;\n      if (this.mixinDatacomLoading == true) {\n        return;\n      }\n      this.mixinDatacomLoading = true;\n      this.mixinDatacomGet().\n      then(function (res) {\n        _this6.mixinDatacomResData = res.result.data;\n        _this6.localdataInit(_this6.mixinDatacomResData);\n      }).\n      catch(function (err) {\n        _this6.mixinDatacomLoading = false;\n        _this6.showchart = false;\n        _this6.mixinDatacomErrorMessage = '璇锋眰閿欒锛�' + err;\n      });\n    },\n    onMixinDatacomPropsChange: function onMixinDatacomPropsChange(needReset, changed) {\n      if (needReset == true && this.collection !== '') {\n        this.showchart = false;\n        this.mixinDatacomErrorMessage = null;\n        this._clearChart();\n        this.getCloudData();\n      }\n    },\n    _clearChart: function _clearChart() {\n      var cid = this.cid;\n      if (this.echarts !== true && _configUcharts.default.option[cid] && _configUcharts.default.option[cid].context) {\n        var ctx = _configUcharts.default.option[cid].context;\n        if (typeof ctx === \"object\" && !!!_configUcharts.default.option[cid].update) {\n          ctx.clearRect(0, 0, this.cWidth * this.pixel, this.cHeight * this.pixel);\n          ctx.draw();\n        }\n      }\n    },\n    init: function init() {var _this7 = this;\n      var cid = this.cid;\n      var chartdom = uni.\n      createSelectorQuery().\n\n      in(this).\n\n      select('#ChartBoxId' + cid).\n      boundingClientRect(function (data) {\n        if (data.width > 0 && data.height > 0) {\n          _this7.mixinDatacomLoading = false;\n          _this7.showchart = true;\n          _this7.lastDrawTime = Date.now();\n          _this7.cWidth = data.width;\n          _this7.cHeight = data.height;\n          if (_this7.echarts !== true) {\n            _configUcharts.default.option[cid].background = _this7.background == 'rgba(0,0,0,0)' ? '#FFFFFF' : _this7.background;\n            _configUcharts.default.option[cid].canvas2d = _this7.type2d;\n            _configUcharts.default.option[cid].pixelRatio = _this7.pixel;\n            _configUcharts.default.option[cid].animation = _this7.animation;\n            _configUcharts.default.option[cid].width = data.width * _this7.pixel;\n            _configUcharts.default.option[cid].height = data.height * _this7.pixel;\n            _configUcharts.default.option[cid].onzoom = _this7.onzoom;\n            _configUcharts.default.option[cid].ontap = _this7.ontap;\n            _configUcharts.default.option[cid].ontouch = _this7.ontouch;\n            _configUcharts.default.option[cid].onmouse = _this7.openmouse;\n            _configUcharts.default.option[cid].onmovetip = _this7.onmovetip;\n            _configUcharts.default.option[cid].tooltipShow = _this7.tooltipShow;\n            _configUcharts.default.option[cid].tooltipFormat = _this7.tooltipFormat;\n            _configUcharts.default.option[cid].tooltipCustom = _this7.tooltipCustom;\n            _configUcharts.default.option[cid].inScrollView = _this7.inScrollView;\n            _configUcharts.default.option[cid].lastDrawTime = _this7.lastDrawTime;\n            _configUcharts.default.option[cid].tapLegend = _this7.tapLegend;\n          }\n          //濡傛灉鏄疕5鎴栬�匒pp绔紝閲囩敤renderjs娓叉煋鍥捐〃\n          if (_this7.inH5 || _this7.inApp) {\n            if (_this7.echarts == true) {\n              _configEcharts.default.option[cid].ontap = _this7.ontap;\n              _configEcharts.default.option[cid].onmouse = _this7.openmouse;\n              _configEcharts.default.option[cid].tooltipShow = _this7.tooltipShow;\n              _configEcharts.default.option[cid].tooltipFormat = _this7.tooltipFormat;\n              _configEcharts.default.option[cid].tooltipCustom = _this7.tooltipCustom;\n              _configEcharts.default.option[cid].lastDrawTime = _this7.lastDrawTime;\n              _this7.echartsOpts = deepCloneAssign({}, _configEcharts.default.option[cid]);\n            } else {\n              _configUcharts.default.option[cid].rotateLock = _configUcharts.default.option[cid].rotate;\n              _this7.uchartsOpts = deepCloneAssign({}, _configUcharts.default.option[cid]);\n            }\n            //濡傛灉鏄皬绋嬪簭绔紝閲囩敤uCharts娓叉煋\n          } else {\n            _configUcharts.default.option[cid] = formatterAssign(_configUcharts.default.option[cid], _configUcharts.default.formatter);\n            _this7.mixinDatacomErrorMessage = null;\n            _this7.mixinDatacomLoading = false;\n            _this7.showchart = true;\n            _this7.$nextTick(function () {\n              if (_this7.type2d === true) {\n                var query = uni.createSelectorQuery().in(_this7);\n                query.\n                select('#' + cid).\n                fields({ node: true, size: true }).\n                exec(function (res) {\n                  if (res[0]) {\n                    var canvas = res[0].node;\n                    var ctx = canvas.getContext('2d');\n                    _configUcharts.default.option[cid].context = ctx;\n                    _configUcharts.default.option[cid].rotateLock = _configUcharts.default.option[cid].rotate;\n                    if (_configUcharts.default.instance[cid] && _configUcharts.default.option[cid] && _configUcharts.default.option[cid].update === true) {\n                      _this7._updataUChart(cid);\n                    } else {\n                      canvas.width = data.width * _this7.pixel;\n                      canvas.height = data.height * _this7.pixel;\n                      canvas._width = data.width * _this7.pixel;\n                      canvas._height = data.height * _this7.pixel;\n                      setTimeout(function () {\n                        _configUcharts.default.option[cid].context.restore();\n                        _configUcharts.default.option[cid].context.save();\n                        _this7._newChart(cid);\n                      }, 100);\n                    }\n                  } else {\n                    _this7.showchart = false;\n                    _this7.mixinDatacomErrorMessage = '鍙傛暟閿欒锛氬紑鍚�2d妯″紡鍚庯紝鏈幏鍙栧埌dom鑺傜偣锛宑anvas-id:' + cid;\n                  }\n                });\n              } else {\n                if (_this7.inAli) {\n                  _configUcharts.default.option[cid].rotateLock = _configUcharts.default.option[cid].rotate;\n                }\n                _configUcharts.default.option[cid].context = uni.createCanvasContext(cid, _this7);\n                if (_configUcharts.default.instance[cid] && _configUcharts.default.option[cid] && _configUcharts.default.option[cid].update === true) {\n                  _this7._updataUChart(cid);\n                } else {\n                  setTimeout(function () {\n                    _configUcharts.default.option[cid].context.restore();\n                    _configUcharts.default.option[cid].context.save();\n                    _this7._newChart(cid);\n                  }, 100);\n                }\n              }\n            });\n          }\n        } else {\n          _this7.mixinDatacomLoading = false;\n          _this7.showchart = false;\n          if (_this7.reshow == true) {\n            _this7.mixinDatacomErrorMessage = '甯冨眬閿欒锛氭湭鑾峰彇鍒扮埗鍏冪礌瀹介珮灏哄锛乧anvas-id:' + cid;\n          }\n        }\n      }).\n      exec();\n    },\n    saveImage: function saveImage() {\n      uni.canvasToTempFilePath({\n        canvasId: this.cid,\n        success: function success(res) {\n\n\n\n\n\n\n\n\n          uni.saveImageToPhotosAlbum({\n            filePath: res.tempFilePath,\n            success: function success() {\n              uni.showToast({\n                title: '淇濆瓨鎴愬姛',\n                duration: 2000 });\n\n            } });\n\n\n        } },\n      this);\n    },\n    getImage: function getImage() {var _this8 = this;\n      if (this.type2d == false) {\n        uni.canvasToTempFilePath({\n          canvasId: this.cid,\n          success: function success(res) {\n            _this8.emitMsg({ name: 'getImage', params: { type: \"getImage\", base64: res.tempFilePath } });\n          } },\n        this);\n      } else {\n        var query = uni.createSelectorQuery().in(this);\n        query.\n        select('#' + this.cid).\n        fields({ node: true, size: true }).\n        exec(function (res) {\n          if (res[0]) {\n            var canvas = res[0].node;\n            _this8.emitMsg({ name: 'getImage', params: { type: \"getImage\", base64: canvas.toDataURL('image/png') } });\n          }\n        });\n      }\n    },\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n    _error: function _error(e) {\n      this.mixinDatacomErrorMessage = e.detail.errMsg;\n    },\n    emitMsg: function emitMsg(msg) {\n      this.$emit(msg.name, msg.params);\n    },\n    getRenderType: function getRenderType() {\n      //闃叉濡傛灉寮�鍚痚charts涓旂埗鍏冪礌涓簐-if鐨勬儏鍐祌enderjs鐩戝惉涓嶅埌prop鍙樺寲鐨勯棶棰榎n      if (this.echarts === true && this.mixinDatacomLoading === false) {\n        this.beforeInit();\n      }\n    },\n    toJSON: function toJSON() {\n      return this;\n    } } };exports.default = _default2;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/uni-cloud/dist/index.js */ 58)[\"default\"], __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 10)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tZGF0YS1jaGFydHMvcWl1bi1kYXRhLWNoYXJ0cy52dWUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUE4SkE7QUFDQTs7QUFFQSxvSDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUdBLCtQQUNBLHFCQUNBLDBCQUNBLGtDQUNBLGtLQUNBLENBQ0EsQ0FDQSxDQUNBLGNBQ0EsQ0FFQSwyQ0FDQSx1QkFDQSxzRkFDQSxzQ0FDQSxDQUZBLE1BRUEsd0RBQ0EsNEVBQ0EsQ0FDQSxDQUNBLFlBQ0EsQyxDQUVBO0FBQ0EsOEJBQ0Esb0JBQ0EsOEJBQ0EsZ0NBQ0EsNkJBQ0EsK0JBQ0Esb0JBQ0EsQ0FDQSxtQ0FDQSx3QkFDQSxDQUNBLGlFQUNBLG1CQUNBLENBRUEsd0IsQ0FDQTs7Ozs7Ozs7Ozs7Ozs7OzhXQWdCQSw2QkFDQSxrQkFDQSw0REFDQSxvQkFDQSw2QkFDQSxnQ0FDQSxjQUNBLDRCQUZBLENBRUE7QUFDQSxLQUhBLEVBR0EsSUFIQSxFQUlBLENBUEEsQ0FRQSxDLGdCQUVBLEVBQ0Esd0JBREEsRUFFQSwrQkFGQSxFQUdBLFNBQ0EsUUFDQSxZQURBLEVBRUEsYUFGQSxFQURBLEVBS0EsWUFDQSxZQURBLEVBRUEsb0JBRkEsRUFMQSxF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QUE2VkEsYUE3VkEsdUJBNlZBO0FBQ0E7QUFDQSwwQkFEQTtBQUVBOzs7Ozs7Ozs7QUFTQTtBQUNBLHNDQURBO0FBRUE7QUFDQTtBQUNBLDZCQURBO0FBRUEsOEJBRkE7O0FBSUEsYUFQQTs7O0FBVUEsU0FyQkE7QUFzQkEsVUF0QkE7QUF1QkEsS0FyWEE7QUFzWEEsWUF0WEEsc0JBc1hBO0FBQ0E7QUFDQTtBQUNBLDRCQURBO0FBRUE7QUFDQTtBQUNBLFdBSkE7QUFLQSxZQUxBO0FBTUEsT0FQQSxNQU9BO0FBQ0E7QUFDQTtBQUNBLGNBREEsQ0FDQSxjQURBO0FBRUEsY0FGQSxDQUVBLDBCQUZBO0FBR0EsWUFIQSxDQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQVJBO0FBU0E7QUFDQSxLQTFZQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUE4aUJBLFVBOWlCQSxrQkE4aUJBLENBOWlCQSxFQThpQkE7QUFDQTtBQUNBLEtBaGpCQTtBQWlqQkEsV0FqakJBLG1CQWlqQkEsR0FqakJBLEVBaWpCQTtBQUNBO0FBQ0EsS0FuakJBO0FBb2pCQSxpQkFwakJBLDJCQW9qQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBempCQTtBQTBqQkEsVUExakJBLG9CQTBqQkE7QUFDQTtBQUNBLEtBNWpCQSxFQXRaQSxFIiwiZmlsZSI6IjU3LmpzIiwic291cmNlc0NvbnRlbnQiOlsiPCEtLSBcclxuICogcWl1bi1kYXRhLWNoYXJ0cyDnp4vkupHpq5jmgKfog73ot6jlhajnq6/lm77ooajnu4Tku7ZcclxuICogQ29weXJpZ2h0IChjKSAyMDIxIFFJVU7CriDnp4vkupEgaHR0cHM6Ly93d3cudWNoYXJ0cy5jbiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG4gKiBMaWNlbnNlZCAoIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMCApXHJcbiAqIOWkjeWItuS9v+eUqOivt+S/neeVmeacrOauteazqOmHiu+8jOaEn+iwouaUr+aMgeW8gOa6kO+8gVxyXG4gKiDkuLrmlrnkvr/mm7TlpJrlvIDlj5HogIXkvb/nlKjvvIzlpoLmnInmm7Tlpb3nmoTlu7rorq7or7fmj5DkuqTnoIHkupEgUHVsbCBSZXF1ZXN0cyDvvIFcclxuICpcclxuICogdUNoYXJ0c8Ku5a6Y5pa5572R56uZXHJcbiAqIGh0dHBzOi8vd3d3LnVDaGFydHMuY25cclxuICogXHJcbiAqIOW8gOa6kOWcsOWdgDpcclxuICogaHR0cHM6Ly9naXRlZS5jb20vdUNoYXJ0cy91Q2hhcnRzXHJcbiAqIFxyXG4gKiB1bmktYXBw5o+S5Lu25biC5Zy65Zyw5Z2A77yaXHJcbiAqIGh0dHA6Ly9leHQuZGNsb3VkLm5ldC5jbi9wbHVnaW4/aWQ9MjcxXHJcbiAqIFxyXG4gLS0+XHJcbjx0ZW1wbGF0ZT5cclxuICA8dmlldyBjbGFzcz1cImNoYXJ0c3ZpZXdcIiA6aWQ9XCInQ2hhcnRCb3hJZCcrY2lkXCI+XHJcbiAgICA8dmlldyB2LWlmPVwibWl4aW5EYXRhY29tTG9hZGluZ1wiPlxyXG4gICAgICA8IS0tIOiHquWumuS5ieWKoOi9veeKtuaAge+8jOivt+aUuei/memHjCAtLT5cclxuICAgICAgPHFpdW4tbG9hZGluZyA6bG9hZGluZ1R5cGU9XCJsb2FkaW5nVHlwZVwiIC8+XHJcbiAgICA8L3ZpZXc+XHJcbiAgICA8dmlldyB2LWlmPVwibWl4aW5EYXRhY29tRXJyb3JNZXNzYWdlICYmIGVycm9yU2hvd1wiIEB0YXA9XCJyZWxvYWRpbmdcIj5cclxuICAgICAgPCEtLSDoh6rlrprkuYnplJnor6/mj5DnpLrvvIzor7fmlLnov5nph4wgLS0+XHJcbiAgICAgIDxxaXVuLWVycm9yIDplcnJvck1lc3NhZ2U9XCJlcnJvck1lc3NhZ2VcIiAvPlxyXG4gICAgPC92aWV3PlxyXG4gICAgPCEtLSBBUFDlkoxINemHh+eUqHJlbmRlcmpz5riy5p+T5Zu+6KGoIC0tPlxyXG4gICAgPCEtLSAjaWZkZWYgQVBQLVZVRSB8fCBINSAtLT5cclxuICAgIDxibG9jayB2LWlmPVwiZWNoYXJ0c1wiPlxyXG4gICAgICA8dmlld1xyXG4gICAgICAgIDpzdHlsZT1cInsgYmFja2dyb3VuZDogYmFja2dyb3VuZCB9XCJcclxuICAgICAgICBzdHlsZT1cIndpZHRoOiAxMDAlO2hlaWdodDogMTAwJTtcIlxyXG4gICAgICAgIDpkYXRhLWRpcmVjdG9yeT1cImRpcmVjdG9yeVwiXHJcbiAgICAgICAgOmlkPVwiJ0VDJytjaWRcIiBcclxuICAgICAgICA6cHJvcD1cImVjaGFydHNPcHRzXCIgXHJcbiAgICAgICAgOmNoYW5nZTpwcm9wPVwicmRjaGFydHMuZWNpbml0XCIgXHJcbiAgICAgICAgOnJlc2l6ZT1cImVjaGFydHNSZXNpemVcIlxyXG4gICAgICAgIDpjaGFuZ2U6cmVzaXplPVwicmRjaGFydHMuZWNyZXNpemVcIlxyXG4gICAgICAgIHYtc2hvdz1cInNob3djaGFydFwiXHJcbiAgICAgIC8+XHJcbiAgICA8L2Jsb2NrPlxyXG4gICAgPGJsb2NrIHYtZWxzZT5cclxuICAgICAgPHZpZXdcclxuICAgICAgICB2LW9uOnRhcD1cInJkY2hhcnRzLnRhcFwiXHJcbiAgICAgICAgdi1vbjptb3VzZW1vdmU9XCJyZGNoYXJ0cy5tb3VzZU1vdmVcIlxyXG4gICAgICAgIHYtb246bW91c2Vkb3duPVwicmRjaGFydHMubW91c2VEb3duXCJcclxuICAgICAgICB2LW9uOm1vdXNldXA9XCJyZGNoYXJ0cy5tb3VzZVVwXCJcclxuICAgICAgICB2LW9uOnRvdWNoc3RhcnQ9XCJyZGNoYXJ0cy50b3VjaFN0YXJ0XCJcclxuICAgICAgICB2LW9uOnRvdWNobW92ZT1cInJkY2hhcnRzLnRvdWNoTW92ZVwiXHJcbiAgICAgICAgdi1vbjp0b3VjaGVuZD1cInJkY2hhcnRzLnRvdWNoRW5kXCJcclxuICAgICAgICA6aWQ9XCInVUMnK2NpZFwiXHJcbiAgICAgICAgOnByb3A9XCJ1Y2hhcnRzT3B0c1wiXHJcbiAgICAgICAgOmNoYW5nZTpwcm9wPVwicmRjaGFydHMudWNpbml0XCJcclxuICAgICAgPlxyXG4gICAgICAgIDxjYW52YXNcclxuICAgICAgICAgIDppZD1cImNpZFwiXHJcbiAgICAgICAgICA6Y2FudmFzSWQ9XCJjaWRcIlxyXG4gICAgICAgICAgOnN0eWxlPVwieyB3aWR0aDogY1dpZHRoICsgJ3B4JywgaGVpZ2h0OiBjSGVpZ2h0ICsgJ3B4JywgYmFja2dyb3VuZDogYmFja2dyb3VuZCB9XCJcclxuICAgICAgICAgIDpkaXNhYmxlLXNjcm9sbD1cImRpc2FibGVTY3JvbGxcIlxyXG4gICAgICAgICAgQGVycm9yPVwiX2Vycm9yXCJcclxuICAgICAgICAgIHYtc2hvdz1cInNob3djaGFydFwiXHJcbiAgICAgICAgLz5cclxuICAgICAgPC92aWV3PlxyXG4gICAgPC9ibG9jaz5cclxuICAgIDwhLS0gI2VuZGlmIC0tPlxyXG4gICAgPCEtLSDmlK/ku5jlrp3lsI/nqIvluo8gLS0+XHJcbiAgICA8IS0tICNpZmRlZiBNUC1BTElQQVkgLS0+XHJcbiAgICA8YmxvY2sgdi1pZj1cIm9udG91Y2hcIj5cclxuICAgICAgPGNhbnZhc1xyXG4gICAgICAgIDppZD1cImNpZFwiXHJcbiAgICAgICAgOmNhbnZhc0lkPVwiY2lkXCJcclxuICAgICAgICA6d2lkdGg9XCJjV2lkdGggKiBwaXhlbFwiXHJcbiAgICAgICAgOmhlaWdodD1cImNIZWlnaHQgKiBwaXhlbFwiXHJcbiAgICAgICAgOnN0eWxlPVwieyB3aWR0aDogY1dpZHRoICsgJ3B4JywgaGVpZ2h0OiBjSGVpZ2h0ICsgJ3B4JywgYmFja2dyb3VuZDogYmFja2dyb3VuZCB9XCJcclxuICAgICAgICA6ZGlzYWJsZS1zY3JvbGw9XCJkaXNTY3JvbGxcIlxyXG4gICAgICAgIEB0YXA9XCJfdGFwXCJcclxuICAgICAgICBAdG91Y2hzdGFydD1cIl90b3VjaFN0YXJ0XCJcclxuICAgICAgICBAdG91Y2htb3ZlPVwiX3RvdWNoTW92ZVwiXHJcbiAgICAgICAgQHRvdWNoZW5kPVwiX3RvdWNoRW5kXCJcclxuICAgICAgICBAZXJyb3I9XCJfZXJyb3JcIlxyXG4gICAgICAgIHYtc2hvdz1cInNob3djaGFydFwiXHJcbiAgICAgIC8+XHJcbiAgICA8L2Jsb2NrPlxyXG4gICAgPGJsb2NrIHYtaWY9XCIhb250b3VjaFwiPlxyXG4gICAgICA8Y2FudmFzXHJcbiAgICAgICAgOmlkPVwiY2lkXCJcclxuICAgICAgICA6Y2FudmFzSWQ9XCJjaWRcIlxyXG4gICAgICAgIDp3aWR0aD1cImNXaWR0aCAqIHBpeGVsXCJcclxuICAgICAgICA6aGVpZ2h0PVwiY0hlaWdodCAqIHBpeGVsXCJcclxuICAgICAgICA6c3R5bGU9XCJ7IHdpZHRoOiBjV2lkdGggKyAncHgnLCBoZWlnaHQ6IGNIZWlnaHQgKyAncHgnLCBiYWNrZ3JvdW5kOiBiYWNrZ3JvdW5kIH1cIlxyXG4gICAgICAgIDpkaXNhYmxlLXNjcm9sbD1cImRpc1Njcm9sbFwiXHJcbiAgICAgICAgQHRhcD1cIl90YXBcIlxyXG4gICAgICAgIEBlcnJvcj1cIl9lcnJvclwiXHJcbiAgICAgICAgdi1zaG93PVwic2hvd2NoYXJ0XCJcclxuICAgICAgLz5cclxuICAgIDwvYmxvY2s+XHJcbiAgICA8IS0tICNlbmRpZiAtLT5cclxuICAgIDwhLS0g5YW25LuW5bCP56iL5bqP6YCa6L+HdnVl5riy5p+T5Zu+6KGoIC0tPlxyXG4gICAgPCEtLSAjaWZkZWYgTVAtMzYwIHx8IE1QLUJBSURVIHx8IE1QLVFRIHx8IE1QLVRPVVRJQU8gfHwgTVAtV0VJWElOIHx8IE1QLUtVQUlTSE9VIHx8IE1QLUxBUksgfHwgTVAtSkQgLS0+XHJcbiAgICA8YmxvY2sgdi1pZj1cInR5cGUyZFwiPlxyXG4gICAgICA8dmlldyB2LWlmPVwib250b3VjaFwiIEB0YXA9XCJfdGFwXCI+XHJcbiAgICAgICAgPGNhbnZhc1xyXG4gICAgICAgICAgOmlkPVwiY2lkXCJcclxuICAgICAgICAgIDpjYW52YXNJZD1cImNpZFwiXHJcbiAgICAgICAgICA6c3R5bGU9XCJ7IHdpZHRoOiBjV2lkdGggKyAncHgnLCBoZWlnaHQ6IGNIZWlnaHQgKyAncHgnLCBiYWNrZ3JvdW5kOiBiYWNrZ3JvdW5kIH1cIlxyXG4gICAgICAgICAgdHlwZT1cIjJkXCJcclxuICAgICAgICAgIDpkaXNhYmxlLXNjcm9sbD1cImRpc1Njcm9sbFwiXHJcbiAgICAgICAgICBAdG91Y2hzdGFydD1cIl90b3VjaFN0YXJ0XCJcclxuICAgICAgICAgIEB0b3VjaG1vdmU9XCJfdG91Y2hNb3ZlXCJcclxuICAgICAgICAgIEB0b3VjaGVuZD1cIl90b3VjaEVuZFwiXHJcbiAgICAgICAgICBAZXJyb3I9XCJfZXJyb3JcIlxyXG4gICAgICAgICAgdi1zaG93PVwic2hvd2NoYXJ0XCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L3ZpZXc+XHJcbiAgICAgIDx2aWV3IHYtaWY9XCIhb250b3VjaFwiIEB0YXA9XCJfdGFwXCI+XHJcbiAgICAgICAgPGNhbnZhc1xyXG4gICAgICAgICAgOmlkPVwiY2lkXCJcclxuICAgICAgICAgIDpjYW52YXNJZD1cImNpZFwiXHJcbiAgICAgICAgICA6c3R5bGU9XCJ7IHdpZHRoOiBjV2lkdGggKyAncHgnLCBoZWlnaHQ6IGNIZWlnaHQgKyAncHgnLCBiYWNrZ3JvdW5kOiBiYWNrZ3JvdW5kIH1cIlxyXG4gICAgICAgICAgdHlwZT1cIjJkXCJcclxuICAgICAgICAgIDpkaXNhYmxlLXNjcm9sbD1cImRpc1Njcm9sbFwiXHJcbiAgICAgICAgICBAZXJyb3I9XCJfZXJyb3JcIlxyXG4gICAgICAgICAgdi1zaG93PVwic2hvd2NoYXJ0XCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L3ZpZXc+XHJcbiAgICA8L2Jsb2NrPlxyXG4gICAgPGJsb2NrIHYtaWY9XCIhdHlwZTJkXCI+XHJcbiAgICAgIDx2aWV3IHYtaWY9XCJvbnRvdWNoXCIgQHRhcD1cIl90YXBcIj5cclxuICAgICAgICA8Y2FudmFzXHJcbiAgICAgICAgICA6aWQ9XCJjaWRcIlxyXG4gICAgICAgICAgOmNhbnZhc0lkPVwiY2lkXCJcclxuICAgICAgICAgIDpzdHlsZT1cInsgd2lkdGg6IGNXaWR0aCArICdweCcsIGhlaWdodDogY0hlaWdodCArICdweCcsIGJhY2tncm91bmQ6IGJhY2tncm91bmQgfVwiXHJcbiAgICAgICAgICBAdG91Y2hzdGFydD1cIl90b3VjaFN0YXJ0XCJcclxuICAgICAgICAgIEB0b3VjaG1vdmU9XCJfdG91Y2hNb3ZlXCJcclxuICAgICAgICAgIEB0b3VjaGVuZD1cIl90b3VjaEVuZFwiXHJcbiAgICAgICAgICA6ZGlzYWJsZS1zY3JvbGw9XCJkaXNTY3JvbGxcIlxyXG4gICAgICAgICAgQGVycm9yPVwiX2Vycm9yXCJcclxuICAgICAgICAgIHYtaWY9XCJzaG93Y2hhcnRcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvdmlldz5cclxuICAgICAgPHZpZXcgdi1pZj1cIiFvbnRvdWNoXCIgPlxyXG4gICAgICAgIDxjYW52YXNcclxuICAgICAgICAgIDppZD1cImNpZFwiXHJcbiAgICAgICAgICA6Y2FudmFzSWQ9XCJjaWRcIlxyXG4gICAgICAgICAgOnN0eWxlPVwieyB3aWR0aDogY1dpZHRoICsgJ3B4JywgaGVpZ2h0OiBjSGVpZ2h0ICsgJ3B4JywgYmFja2dyb3VuZDogYmFja2dyb3VuZCB9XCJcclxuICAgICAgICAgIDpkaXNhYmxlLXNjcm9sbD1cImRpc1Njcm9sbFwiXHJcbiAgICAgICAgICBAdGFwPVwiX3RhcFwiXHJcbiAgICAgICAgICBAZXJyb3I9XCJfZXJyb3JcIlxyXG4gICAgICAgICAgdi1pZj1cInNob3djaGFydFwiXHJcbiAgICAgICAgLz5cclxuICAgICAgPC92aWV3PlxyXG4gICAgPC9ibG9jaz5cclxuICAgIDwhLS0gI2VuZGlmIC0tPlxyXG4gIDwvdmlldz5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcbmltcG9ydCB1Q2hhcnRzIGZyb20gJy4uLy4uL2pzX3Nkay91LWNoYXJ0cy91LWNoYXJ0cy5qcyc7XHJcbmltcG9ydCBjZnUgZnJvbSAnLi4vLi4vanNfc2RrL3UtY2hhcnRzL2NvbmZpZy11Y2hhcnRzLmpzJztcclxuLy8gI2lmZGVmIEFQUC1WVUUgfHwgSDVcclxuaW1wb3J0IGNmZSBmcm9tICcuLi8uLi9qc19zZGsvdS1jaGFydHMvY29uZmlnLWVjaGFydHMuanMnO1xyXG4vLyAjZW5kaWZcclxuXHJcbmZ1bmN0aW9uIGRlZXBDbG9uZUFzc2lnbihvcmlnaW4gPSB7fSwgLi4uYXJncykge1xyXG4gIGZvciAobGV0IGkgaW4gYXJncykge1xyXG4gICAgZm9yIChsZXQga2V5IGluIGFyZ3NbaV0pIHtcclxuICAgICAgaWYgKGFyZ3NbaV0uaGFzT3duUHJvcGVydHkoa2V5KSkge1xyXG4gICAgICAgIG9yaWdpbltrZXldID0gYXJnc1tpXVtrZXldICYmIHR5cGVvZiBhcmdzW2ldW2tleV0gPT09ICdvYmplY3QnID8gZGVlcENsb25lQXNzaWduKEFycmF5LmlzQXJyYXkoYXJnc1tpXVtrZXldKSA/IFtdIDoge30sIG9yaWdpbltrZXldLCBhcmdzW2ldW2tleV0pIDogYXJnc1tpXVtrZXldO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBvcmlnaW47XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZvcm1hdHRlckFzc2lnbihhcmdzLGZvcm1hdHRlcikge1xyXG4gIGZvciAobGV0IGtleSBpbiBhcmdzKSB7XHJcbiAgICBpZihhcmdzLmhhc093blByb3BlcnR5KGtleSkgJiYgYXJnc1trZXldICE9PSBudWxsICYmIHR5cGVvZiBhcmdzW2tleV0gPT09ICdvYmplY3QnKXtcclxuICAgICAgZm9ybWF0dGVyQXNzaWduKGFyZ3Nba2V5XSxmb3JtYXR0ZXIpXHJcbiAgICB9ZWxzZSBpZihrZXkgPT09ICdmb3JtYXQnICYmIHR5cGVvZiBhcmdzW2tleV0gPT09ICdzdHJpbmcnKXtcclxuICAgICAgYXJnc1snZm9ybWF0dGVyJ10gPSBmb3JtYXR0ZXJbYXJnc1trZXldXSA/IGZvcm1hdHRlclthcmdzW2tleV1dIDogdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gYXJncztcclxufVxyXG5cclxuLy8g5pe26Ze06L2s5o2i5Ye95pWw77yM5Li65LqG5Yy56YWNdW5pQ2xpbmV0RELor7vlj5blh7rnmoTml7bpl7TkuI5jYXRlZ29yaWVz5LiN5ZCMXHJcbmZ1bmN0aW9uIGdldEZvcm1hdERhdGUoZGF0ZSkge1xyXG5cdHZhciBzZXBlcmF0b3IgPSBcIi1cIjtcclxuXHR2YXIgeWVhciA9IGRhdGUuZ2V0RnVsbFllYXIoKTtcclxuXHR2YXIgbW9udGggPSBkYXRlLmdldE1vbnRoKCkgKyAxO1xyXG5cdHZhciBzdHJEYXRlID0gZGF0ZS5nZXREYXRlKCk7XHJcblx0aWYgKG1vbnRoID49IDEgJiYgbW9udGggPD0gOSkge1xyXG5cdFx0XHRtb250aCA9IFwiMFwiICsgbW9udGg7XHJcblx0fVxyXG5cdGlmIChzdHJEYXRlID49IDAgJiYgc3RyRGF0ZSA8PSA5KSB7XHJcblx0XHRcdHN0ckRhdGUgPSBcIjBcIiArIHN0ckRhdGU7XHJcblx0fVxyXG5cdHZhciBjdXJyZW50ZGF0ZSA9IHllYXIgKyBzZXBlcmF0b3IgKyBtb250aCArIHNlcGVyYXRvciArIHN0ckRhdGU7XHJcblx0cmV0dXJuIGN1cnJlbnRkYXRlO1xyXG59XHJcblxyXG52YXIgbGFzdE1vdmVUaW1lID0gbnVsbDtcclxuLyoqXHJcbiAqIOmYsuaKllxyXG4gKlxyXG4gKiBAcGFyYW0geyBGdW5jdGlvbiB9IGZuIOimgeaJp+ihjOeahOaWueazlVxyXG4gKiBAcGFyYW0geyBOdW1iZXIgfSB3YWl0ICDpmLLmipblpJrlsJHmr6vnp5JcclxuICpcclxuICog5ZyoIHZ1ZSDkuK3kvb/nlKjvvIjms6jmhI/vvJrkuI3og73kvb/nlKjnrq3lpLTlh73mlbDvvIzlkKbliJl0aGlz5oyH5ZCR5LiN5a+577yM5bm25LiU5LiN6IO95YaN5qyh5bCB6KOF5aaC77yaXHJcbiAqIG1vdmUoKXsgIC8vIOmUmeivr+iwg+eUqOaWueW8j1xyXG4gKiAgIGRlYm91bmNlKGZ1bmN0aW9uICgpIHtcclxuICogICBjb25zb2xlLmxvZyh0aGlzLnRpdGxlKTtcclxuICogfSwgMTAwMCl977yJO1xyXG4gKiDlupTor6Xnm7TmjqXkvb/nlKjvvJovLyDmraPnoa7osIPnlKjmlrnlvI9cclxuICogbW92ZTogZGVib3VuY2UoZnVuY3Rpb24gKCkge1xyXG4gKiAgIGNvbnNvbGUubG9nKHRoaXMudGl0bGUpO1xyXG4gKiB9LCAxMDAwKVxyXG4gKi9cclxuZnVuY3Rpb24gZGVib3VuY2UoZm4sIHdhaXQpIHtcclxuICBsZXQgdGltZXIgPSBmYWxzZTtcclxuICByZXR1cm4gZnVuY3Rpb24oKSB7XHJcbiAgICBjbGVhclRpbWVvdXQodGltZXIpO1xyXG4gICAgdGltZXIgJiYgY2xlYXJUaW1lb3V0KHRpbWVyKTtcclxuICAgIHRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRpbWVyID0gZmFsc2U7XHJcbiAgICAgIGZuLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IC8vIOaKiuWPguaVsOS8oOi/m+WOu1xyXG4gICAgfSwgd2FpdCk7XHJcbiAgfTtcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQge1xyXG4gIG5hbWU6ICdxaXVuLWRhdGEtY2hhcnRzJyxcclxuICBtaXhpbnM6IFt1bmlDbG91ZC5taXhpbkRhdGFjb21dLFxyXG4gIHByb3BzOiB7XHJcbiAgICB0eXBlOiB7XHJcbiAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgZGVmYXVsdDogbnVsbFxyXG4gICAgfSxcclxuICAgIGNhbnZhc0lkOiB7XHJcbiAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgZGVmYXVsdDogJ3VjaGFydHNpZCdcclxuICAgIH0sXHJcbiAgICBjYW52YXMyZDoge1xyXG4gICAgICB0eXBlOiBCb29sZWFuLFxyXG4gICAgICBkZWZhdWx0OiBmYWxzZVxyXG4gICAgfSxcclxuICAgIGJhY2tncm91bmQ6IHtcclxuICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICBkZWZhdWx0OiAncmdiYSgwLDAsMCwwKSdcclxuICAgIH0sXHJcbiAgICBhbmltYXRpb246IHtcclxuICAgICAgdHlwZTogQm9vbGVhbixcclxuICAgICAgZGVmYXVsdDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGNoYXJ0RGF0YToge1xyXG4gICAgICB0eXBlOiBPYmplY3QsXHJcbiAgICAgIGRlZmF1bHQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIGNhdGVnb3JpZXM6IFtdLFxyXG4gICAgICAgICAgc2VyaWVzOiBbXVxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBvcHRzOiB7XHJcbiAgICAgIHR5cGU6IE9iamVjdCxcclxuICAgICAgZGVmYXVsdCgpIHtcclxuICAgICAgICByZXR1cm4ge307XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBlb3B0czoge1xyXG4gICAgICB0eXBlOiBPYmplY3QsXHJcbiAgICAgIGRlZmF1bHQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHt9O1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgbG9hZGluZ1R5cGU6IHtcclxuICAgICAgdHlwZTogTnVtYmVyLFxyXG4gICAgICBkZWZhdWx0OiAyXHJcbiAgICB9LFxyXG4gICAgZXJyb3JTaG93OiB7XHJcbiAgICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICAgIGRlZmF1bHQ6IHRydWVcclxuICAgIH0sXHJcbiAgICBlcnJvclJlbG9hZDoge1xyXG4gICAgICB0eXBlOiBCb29sZWFuLFxyXG4gICAgICBkZWZhdWx0OiB0cnVlXHJcbiAgICB9LFxyXG4gICAgZXJyb3JNZXNzYWdlOiB7XHJcbiAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgZGVmYXVsdDogbnVsbFxyXG4gICAgfSxcclxuICAgIGluU2Nyb2xsVmlldzoge1xyXG4gICAgICB0eXBlOiBCb29sZWFuLFxyXG4gICAgICBkZWZhdWx0OiBmYWxzZVxyXG4gICAgfSxcclxuICAgIHJlc2hvdzoge1xyXG4gICAgICB0eXBlOiBCb29sZWFuLFxyXG4gICAgICBkZWZhdWx0OiBmYWxzZVxyXG4gICAgfSxcclxuICAgIHJlbG9hZDoge1xyXG4gICAgICB0eXBlOiBCb29sZWFuLFxyXG4gICAgICBkZWZhdWx0OiBmYWxzZVxyXG4gICAgfSxcclxuICAgIGRpc2FibGVTY3JvbGw6IHtcclxuICAgICAgdHlwZTogQm9vbGVhbixcclxuICAgICAgZGVmYXVsdDogZmFsc2VcclxuICAgIH0sXHJcbiAgICBvcHRzV2F0Y2g6IHtcclxuICAgICAgdHlwZTogQm9vbGVhbixcclxuICAgICAgZGVmYXVsdDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIG9uem9vbToge1xyXG4gICAgICB0eXBlOiBCb29sZWFuLFxyXG4gICAgICBkZWZhdWx0OiBmYWxzZVxyXG4gICAgfSxcclxuICAgIG9udGFwOiB7XHJcbiAgICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICAgIGRlZmF1bHQ6IHRydWVcclxuICAgIH0sXHJcbiAgICBvbnRvdWNoOiB7XHJcbiAgICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICAgIGRlZmF1bHQ6IGZhbHNlXHJcbiAgICB9LFxyXG4gICAgb25tb3VzZToge1xyXG4gICAgICB0eXBlOiBCb29sZWFuLFxyXG4gICAgICBkZWZhdWx0OiB0cnVlXHJcbiAgICB9LFxyXG4gICAgb25tb3ZldGlwOiB7XHJcbiAgICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICAgIGRlZmF1bHQ6IGZhbHNlXHJcbiAgICB9LFxyXG4gICAgZWNoYXJ0c0g1OiB7XHJcbiAgICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICAgIGRlZmF1bHQ6IGZhbHNlXHJcbiAgICB9LFxyXG4gICAgZWNoYXJ0c0FwcDoge1xyXG4gICAgICB0eXBlOiBCb29sZWFuLFxyXG4gICAgICBkZWZhdWx0OiBmYWxzZVxyXG4gICAgfSxcclxuICAgIHRvb2x0aXBTaG93OiB7XHJcbiAgICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICAgIGRlZmF1bHQ6IHRydWVcclxuICAgIH0sXHJcbiAgICB0b29sdGlwRm9ybWF0OiB7XHJcbiAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgZGVmYXVsdDogdW5kZWZpbmVkXHJcbiAgICB9LFxyXG4gICAgdG9vbHRpcEN1c3RvbToge1xyXG4gICAgICB0eXBlOiBPYmplY3QsXHJcbiAgICAgIGRlZmF1bHQ6IHVuZGVmaW5lZFxyXG4gICAgfSxcclxuICAgIHN0YXJ0RGF0ZToge1xyXG4gICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgIGRlZmF1bHQ6IHVuZGVmaW5lZFxyXG4gICAgfSxcclxuICAgIGVuZERhdGU6IHtcclxuICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICBkZWZhdWx0OiB1bmRlZmluZWRcclxuICAgIH0sXHJcbiAgICB0ZXh0RW51bToge1xyXG4gICAgICB0eXBlOiBBcnJheSxcclxuICAgICAgZGVmYXVsdCAoKSB7XHJcbiAgICAgICAgcmV0dXJuIFtdXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBncm91cEVudW06IHtcclxuICAgICAgdHlwZTogQXJyYXksXHJcbiAgICAgIGRlZmF1bHQgKCkge1xyXG4gICAgICAgIHJldHVybiBbXVxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgcGFnZVNjcm9sbFRvcDoge1xyXG4gICAgICB0eXBlOiBOdW1iZXIsXHJcbiAgICAgIGRlZmF1bHQ6IDBcclxuICAgIH0sXHJcbiAgICBkaXJlY3Rvcnk6IHtcclxuICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICBkZWZhdWx0OiAnLydcclxuICAgIH0sXHJcbiAgICB0YXBMZWdlbmQ6IHtcclxuICAgICAgdHlwZTogQm9vbGVhbixcclxuICAgICAgZGVmYXVsdDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIG1lbnVzOiB7XHJcbiAgICAgIHR5cGU6IEFycmF5LFxyXG4gICAgICBkZWZhdWx0ICgpIHtcclxuICAgICAgICByZXR1cm4gW11cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0sXHJcbiAgZGF0YSgpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGNpZDogJ3VjaGFydHNpZCcsXHJcbiAgICAgIGluV3g6IGZhbHNlLFxyXG4gICAgICBpbkFsaTogZmFsc2UsXHJcbiAgICAgIGluVHQ6IGZhbHNlLFxyXG4gICAgICBpbkJkOiBmYWxzZSxcclxuICAgICAgaW5INTogZmFsc2UsXHJcbiAgICAgIGluQXBwOiBmYWxzZSxcclxuICAgICAgaW5XaW46IGZhbHNlLFxyXG4gICAgICB0eXBlMmQ6IHRydWUsXHJcbiAgICAgIGRpc1Njcm9sbDogZmFsc2UsXHJcbiAgICAgIG9wZW5tb3VzZTogZmFsc2UsXHJcbiAgICAgIHBpeGVsOiAxLFxyXG4gICAgICBjV2lkdGg6IDM3NSxcclxuICAgICAgY0hlaWdodDogMjUwLFxyXG4gICAgICBzaG93Y2hhcnQ6IGZhbHNlLFxyXG4gICAgICBlY2hhcnRzOiBmYWxzZSxcclxuICAgICAgZWNoYXJ0c1Jlc2l6ZTp7XHJcbiAgICAgICAgc3RhdGU6ZmFsc2VcclxuICAgICAgfSxcclxuICAgICAgdWNoYXJ0c09wdHM6IHt9LFxyXG4gICAgICBlY2hhcnRzT3B0czoge30sXHJcbiAgICAgIGRyYXdEYXRhOnt9LFxyXG4gICAgICBsYXN0RHJhd1RpbWU6bnVsbCxcclxuICAgIH07XHJcbiAgfSxcclxuICBjcmVhdGVkKCl7XHJcbiAgICB0aGlzLmNpZCA9IHRoaXMuY2FudmFzSWRcclxuICAgIGlmICh0aGlzLmNhbnZhc0lkID09ICd1Y2hhcnRzaWQnIHx8IHRoaXMuY2FudmFzSWQgPT0gJycpIHtcclxuICAgICAgbGV0IHQgPSAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eidcclxuICAgICAgbGV0IGxlbiA9IHQubGVuZ3RoXHJcbiAgICAgIGxldCBpZCA9ICcnXHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMzI7IGkrKykge1xyXG4gICAgICAgIGlkICs9IHQuY2hhckF0KE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGxlbikpXHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5jaWQgPSBpZFxyXG4gICAgfVxyXG4gICAgY29uc3Qgc3lzdGVtSW5mbyA9IHVuaS5nZXRTeXN0ZW1JbmZvU3luYygpXHJcbiAgICBpZihzeXN0ZW1JbmZvLnBsYXRmb3JtID09PSAnd2luZG93cycgfHwgc3lzdGVtSW5mby5wbGF0Zm9ybSA9PT0gJ21hYycpe1xyXG4gICAgICB0aGlzLmluV2luID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIC8vICNpZmRlZiBNUC1XRUlYSU5cclxuICAgIHRoaXMuaW5XeCA9IHRydWU7XHJcbiAgICBpZiAodGhpcy5jYW52YXMyZCA9PT0gZmFsc2UgfHwgc3lzdGVtSW5mby5wbGF0Zm9ybSA9PT0gJ3dpbmRvd3MnIHx8IHN5c3RlbUluZm8ucGxhdGZvcm0gPT09ICdtYWMnKSB7XHJcbiAgICAgIHRoaXMudHlwZTJkID0gZmFsc2U7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy50eXBlMmQgPSB0cnVlO1xyXG4gICAgICB0aGlzLnBpeGVsID0gc3lzdGVtSW5mby5waXhlbFJhdGlvO1xyXG4gICAgfVxyXG4gICAgLy8gI2VuZGlmXHJcbiAgICAvL+mdnuW+ruS/oeWwj+eoi+W6j+err+W8uuWItuWFs+mXrWNhbnZhczJk5qih5byPXHJcbiAgICAvLyAjaWZuZGVmIE1QLVdFSVhJTlxyXG4gICAgdGhpcy50eXBlMmQgPSBmYWxzZTtcclxuICAgIC8vICNlbmRpZlxyXG4gICAgLy8gI2lmZGVmICBNUC1UT1VUSUFPIHx8IE1QLUxBUksgfHwgTVAtQUxJUEFZXHJcbiAgICB0aGlzLnR5cGUyZCA9IHRoaXMuY2FudmFzMmQ7XHJcbiAgICAvLyAjZW5kaWZcclxuICAgIC8vICNpZmRlZiBNUC1BTElQQVlcclxuICAgIHRoaXMuaW5BbGkgPSB0cnVlO1xyXG4gICAgdGhpcy5waXhlbCA9IHN5c3RlbUluZm8ucGl4ZWxSYXRpbztcclxuICAgIC8vICNlbmRpZlxyXG4gICAgLy8gI2lmZGVmIE1QLUJBSURVXHJcbiAgICB0aGlzLmluQmQgPSB0cnVlO1xyXG4gICAgLy8gI2VuZGlmXHJcbiAgICAvLyAjaWZkZWYgTVAtVE9VVElBT1xyXG4gICAgdGhpcy5pblR0ID0gdHJ1ZTtcclxuICAgIC8vICNlbmRpZlxyXG4gICAgdGhpcy5kaXNTY3JvbGwgPSB0aGlzLmRpc2FibGVTY3JvbGw7XHJcbiAgfSxcclxuICBtb3VudGVkKCkge1xyXG4gICAgLy8gI2lmZGVmIEFQUC1WVUVcclxuICAgIHRoaXMuaW5BcHAgPSB0cnVlO1xyXG4gICAgaWYgKHRoaXMuZWNoYXJ0c0FwcCA9PT0gdHJ1ZSkge1xyXG4gICAgICB0aGlzLmVjaGFydHMgPSB0cnVlO1xyXG4gICAgICB0aGlzLm9wZW5tb3VzZSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgLy8gI2VuZGlmXHJcbiAgICAvLyAjaWZkZWYgQVBQLU5WVUVcclxuICAgIHRoaXMuaW5BcHAgPSB0cnVlO1xyXG4gICAgdGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID0gZmFsc2VcclxuICAgIHRoaXMubWl4aW5EYXRhY29tRXJyb3JNZXNzYWdlID0gXCLmmoLkuI3mlK/mjIFOVlVFXCJcclxuICAgIC8vICNlbmRpZlxyXG4gICAgLy8gI2lmZGVmIEg1XHJcbiAgICB0aGlzLmluSDUgPSB0cnVlO1xyXG4gICAgaWYodGhpcy5pbldpbiA9PT0gdHJ1ZSl7XHJcbiAgICAgIHRoaXMub3Blbm1vdXNlID0gdGhpcy5vbm1vdXNlO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZWNoYXJ0c0g1ID09PSB0cnVlKSB7XHJcbiAgICAgIHRoaXMuZWNoYXJ0cyA9IHRydWU7XHJcbiAgICB9XHJcbiAgICAvLyAjZW5kaWZcclxuICAgIHRoaXMuJG5leHRUaWNrKCgpPT57XHJcbiAgICAgIHRoaXMuYmVmb3JlSW5pdCgpO1xyXG4gICAgfSlcclxuICAgIC8vICNpZm5kZWYgTVAtQUxJUEFZIHx8IE1QLUJBSURVIHx8IE1QLVRPVVRJQU8gfHwgQVBQLVZVRVxyXG4gICAgY29uc3QgdGltZSA9IHRoaXMuaW5INSA/IDUwMCA6IDIwMDtcclxuICAgIGNvbnN0IF90aGlzID0gdGhpcztcclxuICAgIHVuaS5vbldpbmRvd1Jlc2l6ZShcclxuICAgICAgZGVib3VuY2UoZnVuY3Rpb24ocmVzKSB7XHJcbiAgICAgICAgaWYgKF90aGlzLm1peGluRGF0YWNvbUxvYWRpbmcgPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgZXJybXNnID0gX3RoaXMubWl4aW5EYXRhY29tRXJyb3JNZXNzYWdlO1xyXG4gICAgICAgIGlmIChlcnJtc2cgIT09IG51bGwgJiYgZXJybXNnICE9PSAnbnVsbCcgJiYgZXJybXNnICE9PSAnJykge1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoX3RoaXMuZWNoYXJ0cykge1xyXG4gICAgICAgICAgX3RoaXMuZWNoYXJ0c1Jlc2l6ZS5zdGF0ZSA9ICFfdGhpcy5lY2hhcnRzUmVzaXplLnN0YXRlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBfdGhpcy5yZXNpemVIYW5kbGVyKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LCB0aW1lKVxyXG4gICAgKTtcclxuICAgIC8vICNlbmRpZlxyXG4gIH0sXHJcbiAgZGVzdHJveWVkKCl7XHJcbiAgICBpZih0aGlzLmVjaGFydHMgPT09IHRydWUpe1xyXG4gICAgICBkZWxldGUgY2ZlLm9wdGlvblt0aGlzLmNpZF1cclxuICAgICAgZGVsZXRlIGNmZS5pbnN0YW5jZVt0aGlzLmNpZF1cclxuICAgIH1lbHNle1xyXG4gICAgICBkZWxldGUgY2Z1Lm9wdGlvblt0aGlzLmNpZF1cclxuICAgICAgZGVsZXRlIGNmdS5pbnN0YW5jZVt0aGlzLmNpZF1cclxuICAgIH1cclxuICAgIC8vICNpZm5kZWYgTVAtQUxJUEFZIHx8IE1QLUJBSURVIHx8IE1QLVRPVVRJQU9cclxuICAgIHVuaS5vZmZXaW5kb3dSZXNpemUoKCk9Pnt9KVxyXG4gICAgLy8gI2VuZGlmXHJcbiAgfSxcclxuICB3YXRjaDoge1xyXG4gICAgY2hhcnREYXRhUHJvcHM6IHtcclxuICAgICAgaGFuZGxlcih2YWwsIG9sZHZhbCkge1xyXG4gICAgICAgIGlmICh0eXBlb2YgdmFsID09PSAnb2JqZWN0Jykge1xyXG4gICAgICAgICAgaWYgKEpTT04uc3RyaW5naWZ5KHZhbCkgIT09IEpTT04uc3RyaW5naWZ5KG9sZHZhbCkpIHtcclxuICAgICAgICAgICAgdGhpcy5fY2xlYXJDaGFydCgpO1xyXG4gICAgICAgICAgICBpZiAodmFsLnNlcmllcyAmJiB2YWwuc2VyaWVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICB0aGlzLmJlZm9yZUluaXQoKTtcclxuICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgdGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB0aGlzLnNob3djaGFydCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIHRoaXMubWl4aW5EYXRhY29tRXJyb3JNZXNzYWdlID0gbnVsbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLm1peGluRGF0YWNvbUxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuX2NsZWFyQ2hhcnQoKTtcclxuICAgICAgICAgIHRoaXMuc2hvd2NoYXJ0ID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLm1peGluRGF0YWNvbUVycm9yTWVzc2FnZSA9ICflj4LmlbDplJnor6/vvJpjaGFydERhdGHmlbDmja7nsbvlnovplJnor68nO1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgaW1tZWRpYXRlOiBmYWxzZSxcclxuICAgICAgZGVlcDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGxvY2FsZGF0YTp7XHJcbiAgICAgIGhhbmRsZXIodmFsLCBvbGR2YWwpIHtcclxuICAgICAgICBpZiAoSlNPTi5zdHJpbmdpZnkodmFsKSAhPT0gSlNPTi5zdHJpbmdpZnkob2xkdmFsKSkge1xyXG4gICAgICAgICAgaWYgKHZhbC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYmVmb3JlSW5pdCgpO1xyXG4gICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgIHRoaXMubWl4aW5EYXRhY29tTG9hZGluZyA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuX2NsZWFyQ2hhcnQoKTtcclxuICAgICAgICAgICAgdGhpcy5zaG93Y2hhcnQgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5taXhpbkRhdGFjb21FcnJvck1lc3NhZ2UgPSBudWxsO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgaW1tZWRpYXRlOiBmYWxzZSxcclxuICAgICAgZGVlcDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIG9wdHNQcm9wczoge1xyXG4gICAgICBoYW5kbGVyKHZhbCwgb2xkdmFsKSB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiB2YWwgPT09ICdvYmplY3QnKSB7XHJcbiAgICAgICAgICBpZiAoSlNPTi5zdHJpbmdpZnkodmFsKSAhPT0gSlNPTi5zdHJpbmdpZnkob2xkdmFsKSAmJiB0aGlzLmVjaGFydHMgPT09IGZhbHNlICYmIHRoaXMub3B0c1dhdGNoID09IHRydWUpIHtcclxuICAgICAgICAgICAgdGhpcy5jaGVja0RhdGEodGhpcy5kcmF3RGF0YSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubWl4aW5EYXRhY29tTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5fY2xlYXJDaGFydCgpO1xyXG4gICAgICAgICAgdGhpcy5zaG93Y2hhcnQgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMubWl4aW5EYXRhY29tRXJyb3JNZXNzYWdlID0gJ+WPguaVsOmUmeivr++8mm9wdHPmlbDmja7nsbvlnovplJnor68nO1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgaW1tZWRpYXRlOiBmYWxzZSxcclxuICAgICAgZGVlcDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGVvcHRzUHJvcHM6IHtcclxuICAgICAgaGFuZGxlcih2YWwsIG9sZHZhbCkge1xyXG4gICAgICAgIGlmICh0eXBlb2YgdmFsID09PSAnb2JqZWN0Jykge1xyXG4gICAgICAgICAgaWYgKEpTT04uc3RyaW5naWZ5KHZhbCkgIT09IEpTT04uc3RyaW5naWZ5KG9sZHZhbCkgJiYgdGhpcy5lY2hhcnRzID09PSB0cnVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tEYXRhKHRoaXMuZHJhd0RhdGEpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLm1peGluRGF0YWNvbUxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuc2hvd2NoYXJ0ID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLm1peGluRGF0YWNvbUVycm9yTWVzc2FnZSA9ICflj4LmlbDplJnor6/vvJplb3B0c+aVsOaNruexu+Wei+mUmeivryc7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBpbW1lZGlhdGU6IGZhbHNlLFxyXG4gICAgICBkZWVwOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgcmVzaG93KHZhbCwgb2xkdmFsKSB7XHJcbiAgICAgIGlmICh2YWwgPT09IHRydWUgJiYgdGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID09PSBmYWxzZSkge1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5taXhpbkRhdGFjb21FcnJvck1lc3NhZ2UgPSBudWxsO1xyXG4gICAgICAgICAgdGhpcy5lY2hhcnRzUmVzaXplLnN0YXRlID0gIXRoaXMuZWNoYXJ0c1Jlc2l6ZS5zdGF0ZTtcclxuICAgICAgICAgIHRoaXMuY2hlY2tEYXRhKHRoaXMuZHJhd0RhdGEpO1xyXG4gICAgICAgIH0sIDIwMCk7XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICByZWxvYWQodmFsLCBvbGR2YWwpIHtcclxuICAgICAgaWYgKHZhbCA9PT0gdHJ1ZSkge1xyXG4gICAgICAgIHRoaXMuc2hvd2NoYXJ0ID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5taXhpbkRhdGFjb21FcnJvck1lc3NhZ2UgPSBudWxsO1xyXG4gICAgICAgIHRoaXMucmVsb2FkaW5nKCk7XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBtaXhpbkRhdGFjb21FcnJvck1lc3NhZ2UodmFsLCBvbGR2YWwpIHtcclxuICAgICAgaWYgKHZhbCkge1xyXG4gICAgICAgIHRoaXMuZW1pdE1zZyh7bmFtZTogJ2Vycm9yJywgcGFyYW1zOiB7dHlwZTpcImVycm9yXCIsIGVycm9yU2hvdzogdGhpcy5lcnJvclNob3csIG1zZzogdmFsLCBpZDogdGhpcy5jaWR9fSk7XHJcbiAgICAgICAgaWYodGhpcy5lcnJvclNob3cpe1xyXG4gICAgICAgICAgY29uc29sZS5sb2coJ1vnp4vkupHlm77ooajnu4Tku7ZdJyArIHZhbCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgZXJyb3JNZXNzYWdlKHZhbCwgb2xkdmFsKSB7XHJcbiAgICAgIGlmICh2YWwgJiYgdGhpcy5lcnJvclNob3cgJiYgdmFsICE9PSBudWxsICYmIHZhbCAhPT0gJ251bGwnICYmIHZhbCAhPT0gJycpIHtcclxuICAgICAgICB0aGlzLnNob3djaGFydCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubWl4aW5EYXRhY29tTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubWl4aW5EYXRhY29tRXJyb3JNZXNzYWdlID0gdmFsO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc2hvd2NoYXJ0ID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5taXhpbkRhdGFjb21FcnJvck1lc3NhZ2UgPSBudWxsO1xyXG4gICAgICAgIHRoaXMucmVsb2FkaW5nKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9LFxyXG4gIGNvbXB1dGVkOiB7XHJcbiAgICBvcHRzUHJvcHMoKSB7XHJcbiAgICAgIHJldHVybiBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMub3B0cykpO1xyXG4gICAgfSxcclxuICAgIGVvcHRzUHJvcHMoKSB7XHJcbiAgICAgIHJldHVybiBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuZW9wdHMpKTtcclxuICAgIH0sXHJcbiAgICBjaGFydERhdGFQcm9wcygpIHtcclxuICAgICAgcmV0dXJuIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5jaGFydERhdGEpKTtcclxuICAgIH0sXHJcbiAgfSxcclxuICBtZXRob2RzOiB7XHJcbiAgICBiZWZvcmVJbml0KCl7XHJcbiAgICAgIHRoaXMubWl4aW5EYXRhY29tRXJyb3JNZXNzYWdlID0gbnVsbDtcclxuICAgICAgaWYgKHR5cGVvZiB0aGlzLmNoYXJ0RGF0YSA9PT0gJ29iamVjdCcgJiYgdGhpcy5jaGFydERhdGEgIT0gbnVsbCAmJiB0aGlzLmNoYXJ0RGF0YS5zZXJpZXMgIT09IHVuZGVmaW5lZCAmJiB0aGlzLmNoYXJ0RGF0YS5zZXJpZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIC8v5ou36LSd5LiA5LiLY2hhcnREYXRh77yM5Li65LqGb3B0c+WPmOabtOWQjue7n+S4gOaVsOaNruadpea6kFxyXG4gICAgICAgIHRoaXMuZHJhd0RhdGEgPSBkZWVwQ2xvbmVBc3NpZ24oe30sIHRoaXMuY2hhcnREYXRhKTtcclxuICAgICAgICB0aGlzLm1peGluRGF0YWNvbUxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnNob3djaGFydCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5jaGVja0RhdGEodGhpcy5jaGFydERhdGEpO1xyXG4gICAgICB9ZWxzZSBpZih0aGlzLmxvY2FsZGF0YS5sZW5ndGg+MCl7XHJcbiAgICAgICAgdGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zaG93Y2hhcnQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMubG9jYWxkYXRhSW5pdCh0aGlzLmxvY2FsZGF0YSk7XHJcbiAgICAgIH1lbHNlIGlmKHRoaXMuY29sbGVjdGlvbiAhPT0gJycpe1xyXG4gICAgICAgIHRoaXMubWl4aW5EYXRhY29tTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZ2V0Q2xvdWREYXRhKCk7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIHRoaXMubWl4aW5EYXRhY29tTG9hZGluZyA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBsb2NhbGRhdGFJbml0KHJlc2RhdGEpe1xyXG4gICAgICAvL+abv+aNomVudW3nsbvlnovkuLrmraPnoa7nmoTmj4/ov7BcclxuICAgICAgaWYodGhpcy5ncm91cEVudW0ubGVuZ3RoPjApe1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcmVzZGF0YS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCB0aGlzLmdyb3VwRW51bS5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICBpZihyZXNkYXRhW2ldLmdyb3VwID09PSB0aGlzLmdyb3VwRW51bVtqXS52YWx1ZSl7XHJcbiAgICAgICAgICAgICAgcmVzZGF0YVtpXS5ncm91cCA9IHRoaXMuZ3JvdXBFbnVtW2pdLnRleHRcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZih0aGlzLnRleHRFbnVtLmxlbmd0aD4wKXtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJlc2RhdGEubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgdGhpcy50ZXh0RW51bS5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICBpZihyZXNkYXRhW2ldLnRleHQgPT09IHRoaXMudGV4dEVudW1bal0udmFsdWUpe1xyXG4gICAgICAgICAgICAgIHJlc2RhdGFbaV0udGV4dCA9IHRoaXMudGV4dEVudW1bal0udGV4dFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGxldCBuZWVkQ2F0ZWdvcmllcyA9IGZhbHNlO1xyXG4gICAgICBsZXQgdG1wRGF0YSA9IHtjYXRlZ29yaWVzOltdLCBzZXJpZXM6W119XHJcbiAgICAgIGxldCB0bXBjYXRlZ29yaWVzID0gW11cclxuICAgICAgbGV0IHRtcHNlcmllcyA9IFtdO1xyXG4gICAgICAvL+aLvOaOpWNhdGVnb3JpZXNcclxuICAgICAgaWYodGhpcy5lY2hhcnRzID09PSB0cnVlKXtcclxuICAgICAgICBuZWVkQ2F0ZWdvcmllcyA9IGNmZS5jYXRlZ29yaWVzLmluY2x1ZGVzKHRoaXMudHlwZSlcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgbmVlZENhdGVnb3JpZXMgPSBjZnUuY2F0ZWdvcmllcy5pbmNsdWRlcyh0aGlzLnR5cGUpXHJcbiAgICAgIH1cclxuICAgICAgaWYobmVlZENhdGVnb3JpZXMgPT09IHRydWUpe1xyXG4gICAgICAgIC8v5aaC5p6ccHJvcHPkuK3nmoRjaGFydERhdGHluKbmnIljYXRlZ29yaWVz77yM5YiZ5LyY5YWI5L2/55SoY2hhcnREYXRh55qEY2F0ZWdvcmllc1xyXG4gICAgICAgIGlmKHRoaXMuY2hhcnREYXRhICYmIHRoaXMuY2hhcnREYXRhLmNhdGVnb3JpZXMgJiYgdGhpcy5jaGFydERhdGEuY2F0ZWdvcmllcy5sZW5ndGg+MCl7XHJcbiAgICAgICAgICB0bXBjYXRlZ29yaWVzID0gdGhpcy5jaGFydERhdGEuY2F0ZWdvcmllc1xyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgLy/lpoLmnpzmmK/ml6XmnJ/nsbvlnovnmoTmlbDmja7vvIzkuI3nrqHmmK/mnKzlnLDmlbDmja7ov5jmmK/kupHmlbDmja7vvIzpg73mjInotbfmraLml6XmnJ/oh6rliqjmi7zmjqVjYXRlZ29yaWVzXHJcbiAgICAgICAgICBpZih0aGlzLnN0YXJ0RGF0ZSAmJiB0aGlzLmVuZERhdGUpe1xyXG4gICAgICAgICAgICBsZXQgaWRhdGUgPSBuZXcgRGF0ZSh0aGlzLnN0YXJ0RGF0ZSlcclxuICAgICAgICAgICAgbGV0IGVkYXRlID0gbmV3IERhdGUodGhpcy5lbmREYXRlKVxyXG4gICAgICAgICAgICB3aGlsZSAoaWRhdGUgPD0gZWRhdGUpIHtcclxuICAgICAgICAgICAgXHR0bXBjYXRlZ29yaWVzLnB1c2goZ2V0Rm9ybWF0RGF0ZShpZGF0ZSkpXHJcbiAgICAgICAgICAgIFx0aWRhdGUgPSBpZGF0ZS5zZXREYXRlKGlkYXRlLmdldERhdGUoKSArIDEpXHJcbiAgICAgICAgICAgIFx0aWRhdGUgPSBuZXcgRGF0ZShpZGF0ZSlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgLy/lkKbliJnku47nu5PmnpzkuK3ljrvph43lubbmi7zmjqVjYXRlZ29yaWVzXHJcbiAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgbGV0IHRlbXBja2V5ID0ge307XHJcbiAgICAgICAgICAgIHJlc2RhdGEubWFwKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICAgICAgICAgICAgaWYgKGl0ZW0udGV4dCAhPSB1bmRlZmluZWQgJiYgIXRlbXBja2V5W2l0ZW0udGV4dF0pIHtcclxuICAgICAgICAgICAgICAgIHRtcGNhdGVnb3JpZXMucHVzaChpdGVtLnRleHQpXHJcbiAgICAgICAgICAgICAgICB0ZW1wY2tleVtpdGVtLnRleHRdID0gdHJ1ZVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRtcERhdGEuY2F0ZWdvcmllcyA9IHRtcGNhdGVnb3JpZXNcclxuICAgICAgfVxyXG4gICAgICAvL+aLvOaOpXNlcmllc1xyXG4gICAgICBsZXQgdGVtcHNrZXkgPSB7fTtcclxuICAgICAgcmVzZGF0YS5tYXAoZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgICAgICBpZiAoaXRlbS5ncm91cCAhPSB1bmRlZmluZWQgJiYgIXRlbXBza2V5W2l0ZW0uZ3JvdXBdKSB7XHJcbiAgICAgICAgICB0bXBzZXJpZXMucHVzaCh7IG5hbWU6IGl0ZW0uZ3JvdXAsIGRhdGE6IFtdIH0pO1xyXG4gICAgICAgICAgdGVtcHNrZXlbaXRlbS5ncm91cF0gPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIC8v5aaC5p6c5rKh5pyJ6I635Y+W5Yiw5YiG57uE5ZCN56ewKOWPr+iDveaYr+W4pmNhdGVnb3JpZXPnmoTmlbDmja7vvIzkuZ/lj6/og73mmK/kuI3luKbnmoTppbzlm77nsbspXHJcbiAgICAgIGlmICh0bXBzZXJpZXMubGVuZ3RoID09IDApIHtcclxuICAgICAgICB0bXBzZXJpZXMgPSBbeyBuYW1lOiAn6buY6K6k5YiG57uEJywgZGF0YTogW10gfV07XHJcbiAgICAgICAgLy/lpoLmnpzmmK/pnIDopoFjYXRlZ29yaWVz55qE5Zu+6KGo57G75Z6LXHJcbiAgICAgICAgaWYobmVlZENhdGVnb3JpZXMgPT09IHRydWUpe1xyXG4gICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCB0bXBjYXRlZ29yaWVzLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICAgIGxldCBzZXJpZXNkYXRhID0gMDtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCByZXNkYXRhLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgaWYgKHJlc2RhdGFbaV0udGV4dCA9PSB0bXBjYXRlZ29yaWVzW2pdKSB7XHJcbiAgICAgICAgICAgICAgICBzZXJpZXNkYXRhID0gcmVzZGF0YVtpXS52YWx1ZTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdG1wc2VyaWVzWzBdLmRhdGEucHVzaChzZXJpZXNkYXRhKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAvL+WmguaenOaYr+mlvOWbvuexu+eahOWbvuihqOexu+Wei1xyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCByZXNkYXRhLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIHRtcHNlcmllc1swXS5kYXRhLnB1c2goe1wibmFtZVwiOiByZXNkYXRhW2ldLnRleHQsXCJ2YWx1ZVwiOiByZXNkYXRhW2ldLnZhbHVlfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAvL+WmguaenOacieWIhue7hOWQjVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGZvciAobGV0IGsgPSAwOyBrIDwgdG1wc2VyaWVzLmxlbmd0aDsgaysrKSB7XHJcbiAgICAgICAgICAvL+WmguaenOaciWNhdGVnb3JpZXNcclxuICAgICAgICAgIGlmICh0bXBjYXRlZ29yaWVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCB0bXBjYXRlZ29yaWVzLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICAgICAgbGV0IHNlcmllc2RhdGEgPSAwO1xyXG4gICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcmVzZGF0YS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRtcHNlcmllc1trXS5uYW1lID09IHJlc2RhdGFbaV0uZ3JvdXAgJiYgcmVzZGF0YVtpXS50ZXh0ID09IHRtcGNhdGVnb3JpZXNbal0pIHtcclxuICAgICAgICAgICAgICAgICAgc2VyaWVzZGF0YSA9IHJlc2RhdGFbaV0udmFsdWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHRtcHNlcmllc1trXS5kYXRhLnB1c2goc2VyaWVzZGF0YSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIC8v5aaC5p6c5Lyg5LqGZ3JvdXDogIzmsqHmnInkvKB0ZXh077yM5Y2z5rKh5pyJY2F0ZWdvcmllc++8iOato+W4uOaDheWGteS4i+i/meenjeaVsOaNruaYr+S4jeespuWQiOaVsOaNruimgeaxguinhOiMg+eahO+8iVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCByZXNkYXRhLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgaWYgKHRtcHNlcmllc1trXS5uYW1lID09IHJlc2RhdGFbaV0uZ3JvdXApIHtcclxuICAgICAgICAgICAgICAgIHRtcHNlcmllc1trXS5kYXRhLnB1c2gocmVzZGF0YVtpXS52YWx1ZSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHRtcERhdGEuc2VyaWVzID0gdG1wc2VyaWVzXHJcbiAgICAgIC8v5ou36LSd5LiA5LiLY2hhcnREYXRh77yM5Li65LqGb3B0c+WPmOabtOWQjue7n+S4gOaVsOaNruadpea6kFxyXG4gICAgICB0aGlzLmRyYXdEYXRhID0gZGVlcENsb25lQXNzaWduKHt9LCB0bXBEYXRhKTtcclxuICAgICAgdGhpcy5jaGVja0RhdGEodG1wRGF0YSlcclxuICAgIH0sXHJcbiAgICByZWxvYWRpbmcoKSB7XHJcbiAgICAgIGlmKHRoaXMuZXJyb3JSZWxvYWQgPT09IGZhbHNlKXtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5zaG93Y2hhcnQgPSBmYWxzZTtcclxuICAgICAgdGhpcy5taXhpbkRhdGFjb21FcnJvck1lc3NhZ2UgPSBudWxsO1xyXG4gICAgICBpZiAodGhpcy5jb2xsZWN0aW9uICE9PSAnJykge1xyXG4gICAgICAgIHRoaXMubWl4aW5EYXRhY29tTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMub25NaXhpbkRhdGFjb21Qcm9wc0NoYW5nZSh0cnVlKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmJlZm9yZUluaXQoKTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIGNoZWNrRGF0YShhbnlEYXRhKSB7XHJcbiAgICAgIGxldCBjaWQgPSB0aGlzLmNpZFxyXG4gICAgICAvL+WkjeS9jW9wdHPmiJZlb3B0c1xyXG4gICAgICBpZih0aGlzLmVjaGFydHMgPT09IHRydWUpe1xyXG4gICAgICAgIGNmZS5vcHRpb25bY2lkXSA9IGRlZXBDbG9uZUFzc2lnbih7fSwgdGhpcy5lb3B0cyk7XHJcbiAgICAgICAgY2ZlLm9wdGlvbltjaWRdLmlkID0gY2lkO1xyXG4gICAgICAgIGNmZS5vcHRpb25bY2lkXS50eXBlID0gdGhpcy50eXBlO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICBpZiAodGhpcy50eXBlICYmIGNmdS50eXBlLmluY2x1ZGVzKHRoaXMudHlwZSkpIHtcclxuICAgICAgICAgIGNmdS5vcHRpb25bY2lkXSA9IGRlZXBDbG9uZUFzc2lnbih7fSwgY2Z1W3RoaXMudHlwZV0sIHRoaXMub3B0cyk7XHJcbiAgICAgICAgICBjZnUub3B0aW9uW2NpZF0uY2FudmFzSWQgPSBjaWQ7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubWl4aW5EYXRhY29tTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5zaG93Y2hhcnQgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMubWl4aW5EYXRhY29tRXJyb3JNZXNzYWdlID0gJ+WPguaVsOmUmeivr++8mnByb3Bz5Y+C5pWw5LitdHlwZeexu+Wei+S4jeato+ehric7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIC8v5oyC6L29Y2F0ZWdvcmllc+WSjHNlcmllc1xyXG4gICAgICBsZXQgbmV3RGF0YSA9IGRlZXBDbG9uZUFzc2lnbih7fSwgYW55RGF0YSk7XHJcbiAgICAgIGlmIChuZXdEYXRhLnNlcmllcyAhPT0gdW5kZWZpbmVkICYmIG5ld0RhdGEuc2VyaWVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICB0aGlzLm1peGluRGF0YWNvbUVycm9yTWVzc2FnZSA9IG51bGw7XHJcbiAgICAgICAgaWYgKHRoaXMuZWNoYXJ0cyA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgY2ZlLm9wdGlvbltjaWRdLmNoYXJ0RGF0YSA9IG5ld0RhdGE7XHJcbiAgICAgICAgICB0aGlzLiRuZXh0VGljaygoKT0+e1xyXG4gICAgICAgICAgICB0aGlzLmluaXQoKVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgIGNmdS5vcHRpb25bY2lkXS5jYXRlZ29yaWVzID0gbmV3RGF0YS5jYXRlZ29yaWVzO1xyXG4gICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLnNlcmllcyA9IG5ld0RhdGEuc2VyaWVzO1xyXG4gICAgICAgICAgdGhpcy4kbmV4dFRpY2soKCk9PntcclxuICAgICAgICAgICAgdGhpcy5pbml0KClcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgcmVzaXplSGFuZGxlcigpIHtcclxuICAgICAgLy/muLLmn5PpmLLmipZcclxuICAgICAgbGV0IGN1cnJUaW1lID0gRGF0ZS5ub3coKTtcclxuICAgICAgbGV0IGxhc3REcmF3VGltZSA9IHRoaXMubGFzdERyYXdUaW1lP3RoaXMubGFzdERyYXdUaW1lOmN1cnJUaW1lLTMwMDA7XHJcbiAgICAgIGxldCBkdXJhdGlvbiA9IGN1cnJUaW1lIC0gbGFzdERyYXdUaW1lO1xyXG4gICAgICBpZiAoZHVyYXRpb24gPCAxMDAwKSByZXR1cm47XHJcbiAgICAgIGxldCBjaGFydGRvbSA9IHVuaVxyXG4gICAgICAgIC5jcmVhdGVTZWxlY3RvclF1ZXJ5KClcclxuICAgICAgICAvLyAjaWZuZGVmIE1QLUFMSVBBWVxyXG4gICAgICAgIC5pbih0aGlzKVxyXG4gICAgICAgIC8vICNlbmRpZlxyXG4gICAgICAgIC5zZWxlY3QoJyNDaGFydEJveElkJyt0aGlzLmNpZClcclxuICAgICAgICAuYm91bmRpbmdDbGllbnRSZWN0KGRhdGEgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zaG93Y2hhcnQgPSB0cnVlO1xyXG4gICAgICAgICAgaWYgKGRhdGEud2lkdGggPiAwICYmIGRhdGEuaGVpZ2h0ID4gMCkge1xyXG4gICAgICAgICAgICBpZiAoZGF0YS53aWR0aCAhPT0gdGhpcy5jV2lkdGggfHwgZGF0YS5oZWlnaHQgIT09IHRoaXMuY0hlaWdodCkge1xyXG4gICAgICAgICAgICAgIHRoaXMuY2hlY2tEYXRhKHRoaXMuZHJhd0RhdGEpXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgICAgIC5leGVjKCk7XHJcbiAgICB9LFxyXG4gICAgZ2V0Q2xvdWREYXRhKCkge1xyXG4gICAgICBpZiAodGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID09IHRydWUpIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgdGhpcy5taXhpbkRhdGFjb21HZXQoKVxyXG4gICAgICAgIC50aGVuKHJlcyA9PiB7XHJcbiAgICAgICAgICB0aGlzLm1peGluRGF0YWNvbVJlc0RhdGEgPSByZXMucmVzdWx0LmRhdGE7XHJcbiAgICAgICAgICB0aGlzLmxvY2FsZGF0YUluaXQodGhpcy5taXhpbkRhdGFjb21SZXNEYXRhKTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaChlcnIgPT4ge1xyXG4gICAgICAgICAgdGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnNob3djaGFydCA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5taXhpbkRhdGFjb21FcnJvck1lc3NhZ2UgPSAn6K+35rGC6ZSZ6K+v77yaJyArIGVycjtcclxuICAgICAgICB9KTtcclxuICAgIH0sXHJcbiAgICBvbk1peGluRGF0YWNvbVByb3BzQ2hhbmdlKG5lZWRSZXNldCwgY2hhbmdlZCkge1xyXG4gICAgICBpZiAobmVlZFJlc2V0ID09IHRydWUgJiYgdGhpcy5jb2xsZWN0aW9uICE9PSAnJykge1xyXG4gICAgICAgIHRoaXMuc2hvd2NoYXJ0ID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5taXhpbkRhdGFjb21FcnJvck1lc3NhZ2UgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuX2NsZWFyQ2hhcnQoKTtcclxuICAgICAgICB0aGlzLmdldENsb3VkRGF0YSgpO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgX2NsZWFyQ2hhcnQoKSB7XHJcbiAgICAgIGxldCBjaWQgPSB0aGlzLmNpZFxyXG4gICAgICBpZiAodGhpcy5lY2hhcnRzICE9PSB0cnVlICYmIGNmdS5vcHRpb25bY2lkXSAmJiBjZnUub3B0aW9uW2NpZF0uY29udGV4dCkge1xyXG4gICAgICAgIGNvbnN0IGN0eCA9IGNmdS5vcHRpb25bY2lkXS5jb250ZXh0O1xyXG4gICAgICAgIGlmKHR5cGVvZiBjdHggPT09IFwib2JqZWN0XCIgJiYgISEhY2Z1Lm9wdGlvbltjaWRdLnVwZGF0ZSl7XHJcbiAgICAgICAgICBjdHguY2xlYXJSZWN0KDAsIDAsIHRoaXMuY1dpZHRoKnRoaXMucGl4ZWwsIHRoaXMuY0hlaWdodCp0aGlzLnBpeGVsKTtcclxuICAgICAgICAgIGN0eC5kcmF3KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgaW5pdCgpIHtcclxuICAgICAgbGV0IGNpZCA9IHRoaXMuY2lkXHJcbiAgICAgIGxldCBjaGFydGRvbSA9IHVuaVxyXG4gICAgICAgIC5jcmVhdGVTZWxlY3RvclF1ZXJ5KClcclxuICAgICAgICAvLyAjaWZuZGVmIE1QLUFMSVBBWVxyXG4gICAgICAgIC5pbih0aGlzKVxyXG4gICAgICAgIC8vICNlbmRpZlxyXG4gICAgICAgIC5zZWxlY3QoJyNDaGFydEJveElkJytjaWQpXHJcbiAgICAgICAgLmJvdW5kaW5nQ2xpZW50UmVjdChkYXRhID0+IHtcclxuICAgICAgICAgIGlmIChkYXRhLndpZHRoID4gMCAmJiBkYXRhLmhlaWdodCA+IDApIHtcclxuICAgICAgICAgICAgdGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd2NoYXJ0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5sYXN0RHJhd1RpbWUgPSBEYXRlLm5vdygpO1xyXG4gICAgICAgICAgICB0aGlzLmNXaWR0aCA9IGRhdGEud2lkdGg7XHJcbiAgICAgICAgICAgIHRoaXMuY0hlaWdodCA9IGRhdGEuaGVpZ2h0O1xyXG4gICAgICAgICAgICBpZih0aGlzLmVjaGFydHMgIT09IHRydWUpe1xyXG4gICAgICAgICAgICAgIGNmdS5vcHRpb25bY2lkXS5iYWNrZ3JvdW5kID0gdGhpcy5iYWNrZ3JvdW5kID09ICdyZ2JhKDAsMCwwLDApJyA/ICcjRkZGRkZGJyA6IHRoaXMuYmFja2dyb3VuZDtcclxuICAgICAgICAgICAgICBjZnUub3B0aW9uW2NpZF0uY2FudmFzMmQgPSB0aGlzLnR5cGUyZDtcclxuICAgICAgICAgICAgICBjZnUub3B0aW9uW2NpZF0ucGl4ZWxSYXRpbyA9IHRoaXMucGl4ZWw7XHJcbiAgICAgICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLmFuaW1hdGlvbiA9IHRoaXMuYW5pbWF0aW9uO1xyXG4gICAgICAgICAgICAgIGNmdS5vcHRpb25bY2lkXS53aWR0aCA9IGRhdGEud2lkdGggKiB0aGlzLnBpeGVsO1xyXG4gICAgICAgICAgICAgIGNmdS5vcHRpb25bY2lkXS5oZWlnaHQgPSBkYXRhLmhlaWdodCAqIHRoaXMucGl4ZWw7XHJcbiAgICAgICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLm9uem9vbSA9IHRoaXMub256b29tO1xyXG4gICAgICAgICAgICAgIGNmdS5vcHRpb25bY2lkXS5vbnRhcCA9IHRoaXMub250YXA7XHJcbiAgICAgICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLm9udG91Y2ggPSB0aGlzLm9udG91Y2g7XHJcbiAgICAgICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLm9ubW91c2UgPSB0aGlzLm9wZW5tb3VzZTtcclxuICAgICAgICAgICAgICBjZnUub3B0aW9uW2NpZF0ub25tb3ZldGlwID0gdGhpcy5vbm1vdmV0aXA7XHJcbiAgICAgICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLnRvb2x0aXBTaG93ID0gdGhpcy50b29sdGlwU2hvdztcclxuICAgICAgICAgICAgICBjZnUub3B0aW9uW2NpZF0udG9vbHRpcEZvcm1hdCA9IHRoaXMudG9vbHRpcEZvcm1hdDtcclxuICAgICAgICAgICAgICBjZnUub3B0aW9uW2NpZF0udG9vbHRpcEN1c3RvbSA9IHRoaXMudG9vbHRpcEN1c3RvbTtcclxuICAgICAgICAgICAgICBjZnUub3B0aW9uW2NpZF0uaW5TY3JvbGxWaWV3ID0gdGhpcy5pblNjcm9sbFZpZXc7XHJcbiAgICAgICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLmxhc3REcmF3VGltZSA9IHRoaXMubGFzdERyYXdUaW1lO1xyXG4gICAgICAgICAgICAgIGNmdS5vcHRpb25bY2lkXS50YXBMZWdlbmQgPSB0aGlzLnRhcExlZ2VuZDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvL+WmguaenOaYr0g15oiW6ICFQXBw56uv77yM6YeH55SocmVuZGVyanPmuLLmn5Plm77ooahcclxuICAgICAgICAgICAgaWYgKHRoaXMuaW5INSB8fCB0aGlzLmluQXBwKSB7XHJcbiAgICAgICAgICAgICAgaWYgKHRoaXMuZWNoYXJ0cyA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgICBjZmUub3B0aW9uW2NpZF0ub250YXAgPSB0aGlzLm9udGFwO1xyXG4gICAgICAgICAgICAgICAgY2ZlLm9wdGlvbltjaWRdLm9ubW91c2UgPSB0aGlzLm9wZW5tb3VzZTtcclxuICAgICAgICAgICAgICAgIGNmZS5vcHRpb25bY2lkXS50b29sdGlwU2hvdyA9IHRoaXMudG9vbHRpcFNob3c7XHJcbiAgICAgICAgICAgICAgICBjZmUub3B0aW9uW2NpZF0udG9vbHRpcEZvcm1hdCA9IHRoaXMudG9vbHRpcEZvcm1hdDtcclxuICAgICAgICAgICAgICAgIGNmZS5vcHRpb25bY2lkXS50b29sdGlwQ3VzdG9tID0gdGhpcy50b29sdGlwQ3VzdG9tO1xyXG4gICAgICAgICAgICAgICAgY2ZlLm9wdGlvbltjaWRdLmxhc3REcmF3VGltZSA9IHRoaXMubGFzdERyYXdUaW1lO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5lY2hhcnRzT3B0cyA9IGRlZXBDbG9uZUFzc2lnbih7fSwgY2ZlLm9wdGlvbltjaWRdKTtcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLnJvdGF0ZUxvY2sgPSBjZnUub3B0aW9uW2NpZF0ucm90YXRlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy51Y2hhcnRzT3B0cyA9IGRlZXBDbG9uZUFzc2lnbih7fSwgY2Z1Lm9wdGlvbltjaWRdKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8v5aaC5p6c5piv5bCP56iL5bqP56uv77yM6YeH55SodUNoYXJ0c+a4suafk1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIGNmdS5vcHRpb25bY2lkXSA9IGZvcm1hdHRlckFzc2lnbihjZnUub3B0aW9uW2NpZF0sY2Z1LmZvcm1hdHRlcilcclxuICAgICAgICAgICAgICB0aGlzLm1peGluRGF0YWNvbUVycm9yTWVzc2FnZSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgdGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgdGhpcy5zaG93Y2hhcnQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIHRoaXMuJG5leHRUaWNrKCgpPT57XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy50eXBlMmQgPT09IHRydWUpIHtcclxuICAgICAgICAgICAgICAgICAgY29uc3QgcXVlcnkgPSB1bmkuY3JlYXRlU2VsZWN0b3JRdWVyeSgpLmluKHRoaXMpXHJcbiAgICAgICAgICAgICAgICAgIHF1ZXJ5XHJcbiAgICAgICAgICAgICAgICAgICAgLnNlbGVjdCgnIycgKyBjaWQpXHJcbiAgICAgICAgICAgICAgICAgICAgLmZpZWxkcyh7IG5vZGU6IHRydWUsIHNpemU6IHRydWUgfSlcclxuICAgICAgICAgICAgICAgICAgICAuZXhlYyhyZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc1swXSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjYW52YXMgPSByZXNbMF0ubm9kZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNmdS5vcHRpb25bY2lkXS5jb250ZXh0ID0gY3R4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjZnUub3B0aW9uW2NpZF0ucm90YXRlTG9jayA9IGNmdS5vcHRpb25bY2lkXS5yb3RhdGU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmKGNmdS5pbnN0YW5jZVtjaWRdICYmIGNmdS5vcHRpb25bY2lkXSAmJiBjZnUub3B0aW9uW2NpZF0udXBkYXRlID09PSB0cnVlKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl91cGRhdGFVQ2hhcnQoY2lkKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBjYW52YXMud2lkdGggPSBkYXRhLndpZHRoICogdGhpcy5waXhlbDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBjYW52YXMuaGVpZ2h0ID0gZGF0YS5oZWlnaHQgKiB0aGlzLnBpeGVsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNhbnZhcy5fd2lkdGggPSBkYXRhLndpZHRoICogdGhpcy5waXhlbDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBjYW52YXMuX2hlaWdodCA9IGRhdGEuaGVpZ2h0ICogdGhpcy5waXhlbDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpPT57XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZnUub3B0aW9uW2NpZF0uY29udGV4dC5yZXN0b3JlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZnUub3B0aW9uW2NpZF0uY29udGV4dC5zYXZlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9uZXdDaGFydChjaWQpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwxMDApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2hvd2NoYXJ0ID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubWl4aW5EYXRhY29tRXJyb3JNZXNzYWdlID0gJ+WPguaVsOmUmeivr++8muW8gOWQrzJk5qih5byP5ZCO77yM5pyq6I635Y+W5YiwZG9t6IqC54K577yMY2FudmFzLWlkOicgKyBjaWQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICBpZih0aGlzLmluQWxpKXtcclxuICAgICAgICAgICAgICAgICAgICBjZnUub3B0aW9uW2NpZF0ucm90YXRlTG9jayA9IGNmdS5vcHRpb25bY2lkXS5yb3RhdGU7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLmNvbnRleHQgPSB1bmkuY3JlYXRlQ2FudmFzQ29udGV4dChjaWQsIHRoaXMpO1xyXG4gICAgICAgICAgICAgICAgICBpZihjZnUuaW5zdGFuY2VbY2lkXSAmJiBjZnUub3B0aW9uW2NpZF0gJiYgY2Z1Lm9wdGlvbltjaWRdLnVwZGF0ZSA9PT0gdHJ1ZSl7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fdXBkYXRhVUNoYXJ0KGNpZClcclxuICAgICAgICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKT0+e1xyXG4gICAgICAgICAgICAgICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLmNvbnRleHQucmVzdG9yZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLmNvbnRleHQuc2F2ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5fbmV3Q2hhcnQoY2lkKVxyXG4gICAgICAgICAgICAgICAgICAgIH0sMTAwKVxyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd2NoYXJ0ID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnJlc2hvdyA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5taXhpbkRhdGFjb21FcnJvck1lc3NhZ2UgPSAn5biD5bGA6ZSZ6K+v77ya5pyq6I635Y+W5Yiw54i25YWD57Sg5a696auY5bC65a+477yBY2FudmFzLWlkOicgKyBjaWQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgICAgIC5leGVjKCk7XHJcbiAgICB9LFxyXG4gICAgc2F2ZUltYWdlKCl7XHJcbiAgICBcdHVuaS5jYW52YXNUb1RlbXBGaWxlUGF0aCh7XHJcbiAgICBcdCAgY2FudmFzSWQ6IHRoaXMuY2lkLFxyXG4gICAgXHQgIHN1Y2Nlc3M6IHJlcz0+e1xyXG4gICAgXHQgICAgLy8jaWZkZWYgSDVcclxuICAgIFx0XHRcdHZhciBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImFcIik7XHJcbiAgICBcdFx0XHRhLmhyZWYgPSByZXMudGVtcEZpbGVQYXRoO1xyXG4gICAgXHRcdFx0YS5kb3dubG9hZCA9IHRoaXMuY2lkO1xyXG4gICAgXHRcdFx0YS50YXJnZXQgPSAnX2JsYW5rJ1xyXG4gICAgXHRcdFx0YS5jbGljaygpO1xyXG4gICAgXHQgICAgLy8jZW5kaWZcclxuICAgIFx0ICAgIC8vI2lmbmRlZiBINVxyXG4gICAgXHQgICAgICB1bmkuc2F2ZUltYWdlVG9QaG90b3NBbGJ1bSh7XHJcbiAgICAgICAgICAgICAgZmlsZVBhdGg6IHJlcy50ZW1wRmlsZVBhdGgsXHJcbiAgICAgICAgICAgICAgc3VjY2VzczogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgdW5pLnNob3dUb2FzdCh7XHJcbiAgICAgICAgICAgICAgICAgIHRpdGxlOiAn5L+d5a2Y5oiQ5YqfJyxcclxuICAgICAgICAgICAgICAgICAgZHVyYXRpb246IDIwMDBcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgIFx0ICAgICAgfSk7XHJcbiAgICBcdCAgICAvLyNlbmRpZlxyXG4gICAgXHQgIH0gXHJcbiAgICBcdH0sdGhpcyk7XHJcbiAgICB9LFxyXG4gICAgZ2V0SW1hZ2UoKXtcclxuICAgICAgaWYodGhpcy50eXBlMmQgPT0gZmFsc2Upe1xyXG4gICAgICAgIHVuaS5jYW52YXNUb1RlbXBGaWxlUGF0aCh7XHJcbiAgICAgICAgICBjYW52YXNJZDogdGhpcy5jaWQsXHJcbiAgICAgICAgICBzdWNjZXNzOiByZXM9PntcclxuICAgICAgICAgICAgdGhpcy5lbWl0TXNnKHtuYW1lOiAnZ2V0SW1hZ2UnLCBwYXJhbXM6IHt0eXBlOlwiZ2V0SW1hZ2VcIiwgYmFzZTY0OiByZXMudGVtcEZpbGVQYXRofX0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sdGhpcyk7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIGNvbnN0IHF1ZXJ5ID0gdW5pLmNyZWF0ZVNlbGVjdG9yUXVlcnkoKS5pbih0aGlzKVxyXG4gICAgICAgIHF1ZXJ5XHJcbiAgICAgICAgICAuc2VsZWN0KCcjJyArIHRoaXMuY2lkKVxyXG4gICAgICAgICAgLmZpZWxkcyh7IG5vZGU6IHRydWUsIHNpemU6IHRydWUgfSlcclxuICAgICAgICAgIC5leGVjKHJlcyA9PiB7XHJcbiAgICAgICAgICAgIGlmIChyZXNbMF0pIHtcclxuICAgICAgICAgICAgICBjb25zdCBjYW52YXMgPSByZXNbMF0ubm9kZTtcclxuICAgICAgICAgICAgICB0aGlzLmVtaXRNc2coe25hbWU6ICdnZXRJbWFnZScsIHBhcmFtczoge3R5cGU6XCJnZXRJbWFnZVwiLCBiYXNlNjQ6IGNhbnZhcy50b0RhdGFVUkwoJ2ltYWdlL3BuZycpfX0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIC8vICNpZm5kZWYgQVBQLVZVRSB8fCBINVxyXG4gICAgX25ld0NoYXJ0KGNpZCkge1xyXG4gICAgICBpZiAodGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID09IHRydWUpIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5zaG93Y2hhcnQgPSB0cnVlO1xyXG4gICAgICBjZnUuaW5zdGFuY2VbY2lkXSA9IG5ldyB1Q2hhcnRzKGNmdS5vcHRpb25bY2lkXSk7XHJcbiAgICAgIGNmdS5pbnN0YW5jZVtjaWRdLmFkZEV2ZW50TGlzdGVuZXIoJ3JlbmRlckNvbXBsZXRlJywgKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuZW1pdE1zZyh7bmFtZTogJ2NvbXBsZXRlJywgcGFyYW1zOiB7dHlwZTpcImNvbXBsZXRlXCIsIGNvbXBsZXRlOiB0cnVlLCBpZDogY2lkLCBvcHRzOiBjZnUuaW5zdGFuY2VbY2lkXS5vcHRzfX0pO1xyXG4gICAgICAgIGNmdS5pbnN0YW5jZVtjaWRdLmRlbEV2ZW50TGlzdGVuZXIoJ3JlbmRlckNvbXBsZXRlJylcclxuICAgICAgfSk7XHJcbiAgICAgIGNmdS5pbnN0YW5jZVtjaWRdLmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbExlZnQnLCAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5lbWl0TXNnKHtuYW1lOiAnc2Nyb2xsTGVmdCcsIHBhcmFtczoge3R5cGU6XCJzY3JvbGxMZWZ0XCIsIHNjcm9sbExlZnQ6IHRydWUsIGlkOiBjaWQsIG9wdHM6IGNmdS5pbnN0YW5jZVtjaWRdLm9wdHN9fSk7XHJcbiAgICAgIH0pO1xyXG4gICAgICBjZnUuaW5zdGFuY2VbY2lkXS5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGxSaWdodCcsICgpID0+IHtcclxuICAgICAgICB0aGlzLmVtaXRNc2coe25hbWU6ICdzY3JvbGxSaWdodCcsIHBhcmFtczoge3R5cGU6XCJzY3JvbGxSaWdodFwiLCBzY3JvbGxSaWdodDogdHJ1ZSwgaWQ6IGNpZCwgb3B0czogY2Z1Lmluc3RhbmNlW2NpZF0ub3B0c319KTtcclxuICAgICAgfSk7XHJcbiAgICB9LFxyXG4gICAgX3VwZGF0YVVDaGFydChjaWQpIHtcclxuICAgICAgY2Z1Lmluc3RhbmNlW2NpZF0udXBkYXRlRGF0YShjZnUub3B0aW9uW2NpZF0pXHJcbiAgICB9LFxyXG4gICAgX3Rvb2x0aXBEZWZhdWx0KGl0ZW0sIGNhdGVnb3J5LCBpbmRleCwgb3B0cykge1xyXG4gICAgICBpZiAoY2F0ZWdvcnkpIHtcclxuICAgICAgICBsZXQgZGF0YSA9IGl0ZW0uZGF0YVxyXG4gICAgICAgIGlmKHR5cGVvZiBpdGVtLmRhdGEgPT09IFwib2JqZWN0XCIpe1xyXG4gICAgICAgICAgZGF0YSA9IGl0ZW0uZGF0YS52YWx1ZVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gY2F0ZWdvcnkgKyAnICcgKyBpdGVtLm5hbWUgKyAnOicgKyBkYXRhO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmIChpdGVtLnByb3BlcnRpZXMgJiYgaXRlbS5wcm9wZXJ0aWVzLm5hbWUpIHtcclxuICAgICAgICAgIHJldHVybiBpdGVtLnByb3BlcnRpZXMubmFtZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmV0dXJuIGl0ZW0ubmFtZSArICc6JyArIGl0ZW0uZGF0YTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBfc2hvd1Rvb2x0aXAoZSkge1xyXG4gICAgICBsZXQgY2lkID0gdGhpcy5jaWRcclxuICAgICAgbGV0IHRjID0gY2Z1Lm9wdGlvbltjaWRdLnRvb2x0aXBDdXN0b21cclxuICAgICAgaWYgKHRjICYmIHRjICE9PSB1bmRlZmluZWQgJiYgdGMgIT09IG51bGwpIHtcclxuICAgICAgICBsZXQgb2Zmc2V0ID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIGlmICh0Yy54ID49IDAgJiYgdGMueSA+PSAwKSB7XHJcbiAgICAgICAgICBvZmZzZXQgPSB7IHg6IHRjLngsIHk6IHRjLnkgKyAxMCB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICBjZnUuaW5zdGFuY2VbY2lkXS5zaG93VG9vbFRpcChlLCB7XHJcbiAgICAgICAgICBpbmRleDogdGMuaW5kZXgsXHJcbiAgICAgICAgICBvZmZzZXQ6IG9mZnNldCxcclxuICAgICAgICAgIHRleHRMaXN0OiB0Yy50ZXh0TGlzdCxcclxuICAgICAgICAgIGZvcm1hdHRlcjogKGl0ZW0sIGNhdGVnb3J5LCBpbmRleCwgb3B0cykgPT4ge1xyXG4gICAgICAgICAgICBpZiAodHlwZW9mIGNmdS5vcHRpb25bY2lkXS50b29sdGlwRm9ybWF0ID09PSAnc3RyaW5nJyAmJiBjZnUuZm9ybWF0dGVyW2NmdS5vcHRpb25bY2lkXS50b29sdGlwRm9ybWF0XSkge1xyXG4gICAgICAgICAgICAgIHJldHVybiBjZnUuZm9ybWF0dGVyW2NmdS5vcHRpb25bY2lkXS50b29sdGlwRm9ybWF0XShpdGVtLCBjYXRlZ29yeSwgaW5kZXgsIG9wdHMpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLl90b29sdGlwRGVmYXVsdChpdGVtLCBjYXRlZ29yeSwgaW5kZXgsIG9wdHMpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY2Z1Lmluc3RhbmNlW2NpZF0uc2hvd1Rvb2xUaXAoZSwge1xyXG4gICAgICAgICAgZm9ybWF0dGVyOiAoaXRlbSwgY2F0ZWdvcnksIGluZGV4LCBvcHRzKSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY2Z1Lm9wdGlvbltjaWRdLnRvb2x0aXBGb3JtYXQgPT09ICdzdHJpbmcnICYmIGNmdS5mb3JtYXR0ZXJbY2Z1Lm9wdGlvbltjaWRdLnRvb2x0aXBGb3JtYXRdKSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIGNmdS5mb3JtYXR0ZXJbY2Z1Lm9wdGlvbltjaWRdLnRvb2x0aXBGb3JtYXRdKGl0ZW0sIGNhdGVnb3J5LCBpbmRleCwgb3B0cyk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3Rvb2x0aXBEZWZhdWx0KGl0ZW0sIGNhdGVnb3J5LCBpbmRleCwgb3B0cyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIF90YXAoZSxtb3ZlKSB7XHJcbiAgICAgIGxldCBjaWQgPSB0aGlzLmNpZFxyXG4gICAgICBsZXQgY3VycmVudEluZGV4ID0gbnVsbDtcclxuICAgICAgbGV0IGxlZ2VuZEluZGV4ID0gbnVsbDtcclxuICAgICAgaWYgKHRoaXMuaW5TY3JvbGxWaWV3ID09PSB0cnVlIHx8IHRoaXMuaW5BbGkpIHtcclxuICAgICAgICBsZXQgY2hhcnRkb20gPSB1bmlcclxuICAgICAgICAgIC5jcmVhdGVTZWxlY3RvclF1ZXJ5KClcclxuICAgICAgICAgIC8vICNpZm5kZWYgTVAtQUxJUEFZXHJcbiAgICAgICAgICAuaW4odGhpcylcclxuICAgICAgICAgIC5zZWxlY3QoJyNDaGFydEJveElkJytjaWQpXHJcbiAgICAgICAgICAvLyAjZW5kaWZcclxuICAgICAgICAgIC8vICNpZmRlZiBNUC1BTElQQVlcclxuICAgICAgICAgIC5zZWxlY3QoJyMnK3RoaXMuY2lkKVxyXG4gICAgICAgICAgLy8gI2VuZGlmXHJcbiAgICAgICAgICAuYm91bmRpbmdDbGllbnRSZWN0KGRhdGEgPT4ge1xyXG4gICAgICAgICAgICBlLmNoYW5nZWRUb3VjaGVzPVtdO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5pbkFsaSkge1xyXG4gICAgICAgICAgICAgIGUuY2hhbmdlZFRvdWNoZXMudW5zaGlmdCh7IHg6IGUuZGV0YWlsLmNsaWVudFggLSBkYXRhLmxlZnQsIHk6IGUuZGV0YWlsLmNsaWVudFkgLSBkYXRhLnRvcH0pO1xyXG4gICAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgICBlLmNoYW5nZWRUb3VjaGVzLnVuc2hpZnQoeyB4OiBlLmRldGFpbC54IC0gZGF0YS5sZWZ0LCB5OiBlLmRldGFpbC55IC0gZGF0YS50b3AgLSB0aGlzLnBhZ2VTY3JvbGxUb3B9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZihtb3ZlKXtcclxuICAgICAgICAgICAgICBpZiAodGhpcy50b29sdGlwU2hvdyA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fc2hvd1Rvb2x0aXAoZSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgICBjdXJyZW50SW5kZXggPSBjZnUuaW5zdGFuY2VbY2lkXS5nZXRDdXJyZW50RGF0YUluZGV4KGUpO1xyXG4gICAgICAgICAgICAgIGxlZ2VuZEluZGV4ID0gY2Z1Lmluc3RhbmNlW2NpZF0uZ2V0TGVnZW5kRGF0YUluZGV4KGUpO1xyXG4gICAgICAgICAgICAgIGlmKHRoaXMudGFwTGVnZW5kID09PSB0cnVlKXtcclxuICAgICAgICAgICAgICAgIGNmdS5pbnN0YW5jZVtjaWRdLnRvdWNoTGVnZW5kKGUpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBpZiAodGhpcy50b29sdGlwU2hvdyA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fc2hvd1Rvb2x0aXAoZSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHRoaXMuZW1pdE1zZyh7bmFtZTogJ2dldEluZGV4JywgcGFyYW1zOiB7IHR5cGU6XCJnZXRJbmRleFwiLCBldmVudDp7IHg6IGUuZGV0YWlsLnggLSBkYXRhLmxlZnQsIHk6IGUuZGV0YWlsLnkgLSBkYXRhLnRvcCB9LCBjdXJyZW50SW5kZXg6IGN1cnJlbnRJbmRleCwgbGVnZW5kSW5kZXg6IGxlZ2VuZEluZGV4LCBpZDogY2lkLCBvcHRzOiBjZnUuaW5zdGFuY2VbY2lkXS5vcHRzfX0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgLmV4ZWMoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZihtb3ZlKXtcclxuICAgICAgICAgIGlmICh0aGlzLnRvb2x0aXBTaG93ID09PSB0cnVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3Nob3dUb29sdGlwKGUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgZS5jaGFuZ2VkVG91Y2hlcz1bXTtcclxuICAgICAgICAgIGUuY2hhbmdlZFRvdWNoZXMudW5zaGlmdCh7IHg6IGUuZGV0YWlsLnggLSBlLmN1cnJlbnRUYXJnZXQub2Zmc2V0TGVmdCwgeTogZS5kZXRhaWwueSAtIGUuY3VycmVudFRhcmdldC5vZmZzZXRUb3AgfSk7XHJcbiAgICAgICAgICBjdXJyZW50SW5kZXggPSBjZnUuaW5zdGFuY2VbY2lkXS5nZXRDdXJyZW50RGF0YUluZGV4KGUpO1xyXG4gICAgICAgICAgbGVnZW5kSW5kZXggPSBjZnUuaW5zdGFuY2VbY2lkXS5nZXRMZWdlbmREYXRhSW5kZXgoZSk7XHJcbiAgICAgICAgICBpZih0aGlzLnRhcExlZ2VuZCA9PT0gdHJ1ZSl7XHJcbiAgICAgICAgICAgIGNmdS5pbnN0YW5jZVtjaWRdLnRvdWNoTGVnZW5kKGUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKHRoaXMudG9vbHRpcFNob3cgPT09IHRydWUpIHtcclxuICAgICAgICAgICAgdGhpcy5fc2hvd1Rvb2x0aXAoZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLmVtaXRNc2coe25hbWU6ICdnZXRJbmRleCcsIHBhcmFtczoge3R5cGU6XCJnZXRJbmRleFwiLCBldmVudDp7IHg6IGUuZGV0YWlsLngsIHk6IGUuZGV0YWlsLnkgLSBlLmN1cnJlbnRUYXJnZXQub2Zmc2V0VG9wIH0sIGN1cnJlbnRJbmRleDogY3VycmVudEluZGV4LCBsZWdlbmRJbmRleDogbGVnZW5kSW5kZXgsIGlkOiBjaWQsIG9wdHM6IGNmdS5pbnN0YW5jZVtjaWRdLm9wdHN9fSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgX3RvdWNoU3RhcnQoZSkge1xyXG4gICAgICBsZXQgY2lkID0gdGhpcy5jaWRcclxuICAgICAgbGFzdE1vdmVUaW1lPURhdGUubm93KCk7XHJcbiAgICAgIGlmKGNmdS5vcHRpb25bY2lkXS5lbmFibGVTY3JvbGwgPT09IHRydWUgJiYgZS50b3VjaGVzLmxlbmd0aCA9PSAxKXtcclxuICAgICAgICBjZnUuaW5zdGFuY2VbY2lkXS5zY3JvbGxTdGFydChlKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmVtaXRNc2coe25hbWU6J2dldFRvdWNoU3RhcnQnLCBwYXJhbXM6e3R5cGU6XCJ0b3VjaFN0YXJ0XCIsIGV2ZW50OmUuY2hhbmdlZFRvdWNoZXNbMF0sIGlkOmNpZCwgb3B0czogY2Z1Lmluc3RhbmNlW2NpZF0ub3B0c319KTtcclxuICAgIH0sXHJcbiAgICBfdG91Y2hNb3ZlKGUpIHtcclxuICAgICAgbGV0IGNpZCA9IHRoaXMuY2lkXHJcbiAgICAgIGxldCBjdXJyTW92ZVRpbWUgPSBEYXRlLm5vdygpO1xyXG4gICAgICBsZXQgZHVyYXRpb24gPSBjdXJyTW92ZVRpbWUgLSBsYXN0TW92ZVRpbWU7XHJcbiAgICAgIGxldCB0b3VjaE1vdmVMaW1pdCA9IGNmdS5vcHRpb25bY2lkXS50b3VjaE1vdmVMaW1pdCB8fCAyNDtcclxuICAgICAgaWYgKGR1cmF0aW9uIDwgTWF0aC5mbG9vcigxMDAwIC8gdG91Y2hNb3ZlTGltaXQpKSByZXR1cm47Ly/mr4/np5I2MOW4p1xyXG4gICAgICBsYXN0TW92ZVRpbWUgPSBjdXJyTW92ZVRpbWU7XHJcbiAgICAgIGlmKGNmdS5vcHRpb25bY2lkXS5lbmFibGVTY3JvbGwgPT09IHRydWUgJiYgZS5jaGFuZ2VkVG91Y2hlcy5sZW5ndGggPT0gMSl7XHJcbiAgICAgICAgY2Z1Lmluc3RhbmNlW2NpZF0uc2Nyb2xsKGUpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmKHRoaXMub250YXAgPT09IHRydWUgJiYgY2Z1Lm9wdGlvbltjaWRdLmVuYWJsZVNjcm9sbCA9PT0gZmFsc2UgJiYgdGhpcy5vbm1vdmV0aXAgPT09IHRydWUpe1xyXG4gICAgICAgIHRoaXMuX3RhcChlLHRydWUpXHJcbiAgICAgIH1cclxuICAgICAgaWYodGhpcy5vbnRvdWNoID09PSB0cnVlICYmIGNmdS5vcHRpb25bY2lkXS5lbmFibGVTY3JvbGwgPT09IHRydWUgJiYgdGhpcy5vbnpvb20gPT09IHRydWUgJiYgZS5jaGFuZ2VkVG91Y2hlcy5sZW5ndGggPT0gMil7XHJcbiAgICAgICAgY2Z1Lmluc3RhbmNlW2NpZF0uZG9idWxlWm9vbShlKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmVtaXRNc2coe25hbWU6ICdnZXRUb3VjaE1vdmUnLCBwYXJhbXM6IHt0eXBlOlwidG91Y2hNb3ZlXCIsIGV2ZW50OmUuY2hhbmdlZFRvdWNoZXNbMF0sIGlkOiBjaWQsIG9wdHM6IGNmdS5pbnN0YW5jZVtjaWRdLm9wdHN9fSk7XHJcbiAgICB9LFxyXG4gICAgX3RvdWNoRW5kKGUpIHtcclxuICAgICAgbGV0IGNpZCA9IHRoaXMuY2lkXHJcbiAgICAgIGlmKGNmdS5vcHRpb25bY2lkXS5lbmFibGVTY3JvbGwgPT09IHRydWUgJiYgZS50b3VjaGVzLmxlbmd0aCA9PSAwKXtcclxuICAgICAgICBjZnUuaW5zdGFuY2VbY2lkXS5zY3JvbGxFbmQoZSk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5lbWl0TXNnKHtuYW1lOidnZXRUb3VjaEVuZCcsIHBhcmFtczp7dHlwZTpcInRvdWNoRW5kXCIsIGV2ZW50OmUuY2hhbmdlZFRvdWNoZXNbMF0sIGlkOmNpZCwgb3B0czogY2Z1Lmluc3RhbmNlW2NpZF0ub3B0c319KTtcclxuICAgICAgaWYodGhpcy5vbnRhcCA9PT0gdHJ1ZSAmJiBjZnUub3B0aW9uW2NpZF0uZW5hYmxlU2Nyb2xsID09PSBmYWxzZSAmJiB0aGlzLm9ubW92ZXRpcCA9PT0gdHJ1ZSl7XHJcbiAgICAgICAgdGhpcy5fdGFwKGUsdHJ1ZSlcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIC8vICNlbmRpZlxyXG4gICAgX2Vycm9yKGUpIHtcclxuICAgICAgdGhpcy5taXhpbkRhdGFjb21FcnJvck1lc3NhZ2UgPSBlLmRldGFpbC5lcnJNc2c7XHJcbiAgICB9LFxyXG4gICAgZW1pdE1zZyhtc2cpIHtcclxuICAgICAgdGhpcy4kZW1pdChtc2cubmFtZSwgbXNnLnBhcmFtcyk7XHJcbiAgICB9LFxyXG4gICAgZ2V0UmVuZGVyVHlwZSgpIHtcclxuICAgICAgLy/pmLLmraLlpoLmnpzlvIDlkK9lY2hhcnRz5LiU54i25YWD57Sg5Li6di1pZueahOaDheWGtXJlbmRlcmpz55uR5ZCs5LiN5YiwcHJvcOWPmOWMlueahOmXrumimFxyXG4gICAgICBpZih0aGlzLmVjaGFydHM9PT10cnVlICYmIHRoaXMubWl4aW5EYXRhY29tTG9hZGluZz09PWZhbHNlKXtcclxuICAgICAgICB0aGlzLmJlZm9yZUluaXQoKVxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgdG9KU09OKCl7XHJcbiAgICAgIHJldHVybiB0aGlzXHJcbiAgICB9XHJcbiAgfVxyXG59O1xyXG48L3NjcmlwdD5cclxuXHJcbjwhLS0gI2lmZGVmIEFQUC1WVUUgfHwgSDUgLS0+XHJcbjxzY3JpcHQgbW9kdWxlPVwicmRjaGFydHNcIiBsYW5nPVwicmVuZGVyanNcIj5cclxuaW1wb3J0IHVDaGFydHNSRCBmcm9tICcuLi8uLi9qc19zZGsvdS1jaGFydHMvdS1jaGFydHMuanMnO1xyXG5pbXBvcnQgY2Z1IGZyb20gJy4uLy4uL2pzX3Nkay91LWNoYXJ0cy9jb25maWctdWNoYXJ0cy5qcyc7XHJcbmltcG9ydCBjZmUgZnJvbSAnLi4vLi4vanNfc2RrL3UtY2hhcnRzL2NvbmZpZy1lY2hhcnRzLmpzJztcclxuXHJcbnZhciB0aGF0ID0ge307XHJcbnZhciByb290ZG9tID0gbnVsbDtcclxuXHJcbmZ1bmN0aW9uIHJkZGVlcENsb25lQXNzaWduKG9yaWdpbiA9IHt9LCAuLi5hcmdzKSB7XHJcbiAgZm9yIChsZXQgaSBpbiBhcmdzKSB7XHJcbiAgICBmb3IgKGxldCBrZXkgaW4gYXJnc1tpXSkge1xyXG4gICAgICBpZiAoYXJnc1tpXS5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XHJcbiAgICAgICAgb3JpZ2luW2tleV0gPSBhcmdzW2ldW2tleV0gJiYgdHlwZW9mIGFyZ3NbaV1ba2V5XSA9PT0gJ29iamVjdCcgPyByZGRlZXBDbG9uZUFzc2lnbihBcnJheS5pc0FycmF5KGFyZ3NbaV1ba2V5XSkgPyBbXSA6IHt9LCBvcmlnaW5ba2V5XSwgYXJnc1tpXVtrZXldKSA6IGFyZ3NbaV1ba2V5XTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gb3JpZ2luO1xyXG59XHJcblxyXG5mdW5jdGlvbiByZGZvcm1hdHRlckFzc2lnbihhcmdzLGZvcm1hdHRlcikge1xyXG4gIGZvciAobGV0IGtleSBpbiBhcmdzKSB7XHJcbiAgICBpZihhcmdzLmhhc093blByb3BlcnR5KGtleSkgJiYgYXJnc1trZXldICE9PSBudWxsICYmIHR5cGVvZiBhcmdzW2tleV0gPT09ICdvYmplY3QnKXtcclxuICAgICAgcmRmb3JtYXR0ZXJBc3NpZ24oYXJnc1trZXldLGZvcm1hdHRlcilcclxuICAgIH1lbHNlIGlmKGtleSA9PT0gJ2Zvcm1hdCcgJiYgdHlwZW9mIGFyZ3Nba2V5XSA9PT0gJ3N0cmluZycpe1xyXG4gICAgICBhcmdzWydmb3JtYXR0ZXInXSA9IGZvcm1hdHRlclthcmdzW2tleV1dID8gZm9ybWF0dGVyW2FyZ3Nba2V5XV0gOiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBhcmdzO1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCB7XHJcbiAgZGF0YSgpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHJpZDpudWxsXHJcbiAgICB9XHJcbiAgfSxcclxuICBtb3VudGVkKCkge1xyXG4gICAgcm9vdGRvbSA9IHt0b3A6MCxsZWZ0OjB9XHJcbiAgICAvLyAjaWZkZWYgSDVcclxuICAgIGxldCBkbSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3VuaS1tYWluJylbMF1cclxuICAgIGlmKGRtID09PSB1bmRlZmluZWQpe1xyXG4gICAgICBkbSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3VuaS1wYWdlLXdyYXBwZXInKVswXVxyXG4gICAgfVxyXG4gICAgcm9vdGRvbSA9IHt0b3A6ZG0ub2Zmc2V0VG9wLGxlZnQ6ZG0ub2Zmc2V0TGVmdH1cclxuICAgIC8vICNlbmRpZlxyXG4gICAgc2V0VGltZW91dCgoKT0+e1xyXG4gICAgICBpZih0aGlzLnJpZCA9PT0gbnVsbCl7XHJcbiAgICAgICAgdGhpcy4kb3duZXJJbnN0YW5jZSAmJiB0aGlzLiRvd25lckluc3RhbmNlLmNhbGxNZXRob2QoJ2dldFJlbmRlclR5cGUnKVxyXG4gICAgICB9XHJcbiAgICB9LDIwMClcclxuICB9LFxyXG4gIGRlc3Ryb3llZCgpe1xyXG4gICAgZGVsZXRlIGNmdS5vcHRpb25bdGhpcy5yaWRdXHJcbiAgICBkZWxldGUgY2Z1Lmluc3RhbmNlW3RoaXMucmlkXVxyXG4gICAgZGVsZXRlIGNmZS5vcHRpb25bdGhpcy5yaWRdXHJcbiAgICBkZWxldGUgY2ZlLmluc3RhbmNlW3RoaXMucmlkXVxyXG4gIH0sXHJcbiAgbWV0aG9kczoge1xyXG4gICAgLy89PT09PT09PT09PT09PeS7peS4i+aYr0VDaGFydHPnmoTmlrnms5U9PT09PT09PT09PT09PT09PT09PVxyXG4gICAgZWNpbml0KG5ld1ZhbCwgb2xkVmFsLCBvd25lciwgaW5zdGFuY2Upe1xyXG4gICAgICBsZXQgY2lkID0gSlNPTi5zdHJpbmdpZnkobmV3VmFsLmlkKVxyXG4gICAgICB0aGlzLnJpZCA9IGNpZFxyXG4gICAgICB0aGF0W2NpZF0gPSB0aGlzLiRvd25lckluc3RhbmNlIHx8IGluc3RhbmNlXHJcbiAgICAgIGxldCBlb3B0cyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkobmV3VmFsKSlcclxuICAgICAgbGV0IHR5cGUgPSBlb3B0cy50eXBlO1xyXG4gICAgICAvL+i9veWFpeW5tuimhueblum7mOiupOmFjee9rlxyXG4gICAgICBpZiAodHlwZSAmJiBjZmUudHlwZS5pbmNsdWRlcyh0eXBlKSkge1xyXG4gICAgICAgIGNmZS5vcHRpb25bY2lkXSA9IHJkZGVlcENsb25lQXNzaWduKHt9LCBjZmVbdHlwZV0sIGVvcHRzKTtcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgY2ZlLm9wdGlvbltjaWRdID0gcmRkZWVwQ2xvbmVBc3NpZ24oe30sIGVvcHRzKTtcclxuICAgICAgfVxyXG4gICAgICBsZXQgbmV3RGF0YSA9IGVvcHRzLmNoYXJ0RGF0YTtcclxuICAgICAgaWYobmV3RGF0YSl7XHJcbiAgICAgICAgLy/mjILovb1jYXRlZ29yaWVz5ZKMc2VyaWVzXHJcbiAgICAgICAgaWYoY2ZlLm9wdGlvbltjaWRdLnhBeGlzICYmIGNmZS5vcHRpb25bY2lkXS54QXhpcy50eXBlICYmIGNmZS5vcHRpb25bY2lkXS54QXhpcy50eXBlID09PSAnY2F0ZWdvcnknKXtcclxuICAgICAgICAgIGNmZS5vcHRpb25bY2lkXS54QXhpcy5kYXRhID0gbmV3RGF0YS5jYXRlZ29yaWVzXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKGNmZS5vcHRpb25bY2lkXS55QXhpcyAmJiBjZmUub3B0aW9uW2NpZF0ueUF4aXMudHlwZSAmJiBjZmUub3B0aW9uW2NpZF0ueUF4aXMudHlwZSA9PT0gJ2NhdGVnb3J5Jyl7XHJcbiAgICAgICAgICBjZmUub3B0aW9uW2NpZF0ueUF4aXMuZGF0YSA9IG5ld0RhdGEuY2F0ZWdvcmllc1xyXG4gICAgICAgIH1cclxuICAgICAgICBjZmUub3B0aW9uW2NpZF0uc2VyaWVzID0gW11cclxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5ld0RhdGEuc2VyaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICBjZmUub3B0aW9uW2NpZF0uc2VyaWVzVGVtcGxhdGUgPSBjZmUub3B0aW9uW2NpZF0uc2VyaWVzVGVtcGxhdGUgPyBjZmUub3B0aW9uW2NpZF0uc2VyaWVzVGVtcGxhdGUgOiB7fVxyXG4gICAgICAgICAgbGV0IFRlbXBsYXRlID0gcmRkZWVwQ2xvbmVBc3NpZ24oe30sY2ZlLm9wdGlvbltjaWRdLnNlcmllc1RlbXBsYXRlLG5ld0RhdGEuc2VyaWVzW2ldKVxyXG4gICAgICAgICAgY2ZlLm9wdGlvbltjaWRdLnNlcmllcy5wdXNoKFRlbXBsYXRlKVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBcclxuICAgICAgaWYgKHR5cGVvZiB3aW5kb3cuZWNoYXJ0cyA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgICAgIHRoaXMubmV3RUNoYXJ0KClcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgY29uc3Qgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0JylcclxuICAgICAgICAvLyAjaWZkZWYgQVBQLVZVRVxyXG4gICAgICAgIHNjcmlwdC5zcmMgPSAnLi91bmlfbW9kdWxlcy9xaXVuLWRhdGEtY2hhcnRzL3N0YXRpYy9hcHAtcGx1cy9lY2hhcnRzLm1pbi5qcydcclxuICAgICAgICAvLyAjZW5kaWZcclxuICAgICAgICAvLyAjaWZkZWYgSDVcclxuICAgICAgICBjb25zdCB7IG9yaWdpbiB9ID0gd2luZG93LmxvY2F0aW9uXHJcbiAgICAgICAgY29uc3Qgcm9vdHVybCA9IG9yaWdpbiArIHByb2Nlc3MuZW52LkJBU0VfVVJMXHJcbiAgICAgICAgc2NyaXB0LnNyYyA9IHJvb3R1cmwgKyAndW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9zdGF0aWMvaDUvZWNoYXJ0cy5taW4uanMnXHJcbiAgICAgICAgLy8gI2VuZGlmXHJcbiAgICAgICAgc2NyaXB0Lm9ubG9hZCA9IHRoaXMubmV3RUNoYXJ0XHJcbiAgICAgICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzY3JpcHQpXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBlY3Jlc2l6ZShuZXdWYWwsIG9sZFZhbCwgb3duZXIsIGluc3RhbmNlKXtcclxuICAgICAgaWYoY2ZlLmluc3RhbmNlW3RoaXMucmlkXSl7XHJcbiAgICAgICAgY2ZlLmluc3RhbmNlW3RoaXMucmlkXS5yZXNpemUoKVxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgbmV3RUNoYXJ0KCl7XHJcbiAgICAgIGxldCBjaWQgPSB0aGlzLnJpZFxyXG4gICAgICBpZihjZmUuaW5zdGFuY2VbY2lkXSA9PT0gdW5kZWZpbmVkKXtcclxuICAgICAgICBjZmUuaW5zdGFuY2VbY2lkXSA9IGVjaGFydHMuaW5pdCh0aGF0W2NpZF0uJGVsLmNoaWxkcmVuWzBdKVxyXG4gICAgICAgIC8vb250YXDlvIDlkK/lkI7miY3op6blj5FjbGlja+S6i+S7tlxyXG4gICAgICAgIGlmKGNmZS5vcHRpb25bY2lkXS5vbnRhcCA9PT0gdHJ1ZSl7XHJcbiAgICAgICAgICBjZmUuaW5zdGFuY2VbY2lkXS5vbignY2xpY2snLCByZXNkYXRhID0+IHtcclxuICAgICAgICAgICAgbGV0IGV2ZW50ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh7XHJcbiAgICAgICAgICAgICAgeDpyZXNkYXRhLmV2ZW50Lm9mZnNldFgseTpyZXNkYXRhLmV2ZW50Lm9mZnNldFlcclxuICAgICAgICAgICAgfSkpXHJcbiAgICAgICAgICAgIHRoYXRbY2lkXS5jYWxsTWV0aG9kKCdlbWl0TXNnJyx7bmFtZTpcImdldEluZGV4XCIsIHBhcmFtczp7dHlwZTpcImdldEluZGV4XCIsIGV2ZW50OmV2ZW50LCBjdXJyZW50SW5kZXg6cmVzZGF0YS5kYXRhSW5kZXgsIHZhbHVlOnJlc2RhdGEuZGF0YSwgc2VyaWVzTmFtZTogcmVzZGF0YS5zZXJpZXNOYW1lLGlkOmNpZH19KVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIC8vIOWinuWKoEVDaGFydHPnmoRoaWdobGlnaHTmtojmga/vvIzlrp7njrDmjInkuIvnp7vliqjov5Tlm57ntKLlvJXlip/og73jgIJhZGQgYnkgb25lZmlzaCDliJvlu7rkuo4gMjAyMS0xMi0xMSAwOTo1MFxyXG4gICAgICAgICAgY2ZlLmluc3RhbmNlW2NpZF0ub24oJ2hpZ2hsaWdodCcsIHJlc2RhdGEgPT4ge1xyXG4gICAgICAgICAgICB0aGF0W2NpZF0uY2FsbE1ldGhvZCgnZW1pdE1zZycse25hbWU6XCJnZXRIaWdobGlnaHRcIiwgcGFyYW1zOnt0eXBlOlwiaGlnaGxpZ2h0XCIsIHJlczpyZXNkYXRhLCBpZDpjaWR9fSlcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMudXBkYXRhRUNoYXJ0KGNpZCxjZmUub3B0aW9uW2NpZF0pXHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIHRoaXMudXBkYXRhRUNoYXJ0KGNpZCxjZmUub3B0aW9uW2NpZF0pXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICB1cGRhdGFFQ2hhcnQoY2lkLG9wdGlvbil7XHJcbiAgICAgIC8v5pu/5o2ib3B0aW9u5YaFZm9ybWF05bGe5oCn5Li6Zm9ybWF0dGVy55qE6aKE5a6a5LmJ5pa55rOVXHJcbiAgICAgIG9wdGlvbiA9IHJkZm9ybWF0dGVyQXNzaWduKG9wdGlvbixjZmUuZm9ybWF0dGVyKVxyXG4gICAgICBpZihvcHRpb24udG9vbHRpcCl7XHJcbiAgICAgICAgb3B0aW9uLnRvb2x0aXAuc2hvdyA9IG9wdGlvbi50b29sdGlwU2hvdz90cnVlOmZhbHNlO1xyXG4gICAgICAgIG9wdGlvbi50b29sdGlwLnBvc2l0aW9uID0gdGhpcy50b29sdGlwUG9zaXRpb24oKVxyXG4gICAgICAgIC8vdG9vbHRpcEZvcm1hdOaWueazle+8jOabv+aNoue7hOS7tueahHRvb2x0aXBGb3JtYXTkuLpjb25maWctZWNoYXJ0cy5qc+WGheWvueW6lOeahOaWueazlVxyXG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9uLnRvb2x0aXBGb3JtYXQgPT09ICdzdHJpbmcnICYmIGNmZS5mb3JtYXR0ZXJbb3B0aW9uLnRvb2x0aXBGb3JtYXRdKSB7XHJcbiAgICAgICAgICBvcHRpb24udG9vbHRpcC5mb3JtYXR0ZXIgPSBvcHRpb24udG9vbHRpcC5mb3JtYXR0ZXIgPyBvcHRpb24udG9vbHRpcC5mb3JtYXR0ZXIgOiBjZmUuZm9ybWF0dGVyW29wdGlvbi50b29sdGlwRm9ybWF0XVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICAvLyDpopzoibLmuJDlj5jmt7vliqDnmoTmlrnms5VcclxuICAgICAgaWYgKG9wdGlvbi5zZXJpZXMpIHtcclxuICAgICAgXHRmb3IgKGxldCBpIGluIG9wdGlvbi5zZXJpZXMpIHtcclxuICAgICAgXHRcdGxldCBsaW5lYXJHcmFkaWVudCA9IG9wdGlvbi5zZXJpZXNbaV0ubGluZWFyR3JhZGllbnRcclxuICAgICAgXHRcdGlmIChsaW5lYXJHcmFkaWVudCkge1xyXG4gICAgICBcdFx0XHRvcHRpb24uc2VyaWVzW2ldLmNvbG9yID0gbmV3IGVjaGFydHMuZ3JhcGhpYy5MaW5lYXJHcmFkaWVudChsaW5lYXJHcmFkaWVudFswXSxsaW5lYXJHcmFkaWVudFsxXSxsaW5lYXJHcmFkaWVudFsyXSxsaW5lYXJHcmFkaWVudFszXSxsaW5lYXJHcmFkaWVudFs0XSlcclxuICAgICAgXHRcdH1cclxuICAgICAgXHR9XHJcbiAgICAgIH1cclxuICAgICAgY2ZlLmluc3RhbmNlW2NpZF0uc2V0T3B0aW9uKG9wdGlvbiwgb3B0aW9uLm5vdE1lcmdlKVxyXG4gICAgICBjZmUuaW5zdGFuY2VbY2lkXS5vbignZmluaXNoZWQnLCBmdW5jdGlvbigpe1xyXG4gICAgICAgIHRoYXRbY2lkXS5jYWxsTWV0aG9kKCdlbWl0TXNnJyx7bmFtZTpcImNvbXBsZXRlXCIscGFyYW1zOnt0eXBlOlwiY29tcGxldGVcIixjb21wbGV0ZTp0cnVlLGlkOmNpZH19KVxyXG4gICAgICAgIGlmKGNmZS5pbnN0YW5jZVtjaWRdKXtcclxuICAgICAgICAgIGNmZS5pbnN0YW5jZVtjaWRdLm9mZignZmluaXNoZWQnKVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgICAvL+S/ruWkjWluaXTliJ3lp4vljJblrp7kvovojrflj5blrr3pq5jkuI3mraPnoa7pl67pophcclxuICAgICAgaWYoXHJcbiAgICAgICAgdHlwZW9mIHRoYXRbY2lkXS4kZWwuY2hpbGRyZW5bMF0uY2xpZW50V2lkdGggIT0gJ3VuZGVmaW5lZCcgJiZcclxuICAgICAgICAgIChcclxuICAgICAgICAgICAgTWF0aC5hYnMoIHRoYXRbY2lkXS4kZWwuY2hpbGRyZW5bMF0uY2xpZW50V2lkdGggLSBjZmUuaW5zdGFuY2VbY2lkXS5nZXRXaWR0aCgpICk+MyB8fFxyXG4gICAgICAgICAgICBNYXRoLmFicyggdGhhdFtjaWRdLiRlbC5jaGlsZHJlblswXS5jbGllbnRIZWlnaHQgLSBjZmUuaW5zdGFuY2VbY2lkXS5nZXRIZWlnaHQoKSApPjNcclxuICAgICAgICAgIClcclxuICAgICAgKXt0aGlzLmVjcmVzaXplKCk7fVxyXG4gICAgfSxcclxuICAgIHRvb2x0aXBQb3NpdGlvbigpe1xyXG4gICAgICByZXR1cm4gKHBvaW50LCBwYXJhbXMsIGRvbSwgcmVjdCwgc2l6ZSkgPT4ge1xyXG4gICAgICBcdGxldCB4ID0gcG9pbnRbMF1cclxuICAgICAgXHRsZXQgeSA9IHBvaW50WzFdXHJcbiAgICAgIFx0bGV0IHZpZXdXaWR0aCA9IHNpemUudmlld1NpemVbMF1cclxuICAgICAgXHRsZXQgdmlld0hlaWdodCA9IHNpemUudmlld1NpemVbMV1cclxuICAgICAgXHRsZXQgYm94V2lkdGggPSBzaXplLmNvbnRlbnRTaXplWzBdXHJcbiAgICAgIFx0bGV0IGJveEhlaWdodCA9IHNpemUuY29udGVudFNpemVbMV1cclxuICAgICAgXHRsZXQgcG9zWCA9IHggKyAzMCBcclxuICAgICAgXHRsZXQgcG9zWSA9IHkgKyAzMCBcclxuICAgICAgXHRpZiAocG9zWCArIGJveFdpZHRoID4gdmlld1dpZHRoKSB7IFxyXG4gICAgICBcdFx0cG9zWCA9IHggLSBib3hXaWR0aCAtIDMwXHJcbiAgICAgIFx0fVxyXG4gICAgICBcdGlmIChwb3NZICsgYm94SGVpZ2h0ID4gdmlld0hlaWdodCkge1xyXG4gICAgICBcdFx0cG9zWSA9IHkgLSBib3hIZWlnaHQgLSAzMFxyXG4gICAgICBcdH1cclxuICAgICAgXHRyZXR1cm4gW3Bvc1gsIHBvc1ldXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICAvLz09PT09PT09PT09PT095Lul5LiL5pivdUNoYXJ0c+eahOaWueazlT09PT09PT09PT09PT09PT09PT09XHJcbiAgICB1Y2luaXQobmV3VmFsLCBvbGRWYWwsIG93bmVyLCBpbnN0YW5jZSl7XHJcbiAgICAgIGlmKEpTT04uc3RyaW5naWZ5KG5ld1ZhbCkgPT0gSlNPTi5zdHJpbmdpZnkob2xkVmFsKSl7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGlmKCFuZXdWYWwuY2FudmFzSWQpe1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBsZXQgY2lkID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShuZXdWYWwuY2FudmFzSWQpKVxyXG4gICAgICB0aGlzLnJpZCA9IGNpZFxyXG4gICAgICB0aGF0W2NpZF0gPSB0aGlzLiRvd25lckluc3RhbmNlIHx8IGluc3RhbmNlXHJcbiAgICAgIGNmdS5vcHRpb25bY2lkXSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkobmV3VmFsKSlcclxuICAgICAgY2Z1Lm9wdGlvbltjaWRdID0gcmRmb3JtYXR0ZXJBc3NpZ24oY2Z1Lm9wdGlvbltjaWRdLGNmdS5mb3JtYXR0ZXIpXHJcbiAgICAgIGxldCBjYW52YXNkb20gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChjaWQpXHJcbiAgICAgIGlmKGNhbnZhc2RvbSAmJiBjYW52YXNkb20uY2hpbGRyZW5bMF0pe1xyXG4gICAgICAgIGNmdS5vcHRpb25bY2lkXS5jb250ZXh0ID0gY2FudmFzZG9tLmNoaWxkcmVuWzBdLmdldENvbnRleHQoXCIyZFwiKVxyXG4gICAgICAgIGlmKGNmdS5pbnN0YW5jZVtjaWRdICYmIGNmdS5vcHRpb25bY2lkXSAmJiBjZnUub3B0aW9uW2NpZF0udXBkYXRlID09PSB0cnVlKXtcclxuICAgICAgICAgIHRoaXMudXBkYXRhVUNoYXJ0KClcclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgIHNldFRpbWVvdXQoKCk9PntcclxuICAgICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLmNvbnRleHQucmVzdG9yZSgpO1xyXG4gICAgICAgICAgICBjZnUub3B0aW9uW2NpZF0uY29udGV4dC5zYXZlKCk7XHJcbiAgICAgICAgICAgIHRoaXMubmV3VUNoYXJ0KClcclxuICAgICAgICAgIH0sMTAwKVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIG5ld1VDaGFydCgpIHtcclxuICAgICAgbGV0IGNpZCA9IHRoaXMucmlkXHJcbiAgICAgIGNmdS5pbnN0YW5jZVtjaWRdID0gbmV3IHVDaGFydHNSRChjZnUub3B0aW9uW2NpZF0pXHJcbiAgICAgIGNmdS5pbnN0YW5jZVtjaWRdLmFkZEV2ZW50TGlzdGVuZXIoJ3JlbmRlckNvbXBsZXRlJywgKCkgPT4ge1xyXG4gICAgICAgIHRoYXRbY2lkXS5jYWxsTWV0aG9kKCdlbWl0TXNnJyx7bmFtZTpcImNvbXBsZXRlXCIscGFyYW1zOnt0eXBlOlwiY29tcGxldGVcIixjb21wbGV0ZTp0cnVlLGlkOmNpZCwgb3B0czogY2Z1Lmluc3RhbmNlW2NpZF0ub3B0c319KVxyXG4gICAgICAgIGNmdS5pbnN0YW5jZVtjaWRdLmRlbEV2ZW50TGlzdGVuZXIoJ3JlbmRlckNvbXBsZXRlJylcclxuICAgICAgfSk7XHJcbiAgICAgIGNmdS5pbnN0YW5jZVtjaWRdLmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbExlZnQnLCAoKSA9PiB7XHJcbiAgICAgICAgdGhhdFtjaWRdLmNhbGxNZXRob2QoJ2VtaXRNc2cnLHtuYW1lOlwic2Nyb2xsTGVmdFwiLHBhcmFtczp7dHlwZTpcInNjcm9sbExlZnRcIixzY3JvbGxMZWZ0OnRydWUsaWQ6Y2lkLCBvcHRzOiBjZnUuaW5zdGFuY2VbY2lkXS5vcHRzfX0pXHJcbiAgICAgIH0pO1xyXG4gICAgICBjZnUuaW5zdGFuY2VbY2lkXS5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGxSaWdodCcsICgpID0+IHtcclxuICAgICAgICB0aGF0W2NpZF0uY2FsbE1ldGhvZCgnZW1pdE1zZycse25hbWU6XCJzY3JvbGxSaWdodFwiLHBhcmFtczp7dHlwZTpcInNjcm9sbFJpZ2h0XCIsc2Nyb2xsUmlnaHQ6dHJ1ZSxpZDpjaWQsIG9wdHM6IGNmdS5pbnN0YW5jZVtjaWRdLm9wdHN9fSlcclxuICAgICAgfSk7XHJcbiAgICB9LFxyXG4gICAgdXBkYXRhVUNoYXJ0KCkge1xyXG4gICAgICBsZXQgY2lkID0gdGhpcy5yaWRcclxuICAgICAgY2Z1Lmluc3RhbmNlW2NpZF0udXBkYXRlRGF0YShjZnUub3B0aW9uW2NpZF0pXHJcbiAgICB9LFxyXG4gICAgdG9vbHRpcERlZmF1bHQoaXRlbSwgY2F0ZWdvcnksIGluZGV4LCBvcHRzKSB7XHJcbiAgICAgIGlmIChjYXRlZ29yeSkge1xyXG4gICAgICAgIGxldCBkYXRhID0gaXRlbS5kYXRhXHJcbiAgICAgICAgaWYodHlwZW9mIGl0ZW0uZGF0YSA9PT0gXCJvYmplY3RcIil7XHJcbiAgICAgICAgICBkYXRhID0gaXRlbS5kYXRhLnZhbHVlXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBjYXRlZ29yeSArICcgJyArIGl0ZW0ubmFtZSArICc6JyArIGRhdGE7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKGl0ZW0ucHJvcGVydGllcyAmJiBpdGVtLnByb3BlcnRpZXMubmFtZSkge1xyXG4gICAgICAgICAgcmV0dXJuIGl0ZW0ucHJvcGVydGllcy5uYW1lIDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmV0dXJuIGl0ZW0ubmFtZSArICc6JyArIGl0ZW0uZGF0YTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBzaG93VG9vbHRpcChlLGNpZCkge1xyXG4gICAgICBsZXQgdGMgPSBjZnUub3B0aW9uW2NpZF0udG9vbHRpcEN1c3RvbVxyXG4gICAgICBpZiAodGMgJiYgdGMgIT09IHVuZGVmaW5lZCAmJiB0YyAhPT0gbnVsbCkge1xyXG4gICAgICAgIGxldCBvZmZzZXQgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgaWYgKHRjLnggPj0gMCAmJiB0Yy55ID49IDApIHtcclxuICAgICAgICAgIG9mZnNldCA9IHsgeDogdGMueCwgeTogdGMueSArIDEwIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNmdS5pbnN0YW5jZVtjaWRdLnNob3dUb29sVGlwKGUsIHtcclxuICAgICAgICAgIGluZGV4OiB0Yy5pbmRleCxcclxuICAgICAgICAgIG9mZnNldDogb2Zmc2V0LFxyXG4gICAgICAgICAgdGV4dExpc3Q6IHRjLnRleHRMaXN0LFxyXG4gICAgICAgICAgZm9ybWF0dGVyOiAoaXRlbSwgY2F0ZWdvcnksIGluZGV4LCBvcHRzKSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY2Z1Lm9wdGlvbltjaWRdLnRvb2x0aXBGb3JtYXQgPT09ICdzdHJpbmcnICYmIGNmdS5mb3JtYXR0ZXJbY2Z1Lm9wdGlvbltjaWRdLnRvb2x0aXBGb3JtYXRdKSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIGNmdS5mb3JtYXR0ZXJbY2Z1Lm9wdGlvbltjaWRdLnRvb2x0aXBGb3JtYXRdKGl0ZW0sIGNhdGVnb3J5LCBpbmRleCwgb3B0cyk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudG9vbHRpcERlZmF1bHQoaXRlbSwgY2F0ZWdvcnksIGluZGV4LCBvcHRzKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNmdS5pbnN0YW5jZVtjaWRdLnNob3dUb29sVGlwKGUsIHtcclxuICAgICAgICAgIGZvcm1hdHRlcjogKGl0ZW0sIGNhdGVnb3J5LCBpbmRleCwgb3B0cykgPT4ge1xyXG4gICAgICAgICAgICBpZiAodHlwZW9mIGNmdS5vcHRpb25bY2lkXS50b29sdGlwRm9ybWF0ID09PSAnc3RyaW5nJyAmJiBjZnUuZm9ybWF0dGVyW2NmdS5vcHRpb25bY2lkXS50b29sdGlwRm9ybWF0XSkge1xyXG4gICAgICAgICAgICAgIHJldHVybiBjZnUuZm9ybWF0dGVyW2NmdS5vcHRpb25bY2lkXS50b29sdGlwRm9ybWF0XShpdGVtLCBjYXRlZ29yeSwgaW5kZXgsIG9wdHMpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLnRvb2x0aXBEZWZhdWx0KGl0ZW0sIGNhdGVnb3J5LCBpbmRleCwgb3B0cyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIHRhcChlKSB7XHJcbiAgICAgIGxldCBjaWQgPSB0aGlzLnJpZFxyXG4gICAgICBsZXQgb250YXAgPSBjZnUub3B0aW9uW2NpZF0ub250YXBcclxuICAgICAgbGV0IHRvb2x0aXBTaG93ID0gY2Z1Lm9wdGlvbltjaWRdLnRvb2x0aXBTaG93XHJcbiAgICAgIGxldCB0YXBMZWdlbmQgPSBjZnUub3B0aW9uW2NpZF0udGFwTGVnZW5kXHJcbiAgICAgIGlmKG9udGFwID09IGZhbHNlKSByZXR1cm47XHJcbiAgICAgIGxldCBjdXJyZW50SW5kZXg9bnVsbFxyXG4gICAgICBsZXQgbGVnZW5kSW5kZXg9bnVsbFxyXG4gICAgICBsZXQgcmNoYXJ0ZG9tID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ1VDJytjaWQpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXHJcbiAgICAgIGxldCB0bXBlID0ge31cclxuICAgICAgaWYoZS5kZXRhaWwueCl7Ly90YXDmiJbogIVjbGlja+eahOS6i+S7tlxyXG4gICAgICAgIHRtcGUgPSB7IHg6IGUuZGV0YWlsLnggLSByY2hhcnRkb20ubGVmdCwgeTplLmRldGFpbC55IC0gcmNoYXJ0ZG9tLnRvcCArIHJvb3Rkb20udG9wfVxyXG4gICAgICB9ZWxzZXsvL21vdXNl55qE5LqL5Lu2XHJcbiAgICAgICAgdG1wZSA9IHsgeDogZS5jbGllbnRYIC0gcmNoYXJ0ZG9tLmxlZnQsIHk6ZS5jbGllbnRZIC0gcmNoYXJ0ZG9tLnRvcCArIHJvb3Rkb20udG9wfVxyXG4gICAgICB9XHJcbiAgICAgIGUuY2hhbmdlZFRvdWNoZXMgPSBbXTtcclxuICAgICAgZS5jaGFuZ2VkVG91Y2hlcy51bnNoaWZ0KHRtcGUpXHJcbiAgICAgIGN1cnJlbnRJbmRleD1jZnUuaW5zdGFuY2VbY2lkXS5nZXRDdXJyZW50RGF0YUluZGV4KGUpXHJcbiAgICAgIGxlZ2VuZEluZGV4PWNmdS5pbnN0YW5jZVtjaWRdLmdldExlZ2VuZERhdGFJbmRleChlKVxyXG4gICAgICBpZih0YXBMZWdlbmQgPT09IHRydWUpe1xyXG4gICAgICAgIGNmdS5pbnN0YW5jZVtjaWRdLnRvdWNoTGVnZW5kKGUpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmKHRvb2x0aXBTaG93PT10cnVlKXtcclxuICAgICAgICB0aGlzLnNob3dUb29sdGlwKGUsY2lkKVxyXG4gICAgICB9XHJcbiAgICAgIHRoYXRbY2lkXS5jYWxsTWV0aG9kKCdlbWl0TXNnJyx7bmFtZTpcImdldEluZGV4XCIscGFyYW1zOnt0eXBlOlwiZ2V0SW5kZXhcIixldmVudDp0bXBlLGN1cnJlbnRJbmRleDpjdXJyZW50SW5kZXgsbGVnZW5kSW5kZXg6bGVnZW5kSW5kZXgsaWQ6Y2lkLCBvcHRzOiBjZnUuaW5zdGFuY2VbY2lkXS5vcHRzfX0pXHJcbiAgICB9LFxyXG4gICAgdG91Y2hTdGFydChlKSB7XHJcbiAgICAgIGxldCBjaWQgPSB0aGlzLnJpZFxyXG4gICAgICBsZXQgb250b3VjaCA9IGNmdS5vcHRpb25bY2lkXS5vbnRvdWNoXHJcbiAgICAgIGlmKG9udG91Y2ggPT0gZmFsc2UpIHJldHVybjtcclxuICAgICAgaWYoY2Z1Lm9wdGlvbltjaWRdLmVuYWJsZVNjcm9sbCA9PT0gdHJ1ZSAmJiBlLnRvdWNoZXMubGVuZ3RoID09IDEpe1xyXG4gICAgICAgIGNmdS5pbnN0YW5jZVtjaWRdLnNjcm9sbFN0YXJ0KGUpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoYXRbY2lkXS5jYWxsTWV0aG9kKCdlbWl0TXNnJyx7bmFtZTpcImdldFRvdWNoU3RhcnRcIixwYXJhbXM6e3R5cGU6XCJ0b3VjaFN0YXJ0XCIsZXZlbnQ6ZS5jaGFuZ2VkVG91Y2hlc1swXSxpZDpjaWQsIG9wdHM6IGNmdS5pbnN0YW5jZVtjaWRdLm9wdHN9fSlcclxuICAgIH0sXHJcbiAgICB0b3VjaE1vdmUoZSkge1xyXG4gICAgICBsZXQgY2lkID0gdGhpcy5yaWRcclxuICAgICAgbGV0IG9udG91Y2ggPSBjZnUub3B0aW9uW2NpZF0ub250b3VjaFxyXG4gICAgICBpZihvbnRvdWNoID09IGZhbHNlKSByZXR1cm47XHJcbiAgICAgIGlmKGNmdS5vcHRpb25bY2lkXS5lbmFibGVTY3JvbGwgPT09IHRydWUgJiYgZS5jaGFuZ2VkVG91Y2hlcy5sZW5ndGggPT0gMSl7XHJcbiAgICAgICAgY2Z1Lmluc3RhbmNlW2NpZF0uc2Nyb2xsKGUpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmKGNmdS5vcHRpb25bY2lkXS5vbnRhcCA9PT0gdHJ1ZSAmJiBjZnUub3B0aW9uW2NpZF0uZW5hYmxlU2Nyb2xsID09PSBmYWxzZSAmJiBjZnUub3B0aW9uW2NpZF0ub25tb3ZldGlwID09PSB0cnVlKXtcclxuICAgICAgICBsZXQgcmNoYXJ0ZG9tID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ1VDJytjaWQpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXHJcbiAgICAgICAgbGV0IHRtcGUgPSB7IHg6IGUuY2hhbmdlZFRvdWNoZXNbMF0uY2xpZW50WCAtIHJjaGFydGRvbS5sZWZ0LCB5OmUuY2hhbmdlZFRvdWNoZXNbMF0uY2xpZW50WSAtIHJjaGFydGRvbS50b3AgKyByb290ZG9tLnRvcH1cclxuICAgICAgICBlLmNoYW5nZWRUb3VjaGVzLnVuc2hpZnQodG1wZSlcclxuICAgICAgICBpZihjZnUub3B0aW9uW2NpZF0udG9vbHRpcFNob3cgPT09IHRydWUpe1xyXG4gICAgICAgICAgdGhpcy5zaG93VG9vbHRpcChlLGNpZClcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYob250b3VjaCA9PT0gdHJ1ZSAmJiBjZnUub3B0aW9uW2NpZF0uZW5hYmxlU2Nyb2xsID09PSB0cnVlICYmIGNmdS5vcHRpb25bY2lkXS5vbnpvb20gPT09IHRydWUgJiYgZS5jaGFuZ2VkVG91Y2hlcy5sZW5ndGggPT0gMil7XHJcbiAgICAgICAgY2Z1Lmluc3RhbmNlW2NpZF0uZG9idWxlWm9vbShlKTtcclxuICAgICAgfVxyXG4gICAgICB0aGF0W2NpZF0uY2FsbE1ldGhvZCgnZW1pdE1zZycse25hbWU6XCJnZXRUb3VjaE1vdmVcIixwYXJhbXM6e3R5cGU6XCJ0b3VjaE1vdmVcIixldmVudDplLmNoYW5nZWRUb3VjaGVzWzBdLGlkOmNpZCwgb3B0czogY2Z1Lmluc3RhbmNlW2NpZF0ub3B0c319KVxyXG4gICAgfSxcclxuICAgIHRvdWNoRW5kKGUpIHtcclxuICAgICAgbGV0IGNpZCA9IHRoaXMucmlkXHJcbiAgICAgIGxldCBvbnRvdWNoID0gY2Z1Lm9wdGlvbltjaWRdLm9udG91Y2hcclxuICAgICAgaWYob250b3VjaCA9PSBmYWxzZSkgcmV0dXJuO1xyXG4gICAgICBpZihjZnUub3B0aW9uW2NpZF0uZW5hYmxlU2Nyb2xsID09PSB0cnVlICYmIGUudG91Y2hlcy5sZW5ndGggPT0gMCl7XHJcbiAgICAgICAgY2Z1Lmluc3RhbmNlW2NpZF0uc2Nyb2xsRW5kKGUpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoYXRbY2lkXS5jYWxsTWV0aG9kKCdlbWl0TXNnJyx7bmFtZTpcImdldFRvdWNoRW5kXCIscGFyYW1zOnt0eXBlOlwidG91Y2hFbmRcIixldmVudDplLmNoYW5nZWRUb3VjaGVzWzBdLGlkOmNpZCwgb3B0czogY2Z1Lmluc3RhbmNlW2NpZF0ub3B0c319KVxyXG4gICAgfSxcclxuICAgIG1vdXNlRG93bihlKSB7XHJcbiAgICAgIGxldCBjaWQgPSB0aGlzLnJpZFxyXG4gICAgICBsZXQgb25tb3VzZSA9IGNmdS5vcHRpb25bY2lkXS5vbm1vdXNlXHJcbiAgICAgIGlmKG9ubW91c2UgPT0gZmFsc2UpIHJldHVybjtcclxuICAgICAgbGV0IHJjaGFydGRvbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdVQycrY2lkKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxyXG4gICAgICBsZXQgdG1wZSA9IHt9XHJcbiAgICAgIHRtcGUgPSB7IHg6IGUuY2xpZW50WCAtIHJjaGFydGRvbS5sZWZ0LCB5OmUuY2xpZW50WSAtIHJjaGFydGRvbS50b3AgKyByb290ZG9tLnRvcH1cclxuICAgICAgZS5jaGFuZ2VkVG91Y2hlcyA9IFtdO1xyXG4gICAgICBlLmNoYW5nZWRUb3VjaGVzLnVuc2hpZnQodG1wZSlcclxuICAgICAgY2Z1Lmluc3RhbmNlW2NpZF0uc2Nyb2xsU3RhcnQoZSlcclxuICAgICAgY2Z1Lm9wdGlvbltjaWRdLm1vdXNlZG93bj10cnVlO1xyXG4gICAgICB0aGF0W2NpZF0uY2FsbE1ldGhvZCgnZW1pdE1zZycse25hbWU6XCJnZXRUb3VjaFN0YXJ0XCIscGFyYW1zOnt0eXBlOlwibW91c2VEb3duXCIsZXZlbnQ6dG1wZSxpZDpjaWQsIG9wdHM6IGNmdS5pbnN0YW5jZVtjaWRdLm9wdHN9fSlcclxuICAgIH0sXHJcbiAgICBtb3VzZU1vdmUoZSkge1xyXG4gICAgICBsZXQgY2lkID0gdGhpcy5yaWRcclxuICAgICAgbGV0IG9ubW91c2UgPSBjZnUub3B0aW9uW2NpZF0ub25tb3VzZVxyXG4gICAgICBsZXQgdG9vbHRpcFNob3cgPSBjZnUub3B0aW9uW2NpZF0udG9vbHRpcFNob3dcclxuICAgICAgaWYob25tb3VzZSA9PSBmYWxzZSkgcmV0dXJuO1xyXG4gICAgICBsZXQgcmNoYXJ0ZG9tID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ1VDJytjaWQpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXHJcbiAgICAgIGxldCB0bXBlID0ge31cclxuICAgICAgdG1wZSA9IHsgeDogZS5jbGllbnRYIC0gcmNoYXJ0ZG9tLmxlZnQsIHk6ZS5jbGllbnRZIC0gcmNoYXJ0ZG9tLnRvcCArIHJvb3Rkb20udG9wfVxyXG4gICAgICBlLmNoYW5nZWRUb3VjaGVzID0gW107XHJcbiAgICAgIGUuY2hhbmdlZFRvdWNoZXMudW5zaGlmdCh0bXBlKVxyXG4gICAgICBpZihjZnUub3B0aW9uW2NpZF0ubW91c2Vkb3duKXtcclxuICAgICAgICBjZnUuaW5zdGFuY2VbY2lkXS5zY3JvbGwoZSlcclxuICAgICAgICB0aGF0W2NpZF0uY2FsbE1ldGhvZCgnZW1pdE1zZycse25hbWU6XCJnZXRUb3VjaE1vdmVcIixwYXJhbXM6e3R5cGU6XCJtb3VzZU1vdmVcIixldmVudDp0bXBlLGlkOmNpZCwgb3B0czogY2Z1Lmluc3RhbmNlW2NpZF0ub3B0c319KVxyXG4gICAgICB9ZWxzZSBpZihjZnUuaW5zdGFuY2VbY2lkXSl7XHJcbiAgICAgICAgaWYodG9vbHRpcFNob3c9PXRydWUpe1xyXG4gICAgICAgICAgdGhpcy5zaG93VG9vbHRpcChlLGNpZClcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBtb3VzZVVwKGUpIHtcclxuICAgICAgbGV0IGNpZCA9IHRoaXMucmlkXHJcbiAgICAgIGxldCBvbm1vdXNlID0gY2Z1Lm9wdGlvbltjaWRdLm9ubW91c2VcclxuICAgICAgaWYob25tb3VzZSA9PSBmYWxzZSkgcmV0dXJuO1xyXG4gICAgICBsZXQgcmNoYXJ0ZG9tID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ1VDJytjaWQpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXHJcbiAgICAgIGxldCB0bXBlID0ge31cclxuICAgICAgdG1wZSA9IHsgeDogZS5jbGllbnRYIC0gcmNoYXJ0ZG9tLmxlZnQsIHk6ZS5jbGllbnRZIC0gcmNoYXJ0ZG9tLnRvcCArIHJvb3Rkb20udG9wfVxyXG4gICAgICBlLmNoYW5nZWRUb3VjaGVzID0gW107XHJcbiAgICAgIGUuY2hhbmdlZFRvdWNoZXMudW5zaGlmdCh0bXBlKVxyXG4gICAgICBjZnUuaW5zdGFuY2VbY2lkXS5zY3JvbGxFbmQoZSlcclxuICAgICAgY2Z1Lm9wdGlvbltjaWRdLm1vdXNlZG93bj1mYWxzZTtcclxuICAgICAgdGhhdFtjaWRdLmNhbGxNZXRob2QoJ2VtaXRNc2cnLHtuYW1lOlwiZ2V0VG91Y2hFbmRcIixwYXJhbXM6e3R5cGU6XCJtb3VzZVVwXCIsZXZlbnQ6dG1wZSxpZDpjaWQsIG9wdHM6IGNmdS5pbnN0YW5jZVtjaWRdLm9wdHN9fSlcclxuICAgIH0sXHJcbiAgfVxyXG59XHJcbjwvc2NyaXB0PlxyXG48IS0tICNlbmRpZiAtLT5cclxuXHJcbjxzdHlsZSBzY29wZWQ+XHJcbi5jaGFydHN2aWV3IHtcclxuICB3aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4OiAxO1xyXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbn1cclxuPC9zdHlsZT5cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///57\n");
 
 /***/ }),
-/* 63 */
+/* 58 */
 /*!************************************************************************************!*\
   !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/uni-cloud/dist/index.js ***!
   \************************************************************************************/
@@ -3289,11 +2268,11 @@
 /***/ (function(module, exports, __webpack_require__) {
 
 "use strict";
-/* WEBPACK VAR INJECTION */(function(global, wx) {Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;var _regenerator = _interopRequireDefault(__webpack_require__(/*! ./node_modules/@babel/runtime/regenerator */ 67));var _uniI18n = __webpack_require__(/*! @dcloudio/uni-i18n */ 70);var _pages = _interopRequireDefault(__webpack_require__(/*! @/pages.json */ 71));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {try {var info = gen[key](arg);var value = info.value;} catch (error) {reject(error);return;}if (info.done) {resolve(value);} else {Promise.resolve(value).then(_next, _throw);}}function _asyncToGenerator(fn) {return function () {var self = this,args = arguments;return new Promise(function (resolve, reject) {var gen = fn.apply(self, args);function _next(value) {asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);}function _throw(err) {asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);}_next(undefined);});};}function _toConsumableArray(arr) {return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();}function _nonIterableSpread() {throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}function _iterableToArray(iter) {if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter);}function _arrayWithoutHoles(arr) {if (Array.isArray(arr)) return _arrayLikeToArray(arr);}function _createForOfIteratorHelper(o, allowArrayLike) {var it;if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) {if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {if (it) o = it;var i = 0;var F = function F() {};return { s: F, n: function n() {if (i >= o.length) return { done: true };return { done: false, value: o[i++] };}, e: function e(_e32) {throw _e32;}, f: F };}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}var normalCompletion = true,didErr = false,err;return { s: function s() {it = o[Symbol.iterator]();}, n: function n() {var step = it.next();normalCompletion = step.done;return step;}, e: function e(_e33) {didErr = true;err = _e33;}, f: function f() {try {if (!normalCompletion && it.return != null) it.return();} finally {if (didErr) throw err;}} };}function _unsupportedIterableToArray(o, minLen) {if (!o) return;if (typeof o === "string") return _arrayLikeToArray(o, minLen);var n = Object.prototype.toString.call(o).slice(8, -1);if (n === "Object" && o.constructor) n = o.constructor.name;if (n === "Map" || n === "Set") return Array.from(o);if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);}function _arrayLikeToArray(arr, len) {if (len == null || len > arr.length) len = arr.length;for (var i = 0, arr2 = new Array(len); i < len; i++) {arr2[i] = arr[i];}return arr2;}function _defineProperties(target, props) {for (var i = 0; i < props.length; i++) {var descriptor = props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if ("value" in descriptor) descriptor.writable = true;Object.defineProperty(target, descriptor.key, descriptor);}}function _createClass(Constructor, protoProps, staticProps) {if (protoProps) _defineProperties(Constructor.prototype, protoProps);if (staticProps) _defineProperties(Constructor, staticProps);return Constructor;}function ownKeys(object, enumerableOnly) {var keys = Object.keys(object);if (Object.getOwnPropertySymbols) {var symbols = Object.getOwnPropertySymbols(object);if (enumerableOnly) symbols = symbols.filter(function (sym) {return Object.getOwnPropertyDescriptor(object, sym).enumerable;});keys.push.apply(keys, symbols);}return keys;}function _objectSpread(target) {for (var i = 1; i < arguments.length; i++) {var source = arguments[i] != null ? arguments[i] : {};if (i % 2) {ownKeys(Object(source), true).forEach(function (key) {_defineProperty(target, key, source[key]);});} else if (Object.getOwnPropertyDescriptors) {Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));} else {ownKeys(Object(source)).forEach(function (key) {Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));});}}return target;}function _defineProperty(obj, key, value) {if (key in obj) {Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true });} else {obj[key] = value;}return obj;}function _classCallCheck(instance, Constructor) {if (!(instance instanceof Constructor)) {throw new TypeError("Cannot call a class as a function");}}function _inherits(subClass, superClass) {if (typeof superClass !== "function" && superClass !== null) {throw new TypeError("Super expression must either be null or a function");}subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } });if (superClass) _setPrototypeOf(subClass, superClass);}function _createSuper(Derived) {var hasNativeReflectConstruct = _isNativeReflectConstruct();return function _createSuperInternal() {var Super = _getPrototypeOf(Derived),result;if (hasNativeReflectConstruct) {var NewTarget = _getPrototypeOf(this).constructor;result = Reflect.construct(Super, arguments, NewTarget);} else {result = Super.apply(this, arguments);}return _possibleConstructorReturn(this, result);};}function _possibleConstructorReturn(self, call) {if (call && (typeof call === "object" || typeof call === "function")) {return call;}return _assertThisInitialized(self);}function _assertThisInitialized(self) {if (self === void 0) {throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return self;}function _wrapNativeSuper(Class) {var _cache = typeof Map === "function" ? new Map() : undefined;_wrapNativeSuper = function _wrapNativeSuper(Class) {if (Class === null || !_isNativeFunction(Class)) return Class;if (typeof Class !== "function") {throw new TypeError("Super expression must either be null or a function");}if (typeof _cache !== "undefined") {if (_cache.has(Class)) return _cache.get(Class);_cache.set(Class, Wrapper);}function Wrapper() {return _construct(Class, arguments, _getPrototypeOf(this).constructor);}Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } });return _setPrototypeOf(Wrapper, Class);};return _wrapNativeSuper(Class);}function _construct(Parent, args, Class) {if (_isNativeReflectConstruct()) {_construct = Reflect.construct;} else {_construct = function _construct(Parent, args, Class) {var a = [null];a.push.apply(a, args);var Constructor = Function.bind.apply(Parent, a);var instance = new Constructor();if (Class) _setPrototypeOf(instance, Class.prototype);return instance;};}return _construct.apply(null, arguments);}function _isNativeReflectConstruct() {if (typeof Reflect === "undefined" || !Reflect.construct) return false;if (Reflect.construct.sham) return false;if (typeof Proxy === "function") return true;try {Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));return true;} catch (e) {return false;}}function _isNativeFunction(fn) {return Function.toString.call(fn).indexOf("[native code]") !== -1;}function _setPrototypeOf(o, p) {_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {o.__proto__ = p;return o;};return _setPrototypeOf(o, p);}function _getPrototypeOf(o) {_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {return o.__proto__ || Object.getPrototypeOf(o);};return _getPrototypeOf(o);}"undefined" != typeof globalThis ? globalThis : "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self && self;function n(e) {return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, "default") ? e.default : e;}function s(e, t, n) {return e(n = { path: t, exports: {}, require: function require(e, t) {return function () {throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs");}(null == t && n.path);} }, n.exports), n.exports;}var o = s(function (e, t) {var n;e.exports = (n = n || function (e, t) {var n = Object.create || function () {function e() {}return function (t) {var n;return e.prototype = t, n = new e(), e.prototype = null, n;};}(),s = {},o = s.lib = {},r = o.Base = { extend: function extend(e) {var t = n(this);return e && t.mixIn(e), t.hasOwnProperty("init") && this.init !== t.init || (t.init = function () {t.$super.init.apply(this, arguments);}), t.init.prototype = t, t.$super = this, t;}, create: function create() {var e = this.extend();return e.init.apply(e, arguments), e;}, init: function init() {}, mixIn: function mixIn(e) {for (var t in e) {e.hasOwnProperty(t) && (this[t] = e[t]);}e.hasOwnProperty("toString") && (this.toString = e.toString);}, clone: function clone() {return this.init.prototype.extend(this);} },i = o.WordArray = r.extend({ init: function init(e, n) {e = this.words = e || [], this.sigBytes = n != t ? n : 4 * e.length;}, toString: function toString(e) {return (e || c).stringify(this);}, concat: function concat(e) {var t = this.words,n = e.words,s = this.sigBytes,o = e.sigBytes;if (this.clamp(), s % 4) for (var r = 0; r < o; r++) {var i = n[r >>> 2] >>> 24 - r % 4 * 8 & 255;t[s + r >>> 2] |= i << 24 - (s + r) % 4 * 8;} else for (r = 0; r < o; r += 4) {t[s + r >>> 2] = n[r >>> 2];}return this.sigBytes += o, this;}, clamp: function clamp() {var t = this.words,n = this.sigBytes;t[n >>> 2] &= 4294967295 << 32 - n % 4 * 8, t.length = e.ceil(n / 4);}, clone: function clone() {var e = r.clone.call(this);return e.words = this.words.slice(0), e;}, random: function random(t) {for (var n, s = [], o = function o(t) {t = t;var n = 987654321,s = 4294967295;return function () {var o = ((n = 36969 * (65535 & n) + (n >> 16) & s) << 16) + (t = 18e3 * (65535 & t) + (t >> 16) & s) & s;return o /= 4294967296, (o += .5) * (e.random() > .5 ? 1 : -1);};}, r = 0; r < t; r += 4) {var a = o(4294967296 * (n || e.random()));n = 987654071 * a(), s.push(4294967296 * a() | 0);}return new i.init(s, t);} }),a = s.enc = {},c = a.Hex = { stringify: function stringify(e) {for (var t = e.words, n = e.sigBytes, s = [], o = 0; o < n; o++) {var r = t[o >>> 2] >>> 24 - o % 4 * 8 & 255;s.push((r >>> 4).toString(16)), s.push((15 & r).toString(16));}return s.join("");}, parse: function parse(e) {for (var t = e.length, n = [], s = 0; s < t; s += 2) {n[s >>> 3] |= parseInt(e.substr(s, 2), 16) << 24 - s % 8 * 4;}return new i.init(n, t / 2);} },u = a.Latin1 = { stringify: function stringify(e) {for (var t = e.words, n = e.sigBytes, s = [], o = 0; o < n; o++) {var r = t[o >>> 2] >>> 24 - o % 4 * 8 & 255;s.push(String.fromCharCode(r));}return s.join("");}, parse: function parse(e) {for (var t = e.length, n = [], s = 0; s < t; s++) {n[s >>> 2] |= (255 & e.charCodeAt(s)) << 24 - s % 4 * 8;}return new i.init(n, t);} },l = a.Utf8 = { stringify: function stringify(e) {try {return decodeURIComponent(escape(u.stringify(e)));} catch (e) {throw new Error("Malformed UTF-8 data");}}, parse: function parse(e) {return u.parse(unescape(encodeURIComponent(e)));} },h = o.BufferedBlockAlgorithm = r.extend({ reset: function reset() {this._data = new i.init(), this._nDataBytes = 0;}, _append: function _append(e) {"string" == typeof e && (e = l.parse(e)), this._data.concat(e), this._nDataBytes += e.sigBytes;}, _process: function _process(t) {var n = this._data,s = n.words,o = n.sigBytes,r = this.blockSize,a = o / (4 * r),c = (a = t ? e.ceil(a) : e.max((0 | a) - this._minBufferSize, 0)) * r,u = e.min(4 * c, o);if (c) {for (var l = 0; l < c; l += r) {this._doProcessBlock(s, l);}var h = s.splice(0, c);n.sigBytes -= u;}return new i.init(h, u);}, clone: function clone() {var e = r.clone.call(this);return e._data = this._data.clone(), e;}, _minBufferSize: 0 });o.Hasher = h.extend({ cfg: r.extend(), init: function init(e) {this.cfg = this.cfg.extend(e), this.reset();}, reset: function reset() {h.reset.call(this), this._doReset();}, update: function update(e) {return this._append(e), this._process(), this;}, finalize: function finalize(e) {return e && this._append(e), this._doFinalize();}, blockSize: 16, _createHelper: function _createHelper(e) {return function (t, n) {return new e.init(n).finalize(t);};}, _createHmacHelper: function _createHmacHelper(e) {return function (t, n) {return new d.HMAC.init(e, n).finalize(t);};} });var d = s.algo = {};return s;}(Math), n);}),r = (s(function (e, t) {var n;e.exports = (n = o, function (e) {var t = n,s = t.lib,o = s.WordArray,r = s.Hasher,i = t.algo,a = [];!function () {for (var t = 0; t < 64; t++) {a[t] = 4294967296 * e.abs(e.sin(t + 1)) | 0;}}();var c = i.MD5 = r.extend({ _doReset: function _doReset() {this._hash = new o.init([1732584193, 4023233417, 2562383102, 271733878]);}, _doProcessBlock: function _doProcessBlock(e, t) {for (var n = 0; n < 16; n++) {var s = t + n,o = e[s];e[s] = 16711935 & (o << 8 | o >>> 24) | 4278255360 & (o << 24 | o >>> 8);}var r = this._hash.words,i = e[t + 0],c = e[t + 1],f = e[t + 2],g = e[t + 3],p = e[t + 4],m = e[t + 5],y = e[t + 6],_ = e[t + 7],w = e[t + 8],k = e[t + 9],v = e[t + 10],T = e[t + 11],S = e[t + 12],P = e[t + 13],A = e[t + 14],I = e[t + 15],b = r[0],O = r[1],C = r[2],E = r[3];b = u(b, O, C, E, i, 7, a[0]), E = u(E, b, O, C, c, 12, a[1]), C = u(C, E, b, O, f, 17, a[2]), O = u(O, C, E, b, g, 22, a[3]), b = u(b, O, C, E, p, 7, a[4]), E = u(E, b, O, C, m, 12, a[5]), C = u(C, E, b, O, y, 17, a[6]), O = u(O, C, E, b, _, 22, a[7]), b = u(b, O, C, E, w, 7, a[8]), E = u(E, b, O, C, k, 12, a[9]), C = u(C, E, b, O, v, 17, a[10]), O = u(O, C, E, b, T, 22, a[11]), b = u(b, O, C, E, S, 7, a[12]), E = u(E, b, O, C, P, 12, a[13]), C = u(C, E, b, O, A, 17, a[14]), b = l(b, O = u(O, C, E, b, I, 22, a[15]), C, E, c, 5, a[16]), E = l(E, b, O, C, y, 9, a[17]), C = l(C, E, b, O, T, 14, a[18]), O = l(O, C, E, b, i, 20, a[19]), b = l(b, O, C, E, m, 5, a[20]), E = l(E, b, O, C, v, 9, a[21]), C = l(C, E, b, O, I, 14, a[22]), O = l(O, C, E, b, p, 20, a[23]), b = l(b, O, C, E, k, 5, a[24]), E = l(E, b, O, C, A, 9, a[25]), C = l(C, E, b, O, g, 14, a[26]), O = l(O, C, E, b, w, 20, a[27]), b = l(b, O, C, E, P, 5, a[28]), E = l(E, b, O, C, f, 9, a[29]), C = l(C, E, b, O, _, 14, a[30]), b = h(b, O = l(O, C, E, b, S, 20, a[31]), C, E, m, 4, a[32]), E = h(E, b, O, C, w, 11, a[33]), C = h(C, E, b, O, T, 16, a[34]), O = h(O, C, E, b, A, 23, a[35]), b = h(b, O, C, E, c, 4, a[36]), E = h(E, b, O, C, p, 11, a[37]), C = h(C, E, b, O, _, 16, a[38]), O = h(O, C, E, b, v, 23, a[39]), b = h(b, O, C, E, P, 4, a[40]), E = h(E, b, O, C, i, 11, a[41]), C = h(C, E, b, O, g, 16, a[42]), O = h(O, C, E, b, y, 23, a[43]), b = h(b, O, C, E, k, 4, a[44]), E = h(E, b, O, C, S, 11, a[45]), C = h(C, E, b, O, I, 16, a[46]), b = d(b, O = h(O, C, E, b, f, 23, a[47]), C, E, i, 6, a[48]), E = d(E, b, O, C, _, 10, a[49]), C = d(C, E, b, O, A, 15, a[50]), O = d(O, C, E, b, m, 21, a[51]), b = d(b, O, C, E, S, 6, a[52]), E = d(E, b, O, C, g, 10, a[53]), C = d(C, E, b, O, v, 15, a[54]), O = d(O, C, E, b, c, 21, a[55]), b = d(b, O, C, E, w, 6, a[56]), E = d(E, b, O, C, I, 10, a[57]), C = d(C, E, b, O, y, 15, a[58]), O = d(O, C, E, b, P, 21, a[59]), b = d(b, O, C, E, p, 6, a[60]), E = d(E, b, O, C, T, 10, a[61]), C = d(C, E, b, O, f, 15, a[62]), O = d(O, C, E, b, k, 21, a[63]), r[0] = r[0] + b | 0, r[1] = r[1] + O | 0, r[2] = r[2] + C | 0, r[3] = r[3] + E | 0;}, _doFinalize: function _doFinalize() {var t = this._data,n = t.words,s = 8 * this._nDataBytes,o = 8 * t.sigBytes;n[o >>> 5] |= 128 << 24 - o % 32;var r = e.floor(s / 4294967296),i = s;n[15 + (o + 64 >>> 9 << 4)] = 16711935 & (r << 8 | r >>> 24) | 4278255360 & (r << 24 | r >>> 8), n[14 + (o + 64 >>> 9 << 4)] = 16711935 & (i << 8 | i >>> 24) | 4278255360 & (i << 24 | i >>> 8), t.sigBytes = 4 * (n.length + 1), this._process();for (var a = this._hash, c = a.words, u = 0; u < 4; u++) {var l = c[u];c[u] = 16711935 & (l << 8 | l >>> 24) | 4278255360 & (l << 24 | l >>> 8);}return a;}, clone: function clone() {var e = r.clone.call(this);return e._hash = this._hash.clone(), e;} });function u(e, t, n, s, o, r, i) {var a = e + (t & n | ~t & s) + o + i;return (a << r | a >>> 32 - r) + t;}function l(e, t, n, s, o, r, i) {var a = e + (t & s | n & ~s) + o + i;return (a << r | a >>> 32 - r) + t;}function h(e, t, n, s, o, r, i) {var a = e + (t ^ n ^ s) + o + i;return (a << r | a >>> 32 - r) + t;}function d(e, t, n, s, o, r, i) {var a = e + (n ^ (t | ~s)) + o + i;return (a << r | a >>> 32 - r) + t;}t.MD5 = r._createHelper(c), t.HmacMD5 = r._createHmacHelper(c);}(Math), n.MD5);}), s(function (e, t) {var n, s, r;e.exports = (s = (n = o).lib.Base, r = n.enc.Utf8, void (n.algo.HMAC = s.extend({ init: function init(e, t) {e = this._hasher = new e.init(), "string" == typeof t && (t = r.parse(t));var n = e.blockSize,s = 4 * n;t.sigBytes > s && (t = e.finalize(t)), t.clamp();for (var o = this._oKey = t.clone(), i = this._iKey = t.clone(), a = o.words, c = i.words, u = 0; u < n; u++) {a[u] ^= 1549556828, c[u] ^= 909522486;}o.sigBytes = i.sigBytes = s, this.reset();}, reset: function reset() {var e = this._hasher;e.reset(), e.update(this._iKey);}, update: function update(e) {return this._hasher.update(e), this;}, finalize: function finalize(e) {var t = this._hasher,n = t.finalize(e);return t.reset(), t.finalize(this._oKey.clone().concat(n));} })));}), s(function (e, t) {e.exports = o.HmacMD5;}));var i = "FUNCTION",a = "OBJECT",c = "CLIENT_DB";function u(e) {return Object.prototype.toString.call(e).slice(8, -1).toLowerCase();}function l(e) {return "object" === u(e);}function h(e) {return e && "string" == typeof e ? JSON.parse(e) : e;}var d = "development" === "development",f = "app-plus";var g;switch (f) {case "h5":g = "web";break;case "app-plus":g = "app";break;default:g = f;}var p = h(undefined),m = h([]) || [],y = true;var _ = "";try {{var _e2 = __webpack_require__(/*! uni-stat-config */ 72).default || __webpack_require__(/*! uni-stat-config */ 72);_ = _e2.appid;}} catch (e) {}var w = {};function k(e) {var t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};var n, s;return n = w, s = e, Object.prototype.hasOwnProperty.call(n, s) || (w[e] = t), w[e];}"app" === g && (w = uni._globalUniCloudObj ? uni._globalUniCloudObj : uni._globalUniCloudObj = {});var v = ["invoke", "success", "fail", "complete"],T = k("_globalUniCloudInterceptor");function S(e, t) {T[e] || (T[e] = {}), l(t) && Object.keys(t).forEach(function (n) {v.indexOf(n) > -1 && function (e, t, n) {var s = T[e][t];s || (s = T[e][t] = []), -1 === s.indexOf(n) && "function" == typeof n && s.push(n);}(e, n, t[n]);});}function P(e, t) {T[e] || (T[e] = {}), l(t) ? Object.keys(t).forEach(function (n) {v.indexOf(n) > -1 && function (e, t, n) {var s = T[e][t];if (!s) return;var o = s.indexOf(n);o > -1 && s.splice(o, 1);}(e, n, t[n]);}) : delete T[e];}function A(e, t) {return e && 0 !== e.length ? e.reduce(function (e, n) {return e.then(function () {return n(t);});}, Promise.resolve()) : Promise.resolve();}function I(e, t) {return T[e] && T[e][t] || [];}function b(e) {S("callObject", e);}var O = k("_globalUniCloudListener"),C = "response",E = "needLogin",R = "refreshToken",U = "clientdb",x = "cloudfunction",L = "cloudobject";function D(e) {return O[e] || (O[e] = []), O[e];}function N(e, t) {var n = D(e);n.includes(t) || n.push(t);}function q(e, t) {var n = D(e),s = n.indexOf(t);-1 !== s && n.splice(s, 1);}function F(e, t) {var n = D(e);for (var _e3 = 0; _e3 < n.length; _e3++) {(0, n[_e3])(t);}}var M = !1;var j = new Promise(function (e) {M && e(), function t() {if ("function" == typeof getCurrentPages) {var _t2 = getCurrentPages();_t2 && _t2[0] && (M = !0, e());}M || setTimeout(function () {t();}, 30);}();});function $() {return j;}function K(e, t) {return t ? function (n) {var _this = this;var s = !1;if ("callFunction" === t) {var _e4 = n && n.type || i;s = _e4 !== i;}var o = "callFunction" === t && !s;var r;r = this.isReady ? Promise.resolve() : this.initUniCloud, n = n || {};var a = r.then(function () {return s ? Promise.resolve() : A(I(t, "invoke"), n);}).then(function () {return e.call(_this, n);}).then(function (e) {return s ? Promise.resolve(e) : A(I(t, "success"), e).then(function () {return A(I(t, "complete"), e);}).then(function () {return o && F(C, { type: x, content: e }), Promise.resolve(e);});}, function (e) {return s ? Promise.reject(e) : A(I(t, "fail"), e).then(function () {return A(I(t, "complete"), e);}).then(function () {return F(C, { type: x, content: e }), Promise.reject(e);});});if (!(n.success || n.fail || n.complete)) return a;a.then(function (e) {n.success && n.success(e), n.complete && n.complete(e), o && F(C, { type: x, content: e });}, function (e) {n.fail && n.fail(e), n.complete && n.complete(e), o && F(C, { type: x, content: e });});} : function (t) {if (!((t = t || {}).success || t.fail || t.complete)) return e.call(this, t);e.call(this, t).then(function (e) {t.success && t.success(e), t.complete && t.complete(e);}, function (e) {t.fail && t.fail(e), t.complete && t.complete(e);});};}var B = /*#__PURE__*/function (_Error) {_inherits(B, _Error);var _super = _createSuper(B);function B(e) {var _this2;_classCallCheck(this, B);_this2 = _super.call(this, e.message), _this2.errMsg = e.message || "", _this2.errCode = _this2.code = e.code || "SYSTEM_ERROR", _this2.requestId = e.requestId;return _this2;}return B;}( /*#__PURE__*/_wrapNativeSuper(Error));function H() {var e, t;try {if (uni.getLaunchOptionsSync) {if (uni.getLaunchOptionsSync.toString().indexOf("not yet implemented") > -1) return;var _uni$getLaunchOptions = uni.getLaunchOptionsSync(),_n = _uni$getLaunchOptions.scene,_s = _uni$getLaunchOptions.channel;e = _s, t = _n;}} catch (e) {}return { channel: e, scene: t };}var W;function z() {var e = uni.getLocale && uni.getLocale() || "en";if (W) return _objectSpread(_objectSpread({}, W), {}, { locale: e, LOCALE: e });var t = uni.getSystemInfoSync(),n = t.deviceId,s = t.osName,o = t.uniPlatform,r = t.appId,i = ["pixelRatio", "brand", "model", "system", "language", "version", "platform", "host", "SDKVersion", "swanNativeVersion", "app", "AppPlatform", "fontSizeSetting"];for (var _e5 = 0; _e5 < i.length; _e5++) {delete t[i[_e5]];}return W = _objectSpread(_objectSpread({ PLATFORM: o, OS: s, APPID: r, DEVICEID: n }, H()), t), _objectSpread(_objectSpread({}, W), {}, { locale: e, LOCALE: e });}var J = { sign: function sign(e, t) {var n = "";return Object.keys(e).sort().forEach(function (t) {e[t] && (n = n + "&" + t + "=" + e[t]);}), n = n.slice(1), r(n, t).toString();}, wrappedRequest: function wrappedRequest(e, t) {return new Promise(function (n, s) {t(Object.assign(e, { complete: function complete(e) {e || (e = {}), d && "web" === g && e.errMsg && 0 === e.errMsg.indexOf("request:fail") && console.warn("鍙戝竷H5锛岄渶瑕佸湪uniCloud鍚庡彴鎿嶄綔锛岀粦瀹氬畨鍏ㄥ煙鍚嶏紝鍚﹀垯浼氬洜涓鸿法鍩熼棶棰樿�屾棤娉曡闂�傛暀绋嬪弬鑰冿細https://uniapp.dcloud.io/uniCloud/quickstart?id=useinh5");var t = e.data && e.data.header && e.data.header["x-serverless-request-id"] || e.header && e.header["request-id"];if (!e.statusCode || e.statusCode >= 400) return s(new B({ code: "SYS_ERR", message: e.errMsg || "request:fail", requestId: t }));var o = e.data;if (o.error) return s(new B({ code: o.error.code, message: o.error.message, requestId: t }));o.result = o.data, o.requestId = t, delete o.data, n(o);} }));});} };var V = { request: function request(e) {return uni.request(e);}, uploadFile: function uploadFile(e) {return uni.uploadFile(e);}, setStorageSync: function setStorageSync(e, t) {return uni.setStorageSync(e, t);}, getStorageSync: function getStorageSync(e) {return uni.getStorageSync(e);}, removeStorageSync: function removeStorageSync(e) {return uni.removeStorageSync(e);}, clearStorageSync: function clearStorageSync() {return uni.clearStorageSync();} },Y = { "uniCloud.init.paramRequired": "{param} required", "uniCloud.uploadFile.fileError": "filePath should be instance of File" };var _e6 = (0, _uniI18n.initVueI18n)({ "zh-Hans": { "uniCloud.init.paramRequired": "缂哄皯鍙傛暟锛歿param}", "uniCloud.uploadFile.fileError": "filePath搴斾负File瀵硅薄" }, "zh-Hant": { "uniCloud.init.paramRequired": "缂哄皯鍙傛暟锛歿param}", "uniCloud.uploadFile.fileError": "filePath搴斾负File瀵硅薄" }, en: Y, fr: { "uniCloud.init.paramRequired": "{param} required", "uniCloud.uploadFile.fileError": "filePath should be instance of File" }, es: { "uniCloud.init.paramRequired": "{param} required", "uniCloud.uploadFile.fileError": "filePath should be instance of File" }, ja: Y }, "zh-Hans"),X = _e6.t;var G = /*#__PURE__*/function () {function G(e) {_classCallCheck(this, G);["spaceId", "clientSecret"].forEach(function (t) {if (!Object.prototype.hasOwnProperty.call(e, t)) throw new Error(X("uniCloud.init.paramRequired", { param: t }));}), this.config = Object.assign({}, { endpoint: "https://api.bspapp.com" }, e), this.config.provider = "aliyun", this.config.requestUrl = this.config.endpoint + "/client", this.config.envType = this.config.envType || "public", this.config.accessTokenKey = "access_token_" + this.config.spaceId, this.adapter = V, this._getAccessTokenPromise = null, this._getAccessTokenPromiseStatus = null;}_createClass(G, [{ key: "setAccessToken", value: function setAccessToken(e) {this.accessToken = e;} }, { key: "requestWrapped", value: function requestWrapped(e) {return J.wrappedRequest(e, this.adapter.request);} }, { key: "requestAuth", value: function requestAuth(e) {return this.requestWrapped(e);} }, { key: "request", value: function request(e, t) {var _this3 = this;return Promise.resolve().then(function () {return _this3.hasAccessToken ? t ? _this3.requestWrapped(e) : _this3.requestWrapped(e).catch(function (t) {return new Promise(function (e, n) {!t || "GATEWAY_INVALID_TOKEN" !== t.code && "InvalidParameter.InvalidToken" !== t.code ? n(t) : e();}).then(function () {return _this3.getAccessToken();}).then(function () {var t = _this3.rebuildRequest(e);return _this3.request(t, !0);});}) : _this3.getAccessToken().then(function () {var t = _this3.rebuildRequest(e);return _this3.request(t, !0);});});} }, { key: "rebuildRequest", value: function rebuildRequest(e) {var t = Object.assign({}, e);return t.data.token = this.accessToken, t.header["x-basement-token"] = this.accessToken, t.header["x-serverless-sign"] = J.sign(t.data, this.config.clientSecret), t;} }, { key: "setupRequest", value: function setupRequest(e, t) {var n = Object.assign({}, e, { spaceId: this.config.spaceId, timestamp: Date.now() }),s = { "Content-Type": "application/json" };return "auth" !== t && (n.token = this.accessToken, s["x-basement-token"] = this.accessToken), s["x-serverless-sign"] = J.sign(n, this.config.clientSecret), { url: this.config.requestUrl, method: "POST", data: n, dataType: "json", header: s };} }, { key: "getAccessToken", value: function getAccessToken() {var _this4 = this;if ("pending" === this._getAccessTokenPromiseStatus) return this._getAccessTokenPromise;this._getAccessTokenPromiseStatus = "pending";return this._getAccessTokenPromise = this.requestAuth(this.setupRequest({ method: "serverless.auth.user.anonymousAuthorize", params: "{}" }, "auth")).then(function (e) {return new Promise(function (t, n) {e.result && e.result.accessToken ? (_this4.setAccessToken(e.result.accessToken), _this4._getAccessTokenPromiseStatus = "fulfilled", t(_this4.accessToken)) : (_this4._getAccessTokenPromiseStatus = "rejected", n(new B({ code: "AUTH_FAILED", message: "鑾峰彇accessToken澶辫触" })));});}, function (e) {return _this4._getAccessTokenPromiseStatus = "rejected", Promise.reject(e);}), this._getAccessTokenPromise;} }, { key: "authorize", value: function authorize() {this.getAccessToken();} }, { key: "callFunction", value: function callFunction(e) {var t = { method: "serverless.function.runtime.invoke", params: JSON.stringify({ functionTarget: e.name, functionArgs: e.data || {} }) };return this.request(this.setupRequest(t));} }, { key: "getOSSUploadOptionsFromPath", value: function getOSSUploadOptionsFromPath(e) {var t = { method: "serverless.file.resource.generateProximalSign", params: JSON.stringify(e) };return this.request(this.setupRequest(t));} }, { key: "uploadFileToOSS", value: function uploadFileToOSS(_ref) {var _this5 = this;var e = _ref.url,t = _ref.formData,n = _ref.name,s = _ref.filePath,o = _ref.fileType,r = _ref.onUploadProgress;return new Promise(function (i, a) {var c = _this5.adapter.uploadFile({ url: e, formData: t, name: n, filePath: s, fileType: o, header: { "X-OSS-server-side-encrpytion": "AES256" }, success: function success(e) {e && e.statusCode < 400 ? i(e) : a(new B({ code: "UPLOAD_FAILED", message: "鏂囦欢涓婁紶澶辫触" }));}, fail: function fail(e) {a(new B({ code: e.code || "UPLOAD_FAILED", message: e.message || e.errMsg || "鏂囦欢涓婁紶澶辫触" }));} });"function" == typeof r && c && "function" == typeof c.onProgressUpdate && c.onProgressUpdate(function (e) {r({ loaded: e.totalBytesSent, total: e.totalBytesExpectedToSend });});});} }, { key: "reportOSSUpload", value: function reportOSSUpload(e) {var t = { method: "serverless.file.resource.report", params: JSON.stringify(e) };return this.request(this.setupRequest(t));} }, { key: "uploadFile", value: function uploadFile(_ref2) {var _this6 = this;var e = _ref2.filePath,t = _ref2.cloudPath,_ref2$fileType = _ref2.fileType,n = _ref2$fileType === void 0 ? "image" : _ref2$fileType,s = _ref2.onUploadProgress,o = _ref2.config;if ("string" !== u(t)) throw new B({ code: "INVALID_PARAM", message: "cloudPath蹇呴』涓哄瓧绗︿覆绫诲瀷" });if (!(t = t.trim())) throw new B({ code: "CLOUDPATH_REQUIRED", message: "cloudPath涓嶅彲涓虹┖" });if (/:\/\//.test(t)) throw new B({ code: "INVALID_PARAM", message: "cloudPath涓嶅悎娉�" });var r = o && o.envType || this.config.envType;var i, a;return this.getOSSUploadOptionsFromPath({ env: r, filename: t }).then(function (t) {var o = t.result;i = o.id, a = "https://" + o.cdnDomain + "/" + o.ossPath;var r = { url: "https://" + o.host, formData: { "Cache-Control": "max-age=2592000", "Content-Disposition": "attachment", OSSAccessKeyId: o.accessKeyId, Signature: o.signature, host: o.host, id: i, key: o.ossPath, policy: o.policy, success_action_status: 200 }, fileName: "file", name: "file", filePath: e, fileType: n };return _this6.uploadFileToOSS(Object.assign({}, r, { onUploadProgress: s }));}).then(function () {return _this6.reportOSSUpload({ id: i });}).then(function (t) {return new Promise(function (n, s) {t.success ? n({ success: !0, filePath: e, fileID: a }) : s(new B({ code: "UPLOAD_FAILED", message: "鏂囦欢涓婁紶澶辫触" }));});});} }, { key: "deleteFile", value: function deleteFile(_ref3) {var e = _ref3.fileList;var t = { method: "serverless.file.resource.delete", params: JSON.stringify({ id: e[0] }) };return this.request(this.setupRequest(t));} }, { key: "getTempFileURL", value: function getTempFileURL() {var _ref4 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},e = _ref4.fileList;return new Promise(function (t, n) {Array.isArray(e) && 0 !== e.length || n(new B({ code: "INVALID_PARAM", message: "fileList鐨勫厓绱犲繀椤绘槸闈炵┖鐨勫瓧绗︿覆" })), t({ fileList: e.map(function (e) {return { fileID: e, tempFileURL: e };}) });});} }, { key: "hasAccessToken", get: function get() {return !!this.accessToken;} }]);return G;}();var Q = { init: function init(e) {var t = new G(e),n = { signInAnonymously: function signInAnonymously() {return t.authorize();}, getLoginState: function getLoginState() {return Promise.resolve(!1);} };return t.auth = function () {return n;}, t.customAuth = t.auth, t;} };var Z = "undefined" != typeof location && "http:" === location.protocol ? "http:" : "https:";var ee;!function (e) {e.local = "local", e.none = "none", e.session = "session";}(ee || (ee = {}));var te = function te() {};var ne = function ne() {var e;if (!Promise) {e = function e() {}, e.promise = {};var _t3 = function _t3() {throw new B({ message: 'Your Node runtime does support ES6 Promises. Set "global.Promise" to your preferred implementation of promises.' });};return Object.defineProperty(e.promise, "then", { get: _t3 }), Object.defineProperty(e.promise, "catch", { get: _t3 }), e;}var t = new Promise(function (t, n) {e = function e(_e7, s) {return _e7 ? n(_e7) : t(s);};});return e.promise = t, e;};function se(e) {return void 0 === e;}function oe(e) {return "[object Null]" === Object.prototype.toString.call(e);}var re;function ie(e) {var t = (n = e, "[object Array]" === Object.prototype.toString.call(n) ? e : [e]);var n;var _iterator = _createForOfIteratorHelper(t),_step;try {for (_iterator.s(); !(_step = _iterator.n()).done;) {var _e8 = _step.value;var _t4 = _e8.isMatch,_n2 = _e8.genAdapter,_s2 = _e8.runtime;if (_t4()) return { adapter: _n2(), runtime: _s2 };}} catch (err) {_iterator.e(err);} finally {_iterator.f();}}!function (e) {e.WEB = "web", e.WX_MP = "wx_mp";}(re || (re = {}));var ae = { adapter: null, runtime: void 0 },ce = ["anonymousUuidKey"];var ue = /*#__PURE__*/function (_te) {_inherits(ue, _te);var _super2 = _createSuper(ue);function ue() {var _this7;_classCallCheck(this, ue);_this7 = _super2.call(this), ae.adapter.root.tcbObject || (ae.adapter.root.tcbObject = {});return _this7;}_createClass(ue, [{ key: "setItem", value: function setItem(e, t) {ae.adapter.root.tcbObject[e] = t;} }, { key: "getItem", value: function getItem(e) {return ae.adapter.root.tcbObject[e];} }, { key: "removeItem", value: function removeItem(e) {delete ae.adapter.root.tcbObject[e];} }, { key: "clear", value: function clear() {delete ae.adapter.root.tcbObject;} }]);return ue;}(te);function le(e, t) {switch (e) {case "local":return t.localStorage || new ue();case "none":return new ue();default:return t.sessionStorage || new ue();}}var he = /*#__PURE__*/function () {function he(e) {_classCallCheck(this, he);if (!this._storage) {this._persistence = ae.adapter.primaryStorage || e.persistence, this._storage = le(this._persistence, ae.adapter);var _t5 = "access_token_".concat(e.env),_n3 = "access_token_expire_".concat(e.env),_s3 = "refresh_token_".concat(e.env),_o = "anonymous_uuid_".concat(e.env),_r = "login_type_".concat(e.env),_i = "user_info_".concat(e.env);this.keys = { accessTokenKey: _t5, accessTokenExpireKey: _n3, refreshTokenKey: _s3, anonymousUuidKey: _o, loginTypeKey: _r, userInfoKey: _i };}}_createClass(he, [{ key: "updatePersistence", value: function updatePersistence(e) {if (e === this._persistence) return;var t = "local" === this._persistence;this._persistence = e;var n = le(e, ae.adapter);for (var _e9 in this.keys) {var _s4 = this.keys[_e9];if (t && ce.includes(_e9)) continue;var _o2 = this._storage.getItem(_s4);se(_o2) || oe(_o2) || (n.setItem(_s4, _o2), this._storage.removeItem(_s4));}this._storage = n;} }, { key: "setStore", value: function setStore(e, t, n) {if (!this._storage) return;var s = { version: n || "localCachev1", content: t },o = JSON.stringify(s);try {this._storage.setItem(e, o);} catch (e) {throw e;}} }, { key: "getStore", value: function getStore(e, t) {try {if (!this._storage) return;} catch (e) {return "";}t = t || "localCachev1";var n = this._storage.getItem(e);if (!n) return "";if (n.indexOf(t) >= 0) {return JSON.parse(n).content;}return "";} }, { key: "removeStore", value: function removeStore(e) {this._storage.removeItem(e);} }]);return he;}();var de = {},fe = {};function ge(e) {return de[e];}var pe = function pe(e, t) {_classCallCheck(this, pe);this.data = t || null, this.name = e;};var me = /*#__PURE__*/function (_pe) {_inherits(me, _pe);var _super3 = _createSuper(me);function me(e, t) {var _this8;_classCallCheck(this, me);_this8 = _super3.call(this, "error", { error: e, data: t }), _this8.error = e;return _this8;}return me;}(pe);var ye = new ( /*#__PURE__*/function () {function _class() {_classCallCheck(this, _class);this._listeners = {};}_createClass(_class, [{ key: "on", value: function on(e, t) {return function (e, t, n) {n[e] = n[e] || [], n[e].push(t);}(e, t, this._listeners), this;} }, { key: "off", value: function off(e, t) {return function (e, t, n) {if (n && n[e]) {var _s5 = n[e].indexOf(t);-1 !== _s5 && n[e].splice(_s5, 1);}}(e, t, this._listeners), this;} }, { key: "fire", value: function fire(e, t) {if (e instanceof me) return console.error(e.error), this;var n = "string" == typeof e ? new pe(e, t || {}) : e;var s = n.name;if (this._listens(s)) {n.target = this;var _e10 = this._listeners[s] ? _toConsumableArray(this._listeners[s]) : [];var _iterator2 = _createForOfIteratorHelper(_e10),_step2;try {for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {var _t6 = _step2.value;_t6.call(this, n);}} catch (err) {_iterator2.e(err);} finally {_iterator2.f();}}return this;} }, { key: "_listens", value: function _listens(e) {return this._listeners[e] && this._listeners[e].length > 0;} }]);return _class;}())();function _e(e, t) {ye.on(e, t);}function we(e) {var t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};ye.fire(e, t);}function ke(e, t) {ye.off(e, t);}var ve = "loginStateChanged",Te = "loginStateExpire",Se = "loginTypeChanged",Pe = "anonymousConverted",Ae = "refreshAccessToken";var Ie;!function (e) {e.ANONYMOUS = "ANONYMOUS", e.WECHAT = "WECHAT", e.WECHAT_PUBLIC = "WECHAT-PUBLIC", e.WECHAT_OPEN = "WECHAT-OPEN", e.CUSTOM = "CUSTOM", e.EMAIL = "EMAIL", e.USERNAME = "USERNAME", e.NULL = "NULL";}(Ie || (Ie = {}));var be = ["auth.getJwt", "auth.logout", "auth.signInWithTicket", "auth.signInAnonymously", "auth.signIn", "auth.fetchAccessTokenWithRefreshToken", "auth.signUpWithEmailAndPassword", "auth.activateEndUserMail", "auth.sendPasswordResetEmail", "auth.resetPasswordWithToken", "auth.isUsernameRegistered"],Oe = { "X-SDK-Version": "1.3.5" };function Ce(e, t, n) {var s = e[t];e[t] = function (t) {var o = {},r = {};n.forEach(function (n) {var _n$call = n.call(e, t),s = _n$call.data,i = _n$call.headers;Object.assign(o, s), Object.assign(r, i);});var i = t.data;return i && function () {var e;if (e = i, "[object FormData]" !== Object.prototype.toString.call(e)) t.data = _objectSpread(_objectSpread({}, i), o);else for (var _e11 in o) {i.append(_e11, o[_e11]);}}(), t.headers = _objectSpread(_objectSpread({}, t.headers || {}), r), s.call(e, t);};}function Ee() {var e = Math.random().toString(16).slice(2);return { data: { seqId: e }, headers: _objectSpread(_objectSpread({}, Oe), {}, { "x-seqid": e }) };}var Re = /*#__PURE__*/function () {function Re() {var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};_classCallCheck(this, Re);var t;this.config = e, this._reqClass = new ae.adapter.reqClass({ timeout: this.config.timeout, timeoutMsg: "\u8BF7\u6C42\u5728".concat(this.config.timeout / 1e3, "s\u5185\u672A\u5B8C\u6210\uFF0C\u5DF2\u4E2D\u65AD"), restrictedMethods: ["post"] }), this._cache = ge(this.config.env), this._localCache = (t = this.config.env, fe[t]), Ce(this._reqClass, "post", [Ee]), Ce(this._reqClass, "upload", [Ee]), Ce(this._reqClass, "download", [Ee]);}_createClass(Re, [{ key: "post", value: function () {var _post = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee(e) {return _regenerator.default.wrap(function _callee$(_context) {while (1) {switch (_context.prev = _context.next) {case 0:_context.next = 2;return this._reqClass.post(e);case 2:return _context.abrupt("return", _context.sent);case 3:case "end":return _context.stop();}}}, _callee, this);}));function post(_x) {return _post.apply(this, arguments);}return post;}() }, { key: "upload", value: function () {var _upload = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee2(e) {return _regenerator.default.wrap(function _callee2$(_context2) {while (1) {switch (_context2.prev = _context2.next) {case 0:_context2.next = 2;return this._reqClass.upload(e);case 2:return _context2.abrupt("return", _context2.sent);case 3:case "end":return _context2.stop();}}}, _callee2, this);}));function upload(_x2) {return _upload.apply(this, arguments);}return upload;}() }, { key: "download", value: function () {var _download = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee3(e) {return _regenerator.default.wrap(function _callee3$(_context3) {while (1) {switch (_context3.prev = _context3.next) {case 0:_context3.next = 2;return this._reqClass.download(e);case 2:return _context3.abrupt("return", _context3.sent);case 3:case "end":return _context3.stop();}}}, _callee3, this);}));function download(_x3) {return _download.apply(this, arguments);}return download;}() }, { key: "refreshAccessToken", value: function () {var _refreshAccessToken2 = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee4() {var e, t;return _regenerator.default.wrap(function _callee4$(_context4) {while (1) {switch (_context4.prev = _context4.next) {case 0:this._refreshAccessTokenPromise || (this._refreshAccessTokenPromise = this._refreshAccessToken());_context4.prev = 1;_context4.next = 4;return this._refreshAccessTokenPromise;case 4:e = _context4.sent;_context4.next = 10;break;case 7:_context4.prev = 7;_context4.t0 = _context4["catch"](1);t = _context4.t0;case 10:if (!(this._refreshAccessTokenPromise = null, this._shouldRefreshAccessTokenHook = null, t)) {_context4.next = 12;break;}throw t;case 12:return _context4.abrupt("return", e);case 13:case "end":return _context4.stop();}}}, _callee4, this, [[1, 7]]);}));function refreshAccessToken() {return _refreshAccessToken2.apply(this, arguments);}return refreshAccessToken;}() }, { key: "_refreshAccessToken", value: function () {var _refreshAccessToken3 = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee5() {var _this$_cache$keys, e, t, n, s, o, r, i, a, _e12, _e13, _t7, _s6;return _regenerator.default.wrap(function _callee5$(_context5) {while (1) {switch (_context5.prev = _context5.next) {case 0:_this$_cache$keys = this._cache.keys, e = _this$_cache$keys.accessTokenKey, t = _this$_cache$keys.accessTokenExpireKey, n = _this$_cache$keys.refreshTokenKey, s = _this$_cache$keys.loginTypeKey, o = _this$_cache$keys.anonymousUuidKey;this._cache.removeStore(e), this._cache.removeStore(t);r = this._cache.getStore(n);if (r) {_context5.next = 5;break;}throw new B({ message: "鏈櫥褰旵loudBase" });case 5:i = { refresh_token: r };_context5.next = 8;return this.request("auth.fetchAccessTokenWithRefreshToken", i);case 8:a = _context5.sent;if (!a.data.code) {_context5.next = 21;break;}_e12 = a.data.code;if (!("SIGN_PARAM_INVALID" === _e12 || "REFRESH_TOKEN_EXPIRED" === _e12 || "INVALID_REFRESH_TOKEN" === _e12)) {_context5.next = 20;break;}if (!(this._cache.getStore(s) === Ie.ANONYMOUS && "INVALID_REFRESH_TOKEN" === _e12)) {_context5.next = 19;break;}_e13 = this._cache.getStore(o);_t7 = this._cache.getStore(n);_context5.next = 17;return this.send("auth.signInAnonymously", { anonymous_uuid: _e13, refresh_token: _t7 });case 17:_s6 = _context5.sent;return _context5.abrupt("return", (this.setRefreshToken(_s6.refresh_token), this._refreshAccessToken()));case 19:we(Te), this._cache.removeStore(n);case 20:throw new B({ code: a.data.code, message: "\u5237\u65B0access token\u5931\u8D25\uFF1A".concat(a.data.code) });case 21:if (!a.data.access_token) {_context5.next = 23;break;}return _context5.abrupt("return", (we(Ae), this._cache.setStore(e, a.data.access_token), this._cache.setStore(t, a.data.access_token_expire + Date.now()), { accessToken: a.data.access_token, accessTokenExpire: a.data.access_token_expire }));case 23:a.data.refresh_token && (this._cache.removeStore(n), this._cache.setStore(n, a.data.refresh_token), this._refreshAccessToken());case 24:case "end":return _context5.stop();}}}, _callee5, this);}));function _refreshAccessToken() {return _refreshAccessToken3.apply(this, arguments);}return _refreshAccessToken;}() }, { key: "getAccessToken", value: function () {var _getAccessToken = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee6() {var _this$_cache$keys2, e, t, n, s, o, r;return _regenerator.default.wrap(function _callee6$(_context6) {while (1) {switch (_context6.prev = _context6.next) {case 0:_this$_cache$keys2 = this._cache.keys, e = _this$_cache$keys2.accessTokenKey, t = _this$_cache$keys2.accessTokenExpireKey, n = _this$_cache$keys2.refreshTokenKey;if (this._cache.getStore(n)) {_context6.next = 3;break;}throw new B({ message: "refresh token涓嶅瓨鍦紝鐧诲綍鐘舵�佸紓甯�" });case 3:s = this._cache.getStore(e), o = this._cache.getStore(t), r = !0;_context6.t0 = this._shouldRefreshAccessTokenHook;if (!_context6.t0) {_context6.next = 9;break;}_context6.next = 8;return this._shouldRefreshAccessTokenHook(s, o);case 8:_context6.t0 = !_context6.sent;case 9:_context6.t1 = _context6.t0;if (!_context6.t1) {_context6.next = 12;break;}r = !1;case 12:return _context6.abrupt("return", (!s || !o || o < Date.now()) && r ? this.refreshAccessToken() : { accessToken: s, accessTokenExpire: o });case 13:case "end":return _context6.stop();}}}, _callee6, this);}));function getAccessToken() {return _getAccessToken.apply(this, arguments);}return getAccessToken;}() }, { key: "request", value: function () {var _request = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee7(e, t, n) {var s, o, r, _e14, i, _e15, _e16, a, c, u, l, h, d, f, g, p;return _regenerator.default.wrap(function _callee7$(_context7) {while (1) {switch (_context7.prev = _context7.next) {case 0:s = "x-tcb-trace_".concat(this.config.env);o = "application/x-www-form-urlencoded";r = _objectSpread({ action: e, env: this.config.env, dataVersion: "2019-08-16" }, t);if (!(-1 === be.indexOf(e))) {_context7.next = 10;break;}_e14 = this._cache.keys.refreshTokenKey;_context7.t0 = this._cache.getStore(_e14);if (!_context7.t0) {_context7.next = 10;break;}_context7.next = 9;return this.getAccessToken();case 9:r.access_token = _context7.sent.accessToken;case 10:if ("storage.uploadFile" === e) {i = new FormData();for (_e15 in i) {i.hasOwnProperty(_e15) && void 0 !== i[_e15] && i.append(_e15, r[_e15]);}o = "multipart/form-data";} else {o = "application/json", i = {};for (_e16 in r) {void 0 !== r[_e16] && (i[_e16] = r[_e16]);}}a = { headers: { "content-type": o } };n && n.onUploadProgress && (a.onUploadProgress = n.onUploadProgress);c = this._localCache.getStore(s);c && (a.headers["X-TCB-Trace"] = c);u = t.parse, l = t.inQuery, h = t.search;d = { env: this.config.env };u && (d.parse = !0), l && (d = _objectSpread(_objectSpread({}, l), d));f = function (e, t) {var n = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};var s = /\?/.test(t);var o = "";for (var _e17 in n) {"" === o ? !s && (t += "?") : o += "&", o += "".concat(_e17, "=").concat(encodeURIComponent(n[_e17]));}return /^http(s)?\:\/\//.test(t += o) ? t : "".concat(e).concat(t);}(Z, "//tcb-api.tencentcloudapi.com/web", d);h && (f += h);_context7.next = 22;return this.post(_objectSpread({ url: f, data: i }, a));case 22:g = _context7.sent;p = g.header && g.header["x-tcb-trace"];if (!(p && this._localCache.setStore(s, p), 200 !== Number(g.status) && 200 !== Number(g.statusCode) || !g.data)) {_context7.next = 26;break;}throw new B({ code: "NETWORK_ERROR", message: "network request error" });case 26:return _context7.abrupt("return", g);case 27:case "end":return _context7.stop();}}}, _callee7, this);}));function request(_x4, _x5, _x6) {return _request.apply(this, arguments);}return request;}() }, { key: "send", value: function () {var _send = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee8(e) {var t,n,_n4,_args8 = arguments;return _regenerator.default.wrap(function _callee8$(_context8) {while (1) {switch (_context8.prev = _context8.next) {case 0:t = _args8.length > 1 && _args8[1] !== undefined ? _args8[1] : {};_context8.next = 3;return this.request(e, t, { onUploadProgress: t.onUploadProgress });case 3:n = _context8.sent;if (!("ACCESS_TOKEN_EXPIRED" === n.data.code && -1 === be.indexOf(e))) {_context8.next = 13;break;}_context8.next = 7;return this.refreshAccessToken();case 7:_context8.next = 9;return this.request(e, t, { onUploadProgress: t.onUploadProgress });case 9:_n4 = _context8.sent;if (!_n4.data.code) {_context8.next = 12;break;}throw new B({ code: _n4.data.code, message: _n4.data.message });case 12:return _context8.abrupt("return", _n4.data);case 13:if (!n.data.code) {_context8.next = 15;break;}throw new B({ code: n.data.code, message: n.data.message });case 15:return _context8.abrupt("return", n.data);case 16:case "end":return _context8.stop();}}}, _callee8, this);}));function send(_x7) {return _send.apply(this, arguments);}return send;}() }, { key: "setRefreshToken", value: function setRefreshToken(e) {var _this$_cache$keys3 = this._cache.keys,t = _this$_cache$keys3.accessTokenKey,n = _this$_cache$keys3.accessTokenExpireKey,s = _this$_cache$keys3.refreshTokenKey;this._cache.removeStore(t), this._cache.removeStore(n), this._cache.setStore(s, e);} }]);return Re;}();var Ue = {};function xe(e) {return Ue[e];}var Le = /*#__PURE__*/function () {function Le(e) {_classCallCheck(this, Le);this.config = e, this._cache = ge(e.env), this._request = xe(e.env);}_createClass(Le, [{ key: "setRefreshToken", value: function setRefreshToken(e) {var _this$_cache$keys4 = this._cache.keys,t = _this$_cache$keys4.accessTokenKey,n = _this$_cache$keys4.accessTokenExpireKey,s = _this$_cache$keys4.refreshTokenKey;this._cache.removeStore(t), this._cache.removeStore(n), this._cache.setStore(s, e);} }, { key: "setAccessToken", value: function setAccessToken(e, t) {var _this$_cache$keys5 = this._cache.keys,n = _this$_cache$keys5.accessTokenKey,s = _this$_cache$keys5.accessTokenExpireKey;this._cache.setStore(n, e), this._cache.setStore(s, t);} }, { key: "refreshUserInfo", value: function () {var _refreshUserInfo = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee9() {var _yield$this$_request$, e;return _regenerator.default.wrap(function _callee9$(_context9) {while (1) {switch (_context9.prev = _context9.next) {case 0:_context9.next = 2;return this._request.send("auth.getUserInfo", {});case 2:_yield$this$_request$ = _context9.sent;e = _yield$this$_request$.data;return _context9.abrupt("return", (this.setLocalUserInfo(e), e));case 5:case "end":return _context9.stop();}}}, _callee9, this);}));function refreshUserInfo() {return _refreshUserInfo.apply(this, arguments);}return refreshUserInfo;}() }, { key: "setLocalUserInfo", value: function setLocalUserInfo(e) {var t = this._cache.keys.userInfoKey;this._cache.setStore(t, e);} }]);return Le;}();var De = /*#__PURE__*/function () {function De(e) {_classCallCheck(this, De);if (!e) throw new B({ code: "PARAM_ERROR", message: "envId is not defined" });this._envId = e, this._cache = ge(this._envId), this._request = xe(this._envId), this.setUserInfo();}_createClass(De, [{ key: "linkWithTicket", value: function linkWithTicket(e) {if ("string" != typeof e) throw new B({ code: "PARAM_ERROR", message: "ticket must be string" });return this._request.send("auth.linkWithTicket", { ticket: e });} }, { key: "linkWithRedirect", value: function linkWithRedirect(e) {e.signInWithRedirect();} }, { key: "updatePassword", value: function updatePassword(e, t) {return this._request.send("auth.updatePassword", { oldPassword: t, newPassword: e });} }, { key: "updateEmail", value: function updateEmail(e) {return this._request.send("auth.updateEmail", { newEmail: e });} }, { key: "updateUsername", value: function updateUsername(e) {if ("string" != typeof e) throw new B({ code: "PARAM_ERROR", message: "username must be a string" });return this._request.send("auth.updateUsername", { username: e });} }, { key: "getLinkedUidList", value: function () {var _getLinkedUidList = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee10() {var _yield$this$_request$2, e, t, n;return _regenerator.default.wrap(function _callee10$(_context10) {while (1) {switch (_context10.prev = _context10.next) {case 0:_context10.next = 2;return this._request.send("auth.getLinkedUidList", {});case 2:_yield$this$_request$2 = _context10.sent;e = _yield$this$_request$2.data;t = !1;n = e.users;return _context10.abrupt("return", (n.forEach(function (e) {e.wxOpenId && e.wxPublicId && (t = !0);}), { users: n, hasPrimaryUid: t }));case 7:case "end":return _context10.stop();}}}, _callee10, this);}));function getLinkedUidList() {return _getLinkedUidList.apply(this, arguments);}return getLinkedUidList;}() }, { key: "setPrimaryUid", value: function setPrimaryUid(e) {return this._request.send("auth.setPrimaryUid", { uid: e });} }, { key: "unlink", value: function unlink(e) {return this._request.send("auth.unlink", { platform: e });} }, { key: "update", value: function () {var _update = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee11(e) {var t, n, s, o, r, i, _yield$this$_request$3, a;return _regenerator.default.wrap(function _callee11$(_context11) {while (1) {switch (_context11.prev = _context11.next) {case 0:t = e.nickName;n = e.gender;s = e.avatarUrl;o = e.province;r = e.country;i = e.city;_context11.next = 8;return this._request.send("auth.updateUserInfo", { nickName: t, gender: n, avatarUrl: s, province: o, country: r, city: i });case 8:_yield$this$_request$3 = _context11.sent;a = _yield$this$_request$3.data;this.setLocalUserInfo(a);case 11:case "end":return _context11.stop();}}}, _callee11, this);}));function update(_x8) {return _update.apply(this, arguments);}return update;}() }, { key: "refresh", value: function () {var _refresh = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee12() {var _yield$this$_request$4, e;return _regenerator.default.wrap(function _callee12$(_context12) {while (1) {switch (_context12.prev = _context12.next) {case 0:_context12.next = 2;return this._request.send("auth.getUserInfo", {});case 2:_yield$this$_request$4 = _context12.sent;e = _yield$this$_request$4.data;return _context12.abrupt("return", (this.setLocalUserInfo(e), e));case 5:case "end":return _context12.stop();}}}, _callee12, this);}));function refresh() {return _refresh.apply(this, arguments);}return refresh;}() }, { key: "setUserInfo", value: function setUserInfo() {var _this9 = this;var e = this._cache.keys.userInfoKey,t = this._cache.getStore(e);["uid", "loginType", "openid", "wxOpenId", "wxPublicId", "unionId", "qqMiniOpenId", "email", "hasPassword", "customUserId", "nickName", "gender", "avatarUrl"].forEach(function (e) {_this9[e] = t[e];}), this.location = { country: t.country, province: t.province, city: t.city };} }, { key: "setLocalUserInfo", value: function setLocalUserInfo(e) {var t = this._cache.keys.userInfoKey;this._cache.setStore(t, e), this.setUserInfo();} }]);return De;}();var Ne = /*#__PURE__*/function () {function Ne(e) {_classCallCheck(this, Ne);if (!e) throw new B({ code: "PARAM_ERROR", message: "envId is not defined" });this._cache = ge(e);var _this$_cache$keys6 = this._cache.keys,t = _this$_cache$keys6.refreshTokenKey,n = _this$_cache$keys6.accessTokenKey,s = _this$_cache$keys6.accessTokenExpireKey,o = this._cache.getStore(t),r = this._cache.getStore(n),i = this._cache.getStore(s);this.credential = { refreshToken: o, accessToken: r, accessTokenExpire: i }, this.user = new De(e);}_createClass(Ne, [{ key: "isAnonymousAuth", get: function get() {return this.loginType === Ie.ANONYMOUS;} }, { key: "isCustomAuth", get: function get() {return this.loginType === Ie.CUSTOM;} }, { key: "isWeixinAuth", get: function get() {return this.loginType === Ie.WECHAT || this.loginType === Ie.WECHAT_OPEN || this.loginType === Ie.WECHAT_PUBLIC;} }, { key: "loginType", get: function get() {return this._cache.getStore(this._cache.keys.loginTypeKey);} }]);return Ne;}();var qe = /*#__PURE__*/function (_Le) {_inherits(qe, _Le);var _super4 = _createSuper(qe);function qe() {_classCallCheck(this, qe);return _super4.apply(this, arguments);}_createClass(qe, [{ key: "signIn", value: function () {var _signIn = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee13() {var _this$_cache$keys7, e, t, n, s, o, _e18;return _regenerator.default.wrap(function _callee13$(_context13) {while (1) {switch (_context13.prev = _context13.next) {case 0:this._cache.updatePersistence("local");_this$_cache$keys7 = this._cache.keys;e = _this$_cache$keys7.anonymousUuidKey;t = _this$_cache$keys7.refreshTokenKey;n = this._cache.getStore(e) || void 0;s = this._cache.getStore(t) || void 0;_context13.next = 8;return this._request.send("auth.signInAnonymously", { anonymous_uuid: n, refresh_token: s });case 8:o = _context13.sent;if (!(o.uuid && o.refresh_token)) {_context13.next = 20;break;}this._setAnonymousUUID(o.uuid);this.setRefreshToken(o.refresh_token);_context13.next = 14;return this._request.refreshAccessToken();case 14:we(ve);we(Se, { env: this.config.env, loginType: Ie.ANONYMOUS, persistence: "local" });_e18 = new Ne(this.config.env);_context13.next = 19;return _e18.user.refresh();case 19:return _context13.abrupt("return", _e18);case 20:throw new B({ message: "鍖垮悕鐧诲綍澶辫触" });case 21:case "end":return _context13.stop();}}}, _callee13, this);}));function signIn() {return _signIn.apply(this, arguments);}return signIn;}() }, { key: "linkAndRetrieveDataWithTicket", value: function () {var _linkAndRetrieveDataWithTicket = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee14(e) {var _this$_cache$keys8, t, n, s, o, r;return _regenerator.default.wrap(function _callee14$(_context14) {while (1) {switch (_context14.prev = _context14.next) {case 0:_this$_cache$keys8 = this._cache.keys;t = _this$_cache$keys8.anonymousUuidKey;n = _this$_cache$keys8.refreshTokenKey;s = this._cache.getStore(t);o = this._cache.getStore(n);_context14.next = 7;return this._request.send("auth.linkAndRetrieveDataWithTicket", { anonymous_uuid: s, refresh_token: o, ticket: e });case 7:r = _context14.sent;if (!r.refresh_token) {_context14.next = 16;break;}this._clearAnonymousUUID();this.setRefreshToken(r.refresh_token);_context14.next = 13;return this._request.refreshAccessToken();case 13:we(Pe, { env: this.config.env });we(Se, { loginType: Ie.CUSTOM, persistence: "local" });return _context14.abrupt("return", { credential: { refreshToken: r.refresh_token } });case 16:throw new B({ message: "鍖垮悕杞寲澶辫触" });case 17:case "end":return _context14.stop();}}}, _callee14, this);}));function linkAndRetrieveDataWithTicket(_x9) {return _linkAndRetrieveDataWithTicket.apply(this, arguments);}return linkAndRetrieveDataWithTicket;}() }, { key: "_setAnonymousUUID", value: function _setAnonymousUUID(e) {var _this$_cache$keys9 = this._cache.keys,t = _this$_cache$keys9.anonymousUuidKey,n = _this$_cache$keys9.loginTypeKey;this._cache.removeStore(t), this._cache.setStore(t, e), this._cache.setStore(n, Ie.ANONYMOUS);} }, { key: "_clearAnonymousUUID", value: function _clearAnonymousUUID() {this._cache.removeStore(this._cache.keys.anonymousUuidKey);} }]);return qe;}(Le);var Fe = /*#__PURE__*/function (_Le2) {_inherits(Fe, _Le2);var _super5 = _createSuper(Fe);function Fe() {_classCallCheck(this, Fe);return _super5.apply(this, arguments);}_createClass(Fe, [{ key: "signIn", value: function () {var _signIn2 = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee15(e) {var t, n;return _regenerator.default.wrap(function _callee15$(_context15) {while (1) {switch (_context15.prev = _context15.next) {case 0:if (!("string" != typeof e)) {_context15.next = 2;break;}throw new B({ param: "PARAM_ERROR", message: "ticket must be a string" });case 2:t = this._cache.keys.refreshTokenKey;_context15.next = 5;return this._request.send("auth.signInWithTicket", { ticket: e, refresh_token: this._cache.getStore(t) || "" });case 5:n = _context15.sent;if (!n.refresh_token) {_context15.next = 15;break;}this.setRefreshToken(n.refresh_token);_context15.next = 10;return this._request.refreshAccessToken();case 10:we(ve);we(Se, { env: this.config.env, loginType: Ie.CUSTOM, persistence: this.config.persistence });_context15.next = 14;return this.refreshUserInfo();case 14:return _context15.abrupt("return", new Ne(this.config.env));case 15:throw new B({ message: "鑷畾涔夌櫥褰曞け璐�" });case 16:case "end":return _context15.stop();}}}, _callee15, this);}));function signIn(_x10) {return _signIn2.apply(this, arguments);}return signIn;}() }]);return Fe;}(Le);var Me = /*#__PURE__*/function (_Le3) {_inherits(Me, _Le3);var _super6 = _createSuper(Me);function Me() {_classCallCheck(this, Me);return _super6.apply(this, arguments);}_createClass(Me, [{ key: "signIn", value: function () {var _signIn3 = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee16(e, t) {var n, s, o, r, i;return _regenerator.default.wrap(function _callee16$(_context16) {while (1) {switch (_context16.prev = _context16.next) {case 0:if (!("string" != typeof e)) {_context16.next = 2;break;}throw new B({ code: "PARAM_ERROR", message: "email must be a string" });case 2:n = this._cache.keys.refreshTokenKey;_context16.next = 5;return this._request.send("auth.signIn", { loginType: "EMAIL", email: e, password: t, refresh_token: this._cache.getStore(n) || "" });case 5:s = _context16.sent;o = s.refresh_token;r = s.access_token;i = s.access_token_expire;if (!o) {_context16.next = 22;break;}this.setRefreshToken(o);if (!(r && i)) {_context16.next = 15;break;}this.setAccessToken(r, i);_context16.next = 17;break;case 15:_context16.next = 17;return this._request.refreshAccessToken();case 17:_context16.next = 19;return this.refreshUserInfo();case 19:we(ve);we(Se, { env: this.config.env, loginType: Ie.EMAIL, persistence: this.config.persistence });return _context16.abrupt("return", new Ne(this.config.env));case 22:throw s.code ? new B({ code: s.code, message: "\u90AE\u7BB1\u767B\u5F55\u5931\u8D25: ".concat(s.message) }) : new B({ message: "閭鐧诲綍澶辫触" });case 23:case "end":return _context16.stop();}}}, _callee16, this);}));function signIn(_x11, _x12) {return _signIn3.apply(this, arguments);}return signIn;}() }, { key: "activate", value: function () {var _activate = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee17(e) {return _regenerator.default.wrap(function _callee17$(_context17) {while (1) {switch (_context17.prev = _context17.next) {case 0:return _context17.abrupt("return", this._request.send("auth.activateEndUserMail", { token: e }));case 1:case "end":return _context17.stop();}}}, _callee17, this);}));function activate(_x13) {return _activate.apply(this, arguments);}return activate;}() }, { key: "resetPasswordWithToken", value: function () {var _resetPasswordWithToken = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee18(e, t) {return _regenerator.default.wrap(function _callee18$(_context18) {while (1) {switch (_context18.prev = _context18.next) {case 0:return _context18.abrupt("return", this._request.send("auth.resetPasswordWithToken", { token: e, newPassword: t }));case 1:case "end":return _context18.stop();}}}, _callee18, this);}));function resetPasswordWithToken(_x14, _x15) {return _resetPasswordWithToken.apply(this, arguments);}return resetPasswordWithToken;}() }]);return Me;}(Le);var je = /*#__PURE__*/function (_Le4) {_inherits(je, _Le4);var _super7 = _createSuper(je);function je() {_classCallCheck(this, je);return _super7.apply(this, arguments);}_createClass(je, [{ key: "signIn", value: function () {var _signIn4 = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee19(e, t) {var n, s, o, r, i;return _regenerator.default.wrap(function _callee19$(_context19) {while (1) {switch (_context19.prev = _context19.next) {case 0:if (!("string" != typeof e)) {_context19.next = 2;break;}throw new B({ code: "PARAM_ERROR", message: "username must be a string" });case 2:"string" != typeof t && (t = "", console.warn("password is empty"));n = this._cache.keys.refreshTokenKey;_context19.next = 6;return this._request.send("auth.signIn", { loginType: Ie.USERNAME, username: e, password: t, refresh_token: this._cache.getStore(n) || "" });case 6:s = _context19.sent;o = s.refresh_token;r = s.access_token_expire;i = s.access_token;if (!o) {_context19.next = 23;break;}this.setRefreshToken(o);if (!(i && r)) {_context19.next = 16;break;}this.setAccessToken(i, r);_context19.next = 18;break;case 16:_context19.next = 18;return this._request.refreshAccessToken();case 18:_context19.next = 20;return this.refreshUserInfo();case 20:we(ve);we(Se, { env: this.config.env, loginType: Ie.USERNAME, persistence: this.config.persistence });return _context19.abrupt("return", new Ne(this.config.env));case 23:throw s.code ? new B({ code: s.code, message: "\u7528\u6237\u540D\u5BC6\u7801\u767B\u5F55\u5931\u8D25: ".concat(s.message) }) : new B({ message: "鐢ㄦ埛鍚嶅瘑鐮佺櫥褰曞け璐�" });case 24:case "end":return _context19.stop();}}}, _callee19, this);}));function signIn(_x16, _x17) {return _signIn4.apply(this, arguments);}return signIn;}() }]);return je;}(Le);var $e = /*#__PURE__*/function () {function $e(e) {_classCallCheck(this, $e);this.config = e, this._cache = ge(e.env), this._request = xe(e.env), this._onAnonymousConverted = this._onAnonymousConverted.bind(this), this._onLoginTypeChanged = this._onLoginTypeChanged.bind(this), _e(Se, this._onLoginTypeChanged);}_createClass($e, [{ key: "anonymousAuthProvider", value: function anonymousAuthProvider() {return new qe(this.config);} }, { key: "customAuthProvider", value: function customAuthProvider() {return new Fe(this.config);} }, { key: "emailAuthProvider", value: function emailAuthProvider() {return new Me(this.config);} }, { key: "usernameAuthProvider", value: function usernameAuthProvider() {return new je(this.config);} }, { key: "signInAnonymously", value: function () {var _signInAnonymously = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee20() {return _regenerator.default.wrap(function _callee20$(_context20) {while (1) {switch (_context20.prev = _context20.next) {case 0:return _context20.abrupt("return", new qe(this.config).signIn());case 1:case "end":return _context20.stop();}}}, _callee20, this);}));function signInAnonymously() {return _signInAnonymously.apply(this, arguments);}return signInAnonymously;}() }, { key: "signInWithEmailAndPassword", value: function () {var _signInWithEmailAndPassword = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee21(e, t) {return _regenerator.default.wrap(function _callee21$(_context21) {while (1) {switch (_context21.prev = _context21.next) {case 0:return _context21.abrupt("return", new Me(this.config).signIn(e, t));case 1:case "end":return _context21.stop();}}}, _callee21, this);}));function signInWithEmailAndPassword(_x18, _x19) {return _signInWithEmailAndPassword.apply(this, arguments);}return signInWithEmailAndPassword;}() }, { key: "signInWithUsernameAndPassword", value: function signInWithUsernameAndPassword(e, t) {return new je(this.config).signIn(e, t);} }, { key: "linkAndRetrieveDataWithTicket", value: function () {var _linkAndRetrieveDataWithTicket2 = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee22(e) {return _regenerator.default.wrap(function _callee22$(_context22) {while (1) {switch (_context22.prev = _context22.next) {case 0:this._anonymousAuthProvider || (this._anonymousAuthProvider = new qe(this.config)), _e(Pe, this._onAnonymousConverted);_context22.next = 3;return this._anonymousAuthProvider.linkAndRetrieveDataWithTicket(e);case 3:return _context22.abrupt("return", _context22.sent);case 4:case "end":return _context22.stop();}}}, _callee22, this);}));function linkAndRetrieveDataWithTicket(_x20) {return _linkAndRetrieveDataWithTicket2.apply(this, arguments);}return linkAndRetrieveDataWithTicket;}() }, { key: "signOut", value: function () {var _signOut = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee23() {var _this$_cache$keys10, e, t, n, s, o;return _regenerator.default.wrap(function _callee23$(_context23) {while (1) {switch (_context23.prev = _context23.next) {case 0:if (!(this.loginType === Ie.ANONYMOUS)) {_context23.next = 2;break;}throw new B({ message: "鍖垮悕鐢ㄦ埛涓嶆敮鎸佺櫥鍑烘搷浣�" });case 2:_this$_cache$keys10 = this._cache.keys, e = _this$_cache$keys10.refreshTokenKey, t = _this$_cache$keys10.accessTokenKey, n = _this$_cache$keys10.accessTokenExpireKey, s = this._cache.getStore(e);if (s) {_context23.next = 5;break;}return _context23.abrupt("return");case 5:_context23.next = 7;return this._request.send("auth.logout", { refresh_token: s });case 7:o = _context23.sent;return _context23.abrupt("return", (this._cache.removeStore(e), this._cache.removeStore(t), this._cache.removeStore(n), we(ve), we(Se, { env: this.config.env, loginType: Ie.NULL, persistence: this.config.persistence }), o));case 9:case "end":return _context23.stop();}}}, _callee23, this);}));function signOut() {return _signOut.apply(this, arguments);}return signOut;}() }, { key: "signUpWithEmailAndPassword", value: function () {var _signUpWithEmailAndPassword = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee24(e, t) {return _regenerator.default.wrap(function _callee24$(_context24) {while (1) {switch (_context24.prev = _context24.next) {case 0:return _context24.abrupt("return", this._request.send("auth.signUpWithEmailAndPassword", { email: e, password: t }));case 1:case "end":return _context24.stop();}}}, _callee24, this);}));function signUpWithEmailAndPassword(_x21, _x22) {return _signUpWithEmailAndPassword.apply(this, arguments);}return signUpWithEmailAndPassword;}() }, { key: "sendPasswordResetEmail", value: function () {var _sendPasswordResetEmail = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee25(e) {return _regenerator.default.wrap(function _callee25$(_context25) {while (1) {switch (_context25.prev = _context25.next) {case 0:return _context25.abrupt("return", this._request.send("auth.sendPasswordResetEmail", { email: e }));case 1:case "end":return _context25.stop();}}}, _callee25, this);}));function sendPasswordResetEmail(_x23) {return _sendPasswordResetEmail.apply(this, arguments);}return sendPasswordResetEmail;}() }, { key: "onLoginStateChanged", value: function onLoginStateChanged(e) {var _this10 = this;_e(ve, function () {var t = _this10.hasLoginState();e.call(_this10, t);});var t = this.hasLoginState();e.call(this, t);} }, { key: "onLoginStateExpired", value: function onLoginStateExpired(e) {_e(Te, e.bind(this));} }, { key: "onAccessTokenRefreshed", value: function onAccessTokenRefreshed(e) {_e(Ae, e.bind(this));} }, { key: "onAnonymousConverted", value: function onAnonymousConverted(e) {_e(Pe, e.bind(this));} }, { key: "onLoginTypeChanged", value: function onLoginTypeChanged(e) {var _this11 = this;_e(Se, function () {var t = _this11.hasLoginState();e.call(_this11, t);});} }, { key: "getAccessToken", value: function () {var _getAccessToken2 = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee26() {return _regenerator.default.wrap(function _callee26$(_context26) {while (1) {switch (_context26.prev = _context26.next) {case 0:_context26.next = 2;return this._request.getAccessToken();case 2:_context26.t0 = _context26.sent.accessToken;_context26.t1 = this.config.env;return _context26.abrupt("return", { accessToken: _context26.t0, env: _context26.t1 });case 5:case "end":return _context26.stop();}}}, _callee26, this);}));function getAccessToken() {return _getAccessToken2.apply(this, arguments);}return getAccessToken;}() }, { key: "hasLoginState", value: function hasLoginState() {var e = this._cache.keys.refreshTokenKey;return this._cache.getStore(e) ? new Ne(this.config.env) : null;} }, { key: "isUsernameRegistered", value: function () {var _isUsernameRegistered = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee27(e) {var _yield$this$_request$5, t;return _regenerator.default.wrap(function _callee27$(_context27) {while (1) {switch (_context27.prev = _context27.next) {case 0:if (!("string" != typeof e)) {_context27.next = 2;break;}throw new B({ code: "PARAM_ERROR", message: "username must be a string" });case 2:_context27.next = 4;return this._request.send("auth.isUsernameRegistered", { username: e });case 4:_yield$this$_request$5 = _context27.sent;t = _yield$this$_request$5.data;return _context27.abrupt("return", t && t.isRegistered);case 7:case "end":return _context27.stop();}}}, _callee27, this);}));function isUsernameRegistered(_x24) {return _isUsernameRegistered.apply(this, arguments);}return isUsernameRegistered;}() }, { key: "getLoginState", value: function getLoginState() {return Promise.resolve(this.hasLoginState());} }, { key: "signInWithTicket", value: function () {var _signInWithTicket = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee28(e) {return _regenerator.default.wrap(function _callee28$(_context28) {while (1) {switch (_context28.prev = _context28.next) {case 0:return _context28.abrupt("return", new Fe(this.config).signIn(e));case 1:case "end":return _context28.stop();}}}, _callee28, this);}));function signInWithTicket(_x25) {return _signInWithTicket.apply(this, arguments);}return signInWithTicket;}() }, { key: "shouldRefreshAccessToken", value: function shouldRefreshAccessToken(e) {this._request._shouldRefreshAccessTokenHook = e.bind(this);} }, { key: "getUserInfo", value: function getUserInfo() {return this._request.send("auth.getUserInfo", {}).then(function (e) {return e.code ? e : _objectSpread(_objectSpread({}, e.data), {}, { requestId: e.seqId });});} }, { key: "getAuthHeader", value: function getAuthHeader() {var _this$_cache$keys11 = this._cache.keys,e = _this$_cache$keys11.refreshTokenKey,t = _this$_cache$keys11.accessTokenKey,n = this._cache.getStore(e);return { "x-cloudbase-credentials": this._cache.getStore(t) + "/@@/" + n };} }, { key: "_onAnonymousConverted", value: function _onAnonymousConverted(e) {var t = e.data.env;t === this.config.env && this._cache.updatePersistence(this.config.persistence);} }, { key: "_onLoginTypeChanged", value: function _onLoginTypeChanged(e) {var _e$data = e.data,t = _e$data.loginType,n = _e$data.persistence,s = _e$data.env;s === this.config.env && (this._cache.updatePersistence(n), this._cache.setStore(this._cache.keys.loginTypeKey, t));} }, { key: "currentUser", get: function get() {var e = this.hasLoginState();return e && e.user || null;} }, { key: "loginType", get: function get() {return this._cache.getStore(this._cache.keys.loginTypeKey);} }]);return $e;}();var Ke = function Ke(e, t) {t = t || ne();var n = xe(this.config.env),s = e.cloudPath,o = e.filePath,r = e.onUploadProgress,_e$fileType = e.fileType,i = _e$fileType === void 0 ? "image" : _e$fileType;return n.send("storage.getUploadMetadata", { path: s }).then(function (e) {var _e$data2 = e.data,a = _e$data2.url,c = _e$data2.authorization,u = _e$data2.token,l = _e$data2.fileId,h = _e$data2.cosFileId,d = e.requestId,f = { key: s, signature: c, "x-cos-meta-fileid": h, success_action_status: "201", "x-cos-security-token": u };n.upload({ url: a, data: f, file: o, name: s, fileType: i, onUploadProgress: r }).then(function (e) {201 === e.statusCode ? t(null, { fileID: l, requestId: d }) : t(new B({ code: "STORAGE_REQUEST_FAIL", message: "STORAGE_REQUEST_FAIL: ".concat(e.data) }));}).catch(function (e) {t(e);});}).catch(function (e) {t(e);}), t.promise;},Be = function Be(e, t) {t = t || ne();var n = xe(this.config.env),s = e.cloudPath;return n.send("storage.getUploadMetadata", { path: s }).then(function (e) {t(null, e);}).catch(function (e) {t(e);}), t.promise;},He = function He(_ref5, t) {var e = _ref5.fileList;if (t = t || ne(), !e || !Array.isArray(e)) return { code: "INVALID_PARAM", message: "fileList蹇呴』鏄潪绌虹殑鏁扮粍" };var _iterator3 = _createForOfIteratorHelper(e),_step3;try {for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {var _t8 = _step3.value;if (!_t8 || "string" != typeof _t8) return { code: "INVALID_PARAM", message: "fileList鐨勫厓绱犲繀椤绘槸闈炵┖鐨勫瓧绗︿覆" };}} catch (err) {_iterator3.e(err);} finally {_iterator3.f();}var n = { fileid_list: e };return xe(this.config.env).send("storage.batchDeleteFile", n).then(function (e) {e.code ? t(null, e) : t(null, { fileList: e.data.delete_list, requestId: e.requestId });}).catch(function (e) {t(e);}), t.promise;},We = function We(_ref6, t) {var e = _ref6.fileList;t = t || ne(), e && Array.isArray(e) || t(null, { code: "INVALID_PARAM", message: "fileList蹇呴』鏄潪绌虹殑鏁扮粍" });var n = [];var _iterator4 = _createForOfIteratorHelper(e),_step4;try {for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {var _s7 = _step4.value;"object" == typeof _s7 ? (_s7.hasOwnProperty("fileID") && _s7.hasOwnProperty("maxAge") || t(null, { code: "INVALID_PARAM", message: "fileList鐨勫厓绱犲繀椤绘槸鍖呭惈fileID鍜宮axAge鐨勫璞�" }), n.push({ fileid: _s7.fileID, max_age: _s7.maxAge })) : "string" == typeof _s7 ? n.push({ fileid: _s7 }) : t(null, { code: "INVALID_PARAM", message: "fileList鐨勫厓绱犲繀椤绘槸瀛楃涓�" });}} catch (err) {_iterator4.e(err);} finally {_iterator4.f();}var s = { file_list: n };return xe(this.config.env).send("storage.batchGetDownloadUrl", s).then(function (e) {e.code ? t(null, e) : t(null, { fileList: e.data.download_list, requestId: e.requestId });}).catch(function (e) {t(e);}), t.promise;},ze = /*#__PURE__*/function () {var _ref8 = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee29(_ref7, t) {var e, n, s, o;return _regenerator.default.wrap(function _callee29$(_context29) {while (1) {switch (_context29.prev = _context29.next) {case 0:e = _ref7.fileID;_context29.next = 3;return We.call(this, { fileList: [{ fileID: e, maxAge: 600 }] });case 3:n = _context29.sent.fileList[0];if (!("SUCCESS" !== n.code)) {_context29.next = 6;break;}return _context29.abrupt("return", t ? t(n) : new Promise(function (e) {e(n);}));case 6:s = xe(this.config.env);o = n.download_url;if (!(o = encodeURI(o), !t)) {_context29.next = 10;break;}return _context29.abrupt("return", s.download({ url: o }));case 10:_context29.t0 = t;_context29.next = 13;return s.download({ url: o });case 13:_context29.t1 = _context29.sent;(0, _context29.t0)(_context29.t1);case 15:case "end":return _context29.stop();}}}, _callee29, this);}));return function ze(_x26, _x27) {return _ref8.apply(this, arguments);};}(),Je = function Je(_ref9, r) {var e = _ref9.name,t = _ref9.data,n = _ref9.query,s = _ref9.parse,o = _ref9.search;var i = r || ne();var a;try {a = t ? JSON.stringify(t) : "";} catch (e) {return Promise.reject(e);}if (!e) return Promise.reject(new B({ code: "PARAM_ERROR", message: "鍑芥暟鍚嶄笉鑳戒负绌�" }));var c = { inQuery: n, parse: s, search: o, function_name: e, request_data: a };return xe(this.config.env).send("functions.invokeFunction", c).then(function (e) {if (e.code) i(null, e);else {var _t9 = e.data.response_data;if (s) i(null, { result: _t9, requestId: e.requestId });else try {_t9 = JSON.parse(e.data.response_data), i(null, { result: _t9, requestId: e.requestId });} catch (e) {i(new B({ message: "response data must be json" }));}}return i.promise;}).catch(function (e) {i(e);}), i.promise;},Ve = { timeout: 15e3, persistence: "session" },Ye = {};var Xe = /*#__PURE__*/function () {function Xe(e) {_classCallCheck(this, Xe);this.config = e || this.config, this.authObj = void 0;}_createClass(Xe, [{ key: "init", value: function init(e) {switch (ae.adapter || (this.requestClient = new ae.adapter.reqClass({ timeout: e.timeout || 5e3, timeoutMsg: "\u8BF7\u6C42\u5728".concat((e.timeout || 5e3) / 1e3, "s\u5185\u672A\u5B8C\u6210\uFF0C\u5DF2\u4E2D\u65AD") })), this.config = _objectSpread(_objectSpread({}, Ve), e), !0) {case this.config.timeout > 6e5:console.warn("timeout澶т簬鍙厤缃笂闄怺10鍒嗛挓]锛屽凡閲嶇疆涓轰笂闄愭暟鍊�"), this.config.timeout = 6e5;break;case this.config.timeout < 100:console.warn("timeout灏忎簬鍙厤缃笅闄怺100ms]锛屽凡閲嶇疆涓轰笅闄愭暟鍊�"), this.config.timeout = 100;}return new Xe(this.config);} }, { key: "auth", value: function auth() {var _ref10 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},e = _ref10.persistence;if (this.authObj) return this.authObj;var t = e || ae.adapter.primaryStorage || Ve.persistence;var n;return t !== this.config.persistence && (this.config.persistence = t), function (e) {var t = e.env;de[t] = new he(e), fe[t] = new he(_objectSpread(_objectSpread({}, e), {}, { persistence: "local" }));}(this.config), n = this.config, Ue[n.env] = new Re(n), this.authObj = new $e(this.config), this.authObj;} }, { key: "on", value: function on(e, t) {return _e.apply(this, [e, t]);} }, { key: "off", value: function off(e, t) {return ke.apply(this, [e, t]);} }, { key: "callFunction", value: function callFunction(e, t) {return Je.apply(this, [e, t]);} }, { key: "deleteFile", value: function deleteFile(e, t) {return He.apply(this, [e, t]);} }, { key: "getTempFileURL", value: function getTempFileURL(e, t) {return We.apply(this, [e, t]);} }, { key: "downloadFile", value: function downloadFile(e, t) {return ze.apply(this, [e, t]);} }, { key: "uploadFile", value: function uploadFile(e, t) {return Ke.apply(this, [e, t]);} }, { key: "getUploadMetadata", value: function getUploadMetadata(e, t) {return Be.apply(this, [e, t]);} }, { key: "registerExtension", value: function registerExtension(e) {Ye[e.name] = e;} }, { key: "invokeExtension", value: function () {var _invokeExtension = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee30(e, t) {var n;return _regenerator.default.wrap(function _callee30$(_context30) {while (1) {switch (_context30.prev = _context30.next) {case 0:n = Ye[e];if (n) {_context30.next = 3;break;}throw new B({ message: "\u6269\u5C55".concat(e, " \u5FC5\u987B\u5148\u6CE8\u518C") });case 3:_context30.next = 5;return n.invoke(t, this);case 5:return _context30.abrupt("return", _context30.sent);case 6:case "end":return _context30.stop();}}}, _callee30, this);}));function invokeExtension(_x28, _x29) {return _invokeExtension.apply(this, arguments);}return invokeExtension;}() }, { key: "useAdapters", value: function useAdapters(e) {var _ref11 = ie(e) || {},t = _ref11.adapter,n = _ref11.runtime;t && (ae.adapter = t), n && (ae.runtime = n);} }]);return Xe;}();var Ge = new Xe();function Qe(e, t, n) {void 0 === n && (n = {});var s = /\?/.test(t),o = "";for (var r in n) {"" === o ? !s && (t += "?") : o += "&", o += r + "=" + encodeURIComponent(n[r]);}return /^http(s)?:\/\//.test(t += o) ? t : "" + e + t;}var Ze = /*#__PURE__*/function () {function Ze() {_classCallCheck(this, Ze);}_createClass(Ze, [{ key: "post", value: function post(e) {var t = e.url,n = e.data,s = e.headers;return new Promise(function (e, o) {V.request({ url: Qe("https:", t), data: n, method: "POST", header: s, success: function success(t) {e(t);}, fail: function fail(e) {o(e);} });});} }, { key: "upload", value: function upload(e) {return new Promise(function (t, n) {var s = e.url,o = e.file,r = e.data,i = e.headers,a = e.fileType,c = V.uploadFile({ url: Qe("https:", s), name: "file", formData: Object.assign({}, r), filePath: o, fileType: a, header: i, success: function success(e) {var n = { statusCode: e.statusCode, data: e.data || {} };200 === e.statusCode && r.success_action_status && (n.statusCode = parseInt(r.success_action_status, 10)), t(n);}, fail: function fail(e) {n(new Error(e.errMsg || "uploadFile:fail"));} });"function" == typeof e.onUploadProgress && c && "function" == typeof c.onProgressUpdate && c.onProgressUpdate(function (t) {e.onUploadProgress({ loaded: t.totalBytesSent, total: t.totalBytesExpectedToSend });});});} }]);return Ze;}();var et = { setItem: function setItem(e, t) {V.setStorageSync(e, t);}, getItem: function getItem(e) {return V.getStorageSync(e);}, removeItem: function removeItem(e) {V.removeStorageSync(e);}, clear: function clear() {V.clearStorageSync();} };var tt = { genAdapter: function genAdapter() {return { root: {}, reqClass: Ze, localStorage: et, primaryStorage: "local" };}, isMatch: function isMatch() {return !0;}, runtime: "uni_app" };Ge.useAdapters(tt);var nt = Ge,st = nt.init;nt.init = function (e) {e.env = e.spaceId;var t = st.call(this, e);t.config.provider = "tencent", t.config.spaceId = e.spaceId;var n = t.auth;return t.auth = function (e) {var t = n.call(this, e);return ["linkAndRetrieveDataWithTicket", "signInAnonymously", "signOut", "getAccessToken", "getLoginState", "signInWithTicket", "getUserInfo"].forEach(function (e) {t[e] = K(t[e]).bind(t);}), t;}, t.customAuth = t.auth, t;};var ot = nt;function rt() {return { token: V.getStorageSync("uni_id_token") || V.getStorageSync("uniIdToken"), tokenExpired: V.getStorageSync("uni_id_token_expired") };}function it() {var _ref12 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},e = _ref12.token,t = _ref12.tokenExpired;e && V.setStorageSync("uni_id_token", e), t && V.setStorageSync("uni_id_token_expired", t);}function at() {if (!d || "web" !== g) return;uni.getStorageSync("__LAST_DCLOUD_APPID") !== _ && (uni.setStorageSync("__LAST_DCLOUD_APPID", _), console.warn("妫�娴嬪埌褰撳墠椤圭洰涓庝笂娆¤繍琛屽埌姝ょ鍙g殑椤圭洰涓嶄竴鑷达紝鑷姩娓呯悊uni-id淇濆瓨鐨則oken淇℃伅锛堜粎寮�鍙戣皟璇曟椂鐢熸晥锛�"), V.removeStorageSync("uni_id_token"), V.removeStorageSync("uniIdToken"), V.removeStorageSync("uni_id_token_expired"));}var ct = /*#__PURE__*/function (_G) {_inherits(ct, _G);var _super8 = _createSuper(ct);function ct() {_classCallCheck(this, ct);return _super8.apply(this, arguments);}_createClass(ct, [{ key: "getAccessToken", value: function getAccessToken() {var _this12 = this;return new Promise(function (e, t) {var n = "Anonymous_Access_token";_this12.setAccessToken(n), e(n);});} }, { key: "setupRequest", value: function setupRequest(e, t) {var n = Object.assign({}, e, { spaceId: this.config.spaceId, timestamp: Date.now() }),s = { "Content-Type": "application/json" };"auth" !== t && (n.token = this.accessToken, s["x-basement-token"] = this.accessToken), s["x-serverless-sign"] = J.sign(n, this.config.clientSecret);var o = z();s["x-client-info"] = encodeURIComponent(JSON.stringify(o));var _rt = rt(),r = _rt.token;return s["x-client-token"] = r, { url: this.config.requestUrl, method: "POST", data: n, dataType: "json", header: JSON.parse(JSON.stringify(s)) };} }, { key: "uploadFileToOSS", value: function uploadFileToOSS(_ref13) {var _this13 = this;var e = _ref13.url,t = _ref13.formData,n = _ref13.name,s = _ref13.filePath,o = _ref13.fileType,r = _ref13.onUploadProgress;return new Promise(function (i, a) {var c = _this13.adapter.uploadFile({ url: e, formData: t, name: n, filePath: s, fileType: o, success: function success(e) {e && e.statusCode < 400 ? i(e) : a(new B({ code: "UPLOAD_FAILED", message: "鏂囦欢涓婁紶澶辫触" }));}, fail: function fail(e) {a(new B({ code: e.code || "UPLOAD_FAILED", message: e.message || e.errMsg || "鏂囦欢涓婁紶澶辫触" }));} });"function" == typeof r && c && "function" == typeof c.onProgressUpdate && c.onProgressUpdate(function (e) {r({ loaded: e.totalBytesSent, total: e.totalBytesExpectedToSend });});});} }, { key: "uploadFile", value: function uploadFile(_ref14) {var _this14 = this;var e = _ref14.filePath,t = _ref14.cloudPath,_ref14$fileType = _ref14.fileType,n = _ref14$fileType === void 0 ? "image" : _ref14$fileType,s = _ref14.onUploadProgress;if (!t) throw new B({ code: "CLOUDPATH_REQUIRED", message: "cloudPath涓嶅彲涓虹┖" });var o;return this.getOSSUploadOptionsFromPath({ cloudPath: t }).then(function (t) {var _t$result = t.result,r = _t$result.url,i = _t$result.formData,a = _t$result.name;o = t.result.fileUrl;var c = { url: r, formData: i, name: a, filePath: e, fileType: n };return _this14.uploadFileToOSS(Object.assign({}, c, { onUploadProgress: s }));}).then(function () {return _this14.reportOSSUpload({ cloudPath: t });}).then(function (t) {return new Promise(function (n, s) {t.success ? n({ success: !0, filePath: e, fileID: o }) : s(new B({ code: "UPLOAD_FAILED", message: "鏂囦欢涓婁紶澶辫触" }));});});} }, { key: "deleteFile", value: function deleteFile(_ref15) {var e = _ref15.fileList;var t = { method: "serverless.file.resource.delete", params: JSON.stringify({ fileList: e }) };return this.request(this.setupRequest(t));} }, { key: "getTempFileURL", value: function getTempFileURL() {var _ref16 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},e = _ref16.fileList;var t = { method: "serverless.file.resource.getTempFileURL", params: JSON.stringify({ fileList: e }) };return this.request(this.setupRequest(t));} }]);return ct;}(G);var ut = { init: function init(e) {var t = new ct(e),n = { signInAnonymously: function signInAnonymously() {return t.authorize();}, getLoginState: function getLoginState() {return Promise.resolve(!1);} };return t.auth = function () {return n;}, t.customAuth = t.auth, t;} };function lt(_ref17) {var e = _ref17.data;var t;t = z();var n = JSON.parse(JSON.stringify(e || {}));if (Object.assign(n, { clientInfo: t }), !n.uniIdToken) {var _rt2 = rt(),_e19 = _rt2.token;_e19 && (n.uniIdToken = _e19);}return n;}function ht() {var _this15 = this;var _ref18 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},e = _ref18.name,t = _ref18.data;var _this$__dev__ = this.__dev__,n = _this$__dev__.localAddress,s = _this$__dev__.localPort,o = { aliyun: "aliyun", tencent: "tcb" }[this.config.provider],r = this.config.spaceId,i = "http://".concat(n, ":").concat(s, "/system/check-function"),a = "http://".concat(n, ":").concat(s, "/cloudfunctions/").concat(e);return new Promise(function (t, n) {V.request({ method: "POST", url: i, data: { name: e, platform: g, provider: o, spaceId: r }, timeout: 3e3, success: function success(e) {t(e);}, fail: function fail() {t({ data: { code: "NETWORK_ERROR", message: "杩炴帴鏈湴璋冭瘯鏈嶅姟澶辫触锛岃妫�鏌ュ鎴风鏄惁鍜屼富鏈哄湪鍚屼竴灞�鍩熺綉涓嬶紝鑷姩鍒囨崲涓哄凡閮ㄧ讲鐨勪簯鍑芥暟銆�" } });} });}).then(function () {var _ref19 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},e = _ref19.data;var _ref20 = e || {},t = _ref20.code,n = _ref20.message;return { code: 0 === t ? 0 : t || "SYS_ERR", message: n || "SYS_ERR" };}).then(function (_ref21) {var n = _ref21.code,s = _ref21.message;if (0 !== n) {switch (n) {case "MODULE_ENCRYPTED":console.error("\u6B64\u4E91\u51FD\u6570\uFF08".concat(e, "\uFF09\u4F9D\u8D56\u52A0\u5BC6\u516C\u5171\u6A21\u5757\u4E0D\u53EF\u672C\u5730\u8C03\u8BD5\uFF0C\u81EA\u52A8\u5207\u6362\u4E3A\u4E91\u7AEF\u5DF2\u90E8\u7F72\u7684\u4E91\u51FD\u6570"));break;case "FUNCTION_ENCRYPTED":console.error("\u6B64\u4E91\u51FD\u6570\uFF08".concat(e, "\uFF09\u5DF2\u52A0\u5BC6\u4E0D\u53EF\u672C\u5730\u8C03\u8BD5\uFF0C\u81EA\u52A8\u5207\u6362\u4E3A\u4E91\u7AEF\u5DF2\u90E8\u7F72\u7684\u4E91\u51FD\u6570"));break;case "ACTION_ENCRYPTED":console.error(s || "闇�瑕佽闂姞瀵嗙殑uni-clientDB-action锛岃嚜鍔ㄥ垏鎹负浜戠鐜");break;case "NETWORK_ERROR":{var _e20 = "杩炴帴鏈湴璋冭瘯鏈嶅姟澶辫触锛岃妫�鏌ュ鎴风鏄惁鍜屼富鏈哄湪鍚屼竴灞�鍩熺綉涓�";throw console.error(_e20), new Error(_e20);}case "SWITCH_TO_CLOUD":break;default:{var _e21 = "\u68C0\u6D4B\u672C\u5730\u8C03\u8BD5\u670D\u52A1\u51FA\u73B0\u9519\u8BEF\uFF1A".concat(s, "\uFF0C\u8BF7\u68C0\u67E5\u7F51\u7EDC\u73AF\u5883\u6216\u91CD\u542F\u5BA2\u6237\u7AEF\u518D\u8BD5");throw console.error(_e21), new Error(_e21);}}return _this15._callCloudFunction({ name: e, data: t });}return new Promise(function (e, n) {var s = lt.call(_this15, { data: t });V.request({ method: "POST", url: a, data: { provider: o, platform: g, param: s }, success: function success() {var _ref22 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},t = _ref22.statusCode,s = _ref22.data;return !t || t >= 400 ? n(new B({ code: s.code || "SYS_ERR", message: s.message || "request:fail" })) : e({ result: s });}, fail: function fail(e) {n(new B({ code: e.code || e.errCode || "SYS_ERR", message: e.message || e.errMsg || "request:fail" }));} });});});}var dt = [{ rule: /fc_function_not_found|FUNCTION_NOT_FOUND/, content: "锛屼簯鍑芥暟[{functionName}]鍦ㄤ簯绔笉瀛樺湪锛岃妫�鏌ユ浜戝嚱鏁板悕绉版槸鍚︽纭互鍙婅浜戝嚱鏁版槸鍚﹀凡涓婁紶鍒版湇鍔$┖闂�", mode: "append" }];var ft = /[\\^$.*+?()[\]{}|]/g,gt = RegExp(ft.source);function pt(e, t, n) {return e.replace(new RegExp((s = t) && gt.test(s) ? s.replace(ft, "\\$&") : s, "g"), n);var s;}function mt(_ref23) {var e = _ref23.functionName,t = _ref23.result,n = _ref23.logPvd;if (this.__dev__.debugLog && t && t.requestId) {var _s8 = JSON.stringify({ spaceId: this.config.spaceId, functionName: e, requestId: t.requestId });console.log("[".concat(n, "-request]").concat(_s8, "[/").concat(n, "-request]"));}}function yt(e) {var t = e.callFunction,n = function n(_n5) {var _this16 = this;var s = _n5.name;_n5.data = lt.call(e, { data: _n5.data });var o = { aliyun: "aliyun", tencent: "tcb", tcb: "tcb" }[this.config.provider];return t.call(this, _n5).then(function (e) {return e.errCode = 0, mt.call(_this16, { functionName: s, result: e, logPvd: o }), Promise.resolve(e);}, function (e) {return mt.call(_this16, { functionName: s, result: e, logPvd: o }), e && e.message && (e.message = function () {var _ref24 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},_ref24$message = _ref24.message,e = _ref24$message === void 0 ? "" : _ref24$message,_ref24$extraInfo = _ref24.extraInfo,t = _ref24$extraInfo === void 0 ? {} : _ref24$extraInfo,_ref24$formatter = _ref24.formatter,n = _ref24$formatter === void 0 ? [] : _ref24$formatter;for (var _s9 = 0; _s9 < n.length; _s9++) {var _n$_s = n[_s9],_o3 = _n$_s.rule,_r2 = _n$_s.content,i = _n$_s.mode,_a = e.match(_o3);if (!_a) continue;var _c = _r2;for (var _e22 = 1; _e22 < _a.length; _e22++) {_c = pt(_c, "{$".concat(_e22, "}"), _a[_e22]);}for (var _e23 in t) {_c = pt(_c, "{".concat(_e23, "}"), t[_e23]);}return "replace" === i ? _c : e + _c;}return e;}({ message: "[".concat(_n5.name, "]: ").concat(e.message), formatter: dt, extraInfo: { functionName: s } })), Promise.reject(e);});};e.callFunction = function (t) {var s;d && e.__dev__.debugInfo && !e.__dev__.debugInfo.forceRemote && m ? (e._callCloudFunction || (e._callCloudFunction = n, e._callLocalFunction = ht), s = ht) : s = n;var o = s.call(this, t);return Object.defineProperty(o, "result", { get: function get() {return console.warn("褰撳墠杩斿洖缁撴灉涓篜romise绫诲瀷锛屼笉鍙洿鎺ヨ闂叾result灞炴�э紝璇︽儏璇峰弬鑰冿細https://uniapp.dcloud.net.cn/uniCloud/faq?id=promise"), {};} }), o;};}var _t = Symbol("CLIENT_DB_INTERNAL");function wt(e, t) {return e.then = "DoNotReturnProxyWithAFunctionNamedThen", e._internalType = _t, e.__ob__ = void 0, new Proxy(e, { get: function get(e, n, s) {if ("_uniClient" === n) return null;if (n in e || "string" != typeof n) {var _t10 = e[n];return "function" == typeof _t10 ? _t10.bind(e) : _t10;}return t.get(e, n, s);} });}function kt(e) {return { on: function on(t, n) {e[t] = e[t] || [], e[t].indexOf(n) > -1 || e[t].push(n);}, off: function off(t, n) {e[t] = e[t] || [];var s = e[t].indexOf(n);-1 !== s && e[t].splice(s, 1);} };}var vt = ["db.Geo", "db.command", "command.aggregate"];function Tt(e, t) {return vt.indexOf("".concat(e, ".").concat(t)) > -1;}function St(e) {switch (u(e)) {case "array":return e.map(function (e) {return St(e);});case "object":return e._internalType === _t || Object.keys(e).forEach(function (t) {e[t] = St(e[t]);}), e;case "regexp":return { $regexp: { source: e.source, flags: e.flags } };case "date":return { $date: e.toISOString() };default:return e;}}function Pt(e) {return e && e.content && e.content.$method;}var At = /*#__PURE__*/function () {function At(e, t, n) {_classCallCheck(this, At);this.content = e, this.prevStage = t || null, this.udb = null, this._database = n;}_createClass(At, [{ key: "toJSON", value: function toJSON() {var e = this;var t = [e.content];for (; e.prevStage;) {e = e.prevStage, t.push(e.content);}return { $db: t.reverse().map(function (e) {return { $method: e.$method, $param: St(e.$param) };}) };} }, { key: "getAction", value: function getAction() {var e = this.toJSON().$db.find(function (e) {return "action" === e.$method;});return e && e.$param && e.$param[0];} }, { key: "getCommand", value: function getCommand() {return { $db: this.toJSON().$db.filter(function (e) {return "action" !== e.$method;}) };} }, { key: "get", value: function get() {return this._send("get", Array.from(arguments));} }, { key: "add", value: function add() {return this._send("add", Array.from(arguments));} }, { key: "update", value: function update() {return this._send("update", Array.from(arguments));} }, { key: "end", value: function end() {return this._send("end", Array.from(arguments));} }, { key: "_send", value: function _send(e, t) {var n = this.getAction(),s = this.getCommand();if (s.$db.push({ $method: e, $param: St(t) }), d) {var _e24 = s.$db.find(function (e) {return "collection" === e.$method;}),_t11 = _e24 && _e24.$param;_t11 && 1 === _t11.length && "string" == typeof _e24.$param[0] && _e24.$param[0].indexOf(",") > -1 && console.warn("妫�娴嬪埌浣跨敤JQL璇硶鑱旇〃鏌ヨ鏃讹紝鏈娇鐢╣etTemp鍏堣繃婊や富琛ㄦ暟鎹紝鍦ㄤ富琛ㄦ暟鎹噺澶х殑鎯呭喌涓嬪彲鑳戒細鏌ヨ缂撴參銆俓n- 濡備綍浼樺寲璇峰弬鑰冩鏂囨。锛歨ttps://uniapp.dcloud.net.cn/uniCloud/jql?id=lookup-with-temp \n- 濡傛灉涓昏〃鏁版嵁閲忓緢灏忚蹇界暐姝や俊鎭紝椤圭洰鍙戣鏃朵笉浼氬嚭鐜版鎻愮ず銆�");}return this._database._callCloudFunction({ action: n, command: s });} }, { key: "isAggregate", get: function get() {var e = this;for (; e;) {var t = Pt(e),_n6 = Pt(e.prevStage);if ("aggregate" === t && "collection" === _n6 || "pipeline" === t) return !0;e = e.prevStage;}return !1;} }, { key: "isCommand", get: function get() {var e = this;for (; e;) {if ("command" === Pt(e)) return !0;e = e.prevStage;}return !1;} }, { key: "isAggregateCommand", get: function get() {var e = this;for (; e;) {var t = Pt(e),_n7 = Pt(e.prevStage);if ("aggregate" === t && "command" === _n7) return !0;e = e.prevStage;}return !1;} }, { key: "count", get: function get() {if (!this.isAggregate) return function () {return this._send("count", Array.from(arguments));};var e = this;return function () {return It({ $method: "count", $param: St(Array.from(arguments)) }, e, this._database);};} }, { key: "remove", get: function get() {if (!this.isCommand) return function () {return this._send("remove", Array.from(arguments));};var e = this;return function () {return It({ $method: "remove", $param: St(Array.from(arguments)) }, e, this._database);};} }, { key: "set", get: function get() {if (!this.isCommand) return function () {throw new Error("JQL绂佹浣跨敤set鏂规硶");};var e = this;return function () {return It({ $method: "set", $param: St(Array.from(arguments)) }, e, this._database);};} }]);return At;}();function It(e, t, n) {return wt(new At(e, t, n), { get: function get(e, t) {var s = "db";return e && e.content && (s = e.content.$method), Tt(s, t) ? It({ $method: t }, e, n) : function () {return It({ $method: t, $param: St(Array.from(arguments)) }, e, n);};} });}function bt(_ref25) {var e = _ref25.path,t = _ref25.method;return /*#__PURE__*/function () {function _class2() {_classCallCheck(this, _class2);this.param = Array.from(arguments);}_createClass(_class2, [{ key: "toJSON", value: function toJSON() {return { $newDb: [].concat(_toConsumableArray(e.map(function (e) {return { $method: e };})), [{ $method: t, $param: this.param }]) };} }]);return _class2;}();}var Ot = /*#__PURE__*/function (_ref26) {_inherits(Ot, _ref26);var _super9 = _createSuper(Ot);function Ot() {_classCallCheck(this, Ot);return _super9.apply(this, arguments);}_createClass(Ot, [{ key: "_callCloudFunction", value: function _callCloudFunction(_ref27) {var _this17 = this;var e = _ref27.action,t = _ref27.command,n = _ref27.multiCommand,s = _ref27.queryList;function o(e, t) {if (n && s) for (var _n8 = 0; _n8 < s.length; _n8++) {var _o4 = s[_n8];_o4.udb && "function" == typeof _o4.udb.setResult && (t ? _o4.udb.setResult(t) : _o4.udb.setResult(e.result.dataList[_n8]));}}var r = this;function i(e) {return r._callback("error", [e]), A(I("database", "fail"), e).then(function () {return A(I("database", "complete"), e);}).then(function () {return o(null, e), F(C, { type: U, content: e }), Promise.reject(e);});}var a = A(I("database", "invoke")),u = this._uniClient;return a.then(function () {return u.callFunction({ name: "DCloud-clientDB", type: c, data: { action: e, command: t, multiCommand: n } });}).then(function (e) {var _e$result = e.result,t = _e$result.code,n = _e$result.message,s = _e$result.token,r = _e$result.tokenExpired,_e$result$systemInfo = _e$result.systemInfo,a = _e$result$systemInfo === void 0 ? [] : _e$result$systemInfo;if (a) for (var _e25 = 0; _e25 < a.length; _e25++) {var _a$_e = a[_e25],_t12 = _a$_e.level,_n9 = _a$_e.message,_s10 = _a$_e.detail,_o5 = console["app" === g && "warn" === _t12 ? "error" : _t12] || console.log;var _r3 = "[System Info]" + _n9;_s10 && (_r3 = "".concat(_r3, "\n\u8BE6\u7EC6\u4FE1\u606F\uFF1A").concat(_s10)), _o5(_r3);}if (t) {return i(new B({ code: t, message: n, requestId: e.requestId }));}e.result.errCode = e.result.code, e.result.errMsg = e.result.message, s && r && (it({ token: s, tokenExpired: r }), _this17._callbackAuth("refreshToken", [{ token: s, tokenExpired: r }]), _this17._callback("refreshToken", [{ token: s, tokenExpired: r }]), F(R, { token: s, tokenExpired: r }));var c = [{ prop: "affectedDocs", tips: "affectedDocs涓嶅啀鎺ㄨ崘浣跨敤锛岃浣跨敤inserted/deleted/updated/data.length鏇夸唬" }, { prop: "code", tips: "code涓嶅啀鎺ㄨ崘浣跨敤锛岃浣跨敤errCode鏇夸唬" }, { prop: "message", tips: "message涓嶅啀鎺ㄨ崘浣跨敤锛岃浣跨敤errMsg鏇夸唬" }];var _loop = function _loop(_t13) {var _c$_t = c[_t13],n = _c$_t.prop,s = _c$_t.tips;if (n in e.result) {var _t14 = e.result[n];Object.defineProperty(e.result, n, { get: function get() {return console.warn(s), _t14;} });}};for (var _t13 = 0; _t13 < c.length; _t13++) {_loop(_t13);}return function (e) {return A(I("database", "success"), e).then(function () {return A(I("database", "complete"), e);}).then(function () {return o(e, null), F(C, { type: U, content: e }), Promise.resolve(e);});}(e);}, function (e) {/fc_function_not_found|FUNCTION_NOT_FOUND/g.test(e.message) && console.warn("clientDB鏈垵濮嬪寲锛岃鍦╳eb鎺у埗鍙颁繚瀛樹竴娆chema浠ュ紑鍚痗lientDB");return i(new B({ code: e.code || "SYSTEM_ERROR", message: e.message, requestId: e.requestId }));});} }]);return Ot;}( /*#__PURE__*/function () {function _class3() {var _ref28 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},_ref28$uniClient = _ref28.uniClient,e = _ref28$uniClient === void 0 ? {} : _ref28$uniClient;_classCallCheck(this, _class3);this._uniClient = e, this._authCallBacks = {}, this._dbCallBacks = {}, e.isDefault && (this._dbCallBacks = k("_globalUniCloudDatabaseCallback")), this.auth = kt(this._authCallBacks), Object.assign(this, kt(this._dbCallBacks)), this.env = wt({}, { get: function get(e, t) {return { $env: t };} }), this.Geo = wt({}, { get: function get(e, t) {return bt({ path: ["Geo"], method: t });} }), this.serverDate = bt({ path: [], method: "serverDate" }), this.RegExp = bt({ path: [], method: "RegExp" });}_createClass(_class3, [{ key: "getCloudEnv", value: function getCloudEnv(e) {if ("string" != typeof e || !e.trim()) throw new Error("getCloudEnv鍙傛暟閿欒");return { $env: e.replace("$cloudEnv_", "") };} }, { key: "_callback", value: function _callback(e, t) {var n = this._dbCallBacks;n[e] && n[e].forEach(function (e) {e.apply(void 0, _toConsumableArray(t));});} }, { key: "_callbackAuth", value: function _callbackAuth(e, t) {var n = this._authCallBacks;n[e] && n[e].forEach(function (e) {e.apply(void 0, _toConsumableArray(t));});} }, { key: "multiSend", value: function multiSend() {var e = Array.from(arguments),t = e.map(function (e) {var t = e.getAction(),n = e.getCommand();if ("getTemp" !== n.$db[n.$db.length - 1].$method) throw new Error("multiSend鍙敮鎸佸瓙鍛戒护鍐呬娇鐢╣etTemp");return { action: t, command: n };});return this._callCloudFunction({ multiCommand: t, queryList: e });} }]);return _class3;}());function Ct(e) {e.database = function (t) {if (t && Object.keys(t).length > 0) return e.init(t).database();if (this._database) return this._database;var n = function (e) {var t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};return wt(new e(t), { get: function get(e, t) {return Tt("db", t) ? It({ $method: t }, null, e) : function () {return It({ $method: t, $param: St(Array.from(arguments)) }, null, e);};} });}(Ot, { uniClient: e });return this._database = n, n;};}var Et = "token鏃犳晥锛岃烦杞櫥褰曢〉闈�",Rt = "token杩囨湡锛岃烦杞櫥褰曢〉闈�",Ut = { TOKEN_INVALID_TOKEN_EXPIRED: Rt, TOKEN_INVALID_INVALID_CLIENTID: Et, TOKEN_INVALID: Et, TOKEN_INVALID_WRONG_TOKEN: Et, TOKEN_INVALID_ANONYMOUS_USER: Et },xt = { "uni-id-token-expired": Rt, "uni-id-check-token-failed": Et, "uni-id-token-not-exist": Et, "uni-id-check-device-feature-failed": Et };function Lt(e, t) {var n = "";return n = e ? "".concat(e, "/").concat(t) : t, n.replace(/^\//, "");}function Dt() {var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];var t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "";var n = [],s = [];return e.forEach(function (e) {!0 === e.needLogin ? n.push(Lt(t, e.path)) : !1 === e.needLogin && s.push(Lt(t, e.path));}), { needLoginPage: n, notNeedLoginPage: s };}function Nt(e) {return e.split("?")[0].replace(/^\//, "");}function qt() {return function (e) {var t = e && e.$page && e.$page.fullPath || "";return t ? ("/" !== t.charAt(0) && (t = "/" + t), t) : t;}(function () {var e = getCurrentPages();return e[e.length - 1];}());}function Ft() {return Nt(qt());}function Mt() {var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "";var t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};if (!e) return !1;if (!(t && t.list && t.list.length)) return !1;var n = t.list,s = Nt(e);return n.some(function (e) {return e.pagePath === s;});}var jt = !!_pages.default.uniIdRouter;var _ref29 = function () {var _ref30 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _pages.default,_ref30$pages = _ref30.pages,e = _ref30$pages === void 0 ? [] : _ref30$pages,_ref30$subPackages = _ref30.subPackages,n = _ref30$subPackages === void 0 ? [] : _ref30$subPackages,_ref30$uniIdRouter = _ref30.uniIdRouter,s = _ref30$uniIdRouter === void 0 ? {} : _ref30$uniIdRouter,_ref30$tabBar = _ref30.tabBar,o = _ref30$tabBar === void 0 ? {} : _ref30$tabBar;var r = s.loginPage,_s$needLogin = s.needLogin,i = _s$needLogin === void 0 ? [] : _s$needLogin,_s$resToLogin = s.resToLogin,a = _s$resToLogin === void 0 ? !0 : _s$resToLogin,_Dt = Dt(e),c = _Dt.needLoginPage,u = _Dt.notNeedLoginPage,_ref31 = function () {var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];var t = [],n = [];return e.forEach(function (e) {var s = e.root,_e$pages = e.pages,o = _e$pages === void 0 ? [] : _e$pages,_Dt2 = Dt(o, s),r = _Dt2.needLoginPage,i = _Dt2.notNeedLoginPage;t.push.apply(t, _toConsumableArray(r)), n.push.apply(n, _toConsumableArray(i));}), { needLoginPage: t, notNeedLoginPage: n };}(n),l = _ref31.needLoginPage,h = _ref31.notNeedLoginPage;return { loginPage: r, routerNeedLogin: i, resToLogin: a, needLoginPage: [].concat(_toConsumableArray(c), _toConsumableArray(l)), notNeedLoginPage: [].concat(_toConsumableArray(u), _toConsumableArray(h)), loginPageInTabBar: Mt(r, o) };}(),$t = _ref29.loginPage,Kt = _ref29.routerNeedLogin,Bt = _ref29.resToLogin,Ht = _ref29.needLoginPage,Wt = _ref29.notNeedLoginPage,zt = _ref29.loginPageInTabBar;if (Ht.indexOf($t) > -1) throw new Error("Login page [".concat($t, "] should not be \"needLogin\", please check your pages.json"));function Jt(e) {var t = Nt(function (e) {var t = Ft(),n = e.charAt(0),s = e.split("?")[0];if ("/" === n) return s;var o = s.replace(/^\//, "").split("/"),r = t.split("/");r.pop();for (var _e26 = 0; _e26 < o.length; _e26++) {var _t15 = o[_e26];".." === _t15 ? r.pop() : "." !== _t15 && r.push(_t15);}return "" === r[0] && r.shift(), r.join("/");}(e));return !(Wt.indexOf(t) > -1) && (Ht.indexOf(t) > -1 || Kt.some(function (t) {return function (e, t) {return new RegExp(t).test(e);}(e, t);}));}function Vt(_ref32) {var e = _ref32.redirect;var t = Nt(e),n = Nt($t);return Ft() !== n && t !== n;}function Yt() {var _ref33 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},e = _ref33.api,t = _ref33.redirect;if (!t || !Vt({ redirect: t })) return;var n = function (e, t) {return "/" !== e.charAt(0) && (e = "/" + e), t ? e.indexOf("?") > -1 ? e + "&uniIdRedirectUrl=".concat(encodeURIComponent(t)) : e + "?uniIdRedirectUrl=".concat(encodeURIComponent(t)) : e;}($t, t);zt ? "navigateTo" !== e && "redirectTo" !== e || (e = "switchTab") : "switchTab" === e && (e = "navigateTo"), setTimeout(function () {uni[e]({ url: n });});}function Xt() {var _ref34 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},e = _ref34.url;var t = { abortLoginPageJump: !1, autoToLoginPage: !1 },n = function () {var _rt3 = rt(),e = _rt3.token,t = _rt3.tokenExpired;var n;if (e) {if (t < Date.now()) {var _e27 = "uni-id-token-expired";n = { errCode: _e27, errMsg: xt[_e27] };}} else {var _e28 = "uni-id-check-token-failed";n = { errCode: _e28, errMsg: xt[_e28] };}return n;}();if (Jt(e) && n) {n.uniIdRedirectUrl = e;if (D(E).length > 0) return setTimeout(function () {F(E, n);}, 0), t.abortLoginPageJump = !0, t;t.autoToLoginPage = !0;}return t;}function Gt() {!function () {var e = qt(),_Xt = Xt({ url: e }),t = _Xt.abortLoginPageJump,n = _Xt.autoToLoginPage;t || n && Yt({ api: "redirectTo", redirect: e });}();var e = ["navigateTo", "redirectTo", "reLaunch", "switchTab"];var _loop2 = function _loop2(_t16) {var n = e[_t16];uni.addInterceptor(n, { invoke: function invoke(e) {var _Xt2 = Xt({ url: e.url }),t = _Xt2.abortLoginPageJump,s = _Xt2.autoToLoginPage;return t ? e : s ? (Yt({ api: n, redirect: e.url }), !1) : e;} });};for (var _t16 = 0; _t16 < e.length; _t16++) {_loop2(_t16);}}function Qt() {this.onResponse(function (e) {var t = e.type,n = e.content;var s = !1;switch (t) {case "cloudobject":s = function (e) {var t = e.errCode;return t in xt;}(n);break;case "clientdb":s = function (e) {var t = e.errCode;return t in Ut;}(n);}s && function () {var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};var t = D(E);$().then(function () {var n = qt();if (n && Vt({ redirect: n })) return t.length > 0 ? F(E, Object.assign({ uniIdRedirectUrl: n }, e)) : void ($t && Yt({ api: "navigateTo", redirect: n }));});}(n);});}function Zt(e) {!function (e) {e.onResponse = function (e) {N(C, e);}, e.offResponse = function (e) {q(C, e);};}(e), function (e) {e.onNeedLogin = function (e) {N(E, e);}, e.offNeedLogin = function (e) {q(E, e);}, jt && (k("uni-cloud-status").needLoginInit || (k("uni-cloud-status").needLoginInit = !0, $().then(function () {Gt.call(e);}), Bt && Qt.call(e)));}(e), function (e) {e.onRefreshToken = function (e) {N(R, e);}, e.offRefreshToken = function (e) {q(R, e);};}(e);}var en;var tn = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",nn = /^(?:[A-Za-z\d+/]{4})*?(?:[A-Za-z\d+/]{2}(?:==)?|[A-Za-z\d+/]{3}=?)?$/;function sn() {var e = rt().token || "",t = e.split(".");if (!e || 3 !== t.length) return { uid: null, role: [], permission: [], tokenExpired: 0 };var n;try {n = JSON.parse((s = t[1], decodeURIComponent(en(s).split("").map(function (e) {return "%" + ("00" + e.charCodeAt(0).toString(16)).slice(-2);}).join(""))));} catch (e) {throw new Error("鑾峰彇褰撳墠鐢ㄦ埛淇℃伅鍑洪敊锛岃缁嗛敊璇俊鎭负锛�" + e.message);}var s;return n.tokenExpired = 1e3 * n.exp, delete n.exp, delete n.iat, n;}en = "function" != typeof atob ? function (e) {if (e = String(e).replace(/[\t\n\f\r ]+/g, ""), !nn.test(e)) throw new Error("Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded.");var t;e += "==".slice(2 - (3 & e.length));for (var n, s, o = "", r = 0; r < e.length;) {t = tn.indexOf(e.charAt(r++)) << 18 | tn.indexOf(e.charAt(r++)) << 12 | (n = tn.indexOf(e.charAt(r++))) << 6 | (s = tn.indexOf(e.charAt(r++))), o += 64 === n ? String.fromCharCode(t >> 16 & 255) : 64 === s ? String.fromCharCode(t >> 16 & 255, t >> 8 & 255) : String.fromCharCode(t >> 16 & 255, t >> 8 & 255, 255 & t);}return o;} : atob;var on = s(function (e, t) {Object.defineProperty(t, "__esModule", { value: !0 });var n = "chooseAndUploadFile:ok",s = "chooseAndUploadFile:fail";function o(e, t) {return e.tempFiles.forEach(function (e, n) {e.name || (e.name = e.path.substring(e.path.lastIndexOf("/") + 1)), t && (e.fileType = t), e.cloudPath = Date.now() + "_" + n + e.name.substring(e.name.lastIndexOf("."));}), e.tempFilePaths || (e.tempFilePaths = e.tempFiles.map(function (e) {return e.path;})), e;}function r(e, t, _ref35) {var s = _ref35.onChooseFile,o = _ref35.onUploadProgress;return t.then(function (e) {if (s) {var _t17 = s(e);if (void 0 !== _t17) return Promise.resolve(_t17).then(function (t) {return void 0 === t ? e : t;});}return e;}).then(function (t) {return !1 === t ? { errMsg: n, tempFilePaths: [], tempFiles: [] } : function (e, t) {var s = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 5;var o = arguments.length > 3 ? arguments[3] : undefined;(t = Object.assign({}, t)).errMsg = n;var r = t.tempFiles,i = r.length;var a = 0;return new Promise(function (n) {for (; a < s;) {c();}function c() {var s = a++;if (s >= i) return void (!r.find(function (e) {return !e.url && !e.errMsg;}) && n(t));var u = r[s];e.uploadFile({ filePath: u.path, cloudPath: u.cloudPath, fileType: u.fileType, onUploadProgress: function onUploadProgress(e) {e.index = s, e.tempFile = u, e.tempFilePath = u.path, o && o(e);} }).then(function (e) {u.url = e.fileID, s < i && c();}).catch(function (e) {u.errMsg = e.errMsg || e.message, s < i && c();});}});}(e, t, 5, o);});}t.initChooseAndUploadFile = function (e) {return function () {var t = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : { type: "all" };return "image" === t.type ? r(e, function (e) {var t = e.count,n = e.sizeType,_e$sourceType = e.sourceType,r = _e$sourceType === void 0 ? ["album", "camera"] : _e$sourceType,i = e.extension;return new Promise(function (e, a) {uni.chooseImage({ count: t, sizeType: n, sourceType: r, extension: i, success: function success(t) {e(o(t, "image"));}, fail: function fail(e) {a({ errMsg: e.errMsg.replace("chooseImage:fail", s) });} });});}(t), t) : "video" === t.type ? r(e, function (e) {var t = e.camera,n = e.compressed,r = e.maxDuration,_e$sourceType2 = e.sourceType,i = _e$sourceType2 === void 0 ? ["album", "camera"] : _e$sourceType2,a = e.extension;return new Promise(function (e, c) {uni.chooseVideo({ camera: t, compressed: n, maxDuration: r, sourceType: i, extension: a, success: function success(t) {var n = t.tempFilePath,s = t.duration,r = t.size,i = t.height,a = t.width;e(o({ errMsg: "chooseVideo:ok", tempFilePaths: [n], tempFiles: [{ name: t.tempFile && t.tempFile.name || "", path: n, size: r, type: t.tempFile && t.tempFile.type || "", width: a, height: i, duration: s, fileType: "video", cloudPath: "" }] }, "video"));}, fail: function fail(e) {c({ errMsg: e.errMsg.replace("chooseVideo:fail", s) });} });});}(t), t) : r(e, function (e) {var t = e.count,n = e.extension;return new Promise(function (e, r) {var i = uni.chooseFile;if ("undefined" != typeof wx && "function" == typeof wx.chooseMessageFile && (i = wx.chooseMessageFile), "function" != typeof i) return r({ errMsg: s + " 璇锋寚瀹� type 绫诲瀷锛岃骞冲彴浠呮敮鎸侀�夋嫨 image 鎴� video銆�" });i({ type: "all", count: t, extension: n, success: function success(t) {e(o(t));}, fail: function fail(e) {r({ errMsg: e.errMsg.replace("chooseFile:fail", s) });} });});}(t), t);};};}),rn = n(on);var an = "manual";function cn(e) {return { props: { localdata: { type: Array, default: function _default() {return [];} }, options: { type: [Object, Array], default: function _default() {return {};} }, spaceInfo: { type: Object, default: function _default() {return {};} }, collection: { type: [String, Array], default: "" }, action: { type: String, default: "" }, field: { type: String, default: "" }, orderby: { type: String, default: "" }, where: { type: [String, Object], default: "" }, pageData: { type: String, default: "add" }, pageCurrent: { type: Number, default: 1 }, pageSize: { type: Number, default: 20 }, getcount: { type: [Boolean, String], default: !1 }, gettree: { type: [Boolean, String], default: !1 }, gettreepath: { type: [Boolean, String], default: !1 }, startwith: { type: String, default: "" }, limitlevel: { type: Number, default: 10 }, groupby: { type: String, default: "" }, groupField: { type: String, default: "" }, distinct: { type: [Boolean, String], default: !1 }, foreignKey: { type: String, default: "" }, loadtime: { type: String, default: "auto" }, manual: { type: Boolean, default: !1 } }, data: function data() {return { mixinDatacomLoading: !1, mixinDatacomHasMore: !1, mixinDatacomResData: [], mixinDatacomErrorMessage: "", mixinDatacomPage: {} };}, created: function created() {var _this18 = this;this.mixinDatacomPage = { current: this.pageCurrent, size: this.pageSize, count: 0 }, this.$watch(function () {var e = [];return ["pageCurrent", "pageSize", "localdata", "collection", "action", "field", "orderby", "where", "getont", "getcount", "gettree", "groupby", "groupField", "distinct"].forEach(function (t) {e.push(_this18[t]);}), e;}, function (e, t) {if (_this18.loadtime === an) return;var n = !1;var s = [];for (var _o6 = 2; _o6 < e.length; _o6++) {e[_o6] !== t[_o6] && (s.push(e[_o6]), n = !0);}e[0] !== t[0] && (_this18.mixinDatacomPage.current = _this18.pageCurrent), _this18.mixinDatacomPage.size = _this18.pageSize, _this18.onMixinDatacomPropsChange(n, s);});}, methods: { onMixinDatacomPropsChange: function onMixinDatacomPropsChange(e, t) {}, mixinDatacomEasyGet: function mixinDatacomEasyGet() {var _this19 = this;var _ref36 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},_ref36$getone = _ref36.getone,e = _ref36$getone === void 0 ? !1 : _ref36$getone,t = _ref36.success,n = _ref36.fail;this.mixinDatacomLoading || (this.mixinDatacomLoading = !0, this.mixinDatacomErrorMessage = "", this.mixinDatacomGet().then(function (n) {_this19.mixinDatacomLoading = !1;var _n$result = n.result,s = _n$result.data,o = _n$result.count;_this19.getcount && (_this19.mixinDatacomPage.count = o), _this19.mixinDatacomHasMore = s.length < _this19.pageSize;var r = e ? s.length ? s[0] : void 0 : s;_this19.mixinDatacomResData = r, t && t(r);}).catch(function (e) {_this19.mixinDatacomLoading = !1, _this19.mixinDatacomErrorMessage = e, n && n(e);}));}, mixinDatacomGet: function mixinDatacomGet() {var _n10;var t = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};var n = e.database(this.spaceInfo);var s = t.action || this.action;s && (n = n.action(s));var o = t.collection || this.collection;n = Array.isArray(o) ? (_n10 = n).collection.apply(_n10, _toConsumableArray(o)) : n.collection(o);var r = t.where || this.where;r && Object.keys(r).length && (n = n.where(r));var i = t.field || this.field;i && (n = n.field(i));var a = t.foreignKey || this.foreignKey;a && (n = n.foreignKey(a));var c = t.groupby || this.groupby;c && (n = n.groupBy(c));var u = t.groupField || this.groupField;u && (n = n.groupField(u));!0 === (void 0 !== t.distinct ? t.distinct : this.distinct) && (n = n.distinct());var l = t.orderby || this.orderby;l && (n = n.orderBy(l));var h = void 0 !== t.pageCurrent ? t.pageCurrent : this.mixinDatacomPage.current,d = void 0 !== t.pageSize ? t.pageSize : this.mixinDatacomPage.size,f = void 0 !== t.getcount ? t.getcount : this.getcount,g = void 0 !== t.gettree ? t.gettree : this.gettree,p = void 0 !== t.gettreepath ? t.gettreepath : this.gettreepath,m = { getCount: f },y = { limitLevel: void 0 !== t.limitlevel ? t.limitlevel : this.limitlevel, startWith: void 0 !== t.startwith ? t.startwith : this.startwith };return g && (m.getTree = y), p && (m.getTreePath = y), n = n.skip(d * (h - 1)).limit(d).get(m), n;} } };}function un(e) {return function (t) {var n = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};n = function (e) {var t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};return e.customUI = t.customUI || e.customUI, Object.assign(e.loadingOptions, t.loadingOptions), Object.assign(e.errorOptions, t.errorOptions), "object" == typeof t.secretMethods && (e.secretMethods = t.secretMethods), e;}({ customUI: !1, loadingOptions: { title: "鍔犺浇涓�...", mask: !0 }, errorOptions: { type: "modal", retry: !1 } }, n);var _n11 = n,s = _n11.customUI,o = _n11.loadingOptions,r = _n11.errorOptions,i = !s;return new Proxy({}, { get: function get(s, c) {return function () {var _ref37 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},e = _ref37.fn,t = _ref37.interceptorName,n = _ref37.getCallbackArgs;return /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee31() {var _len,s,_key,o,r,i,_args31 = arguments;return _regenerator.default.wrap(function _callee31$(_context31) {while (1) {switch (_context31.prev = _context31.next) {case 0:for (_len = _args31.length, s = new Array(_len), _key = 0; _key < _len; _key++) {s[_key] = _args31[_key];}o = n ? n({ params: s }) : {};_context31.prev = 2;_context31.next = 5;return A(I(t, "invoke"), _objectSpread({}, o));case 5:_context31.next = 7;return e.apply(void 0, s);case 7:r = _context31.sent;_context31.next = 10;return A(I(t, "success"), _objectSpread(_objectSpread({}, o), {}, { result: r }));case 10:return _context31.abrupt("return", r);case 13:_context31.prev = 13;_context31.t0 = _context31["catch"](2);i = _context31.t0;_context31.next = 18;return A(I(t, "fail"), _objectSpread(_objectSpread({}, o), {}, { error: i }));case 18:throw i;case 19:_context31.prev = 19;_context31.next = 22;return A(I(t, "complete"), i ? _objectSpread(_objectSpread({}, o), {}, { error: i }) : _objectSpread(_objectSpread({}, o), {}, { result: r }));case 22:return _context31.finish(19);case 23:case "end":return _context31.stop();}}}, _callee31, null, [[2, 13, 19, 23]]);}));}({ fn: function () {var _s11 = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee33() {var l,_len2,u,_key2,h,_ref39,d,f,g,_yield,_e30,_e29,_args33 = arguments;return _regenerator.default.wrap(function _callee33$(_context33) {while (1) {switch (_context33.prev = _context33.next) {case 0:i && uni.showLoading({ title: o.title, mask: o.mask });for (_len2 = _args33.length, u = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {u[_key2] = _args33[_key2];}h = { name: t, type: a, data: { method: c, params: u } };"object" == typeof n.secretMethods && function (e, t) {var n = t.data.method,s = e.secretMethods[n];s && (t.secret = s);}(n, h);_context33.prev = 4;_context33.next = 7;return e.callFunction(h);case 7:l = _context33.sent;_context33.next = 13;break;case 10:_context33.prev = 10;_context33.t0 = _context33["catch"](4);l = { result: _context33.t0 };case 13:_ref39 = l.result || {}, d = _ref39.errCode, f = _ref39.errMsg, g = _ref39.newToken;if (!(i && uni.hideLoading(), g && g.token && g.tokenExpired && (it(g), F(R, _objectSpread({}, g))), d)) {_context33.next = 30;break;}if (!i) {_context33.next = 28;break;}if (!("toast" === r.type)) {_context33.next = 20;break;}uni.showToast({ title: f, icon: "none" });_context33.next = 28;break;case 20:if (!("modal" !== r.type)) {_context33.next = 22;break;}throw new Error("Invalid errorOptions.type: ".concat(r.type));case 22:_context33.next = 24;return _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee32() {var _ref41,e,t,n,s,o,_args32 = arguments;return _regenerator.default.wrap(function _callee32$(_context32) {while (1) {switch (_context32.prev = _context32.next) {case 0:_ref41 = _args32.length > 0 && _args32[0] !== undefined ? _args32[0] : {}, e = _ref41.title, t = _ref41.content, n = _ref41.showCancel, s = _ref41.cancelText, o = _ref41.confirmText;return _context32.abrupt("return", new Promise(function (r, i) {uni.showModal({ title: e, content: t, showCancel: n, cancelText: s, confirmText: o, success: function success(e) {r(e);}, fail: function fail() {r({ confirm: !1, cancel: !0 });} });}));case 2:case "end":return _context32.stop();}}}, _callee32);}))({ title: "鎻愮ず", content: f, showCancel: r.retry, cancelText: "鍙栨秷", confirmText: r.retry ? "閲嶈瘯" : "纭畾" });case 24:_yield = _context33.sent;_e30 = _yield.confirm;if (!(r.retry && _e30)) {_context33.next = 28;break;}return _context33.abrupt("return", s.apply(void 0, u));case 28:_e29 = new B({ code: d, message: f, requestId: l.requestId });throw _e29.detail = l.result, F(C, { type: L, content: _e29 }), _e29;case 30:return _context33.abrupt("return", (F(C, { type: L, content: l.result }), l.result));case 31:case "end":return _context33.stop();}}}, _callee33, null, [[4, 10]]);}));function s() {return _s11.apply(this, arguments);}return s;}(), interceptorName: "callObject", getCallbackArgs: function getCallbackArgs() {var _ref42 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},e = _ref42.params;return { objectName: t, methodName: c, params: e };} });} });};}function ln(_x30, _x31) {return _ln.apply(this, arguments);}function _ln() {_ln = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee35(e, t) {var n, _e34, s;return _regenerator.default.wrap(function _callee35$(_context35) {while (1) {switch (_context35.prev = _context35.next) {case 0:n = "http://".concat(e, ":").concat(t, "/system/ping");_context35.prev = 1;_context35.next = 4;return s = { url: n, timeout: 500 }, new Promise(function (e, t) {V.request(_objectSpread(_objectSpread({}, s), {}, { success: function success(t) {e(t);}, fail: function fail(e) {t(e);} }));});case 4:_e34 = _context35.sent;return _context35.abrupt("return", !(!_e34.data || 0 !== _e34.data.code));case 8:_context35.prev = 8;_context35.t0 = _context35["catch"](1);return _context35.abrupt("return", !1);case 11:case "end":return _context35.stop();}}}, _callee35, null, [[1, 8]]);}));return _ln.apply(this, arguments);}function hn(e) {if (e.initUniCloudStatus && "rejected" !== e.initUniCloudStatus) return;var t = Promise.resolve();var n;n = 1, t = new Promise(function (e, t) {setTimeout(function () {e();}, n);}), e.isReady = !1, e.isDefault = !1;var s = e.auth();e.initUniCloudStatus = "pending", e.initUniCloud = t.then(function () {return s.getLoginState();}).then(function (e) {return e ? Promise.resolve() : s.signInAnonymously();}).then(function () {if (!d) return Promise.resolve();if ("app" === g) {var _uni$getSystemInfoSyn = uni.getSystemInfoSync(),_e31 = _uni$getSystemInfoSyn.osName,_t18 = _uni$getSystemInfoSyn.osVersion;"ios" === _e31 && function (e) {if (!e || "string" != typeof e) return 0;var t = e.match(/^(\d+)./);return t && t[1] ? parseInt(t[1]) : 0;}(_t18) >= 14 && console.warn("iOS 14鍙婁互涓婄増鏈繛鎺niCloud鏈湴璋冭瘯鏈嶅姟闇�瑕佸厑璁稿鎴风鏌ユ壘骞惰繛鎺ュ埌鏈湴缃戠粶涓婄殑璁惧锛堜粎寮�鍙戞ā寮忕敓鏁堬紝鍙戣妯″紡浼氳繛鎺niCloud浜戠鏈嶅姟锛�");}if (d && e.__dev__.debugInfo) {var _e$__dev__$debugInfo = e.__dev__.debugInfo,_t19 = _e$__dev__$debugInfo.address,_n12 = _e$__dev__$debugInfo.servePort;return function () {var _ref43 = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee34(e, t) {var n, _s12, _o7;return _regenerator.default.wrap(function _callee34$(_context34) {while (1) {switch (_context34.prev = _context34.next) {case 0:_s12 = 0;case 1:if (!(_s12 < e.length)) {_context34.next = 11;break;}_o7 = e[_s12];_context34.next = 5;return ln(_o7, t);case 5:if (!_context34.sent) {_context34.next = 8;break;}n = _o7;return _context34.abrupt("break", 11);case 8:_s12++;_context34.next = 1;break;case 11:return _context34.abrupt("return", { address: n, port: t });case 12:case "end":return _context34.stop();}}}, _callee34);}));return function (_x32, _x33) {return _ref43.apply(this, arguments);};}()(_t19, _n12);}}).then(function () {var _ref44 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},t = _ref44.address,n = _ref44.port;if (!d) return Promise.resolve();var s = console["app" === g ? "error" : "warn"];if (t) e.__dev__.localAddress = t, e.__dev__.localPort = n;else if (e.__dev__.debugInfo) {var _t20 = "";"remote" === e.__dev__.debugInfo.initialLaunchType ? (e.__dev__.debugInfo.forceRemote = !0, _t20 = "褰撳墠瀹㈡埛绔拰HBuilderX涓嶅湪鍚屼竴灞�鍩熺綉涓嬶紙鎴栧叾浠栫綉缁滃師鍥犳棤娉曡繛鎺BuilderX锛夛紝uniCloud鏈湴璋冭瘯鏈嶅姟涓嶅褰撳墠瀹㈡埛绔敓鏁堛�俓n- 濡傛灉涓嶄娇鐢╱niCloud鏈湴璋冭瘯鏈嶅姟锛岃鐩存帴蹇界暐姝や俊鎭�俓n- 濡傞渶浣跨敤uniCloud鏈湴璋冭瘯鏈嶅姟锛岃灏嗗鎴风涓庝富鏈鸿繛鎺ュ埌鍚屼竴灞�鍩熺綉涓嬪苟閲嶆柊杩愯鍒板鎴风銆俓n- 濡傛灉鍦℉BuilderX寮�鍚殑鐘舵�佷笅鍒囨崲杩囩綉缁滅幆澧冿紝璇烽噸鍚疕BuilderX鍚庡啀璇昞n- 妫�鏌ョ郴缁熼槻鐏鏄惁鎷︽埅浜咹BuilderX鑷甫鐨刵odejs") : _t20 = "鏃犳硶杩炴帴uniCloud鏈湴璋冭瘯鏈嶅姟锛岃妫�鏌ュ綋鍓嶅鎴风鏄惁涓庝富鏈哄湪鍚屼竴灞�鍩熺綉涓嬨�俓n- 濡傞渶浣跨敤uniCloud鏈湴璋冭瘯鏈嶅姟锛岃灏嗗鎴风涓庝富鏈鸿繛鎺ュ埌鍚屼竴灞�鍩熺綉涓嬪苟閲嶆柊杩愯鍒板鎴风銆俓n- 濡傛灉鍦℉BuilderX寮�鍚殑鐘舵�佷笅鍒囨崲杩囩綉缁滅幆澧冿紝璇烽噸鍚疕BuilderX鍚庡啀璇昞n- 妫�鏌ョ郴缁熼槻鐏鏄惁鎷︽埅浜咹BuilderX鑷甫鐨刵odejs", "web" === g && (_t20 += "\n- 閮ㄥ垎娴忚鍣ㄥ紑鍚妭娴佹ā寮忎箣鍚庤闂湰鍦板湴鍧�鍙楅檺锛岃妫�鏌ユ槸鍚﹀惎鐢ㄤ簡鑺傛祦妯″紡"), 0 === g.indexOf("mp-") && (_t20 += "\n- 灏忕▼搴忎腑濡備綍浣跨敤uniCloud锛岃鍙傝�冿細https://uniapp.dcloud.net.cn/uniCloud/publish.html#useinmp"), s(_t20);}}).then(function () {at(), e.isReady = !0, e.initUniCloudStatus = "fulfilled";}).catch(function (t) {console.error(t), e.initUniCloudStatus = "rejected";});}var dn = { tcb: ot, tencent: ot, aliyun: Q, private: ut };var fn = new ( /*#__PURE__*/function () {function _class4() {_classCallCheck(this, _class4);}_createClass(_class4, [{ key: "init", value: function init(e) {var t = {};var n = dn[e.provider];if (!n) throw new Error("鏈彁渚涙纭殑provider鍙傛暟");t = n.init(e), t.__dev__ = {}, t.__dev__.debugLog = d && ("web" === g && navigator.userAgent.indexOf("HBuilderX") > 0 || "app" === g);var s = p;d && s && !s.code && (t.__dev__.debugInfo = s), hn(t), t.reInit = function () {hn(this);}, yt(t), function (e) {var t = e.uploadFile;e.uploadFile = function (e) {return t.call(this, e);};}(t), Ct(t), function (e) {e.getCurrentUserInfo = sn, e.chooseAndUploadFile = rn.initChooseAndUploadFile(e), Object.assign(e, { get mixinDatacom() {return cn(e);} }), e.importObject = un(e);}(t);return ["callFunction", "uploadFile", "deleteFile", "getTempFileURL", "downloadFile", "chooseAndUploadFile"].forEach(function (e) {if (!t[e]) return;var n = t[e];t[e] = function () {return t.reInit(), n.apply(t, Array.from(arguments));}, t[e] = K(t[e], e).bind(t);}), t.init = this.init, t;} }]);return _class4;}())();(function () {var e = m;var t = {};if (e && 1 === e.length) t = e[0], fn = fn.init(t), fn.isDefault = !0;else {var _t21 = ["auth", "callFunction", "uploadFile", "deleteFile", "getTempFileURL", "downloadFile", "database", "getCurrentUSerInfo", "importObject"];var _n13;_n13 = e && e.length > 0 ? "搴旂敤鏈夊涓湇鍔$┖闂达紝璇烽�氳繃uniCloud.init鏂规硶鎸囧畾瑕佷娇鐢ㄧ殑鏈嶅姟绌洪棿" : y ? "搴旂敤鏈叧鑱旀湇鍔$┖闂达紝璇峰湪uniCloud鐩綍鍙抽敭鍏宠仈鏈嶅姟绌洪棿" : "uni-app cli椤圭洰鍐呬娇鐢╱niCloud闇�瑕佷娇鐢℉BuilderX鐨勮繍琛岃彍鍗曡繍琛岄」鐩紝涓旈渶瑕佸湪uniCloud鐩綍鍏宠仈鏈嶅姟绌洪棿", _t21.forEach(function (e) {fn[e] = function () {return console.error(_n13), Promise.reject(new B({ code: "SYS_ERR", message: _n13 }));};});}Object.assign(fn, { get mixinDatacom() {return cn(fn);} }), Zt(fn), fn.addInterceptor = S, fn.removeInterceptor = P, fn.interceptObject = b, d && "web" === g && (window.uniCloud = fn);})();var gn = fn;exports.default = gn;
-/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../../webpack/buildin/global.js */ 64), __webpack_require__(/*! @dcloudio/uni-mp-weixin/dist/mp.js */ 65)["default"]))
+/* WEBPACK VAR INJECTION */(function(global, wx) {Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;var _regenerator = _interopRequireDefault(__webpack_require__(/*! ./node_modules/@babel/runtime/regenerator */ 62));var _uniI18n = __webpack_require__(/*! @dcloudio/uni-i18n */ 65);var _pages = _interopRequireDefault(__webpack_require__(/*! @/pages.json */ 66));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {try {var info = gen[key](arg);var value = info.value;} catch (error) {reject(error);return;}if (info.done) {resolve(value);} else {Promise.resolve(value).then(_next, _throw);}}function _asyncToGenerator(fn) {return function () {var self = this,args = arguments;return new Promise(function (resolve, reject) {var gen = fn.apply(self, args);function _next(value) {asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);}function _throw(err) {asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);}_next(undefined);});};}function _toConsumableArray(arr) {return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();}function _nonIterableSpread() {throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}function _iterableToArray(iter) {if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter);}function _arrayWithoutHoles(arr) {if (Array.isArray(arr)) return _arrayLikeToArray(arr);}function _createForOfIteratorHelper(o, allowArrayLike) {var it;if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) {if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {if (it) o = it;var i = 0;var F = function F() {};return { s: F, n: function n() {if (i >= o.length) return { done: true };return { done: false, value: o[i++] };}, e: function e(_e32) {throw _e32;}, f: F };}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}var normalCompletion = true,didErr = false,err;return { s: function s() {it = o[Symbol.iterator]();}, n: function n() {var step = it.next();normalCompletion = step.done;return step;}, e: function e(_e33) {didErr = true;err = _e33;}, f: function f() {try {if (!normalCompletion && it.return != null) it.return();} finally {if (didErr) throw err;}} };}function _unsupportedIterableToArray(o, minLen) {if (!o) return;if (typeof o === "string") return _arrayLikeToArray(o, minLen);var n = Object.prototype.toString.call(o).slice(8, -1);if (n === "Object" && o.constructor) n = o.constructor.name;if (n === "Map" || n === "Set") return Array.from(o);if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);}function _arrayLikeToArray(arr, len) {if (len == null || len > arr.length) len = arr.length;for (var i = 0, arr2 = new Array(len); i < len; i++) {arr2[i] = arr[i];}return arr2;}function _defineProperties(target, props) {for (var i = 0; i < props.length; i++) {var descriptor = props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if ("value" in descriptor) descriptor.writable = true;Object.defineProperty(target, descriptor.key, descriptor);}}function _createClass(Constructor, protoProps, staticProps) {if (protoProps) _defineProperties(Constructor.prototype, protoProps);if (staticProps) _defineProperties(Constructor, staticProps);return Constructor;}function ownKeys(object, enumerableOnly) {var keys = Object.keys(object);if (Object.getOwnPropertySymbols) {var symbols = Object.getOwnPropertySymbols(object);if (enumerableOnly) symbols = symbols.filter(function (sym) {return Object.getOwnPropertyDescriptor(object, sym).enumerable;});keys.push.apply(keys, symbols);}return keys;}function _objectSpread(target) {for (var i = 1; i < arguments.length; i++) {var source = arguments[i] != null ? arguments[i] : {};if (i % 2) {ownKeys(Object(source), true).forEach(function (key) {_defineProperty(target, key, source[key]);});} else if (Object.getOwnPropertyDescriptors) {Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));} else {ownKeys(Object(source)).forEach(function (key) {Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));});}}return target;}function _defineProperty(obj, key, value) {if (key in obj) {Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true });} else {obj[key] = value;}return obj;}function _classCallCheck(instance, Constructor) {if (!(instance instanceof Constructor)) {throw new TypeError("Cannot call a class as a function");}}function _inherits(subClass, superClass) {if (typeof superClass !== "function" && superClass !== null) {throw new TypeError("Super expression must either be null or a function");}subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } });if (superClass) _setPrototypeOf(subClass, superClass);}function _createSuper(Derived) {var hasNativeReflectConstruct = _isNativeReflectConstruct();return function _createSuperInternal() {var Super = _getPrototypeOf(Derived),result;if (hasNativeReflectConstruct) {var NewTarget = _getPrototypeOf(this).constructor;result = Reflect.construct(Super, arguments, NewTarget);} else {result = Super.apply(this, arguments);}return _possibleConstructorReturn(this, result);};}function _possibleConstructorReturn(self, call) {if (call && (typeof call === "object" || typeof call === "function")) {return call;}return _assertThisInitialized(self);}function _assertThisInitialized(self) {if (self === void 0) {throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return self;}function _wrapNativeSuper(Class) {var _cache = typeof Map === "function" ? new Map() : undefined;_wrapNativeSuper = function _wrapNativeSuper(Class) {if (Class === null || !_isNativeFunction(Class)) return Class;if (typeof Class !== "function") {throw new TypeError("Super expression must either be null or a function");}if (typeof _cache !== "undefined") {if (_cache.has(Class)) return _cache.get(Class);_cache.set(Class, Wrapper);}function Wrapper() {return _construct(Class, arguments, _getPrototypeOf(this).constructor);}Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } });return _setPrototypeOf(Wrapper, Class);};return _wrapNativeSuper(Class);}function _construct(Parent, args, Class) {if (_isNativeReflectConstruct()) {_construct = Reflect.construct;} else {_construct = function _construct(Parent, args, Class) {var a = [null];a.push.apply(a, args);var Constructor = Function.bind.apply(Parent, a);var instance = new Constructor();if (Class) _setPrototypeOf(instance, Class.prototype);return instance;};}return _construct.apply(null, arguments);}function _isNativeReflectConstruct() {if (typeof Reflect === "undefined" || !Reflect.construct) return false;if (Reflect.construct.sham) return false;if (typeof Proxy === "function") return true;try {Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));return true;} catch (e) {return false;}}function _isNativeFunction(fn) {return Function.toString.call(fn).indexOf("[native code]") !== -1;}function _setPrototypeOf(o, p) {_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {o.__proto__ = p;return o;};return _setPrototypeOf(o, p);}function _getPrototypeOf(o) {_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {return o.__proto__ || Object.getPrototypeOf(o);};return _getPrototypeOf(o);}"undefined" != typeof globalThis ? globalThis : "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self && self;function n(e) {return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, "default") ? e.default : e;}function s(e, t, n) {return e(n = { path: t, exports: {}, require: function require(e, t) {return function () {throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs");}(null == t && n.path);} }, n.exports), n.exports;}var o = s(function (e, t) {var n;e.exports = (n = n || function (e, t) {var n = Object.create || function () {function e() {}return function (t) {var n;return e.prototype = t, n = new e(), e.prototype = null, n;};}(),s = {},o = s.lib = {},r = o.Base = { extend: function extend(e) {var t = n(this);return e && t.mixIn(e), t.hasOwnProperty("init") && this.init !== t.init || (t.init = function () {t.$super.init.apply(this, arguments);}), t.init.prototype = t, t.$super = this, t;}, create: function create() {var e = this.extend();return e.init.apply(e, arguments), e;}, init: function init() {}, mixIn: function mixIn(e) {for (var t in e) {e.hasOwnProperty(t) && (this[t] = e[t]);}e.hasOwnProperty("toString") && (this.toString = e.toString);}, clone: function clone() {return this.init.prototype.extend(this);} },i = o.WordArray = r.extend({ init: function init(e, n) {e = this.words = e || [], this.sigBytes = n != t ? n : 4 * e.length;}, toString: function toString(e) {return (e || c).stringify(this);}, concat: function concat(e) {var t = this.words,n = e.words,s = this.sigBytes,o = e.sigBytes;if (this.clamp(), s % 4) for (var r = 0; r < o; r++) {var i = n[r >>> 2] >>> 24 - r % 4 * 8 & 255;t[s + r >>> 2] |= i << 24 - (s + r) % 4 * 8;} else for (r = 0; r < o; r += 4) {t[s + r >>> 2] = n[r >>> 2];}return this.sigBytes += o, this;}, clamp: function clamp() {var t = this.words,n = this.sigBytes;t[n >>> 2] &= 4294967295 << 32 - n % 4 * 8, t.length = e.ceil(n / 4);}, clone: function clone() {var e = r.clone.call(this);return e.words = this.words.slice(0), e;}, random: function random(t) {for (var n, s = [], o = function o(t) {t = t;var n = 987654321,s = 4294967295;return function () {var o = ((n = 36969 * (65535 & n) + (n >> 16) & s) << 16) + (t = 18e3 * (65535 & t) + (t >> 16) & s) & s;return o /= 4294967296, (o += .5) * (e.random() > .5 ? 1 : -1);};}, r = 0; r < t; r += 4) {var a = o(4294967296 * (n || e.random()));n = 987654071 * a(), s.push(4294967296 * a() | 0);}return new i.init(s, t);} }),a = s.enc = {},c = a.Hex = { stringify: function stringify(e) {for (var t = e.words, n = e.sigBytes, s = [], o = 0; o < n; o++) {var r = t[o >>> 2] >>> 24 - o % 4 * 8 & 255;s.push((r >>> 4).toString(16)), s.push((15 & r).toString(16));}return s.join("");}, parse: function parse(e) {for (var t = e.length, n = [], s = 0; s < t; s += 2) {n[s >>> 3] |= parseInt(e.substr(s, 2), 16) << 24 - s % 8 * 4;}return new i.init(n, t / 2);} },u = a.Latin1 = { stringify: function stringify(e) {for (var t = e.words, n = e.sigBytes, s = [], o = 0; o < n; o++) {var r = t[o >>> 2] >>> 24 - o % 4 * 8 & 255;s.push(String.fromCharCode(r));}return s.join("");}, parse: function parse(e) {for (var t = e.length, n = [], s = 0; s < t; s++) {n[s >>> 2] |= (255 & e.charCodeAt(s)) << 24 - s % 4 * 8;}return new i.init(n, t);} },l = a.Utf8 = { stringify: function stringify(e) {try {return decodeURIComponent(escape(u.stringify(e)));} catch (e) {throw new Error("Malformed UTF-8 data");}}, parse: function parse(e) {return u.parse(unescape(encodeURIComponent(e)));} },h = o.BufferedBlockAlgorithm = r.extend({ reset: function reset() {this._data = new i.init(), this._nDataBytes = 0;}, _append: function _append(e) {"string" == typeof e && (e = l.parse(e)), this._data.concat(e), this._nDataBytes += e.sigBytes;}, _process: function _process(t) {var n = this._data,s = n.words,o = n.sigBytes,r = this.blockSize,a = o / (4 * r),c = (a = t ? e.ceil(a) : e.max((0 | a) - this._minBufferSize, 0)) * r,u = e.min(4 * c, o);if (c) {for (var l = 0; l < c; l += r) {this._doProcessBlock(s, l);}var h = s.splice(0, c);n.sigBytes -= u;}return new i.init(h, u);}, clone: function clone() {var e = r.clone.call(this);return e._data = this._data.clone(), e;}, _minBufferSize: 0 });o.Hasher = h.extend({ cfg: r.extend(), init: function init(e) {this.cfg = this.cfg.extend(e), this.reset();}, reset: function reset() {h.reset.call(this), this._doReset();}, update: function update(e) {return this._append(e), this._process(), this;}, finalize: function finalize(e) {return e && this._append(e), this._doFinalize();}, blockSize: 16, _createHelper: function _createHelper(e) {return function (t, n) {return new e.init(n).finalize(t);};}, _createHmacHelper: function _createHmacHelper(e) {return function (t, n) {return new d.HMAC.init(e, n).finalize(t);};} });var d = s.algo = {};return s;}(Math), n);}),r = (s(function (e, t) {var n;e.exports = (n = o, function (e) {var t = n,s = t.lib,o = s.WordArray,r = s.Hasher,i = t.algo,a = [];!function () {for (var t = 0; t < 64; t++) {a[t] = 4294967296 * e.abs(e.sin(t + 1)) | 0;}}();var c = i.MD5 = r.extend({ _doReset: function _doReset() {this._hash = new o.init([1732584193, 4023233417, 2562383102, 271733878]);}, _doProcessBlock: function _doProcessBlock(e, t) {for (var n = 0; n < 16; n++) {var s = t + n,o = e[s];e[s] = 16711935 & (o << 8 | o >>> 24) | 4278255360 & (o << 24 | o >>> 8);}var r = this._hash.words,i = e[t + 0],c = e[t + 1],f = e[t + 2],g = e[t + 3],p = e[t + 4],m = e[t + 5],y = e[t + 6],_ = e[t + 7],w = e[t + 8],k = e[t + 9],v = e[t + 10],T = e[t + 11],S = e[t + 12],P = e[t + 13],A = e[t + 14],I = e[t + 15],b = r[0],O = r[1],C = r[2],E = r[3];b = u(b, O, C, E, i, 7, a[0]), E = u(E, b, O, C, c, 12, a[1]), C = u(C, E, b, O, f, 17, a[2]), O = u(O, C, E, b, g, 22, a[3]), b = u(b, O, C, E, p, 7, a[4]), E = u(E, b, O, C, m, 12, a[5]), C = u(C, E, b, O, y, 17, a[6]), O = u(O, C, E, b, _, 22, a[7]), b = u(b, O, C, E, w, 7, a[8]), E = u(E, b, O, C, k, 12, a[9]), C = u(C, E, b, O, v, 17, a[10]), O = u(O, C, E, b, T, 22, a[11]), b = u(b, O, C, E, S, 7, a[12]), E = u(E, b, O, C, P, 12, a[13]), C = u(C, E, b, O, A, 17, a[14]), b = l(b, O = u(O, C, E, b, I, 22, a[15]), C, E, c, 5, a[16]), E = l(E, b, O, C, y, 9, a[17]), C = l(C, E, b, O, T, 14, a[18]), O = l(O, C, E, b, i, 20, a[19]), b = l(b, O, C, E, m, 5, a[20]), E = l(E, b, O, C, v, 9, a[21]), C = l(C, E, b, O, I, 14, a[22]), O = l(O, C, E, b, p, 20, a[23]), b = l(b, O, C, E, k, 5, a[24]), E = l(E, b, O, C, A, 9, a[25]), C = l(C, E, b, O, g, 14, a[26]), O = l(O, C, E, b, w, 20, a[27]), b = l(b, O, C, E, P, 5, a[28]), E = l(E, b, O, C, f, 9, a[29]), C = l(C, E, b, O, _, 14, a[30]), b = h(b, O = l(O, C, E, b, S, 20, a[31]), C, E, m, 4, a[32]), E = h(E, b, O, C, w, 11, a[33]), C = h(C, E, b, O, T, 16, a[34]), O = h(O, C, E, b, A, 23, a[35]), b = h(b, O, C, E, c, 4, a[36]), E = h(E, b, O, C, p, 11, a[37]), C = h(C, E, b, O, _, 16, a[38]), O = h(O, C, E, b, v, 23, a[39]), b = h(b, O, C, E, P, 4, a[40]), E = h(E, b, O, C, i, 11, a[41]), C = h(C, E, b, O, g, 16, a[42]), O = h(O, C, E, b, y, 23, a[43]), b = h(b, O, C, E, k, 4, a[44]), E = h(E, b, O, C, S, 11, a[45]), C = h(C, E, b, O, I, 16, a[46]), b = d(b, O = h(O, C, E, b, f, 23, a[47]), C, E, i, 6, a[48]), E = d(E, b, O, C, _, 10, a[49]), C = d(C, E, b, O, A, 15, a[50]), O = d(O, C, E, b, m, 21, a[51]), b = d(b, O, C, E, S, 6, a[52]), E = d(E, b, O, C, g, 10, a[53]), C = d(C, E, b, O, v, 15, a[54]), O = d(O, C, E, b, c, 21, a[55]), b = d(b, O, C, E, w, 6, a[56]), E = d(E, b, O, C, I, 10, a[57]), C = d(C, E, b, O, y, 15, a[58]), O = d(O, C, E, b, P, 21, a[59]), b = d(b, O, C, E, p, 6, a[60]), E = d(E, b, O, C, T, 10, a[61]), C = d(C, E, b, O, f, 15, a[62]), O = d(O, C, E, b, k, 21, a[63]), r[0] = r[0] + b | 0, r[1] = r[1] + O | 0, r[2] = r[2] + C | 0, r[3] = r[3] + E | 0;}, _doFinalize: function _doFinalize() {var t = this._data,n = t.words,s = 8 * this._nDataBytes,o = 8 * t.sigBytes;n[o >>> 5] |= 128 << 24 - o % 32;var r = e.floor(s / 4294967296),i = s;n[15 + (o + 64 >>> 9 << 4)] = 16711935 & (r << 8 | r >>> 24) | 4278255360 & (r << 24 | r >>> 8), n[14 + (o + 64 >>> 9 << 4)] = 16711935 & (i << 8 | i >>> 24) | 4278255360 & (i << 24 | i >>> 8), t.sigBytes = 4 * (n.length + 1), this._process();for (var a = this._hash, c = a.words, u = 0; u < 4; u++) {var l = c[u];c[u] = 16711935 & (l << 8 | l >>> 24) | 4278255360 & (l << 24 | l >>> 8);}return a;}, clone: function clone() {var e = r.clone.call(this);return e._hash = this._hash.clone(), e;} });function u(e, t, n, s, o, r, i) {var a = e + (t & n | ~t & s) + o + i;return (a << r | a >>> 32 - r) + t;}function l(e, t, n, s, o, r, i) {var a = e + (t & s | n & ~s) + o + i;return (a << r | a >>> 32 - r) + t;}function h(e, t, n, s, o, r, i) {var a = e + (t ^ n ^ s) + o + i;return (a << r | a >>> 32 - r) + t;}function d(e, t, n, s, o, r, i) {var a = e + (n ^ (t | ~s)) + o + i;return (a << r | a >>> 32 - r) + t;}t.MD5 = r._createHelper(c), t.HmacMD5 = r._createHmacHelper(c);}(Math), n.MD5);}), s(function (e, t) {var n, s, r;e.exports = (s = (n = o).lib.Base, r = n.enc.Utf8, void (n.algo.HMAC = s.extend({ init: function init(e, t) {e = this._hasher = new e.init(), "string" == typeof t && (t = r.parse(t));var n = e.blockSize,s = 4 * n;t.sigBytes > s && (t = e.finalize(t)), t.clamp();for (var o = this._oKey = t.clone(), i = this._iKey = t.clone(), a = o.words, c = i.words, u = 0; u < n; u++) {a[u] ^= 1549556828, c[u] ^= 909522486;}o.sigBytes = i.sigBytes = s, this.reset();}, reset: function reset() {var e = this._hasher;e.reset(), e.update(this._iKey);}, update: function update(e) {return this._hasher.update(e), this;}, finalize: function finalize(e) {var t = this._hasher,n = t.finalize(e);return t.reset(), t.finalize(this._oKey.clone().concat(n));} })));}), s(function (e, t) {e.exports = o.HmacMD5;}));var i = "FUNCTION",a = "OBJECT",c = "CLIENT_DB";function u(e) {return Object.prototype.toString.call(e).slice(8, -1).toLowerCase();}function l(e) {return "object" === u(e);}function h(e) {return e && "string" == typeof e ? JSON.parse(e) : e;}var d = "development" === "development",f = "app-plus";var g;switch (f) {case "h5":g = "web";break;case "app-plus":g = "app";break;default:g = f;}var p = h(undefined),m = h([]) || [],y = true;var _ = "";try {{var _e2 = __webpack_require__(/*! uni-stat-config */ 67).default || __webpack_require__(/*! uni-stat-config */ 67);_ = _e2.appid;}} catch (e) {}var w = {};function k(e) {var t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};var n, s;return n = w, s = e, Object.prototype.hasOwnProperty.call(n, s) || (w[e] = t), w[e];}"app" === g && (w = uni._globalUniCloudObj ? uni._globalUniCloudObj : uni._globalUniCloudObj = {});var v = ["invoke", "success", "fail", "complete"],T = k("_globalUniCloudInterceptor");function S(e, t) {T[e] || (T[e] = {}), l(t) && Object.keys(t).forEach(function (n) {v.indexOf(n) > -1 && function (e, t, n) {var s = T[e][t];s || (s = T[e][t] = []), -1 === s.indexOf(n) && "function" == typeof n && s.push(n);}(e, n, t[n]);});}function P(e, t) {T[e] || (T[e] = {}), l(t) ? Object.keys(t).forEach(function (n) {v.indexOf(n) > -1 && function (e, t, n) {var s = T[e][t];if (!s) return;var o = s.indexOf(n);o > -1 && s.splice(o, 1);}(e, n, t[n]);}) : delete T[e];}function A(e, t) {return e && 0 !== e.length ? e.reduce(function (e, n) {return e.then(function () {return n(t);});}, Promise.resolve()) : Promise.resolve();}function I(e, t) {return T[e] && T[e][t] || [];}function b(e) {S("callObject", e);}var O = k("_globalUniCloudListener"),C = "response",E = "needLogin",R = "refreshToken",U = "clientdb",x = "cloudfunction",L = "cloudobject";function D(e) {return O[e] || (O[e] = []), O[e];}function N(e, t) {var n = D(e);n.includes(t) || n.push(t);}function q(e, t) {var n = D(e),s = n.indexOf(t);-1 !== s && n.splice(s, 1);}function F(e, t) {var n = D(e);for (var _e3 = 0; _e3 < n.length; _e3++) {(0, n[_e3])(t);}}var M = !1;var j = new Promise(function (e) {M && e(), function t() {if ("function" == typeof getCurrentPages) {var _t2 = getCurrentPages();_t2 && _t2[0] && (M = !0, e());}M || setTimeout(function () {t();}, 30);}();});function $() {return j;}function K(e, t) {return t ? function (n) {var _this = this;var s = !1;if ("callFunction" === t) {var _e4 = n && n.type || i;s = _e4 !== i;}var o = "callFunction" === t && !s;var r;r = this.isReady ? Promise.resolve() : this.initUniCloud, n = n || {};var a = r.then(function () {return s ? Promise.resolve() : A(I(t, "invoke"), n);}).then(function () {return e.call(_this, n);}).then(function (e) {return s ? Promise.resolve(e) : A(I(t, "success"), e).then(function () {return A(I(t, "complete"), e);}).then(function () {return o && F(C, { type: x, content: e }), Promise.resolve(e);});}, function (e) {return s ? Promise.reject(e) : A(I(t, "fail"), e).then(function () {return A(I(t, "complete"), e);}).then(function () {return F(C, { type: x, content: e }), Promise.reject(e);});});if (!(n.success || n.fail || n.complete)) return a;a.then(function (e) {n.success && n.success(e), n.complete && n.complete(e), o && F(C, { type: x, content: e });}, function (e) {n.fail && n.fail(e), n.complete && n.complete(e), o && F(C, { type: x, content: e });});} : function (t) {if (!((t = t || {}).success || t.fail || t.complete)) return e.call(this, t);e.call(this, t).then(function (e) {t.success && t.success(e), t.complete && t.complete(e);}, function (e) {t.fail && t.fail(e), t.complete && t.complete(e);});};}var B = /*#__PURE__*/function (_Error) {_inherits(B, _Error);var _super = _createSuper(B);function B(e) {var _this2;_classCallCheck(this, B);_this2 = _super.call(this, e.message), _this2.errMsg = e.message || "", _this2.errCode = _this2.code = e.code || "SYSTEM_ERROR", _this2.requestId = e.requestId;return _this2;}return B;}( /*#__PURE__*/_wrapNativeSuper(Error));function H() {var e, t;try {if (uni.getLaunchOptionsSync) {if (uni.getLaunchOptionsSync.toString().indexOf("not yet implemented") > -1) return;var _uni$getLaunchOptions = uni.getLaunchOptionsSync(),_n = _uni$getLaunchOptions.scene,_s = _uni$getLaunchOptions.channel;e = _s, t = _n;}} catch (e) {}return { channel: e, scene: t };}var W;function z() {var e = uni.getLocale && uni.getLocale() || "en";if (W) return _objectSpread(_objectSpread({}, W), {}, { locale: e, LOCALE: e });var t = uni.getSystemInfoSync(),n = t.deviceId,s = t.osName,o = t.uniPlatform,r = t.appId,i = ["pixelRatio", "brand", "model", "system", "language", "version", "platform", "host", "SDKVersion", "swanNativeVersion", "app", "AppPlatform", "fontSizeSetting"];for (var _e5 = 0; _e5 < i.length; _e5++) {delete t[i[_e5]];}return W = _objectSpread(_objectSpread({ PLATFORM: o, OS: s, APPID: r, DEVICEID: n }, H()), t), _objectSpread(_objectSpread({}, W), {}, { locale: e, LOCALE: e });}var J = { sign: function sign(e, t) {var n = "";return Object.keys(e).sort().forEach(function (t) {e[t] && (n = n + "&" + t + "=" + e[t]);}), n = n.slice(1), r(n, t).toString();}, wrappedRequest: function wrappedRequest(e, t) {return new Promise(function (n, s) {t(Object.assign(e, { complete: function complete(e) {e || (e = {}), d && "web" === g && e.errMsg && 0 === e.errMsg.indexOf("request:fail") && console.warn("鍙戝竷H5锛岄渶瑕佸湪uniCloud鍚庡彴鎿嶄綔锛岀粦瀹氬畨鍏ㄥ煙鍚嶏紝鍚﹀垯浼氬洜涓鸿法鍩熼棶棰樿�屾棤娉曡闂�傛暀绋嬪弬鑰冿細https://uniapp.dcloud.io/uniCloud/quickstart?id=useinh5");var t = e.data && e.data.header && e.data.header["x-serverless-request-id"] || e.header && e.header["request-id"];if (!e.statusCode || e.statusCode >= 400) return s(new B({ code: "SYS_ERR", message: e.errMsg || "request:fail", requestId: t }));var o = e.data;if (o.error) return s(new B({ code: o.error.code, message: o.error.message, requestId: t }));o.result = o.data, o.requestId = t, delete o.data, n(o);} }));});} };var V = { request: function request(e) {return uni.request(e);}, uploadFile: function uploadFile(e) {return uni.uploadFile(e);}, setStorageSync: function setStorageSync(e, t) {return uni.setStorageSync(e, t);}, getStorageSync: function getStorageSync(e) {return uni.getStorageSync(e);}, removeStorageSync: function removeStorageSync(e) {return uni.removeStorageSync(e);}, clearStorageSync: function clearStorageSync() {return uni.clearStorageSync();} },Y = { "uniCloud.init.paramRequired": "{param} required", "uniCloud.uploadFile.fileError": "filePath should be instance of File" };var _e6 = (0, _uniI18n.initVueI18n)({ "zh-Hans": { "uniCloud.init.paramRequired": "缂哄皯鍙傛暟锛歿param}", "uniCloud.uploadFile.fileError": "filePath搴斾负File瀵硅薄" }, "zh-Hant": { "uniCloud.init.paramRequired": "缂哄皯鍙傛暟锛歿param}", "uniCloud.uploadFile.fileError": "filePath搴斾负File瀵硅薄" }, en: Y, fr: { "uniCloud.init.paramRequired": "{param} required", "uniCloud.uploadFile.fileError": "filePath should be instance of File" }, es: { "uniCloud.init.paramRequired": "{param} required", "uniCloud.uploadFile.fileError": "filePath should be instance of File" }, ja: Y }, "zh-Hans"),X = _e6.t;var G = /*#__PURE__*/function () {function G(e) {_classCallCheck(this, G);["spaceId", "clientSecret"].forEach(function (t) {if (!Object.prototype.hasOwnProperty.call(e, t)) throw new Error(X("uniCloud.init.paramRequired", { param: t }));}), this.config = Object.assign({}, { endpoint: "https://api.bspapp.com" }, e), this.config.provider = "aliyun", this.config.requestUrl = this.config.endpoint + "/client", this.config.envType = this.config.envType || "public", this.config.accessTokenKey = "access_token_" + this.config.spaceId, this.adapter = V, this._getAccessTokenPromise = null, this._getAccessTokenPromiseStatus = null;}_createClass(G, [{ key: "setAccessToken", value: function setAccessToken(e) {this.accessToken = e;} }, { key: "requestWrapped", value: function requestWrapped(e) {return J.wrappedRequest(e, this.adapter.request);} }, { key: "requestAuth", value: function requestAuth(e) {return this.requestWrapped(e);} }, { key: "request", value: function request(e, t) {var _this3 = this;return Promise.resolve().then(function () {return _this3.hasAccessToken ? t ? _this3.requestWrapped(e) : _this3.requestWrapped(e).catch(function (t) {return new Promise(function (e, n) {!t || "GATEWAY_INVALID_TOKEN" !== t.code && "InvalidParameter.InvalidToken" !== t.code ? n(t) : e();}).then(function () {return _this3.getAccessToken();}).then(function () {var t = _this3.rebuildRequest(e);return _this3.request(t, !0);});}) : _this3.getAccessToken().then(function () {var t = _this3.rebuildRequest(e);return _this3.request(t, !0);});});} }, { key: "rebuildRequest", value: function rebuildRequest(e) {var t = Object.assign({}, e);return t.data.token = this.accessToken, t.header["x-basement-token"] = this.accessToken, t.header["x-serverless-sign"] = J.sign(t.data, this.config.clientSecret), t;} }, { key: "setupRequest", value: function setupRequest(e, t) {var n = Object.assign({}, e, { spaceId: this.config.spaceId, timestamp: Date.now() }),s = { "Content-Type": "application/json" };return "auth" !== t && (n.token = this.accessToken, s["x-basement-token"] = this.accessToken), s["x-serverless-sign"] = J.sign(n, this.config.clientSecret), { url: this.config.requestUrl, method: "POST", data: n, dataType: "json", header: s };} }, { key: "getAccessToken", value: function getAccessToken() {var _this4 = this;if ("pending" === this._getAccessTokenPromiseStatus) return this._getAccessTokenPromise;this._getAccessTokenPromiseStatus = "pending";return this._getAccessTokenPromise = this.requestAuth(this.setupRequest({ method: "serverless.auth.user.anonymousAuthorize", params: "{}" }, "auth")).then(function (e) {return new Promise(function (t, n) {e.result && e.result.accessToken ? (_this4.setAccessToken(e.result.accessToken), _this4._getAccessTokenPromiseStatus = "fulfilled", t(_this4.accessToken)) : (_this4._getAccessTokenPromiseStatus = "rejected", n(new B({ code: "AUTH_FAILED", message: "鑾峰彇accessToken澶辫触" })));});}, function (e) {return _this4._getAccessTokenPromiseStatus = "rejected", Promise.reject(e);}), this._getAccessTokenPromise;} }, { key: "authorize", value: function authorize() {this.getAccessToken();} }, { key: "callFunction", value: function callFunction(e) {var t = { method: "serverless.function.runtime.invoke", params: JSON.stringify({ functionTarget: e.name, functionArgs: e.data || {} }) };return this.request(this.setupRequest(t));} }, { key: "getOSSUploadOptionsFromPath", value: function getOSSUploadOptionsFromPath(e) {var t = { method: "serverless.file.resource.generateProximalSign", params: JSON.stringify(e) };return this.request(this.setupRequest(t));} }, { key: "uploadFileToOSS", value: function uploadFileToOSS(_ref) {var _this5 = this;var e = _ref.url,t = _ref.formData,n = _ref.name,s = _ref.filePath,o = _ref.fileType,r = _ref.onUploadProgress;return new Promise(function (i, a) {var c = _this5.adapter.uploadFile({ url: e, formData: t, name: n, filePath: s, fileType: o, header: { "X-OSS-server-side-encrpytion": "AES256" }, success: function success(e) {e && e.statusCode < 400 ? i(e) : a(new B({ code: "UPLOAD_FAILED", message: "鏂囦欢涓婁紶澶辫触" }));}, fail: function fail(e) {a(new B({ code: e.code || "UPLOAD_FAILED", message: e.message || e.errMsg || "鏂囦欢涓婁紶澶辫触" }));} });"function" == typeof r && c && "function" == typeof c.onProgressUpdate && c.onProgressUpdate(function (e) {r({ loaded: e.totalBytesSent, total: e.totalBytesExpectedToSend });});});} }, { key: "reportOSSUpload", value: function reportOSSUpload(e) {var t = { method: "serverless.file.resource.report", params: JSON.stringify(e) };return this.request(this.setupRequest(t));} }, { key: "uploadFile", value: function uploadFile(_ref2) {var _this6 = this;var e = _ref2.filePath,t = _ref2.cloudPath,_ref2$fileType = _ref2.fileType,n = _ref2$fileType === void 0 ? "image" : _ref2$fileType,s = _ref2.onUploadProgress,o = _ref2.config;if ("string" !== u(t)) throw new B({ code: "INVALID_PARAM", message: "cloudPath蹇呴』涓哄瓧绗︿覆绫诲瀷" });if (!(t = t.trim())) throw new B({ code: "CLOUDPATH_REQUIRED", message: "cloudPath涓嶅彲涓虹┖" });if (/:\/\//.test(t)) throw new B({ code: "INVALID_PARAM", message: "cloudPath涓嶅悎娉�" });var r = o && o.envType || this.config.envType;var i, a;return this.getOSSUploadOptionsFromPath({ env: r, filename: t }).then(function (t) {var o = t.result;i = o.id, a = "https://" + o.cdnDomain + "/" + o.ossPath;var r = { url: "https://" + o.host, formData: { "Cache-Control": "max-age=2592000", "Content-Disposition": "attachment", OSSAccessKeyId: o.accessKeyId, Signature: o.signature, host: o.host, id: i, key: o.ossPath, policy: o.policy, success_action_status: 200 }, fileName: "file", name: "file", filePath: e, fileType: n };return _this6.uploadFileToOSS(Object.assign({}, r, { onUploadProgress: s }));}).then(function () {return _this6.reportOSSUpload({ id: i });}).then(function (t) {return new Promise(function (n, s) {t.success ? n({ success: !0, filePath: e, fileID: a }) : s(new B({ code: "UPLOAD_FAILED", message: "鏂囦欢涓婁紶澶辫触" }));});});} }, { key: "deleteFile", value: function deleteFile(_ref3) {var e = _ref3.fileList;var t = { method: "serverless.file.resource.delete", params: JSON.stringify({ id: e[0] }) };return this.request(this.setupRequest(t));} }, { key: "getTempFileURL", value: function getTempFileURL() {var _ref4 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},e = _ref4.fileList;return new Promise(function (t, n) {Array.isArray(e) && 0 !== e.length || n(new B({ code: "INVALID_PARAM", message: "fileList鐨勫厓绱犲繀椤绘槸闈炵┖鐨勫瓧绗︿覆" })), t({ fileList: e.map(function (e) {return { fileID: e, tempFileURL: e };}) });});} }, { key: "hasAccessToken", get: function get() {return !!this.accessToken;} }]);return G;}();var Q = { init: function init(e) {var t = new G(e),n = { signInAnonymously: function signInAnonymously() {return t.authorize();}, getLoginState: function getLoginState() {return Promise.resolve(!1);} };return t.auth = function () {return n;}, t.customAuth = t.auth, t;} };var Z = "undefined" != typeof location && "http:" === location.protocol ? "http:" : "https:";var ee;!function (e) {e.local = "local", e.none = "none", e.session = "session";}(ee || (ee = {}));var te = function te() {};var ne = function ne() {var e;if (!Promise) {e = function e() {}, e.promise = {};var _t3 = function _t3() {throw new B({ message: 'Your Node runtime does support ES6 Promises. Set "global.Promise" to your preferred implementation of promises.' });};return Object.defineProperty(e.promise, "then", { get: _t3 }), Object.defineProperty(e.promise, "catch", { get: _t3 }), e;}var t = new Promise(function (t, n) {e = function e(_e7, s) {return _e7 ? n(_e7) : t(s);};});return e.promise = t, e;};function se(e) {return void 0 === e;}function oe(e) {return "[object Null]" === Object.prototype.toString.call(e);}var re;function ie(e) {var t = (n = e, "[object Array]" === Object.prototype.toString.call(n) ? e : [e]);var n;var _iterator = _createForOfIteratorHelper(t),_step;try {for (_iterator.s(); !(_step = _iterator.n()).done;) {var _e8 = _step.value;var _t4 = _e8.isMatch,_n2 = _e8.genAdapter,_s2 = _e8.runtime;if (_t4()) return { adapter: _n2(), runtime: _s2 };}} catch (err) {_iterator.e(err);} finally {_iterator.f();}}!function (e) {e.WEB = "web", e.WX_MP = "wx_mp";}(re || (re = {}));var ae = { adapter: null, runtime: void 0 },ce = ["anonymousUuidKey"];var ue = /*#__PURE__*/function (_te) {_inherits(ue, _te);var _super2 = _createSuper(ue);function ue() {var _this7;_classCallCheck(this, ue);_this7 = _super2.call(this), ae.adapter.root.tcbObject || (ae.adapter.root.tcbObject = {});return _this7;}_createClass(ue, [{ key: "setItem", value: function setItem(e, t) {ae.adapter.root.tcbObject[e] = t;} }, { key: "getItem", value: function getItem(e) {return ae.adapter.root.tcbObject[e];} }, { key: "removeItem", value: function removeItem(e) {delete ae.adapter.root.tcbObject[e];} }, { key: "clear", value: function clear() {delete ae.adapter.root.tcbObject;} }]);return ue;}(te);function le(e, t) {switch (e) {case "local":return t.localStorage || new ue();case "none":return new ue();default:return t.sessionStorage || new ue();}}var he = /*#__PURE__*/function () {function he(e) {_classCallCheck(this, he);if (!this._storage) {this._persistence = ae.adapter.primaryStorage || e.persistence, this._storage = le(this._persistence, ae.adapter);var _t5 = "access_token_".concat(e.env),_n3 = "access_token_expire_".concat(e.env),_s3 = "refresh_token_".concat(e.env),_o = "anonymous_uuid_".concat(e.env),_r = "login_type_".concat(e.env),_i = "user_info_".concat(e.env);this.keys = { accessTokenKey: _t5, accessTokenExpireKey: _n3, refreshTokenKey: _s3, anonymousUuidKey: _o, loginTypeKey: _r, userInfoKey: _i };}}_createClass(he, [{ key: "updatePersistence", value: function updatePersistence(e) {if (e === this._persistence) return;var t = "local" === this._persistence;this._persistence = e;var n = le(e, ae.adapter);for (var _e9 in this.keys) {var _s4 = this.keys[_e9];if (t && ce.includes(_e9)) continue;var _o2 = this._storage.getItem(_s4);se(_o2) || oe(_o2) || (n.setItem(_s4, _o2), this._storage.removeItem(_s4));}this._storage = n;} }, { key: "setStore", value: function setStore(e, t, n) {if (!this._storage) return;var s = { version: n || "localCachev1", content: t },o = JSON.stringify(s);try {this._storage.setItem(e, o);} catch (e) {throw e;}} }, { key: "getStore", value: function getStore(e, t) {try {if (!this._storage) return;} catch (e) {return "";}t = t || "localCachev1";var n = this._storage.getItem(e);if (!n) return "";if (n.indexOf(t) >= 0) {return JSON.parse(n).content;}return "";} }, { key: "removeStore", value: function removeStore(e) {this._storage.removeItem(e);} }]);return he;}();var de = {},fe = {};function ge(e) {return de[e];}var pe = function pe(e, t) {_classCallCheck(this, pe);this.data = t || null, this.name = e;};var me = /*#__PURE__*/function (_pe) {_inherits(me, _pe);var _super3 = _createSuper(me);function me(e, t) {var _this8;_classCallCheck(this, me);_this8 = _super3.call(this, "error", { error: e, data: t }), _this8.error = e;return _this8;}return me;}(pe);var ye = new ( /*#__PURE__*/function () {function _class() {_classCallCheck(this, _class);this._listeners = {};}_createClass(_class, [{ key: "on", value: function on(e, t) {return function (e, t, n) {n[e] = n[e] || [], n[e].push(t);}(e, t, this._listeners), this;} }, { key: "off", value: function off(e, t) {return function (e, t, n) {if (n && n[e]) {var _s5 = n[e].indexOf(t);-1 !== _s5 && n[e].splice(_s5, 1);}}(e, t, this._listeners), this;} }, { key: "fire", value: function fire(e, t) {if (e instanceof me) return console.error(e.error), this;var n = "string" == typeof e ? new pe(e, t || {}) : e;var s = n.name;if (this._listens(s)) {n.target = this;var _e10 = this._listeners[s] ? _toConsumableArray(this._listeners[s]) : [];var _iterator2 = _createForOfIteratorHelper(_e10),_step2;try {for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {var _t6 = _step2.value;_t6.call(this, n);}} catch (err) {_iterator2.e(err);} finally {_iterator2.f();}}return this;} }, { key: "_listens", value: function _listens(e) {return this._listeners[e] && this._listeners[e].length > 0;} }]);return _class;}())();function _e(e, t) {ye.on(e, t);}function we(e) {var t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};ye.fire(e, t);}function ke(e, t) {ye.off(e, t);}var ve = "loginStateChanged",Te = "loginStateExpire",Se = "loginTypeChanged",Pe = "anonymousConverted",Ae = "refreshAccessToken";var Ie;!function (e) {e.ANONYMOUS = "ANONYMOUS", e.WECHAT = "WECHAT", e.WECHAT_PUBLIC = "WECHAT-PUBLIC", e.WECHAT_OPEN = "WECHAT-OPEN", e.CUSTOM = "CUSTOM", e.EMAIL = "EMAIL", e.USERNAME = "USERNAME", e.NULL = "NULL";}(Ie || (Ie = {}));var be = ["auth.getJwt", "auth.logout", "auth.signInWithTicket", "auth.signInAnonymously", "auth.signIn", "auth.fetchAccessTokenWithRefreshToken", "auth.signUpWithEmailAndPassword", "auth.activateEndUserMail", "auth.sendPasswordResetEmail", "auth.resetPasswordWithToken", "auth.isUsernameRegistered"],Oe = { "X-SDK-Version": "1.3.5" };function Ce(e, t, n) {var s = e[t];e[t] = function (t) {var o = {},r = {};n.forEach(function (n) {var _n$call = n.call(e, t),s = _n$call.data,i = _n$call.headers;Object.assign(o, s), Object.assign(r, i);});var i = t.data;return i && function () {var e;if (e = i, "[object FormData]" !== Object.prototype.toString.call(e)) t.data = _objectSpread(_objectSpread({}, i), o);else for (var _e11 in o) {i.append(_e11, o[_e11]);}}(), t.headers = _objectSpread(_objectSpread({}, t.headers || {}), r), s.call(e, t);};}function Ee() {var e = Math.random().toString(16).slice(2);return { data: { seqId: e }, headers: _objectSpread(_objectSpread({}, Oe), {}, { "x-seqid": e }) };}var Re = /*#__PURE__*/function () {function Re() {var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};_classCallCheck(this, Re);var t;this.config = e, this._reqClass = new ae.adapter.reqClass({ timeout: this.config.timeout, timeoutMsg: "\u8BF7\u6C42\u5728".concat(this.config.timeout / 1e3, "s\u5185\u672A\u5B8C\u6210\uFF0C\u5DF2\u4E2D\u65AD"), restrictedMethods: ["post"] }), this._cache = ge(this.config.env), this._localCache = (t = this.config.env, fe[t]), Ce(this._reqClass, "post", [Ee]), Ce(this._reqClass, "upload", [Ee]), Ce(this._reqClass, "download", [Ee]);}_createClass(Re, [{ key: "post", value: function () {var _post = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee(e) {return _regenerator.default.wrap(function _callee$(_context) {while (1) {switch (_context.prev = _context.next) {case 0:_context.next = 2;return this._reqClass.post(e);case 2:return _context.abrupt("return", _context.sent);case 3:case "end":return _context.stop();}}}, _callee, this);}));function post(_x) {return _post.apply(this, arguments);}return post;}() }, { key: "upload", value: function () {var _upload = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee2(e) {return _regenerator.default.wrap(function _callee2$(_context2) {while (1) {switch (_context2.prev = _context2.next) {case 0:_context2.next = 2;return this._reqClass.upload(e);case 2:return _context2.abrupt("return", _context2.sent);case 3:case "end":return _context2.stop();}}}, _callee2, this);}));function upload(_x2) {return _upload.apply(this, arguments);}return upload;}() }, { key: "download", value: function () {var _download = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee3(e) {return _regenerator.default.wrap(function _callee3$(_context3) {while (1) {switch (_context3.prev = _context3.next) {case 0:_context3.next = 2;return this._reqClass.download(e);case 2:return _context3.abrupt("return", _context3.sent);case 3:case "end":return _context3.stop();}}}, _callee3, this);}));function download(_x3) {return _download.apply(this, arguments);}return download;}() }, { key: "refreshAccessToken", value: function () {var _refreshAccessToken2 = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee4() {var e, t;return _regenerator.default.wrap(function _callee4$(_context4) {while (1) {switch (_context4.prev = _context4.next) {case 0:this._refreshAccessTokenPromise || (this._refreshAccessTokenPromise = this._refreshAccessToken());_context4.prev = 1;_context4.next = 4;return this._refreshAccessTokenPromise;case 4:e = _context4.sent;_context4.next = 10;break;case 7:_context4.prev = 7;_context4.t0 = _context4["catch"](1);t = _context4.t0;case 10:if (!(this._refreshAccessTokenPromise = null, this._shouldRefreshAccessTokenHook = null, t)) {_context4.next = 12;break;}throw t;case 12:return _context4.abrupt("return", e);case 13:case "end":return _context4.stop();}}}, _callee4, this, [[1, 7]]);}));function refreshAccessToken() {return _refreshAccessToken2.apply(this, arguments);}return refreshAccessToken;}() }, { key: "_refreshAccessToken", value: function () {var _refreshAccessToken3 = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee5() {var _this$_cache$keys, e, t, n, s, o, r, i, a, _e12, _e13, _t7, _s6;return _regenerator.default.wrap(function _callee5$(_context5) {while (1) {switch (_context5.prev = _context5.next) {case 0:_this$_cache$keys = this._cache.keys, e = _this$_cache$keys.accessTokenKey, t = _this$_cache$keys.accessTokenExpireKey, n = _this$_cache$keys.refreshTokenKey, s = _this$_cache$keys.loginTypeKey, o = _this$_cache$keys.anonymousUuidKey;this._cache.removeStore(e), this._cache.removeStore(t);r = this._cache.getStore(n);if (r) {_context5.next = 5;break;}throw new B({ message: "鏈櫥褰旵loudBase" });case 5:i = { refresh_token: r };_context5.next = 8;return this.request("auth.fetchAccessTokenWithRefreshToken", i);case 8:a = _context5.sent;if (!a.data.code) {_context5.next = 21;break;}_e12 = a.data.code;if (!("SIGN_PARAM_INVALID" === _e12 || "REFRESH_TOKEN_EXPIRED" === _e12 || "INVALID_REFRESH_TOKEN" === _e12)) {_context5.next = 20;break;}if (!(this._cache.getStore(s) === Ie.ANONYMOUS && "INVALID_REFRESH_TOKEN" === _e12)) {_context5.next = 19;break;}_e13 = this._cache.getStore(o);_t7 = this._cache.getStore(n);_context5.next = 17;return this.send("auth.signInAnonymously", { anonymous_uuid: _e13, refresh_token: _t7 });case 17:_s6 = _context5.sent;return _context5.abrupt("return", (this.setRefreshToken(_s6.refresh_token), this._refreshAccessToken()));case 19:we(Te), this._cache.removeStore(n);case 20:throw new B({ code: a.data.code, message: "\u5237\u65B0access token\u5931\u8D25\uFF1A".concat(a.data.code) });case 21:if (!a.data.access_token) {_context5.next = 23;break;}return _context5.abrupt("return", (we(Ae), this._cache.setStore(e, a.data.access_token), this._cache.setStore(t, a.data.access_token_expire + Date.now()), { accessToken: a.data.access_token, accessTokenExpire: a.data.access_token_expire }));case 23:a.data.refresh_token && (this._cache.removeStore(n), this._cache.setStore(n, a.data.refresh_token), this._refreshAccessToken());case 24:case "end":return _context5.stop();}}}, _callee5, this);}));function _refreshAccessToken() {return _refreshAccessToken3.apply(this, arguments);}return _refreshAccessToken;}() }, { key: "getAccessToken", value: function () {var _getAccessToken = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee6() {var _this$_cache$keys2, e, t, n, s, o, r;return _regenerator.default.wrap(function _callee6$(_context6) {while (1) {switch (_context6.prev = _context6.next) {case 0:_this$_cache$keys2 = this._cache.keys, e = _this$_cache$keys2.accessTokenKey, t = _this$_cache$keys2.accessTokenExpireKey, n = _this$_cache$keys2.refreshTokenKey;if (this._cache.getStore(n)) {_context6.next = 3;break;}throw new B({ message: "refresh token涓嶅瓨鍦紝鐧诲綍鐘舵�佸紓甯�" });case 3:s = this._cache.getStore(e), o = this._cache.getStore(t), r = !0;_context6.t0 = this._shouldRefreshAccessTokenHook;if (!_context6.t0) {_context6.next = 9;break;}_context6.next = 8;return this._shouldRefreshAccessTokenHook(s, o);case 8:_context6.t0 = !_context6.sent;case 9:_context6.t1 = _context6.t0;if (!_context6.t1) {_context6.next = 12;break;}r = !1;case 12:return _context6.abrupt("return", (!s || !o || o < Date.now()) && r ? this.refreshAccessToken() : { accessToken: s, accessTokenExpire: o });case 13:case "end":return _context6.stop();}}}, _callee6, this);}));function getAccessToken() {return _getAccessToken.apply(this, arguments);}return getAccessToken;}() }, { key: "request", value: function () {var _request = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee7(e, t, n) {var s, o, r, _e14, i, _e15, _e16, a, c, u, l, h, d, f, g, p;return _regenerator.default.wrap(function _callee7$(_context7) {while (1) {switch (_context7.prev = _context7.next) {case 0:s = "x-tcb-trace_".concat(this.config.env);o = "application/x-www-form-urlencoded";r = _objectSpread({ action: e, env: this.config.env, dataVersion: "2019-08-16" }, t);if (!(-1 === be.indexOf(e))) {_context7.next = 10;break;}_e14 = this._cache.keys.refreshTokenKey;_context7.t0 = this._cache.getStore(_e14);if (!_context7.t0) {_context7.next = 10;break;}_context7.next = 9;return this.getAccessToken();case 9:r.access_token = _context7.sent.accessToken;case 10:if ("storage.uploadFile" === e) {i = new FormData();for (_e15 in i) {i.hasOwnProperty(_e15) && void 0 !== i[_e15] && i.append(_e15, r[_e15]);}o = "multipart/form-data";} else {o = "application/json", i = {};for (_e16 in r) {void 0 !== r[_e16] && (i[_e16] = r[_e16]);}}a = { headers: { "content-type": o } };n && n.onUploadProgress && (a.onUploadProgress = n.onUploadProgress);c = this._localCache.getStore(s);c && (a.headers["X-TCB-Trace"] = c);u = t.parse, l = t.inQuery, h = t.search;d = { env: this.config.env };u && (d.parse = !0), l && (d = _objectSpread(_objectSpread({}, l), d));f = function (e, t) {var n = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};var s = /\?/.test(t);var o = "";for (var _e17 in n) {"" === o ? !s && (t += "?") : o += "&", o += "".concat(_e17, "=").concat(encodeURIComponent(n[_e17]));}return /^http(s)?\:\/\//.test(t += o) ? t : "".concat(e).concat(t);}(Z, "//tcb-api.tencentcloudapi.com/web", d);h && (f += h);_context7.next = 22;return this.post(_objectSpread({ url: f, data: i }, a));case 22:g = _context7.sent;p = g.header && g.header["x-tcb-trace"];if (!(p && this._localCache.setStore(s, p), 200 !== Number(g.status) && 200 !== Number(g.statusCode) || !g.data)) {_context7.next = 26;break;}throw new B({ code: "NETWORK_ERROR", message: "network request error" });case 26:return _context7.abrupt("return", g);case 27:case "end":return _context7.stop();}}}, _callee7, this);}));function request(_x4, _x5, _x6) {return _request.apply(this, arguments);}return request;}() }, { key: "send", value: function () {var _send = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee8(e) {var t,n,_n4,_args8 = arguments;return _regenerator.default.wrap(function _callee8$(_context8) {while (1) {switch (_context8.prev = _context8.next) {case 0:t = _args8.length > 1 && _args8[1] !== undefined ? _args8[1] : {};_context8.next = 3;return this.request(e, t, { onUploadProgress: t.onUploadProgress });case 3:n = _context8.sent;if (!("ACCESS_TOKEN_EXPIRED" === n.data.code && -1 === be.indexOf(e))) {_context8.next = 13;break;}_context8.next = 7;return this.refreshAccessToken();case 7:_context8.next = 9;return this.request(e, t, { onUploadProgress: t.onUploadProgress });case 9:_n4 = _context8.sent;if (!_n4.data.code) {_context8.next = 12;break;}throw new B({ code: _n4.data.code, message: _n4.data.message });case 12:return _context8.abrupt("return", _n4.data);case 13:if (!n.data.code) {_context8.next = 15;break;}throw new B({ code: n.data.code, message: n.data.message });case 15:return _context8.abrupt("return", n.data);case 16:case "end":return _context8.stop();}}}, _callee8, this);}));function send(_x7) {return _send.apply(this, arguments);}return send;}() }, { key: "setRefreshToken", value: function setRefreshToken(e) {var _this$_cache$keys3 = this._cache.keys,t = _this$_cache$keys3.accessTokenKey,n = _this$_cache$keys3.accessTokenExpireKey,s = _this$_cache$keys3.refreshTokenKey;this._cache.removeStore(t), this._cache.removeStore(n), this._cache.setStore(s, e);} }]);return Re;}();var Ue = {};function xe(e) {return Ue[e];}var Le = /*#__PURE__*/function () {function Le(e) {_classCallCheck(this, Le);this.config = e, this._cache = ge(e.env), this._request = xe(e.env);}_createClass(Le, [{ key: "setRefreshToken", value: function setRefreshToken(e) {var _this$_cache$keys4 = this._cache.keys,t = _this$_cache$keys4.accessTokenKey,n = _this$_cache$keys4.accessTokenExpireKey,s = _this$_cache$keys4.refreshTokenKey;this._cache.removeStore(t), this._cache.removeStore(n), this._cache.setStore(s, e);} }, { key: "setAccessToken", value: function setAccessToken(e, t) {var _this$_cache$keys5 = this._cache.keys,n = _this$_cache$keys5.accessTokenKey,s = _this$_cache$keys5.accessTokenExpireKey;this._cache.setStore(n, e), this._cache.setStore(s, t);} }, { key: "refreshUserInfo", value: function () {var _refreshUserInfo = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee9() {var _yield$this$_request$, e;return _regenerator.default.wrap(function _callee9$(_context9) {while (1) {switch (_context9.prev = _context9.next) {case 0:_context9.next = 2;return this._request.send("auth.getUserInfo", {});case 2:_yield$this$_request$ = _context9.sent;e = _yield$this$_request$.data;return _context9.abrupt("return", (this.setLocalUserInfo(e), e));case 5:case "end":return _context9.stop();}}}, _callee9, this);}));function refreshUserInfo() {return _refreshUserInfo.apply(this, arguments);}return refreshUserInfo;}() }, { key: "setLocalUserInfo", value: function setLocalUserInfo(e) {var t = this._cache.keys.userInfoKey;this._cache.setStore(t, e);} }]);return Le;}();var De = /*#__PURE__*/function () {function De(e) {_classCallCheck(this, De);if (!e) throw new B({ code: "PARAM_ERROR", message: "envId is not defined" });this._envId = e, this._cache = ge(this._envId), this._request = xe(this._envId), this.setUserInfo();}_createClass(De, [{ key: "linkWithTicket", value: function linkWithTicket(e) {if ("string" != typeof e) throw new B({ code: "PARAM_ERROR", message: "ticket must be string" });return this._request.send("auth.linkWithTicket", { ticket: e });} }, { key: "linkWithRedirect", value: function linkWithRedirect(e) {e.signInWithRedirect();} }, { key: "updatePassword", value: function updatePassword(e, t) {return this._request.send("auth.updatePassword", { oldPassword: t, newPassword: e });} }, { key: "updateEmail", value: function updateEmail(e) {return this._request.send("auth.updateEmail", { newEmail: e });} }, { key: "updateUsername", value: function updateUsername(e) {if ("string" != typeof e) throw new B({ code: "PARAM_ERROR", message: "username must be a string" });return this._request.send("auth.updateUsername", { username: e });} }, { key: "getLinkedUidList", value: function () {var _getLinkedUidList = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee10() {var _yield$this$_request$2, e, t, n;return _regenerator.default.wrap(function _callee10$(_context10) {while (1) {switch (_context10.prev = _context10.next) {case 0:_context10.next = 2;return this._request.send("auth.getLinkedUidList", {});case 2:_yield$this$_request$2 = _context10.sent;e = _yield$this$_request$2.data;t = !1;n = e.users;return _context10.abrupt("return", (n.forEach(function (e) {e.wxOpenId && e.wxPublicId && (t = !0);}), { users: n, hasPrimaryUid: t }));case 7:case "end":return _context10.stop();}}}, _callee10, this);}));function getLinkedUidList() {return _getLinkedUidList.apply(this, arguments);}return getLinkedUidList;}() }, { key: "setPrimaryUid", value: function setPrimaryUid(e) {return this._request.send("auth.setPrimaryUid", { uid: e });} }, { key: "unlink", value: function unlink(e) {return this._request.send("auth.unlink", { platform: e });} }, { key: "update", value: function () {var _update = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee11(e) {var t, n, s, o, r, i, _yield$this$_request$3, a;return _regenerator.default.wrap(function _callee11$(_context11) {while (1) {switch (_context11.prev = _context11.next) {case 0:t = e.nickName;n = e.gender;s = e.avatarUrl;o = e.province;r = e.country;i = e.city;_context11.next = 8;return this._request.send("auth.updateUserInfo", { nickName: t, gender: n, avatarUrl: s, province: o, country: r, city: i });case 8:_yield$this$_request$3 = _context11.sent;a = _yield$this$_request$3.data;this.setLocalUserInfo(a);case 11:case "end":return _context11.stop();}}}, _callee11, this);}));function update(_x8) {return _update.apply(this, arguments);}return update;}() }, { key: "refresh", value: function () {var _refresh = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee12() {var _yield$this$_request$4, e;return _regenerator.default.wrap(function _callee12$(_context12) {while (1) {switch (_context12.prev = _context12.next) {case 0:_context12.next = 2;return this._request.send("auth.getUserInfo", {});case 2:_yield$this$_request$4 = _context12.sent;e = _yield$this$_request$4.data;return _context12.abrupt("return", (this.setLocalUserInfo(e), e));case 5:case "end":return _context12.stop();}}}, _callee12, this);}));function refresh() {return _refresh.apply(this, arguments);}return refresh;}() }, { key: "setUserInfo", value: function setUserInfo() {var _this9 = this;var e = this._cache.keys.userInfoKey,t = this._cache.getStore(e);["uid", "loginType", "openid", "wxOpenId", "wxPublicId", "unionId", "qqMiniOpenId", "email", "hasPassword", "customUserId", "nickName", "gender", "avatarUrl"].forEach(function (e) {_this9[e] = t[e];}), this.location = { country: t.country, province: t.province, city: t.city };} }, { key: "setLocalUserInfo", value: function setLocalUserInfo(e) {var t = this._cache.keys.userInfoKey;this._cache.setStore(t, e), this.setUserInfo();} }]);return De;}();var Ne = /*#__PURE__*/function () {function Ne(e) {_classCallCheck(this, Ne);if (!e) throw new B({ code: "PARAM_ERROR", message: "envId is not defined" });this._cache = ge(e);var _this$_cache$keys6 = this._cache.keys,t = _this$_cache$keys6.refreshTokenKey,n = _this$_cache$keys6.accessTokenKey,s = _this$_cache$keys6.accessTokenExpireKey,o = this._cache.getStore(t),r = this._cache.getStore(n),i = this._cache.getStore(s);this.credential = { refreshToken: o, accessToken: r, accessTokenExpire: i }, this.user = new De(e);}_createClass(Ne, [{ key: "isAnonymousAuth", get: function get() {return this.loginType === Ie.ANONYMOUS;} }, { key: "isCustomAuth", get: function get() {return this.loginType === Ie.CUSTOM;} }, { key: "isWeixinAuth", get: function get() {return this.loginType === Ie.WECHAT || this.loginType === Ie.WECHAT_OPEN || this.loginType === Ie.WECHAT_PUBLIC;} }, { key: "loginType", get: function get() {return this._cache.getStore(this._cache.keys.loginTypeKey);} }]);return Ne;}();var qe = /*#__PURE__*/function (_Le) {_inherits(qe, _Le);var _super4 = _createSuper(qe);function qe() {_classCallCheck(this, qe);return _super4.apply(this, arguments);}_createClass(qe, [{ key: "signIn", value: function () {var _signIn = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee13() {var _this$_cache$keys7, e, t, n, s, o, _e18;return _regenerator.default.wrap(function _callee13$(_context13) {while (1) {switch (_context13.prev = _context13.next) {case 0:this._cache.updatePersistence("local");_this$_cache$keys7 = this._cache.keys;e = _this$_cache$keys7.anonymousUuidKey;t = _this$_cache$keys7.refreshTokenKey;n = this._cache.getStore(e) || void 0;s = this._cache.getStore(t) || void 0;_context13.next = 8;return this._request.send("auth.signInAnonymously", { anonymous_uuid: n, refresh_token: s });case 8:o = _context13.sent;if (!(o.uuid && o.refresh_token)) {_context13.next = 20;break;}this._setAnonymousUUID(o.uuid);this.setRefreshToken(o.refresh_token);_context13.next = 14;return this._request.refreshAccessToken();case 14:we(ve);we(Se, { env: this.config.env, loginType: Ie.ANONYMOUS, persistence: "local" });_e18 = new Ne(this.config.env);_context13.next = 19;return _e18.user.refresh();case 19:return _context13.abrupt("return", _e18);case 20:throw new B({ message: "鍖垮悕鐧诲綍澶辫触" });case 21:case "end":return _context13.stop();}}}, _callee13, this);}));function signIn() {return _signIn.apply(this, arguments);}return signIn;}() }, { key: "linkAndRetrieveDataWithTicket", value: function () {var _linkAndRetrieveDataWithTicket = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee14(e) {var _this$_cache$keys8, t, n, s, o, r;return _regenerator.default.wrap(function _callee14$(_context14) {while (1) {switch (_context14.prev = _context14.next) {case 0:_this$_cache$keys8 = this._cache.keys;t = _this$_cache$keys8.anonymousUuidKey;n = _this$_cache$keys8.refreshTokenKey;s = this._cache.getStore(t);o = this._cache.getStore(n);_context14.next = 7;return this._request.send("auth.linkAndRetrieveDataWithTicket", { anonymous_uuid: s, refresh_token: o, ticket: e });case 7:r = _context14.sent;if (!r.refresh_token) {_context14.next = 16;break;}this._clearAnonymousUUID();this.setRefreshToken(r.refresh_token);_context14.next = 13;return this._request.refreshAccessToken();case 13:we(Pe, { env: this.config.env });we(Se, { loginType: Ie.CUSTOM, persistence: "local" });return _context14.abrupt("return", { credential: { refreshToken: r.refresh_token } });case 16:throw new B({ message: "鍖垮悕杞寲澶辫触" });case 17:case "end":return _context14.stop();}}}, _callee14, this);}));function linkAndRetrieveDataWithTicket(_x9) {return _linkAndRetrieveDataWithTicket.apply(this, arguments);}return linkAndRetrieveDataWithTicket;}() }, { key: "_setAnonymousUUID", value: function _setAnonymousUUID(e) {var _this$_cache$keys9 = this._cache.keys,t = _this$_cache$keys9.anonymousUuidKey,n = _this$_cache$keys9.loginTypeKey;this._cache.removeStore(t), this._cache.setStore(t, e), this._cache.setStore(n, Ie.ANONYMOUS);} }, { key: "_clearAnonymousUUID", value: function _clearAnonymousUUID() {this._cache.removeStore(this._cache.keys.anonymousUuidKey);} }]);return qe;}(Le);var Fe = /*#__PURE__*/function (_Le2) {_inherits(Fe, _Le2);var _super5 = _createSuper(Fe);function Fe() {_classCallCheck(this, Fe);return _super5.apply(this, arguments);}_createClass(Fe, [{ key: "signIn", value: function () {var _signIn2 = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee15(e) {var t, n;return _regenerator.default.wrap(function _callee15$(_context15) {while (1) {switch (_context15.prev = _context15.next) {case 0:if (!("string" != typeof e)) {_context15.next = 2;break;}throw new B({ param: "PARAM_ERROR", message: "ticket must be a string" });case 2:t = this._cache.keys.refreshTokenKey;_context15.next = 5;return this._request.send("auth.signInWithTicket", { ticket: e, refresh_token: this._cache.getStore(t) || "" });case 5:n = _context15.sent;if (!n.refresh_token) {_context15.next = 15;break;}this.setRefreshToken(n.refresh_token);_context15.next = 10;return this._request.refreshAccessToken();case 10:we(ve);we(Se, { env: this.config.env, loginType: Ie.CUSTOM, persistence: this.config.persistence });_context15.next = 14;return this.refreshUserInfo();case 14:return _context15.abrupt("return", new Ne(this.config.env));case 15:throw new B({ message: "鑷畾涔夌櫥褰曞け璐�" });case 16:case "end":return _context15.stop();}}}, _callee15, this);}));function signIn(_x10) {return _signIn2.apply(this, arguments);}return signIn;}() }]);return Fe;}(Le);var Me = /*#__PURE__*/function (_Le3) {_inherits(Me, _Le3);var _super6 = _createSuper(Me);function Me() {_classCallCheck(this, Me);return _super6.apply(this, arguments);}_createClass(Me, [{ key: "signIn", value: function () {var _signIn3 = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee16(e, t) {var n, s, o, r, i;return _regenerator.default.wrap(function _callee16$(_context16) {while (1) {switch (_context16.prev = _context16.next) {case 0:if (!("string" != typeof e)) {_context16.next = 2;break;}throw new B({ code: "PARAM_ERROR", message: "email must be a string" });case 2:n = this._cache.keys.refreshTokenKey;_context16.next = 5;return this._request.send("auth.signIn", { loginType: "EMAIL", email: e, password: t, refresh_token: this._cache.getStore(n) || "" });case 5:s = _context16.sent;o = s.refresh_token;r = s.access_token;i = s.access_token_expire;if (!o) {_context16.next = 22;break;}this.setRefreshToken(o);if (!(r && i)) {_context16.next = 15;break;}this.setAccessToken(r, i);_context16.next = 17;break;case 15:_context16.next = 17;return this._request.refreshAccessToken();case 17:_context16.next = 19;return this.refreshUserInfo();case 19:we(ve);we(Se, { env: this.config.env, loginType: Ie.EMAIL, persistence: this.config.persistence });return _context16.abrupt("return", new Ne(this.config.env));case 22:throw s.code ? new B({ code: s.code, message: "\u90AE\u7BB1\u767B\u5F55\u5931\u8D25: ".concat(s.message) }) : new B({ message: "閭鐧诲綍澶辫触" });case 23:case "end":return _context16.stop();}}}, _callee16, this);}));function signIn(_x11, _x12) {return _signIn3.apply(this, arguments);}return signIn;}() }, { key: "activate", value: function () {var _activate = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee17(e) {return _regenerator.default.wrap(function _callee17$(_context17) {while (1) {switch (_context17.prev = _context17.next) {case 0:return _context17.abrupt("return", this._request.send("auth.activateEndUserMail", { token: e }));case 1:case "end":return _context17.stop();}}}, _callee17, this);}));function activate(_x13) {return _activate.apply(this, arguments);}return activate;}() }, { key: "resetPasswordWithToken", value: function () {var _resetPasswordWithToken = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee18(e, t) {return _regenerator.default.wrap(function _callee18$(_context18) {while (1) {switch (_context18.prev = _context18.next) {case 0:return _context18.abrupt("return", this._request.send("auth.resetPasswordWithToken", { token: e, newPassword: t }));case 1:case "end":return _context18.stop();}}}, _callee18, this);}));function resetPasswordWithToken(_x14, _x15) {return _resetPasswordWithToken.apply(this, arguments);}return resetPasswordWithToken;}() }]);return Me;}(Le);var je = /*#__PURE__*/function (_Le4) {_inherits(je, _Le4);var _super7 = _createSuper(je);function je() {_classCallCheck(this, je);return _super7.apply(this, arguments);}_createClass(je, [{ key: "signIn", value: function () {var _signIn4 = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee19(e, t) {var n, s, o, r, i;return _regenerator.default.wrap(function _callee19$(_context19) {while (1) {switch (_context19.prev = _context19.next) {case 0:if (!("string" != typeof e)) {_context19.next = 2;break;}throw new B({ code: "PARAM_ERROR", message: "username must be a string" });case 2:"string" != typeof t && (t = "", console.warn("password is empty"));n = this._cache.keys.refreshTokenKey;_context19.next = 6;return this._request.send("auth.signIn", { loginType: Ie.USERNAME, username: e, password: t, refresh_token: this._cache.getStore(n) || "" });case 6:s = _context19.sent;o = s.refresh_token;r = s.access_token_expire;i = s.access_token;if (!o) {_context19.next = 23;break;}this.setRefreshToken(o);if (!(i && r)) {_context19.next = 16;break;}this.setAccessToken(i, r);_context19.next = 18;break;case 16:_context19.next = 18;return this._request.refreshAccessToken();case 18:_context19.next = 20;return this.refreshUserInfo();case 20:we(ve);we(Se, { env: this.config.env, loginType: Ie.USERNAME, persistence: this.config.persistence });return _context19.abrupt("return", new Ne(this.config.env));case 23:throw s.code ? new B({ code: s.code, message: "\u7528\u6237\u540D\u5BC6\u7801\u767B\u5F55\u5931\u8D25: ".concat(s.message) }) : new B({ message: "鐢ㄦ埛鍚嶅瘑鐮佺櫥褰曞け璐�" });case 24:case "end":return _context19.stop();}}}, _callee19, this);}));function signIn(_x16, _x17) {return _signIn4.apply(this, arguments);}return signIn;}() }]);return je;}(Le);var $e = /*#__PURE__*/function () {function $e(e) {_classCallCheck(this, $e);this.config = e, this._cache = ge(e.env), this._request = xe(e.env), this._onAnonymousConverted = this._onAnonymousConverted.bind(this), this._onLoginTypeChanged = this._onLoginTypeChanged.bind(this), _e(Se, this._onLoginTypeChanged);}_createClass($e, [{ key: "anonymousAuthProvider", value: function anonymousAuthProvider() {return new qe(this.config);} }, { key: "customAuthProvider", value: function customAuthProvider() {return new Fe(this.config);} }, { key: "emailAuthProvider", value: function emailAuthProvider() {return new Me(this.config);} }, { key: "usernameAuthProvider", value: function usernameAuthProvider() {return new je(this.config);} }, { key: "signInAnonymously", value: function () {var _signInAnonymously = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee20() {return _regenerator.default.wrap(function _callee20$(_context20) {while (1) {switch (_context20.prev = _context20.next) {case 0:return _context20.abrupt("return", new qe(this.config).signIn());case 1:case "end":return _context20.stop();}}}, _callee20, this);}));function signInAnonymously() {return _signInAnonymously.apply(this, arguments);}return signInAnonymously;}() }, { key: "signInWithEmailAndPassword", value: function () {var _signInWithEmailAndPassword = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee21(e, t) {return _regenerator.default.wrap(function _callee21$(_context21) {while (1) {switch (_context21.prev = _context21.next) {case 0:return _context21.abrupt("return", new Me(this.config).signIn(e, t));case 1:case "end":return _context21.stop();}}}, _callee21, this);}));function signInWithEmailAndPassword(_x18, _x19) {return _signInWithEmailAndPassword.apply(this, arguments);}return signInWithEmailAndPassword;}() }, { key: "signInWithUsernameAndPassword", value: function signInWithUsernameAndPassword(e, t) {return new je(this.config).signIn(e, t);} }, { key: "linkAndRetrieveDataWithTicket", value: function () {var _linkAndRetrieveDataWithTicket2 = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee22(e) {return _regenerator.default.wrap(function _callee22$(_context22) {while (1) {switch (_context22.prev = _context22.next) {case 0:this._anonymousAuthProvider || (this._anonymousAuthProvider = new qe(this.config)), _e(Pe, this._onAnonymousConverted);_context22.next = 3;return this._anonymousAuthProvider.linkAndRetrieveDataWithTicket(e);case 3:return _context22.abrupt("return", _context22.sent);case 4:case "end":return _context22.stop();}}}, _callee22, this);}));function linkAndRetrieveDataWithTicket(_x20) {return _linkAndRetrieveDataWithTicket2.apply(this, arguments);}return linkAndRetrieveDataWithTicket;}() }, { key: "signOut", value: function () {var _signOut = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee23() {var _this$_cache$keys10, e, t, n, s, o;return _regenerator.default.wrap(function _callee23$(_context23) {while (1) {switch (_context23.prev = _context23.next) {case 0:if (!(this.loginType === Ie.ANONYMOUS)) {_context23.next = 2;break;}throw new B({ message: "鍖垮悕鐢ㄦ埛涓嶆敮鎸佺櫥鍑烘搷浣�" });case 2:_this$_cache$keys10 = this._cache.keys, e = _this$_cache$keys10.refreshTokenKey, t = _this$_cache$keys10.accessTokenKey, n = _this$_cache$keys10.accessTokenExpireKey, s = this._cache.getStore(e);if (s) {_context23.next = 5;break;}return _context23.abrupt("return");case 5:_context23.next = 7;return this._request.send("auth.logout", { refresh_token: s });case 7:o = _context23.sent;return _context23.abrupt("return", (this._cache.removeStore(e), this._cache.removeStore(t), this._cache.removeStore(n), we(ve), we(Se, { env: this.config.env, loginType: Ie.NULL, persistence: this.config.persistence }), o));case 9:case "end":return _context23.stop();}}}, _callee23, this);}));function signOut() {return _signOut.apply(this, arguments);}return signOut;}() }, { key: "signUpWithEmailAndPassword", value: function () {var _signUpWithEmailAndPassword = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee24(e, t) {return _regenerator.default.wrap(function _callee24$(_context24) {while (1) {switch (_context24.prev = _context24.next) {case 0:return _context24.abrupt("return", this._request.send("auth.signUpWithEmailAndPassword", { email: e, password: t }));case 1:case "end":return _context24.stop();}}}, _callee24, this);}));function signUpWithEmailAndPassword(_x21, _x22) {return _signUpWithEmailAndPassword.apply(this, arguments);}return signUpWithEmailAndPassword;}() }, { key: "sendPasswordResetEmail", value: function () {var _sendPasswordResetEmail = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee25(e) {return _regenerator.default.wrap(function _callee25$(_context25) {while (1) {switch (_context25.prev = _context25.next) {case 0:return _context25.abrupt("return", this._request.send("auth.sendPasswordResetEmail", { email: e }));case 1:case "end":return _context25.stop();}}}, _callee25, this);}));function sendPasswordResetEmail(_x23) {return _sendPasswordResetEmail.apply(this, arguments);}return sendPasswordResetEmail;}() }, { key: "onLoginStateChanged", value: function onLoginStateChanged(e) {var _this10 = this;_e(ve, function () {var t = _this10.hasLoginState();e.call(_this10, t);});var t = this.hasLoginState();e.call(this, t);} }, { key: "onLoginStateExpired", value: function onLoginStateExpired(e) {_e(Te, e.bind(this));} }, { key: "onAccessTokenRefreshed", value: function onAccessTokenRefreshed(e) {_e(Ae, e.bind(this));} }, { key: "onAnonymousConverted", value: function onAnonymousConverted(e) {_e(Pe, e.bind(this));} }, { key: "onLoginTypeChanged", value: function onLoginTypeChanged(e) {var _this11 = this;_e(Se, function () {var t = _this11.hasLoginState();e.call(_this11, t);});} }, { key: "getAccessToken", value: function () {var _getAccessToken2 = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee26() {return _regenerator.default.wrap(function _callee26$(_context26) {while (1) {switch (_context26.prev = _context26.next) {case 0:_context26.next = 2;return this._request.getAccessToken();case 2:_context26.t0 = _context26.sent.accessToken;_context26.t1 = this.config.env;return _context26.abrupt("return", { accessToken: _context26.t0, env: _context26.t1 });case 5:case "end":return _context26.stop();}}}, _callee26, this);}));function getAccessToken() {return _getAccessToken2.apply(this, arguments);}return getAccessToken;}() }, { key: "hasLoginState", value: function hasLoginState() {var e = this._cache.keys.refreshTokenKey;return this._cache.getStore(e) ? new Ne(this.config.env) : null;} }, { key: "isUsernameRegistered", value: function () {var _isUsernameRegistered = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee27(e) {var _yield$this$_request$5, t;return _regenerator.default.wrap(function _callee27$(_context27) {while (1) {switch (_context27.prev = _context27.next) {case 0:if (!("string" != typeof e)) {_context27.next = 2;break;}throw new B({ code: "PARAM_ERROR", message: "username must be a string" });case 2:_context27.next = 4;return this._request.send("auth.isUsernameRegistered", { username: e });case 4:_yield$this$_request$5 = _context27.sent;t = _yield$this$_request$5.data;return _context27.abrupt("return", t && t.isRegistered);case 7:case "end":return _context27.stop();}}}, _callee27, this);}));function isUsernameRegistered(_x24) {return _isUsernameRegistered.apply(this, arguments);}return isUsernameRegistered;}() }, { key: "getLoginState", value: function getLoginState() {return Promise.resolve(this.hasLoginState());} }, { key: "signInWithTicket", value: function () {var _signInWithTicket = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee28(e) {return _regenerator.default.wrap(function _callee28$(_context28) {while (1) {switch (_context28.prev = _context28.next) {case 0:return _context28.abrupt("return", new Fe(this.config).signIn(e));case 1:case "end":return _context28.stop();}}}, _callee28, this);}));function signInWithTicket(_x25) {return _signInWithTicket.apply(this, arguments);}return signInWithTicket;}() }, { key: "shouldRefreshAccessToken", value: function shouldRefreshAccessToken(e) {this._request._shouldRefreshAccessTokenHook = e.bind(this);} }, { key: "getUserInfo", value: function getUserInfo() {return this._request.send("auth.getUserInfo", {}).then(function (e) {return e.code ? e : _objectSpread(_objectSpread({}, e.data), {}, { requestId: e.seqId });});} }, { key: "getAuthHeader", value: function getAuthHeader() {var _this$_cache$keys11 = this._cache.keys,e = _this$_cache$keys11.refreshTokenKey,t = _this$_cache$keys11.accessTokenKey,n = this._cache.getStore(e);return { "x-cloudbase-credentials": this._cache.getStore(t) + "/@@/" + n };} }, { key: "_onAnonymousConverted", value: function _onAnonymousConverted(e) {var t = e.data.env;t === this.config.env && this._cache.updatePersistence(this.config.persistence);} }, { key: "_onLoginTypeChanged", value: function _onLoginTypeChanged(e) {var _e$data = e.data,t = _e$data.loginType,n = _e$data.persistence,s = _e$data.env;s === this.config.env && (this._cache.updatePersistence(n), this._cache.setStore(this._cache.keys.loginTypeKey, t));} }, { key: "currentUser", get: function get() {var e = this.hasLoginState();return e && e.user || null;} }, { key: "loginType", get: function get() {return this._cache.getStore(this._cache.keys.loginTypeKey);} }]);return $e;}();var Ke = function Ke(e, t) {t = t || ne();var n = xe(this.config.env),s = e.cloudPath,o = e.filePath,r = e.onUploadProgress,_e$fileType = e.fileType,i = _e$fileType === void 0 ? "image" : _e$fileType;return n.send("storage.getUploadMetadata", { path: s }).then(function (e) {var _e$data2 = e.data,a = _e$data2.url,c = _e$data2.authorization,u = _e$data2.token,l = _e$data2.fileId,h = _e$data2.cosFileId,d = e.requestId,f = { key: s, signature: c, "x-cos-meta-fileid": h, success_action_status: "201", "x-cos-security-token": u };n.upload({ url: a, data: f, file: o, name: s, fileType: i, onUploadProgress: r }).then(function (e) {201 === e.statusCode ? t(null, { fileID: l, requestId: d }) : t(new B({ code: "STORAGE_REQUEST_FAIL", message: "STORAGE_REQUEST_FAIL: ".concat(e.data) }));}).catch(function (e) {t(e);});}).catch(function (e) {t(e);}), t.promise;},Be = function Be(e, t) {t = t || ne();var n = xe(this.config.env),s = e.cloudPath;return n.send("storage.getUploadMetadata", { path: s }).then(function (e) {t(null, e);}).catch(function (e) {t(e);}), t.promise;},He = function He(_ref5, t) {var e = _ref5.fileList;if (t = t || ne(), !e || !Array.isArray(e)) return { code: "INVALID_PARAM", message: "fileList蹇呴』鏄潪绌虹殑鏁扮粍" };var _iterator3 = _createForOfIteratorHelper(e),_step3;try {for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {var _t8 = _step3.value;if (!_t8 || "string" != typeof _t8) return { code: "INVALID_PARAM", message: "fileList鐨勫厓绱犲繀椤绘槸闈炵┖鐨勫瓧绗︿覆" };}} catch (err) {_iterator3.e(err);} finally {_iterator3.f();}var n = { fileid_list: e };return xe(this.config.env).send("storage.batchDeleteFile", n).then(function (e) {e.code ? t(null, e) : t(null, { fileList: e.data.delete_list, requestId: e.requestId });}).catch(function (e) {t(e);}), t.promise;},We = function We(_ref6, t) {var e = _ref6.fileList;t = t || ne(), e && Array.isArray(e) || t(null, { code: "INVALID_PARAM", message: "fileList蹇呴』鏄潪绌虹殑鏁扮粍" });var n = [];var _iterator4 = _createForOfIteratorHelper(e),_step4;try {for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {var _s7 = _step4.value;"object" == typeof _s7 ? (_s7.hasOwnProperty("fileID") && _s7.hasOwnProperty("maxAge") || t(null, { code: "INVALID_PARAM", message: "fileList鐨勫厓绱犲繀椤绘槸鍖呭惈fileID鍜宮axAge鐨勫璞�" }), n.push({ fileid: _s7.fileID, max_age: _s7.maxAge })) : "string" == typeof _s7 ? n.push({ fileid: _s7 }) : t(null, { code: "INVALID_PARAM", message: "fileList鐨勫厓绱犲繀椤绘槸瀛楃涓�" });}} catch (err) {_iterator4.e(err);} finally {_iterator4.f();}var s = { file_list: n };return xe(this.config.env).send("storage.batchGetDownloadUrl", s).then(function (e) {e.code ? t(null, e) : t(null, { fileList: e.data.download_list, requestId: e.requestId });}).catch(function (e) {t(e);}), t.promise;},ze = /*#__PURE__*/function () {var _ref8 = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee29(_ref7, t) {var e, n, s, o;return _regenerator.default.wrap(function _callee29$(_context29) {while (1) {switch (_context29.prev = _context29.next) {case 0:e = _ref7.fileID;_context29.next = 3;return We.call(this, { fileList: [{ fileID: e, maxAge: 600 }] });case 3:n = _context29.sent.fileList[0];if (!("SUCCESS" !== n.code)) {_context29.next = 6;break;}return _context29.abrupt("return", t ? t(n) : new Promise(function (e) {e(n);}));case 6:s = xe(this.config.env);o = n.download_url;if (!(o = encodeURI(o), !t)) {_context29.next = 10;break;}return _context29.abrupt("return", s.download({ url: o }));case 10:_context29.t0 = t;_context29.next = 13;return s.download({ url: o });case 13:_context29.t1 = _context29.sent;(0, _context29.t0)(_context29.t1);case 15:case "end":return _context29.stop();}}}, _callee29, this);}));return function ze(_x26, _x27) {return _ref8.apply(this, arguments);};}(),Je = function Je(_ref9, r) {var e = _ref9.name,t = _ref9.data,n = _ref9.query,s = _ref9.parse,o = _ref9.search;var i = r || ne();var a;try {a = t ? JSON.stringify(t) : "";} catch (e) {return Promise.reject(e);}if (!e) return Promise.reject(new B({ code: "PARAM_ERROR", message: "鍑芥暟鍚嶄笉鑳戒负绌�" }));var c = { inQuery: n, parse: s, search: o, function_name: e, request_data: a };return xe(this.config.env).send("functions.invokeFunction", c).then(function (e) {if (e.code) i(null, e);else {var _t9 = e.data.response_data;if (s) i(null, { result: _t9, requestId: e.requestId });else try {_t9 = JSON.parse(e.data.response_data), i(null, { result: _t9, requestId: e.requestId });} catch (e) {i(new B({ message: "response data must be json" }));}}return i.promise;}).catch(function (e) {i(e);}), i.promise;},Ve = { timeout: 15e3, persistence: "session" },Ye = {};var Xe = /*#__PURE__*/function () {function Xe(e) {_classCallCheck(this, Xe);this.config = e || this.config, this.authObj = void 0;}_createClass(Xe, [{ key: "init", value: function init(e) {switch (ae.adapter || (this.requestClient = new ae.adapter.reqClass({ timeout: e.timeout || 5e3, timeoutMsg: "\u8BF7\u6C42\u5728".concat((e.timeout || 5e3) / 1e3, "s\u5185\u672A\u5B8C\u6210\uFF0C\u5DF2\u4E2D\u65AD") })), this.config = _objectSpread(_objectSpread({}, Ve), e), !0) {case this.config.timeout > 6e5:console.warn("timeout澶т簬鍙厤缃笂闄怺10鍒嗛挓]锛屽凡閲嶇疆涓轰笂闄愭暟鍊�"), this.config.timeout = 6e5;break;case this.config.timeout < 100:console.warn("timeout灏忎簬鍙厤缃笅闄怺100ms]锛屽凡閲嶇疆涓轰笅闄愭暟鍊�"), this.config.timeout = 100;}return new Xe(this.config);} }, { key: "auth", value: function auth() {var _ref10 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},e = _ref10.persistence;if (this.authObj) return this.authObj;var t = e || ae.adapter.primaryStorage || Ve.persistence;var n;return t !== this.config.persistence && (this.config.persistence = t), function (e) {var t = e.env;de[t] = new he(e), fe[t] = new he(_objectSpread(_objectSpread({}, e), {}, { persistence: "local" }));}(this.config), n = this.config, Ue[n.env] = new Re(n), this.authObj = new $e(this.config), this.authObj;} }, { key: "on", value: function on(e, t) {return _e.apply(this, [e, t]);} }, { key: "off", value: function off(e, t) {return ke.apply(this, [e, t]);} }, { key: "callFunction", value: function callFunction(e, t) {return Je.apply(this, [e, t]);} }, { key: "deleteFile", value: function deleteFile(e, t) {return He.apply(this, [e, t]);} }, { key: "getTempFileURL", value: function getTempFileURL(e, t) {return We.apply(this, [e, t]);} }, { key: "downloadFile", value: function downloadFile(e, t) {return ze.apply(this, [e, t]);} }, { key: "uploadFile", value: function uploadFile(e, t) {return Ke.apply(this, [e, t]);} }, { key: "getUploadMetadata", value: function getUploadMetadata(e, t) {return Be.apply(this, [e, t]);} }, { key: "registerExtension", value: function registerExtension(e) {Ye[e.name] = e;} }, { key: "invokeExtension", value: function () {var _invokeExtension = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee30(e, t) {var n;return _regenerator.default.wrap(function _callee30$(_context30) {while (1) {switch (_context30.prev = _context30.next) {case 0:n = Ye[e];if (n) {_context30.next = 3;break;}throw new B({ message: "\u6269\u5C55".concat(e, " \u5FC5\u987B\u5148\u6CE8\u518C") });case 3:_context30.next = 5;return n.invoke(t, this);case 5:return _context30.abrupt("return", _context30.sent);case 6:case "end":return _context30.stop();}}}, _callee30, this);}));function invokeExtension(_x28, _x29) {return _invokeExtension.apply(this, arguments);}return invokeExtension;}() }, { key: "useAdapters", value: function useAdapters(e) {var _ref11 = ie(e) || {},t = _ref11.adapter,n = _ref11.runtime;t && (ae.adapter = t), n && (ae.runtime = n);} }]);return Xe;}();var Ge = new Xe();function Qe(e, t, n) {void 0 === n && (n = {});var s = /\?/.test(t),o = "";for (var r in n) {"" === o ? !s && (t += "?") : o += "&", o += r + "=" + encodeURIComponent(n[r]);}return /^http(s)?:\/\//.test(t += o) ? t : "" + e + t;}var Ze = /*#__PURE__*/function () {function Ze() {_classCallCheck(this, Ze);}_createClass(Ze, [{ key: "post", value: function post(e) {var t = e.url,n = e.data,s = e.headers;return new Promise(function (e, o) {V.request({ url: Qe("https:", t), data: n, method: "POST", header: s, success: function success(t) {e(t);}, fail: function fail(e) {o(e);} });});} }, { key: "upload", value: function upload(e) {return new Promise(function (t, n) {var s = e.url,o = e.file,r = e.data,i = e.headers,a = e.fileType,c = V.uploadFile({ url: Qe("https:", s), name: "file", formData: Object.assign({}, r), filePath: o, fileType: a, header: i, success: function success(e) {var n = { statusCode: e.statusCode, data: e.data || {} };200 === e.statusCode && r.success_action_status && (n.statusCode = parseInt(r.success_action_status, 10)), t(n);}, fail: function fail(e) {n(new Error(e.errMsg || "uploadFile:fail"));} });"function" == typeof e.onUploadProgress && c && "function" == typeof c.onProgressUpdate && c.onProgressUpdate(function (t) {e.onUploadProgress({ loaded: t.totalBytesSent, total: t.totalBytesExpectedToSend });});});} }]);return Ze;}();var et = { setItem: function setItem(e, t) {V.setStorageSync(e, t);}, getItem: function getItem(e) {return V.getStorageSync(e);}, removeItem: function removeItem(e) {V.removeStorageSync(e);}, clear: function clear() {V.clearStorageSync();} };var tt = { genAdapter: function genAdapter() {return { root: {}, reqClass: Ze, localStorage: et, primaryStorage: "local" };}, isMatch: function isMatch() {return !0;}, runtime: "uni_app" };Ge.useAdapters(tt);var nt = Ge,st = nt.init;nt.init = function (e) {e.env = e.spaceId;var t = st.call(this, e);t.config.provider = "tencent", t.config.spaceId = e.spaceId;var n = t.auth;return t.auth = function (e) {var t = n.call(this, e);return ["linkAndRetrieveDataWithTicket", "signInAnonymously", "signOut", "getAccessToken", "getLoginState", "signInWithTicket", "getUserInfo"].forEach(function (e) {t[e] = K(t[e]).bind(t);}), t;}, t.customAuth = t.auth, t;};var ot = nt;function rt() {return { token: V.getStorageSync("uni_id_token") || V.getStorageSync("uniIdToken"), tokenExpired: V.getStorageSync("uni_id_token_expired") };}function it() {var _ref12 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},e = _ref12.token,t = _ref12.tokenExpired;e && V.setStorageSync("uni_id_token", e), t && V.setStorageSync("uni_id_token_expired", t);}function at() {if (!d || "web" !== g) return;uni.getStorageSync("__LAST_DCLOUD_APPID") !== _ && (uni.setStorageSync("__LAST_DCLOUD_APPID", _), console.warn("妫�娴嬪埌褰撳墠椤圭洰涓庝笂娆¤繍琛屽埌姝ょ鍙g殑椤圭洰涓嶄竴鑷达紝鑷姩娓呯悊uni-id淇濆瓨鐨則oken淇℃伅锛堜粎寮�鍙戣皟璇曟椂鐢熸晥锛�"), V.removeStorageSync("uni_id_token"), V.removeStorageSync("uniIdToken"), V.removeStorageSync("uni_id_token_expired"));}var ct = /*#__PURE__*/function (_G) {_inherits(ct, _G);var _super8 = _createSuper(ct);function ct() {_classCallCheck(this, ct);return _super8.apply(this, arguments);}_createClass(ct, [{ key: "getAccessToken", value: function getAccessToken() {var _this12 = this;return new Promise(function (e, t) {var n = "Anonymous_Access_token";_this12.setAccessToken(n), e(n);});} }, { key: "setupRequest", value: function setupRequest(e, t) {var n = Object.assign({}, e, { spaceId: this.config.spaceId, timestamp: Date.now() }),s = { "Content-Type": "application/json" };"auth" !== t && (n.token = this.accessToken, s["x-basement-token"] = this.accessToken), s["x-serverless-sign"] = J.sign(n, this.config.clientSecret);var o = z();s["x-client-info"] = encodeURIComponent(JSON.stringify(o));var _rt = rt(),r = _rt.token;return s["x-client-token"] = r, { url: this.config.requestUrl, method: "POST", data: n, dataType: "json", header: JSON.parse(JSON.stringify(s)) };} }, { key: "uploadFileToOSS", value: function uploadFileToOSS(_ref13) {var _this13 = this;var e = _ref13.url,t = _ref13.formData,n = _ref13.name,s = _ref13.filePath,o = _ref13.fileType,r = _ref13.onUploadProgress;return new Promise(function (i, a) {var c = _this13.adapter.uploadFile({ url: e, formData: t, name: n, filePath: s, fileType: o, success: function success(e) {e && e.statusCode < 400 ? i(e) : a(new B({ code: "UPLOAD_FAILED", message: "鏂囦欢涓婁紶澶辫触" }));}, fail: function fail(e) {a(new B({ code: e.code || "UPLOAD_FAILED", message: e.message || e.errMsg || "鏂囦欢涓婁紶澶辫触" }));} });"function" == typeof r && c && "function" == typeof c.onProgressUpdate && c.onProgressUpdate(function (e) {r({ loaded: e.totalBytesSent, total: e.totalBytesExpectedToSend });});});} }, { key: "uploadFile", value: function uploadFile(_ref14) {var _this14 = this;var e = _ref14.filePath,t = _ref14.cloudPath,_ref14$fileType = _ref14.fileType,n = _ref14$fileType === void 0 ? "image" : _ref14$fileType,s = _ref14.onUploadProgress;if (!t) throw new B({ code: "CLOUDPATH_REQUIRED", message: "cloudPath涓嶅彲涓虹┖" });var o;return this.getOSSUploadOptionsFromPath({ cloudPath: t }).then(function (t) {var _t$result = t.result,r = _t$result.url,i = _t$result.formData,a = _t$result.name;o = t.result.fileUrl;var c = { url: r, formData: i, name: a, filePath: e, fileType: n };return _this14.uploadFileToOSS(Object.assign({}, c, { onUploadProgress: s }));}).then(function () {return _this14.reportOSSUpload({ cloudPath: t });}).then(function (t) {return new Promise(function (n, s) {t.success ? n({ success: !0, filePath: e, fileID: o }) : s(new B({ code: "UPLOAD_FAILED", message: "鏂囦欢涓婁紶澶辫触" }));});});} }, { key: "deleteFile", value: function deleteFile(_ref15) {var e = _ref15.fileList;var t = { method: "serverless.file.resource.delete", params: JSON.stringify({ fileList: e }) };return this.request(this.setupRequest(t));} }, { key: "getTempFileURL", value: function getTempFileURL() {var _ref16 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},e = _ref16.fileList;var t = { method: "serverless.file.resource.getTempFileURL", params: JSON.stringify({ fileList: e }) };return this.request(this.setupRequest(t));} }]);return ct;}(G);var ut = { init: function init(e) {var t = new ct(e),n = { signInAnonymously: function signInAnonymously() {return t.authorize();}, getLoginState: function getLoginState() {return Promise.resolve(!1);} };return t.auth = function () {return n;}, t.customAuth = t.auth, t;} };function lt(_ref17) {var e = _ref17.data;var t;t = z();var n = JSON.parse(JSON.stringify(e || {}));if (Object.assign(n, { clientInfo: t }), !n.uniIdToken) {var _rt2 = rt(),_e19 = _rt2.token;_e19 && (n.uniIdToken = _e19);}return n;}function ht() {var _this15 = this;var _ref18 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},e = _ref18.name,t = _ref18.data;var _this$__dev__ = this.__dev__,n = _this$__dev__.localAddress,s = _this$__dev__.localPort,o = { aliyun: "aliyun", tencent: "tcb" }[this.config.provider],r = this.config.spaceId,i = "http://".concat(n, ":").concat(s, "/system/check-function"),a = "http://".concat(n, ":").concat(s, "/cloudfunctions/").concat(e);return new Promise(function (t, n) {V.request({ method: "POST", url: i, data: { name: e, platform: g, provider: o, spaceId: r }, timeout: 3e3, success: function success(e) {t(e);}, fail: function fail() {t({ data: { code: "NETWORK_ERROR", message: "杩炴帴鏈湴璋冭瘯鏈嶅姟澶辫触锛岃妫�鏌ュ鎴风鏄惁鍜屼富鏈哄湪鍚屼竴灞�鍩熺綉涓嬶紝鑷姩鍒囨崲涓哄凡閮ㄧ讲鐨勪簯鍑芥暟銆�" } });} });}).then(function () {var _ref19 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},e = _ref19.data;var _ref20 = e || {},t = _ref20.code,n = _ref20.message;return { code: 0 === t ? 0 : t || "SYS_ERR", message: n || "SYS_ERR" };}).then(function (_ref21) {var n = _ref21.code,s = _ref21.message;if (0 !== n) {switch (n) {case "MODULE_ENCRYPTED":console.error("\u6B64\u4E91\u51FD\u6570\uFF08".concat(e, "\uFF09\u4F9D\u8D56\u52A0\u5BC6\u516C\u5171\u6A21\u5757\u4E0D\u53EF\u672C\u5730\u8C03\u8BD5\uFF0C\u81EA\u52A8\u5207\u6362\u4E3A\u4E91\u7AEF\u5DF2\u90E8\u7F72\u7684\u4E91\u51FD\u6570"));break;case "FUNCTION_ENCRYPTED":console.error("\u6B64\u4E91\u51FD\u6570\uFF08".concat(e, "\uFF09\u5DF2\u52A0\u5BC6\u4E0D\u53EF\u672C\u5730\u8C03\u8BD5\uFF0C\u81EA\u52A8\u5207\u6362\u4E3A\u4E91\u7AEF\u5DF2\u90E8\u7F72\u7684\u4E91\u51FD\u6570"));break;case "ACTION_ENCRYPTED":console.error(s || "闇�瑕佽闂姞瀵嗙殑uni-clientDB-action锛岃嚜鍔ㄥ垏鎹负浜戠鐜");break;case "NETWORK_ERROR":{var _e20 = "杩炴帴鏈湴璋冭瘯鏈嶅姟澶辫触锛岃妫�鏌ュ鎴风鏄惁鍜屼富鏈哄湪鍚屼竴灞�鍩熺綉涓�";throw console.error(_e20), new Error(_e20);}case "SWITCH_TO_CLOUD":break;default:{var _e21 = "\u68C0\u6D4B\u672C\u5730\u8C03\u8BD5\u670D\u52A1\u51FA\u73B0\u9519\u8BEF\uFF1A".concat(s, "\uFF0C\u8BF7\u68C0\u67E5\u7F51\u7EDC\u73AF\u5883\u6216\u91CD\u542F\u5BA2\u6237\u7AEF\u518D\u8BD5");throw console.error(_e21), new Error(_e21);}}return _this15._callCloudFunction({ name: e, data: t });}return new Promise(function (e, n) {var s = lt.call(_this15, { data: t });V.request({ method: "POST", url: a, data: { provider: o, platform: g, param: s }, success: function success() {var _ref22 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},t = _ref22.statusCode,s = _ref22.data;return !t || t >= 400 ? n(new B({ code: s.code || "SYS_ERR", message: s.message || "request:fail" })) : e({ result: s });}, fail: function fail(e) {n(new B({ code: e.code || e.errCode || "SYS_ERR", message: e.message || e.errMsg || "request:fail" }));} });});});}var dt = [{ rule: /fc_function_not_found|FUNCTION_NOT_FOUND/, content: "锛屼簯鍑芥暟[{functionName}]鍦ㄤ簯绔笉瀛樺湪锛岃妫�鏌ユ浜戝嚱鏁板悕绉版槸鍚︽纭互鍙婅浜戝嚱鏁版槸鍚﹀凡涓婁紶鍒版湇鍔$┖闂�", mode: "append" }];var ft = /[\\^$.*+?()[\]{}|]/g,gt = RegExp(ft.source);function pt(e, t, n) {return e.replace(new RegExp((s = t) && gt.test(s) ? s.replace(ft, "\\$&") : s, "g"), n);var s;}function mt(_ref23) {var e = _ref23.functionName,t = _ref23.result,n = _ref23.logPvd;if (this.__dev__.debugLog && t && t.requestId) {var _s8 = JSON.stringify({ spaceId: this.config.spaceId, functionName: e, requestId: t.requestId });console.log("[".concat(n, "-request]").concat(_s8, "[/").concat(n, "-request]"));}}function yt(e) {var t = e.callFunction,n = function n(_n5) {var _this16 = this;var s = _n5.name;_n5.data = lt.call(e, { data: _n5.data });var o = { aliyun: "aliyun", tencent: "tcb", tcb: "tcb" }[this.config.provider];return t.call(this, _n5).then(function (e) {return e.errCode = 0, mt.call(_this16, { functionName: s, result: e, logPvd: o }), Promise.resolve(e);}, function (e) {return mt.call(_this16, { functionName: s, result: e, logPvd: o }), e && e.message && (e.message = function () {var _ref24 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},_ref24$message = _ref24.message,e = _ref24$message === void 0 ? "" : _ref24$message,_ref24$extraInfo = _ref24.extraInfo,t = _ref24$extraInfo === void 0 ? {} : _ref24$extraInfo,_ref24$formatter = _ref24.formatter,n = _ref24$formatter === void 0 ? [] : _ref24$formatter;for (var _s9 = 0; _s9 < n.length; _s9++) {var _n$_s = n[_s9],_o3 = _n$_s.rule,_r2 = _n$_s.content,i = _n$_s.mode,_a = e.match(_o3);if (!_a) continue;var _c = _r2;for (var _e22 = 1; _e22 < _a.length; _e22++) {_c = pt(_c, "{$".concat(_e22, "}"), _a[_e22]);}for (var _e23 in t) {_c = pt(_c, "{".concat(_e23, "}"), t[_e23]);}return "replace" === i ? _c : e + _c;}return e;}({ message: "[".concat(_n5.name, "]: ").concat(e.message), formatter: dt, extraInfo: { functionName: s } })), Promise.reject(e);});};e.callFunction = function (t) {var s;d && e.__dev__.debugInfo && !e.__dev__.debugInfo.forceRemote && m ? (e._callCloudFunction || (e._callCloudFunction = n, e._callLocalFunction = ht), s = ht) : s = n;var o = s.call(this, t);return Object.defineProperty(o, "result", { get: function get() {return console.warn("褰撳墠杩斿洖缁撴灉涓篜romise绫诲瀷锛屼笉鍙洿鎺ヨ闂叾result灞炴�э紝璇︽儏璇峰弬鑰冿細https://uniapp.dcloud.net.cn/uniCloud/faq?id=promise"), {};} }), o;};}var _t = Symbol("CLIENT_DB_INTERNAL");function wt(e, t) {return e.then = "DoNotReturnProxyWithAFunctionNamedThen", e._internalType = _t, e.__ob__ = void 0, new Proxy(e, { get: function get(e, n, s) {if ("_uniClient" === n) return null;if (n in e || "string" != typeof n) {var _t10 = e[n];return "function" == typeof _t10 ? _t10.bind(e) : _t10;}return t.get(e, n, s);} });}function kt(e) {return { on: function on(t, n) {e[t] = e[t] || [], e[t].indexOf(n) > -1 || e[t].push(n);}, off: function off(t, n) {e[t] = e[t] || [];var s = e[t].indexOf(n);-1 !== s && e[t].splice(s, 1);} };}var vt = ["db.Geo", "db.command", "command.aggregate"];function Tt(e, t) {return vt.indexOf("".concat(e, ".").concat(t)) > -1;}function St(e) {switch (u(e)) {case "array":return e.map(function (e) {return St(e);});case "object":return e._internalType === _t || Object.keys(e).forEach(function (t) {e[t] = St(e[t]);}), e;case "regexp":return { $regexp: { source: e.source, flags: e.flags } };case "date":return { $date: e.toISOString() };default:return e;}}function Pt(e) {return e && e.content && e.content.$method;}var At = /*#__PURE__*/function () {function At(e, t, n) {_classCallCheck(this, At);this.content = e, this.prevStage = t || null, this.udb = null, this._database = n;}_createClass(At, [{ key: "toJSON", value: function toJSON() {var e = this;var t = [e.content];for (; e.prevStage;) {e = e.prevStage, t.push(e.content);}return { $db: t.reverse().map(function (e) {return { $method: e.$method, $param: St(e.$param) };}) };} }, { key: "getAction", value: function getAction() {var e = this.toJSON().$db.find(function (e) {return "action" === e.$method;});return e && e.$param && e.$param[0];} }, { key: "getCommand", value: function getCommand() {return { $db: this.toJSON().$db.filter(function (e) {return "action" !== e.$method;}) };} }, { key: "get", value: function get() {return this._send("get", Array.from(arguments));} }, { key: "add", value: function add() {return this._send("add", Array.from(arguments));} }, { key: "update", value: function update() {return this._send("update", Array.from(arguments));} }, { key: "end", value: function end() {return this._send("end", Array.from(arguments));} }, { key: "_send", value: function _send(e, t) {var n = this.getAction(),s = this.getCommand();if (s.$db.push({ $method: e, $param: St(t) }), d) {var _e24 = s.$db.find(function (e) {return "collection" === e.$method;}),_t11 = _e24 && _e24.$param;_t11 && 1 === _t11.length && "string" == typeof _e24.$param[0] && _e24.$param[0].indexOf(",") > -1 && console.warn("妫�娴嬪埌浣跨敤JQL璇硶鑱旇〃鏌ヨ鏃讹紝鏈娇鐢╣etTemp鍏堣繃婊や富琛ㄦ暟鎹紝鍦ㄤ富琛ㄦ暟鎹噺澶х殑鎯呭喌涓嬪彲鑳戒細鏌ヨ缂撴參銆俓n- 濡備綍浼樺寲璇峰弬鑰冩鏂囨。锛歨ttps://uniapp.dcloud.net.cn/uniCloud/jql?id=lookup-with-temp \n- 濡傛灉涓昏〃鏁版嵁閲忓緢灏忚蹇界暐姝や俊鎭紝椤圭洰鍙戣鏃朵笉浼氬嚭鐜版鎻愮ず銆�");}return this._database._callCloudFunction({ action: n, command: s });} }, { key: "isAggregate", get: function get() {var e = this;for (; e;) {var t = Pt(e),_n6 = Pt(e.prevStage);if ("aggregate" === t && "collection" === _n6 || "pipeline" === t) return !0;e = e.prevStage;}return !1;} }, { key: "isCommand", get: function get() {var e = this;for (; e;) {if ("command" === Pt(e)) return !0;e = e.prevStage;}return !1;} }, { key: "isAggregateCommand", get: function get() {var e = this;for (; e;) {var t = Pt(e),_n7 = Pt(e.prevStage);if ("aggregate" === t && "command" === _n7) return !0;e = e.prevStage;}return !1;} }, { key: "count", get: function get() {if (!this.isAggregate) return function () {return this._send("count", Array.from(arguments));};var e = this;return function () {return It({ $method: "count", $param: St(Array.from(arguments)) }, e, this._database);};} }, { key: "remove", get: function get() {if (!this.isCommand) return function () {return this._send("remove", Array.from(arguments));};var e = this;return function () {return It({ $method: "remove", $param: St(Array.from(arguments)) }, e, this._database);};} }, { key: "set", get: function get() {if (!this.isCommand) return function () {throw new Error("JQL绂佹浣跨敤set鏂规硶");};var e = this;return function () {return It({ $method: "set", $param: St(Array.from(arguments)) }, e, this._database);};} }]);return At;}();function It(e, t, n) {return wt(new At(e, t, n), { get: function get(e, t) {var s = "db";return e && e.content && (s = e.content.$method), Tt(s, t) ? It({ $method: t }, e, n) : function () {return It({ $method: t, $param: St(Array.from(arguments)) }, e, n);};} });}function bt(_ref25) {var e = _ref25.path,t = _ref25.method;return /*#__PURE__*/function () {function _class2() {_classCallCheck(this, _class2);this.param = Array.from(arguments);}_createClass(_class2, [{ key: "toJSON", value: function toJSON() {return { $newDb: [].concat(_toConsumableArray(e.map(function (e) {return { $method: e };})), [{ $method: t, $param: this.param }]) };} }]);return _class2;}();}var Ot = /*#__PURE__*/function (_ref26) {_inherits(Ot, _ref26);var _super9 = _createSuper(Ot);function Ot() {_classCallCheck(this, Ot);return _super9.apply(this, arguments);}_createClass(Ot, [{ key: "_callCloudFunction", value: function _callCloudFunction(_ref27) {var _this17 = this;var e = _ref27.action,t = _ref27.command,n = _ref27.multiCommand,s = _ref27.queryList;function o(e, t) {if (n && s) for (var _n8 = 0; _n8 < s.length; _n8++) {var _o4 = s[_n8];_o4.udb && "function" == typeof _o4.udb.setResult && (t ? _o4.udb.setResult(t) : _o4.udb.setResult(e.result.dataList[_n8]));}}var r = this;function i(e) {return r._callback("error", [e]), A(I("database", "fail"), e).then(function () {return A(I("database", "complete"), e);}).then(function () {return o(null, e), F(C, { type: U, content: e }), Promise.reject(e);});}var a = A(I("database", "invoke")),u = this._uniClient;return a.then(function () {return u.callFunction({ name: "DCloud-clientDB", type: c, data: { action: e, command: t, multiCommand: n } });}).then(function (e) {var _e$result = e.result,t = _e$result.code,n = _e$result.message,s = _e$result.token,r = _e$result.tokenExpired,_e$result$systemInfo = _e$result.systemInfo,a = _e$result$systemInfo === void 0 ? [] : _e$result$systemInfo;if (a) for (var _e25 = 0; _e25 < a.length; _e25++) {var _a$_e = a[_e25],_t12 = _a$_e.level,_n9 = _a$_e.message,_s10 = _a$_e.detail,_o5 = console["app" === g && "warn" === _t12 ? "error" : _t12] || console.log;var _r3 = "[System Info]" + _n9;_s10 && (_r3 = "".concat(_r3, "\n\u8BE6\u7EC6\u4FE1\u606F\uFF1A").concat(_s10)), _o5(_r3);}if (t) {return i(new B({ code: t, message: n, requestId: e.requestId }));}e.result.errCode = e.result.code, e.result.errMsg = e.result.message, s && r && (it({ token: s, tokenExpired: r }), _this17._callbackAuth("refreshToken", [{ token: s, tokenExpired: r }]), _this17._callback("refreshToken", [{ token: s, tokenExpired: r }]), F(R, { token: s, tokenExpired: r }));var c = [{ prop: "affectedDocs", tips: "affectedDocs涓嶅啀鎺ㄨ崘浣跨敤锛岃浣跨敤inserted/deleted/updated/data.length鏇夸唬" }, { prop: "code", tips: "code涓嶅啀鎺ㄨ崘浣跨敤锛岃浣跨敤errCode鏇夸唬" }, { prop: "message", tips: "message涓嶅啀鎺ㄨ崘浣跨敤锛岃浣跨敤errMsg鏇夸唬" }];var _loop = function _loop(_t13) {var _c$_t = c[_t13],n = _c$_t.prop,s = _c$_t.tips;if (n in e.result) {var _t14 = e.result[n];Object.defineProperty(e.result, n, { get: function get() {return console.warn(s), _t14;} });}};for (var _t13 = 0; _t13 < c.length; _t13++) {_loop(_t13);}return function (e) {return A(I("database", "success"), e).then(function () {return A(I("database", "complete"), e);}).then(function () {return o(e, null), F(C, { type: U, content: e }), Promise.resolve(e);});}(e);}, function (e) {/fc_function_not_found|FUNCTION_NOT_FOUND/g.test(e.message) && console.warn("clientDB鏈垵濮嬪寲锛岃鍦╳eb鎺у埗鍙颁繚瀛樹竴娆chema浠ュ紑鍚痗lientDB");return i(new B({ code: e.code || "SYSTEM_ERROR", message: e.message, requestId: e.requestId }));});} }]);return Ot;}( /*#__PURE__*/function () {function _class3() {var _ref28 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},_ref28$uniClient = _ref28.uniClient,e = _ref28$uniClient === void 0 ? {} : _ref28$uniClient;_classCallCheck(this, _class3);this._uniClient = e, this._authCallBacks = {}, this._dbCallBacks = {}, e.isDefault && (this._dbCallBacks = k("_globalUniCloudDatabaseCallback")), this.auth = kt(this._authCallBacks), Object.assign(this, kt(this._dbCallBacks)), this.env = wt({}, { get: function get(e, t) {return { $env: t };} }), this.Geo = wt({}, { get: function get(e, t) {return bt({ path: ["Geo"], method: t });} }), this.serverDate = bt({ path: [], method: "serverDate" }), this.RegExp = bt({ path: [], method: "RegExp" });}_createClass(_class3, [{ key: "getCloudEnv", value: function getCloudEnv(e) {if ("string" != typeof e || !e.trim()) throw new Error("getCloudEnv鍙傛暟閿欒");return { $env: e.replace("$cloudEnv_", "") };} }, { key: "_callback", value: function _callback(e, t) {var n = this._dbCallBacks;n[e] && n[e].forEach(function (e) {e.apply(void 0, _toConsumableArray(t));});} }, { key: "_callbackAuth", value: function _callbackAuth(e, t) {var n = this._authCallBacks;n[e] && n[e].forEach(function (e) {e.apply(void 0, _toConsumableArray(t));});} }, { key: "multiSend", value: function multiSend() {var e = Array.from(arguments),t = e.map(function (e) {var t = e.getAction(),n = e.getCommand();if ("getTemp" !== n.$db[n.$db.length - 1].$method) throw new Error("multiSend鍙敮鎸佸瓙鍛戒护鍐呬娇鐢╣etTemp");return { action: t, command: n };});return this._callCloudFunction({ multiCommand: t, queryList: e });} }]);return _class3;}());function Ct(e) {e.database = function (t) {if (t && Object.keys(t).length > 0) return e.init(t).database();if (this._database) return this._database;var n = function (e) {var t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};return wt(new e(t), { get: function get(e, t) {return Tt("db", t) ? It({ $method: t }, null, e) : function () {return It({ $method: t, $param: St(Array.from(arguments)) }, null, e);};} });}(Ot, { uniClient: e });return this._database = n, n;};}var Et = "token鏃犳晥锛岃烦杞櫥褰曢〉闈�",Rt = "token杩囨湡锛岃烦杞櫥褰曢〉闈�",Ut = { TOKEN_INVALID_TOKEN_EXPIRED: Rt, TOKEN_INVALID_INVALID_CLIENTID: Et, TOKEN_INVALID: Et, TOKEN_INVALID_WRONG_TOKEN: Et, TOKEN_INVALID_ANONYMOUS_USER: Et },xt = { "uni-id-token-expired": Rt, "uni-id-check-token-failed": Et, "uni-id-token-not-exist": Et, "uni-id-check-device-feature-failed": Et };function Lt(e, t) {var n = "";return n = e ? "".concat(e, "/").concat(t) : t, n.replace(/^\//, "");}function Dt() {var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];var t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "";var n = [],s = [];return e.forEach(function (e) {!0 === e.needLogin ? n.push(Lt(t, e.path)) : !1 === e.needLogin && s.push(Lt(t, e.path));}), { needLoginPage: n, notNeedLoginPage: s };}function Nt(e) {return e.split("?")[0].replace(/^\//, "");}function qt() {return function (e) {var t = e && e.$page && e.$page.fullPath || "";return t ? ("/" !== t.charAt(0) && (t = "/" + t), t) : t;}(function () {var e = getCurrentPages();return e[e.length - 1];}());}function Ft() {return Nt(qt());}function Mt() {var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "";var t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};if (!e) return !1;if (!(t && t.list && t.list.length)) return !1;var n = t.list,s = Nt(e);return n.some(function (e) {return e.pagePath === s;});}var jt = !!_pages.default.uniIdRouter;var _ref29 = function () {var _ref30 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _pages.default,_ref30$pages = _ref30.pages,e = _ref30$pages === void 0 ? [] : _ref30$pages,_ref30$subPackages = _ref30.subPackages,n = _ref30$subPackages === void 0 ? [] : _ref30$subPackages,_ref30$uniIdRouter = _ref30.uniIdRouter,s = _ref30$uniIdRouter === void 0 ? {} : _ref30$uniIdRouter,_ref30$tabBar = _ref30.tabBar,o = _ref30$tabBar === void 0 ? {} : _ref30$tabBar;var r = s.loginPage,_s$needLogin = s.needLogin,i = _s$needLogin === void 0 ? [] : _s$needLogin,_s$resToLogin = s.resToLogin,a = _s$resToLogin === void 0 ? !0 : _s$resToLogin,_Dt = Dt(e),c = _Dt.needLoginPage,u = _Dt.notNeedLoginPage,_ref31 = function () {var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];var t = [],n = [];return e.forEach(function (e) {var s = e.root,_e$pages = e.pages,o = _e$pages === void 0 ? [] : _e$pages,_Dt2 = Dt(o, s),r = _Dt2.needLoginPage,i = _Dt2.notNeedLoginPage;t.push.apply(t, _toConsumableArray(r)), n.push.apply(n, _toConsumableArray(i));}), { needLoginPage: t, notNeedLoginPage: n };}(n),l = _ref31.needLoginPage,h = _ref31.notNeedLoginPage;return { loginPage: r, routerNeedLogin: i, resToLogin: a, needLoginPage: [].concat(_toConsumableArray(c), _toConsumableArray(l)), notNeedLoginPage: [].concat(_toConsumableArray(u), _toConsumableArray(h)), loginPageInTabBar: Mt(r, o) };}(),$t = _ref29.loginPage,Kt = _ref29.routerNeedLogin,Bt = _ref29.resToLogin,Ht = _ref29.needLoginPage,Wt = _ref29.notNeedLoginPage,zt = _ref29.loginPageInTabBar;if (Ht.indexOf($t) > -1) throw new Error("Login page [".concat($t, "] should not be \"needLogin\", please check your pages.json"));function Jt(e) {var t = Nt(function (e) {var t = Ft(),n = e.charAt(0),s = e.split("?")[0];if ("/" === n) return s;var o = s.replace(/^\//, "").split("/"),r = t.split("/");r.pop();for (var _e26 = 0; _e26 < o.length; _e26++) {var _t15 = o[_e26];".." === _t15 ? r.pop() : "." !== _t15 && r.push(_t15);}return "" === r[0] && r.shift(), r.join("/");}(e));return !(Wt.indexOf(t) > -1) && (Ht.indexOf(t) > -1 || Kt.some(function (t) {return function (e, t) {return new RegExp(t).test(e);}(e, t);}));}function Vt(_ref32) {var e = _ref32.redirect;var t = Nt(e),n = Nt($t);return Ft() !== n && t !== n;}function Yt() {var _ref33 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},e = _ref33.api,t = _ref33.redirect;if (!t || !Vt({ redirect: t })) return;var n = function (e, t) {return "/" !== e.charAt(0) && (e = "/" + e), t ? e.indexOf("?") > -1 ? e + "&uniIdRedirectUrl=".concat(encodeURIComponent(t)) : e + "?uniIdRedirectUrl=".concat(encodeURIComponent(t)) : e;}($t, t);zt ? "navigateTo" !== e && "redirectTo" !== e || (e = "switchTab") : "switchTab" === e && (e = "navigateTo"), setTimeout(function () {uni[e]({ url: n });});}function Xt() {var _ref34 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},e = _ref34.url;var t = { abortLoginPageJump: !1, autoToLoginPage: !1 },n = function () {var _rt3 = rt(),e = _rt3.token,t = _rt3.tokenExpired;var n;if (e) {if (t < Date.now()) {var _e27 = "uni-id-token-expired";n = { errCode: _e27, errMsg: xt[_e27] };}} else {var _e28 = "uni-id-check-token-failed";n = { errCode: _e28, errMsg: xt[_e28] };}return n;}();if (Jt(e) && n) {n.uniIdRedirectUrl = e;if (D(E).length > 0) return setTimeout(function () {F(E, n);}, 0), t.abortLoginPageJump = !0, t;t.autoToLoginPage = !0;}return t;}function Gt() {!function () {var e = qt(),_Xt = Xt({ url: e }),t = _Xt.abortLoginPageJump,n = _Xt.autoToLoginPage;t || n && Yt({ api: "redirectTo", redirect: e });}();var e = ["navigateTo", "redirectTo", "reLaunch", "switchTab"];var _loop2 = function _loop2(_t16) {var n = e[_t16];uni.addInterceptor(n, { invoke: function invoke(e) {var _Xt2 = Xt({ url: e.url }),t = _Xt2.abortLoginPageJump,s = _Xt2.autoToLoginPage;return t ? e : s ? (Yt({ api: n, redirect: e.url }), !1) : e;} });};for (var _t16 = 0; _t16 < e.length; _t16++) {_loop2(_t16);}}function Qt() {this.onResponse(function (e) {var t = e.type,n = e.content;var s = !1;switch (t) {case "cloudobject":s = function (e) {var t = e.errCode;return t in xt;}(n);break;case "clientdb":s = function (e) {var t = e.errCode;return t in Ut;}(n);}s && function () {var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};var t = D(E);$().then(function () {var n = qt();if (n && Vt({ redirect: n })) return t.length > 0 ? F(E, Object.assign({ uniIdRedirectUrl: n }, e)) : void ($t && Yt({ api: "navigateTo", redirect: n }));});}(n);});}function Zt(e) {!function (e) {e.onResponse = function (e) {N(C, e);}, e.offResponse = function (e) {q(C, e);};}(e), function (e) {e.onNeedLogin = function (e) {N(E, e);}, e.offNeedLogin = function (e) {q(E, e);}, jt && (k("uni-cloud-status").needLoginInit || (k("uni-cloud-status").needLoginInit = !0, $().then(function () {Gt.call(e);}), Bt && Qt.call(e)));}(e), function (e) {e.onRefreshToken = function (e) {N(R, e);}, e.offRefreshToken = function (e) {q(R, e);};}(e);}var en;var tn = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",nn = /^(?:[A-Za-z\d+/]{4})*?(?:[A-Za-z\d+/]{2}(?:==)?|[A-Za-z\d+/]{3}=?)?$/;function sn() {var e = rt().token || "",t = e.split(".");if (!e || 3 !== t.length) return { uid: null, role: [], permission: [], tokenExpired: 0 };var n;try {n = JSON.parse((s = t[1], decodeURIComponent(en(s).split("").map(function (e) {return "%" + ("00" + e.charCodeAt(0).toString(16)).slice(-2);}).join(""))));} catch (e) {throw new Error("鑾峰彇褰撳墠鐢ㄦ埛淇℃伅鍑洪敊锛岃缁嗛敊璇俊鎭负锛�" + e.message);}var s;return n.tokenExpired = 1e3 * n.exp, delete n.exp, delete n.iat, n;}en = "function" != typeof atob ? function (e) {if (e = String(e).replace(/[\t\n\f\r ]+/g, ""), !nn.test(e)) throw new Error("Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded.");var t;e += "==".slice(2 - (3 & e.length));for (var n, s, o = "", r = 0; r < e.length;) {t = tn.indexOf(e.charAt(r++)) << 18 | tn.indexOf(e.charAt(r++)) << 12 | (n = tn.indexOf(e.charAt(r++))) << 6 | (s = tn.indexOf(e.charAt(r++))), o += 64 === n ? String.fromCharCode(t >> 16 & 255) : 64 === s ? String.fromCharCode(t >> 16 & 255, t >> 8 & 255) : String.fromCharCode(t >> 16 & 255, t >> 8 & 255, 255 & t);}return o;} : atob;var on = s(function (e, t) {Object.defineProperty(t, "__esModule", { value: !0 });var n = "chooseAndUploadFile:ok",s = "chooseAndUploadFile:fail";function o(e, t) {return e.tempFiles.forEach(function (e, n) {e.name || (e.name = e.path.substring(e.path.lastIndexOf("/") + 1)), t && (e.fileType = t), e.cloudPath = Date.now() + "_" + n + e.name.substring(e.name.lastIndexOf("."));}), e.tempFilePaths || (e.tempFilePaths = e.tempFiles.map(function (e) {return e.path;})), e;}function r(e, t, _ref35) {var s = _ref35.onChooseFile,o = _ref35.onUploadProgress;return t.then(function (e) {if (s) {var _t17 = s(e);if (void 0 !== _t17) return Promise.resolve(_t17).then(function (t) {return void 0 === t ? e : t;});}return e;}).then(function (t) {return !1 === t ? { errMsg: n, tempFilePaths: [], tempFiles: [] } : function (e, t) {var s = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 5;var o = arguments.length > 3 ? arguments[3] : undefined;(t = Object.assign({}, t)).errMsg = n;var r = t.tempFiles,i = r.length;var a = 0;return new Promise(function (n) {for (; a < s;) {c();}function c() {var s = a++;if (s >= i) return void (!r.find(function (e) {return !e.url && !e.errMsg;}) && n(t));var u = r[s];e.uploadFile({ filePath: u.path, cloudPath: u.cloudPath, fileType: u.fileType, onUploadProgress: function onUploadProgress(e) {e.index = s, e.tempFile = u, e.tempFilePath = u.path, o && o(e);} }).then(function (e) {u.url = e.fileID, s < i && c();}).catch(function (e) {u.errMsg = e.errMsg || e.message, s < i && c();});}});}(e, t, 5, o);});}t.initChooseAndUploadFile = function (e) {return function () {var t = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : { type: "all" };return "image" === t.type ? r(e, function (e) {var t = e.count,n = e.sizeType,_e$sourceType = e.sourceType,r = _e$sourceType === void 0 ? ["album", "camera"] : _e$sourceType,i = e.extension;return new Promise(function (e, a) {uni.chooseImage({ count: t, sizeType: n, sourceType: r, extension: i, success: function success(t) {e(o(t, "image"));}, fail: function fail(e) {a({ errMsg: e.errMsg.replace("chooseImage:fail", s) });} });});}(t), t) : "video" === t.type ? r(e, function (e) {var t = e.camera,n = e.compressed,r = e.maxDuration,_e$sourceType2 = e.sourceType,i = _e$sourceType2 === void 0 ? ["album", "camera"] : _e$sourceType2,a = e.extension;return new Promise(function (e, c) {uni.chooseVideo({ camera: t, compressed: n, maxDuration: r, sourceType: i, extension: a, success: function success(t) {var n = t.tempFilePath,s = t.duration,r = t.size,i = t.height,a = t.width;e(o({ errMsg: "chooseVideo:ok", tempFilePaths: [n], tempFiles: [{ name: t.tempFile && t.tempFile.name || "", path: n, size: r, type: t.tempFile && t.tempFile.type || "", width: a, height: i, duration: s, fileType: "video", cloudPath: "" }] }, "video"));}, fail: function fail(e) {c({ errMsg: e.errMsg.replace("chooseVideo:fail", s) });} });});}(t), t) : r(e, function (e) {var t = e.count,n = e.extension;return new Promise(function (e, r) {var i = uni.chooseFile;if ("undefined" != typeof wx && "function" == typeof wx.chooseMessageFile && (i = wx.chooseMessageFile), "function" != typeof i) return r({ errMsg: s + " 璇锋寚瀹� type 绫诲瀷锛岃骞冲彴浠呮敮鎸侀�夋嫨 image 鎴� video銆�" });i({ type: "all", count: t, extension: n, success: function success(t) {e(o(t));}, fail: function fail(e) {r({ errMsg: e.errMsg.replace("chooseFile:fail", s) });} });});}(t), t);};};}),rn = n(on);var an = "manual";function cn(e) {return { props: { localdata: { type: Array, default: function _default() {return [];} }, options: { type: [Object, Array], default: function _default() {return {};} }, spaceInfo: { type: Object, default: function _default() {return {};} }, collection: { type: [String, Array], default: "" }, action: { type: String, default: "" }, field: { type: String, default: "" }, orderby: { type: String, default: "" }, where: { type: [String, Object], default: "" }, pageData: { type: String, default: "add" }, pageCurrent: { type: Number, default: 1 }, pageSize: { type: Number, default: 20 }, getcount: { type: [Boolean, String], default: !1 }, gettree: { type: [Boolean, String], default: !1 }, gettreepath: { type: [Boolean, String], default: !1 }, startwith: { type: String, default: "" }, limitlevel: { type: Number, default: 10 }, groupby: { type: String, default: "" }, groupField: { type: String, default: "" }, distinct: { type: [Boolean, String], default: !1 }, foreignKey: { type: String, default: "" }, loadtime: { type: String, default: "auto" }, manual: { type: Boolean, default: !1 } }, data: function data() {return { mixinDatacomLoading: !1, mixinDatacomHasMore: !1, mixinDatacomResData: [], mixinDatacomErrorMessage: "", mixinDatacomPage: {} };}, created: function created() {var _this18 = this;this.mixinDatacomPage = { current: this.pageCurrent, size: this.pageSize, count: 0 }, this.$watch(function () {var e = [];return ["pageCurrent", "pageSize", "localdata", "collection", "action", "field", "orderby", "where", "getont", "getcount", "gettree", "groupby", "groupField", "distinct"].forEach(function (t) {e.push(_this18[t]);}), e;}, function (e, t) {if (_this18.loadtime === an) return;var n = !1;var s = [];for (var _o6 = 2; _o6 < e.length; _o6++) {e[_o6] !== t[_o6] && (s.push(e[_o6]), n = !0);}e[0] !== t[0] && (_this18.mixinDatacomPage.current = _this18.pageCurrent), _this18.mixinDatacomPage.size = _this18.pageSize, _this18.onMixinDatacomPropsChange(n, s);});}, methods: { onMixinDatacomPropsChange: function onMixinDatacomPropsChange(e, t) {}, mixinDatacomEasyGet: function mixinDatacomEasyGet() {var _this19 = this;var _ref36 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},_ref36$getone = _ref36.getone,e = _ref36$getone === void 0 ? !1 : _ref36$getone,t = _ref36.success,n = _ref36.fail;this.mixinDatacomLoading || (this.mixinDatacomLoading = !0, this.mixinDatacomErrorMessage = "", this.mixinDatacomGet().then(function (n) {_this19.mixinDatacomLoading = !1;var _n$result = n.result,s = _n$result.data,o = _n$result.count;_this19.getcount && (_this19.mixinDatacomPage.count = o), _this19.mixinDatacomHasMore = s.length < _this19.pageSize;var r = e ? s.length ? s[0] : void 0 : s;_this19.mixinDatacomResData = r, t && t(r);}).catch(function (e) {_this19.mixinDatacomLoading = !1, _this19.mixinDatacomErrorMessage = e, n && n(e);}));}, mixinDatacomGet: function mixinDatacomGet() {var _n10;var t = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};var n = e.database(this.spaceInfo);var s = t.action || this.action;s && (n = n.action(s));var o = t.collection || this.collection;n = Array.isArray(o) ? (_n10 = n).collection.apply(_n10, _toConsumableArray(o)) : n.collection(o);var r = t.where || this.where;r && Object.keys(r).length && (n = n.where(r));var i = t.field || this.field;i && (n = n.field(i));var a = t.foreignKey || this.foreignKey;a && (n = n.foreignKey(a));var c = t.groupby || this.groupby;c && (n = n.groupBy(c));var u = t.groupField || this.groupField;u && (n = n.groupField(u));!0 === (void 0 !== t.distinct ? t.distinct : this.distinct) && (n = n.distinct());var l = t.orderby || this.orderby;l && (n = n.orderBy(l));var h = void 0 !== t.pageCurrent ? t.pageCurrent : this.mixinDatacomPage.current,d = void 0 !== t.pageSize ? t.pageSize : this.mixinDatacomPage.size,f = void 0 !== t.getcount ? t.getcount : this.getcount,g = void 0 !== t.gettree ? t.gettree : this.gettree,p = void 0 !== t.gettreepath ? t.gettreepath : this.gettreepath,m = { getCount: f },y = { limitLevel: void 0 !== t.limitlevel ? t.limitlevel : this.limitlevel, startWith: void 0 !== t.startwith ? t.startwith : this.startwith };return g && (m.getTree = y), p && (m.getTreePath = y), n = n.skip(d * (h - 1)).limit(d).get(m), n;} } };}function un(e) {return function (t) {var n = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};n = function (e) {var t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};return e.customUI = t.customUI || e.customUI, Object.assign(e.loadingOptions, t.loadingOptions), Object.assign(e.errorOptions, t.errorOptions), "object" == typeof t.secretMethods && (e.secretMethods = t.secretMethods), e;}({ customUI: !1, loadingOptions: { title: "鍔犺浇涓�...", mask: !0 }, errorOptions: { type: "modal", retry: !1 } }, n);var _n11 = n,s = _n11.customUI,o = _n11.loadingOptions,r = _n11.errorOptions,i = !s;return new Proxy({}, { get: function get(s, c) {return function () {var _ref37 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},e = _ref37.fn,t = _ref37.interceptorName,n = _ref37.getCallbackArgs;return /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee31() {var _len,s,_key,o,r,i,_args31 = arguments;return _regenerator.default.wrap(function _callee31$(_context31) {while (1) {switch (_context31.prev = _context31.next) {case 0:for (_len = _args31.length, s = new Array(_len), _key = 0; _key < _len; _key++) {s[_key] = _args31[_key];}o = n ? n({ params: s }) : {};_context31.prev = 2;_context31.next = 5;return A(I(t, "invoke"), _objectSpread({}, o));case 5:_context31.next = 7;return e.apply(void 0, s);case 7:r = _context31.sent;_context31.next = 10;return A(I(t, "success"), _objectSpread(_objectSpread({}, o), {}, { result: r }));case 10:return _context31.abrupt("return", r);case 13:_context31.prev = 13;_context31.t0 = _context31["catch"](2);i = _context31.t0;_context31.next = 18;return A(I(t, "fail"), _objectSpread(_objectSpread({}, o), {}, { error: i }));case 18:throw i;case 19:_context31.prev = 19;_context31.next = 22;return A(I(t, "complete"), i ? _objectSpread(_objectSpread({}, o), {}, { error: i }) : _objectSpread(_objectSpread({}, o), {}, { result: r }));case 22:return _context31.finish(19);case 23:case "end":return _context31.stop();}}}, _callee31, null, [[2, 13, 19, 23]]);}));}({ fn: function () {var _s11 = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee33() {var l,_len2,u,_key2,h,_ref39,d,f,g,_yield,_e30,_e29,_args33 = arguments;return _regenerator.default.wrap(function _callee33$(_context33) {while (1) {switch (_context33.prev = _context33.next) {case 0:i && uni.showLoading({ title: o.title, mask: o.mask });for (_len2 = _args33.length, u = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {u[_key2] = _args33[_key2];}h = { name: t, type: a, data: { method: c, params: u } };"object" == typeof n.secretMethods && function (e, t) {var n = t.data.method,s = e.secretMethods[n];s && (t.secret = s);}(n, h);_context33.prev = 4;_context33.next = 7;return e.callFunction(h);case 7:l = _context33.sent;_context33.next = 13;break;case 10:_context33.prev = 10;_context33.t0 = _context33["catch"](4);l = { result: _context33.t0 };case 13:_ref39 = l.result || {}, d = _ref39.errCode, f = _ref39.errMsg, g = _ref39.newToken;if (!(i && uni.hideLoading(), g && g.token && g.tokenExpired && (it(g), F(R, _objectSpread({}, g))), d)) {_context33.next = 30;break;}if (!i) {_context33.next = 28;break;}if (!("toast" === r.type)) {_context33.next = 20;break;}uni.showToast({ title: f, icon: "none" });_context33.next = 28;break;case 20:if (!("modal" !== r.type)) {_context33.next = 22;break;}throw new Error("Invalid errorOptions.type: ".concat(r.type));case 22:_context33.next = 24;return _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee32() {var _ref41,e,t,n,s,o,_args32 = arguments;return _regenerator.default.wrap(function _callee32$(_context32) {while (1) {switch (_context32.prev = _context32.next) {case 0:_ref41 = _args32.length > 0 && _args32[0] !== undefined ? _args32[0] : {}, e = _ref41.title, t = _ref41.content, n = _ref41.showCancel, s = _ref41.cancelText, o = _ref41.confirmText;return _context32.abrupt("return", new Promise(function (r, i) {uni.showModal({ title: e, content: t, showCancel: n, cancelText: s, confirmText: o, success: function success(e) {r(e);}, fail: function fail() {r({ confirm: !1, cancel: !0 });} });}));case 2:case "end":return _context32.stop();}}}, _callee32);}))({ title: "鎻愮ず", content: f, showCancel: r.retry, cancelText: "鍙栨秷", confirmText: r.retry ? "閲嶈瘯" : "纭畾" });case 24:_yield = _context33.sent;_e30 = _yield.confirm;if (!(r.retry && _e30)) {_context33.next = 28;break;}return _context33.abrupt("return", s.apply(void 0, u));case 28:_e29 = new B({ code: d, message: f, requestId: l.requestId });throw _e29.detail = l.result, F(C, { type: L, content: _e29 }), _e29;case 30:return _context33.abrupt("return", (F(C, { type: L, content: l.result }), l.result));case 31:case "end":return _context33.stop();}}}, _callee33, null, [[4, 10]]);}));function s() {return _s11.apply(this, arguments);}return s;}(), interceptorName: "callObject", getCallbackArgs: function getCallbackArgs() {var _ref42 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},e = _ref42.params;return { objectName: t, methodName: c, params: e };} });} });};}function ln(_x30, _x31) {return _ln.apply(this, arguments);}function _ln() {_ln = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee35(e, t) {var n, _e34, s;return _regenerator.default.wrap(function _callee35$(_context35) {while (1) {switch (_context35.prev = _context35.next) {case 0:n = "http://".concat(e, ":").concat(t, "/system/ping");_context35.prev = 1;_context35.next = 4;return s = { url: n, timeout: 500 }, new Promise(function (e, t) {V.request(_objectSpread(_objectSpread({}, s), {}, { success: function success(t) {e(t);}, fail: function fail(e) {t(e);} }));});case 4:_e34 = _context35.sent;return _context35.abrupt("return", !(!_e34.data || 0 !== _e34.data.code));case 8:_context35.prev = 8;_context35.t0 = _context35["catch"](1);return _context35.abrupt("return", !1);case 11:case "end":return _context35.stop();}}}, _callee35, null, [[1, 8]]);}));return _ln.apply(this, arguments);}function hn(e) {if (e.initUniCloudStatus && "rejected" !== e.initUniCloudStatus) return;var t = Promise.resolve();var n;n = 1, t = new Promise(function (e, t) {setTimeout(function () {e();}, n);}), e.isReady = !1, e.isDefault = !1;var s = e.auth();e.initUniCloudStatus = "pending", e.initUniCloud = t.then(function () {return s.getLoginState();}).then(function (e) {return e ? Promise.resolve() : s.signInAnonymously();}).then(function () {if (!d) return Promise.resolve();if ("app" === g) {var _uni$getSystemInfoSyn = uni.getSystemInfoSync(),_e31 = _uni$getSystemInfoSyn.osName,_t18 = _uni$getSystemInfoSyn.osVersion;"ios" === _e31 && function (e) {if (!e || "string" != typeof e) return 0;var t = e.match(/^(\d+)./);return t && t[1] ? parseInt(t[1]) : 0;}(_t18) >= 14 && console.warn("iOS 14鍙婁互涓婄増鏈繛鎺niCloud鏈湴璋冭瘯鏈嶅姟闇�瑕佸厑璁稿鎴风鏌ユ壘骞惰繛鎺ュ埌鏈湴缃戠粶涓婄殑璁惧锛堜粎寮�鍙戞ā寮忕敓鏁堬紝鍙戣妯″紡浼氳繛鎺niCloud浜戠鏈嶅姟锛�");}if (d && e.__dev__.debugInfo) {var _e$__dev__$debugInfo = e.__dev__.debugInfo,_t19 = _e$__dev__$debugInfo.address,_n12 = _e$__dev__$debugInfo.servePort;return function () {var _ref43 = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee34(e, t) {var n, _s12, _o7;return _regenerator.default.wrap(function _callee34$(_context34) {while (1) {switch (_context34.prev = _context34.next) {case 0:_s12 = 0;case 1:if (!(_s12 < e.length)) {_context34.next = 11;break;}_o7 = e[_s12];_context34.next = 5;return ln(_o7, t);case 5:if (!_context34.sent) {_context34.next = 8;break;}n = _o7;return _context34.abrupt("break", 11);case 8:_s12++;_context34.next = 1;break;case 11:return _context34.abrupt("return", { address: n, port: t });case 12:case "end":return _context34.stop();}}}, _callee34);}));return function (_x32, _x33) {return _ref43.apply(this, arguments);};}()(_t19, _n12);}}).then(function () {var _ref44 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},t = _ref44.address,n = _ref44.port;if (!d) return Promise.resolve();var s = console["app" === g ? "error" : "warn"];if (t) e.__dev__.localAddress = t, e.__dev__.localPort = n;else if (e.__dev__.debugInfo) {var _t20 = "";"remote" === e.__dev__.debugInfo.initialLaunchType ? (e.__dev__.debugInfo.forceRemote = !0, _t20 = "褰撳墠瀹㈡埛绔拰HBuilderX涓嶅湪鍚屼竴灞�鍩熺綉涓嬶紙鎴栧叾浠栫綉缁滃師鍥犳棤娉曡繛鎺BuilderX锛夛紝uniCloud鏈湴璋冭瘯鏈嶅姟涓嶅褰撳墠瀹㈡埛绔敓鏁堛�俓n- 濡傛灉涓嶄娇鐢╱niCloud鏈湴璋冭瘯鏈嶅姟锛岃鐩存帴蹇界暐姝や俊鎭�俓n- 濡傞渶浣跨敤uniCloud鏈湴璋冭瘯鏈嶅姟锛岃灏嗗鎴风涓庝富鏈鸿繛鎺ュ埌鍚屼竴灞�鍩熺綉涓嬪苟閲嶆柊杩愯鍒板鎴风銆俓n- 濡傛灉鍦℉BuilderX寮�鍚殑鐘舵�佷笅鍒囨崲杩囩綉缁滅幆澧冿紝璇烽噸鍚疕BuilderX鍚庡啀璇昞n- 妫�鏌ョ郴缁熼槻鐏鏄惁鎷︽埅浜咹BuilderX鑷甫鐨刵odejs") : _t20 = "鏃犳硶杩炴帴uniCloud鏈湴璋冭瘯鏈嶅姟锛岃妫�鏌ュ綋鍓嶅鎴风鏄惁涓庝富鏈哄湪鍚屼竴灞�鍩熺綉涓嬨�俓n- 濡傞渶浣跨敤uniCloud鏈湴璋冭瘯鏈嶅姟锛岃灏嗗鎴风涓庝富鏈鸿繛鎺ュ埌鍚屼竴灞�鍩熺綉涓嬪苟閲嶆柊杩愯鍒板鎴风銆俓n- 濡傛灉鍦℉BuilderX寮�鍚殑鐘舵�佷笅鍒囨崲杩囩綉缁滅幆澧冿紝璇烽噸鍚疕BuilderX鍚庡啀璇昞n- 妫�鏌ョ郴缁熼槻鐏鏄惁鎷︽埅浜咹BuilderX鑷甫鐨刵odejs", "web" === g && (_t20 += "\n- 閮ㄥ垎娴忚鍣ㄥ紑鍚妭娴佹ā寮忎箣鍚庤闂湰鍦板湴鍧�鍙楅檺锛岃妫�鏌ユ槸鍚﹀惎鐢ㄤ簡鑺傛祦妯″紡"), 0 === g.indexOf("mp-") && (_t20 += "\n- 灏忕▼搴忎腑濡備綍浣跨敤uniCloud锛岃鍙傝�冿細https://uniapp.dcloud.net.cn/uniCloud/publish.html#useinmp"), s(_t20);}}).then(function () {at(), e.isReady = !0, e.initUniCloudStatus = "fulfilled";}).catch(function (t) {console.error(t), e.initUniCloudStatus = "rejected";});}var dn = { tcb: ot, tencent: ot, aliyun: Q, private: ut };var fn = new ( /*#__PURE__*/function () {function _class4() {_classCallCheck(this, _class4);}_createClass(_class4, [{ key: "init", value: function init(e) {var t = {};var n = dn[e.provider];if (!n) throw new Error("鏈彁渚涙纭殑provider鍙傛暟");t = n.init(e), t.__dev__ = {}, t.__dev__.debugLog = d && ("web" === g && navigator.userAgent.indexOf("HBuilderX") > 0 || "app" === g);var s = p;d && s && !s.code && (t.__dev__.debugInfo = s), hn(t), t.reInit = function () {hn(this);}, yt(t), function (e) {var t = e.uploadFile;e.uploadFile = function (e) {return t.call(this, e);};}(t), Ct(t), function (e) {e.getCurrentUserInfo = sn, e.chooseAndUploadFile = rn.initChooseAndUploadFile(e), Object.assign(e, { get mixinDatacom() {return cn(e);} }), e.importObject = un(e);}(t);return ["callFunction", "uploadFile", "deleteFile", "getTempFileURL", "downloadFile", "chooseAndUploadFile"].forEach(function (e) {if (!t[e]) return;var n = t[e];t[e] = function () {return t.reInit(), n.apply(t, Array.from(arguments));}, t[e] = K(t[e], e).bind(t);}), t.init = this.init, t;} }]);return _class4;}())();(function () {var e = m;var t = {};if (e && 1 === e.length) t = e[0], fn = fn.init(t), fn.isDefault = !0;else {var _t21 = ["auth", "callFunction", "uploadFile", "deleteFile", "getTempFileURL", "downloadFile", "database", "getCurrentUSerInfo", "importObject"];var _n13;_n13 = e && e.length > 0 ? "搴旂敤鏈夊涓湇鍔$┖闂达紝璇烽�氳繃uniCloud.init鏂规硶鎸囧畾瑕佷娇鐢ㄧ殑鏈嶅姟绌洪棿" : y ? "搴旂敤鏈叧鑱旀湇鍔$┖闂达紝璇峰湪uniCloud鐩綍鍙抽敭鍏宠仈鏈嶅姟绌洪棿" : "uni-app cli椤圭洰鍐呬娇鐢╱niCloud闇�瑕佷娇鐢℉BuilderX鐨勮繍琛岃彍鍗曡繍琛岄」鐩紝涓旈渶瑕佸湪uniCloud鐩綍鍏宠仈鏈嶅姟绌洪棿", _t21.forEach(function (e) {fn[e] = function () {return console.error(_n13), Promise.reject(new B({ code: "SYS_ERR", message: _n13 }));};});}Object.assign(fn, { get mixinDatacom() {return cn(fn);} }), Zt(fn), fn.addInterceptor = S, fn.removeInterceptor = P, fn.interceptObject = b, d && "web" === g && (window.uniCloud = fn);})();var gn = fn;exports.default = gn;
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../../webpack/buildin/global.js */ 59), __webpack_require__(/*! @dcloudio/uni-mp-weixin/dist/mp.js */ 60)["default"]))
 
 /***/ }),
-/* 64 */
+/* 59 */
 /*!***********************************!*\
   !*** (webpack)/buildin/global.js ***!
   \***********************************/
@@ -3323,7 +2302,7 @@
 
 
 /***/ }),
-/* 65 */
+/* 60 */
 /*!*********************************************************!*\
   !*** ./node_modules/@dcloudio/uni-mp-weixin/dist/mp.js ***!
   \*********************************************************/
@@ -3331,7 +2310,7 @@
 /***/ (function(module, exports, __webpack_require__) {
 
 "use strict";
-/* WEBPACK VAR INJECTION */(function(global) {Object.defineProperty(exports, "__esModule", { value: true });exports.Behavior = Behavior;exports.Component = Component;exports.Page = Page;exports.nextTick = exports.default = void 0;var _vue = _interopRequireDefault(__webpack_require__(/*! vue */ 66));var _PROP_DEFAULT_VALUES;function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}function _defineProperty(obj, key, value) {if (key in obj) {Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true });} else {obj[key] = value;}return obj;}function _slicedToArray(arr, i) {return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();}function _nonIterableRest() {throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}function _unsupportedIterableToArray(o, minLen) {if (!o) return;if (typeof o === "string") return _arrayLikeToArray(o, minLen);var n = Object.prototype.toString.call(o).slice(8, -1);if (n === "Object" && o.constructor) n = o.constructor.name;if (n === "Map" || n === "Set") return Array.from(o);if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);}function _arrayLikeToArray(arr, len) {if (len == null || len > arr.length) len = arr.length;for (var i = 0, arr2 = new Array(len); i < len; i++) {arr2[i] = arr[i];}return arr2;}function _iterableToArrayLimit(arr, i) {if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return;var _arr = [];var _n = true;var _d = false;var _e = undefined;try {for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {_arr.push(_s.value);if (i && _arr.length === i) break;}} catch (err) {_d = true;_e = err;} finally {try {if (!_n && _i["return"] != null) _i["return"]();} finally {if (_d) throw _e;}}return _arr;}function _arrayWithHoles(arr) {if (Array.isArray(arr)) return arr;}
+/* WEBPACK VAR INJECTION */(function(global) {Object.defineProperty(exports, "__esModule", { value: true });exports.Behavior = Behavior;exports.Component = Component;exports.Page = Page;exports.nextTick = exports.default = void 0;var _vue = _interopRequireDefault(__webpack_require__(/*! vue */ 61));var _PROP_DEFAULT_VALUES;function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}function _defineProperty(obj, key, value) {if (key in obj) {Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true });} else {obj[key] = value;}return obj;}function _slicedToArray(arr, i) {return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();}function _nonIterableRest() {throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}function _unsupportedIterableToArray(o, minLen) {if (!o) return;if (typeof o === "string") return _arrayLikeToArray(o, minLen);var n = Object.prototype.toString.call(o).slice(8, -1);if (n === "Object" && o.constructor) n = o.constructor.name;if (n === "Map" || n === "Set") return Array.from(o);if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);}function _arrayLikeToArray(arr, len) {if (len == null || len > arr.length) len = arr.length;for (var i = 0, arr2 = new Array(len); i < len; i++) {arr2[i] = arr[i];}return arr2;}function _iterableToArrayLimit(arr, i) {if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return;var _arr = [];var _n = true;var _d = false;var _e = undefined;try {for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {_arr.push(_s.value);if (i && _arr.length === i) break;}} catch (err) {_d = true;_e = err;} finally {try {if (!_n && _i["return"] != null) _i["return"]();} finally {if (_d) throw _e;}}return _arr;}function _arrayWithHoles(arr) {if (Array.isArray(arr)) return arr;}
 
 function parseData(data, vueComponentOptions) {
   if (!data) {
@@ -4146,10 +3125,10 @@
 var index = uni.__$wx__;var _default =
 
 index;exports.default = _default;
-/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../webpack/buildin/global.js */ 64)))
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../webpack/buildin/global.js */ 59)))
 
 /***/ }),
-/* 66 */
+/* 61 */
 /*!**********************!*\
   !*** external "Vue" ***!
   \**********************/
@@ -4159,17 +3138,17 @@
 module.exports = Vue;
 
 /***/ }),
-/* 67 */
+/* 62 */
 /*!**********************************************************!*\
   !*** ./node_modules/@babel/runtime/regenerator/index.js ***!
   \**********************************************************/
 /*! no static exports found */
 /***/ (function(module, exports, __webpack_require__) {
 
-module.exports = __webpack_require__(/*! regenerator-runtime */ 68);
+module.exports = __webpack_require__(/*! regenerator-runtime */ 63);
 
 /***/ }),
-/* 68 */
+/* 63 */
 /*!************************************************************!*\
   !*** ./node_modules/regenerator-runtime/runtime-module.js ***!
   \************************************************************/
@@ -4200,7 +3179,7 @@
 // Force reevalutation of runtime.js.
 g.regeneratorRuntime = undefined;
 
-module.exports = __webpack_require__(/*! ./runtime */ 69);
+module.exports = __webpack_require__(/*! ./runtime */ 64);
 
 if (hadRuntime) {
   // Restore the original runtime.
@@ -4216,7 +3195,7 @@
 
 
 /***/ }),
-/* 69 */
+/* 64 */
 /*!*****************************************************!*\
   !*** ./node_modules/regenerator-runtime/runtime.js ***!
   \*****************************************************/
@@ -4947,7 +3926,7 @@
 
 
 /***/ }),
-/* 70 */
+/* 65 */
 /*!*************************************************************!*\
   !*** ./node_modules/@dcloudio/uni-i18n/dist/uni-i18n.es.js ***!
   \*************************************************************/
@@ -5407,10 +4386,10 @@
   }
   return chain;
 }
-/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../webpack/buildin/global.js */ 64)))
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../webpack/buildin/global.js */ 59)))
 
 /***/ }),
-/* 71 */
+/* 66 */
 /*!***********************************************************************************!*\
   !*** D:/Workspace/zy/private/Monitor-APP/pages.json?{"type":"origin-pages-json"} ***!
   \***********************************************************************************/
@@ -5421,7 +4400,7 @@
 Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;var _default = { "pages": [{ "path": "pages/home/home", "style": { "navigationStyle": "custom", "app-plus": { "titleNView": false } } }, { "path": "pages/index/index", "style": { "navigationStyle": "custom" } }, { "path": "pages/index/monitor", "style": { "navigationStyle": "custom" } }], "globalStyle": { "navigationBarTextStyle": "black", "navigationBarTitleText": "uni-app", "navigationBarBackgroundColor": "#F8F8F8", "backgroundColor": "#F8F8F8", "pageOrientation": "landscape" } };exports.default = _default;
 
 /***/ }),
-/* 72 */
+/* 67 */
 /*!**********************************************************************!*\
   !*** D:/Workspace/zy/private/Monitor-APP/pages.json?{"type":"stat"} ***!
   \**********************************************************************/
@@ -5432,7 +4411,7 @@
 Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;var _default = { "appid": "__UNI__CA903B7" };exports.default = _default;
 
 /***/ }),
-/* 73 */
+/* 68 */
 /*!****************************************************************************************************!*\
   !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/js_sdk/u-charts/u-charts.js ***!
   \****************************************************************************************************/
@@ -5440,10 +4419,10 @@
 /***/ (function(module, exports, __webpack_require__) {
 
 "use strict";
-eval("/* WEBPACK VAR INJECTION */(function(__f__) {/*\r\n * uCharts庐\r\n * 楂樻�ц兘璺ㄥ钩鍙板浘琛ㄥ簱锛屾敮鎸丠5銆丄PP銆佸皬绋嬪簭锛堝井淇�/鏀粯瀹�/鐧惧害/澶存潯/QQ/360锛夈�乂ue銆乀aro绛夋敮鎸乧anvas鐨勬鏋跺钩鍙癨r\n * Copyright (c) 2021 QIUN庐绉嬩簯 https://www.ucharts.cn All rights reserved.\r\n * Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )\r\n * 澶嶅埗浣跨敤璇蜂繚鐣欐湰娈垫敞閲婏紝鎰熻阿鏀寔寮�婧愶紒\r\n * \r\n * uCharts庐瀹樻柟缃戠珯\r\n * https://www.uCharts.cn\r\n * \r\n * 寮�婧愬湴鍧�:\r\n * https://gitee.com/uCharts/uCharts\r\n * \r\n * uni-app鎻掍欢甯傚満鍦板潃锛歕r\n * http://ext.dcloud.net.cn/plugin?id=271\r\n * \r\n */\n\nObject.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0;function _slicedToArray(arr, i) {return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();}function _nonIterableRest() {throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");}function _unsupportedIterableToArray(o, minLen) {if (!o) return;if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);var n = Object.prototype.toString.call(o).slice(8, -1);if (n === \"Object\" && o.constructor) n = o.constructor.name;if (n === \"Map\" || n === \"Set\") return Array.from(o);if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);}function _arrayLikeToArray(arr, len) {if (len == null || len > arr.length) len = arr.length;for (var i = 0, arr2 = new Array(len); i < len; i++) {arr2[i] = arr[i];}return arr2;}function _iterableToArrayLimit(arr, i) {if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;var _arr = [];var _n = true;var _d = false;var _e = undefined;try {for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {_arr.push(_s.value);if (i && _arr.length === i) break;}} catch (err) {_d = true;_e = err;} finally {try {if (!_n && _i[\"return\"] != null) _i[\"return\"]();} finally {if (_d) throw _e;}}return _arr;}function _arrayWithHoles(arr) {if (Array.isArray(arr)) return arr;}\n\nvar config = {\n  version: 'v2.3.7-20220122',\n  yAxisWidth: 15,\n  yAxisSplit: 5,\n  xAxisHeight: 22,\n  xAxisLineHeight: 22,\n  legendHeight: 15,\n  yAxisTitleWidth: 15,\n  padding: [10, 10, 10, 10],\n  pixelRatio: 1,\n  rotate: false,\n  columePadding: 3,\n  fontSize: 13,\n  fontColor: '#666666',\n  dataPointShape: ['circle', 'circle', 'circle', 'circle'],\n  color: ['#1890FF', '#91CB74', '#FAC858', '#EE6666', '#73C0DE', '#3CA272', '#FC8452', '#9A60B4', '#ea7ccc'],\n  linearColor: ['#0EE2F8', '#2BDCA8', '#FA7D8D', '#EB88E2', '#2AE3A0', '#0EE2F8', '#EB88E2', '#6773E3', '#F78A85'],\n  pieChartLinePadding: 15,\n  pieChartTextPadding: 5,\n  xAxisTextPadding: 3,\n  titleColor: '#333333',\n  titleFontSize: 20,\n  subtitleColor: '#999999',\n  subtitleFontSize: 15,\n  toolTipPadding: 3,\n  toolTipBackground: '#000000',\n  toolTipOpacity: 0.7,\n  toolTipLineHeight: 20,\n  radarLabelTextMargin: 13,\n  gaugeLabelTextMargin: 13 };\n\n\nvar assign = function assign(target) {for (var _len2 = arguments.length, varArgs = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {varArgs[_key2 - 1] = arguments[_key2];}\n  if (target == null) {\n    throw new TypeError('[uCharts] Cannot convert undefined or null to object');\n  }\n  if (!varArgs || varArgs.length <= 0) {\n    return target;\n  }\n  // 娣卞害鍚堝苟瀵硅薄\n  function deepAssign(obj1, obj2) {\n    for (var key in obj2) {\n      obj1[key] = obj1[key] && obj1[key].toString() === \"[object Object]\" ?\n      deepAssign(obj1[key], obj2[key]) : obj1[key] = obj2[key];\n    }\n    return obj1;\n  }\n  varArgs.forEach(function (val) {\n    target = deepAssign(target, val);\n  });\n  return target;\n};\n\nvar util = {\n  toFixed: function toFixed(num, limit) {\n    limit = limit || 2;\n    if (this.isFloat(num)) {\n      num = num.toFixed(limit);\n    }\n    return num;\n  },\n  isFloat: function isFloat(num) {\n    return num % 1 !== 0;\n  },\n  approximatelyEqual: function approximatelyEqual(num1, num2) {\n    return Math.abs(num1 - num2) < 1e-10;\n  },\n  isSameSign: function isSameSign(num1, num2) {\n    return Math.abs(num1) === num1 && Math.abs(num2) === num2 || Math.abs(num1) !== num1 && Math.abs(num2) !== num2;\n  },\n  isSameXCoordinateArea: function isSameXCoordinateArea(p1, p2) {\n    return this.isSameSign(p1.x, p2.x);\n  },\n  isCollision: function isCollision(obj1, obj2) {\n    obj1.end = {};\n    obj1.end.x = obj1.start.x + obj1.width;\n    obj1.end.y = obj1.start.y - obj1.height;\n    obj2.end = {};\n    obj2.end.x = obj2.start.x + obj2.width;\n    obj2.end.y = obj2.start.y - obj2.height;\n    var flag = obj2.start.x > obj1.end.x || obj2.end.x < obj1.start.x || obj2.end.y > obj1.start.y || obj2.start.y < obj1.end.y;\n    return !flag;\n  } };\n\n\n//鍏煎H5鐐瑰嚮浜嬩欢\nfunction getH5Offset(e) {\n  e.mp = {\n    changedTouches: [] };\n\n  e.mp.changedTouches.push({\n    x: e.offsetX,\n    y: e.offsetY });\n\n  return e;\n}\n\n// 缁忕含搴﹁浆澧ㄥ崱鎵榎nfunction lonlat2mercator(longitude, latitude) {\n  var mercator = Array(2);\n  var x = longitude * 20037508.34 / 180;\n  var y = Math.log(Math.tan((90 + latitude) * Math.PI / 360)) / (Math.PI / 180);\n  y = y * 20037508.34 / 180;\n  mercator[0] = x;\n  mercator[1] = y;\n  return mercator;\n}\n\n// 澧ㄥ崱鎵樿浆缁忕含搴nfunction mercator2lonlat(longitude, latitude) {\n  var lonlat = Array(2);\n  var x = longitude / 20037508.34 * 180;\n  var y = latitude / 20037508.34 * 180;\n  y = 180 / Math.PI * (2 * Math.atan(Math.exp(y * Math.PI / 180)) - Math.PI / 2);\n  lonlat[0] = x;\n  lonlat[1] = y;\n  return lonlat;\n}\n\n// hex 杞� rgba\nfunction hexToRgb(hexValue, opc) {\n  var rgx = /^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i;\n  var hex = hexValue.replace(rgx, function (m, r, g, b) {\n    return r + r + g + g + b + b;\n  });\n  var rgb = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n  var r = parseInt(rgb[1], 16);\n  var g = parseInt(rgb[2], 16);\n  var b = parseInt(rgb[3], 16);\n  return 'rgba(' + r + ',' + g + ',' + b + ',' + opc + ')';\n}\n\nfunction findRange(num, type, limit) {\n  if (isNaN(num)) {\n    throw new Error('[uCharts] series鏁版嵁闇�涓篘umber鏍煎紡');\n  }\n  limit = limit || 10;\n  type = type ? type : 'upper';\n  var multiple = 1;\n  while (limit < 1) {\n    limit *= 10;\n    multiple *= 10;\n  }\n  if (type === 'upper') {\n    num = Math.ceil(num * multiple);\n  } else {\n    num = Math.floor(num * multiple);\n  }\n  while (num % limit !== 0) {\n    if (type === 'upper') {\n      num++;\n    } else {\n      num--;\n    }\n  }\n  return num / multiple;\n}\n\nfunction calCandleMA(dayArr, nameArr, colorArr, kdata) {\n  var seriesTemp = [];\n  for (var k = 0; k < dayArr.length; k++) {\n    var seriesItem = {\n      data: [],\n      name: nameArr[k],\n      color: colorArr[k] };\n\n    for (var i = 0, len = kdata.length; i < len; i++) {\n      if (i < dayArr[k]) {\n        seriesItem.data.push(null);\n        continue;\n      }\n      var sum = 0;\n      for (var j = 0; j < dayArr[k]; j++) {\n        sum += kdata[i - j][1];\n      }\n      seriesItem.data.push(+(sum / dayArr[k]).toFixed(3));\n    }\n    seriesTemp.push(seriesItem);\n  }\n  return seriesTemp;\n}\n\nfunction calValidDistance(self, distance, chartData, config, opts) {\n  var dataChartAreaWidth = opts.width - opts.area[1] - opts.area[3];\n  var dataChartWidth = chartData.eachSpacing * (opts.chartData.xAxisData.xAxisPoints.length - 1);\n  var validDistance = distance;\n  if (distance >= 0) {\n    validDistance = 0;\n    self.uevent.trigger('scrollLeft');\n    self.scrollOption.position = 'left';\n    opts.xAxis.scrollPosition = 'left';\n  } else if (Math.abs(distance) >= dataChartWidth - dataChartAreaWidth) {\n    validDistance = dataChartAreaWidth - dataChartWidth;\n    self.uevent.trigger('scrollRight');\n    self.scrollOption.position = 'right';\n    opts.xAxis.scrollPosition = 'right';\n  } else {\n    self.scrollOption.position = distance;\n    opts.xAxis.scrollPosition = distance;\n  }\n  return validDistance;\n}\n\nfunction isInAngleRange(angle, startAngle, endAngle) {\n  function adjust(angle) {\n    while (angle < 0) {\n      angle += 2 * Math.PI;\n    }\n    while (angle > 2 * Math.PI) {\n      angle -= 2 * Math.PI;\n    }\n    return angle;\n  }\n  angle = adjust(angle);\n  startAngle = adjust(startAngle);\n  endAngle = adjust(endAngle);\n  if (startAngle > endAngle) {\n    endAngle += 2 * Math.PI;\n    if (angle < startAngle) {\n      angle += 2 * Math.PI;\n    }\n  }\n  return angle >= startAngle && angle <= endAngle;\n}\n\nfunction calRotateTranslate(x, y, h) {\n  var xv = x;\n  var yv = h - y;\n  var transX = xv + (h - yv - xv) / Math.sqrt(2);\n  transX *= -1;\n  var transY = (h - yv) * (Math.sqrt(2) - 1) - (h - yv - xv) / Math.sqrt(2);\n  return {\n    transX: transX,\n    transY: transY };\n\n}\n\nfunction createCurveControlPoints(points, i) {\n  function isNotMiddlePoint(points, i) {\n    if (points[i - 1] && points[i + 1]) {\n      return points[i].y >= Math.max(points[i - 1].y, points[i + 1].y) || points[i].y <= Math.min(points[i - 1].y,\n      points[i + 1].y);\n    } else {\n      return false;\n    }\n  }\n  function isNotMiddlePointX(points, i) {\n    if (points[i - 1] && points[i + 1]) {\n      return points[i].x >= Math.max(points[i - 1].x, points[i + 1].x) || points[i].x <= Math.min(points[i - 1].x,\n      points[i + 1].x);\n    } else {\n      return false;\n    }\n  }\n  var a = 0.2;\n  var b = 0.2;\n  var pAx = null;\n  var pAy = null;\n  var pBx = null;\n  var pBy = null;\n  if (i < 1) {\n    pAx = points[0].x + (points[1].x - points[0].x) * a;\n    pAy = points[0].y + (points[1].y - points[0].y) * a;\n  } else {\n    pAx = points[i].x + (points[i + 1].x - points[i - 1].x) * a;\n    pAy = points[i].y + (points[i + 1].y - points[i - 1].y) * a;\n  }\n\n  if (i > points.length - 3) {\n    var last = points.length - 1;\n    pBx = points[last].x - (points[last].x - points[last - 1].x) * b;\n    pBy = points[last].y - (points[last].y - points[last - 1].y) * b;\n  } else {\n    pBx = points[i + 1].x - (points[i + 2].x - points[i].x) * b;\n    pBy = points[i + 1].y - (points[i + 2].y - points[i].y) * b;\n  }\n  if (isNotMiddlePoint(points, i + 1)) {\n    pBy = points[i + 1].y;\n  }\n  if (isNotMiddlePoint(points, i)) {\n    pAy = points[i].y;\n  }\n  if (isNotMiddlePointX(points, i + 1)) {\n    pBx = points[i + 1].x;\n  }\n  if (isNotMiddlePointX(points, i)) {\n    pAx = points[i].x;\n  }\n  if (pAy >= Math.max(points[i].y, points[i + 1].y) || pAy <= Math.min(points[i].y, points[i + 1].y)) {\n    pAy = points[i].y;\n  }\n  if (pBy >= Math.max(points[i].y, points[i + 1].y) || pBy <= Math.min(points[i].y, points[i + 1].y)) {\n    pBy = points[i + 1].y;\n  }\n  if (pAx >= Math.max(points[i].x, points[i + 1].x) || pAx <= Math.min(points[i].x, points[i + 1].x)) {\n    pAx = points[i].x;\n  }\n  if (pBx >= Math.max(points[i].x, points[i + 1].x) || pBx <= Math.min(points[i].x, points[i + 1].x)) {\n    pBx = points[i + 1].x;\n  }\n  return {\n    ctrA: {\n      x: pAx,\n      y: pAy },\n\n    ctrB: {\n      x: pBx,\n      y: pBy } };\n\n\n}\n\nfunction convertCoordinateOrigin(x, y, center) {\n  return {\n    x: center.x + x,\n    y: center.y - y };\n\n}\n\nfunction avoidCollision(obj, target) {\n  if (target) {\n    // is collision test\n    while (util.isCollision(obj, target)) {\n      if (obj.start.x > 0) {\n        obj.start.y--;\n      } else if (obj.start.x < 0) {\n        obj.start.y++;\n      } else {\n        if (obj.start.y > 0) {\n          obj.start.y++;\n        } else {\n          obj.start.y--;\n        }\n      }\n    }\n  }\n  return obj;\n}\n\nfunction fixPieSeries(series, opts, config) {\n  var pieSeriesArr = [];\n  if (series.length > 0 && series[0].data.constructor.toString().indexOf('Array') > -1) {\n    opts._pieSeries_ = series;\n    var oldseries = series[0].data;\n    for (var i = 0; i < oldseries.length; i++) {\n      oldseries[i].formatter = series[0].formatter;\n      oldseries[i].data = oldseries[i].value;\n      pieSeriesArr.push(oldseries[i]);\n    }\n    opts.series = pieSeriesArr;\n  } else {\n    pieSeriesArr = series;\n  }\n  return pieSeriesArr;\n}\n\nfunction fillSeries(series, opts, config) {\n  var index = 0;\n  for (var i = 0; i < series.length; i++) {\n    var item = series[i];\n    if (!item.color) {\n      item.color = config.color[index];\n      index = (index + 1) % config.color.length;\n    }\n    if (!item.linearIndex) {\n      item.linearIndex = i;\n    }\n    if (!item.index) {\n      item.index = 0;\n    }\n    if (!item.type) {\n      item.type = opts.type;\n    }\n    if (typeof item.show == \"undefined\") {\n      item.show = true;\n    }\n    if (!item.type) {\n      item.type = opts.type;\n    }\n    if (!item.pointShape) {\n      item.pointShape = \"circle\";\n    }\n    if (!item.legendShape) {\n      switch (item.type) {\n        case 'line':\n          item.legendShape = \"line\";\n          break;\n        case 'column':\n          item.legendShape = \"rect\";\n          break;\n        case 'area':\n          item.legendShape = \"triangle\";\n          break;\n        case 'bar':\n          item.legendShape = \"rect\";\n          break;\n        default:\n          item.legendShape = \"circle\";}\n\n    }\n  }\n  return series;\n}\n\nfunction fillCustomColor(linearType, customColor, series, config) {\n  var newcolor = customColor || [];\n  if (linearType == 'custom' && newcolor.length == 0) {\n    newcolor = config.linearColor;\n  }\n  if (linearType == 'custom' && newcolor.length < series.length) {\n    var chazhi = series.length - newcolor.length;\n    for (var i = 0; i < chazhi; i++) {\n      newcolor.push(config.linearColor[(i + 1) % config.linearColor.length]);\n    }\n  }\n  return newcolor;\n}\n\nfunction getDataRange(minData, maxData) {\n  var limit = 0;\n  var range = maxData - minData;\n  if (range >= 10000) {\n    limit = 1000;\n  } else if (range >= 1000) {\n    limit = 100;\n  } else if (range >= 100) {\n    limit = 10;\n  } else if (range >= 10) {\n    limit = 5;\n  } else if (range >= 1) {\n    limit = 1;\n  } else if (range >= 0.1) {\n    limit = 0.1;\n  } else if (range >= 0.01) {\n    limit = 0.01;\n  } else if (range >= 0.001) {\n    limit = 0.001;\n  } else if (range >= 0.0001) {\n    limit = 0.0001;\n  } else if (range >= 0.00001) {\n    limit = 0.00001;\n  } else {\n    limit = 0.000001;\n  }\n  return {\n    minRange: findRange(minData, 'lower', limit),\n    maxRange: findRange(maxData, 'upper', limit) };\n\n}\n\nfunction measureText(text, fontSize, context) {\n  var width = 0;\n  text = String(text);\n\n\n\n  if (context !== false && context !== undefined && context.setFontSize && context.measureText) {\n    context.setFontSize(fontSize);\n    return context.measureText(text).width;\n  } else {\n    var text = text.split('');\n    for (var i = 0; i < text.length; i++) {\n      var item = text[i];\n      if (/[a-zA-Z]/.test(item)) {\n        width += 7;\n      } else if (/[0-9]/.test(item)) {\n        width += 5.5;\n      } else if (/\\./.test(item)) {\n        width += 2.7;\n      } else if (/-/.test(item)) {\n        width += 3.25;\n      } else if (/:/.test(item)) {\n        width += 2.5;\n      } else if (/[\\u4e00-\\u9fa5]/.test(item)) {\n        width += 10;\n      } else if (/\\(|\\)/.test(item)) {\n        width += 3.73;\n      } else if (/\\s/.test(item)) {\n        width += 2.5;\n      } else if (/%/.test(item)) {\n        width += 8;\n      } else {\n        width += 10;\n      }\n    }\n    return width * fontSize / 10;\n  }\n}\n\nfunction dataCombine(series) {\n  return series.reduce(function (a, b) {\n    return (a.data ? a.data : a).concat(b.data);\n  }, []);\n}\n\nfunction dataCombineStack(series, len) {\n  var sum = new Array(len);\n  for (var j = 0; j < sum.length; j++) {\n    sum[j] = 0;\n  }\n  for (var i = 0; i < series.length; i++) {\n    for (var j = 0; j < sum.length; j++) {\n      sum[j] += series[i].data[j];\n    }\n  }\n  return series.reduce(function (a, b) {\n    return (a.data ? a.data : a).concat(b.data).concat(sum);\n  }, []);\n}\n\nfunction getTouches(touches, opts, e) {\n  var x, y;\n  if (touches.clientX) {\n    if (opts.rotate) {\n      y = opts.height - touches.clientX * opts.pix;\n      x = (touches.pageY - e.currentTarget.offsetTop - opts.height / opts.pix / 2 * (opts.pix - 1)) * opts.pix;\n    } else {\n      x = touches.clientX * opts.pix;\n      y = (touches.pageY - e.currentTarget.offsetTop - opts.height / opts.pix / 2 * (opts.pix - 1)) * opts.pix;\n    }\n  } else {\n    if (opts.rotate) {\n      y = opts.height - touches.x * opts.pix;\n      x = touches.y * opts.pix;\n    } else {\n      x = touches.x * opts.pix;\n      y = touches.y * opts.pix;\n    }\n  }\n  return {\n    x: x,\n    y: y };\n\n}\n\nfunction getSeriesDataItem(series, index, group) {\n  var data = [];\n  var newSeries = [];\n  var indexIsArr = index.constructor.toString().indexOf('Array') > -1;\n  if (indexIsArr) {\n    var tempSeries = filterSeries(series);\n    for (var i = 0; i < group.length; i++) {\n      newSeries.push(tempSeries[group[i]]);\n    }\n  } else {\n    newSeries = series;\n  };\n  for (var _i = 0; _i < newSeries.length; _i++) {\n    var item = newSeries[_i];\n    var tmpindex = -1;\n    if (indexIsArr) {\n      tmpindex = index[_i];\n    } else {\n      tmpindex = index;\n    }\n    if (item.data[tmpindex] !== null && typeof item.data[tmpindex] !== 'undefined' && item.show) {\n      var seriesItem = {};\n      seriesItem.color = item.color;\n      seriesItem.type = item.type;\n      seriesItem.style = item.style;\n      seriesItem.pointShape = item.pointShape;\n      seriesItem.disableLegend = item.disableLegend;\n      seriesItem.name = item.name;\n      seriesItem.show = item.show;\n      seriesItem.data = item.formatter ? item.formatter(item.data[tmpindex]) : item.data[tmpindex];\n      data.push(seriesItem);\n    }\n  }\n  return data;\n}\n\nfunction getMaxTextListLength(list, fontSize, context) {\n  var lengthList = list.map(function (item) {\n    return measureText(item, fontSize, context);\n  });\n  return Math.max.apply(null, lengthList);\n}\n\nfunction getRadarCoordinateSeries(length) {\n  var eachAngle = 2 * Math.PI / length;\n  var CoordinateSeries = [];\n  for (var i = 0; i < length; i++) {\n    CoordinateSeries.push(eachAngle * i);\n  }\n  return CoordinateSeries.map(function (item) {\n    return -1 * item + Math.PI / 2;\n  });\n}\n\nfunction getToolTipData(seriesData, opts, index, group, categories) {\n  var option = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n  var calPoints = opts.chartData.calPoints ? opts.chartData.calPoints : [];\n  var points = {};\n  if (group.length > 0) {\n    var filterPoints = [];\n    for (var i = 0; i < group.length; i++) {\n      filterPoints.push(calPoints[group[i]]);\n    }\n    points = filterPoints[0][index[0]];\n  } else {\n    points = calPoints[0][index];\n  };\n  var textList = seriesData.map(function (item) {\n    var titleText = null;\n    if (opts.categories && opts.categories.length > 0) {\n      titleText = categories[index];\n    };\n    return {\n      text: option.formatter ? option.formatter(item, titleText, index, opts) : item.name + ': ' + item.data,\n      color: item.color };\n\n  });\n  var offset = {\n    x: Math.round(points.x),\n    y: Math.round(points.y) };\n\n  return {\n    textList: textList,\n    offset: offset };\n\n}\n\nfunction getMixToolTipData(seriesData, opts, index, categories) {\n  var option = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};\n  var points = opts.chartData.xAxisPoints[index] + opts.chartData.eachSpacing / 2;\n  var textList = seriesData.map(function (item) {\n    return {\n      text: option.formatter ? option.formatter(item, categories[index], index, opts) : item.name + ': ' + item.data,\n      color: item.color,\n      disableLegend: item.disableLegend ? true : false };\n\n  });\n  textList = textList.filter(function (item) {\n    if (item.disableLegend !== true) {\n      return item;\n    }\n  });\n  var offset = {\n    x: Math.round(points),\n    y: 0 };\n\n  return {\n    textList: textList,\n    offset: offset };\n\n}\n\nfunction getCandleToolTipData(series, seriesData, opts, index, categories, extra) {\n  var option = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : {};\n  var calPoints = opts.chartData.calPoints;\n  var upColor = extra.color.upFill;\n  var downColor = extra.color.downFill;\n  //棰滆壊椤哄簭涓哄紑鐩橈紝鏀剁洏锛屾渶浣庯紝鏈�楂榎n  var color = [upColor, upColor, downColor, upColor];\n  var textList = [];\n  seriesData.map(function (item) {\n    if (index == 0) {\n      if (item.data[1] - item.data[0] < 0) {\n        color[1] = downColor;\n      } else {\n        color[1] = upColor;\n      }\n    } else {\n      if (item.data[0] < series[index - 1][1]) {\n        color[0] = downColor;\n      }\n      if (item.data[1] < item.data[0]) {\n        color[1] = downColor;\n      }\n      if (item.data[2] > series[index - 1][1]) {\n        color[2] = upColor;\n      }\n      if (item.data[3] < series[index - 1][1]) {\n        color[3] = downColor;\n      }\n    }\n    var text1 = {\n      text: '寮�鐩橈細' + item.data[0],\n      color: color[0] };\n\n    var text2 = {\n      text: '鏀剁洏锛�' + item.data[1],\n      color: color[1] };\n\n    var text3 = {\n      text: '鏈�浣庯細' + item.data[2],\n      color: color[2] };\n\n    var text4 = {\n      text: '鏈�楂橈細' + item.data[3],\n      color: color[3] };\n\n    textList.push(text1, text2, text3, text4);\n  });\n  var validCalPoints = [];\n  var offset = {\n    x: 0,\n    y: 0 };\n\n  for (var i = 0; i < calPoints.length; i++) {\n    var points = calPoints[i];\n    if (typeof points[index] !== 'undefined' && points[index] !== null) {\n      validCalPoints.push(points[index]);\n    }\n  }\n  offset.x = Math.round(validCalPoints[0][0].x);\n  return {\n    textList: textList,\n    offset: offset };\n\n}\n\nfunction filterSeries(series) {\n  var tempSeries = [];\n  for (var i = 0; i < series.length; i++) {\n    if (series[i].show == true) {\n      tempSeries.push(series[i]);\n    }\n  }\n  return tempSeries;\n}\n\nfunction findCurrentIndex(currentPoints, calPoints, opts, config) {\n  var offset = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;\n  var current = { index: -1, group: [] };\n  var spacing = opts.chartData.eachSpacing / 2;\n  var xAxisPoints = [];\n  if (calPoints && calPoints.length > 0) {\n    if (!opts.categories) {\n      spacing = 0;\n    } else {\n      for (var i = 1; i < opts.chartData.xAxisPoints.length; i++) {\n        xAxisPoints.push(opts.chartData.xAxisPoints[i] - spacing);\n      }\n      if ((opts.type == 'line' || opts.type == 'area') && opts.xAxis.boundaryGap == 'justify') {\n        xAxisPoints = opts.chartData.xAxisPoints;\n      }\n    }\n    if (isInExactChartArea(currentPoints, opts, config)) {\n      if (!opts.categories) {\n        var timePoints = Array(calPoints.length);\n        for (var _i2 = 0; _i2 < calPoints.length; _i2++) {\n          timePoints[_i2] = Array(calPoints[_i2].length);\n          for (var j = 0; j < calPoints[_i2].length; j++) {\n            timePoints[_i2][j] = Math.abs(calPoints[_i2][j].x - currentPoints.x);\n          }\n        };\n        var pointValue = Array(timePoints.length);\n        var pointIndex = Array(timePoints.length);\n        for (var _i3 = 0; _i3 < timePoints.length; _i3++) {\n          pointValue[_i3] = Math.min.apply(null, timePoints[_i3]);\n          pointIndex[_i3] = timePoints[_i3].indexOf(pointValue[_i3]);\n        }\n        var minValue = Math.min.apply(null, pointValue);\n        current.index = [];\n        for (var _i4 = 0; _i4 < pointValue.length; _i4++) {\n          if (pointValue[_i4] == minValue) {\n            current.group.push(_i4);\n            current.index.push(pointIndex[_i4]);\n          }\n        };\n      } else {\n        xAxisPoints.forEach(function (item, index) {\n          if (currentPoints.x + offset + spacing > item) {\n            current.index = index;\n          }\n        });\n      }\n    }\n  }\n  return current;\n}\n\nfunction findBarChartCurrentIndex(currentPoints, calPoints, opts, config) {\n  var offset = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;\n  var current = { index: -1, group: [] };\n  var spacing = opts.chartData.eachSpacing / 2;\n  var yAxisPoints = opts.chartData.yAxisPoints;\n  if (calPoints && calPoints.length > 0) {\n    if (isInExactChartArea(currentPoints, opts, config)) {\n      yAxisPoints.forEach(function (item, index) {\n        if (currentPoints.y + offset + spacing > item) {\n          current.index = index;\n        }\n      });\n    }\n  }\n  return current;\n}\n\nfunction findLegendIndex(currentPoints, legendData, opts) {\n  var currentIndex = -1;\n  var gap = 0;\n  if (isInExactLegendArea(currentPoints, legendData.area)) {\n    var points = legendData.points;\n    var index = -1;\n    for (var i = 0, len = points.length; i < len; i++) {\n      var item = points[i];\n      for (var j = 0; j < item.length; j++) {\n        index += 1;\n        var area = item[j]['area'];\n        if (area && currentPoints.x > area[0] - gap && currentPoints.x < area[2] + gap && currentPoints.y > area[1] - gap && currentPoints.y < area[3] + gap) {\n          currentIndex = index;\n          break;\n        }\n      }\n    }\n    return currentIndex;\n  }\n  return currentIndex;\n}\n\nfunction isInExactLegendArea(currentPoints, area) {\n  return currentPoints.x > area.start.x && currentPoints.x < area.end.x && currentPoints.y > area.start.y && currentPoints.y < area.end.y;\n}\n\nfunction isInExactChartArea(currentPoints, opts, config) {\n  return currentPoints.x <= opts.width - opts.area[1] + 10 && currentPoints.x >= opts.area[3] - 10 && currentPoints.y >= opts.area[0] && currentPoints.y <= opts.height - opts.area[2];\n}\n\nfunction findRadarChartCurrentIndex(currentPoints, radarData, count) {\n  var eachAngleArea = 2 * Math.PI / count;\n  var currentIndex = -1;\n  if (isInExactPieChartArea(currentPoints, radarData.center, radarData.radius)) {\n    var fixAngle = function fixAngle(angle) {\n      if (angle < 0) {\n        angle += 2 * Math.PI;\n      }\n      if (angle > 2 * Math.PI) {\n        angle -= 2 * Math.PI;\n      }\n      return angle;\n    };\n    var angle = Math.atan2(radarData.center.y - currentPoints.y, currentPoints.x - radarData.center.x);\n    angle = -1 * angle;\n    if (angle < 0) {\n      angle += 2 * Math.PI;\n    }\n    var angleList = radarData.angleList.map(function (item) {\n      item = fixAngle(-1 * item);\n      return item;\n    });\n    angleList.forEach(function (item, index) {\n      var rangeStart = fixAngle(item - eachAngleArea / 2);\n      var rangeEnd = fixAngle(item + eachAngleArea / 2);\n      if (rangeEnd < rangeStart) {\n        rangeEnd += 2 * Math.PI;\n      }\n      if (angle >= rangeStart && angle <= rangeEnd || angle + 2 * Math.PI >= rangeStart && angle + 2 * Math.PI <= rangeEnd) {\n        currentIndex = index;\n      }\n    });\n  }\n  return currentIndex;\n}\n\nfunction findFunnelChartCurrentIndex(currentPoints, funnelData) {\n  var currentIndex = -1;\n  for (var i = 0, len = funnelData.series.length; i < len; i++) {\n    var item = funnelData.series[i];\n    if (currentPoints.x > item.funnelArea[0] && currentPoints.x < item.funnelArea[2] && currentPoints.y > item.funnelArea[1] && currentPoints.y < item.funnelArea[3]) {\n      currentIndex = i;\n      break;\n    }\n  }\n  return currentIndex;\n}\n\nfunction findWordChartCurrentIndex(currentPoints, wordData) {\n  var currentIndex = -1;\n  for (var i = 0, len = wordData.length; i < len; i++) {\n    var item = wordData[i];\n    if (currentPoints.x > item.area[0] && currentPoints.x < item.area[2] && currentPoints.y > item.area[1] && currentPoints.y < item.area[3]) {\n      currentIndex = i;\n      break;\n    }\n  }\n  return currentIndex;\n}\n\nfunction findMapChartCurrentIndex(currentPoints, opts) {\n  var currentIndex = -1;\n  var cData = opts.chartData.mapData;\n  var data = opts.series;\n  var tmp = pointToCoordinate(currentPoints.y, currentPoints.x, cData.bounds, cData.scale, cData.xoffset, cData.yoffset);\n  var poi = [tmp.x, tmp.y];\n  for (var i = 0, len = data.length; i < len; i++) {\n    var item = data[i].geometry.coordinates;\n    if (isPoiWithinPoly(poi, item, opts.chartData.mapData.mercator)) {\n      currentIndex = i;\n      break;\n    }\n  }\n  return currentIndex;\n}\n\nfunction findRoseChartCurrentIndex(currentPoints, pieData, opts) {\n  var currentIndex = -1;\n  var series = getRoseDataPoints(opts._series_, opts.extra.rose.type, pieData.radius, pieData.radius);\n  if (pieData && pieData.center && isInExactPieChartArea(currentPoints, pieData.center, pieData.radius)) {\n    var angle = Math.atan2(pieData.center.y - currentPoints.y, currentPoints.x - pieData.center.x);\n    angle = -angle;\n    if (opts.extra.rose && opts.extra.rose.offsetAngle) {\n      angle = angle - opts.extra.rose.offsetAngle * Math.PI / 180;\n    }\n    for (var i = 0, len = series.length; i < len; i++) {\n      if (isInAngleRange(angle, series[i]._start_, series[i]._start_ + series[i]._rose_proportion_ * 2 * Math.PI)) {\n        currentIndex = i;\n        break;\n      }\n    }\n  }\n  return currentIndex;\n}\n\nfunction findPieChartCurrentIndex(currentPoints, pieData, opts) {\n  var currentIndex = -1;\n  var series = getPieDataPoints(pieData.series);\n  if (pieData && pieData.center && isInExactPieChartArea(currentPoints, pieData.center, pieData.radius)) {\n    var angle = Math.atan2(pieData.center.y - currentPoints.y, currentPoints.x - pieData.center.x);\n    angle = -angle;\n    if (opts.extra.pie && opts.extra.pie.offsetAngle) {\n      angle = angle - opts.extra.pie.offsetAngle * Math.PI / 180;\n    }\n    if (opts.extra.ring && opts.extra.ring.offsetAngle) {\n      angle = angle - opts.extra.ring.offsetAngle * Math.PI / 180;\n    }\n    for (var i = 0, len = series.length; i < len; i++) {\n      if (isInAngleRange(angle, series[i]._start_, series[i]._start_ + series[i]._proportion_ * 2 * Math.PI)) {\n        currentIndex = i;\n        break;\n      }\n    }\n  }\n  return currentIndex;\n}\n\nfunction isInExactPieChartArea(currentPoints, center, radius) {\n  return Math.pow(currentPoints.x - center.x, 2) + Math.pow(currentPoints.y - center.y, 2) <= Math.pow(radius, 2);\n}\n\nfunction splitPoints(points, eachSeries) {\n  var newPoints = [];\n  var items = [];\n  points.forEach(function (item, index) {\n    if (eachSeries.connectNulls) {\n      if (item !== null) {\n        items.push(item);\n      }\n    } else {\n      if (item !== null) {\n        items.push(item);\n      } else {\n        if (items.length) {\n          newPoints.push(items);\n        }\n        items = [];\n      }\n    }\n\n  });\n  if (items.length) {\n    newPoints.push(items);\n  }\n  return newPoints;\n}\n\nfunction calLegendData(series, opts, config, chartData, context) {\n  var legendData = {\n    area: {\n      start: {\n        x: 0,\n        y: 0 },\n\n      end: {\n        x: 0,\n        y: 0 },\n\n      width: 0,\n      height: 0,\n      wholeWidth: 0,\n      wholeHeight: 0 },\n\n    points: [],\n    widthArr: [],\n    heightArr: [] };\n\n  if (opts.legend.show === false) {\n    chartData.legendData = legendData;\n    return legendData;\n  }\n  var padding = opts.legend.padding * opts.pix;\n  var margin = opts.legend.margin * opts.pix;\n  var fontSize = opts.legend.fontSize ? opts.legend.fontSize * opts.pix : config.fontSize;\n  var shapeWidth = 15 * opts.pix;\n  var shapeRight = 5 * opts.pix;\n  var lineHeight = Math.max(opts.legend.lineHeight * opts.pix, fontSize);\n  if (opts.legend.position == 'top' || opts.legend.position == 'bottom') {\n    var legendList = [];\n    var widthCount = 0;\n    var widthCountArr = [];\n    var currentRow = [];\n    for (var i = 0; i < series.length; i++) {\n      var item = series[i];\n      var itemWidth = shapeWidth + shapeRight + measureText(item.name || 'undefined', fontSize, context) + opts.legend.itemGap * opts.pix;\n      if (widthCount + itemWidth > opts.width - opts.area[1] - opts.area[3]) {\n        legendList.push(currentRow);\n        widthCountArr.push(widthCount - opts.legend.itemGap * opts.pix);\n        widthCount = itemWidth;\n        currentRow = [item];\n      } else {\n        widthCount += itemWidth;\n        currentRow.push(item);\n      }\n    }\n    if (currentRow.length) {\n      legendList.push(currentRow);\n      widthCountArr.push(widthCount - opts.legend.itemGap * opts.pix);\n      legendData.widthArr = widthCountArr;\n      var legendWidth = Math.max.apply(null, widthCountArr);\n      switch (opts.legend.float) {\n        case 'left':\n          legendData.area.start.x = opts.area[3];\n          legendData.area.end.x = opts.area[3] + legendWidth + 2 * padding;\n          break;\n        case 'right':\n          legendData.area.start.x = opts.width - opts.area[1] - legendWidth - 2 * padding;\n          legendData.area.end.x = opts.width - opts.area[1];\n          break;\n        default:\n          legendData.area.start.x = (opts.width - legendWidth) / 2 - padding;\n          legendData.area.end.x = (opts.width + legendWidth) / 2 + padding;}\n\n      legendData.area.width = legendWidth + 2 * padding;\n      legendData.area.wholeWidth = legendWidth + 2 * padding;\n      legendData.area.height = legendList.length * lineHeight + 2 * padding;\n      legendData.area.wholeHeight = legendList.length * lineHeight + 2 * padding + 2 * margin;\n      legendData.points = legendList;\n    }\n  } else {\n    var len = series.length;\n    var maxHeight = opts.height - opts.area[0] - opts.area[2] - 2 * margin - 2 * padding;\n    var maxLength = Math.min(Math.floor(maxHeight / lineHeight), len);\n    legendData.area.height = maxLength * lineHeight + padding * 2;\n    legendData.area.wholeHeight = maxLength * lineHeight + padding * 2;\n    switch (opts.legend.float) {\n      case 'top':\n        legendData.area.start.y = opts.area[0] + margin;\n        legendData.area.end.y = opts.area[0] + margin + legendData.area.height;\n        break;\n      case 'bottom':\n        legendData.area.start.y = opts.height - opts.area[2] - margin - legendData.area.height;\n        legendData.area.end.y = opts.height - opts.area[2] - margin;\n        break;\n      default:\n        legendData.area.start.y = (opts.height - legendData.area.height) / 2;\n        legendData.area.end.y = (opts.height + legendData.area.height) / 2;}\n\n    var lineNum = len % maxLength === 0 ? len / maxLength : Math.floor(len / maxLength + 1);\n    var _currentRow = [];\n    for (var _i5 = 0; _i5 < lineNum; _i5++) {\n      var temp = series.slice(_i5 * maxLength, _i5 * maxLength + maxLength);\n      _currentRow.push(temp);\n    }\n    legendData.points = _currentRow;\n    if (_currentRow.length) {\n      for (var _i6 = 0; _i6 < _currentRow.length; _i6++) {\n        var _item = _currentRow[_i6];\n        var maxWidth = 0;\n        for (var j = 0; j < _item.length; j++) {\n          var _itemWidth = shapeWidth + shapeRight + measureText(_item[j].name || 'undefined', fontSize, context) + opts.legend.itemGap * opts.pix;\n          if (_itemWidth > maxWidth) {\n            maxWidth = _itemWidth;\n          }\n        }\n        legendData.widthArr.push(maxWidth);\n        legendData.heightArr.push(_item.length * lineHeight + padding * 2);\n      }\n      var _legendWidth = 0;\n      for (var _i7 = 0; _i7 < legendData.widthArr.length; _i7++) {\n        _legendWidth += legendData.widthArr[_i7];\n      }\n      legendData.area.width = _legendWidth - opts.legend.itemGap * opts.pix + 2 * padding;\n      legendData.area.wholeWidth = legendData.area.width + padding;\n    }\n  }\n  switch (opts.legend.position) {\n    case 'top':\n      legendData.area.start.y = opts.area[0] + margin;\n      legendData.area.end.y = opts.area[0] + margin + legendData.area.height;\n      break;\n    case 'bottom':\n      legendData.area.start.y = opts.height - opts.area[2] - legendData.area.height - margin;\n      legendData.area.end.y = opts.height - opts.area[2] - margin;\n      break;\n    case 'left':\n      legendData.area.start.x = opts.area[3];\n      legendData.area.end.x = opts.area[3] + legendData.area.width;\n      break;\n    case 'right':\n      legendData.area.start.x = opts.width - opts.area[1] - legendData.area.width;\n      legendData.area.end.x = opts.width - opts.area[1];\n      break;}\n\n  chartData.legendData = legendData;\n  return legendData;\n}\n\nfunction calCategoriesData(categories, opts, config, eachSpacing, context) {\n  var result = {\n    angle: 0,\n    xAxisHeight: config.xAxisHeight };\n\n  var categoriesTextLenth = categories.map(function (item) {\n    return measureText(item, opts.xAxis.fontSize * opts.pix || config.fontSize, context);\n  });\n  var maxTextLength = Math.max.apply(this, categoriesTextLenth);\n\n  if (opts.xAxis.rotateLabel == true && maxTextLength + 2 * config.xAxisTextPadding > eachSpacing) {\n    result.angle = 45 * Math.PI / 180;\n    result.xAxisHeight = 2 * config.xAxisTextPadding + maxTextLength * Math.sin(result.angle);\n  }\n  return result;\n}\n\nfunction getXAxisTextList(series, opts, config, stack) {\n  var index = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : -1;\n  var data;\n  if (stack == 'stack') {\n    data = dataCombineStack(series, opts.categories.length);\n  } else {\n    data = dataCombine(series);\n  }\n  var sorted = [];\n  // remove null from data\n  data = data.filter(function (item) {\n    //return item !== null;\n    if (typeof item === 'object' && item !== null) {\n      if (item.constructor.toString().indexOf('Array') > -1) {\n        return item !== null;\n      } else {\n        return item.value !== null;\n      }\n    } else {\n      return item !== null;\n    }\n  });\n  data.map(function (item) {\n    if (typeof item === 'object') {\n      if (item.constructor.toString().indexOf('Array') > -1) {\n        if (opts.type == 'candle') {\n          item.map(function (subitem) {\n            sorted.push(subitem);\n          });\n        } else {\n          sorted.push(item[0]);\n        }\n      } else {\n        sorted.push(item.value);\n      }\n    } else {\n      sorted.push(item);\n    }\n  });\n\n  var minData = 0;\n  var maxData = 0;\n  if (sorted.length > 0) {\n    minData = Math.min.apply(this, sorted);\n    maxData = Math.max.apply(this, sorted);\n  }\n  //涓轰簡鍏煎v1.9.0涔嬪墠鐨勯」鐩甛n  if (index > -1) {\n    if (typeof opts.xAxis.data[index].min === 'number') {\n      minData = Math.min(opts.xAxis.data[index].min, minData);\n    }\n    if (typeof opts.xAxis.data[index].max === 'number') {\n      maxData = Math.max(opts.xAxis.data[index].max, maxData);\n    }\n  } else {\n    if (typeof opts.xAxis.min === 'number') {\n      minData = Math.min(opts.xAxis.min, minData);\n    }\n    if (typeof opts.xAxis.max === 'number') {\n      maxData = Math.max(opts.xAxis.max, maxData);\n    }\n  }\n  if (minData === maxData) {\n    var rangeSpan = maxData || 10;\n    maxData += rangeSpan;\n  }\n  //var dataRange = getDataRange(minData, maxData);\n  var minRange = minData;\n  var maxRange = maxData;\n  var range = [];\n  var eachRange = (maxRange - minRange) / opts.xAxis.splitNumber;\n  for (var i = 0; i <= opts.xAxis.splitNumber; i++) {\n    range.push(minRange + eachRange * i);\n  }\n  return range;\n}\n\nfunction calXAxisData(series, opts, config, context) {\n  //鍫嗗彔鍥鹃噸绠梇杞碶n  var columnstyle = assign({}, {\n    type: \"\" },\n  opts.extra.bar);\n  var result = {\n    angle: 0,\n    xAxisHeight: config.xAxisHeight };\n\n  result.ranges = getXAxisTextList(series, opts, config, columnstyle.type);\n  result.rangesFormat = result.ranges.map(function (item) {\n    //item = opts.xAxis.formatter ? opts.xAxis.formatter(item) : util.toFixed(item, 2);\n    item = util.toFixed(item, 2);\n    return item;\n  });\n  var xAxisScaleValues = result.ranges.map(function (item) {\n    // 濡傛灉鍒诲害鍊兼槸娴偣鏁�,鍒欎繚鐣欎袱浣嶅皬鏁癨n    item = util.toFixed(item, 2);\n    // 鑻ユ湁鑷畾涔夋牸寮忓垯璋冪敤鑷畾涔夌殑鏍煎紡鍖栧嚱鏁癨n    //item = opts.xAxis.formatter ? opts.xAxis.formatter(Number(item)) : item;\n    return item;\n  });\n  result = Object.assign(result, getXAxisPoints(xAxisScaleValues, opts, config));\n  // 璁$畻X杞村埢搴︾殑灞炴�ц濡傛瘡涓埢搴︾殑闂撮殧,鍒诲害鐨勮捣濮嬬偣\\缁撴潫鐐逛互鍙婃�婚暱\n  var eachSpacing = result.eachSpacing;\n  var textLength = xAxisScaleValues.map(function (item) {\n    return measureText(item, opts.xAxis.fontSize * opts.pix || config.fontSize, context);\n  });\n  // get max length of categories text\n  var maxTextLength = Math.max.apply(this, textLength);\n  // 濡傛灉鍒诲害鍊兼枃鏈唴瀹硅繃闀�,鍒欏皢鍏堕�嗘椂閽堟棆杞�45掳\n  if (maxTextLength + 2 * config.xAxisTextPadding > eachSpacing) {\n    result.angle = 45 * Math.PI / 180;\n    result.xAxisHeight = 2 * config.xAxisTextPadding + maxTextLength * Math.sin(result.angle);\n  }\n  if (opts.xAxis.disabled === true) {\n    result.xAxisHeight = 0;\n  }\n  return result;\n}\n\nfunction getRadarDataPoints(angleList, center, radius, series, opts) {\n  var process = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 1;\n  var radarOption = opts.extra.radar || {};\n  radarOption.max = radarOption.max || 0;\n  var maxData = Math.max(radarOption.max, Math.max.apply(null, dataCombine(series)));\n  var data = [];var _loop2 = function _loop2(\n  i) {\n    var each = series[i];\n    var listItem = {};\n    listItem.color = each.color;\n    listItem.legendShape = each.legendShape;\n    listItem.pointShape = each.pointShape;\n    listItem.data = [];\n    each.data.forEach(function (item, index) {\n      var tmp = {};\n      tmp.angle = angleList[index];\n      tmp.proportion = item / maxData;\n      tmp.value = item;\n      tmp.position = convertCoordinateOrigin(radius * tmp.proportion * process * Math.cos(tmp.angle), radius * tmp.proportion * process * Math.sin(tmp.angle), center);\n      listItem.data.push(tmp);\n    });\n    data.push(listItem);};for (var i = 0; i < series.length; i++) {_loop2(i);\n  }\n  return data;\n}\n\nfunction getPieDataPoints(series, radius) {\n  var process = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n  var count = 0;\n  var _start_ = 0;\n  for (var i = 0; i < series.length; i++) {\n    var item = series[i];\n    item.data = item.data === null ? 0 : item.data;\n    count += item.data;\n  }\n  for (var _i8 = 0; _i8 < series.length; _i8++) {\n    var _item2 = series[_i8];\n    _item2.data = _item2.data === null ? 0 : _item2.data;\n    if (count === 0) {\n      _item2._proportion_ = 1 / series.length * process;\n    } else {\n      _item2._proportion_ = _item2.data / count * process;\n    }\n    _item2._radius_ = radius;\n  }\n  for (var _i9 = 0; _i9 < series.length; _i9++) {\n    var _item3 = series[_i9];\n    _item3._start_ = _start_;\n    _start_ += 2 * _item3._proportion_ * Math.PI;\n  }\n  return series;\n}\n\nfunction getFunnelDataPoints(series, radius, type, eachSpacing) {\n  var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n  series = series.sort(function (a, b) {\n    return parseInt(b.data) - parseInt(a.data);\n  });\n  for (var i = 0; i < series.length; i++) {\n    if (type == 'funnel') {\n      series[i].radius = series[i].data / series[0].data * radius * process;\n    } else {\n      series[i].radius = eachSpacing * (series.length - i) / (eachSpacing * series.length) * radius * process;\n    }\n    series[i]._proportion_ = series[i].data / series[0].data;\n  }\n  if (type !== 'pyramid') {\n    series.reverse();\n  }\n  return series;\n}\n\nfunction getRoseDataPoints(series, type, minRadius, radius) {\n  var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n  var count = 0;\n  var _start_ = 0;\n  var dataArr = [];\n  for (var i = 0; i < series.length; i++) {\n    var item = series[i];\n    item.data = item.data === null ? 0 : item.data;\n    count += item.data;\n    dataArr.push(item.data);\n  }\n  var minData = Math.min.apply(null, dataArr);\n  var maxData = Math.max.apply(null, dataArr);\n  var radiusLength = radius - minRadius;\n  for (var _i10 = 0; _i10 < series.length; _i10++) {\n    var _item4 = series[_i10];\n    _item4.data = _item4.data === null ? 0 : _item4.data;\n    if (count === 0) {\n      _item4._proportion_ = 1 / series.length * process;\n      _item4._rose_proportion_ = 1 / series.length * process;\n    } else {\n      _item4._proportion_ = _item4.data / count * process;\n      if (type == 'area') {\n        _item4._rose_proportion_ = 1 / series.length * process;\n      } else {\n        _item4._rose_proportion_ = _item4.data / count * process;\n      }\n    }\n    _item4._radius_ = minRadius + radiusLength * ((_item4.data - minData) / (maxData - minData)) || radius;\n  }\n  for (var _i11 = 0; _i11 < series.length; _i11++) {\n    var _item5 = series[_i11];\n    _item5._start_ = _start_;\n    _start_ += 2 * _item5._rose_proportion_ * Math.PI;\n  }\n  return series;\n}\n\nfunction getArcbarDataPoints(series, arcbarOption) {\n  var process = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n  if (process == 1) {\n    process = 0.999999;\n  }\n  for (var i = 0; i < series.length; i++) {\n    var item = series[i];\n    item.data = item.data === null ? 0 : item.data;\n    var totalAngle = void 0;\n    if (arcbarOption.type == 'circle') {\n      totalAngle = 2;\n    } else {\n      if (arcbarOption.endAngle < arcbarOption.startAngle) {\n        totalAngle = 2 + arcbarOption.endAngle - arcbarOption.startAngle;\n      } else {\n        totalAngle = arcbarOption.startAngle - arcbarOption.endAngle;\n      }\n    }\n    item._proportion_ = totalAngle * item.data * process + arcbarOption.startAngle;\n    if (item._proportion_ >= 2) {\n      item._proportion_ = item._proportion_ % 2;\n    }\n  }\n  return series;\n}\n\nfunction getGaugeAxisPoints(categories, startAngle, endAngle) {\n  var totalAngle = startAngle - endAngle + 1;\n  var tempStartAngle = startAngle;\n  for (var i = 0; i < categories.length; i++) {\n    categories[i].value = categories[i].value === null ? 0 : categories[i].value;\n    categories[i]._startAngle_ = tempStartAngle;\n    categories[i]._endAngle_ = totalAngle * categories[i].value + startAngle;\n    if (categories[i]._endAngle_ >= 2) {\n      categories[i]._endAngle_ = categories[i]._endAngle_ % 2;\n    }\n    tempStartAngle = categories[i]._endAngle_;\n  }\n  return categories;\n}\n\nfunction getGaugeDataPoints(series, categories, gaugeOption) {\n  var process = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;\n  for (var i = 0; i < series.length; i++) {\n    var item = series[i];\n    item.data = item.data === null ? 0 : item.data;\n    if (gaugeOption.pointer.color == 'auto') {\n      for (var _i12 = 0; _i12 < categories.length; _i12++) {\n        if (item.data <= categories[_i12].value) {\n          item.color = categories[_i12].color;\n          break;\n        }\n      }\n    } else {\n      item.color = gaugeOption.pointer.color;\n    }\n    var totalAngle = gaugeOption.startAngle - gaugeOption.endAngle + 1;\n    item._endAngle_ = totalAngle * item.data + gaugeOption.startAngle;\n    item._oldAngle_ = gaugeOption.oldAngle;\n    if (gaugeOption.oldAngle < gaugeOption.endAngle) {\n      item._oldAngle_ += 2;\n    }\n    if (item.data >= gaugeOption.oldData) {\n      item._proportion_ = (item._endAngle_ - item._oldAngle_) * process + gaugeOption.oldAngle;\n    } else {\n      item._proportion_ = item._oldAngle_ - (item._oldAngle_ - item._endAngle_) * process;\n    }\n    if (item._proportion_ >= 2) {\n      item._proportion_ = item._proportion_ % 2;\n    }\n  }\n  return series;\n}\n\nfunction getPieTextMaxLength(series, config, context, opts) {\n  series = getPieDataPoints(series);\n  var maxLength = 0;\n  for (var i = 0; i < series.length; i++) {\n    var item = series[i];\n    var text = item.formatter ? item.formatter(+item._proportion_.toFixed(2)) : util.toFixed(item._proportion_ * 100) + '%';\n    maxLength = Math.max(maxLength, measureText(text, item.textSize * opts.pix || config.fontSize, context));\n  }\n  return maxLength;\n}\n\nfunction fixColumeData(points, eachSpacing, columnLen, index, config, opts) {\n  return points.map(function (item) {\n    if (item === null) {\n      return null;\n    }\n    var seriesGap = 0;\n    var categoryGap = 0;\n    if (opts.type == 'mix') {\n      seriesGap = opts.extra.mix.column.seriesGap * opts.pix || 0;\n      categoryGap = opts.extra.mix.column.categoryGap * opts.pix || 0;\n    } else {\n      seriesGap = opts.extra.column.seriesGap * opts.pix || 0;\n      categoryGap = opts.extra.column.categoryGap * opts.pix || 0;\n    }\n    seriesGap = Math.min(seriesGap, eachSpacing / columnLen);\n    categoryGap = Math.min(categoryGap, eachSpacing / columnLen);\n    item.width = Math.ceil((eachSpacing - 2 * categoryGap - seriesGap * (columnLen - 1)) / columnLen);\n    if (opts.extra.mix && opts.extra.mix.column.width && +opts.extra.mix.column.width > 0) {\n      item.width = Math.min(item.width, +opts.extra.mix.column.width * opts.pix);\n    }\n    if (opts.extra.column && opts.extra.column.width && +opts.extra.column.width > 0) {\n      item.width = Math.min(item.width, +opts.extra.column.width * opts.pix);\n    }\n    if (item.width <= 0) {\n      item.width = 1;\n    }\n    item.x += (index + 0.5 - columnLen / 2) * (item.width + seriesGap);\n    return item;\n  });\n}\n\nfunction fixBarData(points, eachSpacing, columnLen, index, config, opts) {\n  return points.map(function (item) {\n    if (item === null) {\n      return null;\n    }\n    var seriesGap = 0;\n    var categoryGap = 0;\n    seriesGap = opts.extra.bar.seriesGap * opts.pix || 0;\n    categoryGap = opts.extra.bar.categoryGap * opts.pix || 0;\n    seriesGap = Math.min(seriesGap, eachSpacing / columnLen);\n    categoryGap = Math.min(categoryGap, eachSpacing / columnLen);\n    item.width = Math.ceil((eachSpacing - 2 * categoryGap - seriesGap * (columnLen - 1)) / columnLen);\n    if (opts.extra.bar && opts.extra.bar.width && +opts.extra.bar.width > 0) {\n      item.width = Math.min(item.width, +opts.extra.bar.width * opts.pix);\n    }\n    if (item.width <= 0) {\n      item.width = 1;\n    }\n    item.y += (index + 0.5 - columnLen / 2) * (item.width + seriesGap);\n    return item;\n  });\n}\n\nfunction fixColumeMeterData(points, eachSpacing, columnLen, index, config, opts, border) {\n  var categoryGap = opts.extra.column.categoryGap * opts.pix || 0;\n  return points.map(function (item) {\n    if (item === null) {\n      return null;\n    }\n    item.width = Math.ceil(eachSpacing - 2 * categoryGap);\n    if (opts.extra.column && opts.extra.column.width && +opts.extra.column.width > 0) {\n      item.width = Math.min(item.width, +opts.extra.column.width * opts.pix);\n    }\n    if (index > 0) {\n      item.width -= 2 * border;\n    }\n    return item;\n  });\n}\n\nfunction fixColumeStackData(points, eachSpacing, columnLen, index, config, opts, series) {\n  var categoryGap = opts.extra.column.categoryGap * opts.pix || 0;\n  return points.map(function (item, indexn) {\n    if (item === null) {\n      return null;\n    }\n    item.width = Math.ceil(eachSpacing - 2 * categoryGap);\n    if (opts.extra.column && opts.extra.column.width && +opts.extra.column.width > 0) {\n      item.width = Math.min(item.width, +opts.extra.column.width * opts.pix);\n    }\n    if (item.width <= 0) {\n      item.width = 1;\n    }\n    return item;\n  });\n}\n\nfunction fixBarStackData(points, eachSpacing, columnLen, index, config, opts, series) {\n  var categoryGap = opts.extra.bar.categoryGap * opts.pix || 0;\n  return points.map(function (item, indexn) {\n    if (item === null) {\n      return null;\n    }\n    item.width = Math.ceil(eachSpacing - 2 * categoryGap);\n    if (opts.extra.bar && opts.extra.bar.width && +opts.extra.bar.width > 0) {\n      item.width = Math.min(item.width, +opts.extra.bar.width * opts.pix);\n    }\n    if (item.width <= 0) {\n      item.width = 1;\n    }\n    return item;\n  });\n}\n\nfunction getXAxisPoints(categories, opts, config) {\n  var spacingValid = opts.width - opts.area[1] - opts.area[3];\n  var dataCount = opts.enableScroll ? Math.min(opts.xAxis.itemCount, categories.length) : categories.length;\n  if ((opts.type == 'line' || opts.type == 'area' || opts.type == 'scatter' || opts.type == 'bubble' || opts.type == 'bar') && dataCount > 1 && opts.xAxis.boundaryGap == 'justify') {\n    dataCount -= 1;\n  }\n  var eachSpacing = spacingValid / dataCount;\n  var xAxisPoints = [];\n  var startX = opts.area[3];\n  var endX = opts.width - opts.area[1];\n  categories.forEach(function (item, index) {\n    xAxisPoints.push(startX + index * eachSpacing);\n  });\n  if (opts.xAxis.boundaryGap !== 'justify') {\n    if (opts.enableScroll === true) {\n      xAxisPoints.push(startX + categories.length * eachSpacing);\n    } else {\n      xAxisPoints.push(endX);\n    }\n  }\n  return {\n    xAxisPoints: xAxisPoints,\n    startX: startX,\n    endX: endX,\n    eachSpacing: eachSpacing };\n\n}\n\nfunction getCandleDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config) {\n  var process = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : 1;\n  var points = [];\n  var validHeight = opts.height - opts.area[0] - opts.area[2];\n  data.forEach(function (item, index) {\n    if (item === null) {\n      points.push(null);\n    } else {\n      var cPoints = [];\n      item.forEach(function (items, indexs) {\n        var point = {};\n        point.x = xAxisPoints[index] + Math.round(eachSpacing / 2);\n        var value = items.value || items;\n        var height = validHeight * (value - minRange) / (maxRange - minRange);\n        height *= process;\n        point.y = opts.height - Math.round(height) - opts.area[2];\n        cPoints.push(point);\n      });\n      points.push(cPoints);\n    }\n  });\n  return points;\n}\n\nfunction getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config) {\n  var process = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : 1;\n  var boundaryGap = 'center';\n  if (opts.type == 'line' || opts.type == 'area' || opts.type == 'scatter' || opts.type == 'bubble') {\n    boundaryGap = opts.xAxis.boundaryGap;\n  }\n  var points = [];\n  var validHeight = opts.height - opts.area[0] - opts.area[2];\n  var validWidth = opts.width - opts.area[1] - opts.area[3];\n  data.forEach(function (item, index) {\n    if (item === null) {\n      points.push(null);\n    } else {\n      var point = {};\n      point.color = item.color;\n      point.x = xAxisPoints[index];\n      var value = item;\n      if (typeof item === 'object' && item !== null) {\n        if (item.constructor.toString().indexOf('Array') > -1) {\n          var xranges, xminRange, xmaxRange;\n          xranges = [].concat(opts.chartData.xAxisData.ranges);\n          xminRange = xranges.shift();\n          xmaxRange = xranges.pop();\n          value = item[1];\n          point.x = opts.area[3] + validWidth * (item[0] - xminRange) / (xmaxRange - xminRange);\n          if (opts.type == 'bubble') {\n            point.r = item[2];\n            point.t = item[3];\n          }\n        } else {\n          value = item.value;\n        }\n      }\n      if (boundaryGap == 'center') {\n        point.x += eachSpacing / 2;\n      }\n      var height = validHeight * (value - minRange) / (maxRange - minRange);\n      height *= process;\n      point.y = opts.height - height - opts.area[2];\n      points.push(point);\n    }\n  });\n  return points;\n}\n\nfunction getBarDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config) {\n  var process = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : 1;\n  var points = [];\n  var validHeight = opts.height - opts.area[0] - opts.area[2];\n  var validWidth = opts.width - opts.area[1] - opts.area[3];\n  data.forEach(function (item, index) {\n    if (item === null) {\n      points.push(null);\n    } else {\n      var point = {};\n      point.color = item.color;\n      point.y = yAxisPoints[index];\n      var value = item;\n      if (typeof item === 'object' && item !== null) {\n        value = item.value;\n      }\n      var height = validWidth * (value - minRange) / (maxRange - minRange);\n      height *= process;\n      point.height = height;\n      point.value = value;\n      point.x = height + opts.area[3];\n      points.push(point);\n    }\n  });\n  return points;\n}\n\nfunction getStackDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, seriesIndex, stackSeries) {\n  var process = arguments.length > 9 && arguments[9] !== undefined ? arguments[9] : 1;\n  var points = [];\n  var validHeight = opts.height - opts.area[0] - opts.area[2];\n  data.forEach(function (item, index) {\n    if (item === null) {\n      points.push(null);\n    } else {\n      var point = {};\n      point.color = item.color;\n      point.x = xAxisPoints[index] + Math.round(eachSpacing / 2);\n\n      if (seriesIndex > 0) {\n        var value = 0;\n        for (var i = 0; i <= seriesIndex; i++) {\n          value += stackSeries[i].data[index];\n        }\n        var value0 = value - item;\n        var height = validHeight * (value - minRange) / (maxRange - minRange);\n        var height0 = validHeight * (value0 - minRange) / (maxRange - minRange);\n      } else {\n        var value = item;\n        var height = validHeight * (value - minRange) / (maxRange - minRange);\n        var height0 = 0;\n      }\n      var heightc = height0;\n      height *= process;\n      heightc *= process;\n      point.y = opts.height - Math.round(height) - opts.area[2];\n      point.y0 = opts.height - Math.round(heightc) - opts.area[2];\n      points.push(point);\n    }\n  });\n  return points;\n}\n\nfunction getBarStackDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config, seriesIndex, stackSeries) {\n  var process = arguments.length > 9 && arguments[9] !== undefined ? arguments[9] : 1;\n  var points = [];\n  var validHeight = opts.width - opts.area[1] - opts.area[3];\n  data.forEach(function (item, index) {\n    if (item === null) {\n      points.push(null);\n    } else {\n      var point = {};\n      point.color = item.color;\n      point.y = yAxisPoints[index];\n      if (seriesIndex > 0) {\n        var value = 0;\n        for (var i = 0; i <= seriesIndex; i++) {\n          value += stackSeries[i].data[index];\n        }\n        var value0 = value - item;\n        var height = validHeight * (value - minRange) / (maxRange - minRange);\n        var height0 = validHeight * (value0 - minRange) / (maxRange - minRange);\n      } else {\n        var value = item;\n        var height = validHeight * (value - minRange) / (maxRange - minRange);\n        var height0 = 0;\n      }\n      var heightc = height0;\n      height *= process;\n      heightc *= process;\n      point.height = height - heightc;\n      point.x = opts.area[3] + height;\n      point.x0 = opts.area[3] + heightc;\n      points.push(point);\n    }\n  });\n  return points;\n}\n\nfunction getYAxisTextList(series, opts, config, stack, yData) {\n  var index = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : -1;\n  var data;\n  if (stack == 'stack') {\n    data = dataCombineStack(series, opts.categories.length);\n  } else {\n    data = dataCombine(series);\n  }\n  var sorted = [];\n  // remove null from data\n  data = data.filter(function (item) {\n    //return item !== null;\n    if (typeof item === 'object' && item !== null) {\n      if (item.constructor.toString().indexOf('Array') > -1) {\n        return item !== null;\n      } else {\n        return item.value !== null;\n      }\n    } else {\n      return item !== null;\n    }\n  });\n  data.map(function (item) {\n    if (typeof item === 'object') {\n      if (item.constructor.toString().indexOf('Array') > -1) {\n        if (opts.type == 'candle') {\n          item.map(function (subitem) {\n            sorted.push(subitem);\n          });\n        } else {\n          sorted.push(item[1]);\n        }\n      } else {\n        sorted.push(item.value);\n      }\n    } else {\n      sorted.push(item);\n    }\n  });\n  var minData = yData.min || 0;\n  var maxData = yData.max || 0;\n  if (sorted.length > 0) {\n    minData = Math.min.apply(this, sorted);\n    maxData = Math.max.apply(this, sorted);\n  }\n  //涓轰簡鍏煎v1.9.0涔嬪墠鐨勯」鐩甛n  // if (index > -1) {\n  //   if (typeof opts.yAxis.data[index].min === 'number') {\n  //     minData = Math.min(opts.yAxis.data[index].min, minData);\n  //   }\n  //   if (typeof opts.yAxis.data[index].max === 'number') {\n  //     maxData = Math.max(opts.yAxis.data[index].max, maxData);\n  //   }\n  // } else {\n  //   if (typeof opts.yAxis.min === 'number') {\n  //     minData = Math.min(opts.yAxis.min, minData);\n  //   }\n  //   if (typeof opts.yAxis.max === 'number') {\n  //     maxData = Math.max(opts.yAxis.max, maxData);\n  //   }\n  // }\n  if (minData === maxData) {\n    var rangeSpan = maxData || 10;\n    maxData += rangeSpan;\n  }\n  var dataRange = getDataRange(minData, maxData);\n  var minRange = yData.min === undefined || yData.min === null ? dataRange.minRange : yData.min;\n  var maxRange = yData.max === undefined || yData.min === null ? dataRange.maxRange : yData.max;\n  var range = [];\n  var eachRange = (maxRange - minRange) / opts.yAxis.splitNumber;\n  for (var i = 0; i <= opts.yAxis.splitNumber; i++) {\n    range.push(minRange + eachRange * i);\n  }\n  return range.reverse();\n}\n\nfunction calYAxisData(series, opts, config, context) {\n  //鍫嗗彔鍥鹃噸绠梇杞碶n  var columnstyle = assign({}, {\n    type: \"\" },\n  opts.extra.column);\n  //濡傛灉鏄Y杞达紝閲嶆柊璁$畻\n  var YLength = opts.yAxis.data.length;\n  var newSeries = new Array(YLength);\n  if (YLength > 0) {\n    for (var i = 0; i < YLength; i++) {\n      newSeries[i] = [];\n      for (var j = 0; j < series.length; j++) {\n        if (series[j].index == i) {\n          newSeries[i].push(series[j]);\n        }\n      }\n    }\n    var rangesArr = new Array(YLength);\n    var rangesFormatArr = new Array(YLength);\n    var yAxisWidthArr = new Array(YLength);var _loop3 = function _loop3(\n\n    _i13) {\n      var yData = opts.yAxis.data[_i13];\n      //濡傛灉鎬诲紑鍏充笉鏄剧ず锛屽己鍒舵瘡涓猋杞翠负涓嶆樉绀篭n      if (opts.yAxis.disabled == true) {\n        yData.disabled = true;\n      }\n      if (yData.type === 'categories') {\n        if (!yData.formatter) {\n          yData.formatter = function (val) {return val + (yData.unit || '');};\n        }\n        yData.categories = yData.categories || opts.categories;\n        rangesArr[_i13] = yData.categories;\n      } else {\n        if (!yData.formatter) {\n          yData.formatter = function (val) {return val.toFixed(yData.tofix) + (yData.unit || '');};\n        }\n        rangesArr[_i13] = getYAxisTextList(newSeries[_i13], opts, config, columnstyle.type, yData, _i13);\n      }\n      var yAxisFontSizes = yData.fontSize * opts.pix || config.fontSize;\n      yAxisWidthArr[_i13] = {\n        position: yData.position ? yData.position : 'left',\n        width: 0 };\n\n      rangesFormatArr[_i13] = rangesArr[_i13].map(function (items) {\n        items = yData.formatter(items);\n        yAxisWidthArr[_i13].width = Math.max(yAxisWidthArr[_i13].width, measureText(items, yAxisFontSizes, context) + 5);\n        return items;\n      });\n      var calibration = yData.calibration ? 4 * opts.pix : 0;\n      yAxisWidthArr[_i13].width += calibration + 3 * opts.pix;\n      if (yData.disabled === true) {\n        yAxisWidthArr[_i13].width = 0;\n      }};for (var _i13 = 0; _i13 < YLength; _i13++) {_loop3(_i13);\n    }\n  } else {\n    var rangesArr = new Array(1);\n    var rangesFormatArr = new Array(1);\n    var yAxisWidthArr = new Array(1);\n    if (opts.type === 'bar') {\n      rangesArr[0] = opts.categories;\n      if (!opts.yAxis.formatter) {\n        opts.yAxis.formatter = function (val) {return val + (opts.yAxis.unit || '');};\n      }\n    } else {\n      if (!opts.yAxis.formatter) {\n        opts.yAxis.formatter = function (val) {return val.toFixed(opts.yAxis.tofix) + (opts.yAxis.unit || '');};\n      }\n      rangesArr[0] = getYAxisTextList(series, opts, config, columnstyle.type, {});\n    }\n    yAxisWidthArr[0] = {\n      position: 'left',\n      width: 0 };\n\n    var yAxisFontSize = opts.yAxis.fontSize * opts.pix || config.fontSize;\n    rangesFormatArr[0] = rangesArr[0].map(function (item) {\n      item = opts.yAxis.formatter(item);\n      yAxisWidthArr[0].width = Math.max(yAxisWidthArr[0].width, measureText(item, yAxisFontSize, context) + 5);\n      return item;\n    });\n    yAxisWidthArr[0].width += 3 * opts.pix;\n    if (opts.yAxis.disabled === true) {\n      yAxisWidthArr[0] = {\n        position: 'left',\n        width: 0 };\n\n      opts.yAxis.data[0] = {\n        disabled: true };\n\n    } else {\n      opts.yAxis.data[0] = {\n        disabled: false,\n        position: 'left',\n        max: opts.yAxis.max,\n        min: opts.yAxis.min,\n        formatter: opts.yAxis.formatter };\n\n      if (opts.type === 'bar') {\n        opts.yAxis.data[0].categories = opts.categories;\n        opts.yAxis.data[0].type = 'categories';\n      }\n    }\n  }\n  return {\n    rangesFormat: rangesFormatArr,\n    ranges: rangesArr,\n    yAxisWidth: yAxisWidthArr };\n\n}\n\nfunction calTooltipYAxisData(point, series, opts, config, eachSpacing) {\n  var ranges = [].concat(opts.chartData.yAxisData.ranges);\n  var spacingValid = opts.height - opts.area[0] - opts.area[2];\n  var minAxis = opts.area[0];\n  var items = [];\n  for (var i = 0; i < ranges.length; i++) {\n    var maxVal = ranges[i].shift();\n    var minVal = ranges[i].pop();\n    var item = maxVal - (maxVal - minVal) * (point - minAxis) / spacingValid;\n    item = opts.yAxis.data[i].formatter ? opts.yAxis.data[i].formatter(item) : item.toFixed(0);\n    items.push(String(item));\n  }\n  return items;\n}\n\nfunction calMarkLineData(points, opts) {\n  var minRange, maxRange;\n  var spacingValid = opts.height - opts.area[0] - opts.area[2];\n  for (var i = 0; i < points.length; i++) {\n    points[i].yAxisIndex = points[i].yAxisIndex ? points[i].yAxisIndex : 0;\n    var range = [].concat(opts.chartData.yAxisData.ranges[points[i].yAxisIndex]);\n    minRange = range.pop();\n    maxRange = range.shift();\n    var height = spacingValid * (points[i].value - minRange) / (maxRange - minRange);\n    points[i].y = opts.height - Math.round(height) - opts.area[2];\n  }\n  return points;\n}\n\nfunction contextRotate(context, opts) {\n  if (opts.rotateLock !== true) {\n    context.translate(opts.height, 0);\n    context.rotate(90 * Math.PI / 180);\n  } else if (opts._rotate_ !== true) {\n    context.translate(opts.height, 0);\n    context.rotate(90 * Math.PI / 180);\n    opts._rotate_ = true;\n  }\n}\n\nfunction drawPointShape(points, color, shape, context, opts) {\n  context.beginPath();\n  if (opts.dataPointShapeType == 'hollow') {\n    context.setStrokeStyle(color);\n    context.setFillStyle(opts.background);\n    context.setLineWidth(2 * opts.pix);\n  } else {\n    context.setStrokeStyle(\"#ffffff\");\n    context.setFillStyle(color);\n    context.setLineWidth(1 * opts.pix);\n  }\n  if (shape === 'diamond') {\n    points.forEach(function (item, index) {\n      if (item !== null) {\n        context.moveTo(item.x, item.y - 4.5);\n        context.lineTo(item.x - 4.5, item.y);\n        context.lineTo(item.x, item.y + 4.5);\n        context.lineTo(item.x + 4.5, item.y);\n        context.lineTo(item.x, item.y - 4.5);\n      }\n    });\n  } else if (shape === 'circle') {\n    points.forEach(function (item, index) {\n      if (item !== null) {\n        context.moveTo(item.x + 2.5 * opts.pix, item.y);\n        context.arc(item.x, item.y, 3 * opts.pix, 0, 2 * Math.PI, false);\n      }\n    });\n  } else if (shape === 'square') {\n    points.forEach(function (item, index) {\n      if (item !== null) {\n        context.moveTo(item.x - 3.5, item.y - 3.5);\n        context.rect(item.x - 3.5, item.y - 3.5, 7, 7);\n      }\n    });\n  } else if (shape === 'triangle') {\n    points.forEach(function (item, index) {\n      if (item !== null) {\n        context.moveTo(item.x, item.y - 4.5);\n        context.lineTo(item.x - 4.5, item.y + 4.5);\n        context.lineTo(item.x + 4.5, item.y + 4.5);\n        context.lineTo(item.x, item.y - 4.5);\n      }\n    });\n  } else if (shape === 'triangle') {\n    return;\n  }\n  context.closePath();\n  context.fill();\n  context.stroke();\n}\n\nfunction drawRingTitle(opts, config, context, center) {\n  var titlefontSize = opts.title.fontSize || config.titleFontSize;\n  var subtitlefontSize = opts.subtitle.fontSize || config.subtitleFontSize;\n  var title = opts.title.name || '';\n  var subtitle = opts.subtitle.name || '';\n  var titleFontColor = opts.title.color || opts.fontColor;\n  var subtitleFontColor = opts.subtitle.color || opts.fontColor;\n  var titleHeight = title ? titlefontSize : 0;\n  var subtitleHeight = subtitle ? subtitlefontSize : 0;\n  var margin = 5;\n  if (subtitle) {\n    var textWidth = measureText(subtitle, subtitlefontSize * opts.pix, context);\n    var startX = center.x - textWidth / 2 + (opts.subtitle.offsetX || 0) * opts.pix;\n    var startY = center.y + subtitlefontSize * opts.pix / 2 + (opts.subtitle.offsetY || 0) * opts.pix;\n    if (title) {\n      startY += (titleHeight * opts.pix + margin) / 2;\n    }\n    context.beginPath();\n    context.setFontSize(subtitlefontSize * opts.pix);\n    context.setFillStyle(subtitleFontColor);\n    context.fillText(subtitle, startX, startY);\n    context.closePath();\n    context.stroke();\n  }\n  if (title) {\n    var _textWidth = measureText(title, titlefontSize * opts.pix, context);\n    var _startX = center.x - _textWidth / 2 + (opts.title.offsetX || 0);\n    var _startY = center.y + titlefontSize * opts.pix / 2 + (opts.title.offsetY || 0) * opts.pix;\n    if (subtitle) {\n      _startY -= (subtitleHeight * opts.pix + margin) / 2;\n    }\n    context.beginPath();\n    context.setFontSize(titlefontSize * opts.pix);\n    context.setFillStyle(titleFontColor);\n    context.fillText(title, _startX, _startY);\n    context.closePath();\n    context.stroke();\n  }\n}\n\nfunction drawPointText(points, series, config, context, opts) {\n  // 缁樺埗鏁版嵁鏂囨\n  var data = series.data;\n  var textOffset = series.textOffset ? series.textOffset : 0;\n  points.forEach(function (item, index) {\n    if (item !== null) {\n      context.beginPath();\n      var fontSize = series.textSize ? series.textSize * opts.pix : config.fontSize;\n      context.setFontSize(fontSize);\n      context.setFillStyle(series.textColor || opts.fontColor);\n      var value = data[index];\n      if (typeof data[index] === 'object' && data[index] !== null) {\n        if (data[index].constructor.toString().indexOf('Array') > -1) {\n          value = data[index][1];\n        } else {\n          value = data[index].value;\n        }\n      }\n      var formatVal = series.formatter ? series.formatter(value, index) : value;\n      context.setTextAlign('center');\n      context.fillText(String(formatVal), item.x, item.y - 4 + textOffset * opts.pix);\n      context.closePath();\n      context.stroke();\n      context.setTextAlign('left');\n    }\n  });\n}\n\nfunction drawBarPointText(points, series, config, context, opts) {\n  // 缁樺埗鏁版嵁鏂囨\n  var data = series.data;\n  var textOffset = series.textOffset ? series.textOffset : 0;\n  points.forEach(function (item, index) {\n    if (item !== null) {\n      context.beginPath();\n      var fontSize = series.textSize ? series.textSize * opts.pix : config.fontSize;\n      context.setFontSize(fontSize);\n      context.setFillStyle(series.textColor || opts.fontColor);\n      var value = data[index];\n      if (typeof data[index] === 'object' && data[index] !== null) {\n        value = data[index].value;\n      }\n      var formatVal = series.formatter ? series.formatter(value, index) : value;\n      context.setTextAlign('left');\n      context.fillText(String(formatVal), item.x + 4 * opts.pix, item.y + fontSize / 2 - 3);\n      context.closePath();\n      context.stroke();\n    }\n  });\n}\n\nfunction drawGaugeLabel(gaugeOption, radius, centerPosition, opts, config, context) {\n  radius -= gaugeOption.width / 2 + gaugeOption.labelOffset * opts.pix;\n  var totalAngle = gaugeOption.startAngle - gaugeOption.endAngle + 1;\n  var splitAngle = totalAngle / gaugeOption.splitLine.splitNumber;\n  var totalNumber = gaugeOption.endNumber - gaugeOption.startNumber;\n  var splitNumber = totalNumber / gaugeOption.splitLine.splitNumber;\n  var nowAngle = gaugeOption.startAngle;\n  var nowNumber = gaugeOption.startNumber;\n  for (var i = 0; i < gaugeOption.splitLine.splitNumber + 1; i++) {\n    var pos = {\n      x: radius * Math.cos(nowAngle * Math.PI),\n      y: radius * Math.sin(nowAngle * Math.PI) };\n\n    var labelText = gaugeOption.formatter ? gaugeOption.formatter(nowNumber) : nowNumber;\n    pos.x += centerPosition.x - measureText(labelText, config.fontSize, context) / 2;\n    pos.y += centerPosition.y;\n    var startX = pos.x;\n    var startY = pos.y;\n    context.beginPath();\n    context.setFontSize(config.fontSize);\n    context.setFillStyle(gaugeOption.labelColor || opts.fontColor);\n    context.fillText(labelText, startX, startY + config.fontSize / 2);\n    context.closePath();\n    context.stroke();\n    nowAngle += splitAngle;\n    if (nowAngle >= 2) {\n      nowAngle = nowAngle % 2;\n    }\n    nowNumber += splitNumber;\n  }\n\n}\n\nfunction drawRadarLabel(angleList, radius, centerPosition, opts, config, context) {\n  var radarOption = opts.extra.radar || {};\n  radius += config.radarLabelTextMargin * opts.pix;\n  angleList.forEach(function (angle, index) {\n    var pos = {\n      x: radius * Math.cos(angle),\n      y: radius * Math.sin(angle) };\n\n    var posRelativeCanvas = convertCoordinateOrigin(pos.x, pos.y, centerPosition);\n    var startX = posRelativeCanvas.x;\n    var startY = posRelativeCanvas.y;\n    if (util.approximatelyEqual(pos.x, 0)) {\n      startX -= measureText(opts.categories[index] || '', config.fontSize, context) / 2;\n    } else if (pos.x < 0) {\n      startX -= measureText(opts.categories[index] || '', config.fontSize, context);\n    }\n    context.beginPath();\n    context.setFontSize(config.fontSize);\n    context.setFillStyle(radarOption.labelColor || opts.fontColor);\n    context.fillText(opts.categories[index] || '', startX, startY + config.fontSize / 2);\n    context.closePath();\n    context.stroke();\n  });\n\n}\n\nfunction drawPieText(series, opts, config, context, radius, center) {\n  var lineRadius = config.pieChartLinePadding;\n  var textObjectCollection = [];\n  var lastTextObject = null;\n  var seriesConvert = series.map(function (item, index, series) {\n    var text = item.formatter ? item.formatter(item, index, series) : util.toFixed(item._proportion_.toFixed(4) * 100) + '%';\n    var arc = 2 * Math.PI - (item._start_ + 2 * Math.PI * item._proportion_ / 2);\n    if (item._rose_proportion_) {\n      arc = 2 * Math.PI - (item._start_ + 2 * Math.PI * item._rose_proportion_ / 2);\n    }\n    var color = item.color;\n    var radius = item._radius_;\n    return {\n      arc: arc,\n      text: text,\n      color: color,\n      radius: radius,\n      textColor: item.textColor,\n      textSize: item.textSize };\n\n  });\n  for (var i = 0; i < seriesConvert.length; i++) {\n    var item = seriesConvert[i];\n    // line end\n    var orginX1 = Math.cos(item.arc) * (item.radius + lineRadius);\n    var orginY1 = Math.sin(item.arc) * (item.radius + lineRadius);\n    // line start\n    var orginX2 = Math.cos(item.arc) * item.radius;\n    var orginY2 = Math.sin(item.arc) * item.radius;\n    // text start\n    var orginX3 = orginX1 >= 0 ? orginX1 + config.pieChartTextPadding : orginX1 - config.pieChartTextPadding;\n    var orginY3 = orginY1;\n    var textWidth = measureText(item.text, item.textSize * opts.pix || config.fontSize, context);\n    var startY = orginY3;\n    if (lastTextObject && util.isSameXCoordinateArea(lastTextObject.start, {\n      x: orginX3 }))\n    {\n      if (orginX3 > 0) {\n        startY = Math.min(orginY3, lastTextObject.start.y);\n      } else if (orginX1 < 0) {\n        startY = Math.max(orginY3, lastTextObject.start.y);\n      } else {\n        if (orginY3 > 0) {\n          startY = Math.max(orginY3, lastTextObject.start.y);\n        } else {\n          startY = Math.min(orginY3, lastTextObject.start.y);\n        }\n      }\n    }\n    if (orginX3 < 0) {\n      orginX3 -= textWidth;\n    }\n    var textObject = {\n      lineStart: {\n        x: orginX2,\n        y: orginY2 },\n\n      lineEnd: {\n        x: orginX1,\n        y: orginY1 },\n\n      start: {\n        x: orginX3,\n        y: startY },\n\n      width: textWidth,\n      height: config.fontSize,\n      text: item.text,\n      color: item.color,\n      textColor: item.textColor,\n      textSize: item.textSize };\n\n    lastTextObject = avoidCollision(textObject, lastTextObject);\n    textObjectCollection.push(lastTextObject);\n  }\n  for (var _i14 = 0; _i14 < textObjectCollection.length; _i14++) {\n    var _item6 = textObjectCollection[_i14];\n    var lineStartPoistion = convertCoordinateOrigin(_item6.lineStart.x, _item6.lineStart.y, center);\n    var lineEndPoistion = convertCoordinateOrigin(_item6.lineEnd.x, _item6.lineEnd.y, center);\n    var textPosition = convertCoordinateOrigin(_item6.start.x, _item6.start.y, center);\n    context.setLineWidth(1 * opts.pix);\n    context.setFontSize(_item6.textSize * opts.pix || config.fontSize);\n    context.beginPath();\n    context.setStrokeStyle(_item6.color);\n    context.setFillStyle(_item6.color);\n    context.moveTo(lineStartPoistion.x, lineStartPoistion.y);\n    var curveStartX = _item6.start.x < 0 ? textPosition.x + _item6.width : textPosition.x;\n    var textStartX = _item6.start.x < 0 ? textPosition.x - 5 : textPosition.x + 5;\n    context.quadraticCurveTo(lineEndPoistion.x, lineEndPoistion.y, curveStartX, textPosition.y);\n    context.moveTo(lineStartPoistion.x, lineStartPoistion.y);\n    context.stroke();\n    context.closePath();\n    context.beginPath();\n    context.moveTo(textPosition.x + _item6.width, textPosition.y);\n    context.arc(curveStartX, textPosition.y, 2, 0, 2 * Math.PI);\n    context.closePath();\n    context.fill();\n    context.beginPath();\n    context.setFontSize(_item6.textSize * opts.pix || config.fontSize);\n    context.setFillStyle(_item6.textColor || opts.fontColor);\n    context.fillText(_item6.text, textStartX, textPosition.y + 3);\n    context.closePath();\n    context.stroke();\n    context.closePath();\n  }\n}\n\nfunction drawToolTipSplitLine(offsetX, opts, config, context) {\n  var toolTipOption = opts.extra.tooltip || {};\n  toolTipOption.gridType = toolTipOption.gridType == undefined ? 'solid' : toolTipOption.gridType;\n  toolTipOption.dashLength = toolTipOption.dashLength == undefined ? 4 : toolTipOption.dashLength;\n  var startY = opts.area[0];\n  var endY = opts.height - opts.area[2];\n  if (toolTipOption.gridType == 'dash') {\n    context.setLineDash([toolTipOption.dashLength, toolTipOption.dashLength]);\n  }\n  context.setStrokeStyle(toolTipOption.gridColor || '#cccccc');\n  context.setLineWidth(1 * opts.pix);\n  context.beginPath();\n  context.moveTo(offsetX, startY);\n  context.lineTo(offsetX, endY);\n  context.stroke();\n  context.setLineDash([]);\n  if (toolTipOption.xAxisLabel) {\n    var labelText = opts.categories[opts.tooltip.index];\n    context.setFontSize(config.fontSize);\n    var textWidth = measureText(labelText, config.fontSize, context);\n    var textX = offsetX - 0.5 * textWidth;\n    var textY = endY;\n    context.beginPath();\n    context.setFillStyle(hexToRgb(toolTipOption.labelBgColor || config.toolTipBackground, toolTipOption.labelBgOpacity || config.toolTipOpacity));\n    context.setStrokeStyle(toolTipOption.labelBgColor || config.toolTipBackground);\n    context.setLineWidth(1 * opts.pix);\n    context.rect(textX - config.toolTipPadding, textY, textWidth + 2 * config.toolTipPadding, config.fontSize + 2 * config.toolTipPadding);\n    context.closePath();\n    context.stroke();\n    context.fill();\n    context.beginPath();\n    context.setFontSize(config.fontSize);\n    context.setFillStyle(toolTipOption.labelFontColor || opts.fontColor);\n    context.fillText(String(labelText), textX, textY + config.toolTipPadding + config.fontSize);\n    context.closePath();\n    context.stroke();\n  }\n}\n\nfunction drawMarkLine(opts, config, context) {\n  var markLineOption = assign({}, {\n    type: 'solid',\n    dashLength: 4,\n    data: [] },\n  opts.extra.markLine);\n  var startX = opts.area[3];\n  var endX = opts.width - opts.area[1];\n  var points = calMarkLineData(markLineOption.data, opts);\n  for (var i = 0; i < points.length; i++) {\n    var item = assign({}, {\n      lineColor: '#DE4A42',\n      showLabel: false,\n      labelFontColor: '#666666',\n      labelBgColor: '#DFE8FF',\n      labelBgOpacity: 0.8,\n      yAxisIndex: 0 },\n    points[i]);\n    if (markLineOption.type == 'dash') {\n      context.setLineDash([markLineOption.dashLength, markLineOption.dashLength]);\n    }\n    context.setStrokeStyle(item.lineColor);\n    context.setLineWidth(1 * opts.pix);\n    context.beginPath();\n    context.moveTo(startX, item.y);\n    context.lineTo(endX, item.y);\n    context.stroke();\n    context.setLineDash([]);\n    if (item.showLabel) {\n      var labelText = opts.yAxis.formatter ? opts.yAxis.formatter(item.value) : item.value;\n      context.setFontSize(config.fontSize);\n      var textWidth = measureText(labelText, config.fontSize, context);\n      var yAxisWidth = opts.chartData.yAxisData.yAxisWidth[0].width;\n      var bgStartX = opts.area[3] - textWidth - config.toolTipPadding * 2;\n      var bgEndX = opts.area[3];\n      var bgWidth = bgEndX - bgStartX;\n      var textX = bgEndX - config.toolTipPadding;\n      var textY = item.y;\n      context.setFillStyle(hexToRgb(item.labelBgColor, item.labelBgOpacity));\n      context.setStrokeStyle(item.labelBgColor);\n      context.setLineWidth(1 * opts.pix);\n      context.beginPath();\n      context.rect(bgStartX, textY - 0.5 * config.fontSize - config.toolTipPadding, bgWidth, config.fontSize + 2 * config.toolTipPadding);\n      context.closePath();\n      context.stroke();\n      context.fill();\n      context.setFontSize(config.fontSize);\n      context.setTextAlign('right');\n      context.setFillStyle(item.labelFontColor);\n      context.fillText(String(labelText), textX, textY + 0.5 * config.fontSize);\n      context.stroke();\n      context.setTextAlign('left');\n    }\n  }\n}\n\nfunction drawToolTipHorizentalLine(opts, config, context, eachSpacing, xAxisPoints) {\n  var toolTipOption = assign({}, {\n    gridType: 'solid',\n    dashLength: 4 },\n  opts.extra.tooltip);\n  var startX = opts.area[3];\n  var endX = opts.width - opts.area[1];\n  if (toolTipOption.gridType == 'dash') {\n    context.setLineDash([toolTipOption.dashLength, toolTipOption.dashLength]);\n  }\n  context.setStrokeStyle(toolTipOption.gridColor || '#cccccc');\n  context.setLineWidth(1 * opts.pix);\n  context.beginPath();\n  context.moveTo(startX, opts.tooltip.offset.y);\n  context.lineTo(endX, opts.tooltip.offset.y);\n  context.stroke();\n  context.setLineDash([]);\n  if (toolTipOption.yAxisLabel) {\n    var labelText = calTooltipYAxisData(opts.tooltip.offset.y, opts.series, opts, config, eachSpacing);\n    var widthArr = opts.chartData.yAxisData.yAxisWidth;\n    var tStartLeft = opts.area[3];\n    var tStartRight = opts.width - opts.area[1];\n    for (var i = 0; i < labelText.length; i++) {\n      context.setFontSize(config.fontSize);\n      var textWidth = measureText(labelText[i], config.fontSize, context);\n      var bgStartX = void 0,bgEndX = void 0,bgWidth = void 0;\n      if (widthArr[i].position == 'left') {\n        bgStartX = tStartLeft - widthArr[i].width;\n        bgEndX = Math.max(bgStartX, bgStartX + textWidth + config.toolTipPadding * 2);\n      } else {\n        bgStartX = tStartRight;\n        bgEndX = Math.max(bgStartX + widthArr[i].width, bgStartX + textWidth + config.toolTipPadding * 2);\n      }\n      bgWidth = bgEndX - bgStartX;\n      var textX = bgStartX + (bgWidth - textWidth) / 2;\n      var textY = opts.tooltip.offset.y;\n      context.beginPath();\n      context.setFillStyle(hexToRgb(toolTipOption.labelBgColor || config.toolTipBackground, toolTipOption.labelBgOpacity || config.toolTipOpacity));\n      context.setStrokeStyle(toolTipOption.labelBgColor || config.toolTipBackground);\n      context.setLineWidth(1 * opts.pix);\n      context.rect(bgStartX, textY - 0.5 * config.fontSize - config.toolTipPadding, bgWidth, config.fontSize + 2 *\n      config.toolTipPadding);\n      context.closePath();\n      context.stroke();\n      context.fill();\n      context.beginPath();\n      context.setFontSize(config.fontSize);\n      context.setFillStyle(toolTipOption.labelFontColor || opts.fontColor);\n      context.fillText(labelText[i], textX, textY + 0.5 * config.fontSize);\n      context.closePath();\n      context.stroke();\n      if (widthArr[i].position == 'left') {\n        tStartLeft -= widthArr[i].width + opts.yAxis.padding * opts.pix;\n      } else {\n        tStartRight += widthArr[i].width + opts.yAxis.padding * opts.pix;\n      }\n    }\n  }\n}\n\nfunction drawToolTipSplitArea(offsetX, opts, config, context, eachSpacing) {\n  var toolTipOption = assign({}, {\n    activeBgColor: '#000000',\n    activeBgOpacity: 0.08 },\n  opts.extra.column);\n  var startY = opts.area[0];\n  var endY = opts.height - opts.area[2];\n  context.beginPath();\n  context.setFillStyle(hexToRgb(toolTipOption.activeBgColor, toolTipOption.activeBgOpacity));\n  context.rect(offsetX - eachSpacing / 2, startY, eachSpacing, endY - startY);\n  context.closePath();\n  context.fill();\n  context.setFillStyle(\"#FFFFFF\");\n}\n\nfunction drawBarToolTipSplitArea(offsetX, opts, config, context, eachSpacing) {\n  var toolTipOption = assign({}, {\n    activeBgColor: '#000000',\n    activeBgOpacity: 0.08 },\n  opts.extra.bar);\n  var startX = opts.area[3];\n  var endX = opts.width - opts.area[1];\n  context.beginPath();\n  context.setFillStyle(hexToRgb(toolTipOption.activeBgColor, toolTipOption.activeBgOpacity));\n  context.rect(startX, offsetX - eachSpacing / 2, endX - startX, eachSpacing);\n  context.closePath();\n  context.fill();\n  context.setFillStyle(\"#FFFFFF\");\n}\n\nfunction drawToolTip(textList, offset, opts, config, context, eachSpacing, xAxisPoints) {\n  var toolTipOption = assign({}, {\n    showBox: true,\n    showArrow: true,\n    showCategory: false,\n    bgColor: '#000000',\n    bgOpacity: 0.7,\n    borderColor: '#000000',\n    borderWidth: 0,\n    borderRadius: 0,\n    borderOpacity: 0.7,\n    fontColor: '#FFFFFF',\n    splitLine: true },\n  opts.extra.tooltip);\n  if (toolTipOption.showCategory == true && opts.categories) {\n    textList.unshift({ text: opts.categories[opts.tooltip.index], color: null });\n  }\n  var legendWidth = 4 * opts.pix;\n  var legendMarginRight = 5 * opts.pix;\n  var arrowWidth = toolTipOption.showArrow ? 8 * opts.pix : 0;\n  var isOverRightBorder = false;\n  if (opts.type == 'line' || opts.type == 'area' || opts.type == 'candle' || opts.type == 'mix') {\n    if (toolTipOption.splitLine == true) {\n      drawToolTipSplitLine(opts.tooltip.offset.x, opts, config, context);\n    }\n  }\n  offset = assign({\n    x: 0,\n    y: 0 },\n  offset);\n  offset.y -= 8 * opts.pix;\n  var textWidth = textList.map(function (item) {\n    return measureText(item.text, config.fontSize, context);\n  });\n  var toolTipWidth = legendWidth + legendMarginRight + 4 * config.toolTipPadding + Math.max.apply(null, textWidth);\n  var toolTipHeight = 2 * config.toolTipPadding + textList.length * config.toolTipLineHeight;\n  if (toolTipOption.showBox == false) {\n    return;\n  }\n  // if beyond the right border\n  if (offset.x - Math.abs(opts._scrollDistance_ || 0) + arrowWidth + toolTipWidth > opts.width) {\n    isOverRightBorder = true;\n  }\n  if (toolTipHeight + offset.y > opts.height) {\n    offset.y = opts.height - toolTipHeight;\n  }\n  // draw background rect\n  context.beginPath();\n  context.setFillStyle(hexToRgb(toolTipOption.bgColor || config.toolTipBackground, toolTipOption.bgOpacity || config.toolTipOpacity));\n  context.setLineWidth(toolTipOption.borderWidth * opts.pix);\n  context.setStrokeStyle(hexToRgb(toolTipOption.borderColor, toolTipOption.borderOpacity));\n  var radius = toolTipOption.borderRadius;\n  if (isOverRightBorder) {\n    if (toolTipOption.showArrow) {\n      context.moveTo(offset.x, offset.y + 10 * opts.pix);\n      context.lineTo(offset.x - arrowWidth, offset.y + 10 * opts.pix + 5 * opts.pix);\n    }\n    context.arc(offset.x - arrowWidth - radius, offset.y + toolTipHeight - radius, radius, 0, Math.PI / 2, false);\n    context.arc(offset.x - arrowWidth - Math.round(toolTipWidth) + radius, offset.y + toolTipHeight - radius, radius,\n    Math.PI / 2, Math.PI, false);\n    context.arc(offset.x - arrowWidth - Math.round(toolTipWidth) + radius, offset.y + radius, radius, -Math.PI, -Math.PI / 2, false);\n    context.arc(offset.x - arrowWidth - radius, offset.y + radius, radius, -Math.PI / 2, 0, false);\n    if (toolTipOption.showArrow) {\n      context.lineTo(offset.x - arrowWidth, offset.y + 10 * opts.pix - 5 * opts.pix);\n      context.lineTo(offset.x, offset.y + 10 * opts.pix);\n    }\n  } else {\n    if (toolTipOption.showArrow) {\n      context.moveTo(offset.x, offset.y + 10 * opts.pix);\n      context.lineTo(offset.x + arrowWidth, offset.y + 10 * opts.pix - 5 * opts.pix);\n    }\n    context.arc(offset.x + arrowWidth + radius, offset.y + radius, radius, -Math.PI, -Math.PI / 2, false);\n    context.arc(offset.x + arrowWidth + Math.round(toolTipWidth) - radius, offset.y + radius, radius, -Math.PI / 2, 0,\n    false);\n    context.arc(offset.x + arrowWidth + Math.round(toolTipWidth) - radius, offset.y + toolTipHeight - radius, radius, 0,\n    Math.PI / 2, false);\n    context.arc(offset.x + arrowWidth + radius, offset.y + toolTipHeight - radius, radius, Math.PI / 2, Math.PI, false);\n    if (toolTipOption.showArrow) {\n      context.lineTo(offset.x + arrowWidth, offset.y + 10 * opts.pix + 5 * opts.pix);\n      context.lineTo(offset.x, offset.y + 10 * opts.pix);\n    }\n  }\n  context.closePath();\n  context.fill();\n  if (toolTipOption.borderWidth > 0) {\n    context.stroke();\n  }\n  // draw legend\n  textList.forEach(function (item, index) {\n    if (item.color !== null) {\n      context.beginPath();\n      context.setFillStyle(item.color);\n      var startX = offset.x + arrowWidth + 2 * config.toolTipPadding;\n      var startY = offset.y + (config.toolTipLineHeight - config.fontSize) / 2 + config.toolTipLineHeight * index + config.toolTipPadding + 1;\n      if (isOverRightBorder) {\n        startX = offset.x - toolTipWidth - arrowWidth + 2 * config.toolTipPadding;\n      }\n      context.fillRect(startX, startY, legendWidth, config.fontSize);\n      context.closePath();\n    }\n  });\n  // draw text list\n  textList.forEach(function (item, index) {\n    var startX = offset.x + arrowWidth + 2 * config.toolTipPadding + legendWidth + legendMarginRight;\n    if (isOverRightBorder) {\n      startX = offset.x - toolTipWidth - arrowWidth + 2 * config.toolTipPadding + +legendWidth + legendMarginRight;\n    }\n    var startY = offset.y + (config.toolTipLineHeight - config.fontSize) / 2 + config.toolTipLineHeight * index + config.toolTipPadding;\n    context.beginPath();\n    context.setFontSize(config.fontSize);\n    context.setFillStyle(toolTipOption.fontColor);\n    context.fillText(item.text, startX, startY + config.fontSize);\n    context.closePath();\n    context.stroke();\n  });\n}\n\nfunction drawColumnDataPoints(series, opts, config, context) {\n  var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n  var xAxisData = opts.chartData.xAxisData,\n  xAxisPoints = xAxisData.xAxisPoints,\n  eachSpacing = xAxisData.eachSpacing;\n  var columnOption = assign({}, {\n    type: 'group',\n    width: eachSpacing / 2,\n    meterBorder: 4,\n    meterFillColor: '#FFFFFF',\n    barBorderCircle: false,\n    barBorderRadius: [],\n    seriesGap: 2,\n    linearType: 'none',\n    linearOpacity: 1,\n    customColor: [],\n    colorStop: 0 },\n  opts.extra.column);\n  var calPoints = [];\n  context.save();\n  var leftNum = -2;\n  var rightNum = xAxisPoints.length + 2;\n  if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {\n    context.translate(opts._scrollDistance_, 0);\n    leftNum = Math.floor(-opts._scrollDistance_ / eachSpacing) - 2;\n    rightNum = leftNum + opts.xAxis.itemCount + 4;\n  }\n  if (opts.tooltip && opts.tooltip.textList && opts.tooltip.textList.length && process === 1) {\n    drawToolTipSplitArea(opts.tooltip.offset.x, opts, config, context, eachSpacing);\n  }\n  columnOption.customColor = fillCustomColor(columnOption.linearType, columnOption.customColor, series, config);\n  series.forEach(function (eachSeries, seriesIndex) {\n    var ranges, minRange, maxRange;\n    ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n    minRange = ranges.pop();\n    maxRange = ranges.shift();\n    var data = eachSeries.data;\n    switch (columnOption.type) {\n      case 'group':\n        var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n        var tooltipPoints = getStackDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, seriesIndex, series, process);\n        calPoints.push(tooltipPoints);\n        points = fixColumeData(points, eachSpacing, series.length, seriesIndex, config, opts);\n        for (var i = 0; i < points.length; i++) {\n          var item = points[i];\n          //fix issues/I27B1N yyoinge & Joeshu\n          if (item !== null && i > leftNum && i < rightNum) {\n            var startX = item.x - item.width / 2;\n            var height = opts.height - item.y - opts.area[2];\n            context.beginPath();\n            var fillColor = item.color || eachSeries.color;\n            var strokeColor = item.color || eachSeries.color;\n            if (columnOption.linearType !== 'none') {\n              var grd = context.createLinearGradient(startX, item.y, startX, opts.height - opts.area[2]);\n              //閫忔槑娓愬彉\n              if (columnOption.linearType == 'opacity') {\n                grd.addColorStop(0, hexToRgb(fillColor, columnOption.linearOpacity));\n                grd.addColorStop(1, hexToRgb(fillColor, 1));\n              } else {\n                grd.addColorStop(0, hexToRgb(columnOption.customColor[eachSeries.linearIndex], columnOption.linearOpacity));\n                grd.addColorStop(columnOption.colorStop, hexToRgb(columnOption.customColor[eachSeries.linearIndex], columnOption.linearOpacity));\n                grd.addColorStop(1, hexToRgb(fillColor, 1));\n              }\n              fillColor = grd;\n            }\n            // 鍦嗚杈规\n            if (columnOption.barBorderRadius && columnOption.barBorderRadius.length === 4 || columnOption.barBorderCircle === true) {\n              var left = startX;\n              var top = item.y;\n              var width = item.width;\n              var _height = opts.height - opts.area[2] - item.y;\n              if (columnOption.barBorderCircle) {\n                columnOption.barBorderRadius = [width / 2, width / 2, 0, 0];\n              }var _columnOption$barBord = _slicedToArray(\n              columnOption.barBorderRadius, 4),r0 = _columnOption$barBord[0],r1 = _columnOption$barBord[1],r2 = _columnOption$barBord[2],r3 = _columnOption$barBord[3];\n              var minRadius = Math.min(width / 2, _height / 2);\n              r0 = r0 > minRadius ? minRadius : r0;\n              r1 = r1 > minRadius ? minRadius : r1;\n              r2 = r2 > minRadius ? minRadius : r2;\n              r3 = r3 > minRadius ? minRadius : r3;\n              r0 = r0 < 0 ? 0 : r0;\n              r1 = r1 < 0 ? 0 : r1;\n              r2 = r2 < 0 ? 0 : r2;\n              r3 = r3 < 0 ? 0 : r3;\n              context.arc(left + r0, top + r0, r0, -Math.PI, -Math.PI / 2);\n              context.arc(left + width - r1, top + r1, r1, -Math.PI / 2, 0);\n              context.arc(left + width - r2, top + _height - r2, r2, 0, Math.PI / 2);\n              context.arc(left + r3, top + _height - r3, r3, Math.PI / 2, Math.PI);\n            } else {\n              context.moveTo(startX, item.y);\n              context.lineTo(startX + item.width - 2, item.y);\n              context.lineTo(startX + item.width - 2, opts.height - opts.area[2]);\n              context.lineTo(startX, opts.height - opts.area[2]);\n              context.lineTo(startX, item.y);\n              context.setLineWidth(1);\n              context.setStrokeStyle(strokeColor);\n            }\n            context.setFillStyle(fillColor);\n            context.closePath();\n            //context.stroke();\n            context.fill();\n          }\n        };\n        break;\n      case 'stack':\n        // 缁樺埗鍫嗗彔鏁版嵁鍥綷n        var points = getStackDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, seriesIndex, series, process);\n        calPoints.push(points);\n        points = fixColumeStackData(points, eachSpacing, series.length, seriesIndex, config, opts, series);\n        for (var _i15 = 0; _i15 < points.length; _i15++) {\n          var _item7 = points[_i15];\n          if (_item7 !== null && _i15 > leftNum && _i15 < rightNum) {\n            context.beginPath();\n            var fillColor = _item7.color || eachSeries.color;\n            var startX = _item7.x - _item7.width / 2 + 1;\n            var height = opts.height - _item7.y - opts.area[2];\n            var height0 = opts.height - _item7.y0 - opts.area[2];\n            if (seriesIndex > 0) {\n              height -= height0;\n            }\n            context.setFillStyle(fillColor);\n            context.moveTo(startX, _item7.y);\n            context.fillRect(startX, _item7.y, _item7.width - 2, height);\n            context.closePath();\n            context.fill();\n          }\n        };\n        break;\n      case 'meter':\n        // 缁樺埗娓╁害璁℃暟鎹浘\n        var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n        calPoints.push(points);\n        points = fixColumeMeterData(points, eachSpacing, series.length, seriesIndex, config, opts, columnOption.meterBorder);\n        if (seriesIndex == 0) {\n          for (var _i16 = 0; _i16 < points.length; _i16++) {\n            var _item8 = points[_i16];\n            if (_item8 !== null && _i16 > leftNum && _i16 < rightNum) {\n              //鐢昏儗鏅鑹瞈n              context.beginPath();\n              context.setFillStyle(columnOption.meterFillColor);\n              var startX = _item8.x - _item8.width / 2;\n              var height = opts.height - _item8.y - opts.area[2];\n              if (columnOption.barBorderCircle) {\n                var barBorderRadius = (_item8.width - columnOption.meterBorder * 2) / 2;\n                if (barBorderRadius > height) {\n                  barBorderRadius = height;\n                }\n                context.moveTo(startX + columnOption.meterBorder, opts.height - opts.area[2]);\n                context.lineTo(startX + columnOption.meterBorder, _item8.y + barBorderRadius);\n                context.arc(startX + _item8.width / 2, _item8.y + barBorderRadius, barBorderRadius, -Math.PI, 0);\n                context.lineTo(startX + _item8.width - columnOption.meterBorder, opts.height - opts.area[2]);\n                context.lineTo(startX, opts.height - opts.area[2]);\n                context.fill();\n              } else {\n                context.moveTo(startX, _item8.y);\n                context.fillRect(startX, _item8.y, _item8.width, height);\n                context.closePath();\n                context.fill();\n              }\n              //鐢昏竟妗嗙嚎\n              if (columnOption.meterBorder > 0) {\n                context.beginPath();\n                context.setStrokeStyle(eachSeries.color);\n                context.setLineWidth(columnOption.meterBorder * opts.pix);\n                if (columnOption.barBorderCircle) {\n                  var barBorderRadius = (_item8.width - columnOption.meterBorder) / 2;\n                  if (barBorderRadius > height) {\n                    barBorderRadius = height;\n                  }\n                  context.moveTo(startX + columnOption.meterBorder * 0.5, opts.height - opts.area[2]);\n                  context.lineTo(startX + columnOption.meterBorder * 0.5, _item8.y + barBorderRadius);\n                  context.arc(startX + _item8.width / 2, _item8.y + barBorderRadius - columnOption.meterBorder * 0.5, barBorderRadius, -Math.PI, 0);\n                  context.lineTo(startX + _item8.width - columnOption.meterBorder * 0.5, opts.height - opts.area[2]);\n                } else {\n                  context.moveTo(startX + columnOption.meterBorder * 0.5, _item8.y + height);\n                  context.lineTo(startX + columnOption.meterBorder * 0.5, _item8.y + columnOption.meterBorder * 0.5);\n                  context.lineTo(startX + _item8.width - columnOption.meterBorder * 0.5, _item8.y + columnOption.meterBorder * 0.5);\n                  context.lineTo(startX + _item8.width - columnOption.meterBorder * 0.5, _item8.y + height);\n                }\n                context.stroke();\n              }\n            }\n          };\n        } else {\n          for (var _i17 = 0; _i17 < points.length; _i17++) {\n            var _item9 = points[_i17];\n            if (_item9 !== null && _i17 > leftNum && _i17 < rightNum) {\n              context.beginPath();\n              context.setFillStyle(_item9.color || eachSeries.color);\n              var startX = _item9.x - _item9.width / 2;\n              var height = opts.height - _item9.y - opts.area[2];\n              if (columnOption.barBorderCircle) {\n                var barBorderRadius = _item9.width / 2;\n                if (barBorderRadius > height) {\n                  barBorderRadius = height;\n                }\n                context.moveTo(startX, opts.height - opts.area[2]);\n                context.arc(startX + barBorderRadius, _item9.y + barBorderRadius, barBorderRadius, -Math.PI, -Math.PI / 2);\n                context.arc(startX + _item9.width - barBorderRadius, _item9.y + barBorderRadius, barBorderRadius, -Math.PI / 2, 0);\n                context.lineTo(startX + _item9.width, opts.height - opts.area[2]);\n                context.lineTo(startX, opts.height - opts.area[2]);\n                context.fill();\n              } else {\n                context.moveTo(startX, _item9.y);\n                context.fillRect(startX, _item9.y, _item9.width, height);\n                context.closePath();\n                context.fill();\n              }\n            }\n          };\n        }\n        break;}\n\n  });\n\n  if (opts.dataLabel !== false && process === 1) {\n    series.forEach(function (eachSeries, seriesIndex) {\n      var ranges, minRange, maxRange;\n      ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n      minRange = ranges.pop();\n      maxRange = ranges.shift();\n      var data = eachSeries.data;\n      switch (columnOption.type) {\n        case 'group':\n          var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n          points = fixColumeData(points, eachSpacing, series.length, seriesIndex, config, opts);\n          drawPointText(points, eachSeries, config, context, opts);\n          break;\n        case 'stack':\n          var points = getStackDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, seriesIndex, series, process);\n          drawPointText(points, eachSeries, config, context, opts);\n          break;\n        case 'meter':\n          var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n          drawPointText(points, eachSeries, config, context, opts);\n          break;}\n\n    });\n  }\n  context.restore();\n  return {\n    xAxisPoints: xAxisPoints,\n    calPoints: calPoints,\n    eachSpacing: eachSpacing };\n\n}\n\nfunction drawBarDataPoints(series, opts, config, context) {\n  var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n  var yAxisPoints = [];\n  var eachSpacing = (opts.height - opts.area[0] - opts.area[2]) / opts.categories.length;\n  for (var i = 0; i < opts.categories.length; i++) {\n    yAxisPoints.push(opts.area[0] + eachSpacing / 2 + eachSpacing * i);\n  }\n  var columnOption = assign({}, {\n    type: 'group',\n    width: eachSpacing / 2,\n    meterBorder: 4,\n    meterFillColor: '#FFFFFF',\n    barBorderCircle: false,\n    barBorderRadius: [],\n    seriesGap: 2,\n    linearType: 'none',\n    linearOpacity: 1,\n    customColor: [],\n    colorStop: 0 },\n  opts.extra.bar);\n  var calPoints = [];\n  context.save();\n  var leftNum = -2;\n  var rightNum = yAxisPoints.length + 2;\n  if (opts.tooltip && opts.tooltip.textList && opts.tooltip.textList.length && process === 1) {\n    drawBarToolTipSplitArea(opts.tooltip.offset.y, opts, config, context, eachSpacing);\n  }\n  columnOption.customColor = fillCustomColor(columnOption.linearType, columnOption.customColor, series, config);\n  series.forEach(function (eachSeries, seriesIndex) {\n    var ranges, minRange, maxRange;\n    ranges = [].concat(opts.chartData.xAxisData.ranges);\n    maxRange = ranges.pop();\n    minRange = ranges.shift();\n    var data = eachSeries.data;\n    switch (columnOption.type) {\n      case 'group':\n        var points = getBarDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config, process);\n        var tooltipPoints = getBarStackDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config, seriesIndex, series, process);\n        calPoints.push(tooltipPoints);\n        points = fixBarData(points, eachSpacing, series.length, seriesIndex, config, opts);\n        for (var _i18 = 0; _i18 < points.length; _i18++) {\n          var item = points[_i18];\n          //fix issues/I27B1N yyoinge & Joeshu\n          if (item !== null && _i18 > leftNum && _i18 < rightNum) {\n            //var startX = item.x - item.width / 2;\n            var startX = opts.area[3];\n            var startY = item.y - item.width / 2;\n            var height = item.height;\n            context.beginPath();\n            var fillColor = item.color || eachSeries.color;\n            var strokeColor = item.color || eachSeries.color;\n            if (columnOption.linearType !== 'none') {\n              var grd = context.createLinearGradient(startX, item.y, item.x, item.y);\n              //閫忔槑娓愬彉\n              if (columnOption.linearType == 'opacity') {\n                grd.addColorStop(0, hexToRgb(fillColor, columnOption.linearOpacity));\n                grd.addColorStop(1, hexToRgb(fillColor, 1));\n              } else {\n                grd.addColorStop(0, hexToRgb(columnOption.customColor[eachSeries.linearIndex], columnOption.linearOpacity));\n                grd.addColorStop(columnOption.colorStop, hexToRgb(columnOption.customColor[eachSeries.linearIndex], columnOption.linearOpacity));\n                grd.addColorStop(1, hexToRgb(fillColor, 1));\n              }\n              fillColor = grd;\n            }\n            // 鍦嗚杈规\n            if (columnOption.barBorderRadius && columnOption.barBorderRadius.length === 4 || columnOption.barBorderCircle === true) {\n              var left = startX;\n              var width = item.width;\n              var top = item.y - item.width / 2;\n              var _height2 = item.heigh;\n              if (columnOption.barBorderCircle) {\n                columnOption.barBorderRadius = [width / 2, width / 2, 0, 0];\n              }var _columnOption$barBord2 = _slicedToArray(\n              columnOption.barBorderRadius, 4),r0 = _columnOption$barBord2[0],r1 = _columnOption$barBord2[1],r2 = _columnOption$barBord2[2],r3 = _columnOption$barBord2[3];\n              var minRadius = Math.min(width / 2, _height2 / 2);\n              r0 = r0 > minRadius ? minRadius : r0;\n              r1 = r1 > minRadius ? minRadius : r1;\n              r2 = r2 > minRadius ? minRadius : r2;\n              r3 = r3 > minRadius ? minRadius : r3;\n              r0 = r0 < 0 ? 0 : r0;\n              r1 = r1 < 0 ? 0 : r1;\n              r2 = r2 < 0 ? 0 : r2;\n              r3 = r3 < 0 ? 0 : r3;\n\n              context.arc(left + r3, top + r3, r3, -Math.PI, -Math.PI / 2);\n              context.arc(item.x - r0, top + r0, r0, -Math.PI / 2, 0);\n              context.arc(item.x - r1, top + width - r1, r1, 0, Math.PI / 2);\n              context.arc(left + r2, top + width - r2, r2, Math.PI / 2, Math.PI);\n            } else {\n              context.moveTo(startX, startY);\n              context.lineTo(item.x, startY);\n              context.lineTo(item.x, startY + item.width - 2);\n              context.lineTo(startX, startY + item.width - 2);\n              context.lineTo(startX, startY);\n              context.setLineWidth(1);\n              context.setStrokeStyle(strokeColor);\n            }\n            context.setFillStyle(fillColor);\n            context.closePath();\n            //context.stroke();\n            context.fill();\n          }\n        };\n        break;\n      case 'stack':\n        // 缁樺埗鍫嗗彔鏁版嵁鍥綷n        var points = getBarStackDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config, seriesIndex, series, process);\n        calPoints.push(points);\n        points = fixBarStackData(points, eachSpacing, series.length, seriesIndex, config, opts, series);\n        for (var _i19 = 0; _i19 < points.length; _i19++) {\n          var _item10 = points[_i19];\n          if (_item10 !== null && _i19 > leftNum && _i19 < rightNum) {\n            context.beginPath();\n            var fillColor = _item10.color || eachSeries.color;\n            var startX = _item10.x0;\n            context.setFillStyle(fillColor);\n            context.moveTo(startX, _item10.y - _item10.width / 2);\n            context.fillRect(startX, _item10.y - _item10.width / 2, _item10.height, _item10.width - 2);\n            context.closePath();\n            context.fill();\n          }\n        };\n        break;}\n\n  });\n\n  if (opts.dataLabel !== false && process === 1) {\n    series.forEach(function (eachSeries, seriesIndex) {\n      var ranges, minRange, maxRange;\n      ranges = [].concat(opts.chartData.xAxisData.ranges);\n      maxRange = ranges.pop();\n      minRange = ranges.shift();\n      var data = eachSeries.data;\n      switch (columnOption.type) {\n        case 'group':\n          var points = getBarDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config, process);\n          points = fixBarData(points, eachSpacing, series.length, seriesIndex, config, opts);\n          drawBarPointText(points, eachSeries, config, context, opts);\n          break;\n        case 'stack':\n          var points = getBarStackDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config, seriesIndex, series, process);\n          drawBarPointText(points, eachSeries, config, context, opts);\n          break;}\n\n    });\n  }\n  return {\n    yAxisPoints: yAxisPoints,\n    calPoints: calPoints,\n    eachSpacing: eachSpacing };\n\n}\n\nfunction drawCandleDataPoints(series, seriesMA, opts, config, context) {\n  var process = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 1;\n  var candleOption = assign({}, {\n    color: {},\n    average: {} },\n  opts.extra.candle);\n  candleOption.color = assign({}, {\n    upLine: '#f04864',\n    upFill: '#f04864',\n    downLine: '#2fc25b',\n    downFill: '#2fc25b' },\n  candleOption.color);\n  candleOption.average = assign({}, {\n    show: false,\n    name: [],\n    day: [],\n    color: config.color },\n  candleOption.average);\n  opts.extra.candle = candleOption;\n  var xAxisData = opts.chartData.xAxisData,\n  xAxisPoints = xAxisData.xAxisPoints,\n  eachSpacing = xAxisData.eachSpacing;\n  var calPoints = [];\n  context.save();\n  var leftNum = -2;\n  var rightNum = xAxisPoints.length + 2;\n  var leftSpace = 0;\n  var rightSpace = opts.width + eachSpacing;\n  if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {\n    context.translate(opts._scrollDistance_, 0);\n    leftNum = Math.floor(-opts._scrollDistance_ / eachSpacing) - 2;\n    rightNum = leftNum + opts.xAxis.itemCount + 4;\n    leftSpace = -opts._scrollDistance_ - eachSpacing * 2 + opts.area[3];\n    rightSpace = leftSpace + (opts.xAxis.itemCount + 4) * eachSpacing;\n  }\n  //鐢诲潎绾縗n  if (candleOption.average.show || seriesMA) {//Merge pull request !12 from 閭辫吹缈擻n    seriesMA.forEach(function (eachSeries, seriesIndex) {\n      var ranges, minRange, maxRange;\n      ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n      minRange = ranges.pop();\n      maxRange = ranges.shift();\n      var data = eachSeries.data;\n      var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n      var splitPointList = splitPoints(points, eachSeries);\n      for (var i = 0; i < splitPointList.length; i++) {\n        var _points = splitPointList[i];\n        context.beginPath();\n        context.setStrokeStyle(eachSeries.color);\n        context.setLineWidth(1);\n        if (_points.length === 1) {\n          context.moveTo(_points[0].x, _points[0].y);\n          context.arc(_points[0].x, _points[0].y, 1, 0, 2 * Math.PI);\n        } else {\n          context.moveTo(_points[0].x, _points[0].y);\n          var startPoint = 0;\n          for (var j = 0; j < _points.length; j++) {\n            var item = _points[j];\n            if (startPoint == 0 && item.x > leftSpace) {\n              context.moveTo(item.x, item.y);\n              startPoint = 1;\n            }\n            if (j > 0 && item.x > leftSpace && item.x < rightSpace) {\n              var ctrlPoint = createCurveControlPoints(_points, j - 1);\n              context.bezierCurveTo(ctrlPoint.ctrA.x, ctrlPoint.ctrA.y, ctrlPoint.ctrB.x, ctrlPoint.ctrB.y, item.x,\n              item.y);\n            }\n          }\n          context.moveTo(_points[0].x, _points[0].y);\n        }\n        context.closePath();\n        context.stroke();\n      }\n    });\n  }\n  //鐢籏绾縗n  series.forEach(function (eachSeries, seriesIndex) {\n    var ranges, minRange, maxRange;\n    ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n    minRange = ranges.pop();\n    maxRange = ranges.shift();\n    var data = eachSeries.data;\n    var points = getCandleDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n    calPoints.push(points);\n    var splitPointList = splitPoints(points, eachSeries);\n    for (var i = 0; i < splitPointList[0].length; i++) {\n      if (i > leftNum && i < rightNum) {\n        var item = splitPointList[0][i];\n        context.beginPath();\n        //濡傛灉涓婃定\n        if (data[i][1] - data[i][0] > 0) {\n          context.setStrokeStyle(candleOption.color.upLine);\n          context.setFillStyle(candleOption.color.upFill);\n          context.setLineWidth(1 * opts.pix);\n          context.moveTo(item[3].x, item[3].y); //椤剁偣\n          context.lineTo(item[1].x, item[1].y); //鏀剁洏涓棿鐐筡n          context.lineTo(item[1].x - eachSpacing / 4, item[1].y); //鏀剁洏宸︿晶鐐筡n          context.lineTo(item[0].x - eachSpacing / 4, item[0].y); //寮�鐩樺乏渚х偣\n          context.lineTo(item[0].x, item[0].y); //寮�鐩樹腑闂寸偣\n          context.lineTo(item[2].x, item[2].y); //搴曠偣\n          context.lineTo(item[0].x, item[0].y); //寮�鐩樹腑闂寸偣\n          context.lineTo(item[0].x + eachSpacing / 4, item[0].y); //寮�鐩樺彸渚х偣\n          context.lineTo(item[1].x + eachSpacing / 4, item[1].y); //鏀剁洏鍙充晶鐐筡n          context.lineTo(item[1].x, item[1].y); //鏀剁洏涓棿鐐筡n          context.moveTo(item[3].x, item[3].y); //椤剁偣\n        } else {\n          context.setStrokeStyle(candleOption.color.downLine);\n          context.setFillStyle(candleOption.color.downFill);\n          context.setLineWidth(1 * opts.pix);\n          context.moveTo(item[3].x, item[3].y); //椤剁偣\n          context.lineTo(item[0].x, item[0].y); //寮�鐩樹腑闂寸偣\n          context.lineTo(item[0].x - eachSpacing / 4, item[0].y); //寮�鐩樺乏渚х偣\n          context.lineTo(item[1].x - eachSpacing / 4, item[1].y); //鏀剁洏宸︿晶鐐筡n          context.lineTo(item[1].x, item[1].y); //鏀剁洏涓棿鐐筡n          context.lineTo(item[2].x, item[2].y); //搴曠偣\n          context.lineTo(item[1].x, item[1].y); //鏀剁洏涓棿鐐筡n          context.lineTo(item[1].x + eachSpacing / 4, item[1].y); //鏀剁洏鍙充晶鐐筡n          context.lineTo(item[0].x + eachSpacing / 4, item[0].y); //寮�鐩樺彸渚х偣\n          context.lineTo(item[0].x, item[0].y); //寮�鐩樹腑闂寸偣\n          context.moveTo(item[3].x, item[3].y); //椤剁偣\n        }\n        context.closePath();\n        context.fill();\n        context.stroke();\n      }\n    }\n  });\n  context.restore();\n  return {\n    xAxisPoints: xAxisPoints,\n    calPoints: calPoints,\n    eachSpacing: eachSpacing };\n\n}\n\nfunction drawAreaDataPoints(series, opts, config, context) {\n  var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n  var areaOption = assign({}, {\n    type: 'straight',\n    opacity: 0.2,\n    addLine: false,\n    width: 2,\n    gradient: false },\n  opts.extra.area);\n  var xAxisData = opts.chartData.xAxisData,\n  xAxisPoints = xAxisData.xAxisPoints,\n  eachSpacing = xAxisData.eachSpacing;\n  var endY = opts.height - opts.area[2];\n  var calPoints = [];\n  context.save();\n  var leftSpace = 0;\n  var rightSpace = opts.width + eachSpacing;\n  if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {\n    context.translate(opts._scrollDistance_, 0);\n    leftSpace = -opts._scrollDistance_ - eachSpacing * 2 + opts.area[3];\n    rightSpace = leftSpace + (opts.xAxis.itemCount + 4) * eachSpacing;\n  }\n  series.forEach(function (eachSeries, seriesIndex) {\n    var ranges, minRange, maxRange;\n    ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n    minRange = ranges.pop();\n    maxRange = ranges.shift();\n    var data = eachSeries.data;\n    var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n    calPoints.push(points);\n    var splitPointList = splitPoints(points, eachSeries);\n    for (var i = 0; i < splitPointList.length; i++) {\n      var _points2 = splitPointList[i];\n      // 缁樺埗鍖哄煙鏁癨n      context.beginPath();\n      context.setStrokeStyle(hexToRgb(eachSeries.color, areaOption.opacity));\n      if (areaOption.gradient) {\n        var gradient = context.createLinearGradient(0, opts.area[0], 0, opts.height - opts.area[2]);\n        gradient.addColorStop('0', hexToRgb(eachSeries.color, areaOption.opacity));\n        gradient.addColorStop('1.0', hexToRgb(\"#FFFFFF\", 0.1));\n        context.setFillStyle(gradient);\n      } else {\n        context.setFillStyle(hexToRgb(eachSeries.color, areaOption.opacity));\n      }\n      context.setLineWidth(areaOption.width * opts.pix);\n      if (_points2.length > 1) {\n        var firstPoint = _points2[0];\n        var lastPoint = _points2[_points2.length - 1];\n        context.moveTo(firstPoint.x, firstPoint.y);\n        var startPoint = 0;\n        if (areaOption.type === 'curve') {\n          for (var j = 0; j < _points2.length; j++) {\n            var item = _points2[j];\n            if (startPoint == 0 && item.x > leftSpace) {\n              context.moveTo(item.x, item.y);\n              startPoint = 1;\n            }\n            if (j > 0 && item.x > leftSpace && item.x < rightSpace) {\n              var ctrlPoint = createCurveControlPoints(_points2, j - 1);\n              context.bezierCurveTo(ctrlPoint.ctrA.x, ctrlPoint.ctrA.y, ctrlPoint.ctrB.x, ctrlPoint.ctrB.y, item.x, item.y);\n            }\n          };\n        }\n        if (areaOption.type === 'straight') {\n          for (var _j = 0; _j < _points2.length; _j++) {\n            var _item11 = _points2[_j];\n            if (startPoint == 0 && _item11.x > leftSpace) {\n              context.moveTo(_item11.x, _item11.y);\n              startPoint = 1;\n            }\n            if (_j > 0 && _item11.x > leftSpace && _item11.x < rightSpace) {\n              context.lineTo(_item11.x, _item11.y);\n            }\n          };\n        }\n        if (areaOption.type === 'step') {\n          for (var _j2 = 0; _j2 < _points2.length; _j2++) {\n            var _item12 = _points2[_j2];\n            if (startPoint == 0 && _item12.x > leftSpace) {\n              context.moveTo(_item12.x, _item12.y);\n              startPoint = 1;\n            }\n            if (_j2 > 0 && _item12.x > leftSpace && _item12.x < rightSpace) {\n              context.lineTo(_item12.x, _points2[_j2 - 1].y);\n              context.lineTo(_item12.x, _item12.y);\n            }\n          };\n        }\n        context.lineTo(lastPoint.x, endY);\n        context.lineTo(firstPoint.x, endY);\n        context.lineTo(firstPoint.x, firstPoint.y);\n      } else {\n        var _item13 = _points2[0];\n        context.moveTo(_item13.x - eachSpacing / 2, _item13.y);\n        context.lineTo(_item13.x + eachSpacing / 2, _item13.y);\n        context.lineTo(_item13.x + eachSpacing / 2, endY);\n        context.lineTo(_item13.x - eachSpacing / 2, endY);\n        context.moveTo(_item13.x - eachSpacing / 2, _item13.y);\n      }\n      context.closePath();\n      context.fill();\n      //鐢昏繛绾縗n      if (areaOption.addLine) {\n        if (eachSeries.lineType == 'dash') {\n          var dashLength = eachSeries.dashLength ? eachSeries.dashLength : 8;\n          dashLength *= opts.pix;\n          context.setLineDash([dashLength, dashLength]);\n        }\n        context.beginPath();\n        context.setStrokeStyle(eachSeries.color);\n        context.setLineWidth(areaOption.width * opts.pix);\n        if (_points2.length === 1) {\n          context.moveTo(_points2[0].x, _points2[0].y);\n          context.arc(_points2[0].x, _points2[0].y, 1, 0, 2 * Math.PI);\n        } else {\n          context.moveTo(_points2[0].x, _points2[0].y);\n          var _startPoint = 0;\n          if (areaOption.type === 'curve') {\n            for (var _j3 = 0; _j3 < _points2.length; _j3++) {\n              var _item14 = _points2[_j3];\n              if (_startPoint == 0 && _item14.x > leftSpace) {\n                context.moveTo(_item14.x, _item14.y);\n                _startPoint = 1;\n              }\n              if (_j3 > 0 && _item14.x > leftSpace && _item14.x < rightSpace) {\n                var _ctrlPoint = createCurveControlPoints(_points2, _j3 - 1);\n                context.bezierCurveTo(_ctrlPoint.ctrA.x, _ctrlPoint.ctrA.y, _ctrlPoint.ctrB.x, _ctrlPoint.ctrB.y, _item14.x, _item14.y);\n              }\n            };\n          }\n          if (areaOption.type === 'straight') {\n            for (var _j4 = 0; _j4 < _points2.length; _j4++) {\n              var _item15 = _points2[_j4];\n              if (_startPoint == 0 && _item15.x > leftSpace) {\n                context.moveTo(_item15.x, _item15.y);\n                _startPoint = 1;\n              }\n              if (_j4 > 0 && _item15.x > leftSpace && _item15.x < rightSpace) {\n                context.lineTo(_item15.x, _item15.y);\n              }\n            };\n          }\n          if (areaOption.type === 'step') {\n            for (var _j5 = 0; _j5 < _points2.length; _j5++) {\n              var _item16 = _points2[_j5];\n              if (_startPoint == 0 && _item16.x > leftSpace) {\n                context.moveTo(_item16.x, _item16.y);\n                _startPoint = 1;\n              }\n              if (_j5 > 0 && _item16.x > leftSpace && _item16.x < rightSpace) {\n                context.lineTo(_item16.x, _points2[_j5 - 1].y);\n                context.lineTo(_item16.x, _item16.y);\n              }\n            };\n          }\n          context.moveTo(_points2[0].x, _points2[0].y);\n        }\n        context.stroke();\n        context.setLineDash([]);\n      }\n    }\n    //鐢荤偣\n    if (opts.dataPointShape !== false) {\n      drawPointShape(points, eachSeries.color, eachSeries.pointShape, context, opts);\n    }\n  });\n\n  if (opts.dataLabel !== false && process === 1) {\n    series.forEach(function (eachSeries, seriesIndex) {\n      var ranges, minRange, maxRange;\n      ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n      minRange = ranges.pop();\n      maxRange = ranges.shift();\n      var data = eachSeries.data;\n      var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n      drawPointText(points, eachSeries, config, context, opts);\n    });\n  }\n  context.restore();\n  return {\n    xAxisPoints: xAxisPoints,\n    calPoints: calPoints,\n    eachSpacing: eachSpacing };\n\n}\n\nfunction drawScatterDataPoints(series, opts, config, context) {\n  var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n  var scatterOption = assign({}, {\n    type: 'circle' },\n  opts.extra.scatter);\n  var xAxisData = opts.chartData.xAxisData,\n  xAxisPoints = xAxisData.xAxisPoints,\n  eachSpacing = xAxisData.eachSpacing;\n  var calPoints = [];\n  context.save();\n  var leftSpace = 0;\n  var rightSpace = opts.width + eachSpacing;\n  if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {\n    context.translate(opts._scrollDistance_, 0);\n    leftSpace = -opts._scrollDistance_ - eachSpacing * 2 + opts.area[3];\n    rightSpace = leftSpace + (opts.xAxis.itemCount + 4) * eachSpacing;\n  }\n  series.forEach(function (eachSeries, seriesIndex) {\n    var ranges, minRange, maxRange;\n    ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n    minRange = ranges.pop();\n    maxRange = ranges.shift();\n    var data = eachSeries.data;\n    var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n    context.beginPath();\n    context.setStrokeStyle(eachSeries.color);\n    context.setFillStyle(eachSeries.color);\n    context.setLineWidth(1 * opts.pix);\n    var shape = eachSeries.pointShape;\n    if (shape === 'diamond') {\n      points.forEach(function (item, index) {\n        if (item !== null) {\n          context.moveTo(item.x, item.y - 4.5);\n          context.lineTo(item.x - 4.5, item.y);\n          context.lineTo(item.x, item.y + 4.5);\n          context.lineTo(item.x + 4.5, item.y);\n          context.lineTo(item.x, item.y - 4.5);\n        }\n      });\n    } else if (shape === 'circle') {\n      points.forEach(function (item, index) {\n        if (item !== null) {\n          context.moveTo(item.x + 2.5 * opts.pix, item.y);\n          context.arc(item.x, item.y, 3 * opts.pix, 0, 2 * Math.PI, false);\n        }\n      });\n    } else if (shape === 'square') {\n      points.forEach(function (item, index) {\n        if (item !== null) {\n          context.moveTo(item.x - 3.5, item.y - 3.5);\n          context.rect(item.x - 3.5, item.y - 3.5, 7, 7);\n        }\n      });\n    } else if (shape === 'triangle') {\n      points.forEach(function (item, index) {\n        if (item !== null) {\n          context.moveTo(item.x, item.y - 4.5);\n          context.lineTo(item.x - 4.5, item.y + 4.5);\n          context.lineTo(item.x + 4.5, item.y + 4.5);\n          context.lineTo(item.x, item.y - 4.5);\n        }\n      });\n    } else if (shape === 'triangle') {\n      return;\n    }\n    context.closePath();\n    context.fill();\n    context.stroke();\n  });\n  if (opts.dataLabel !== false && process === 1) {\n    series.forEach(function (eachSeries, seriesIndex) {\n      var ranges, minRange, maxRange;\n      ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n      minRange = ranges.pop();\n      maxRange = ranges.shift();\n      var data = eachSeries.data;\n      var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n      drawPointText(points, eachSeries, config, context, opts);\n    });\n  }\n  context.restore();\n  return {\n    xAxisPoints: xAxisPoints,\n    calPoints: calPoints,\n    eachSpacing: eachSpacing };\n\n}\n\nfunction drawBubbleDataPoints(series, opts, config, context) {\n  var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n  var bubbleOption = assign({}, {\n    opacity: 1,\n    border: 2 },\n  opts.extra.bubble);\n  var xAxisData = opts.chartData.xAxisData,\n  xAxisPoints = xAxisData.xAxisPoints,\n  eachSpacing = xAxisData.eachSpacing;\n  var calPoints = [];\n  context.save();\n  var leftSpace = 0;\n  var rightSpace = opts.width + eachSpacing;\n  if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {\n    context.translate(opts._scrollDistance_, 0);\n    leftSpace = -opts._scrollDistance_ - eachSpacing * 2 + opts.area[3];\n    rightSpace = leftSpace + (opts.xAxis.itemCount + 4) * eachSpacing;\n  }\n  series.forEach(function (eachSeries, seriesIndex) {\n    var ranges, minRange, maxRange;\n    ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n    minRange = ranges.pop();\n    maxRange = ranges.shift();\n    var data = eachSeries.data;\n    var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n    context.beginPath();\n    context.setStrokeStyle(eachSeries.color);\n    context.setLineWidth(bubbleOption.border * opts.pix);\n    context.setFillStyle(hexToRgb(eachSeries.color, bubbleOption.opacity));\n    points.forEach(function (item, index) {\n      context.moveTo(item.x + item.r, item.y);\n      context.arc(item.x, item.y, item.r * opts.pix, 0, 2 * Math.PI, false);\n    });\n    context.closePath();\n    context.fill();\n    context.stroke();\n\n    if (opts.dataLabel !== false && process === 1) {\n      points.forEach(function (item, index) {\n        context.beginPath();\n        var fontSize = series.textSize * opts.pix || config.fontSize;\n        context.setFontSize(fontSize);\n        context.setFillStyle(series.textColor || \"#FFFFFF\");\n        context.setTextAlign('center');\n        context.fillText(String(item.t), item.x, item.y + fontSize / 2);\n        context.closePath();\n        context.stroke();\n        context.setTextAlign('left');\n      });\n    }\n  });\n  context.restore();\n  return {\n    xAxisPoints: xAxisPoints,\n    calPoints: calPoints,\n    eachSpacing: eachSpacing };\n\n}\n\n\nfunction drawLineDataPoints(series, opts, config, context) {\n  var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n  var lineOption = assign({}, {\n    type: 'straight',\n    width: 2 },\n  opts.extra.line);\n  lineOption.width *= opts.pix;\n  var xAxisData = opts.chartData.xAxisData,\n  xAxisPoints = xAxisData.xAxisPoints,\n  eachSpacing = xAxisData.eachSpacing;\n  var calPoints = [];\n  context.save();\n  var leftSpace = 0;\n  var rightSpace = opts.width + eachSpacing;\n  if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {\n    context.translate(opts._scrollDistance_, 0);\n    leftSpace = -opts._scrollDistance_ - eachSpacing * 2 + opts.area[3];\n    rightSpace = leftSpace + (opts.xAxis.itemCount + 4) * eachSpacing;\n  }\n  series.forEach(function (eachSeries, seriesIndex) {\n    var ranges, minRange, maxRange;\n    ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n    minRange = ranges.pop();\n    maxRange = ranges.shift();\n    var data = eachSeries.data;\n    var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n    calPoints.push(points);\n    var splitPointList = splitPoints(points, eachSeries);\n    if (eachSeries.lineType == 'dash') {\n      var dashLength = eachSeries.dashLength ? eachSeries.dashLength : 8;\n      dashLength *= opts.pix;\n      context.setLineDash([dashLength, dashLength]);\n    }\n    context.beginPath();\n    context.setStrokeStyle(eachSeries.color);\n    context.setLineWidth(lineOption.width);\n    splitPointList.forEach(function (points, index) {\n      if (points.length === 1) {\n        context.moveTo(points[0].x, points[0].y);\n        context.arc(points[0].x, points[0].y, 1, 0, 2 * Math.PI);\n      } else {\n        context.moveTo(points[0].x, points[0].y);\n        var startPoint = 0;\n        if (lineOption.type === 'curve') {\n          for (var j = 0; j < points.length; j++) {\n            var item = points[j];\n            if (startPoint == 0 && item.x > leftSpace) {\n              context.moveTo(item.x, item.y);\n              startPoint = 1;\n            }\n            if (j > 0 && item.x > leftSpace && item.x < rightSpace) {\n              var ctrlPoint = createCurveControlPoints(points, j - 1);\n              context.bezierCurveTo(ctrlPoint.ctrA.x, ctrlPoint.ctrA.y, ctrlPoint.ctrB.x, ctrlPoint.ctrB.y, item.x, item.y);\n            }\n          };\n        }\n        if (lineOption.type === 'straight') {\n          for (var _j6 = 0; _j6 < points.length; _j6++) {\n            var _item17 = points[_j6];\n            if (startPoint == 0 && _item17.x > leftSpace) {\n              context.moveTo(_item17.x, _item17.y);\n              startPoint = 1;\n            }\n            if (_j6 > 0 && _item17.x > leftSpace && _item17.x < rightSpace) {\n              context.lineTo(_item17.x, _item17.y);\n            }\n          };\n        }\n        if (lineOption.type === 'step') {\n          for (var _j7 = 0; _j7 < points.length; _j7++) {\n            var _item18 = points[_j7];\n            if (startPoint == 0 && _item18.x > leftSpace) {\n              context.moveTo(_item18.x, _item18.y);\n              startPoint = 1;\n            }\n            if (_j7 > 0 && _item18.x > leftSpace && _item18.x < rightSpace) {\n              context.lineTo(_item18.x, points[_j7 - 1].y);\n              context.lineTo(_item18.x, _item18.y);\n            }\n          };\n        }\n        context.moveTo(points[0].x, points[0].y);\n      }\n    });\n    context.stroke();\n    context.setLineDash([]);\n    if (opts.dataPointShape !== false) {\n      drawPointShape(points, eachSeries.color, eachSeries.pointShape, context, opts);\n    }\n  });\n  if (opts.dataLabel !== false && process === 1) {\n    series.forEach(function (eachSeries, seriesIndex) {\n      var ranges, minRange, maxRange;\n      ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n      minRange = ranges.pop();\n      maxRange = ranges.shift();\n      var data = eachSeries.data;\n      var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n      drawPointText(points, eachSeries, config, context, opts);\n    });\n  }\n  context.restore();\n  return {\n    xAxisPoints: xAxisPoints,\n    calPoints: calPoints,\n    eachSpacing: eachSpacing };\n\n}\n\nfunction drawMixDataPoints(series, opts, config, context) {\n  var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n  var columnOption = assign({}, {\n    width: eachSpacing / 2,\n    barBorderCircle: false,\n    barBorderRadius: [],\n    seriesGap: 2,\n    linearType: 'none',\n    linearOpacity: 1,\n    customColor: [],\n    colorStop: 0 },\n  opts.extra.mix.column);\n  var xAxisData = opts.chartData.xAxisData,\n  xAxisPoints = xAxisData.xAxisPoints,\n  eachSpacing = xAxisData.eachSpacing;\n  var endY = opts.height - opts.area[2];\n  var calPoints = [];\n  var columnIndex = 0;\n  var columnLength = 0;\n  series.forEach(function (eachSeries, seriesIndex) {\n    if (eachSeries.type == 'column') {\n      columnLength += 1;\n    }\n  });\n  context.save();\n  var leftNum = -2;\n  var rightNum = xAxisPoints.length + 2;\n  var leftSpace = 0;\n  var rightSpace = opts.width + eachSpacing;\n  if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {\n    context.translate(opts._scrollDistance_, 0);\n    leftNum = Math.floor(-opts._scrollDistance_ / eachSpacing) - 2;\n    rightNum = leftNum + opts.xAxis.itemCount + 4;\n    leftSpace = -opts._scrollDistance_ - eachSpacing * 2 + opts.area[3];\n    rightSpace = leftSpace + (opts.xAxis.itemCount + 4) * eachSpacing;\n  }\n  columnOption.customColor = fillCustomColor(columnOption.linearType, columnOption.customColor, series, config);\n  series.forEach(function (eachSeries, seriesIndex) {\n    var ranges, minRange, maxRange;\n    ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n    minRange = ranges.pop();\n    maxRange = ranges.shift();\n    var data = eachSeries.data;\n    var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n    calPoints.push(points);\n    // 缁樺埗鏌辩姸鏁版嵁鍥綷n    if (eachSeries.type == 'column') {\n      points = fixColumeData(points, eachSpacing, columnLength, columnIndex, config, opts);\n      for (var i = 0; i < points.length; i++) {\n        var item = points[i];\n        if (item !== null && i > leftNum && i < rightNum) {\n          var startX = item.x - item.width / 2;\n          var height = opts.height - item.y - opts.area[2];\n          context.beginPath();\n          var fillColor = item.color || eachSeries.color;\n          var strokeColor = item.color || eachSeries.color;\n          if (columnOption.linearType !== 'none') {\n            var grd = context.createLinearGradient(startX, item.y, startX, opts.height - opts.area[2]);\n            //閫忔槑娓愬彉\n            if (columnOption.linearType == 'opacity') {\n              grd.addColorStop(0, hexToRgb(fillColor, columnOption.linearOpacity));\n              grd.addColorStop(1, hexToRgb(fillColor, 1));\n            } else {\n              grd.addColorStop(0, hexToRgb(columnOption.customColor[eachSeries.linearIndex], columnOption.linearOpacity));\n              grd.addColorStop(columnOption.colorStop, hexToRgb(columnOption.customColor[eachSeries.linearIndex], columnOption.linearOpacity));\n              grd.addColorStop(1, hexToRgb(fillColor, 1));\n            }\n            fillColor = grd;\n          }\n          // 鍦嗚杈规\n          if (columnOption.barBorderRadius && columnOption.barBorderRadius.length === 4 || columnOption.barBorderCircle) {\n            var left = startX;\n            var top = item.y;\n            var width = item.width;\n            var _height3 = opts.height - opts.area[2] - item.y;\n            if (columnOption.barBorderCircle) {\n              columnOption.barBorderRadius = [width / 2, width / 2, 0, 0];\n            }var _columnOption$barBord3 = _slicedToArray(\n            columnOption.barBorderRadius, 4),r0 = _columnOption$barBord3[0],r1 = _columnOption$barBord3[1],r2 = _columnOption$barBord3[2],r3 = _columnOption$barBord3[3];\n            var minRadius = Math.min(width / 2, _height3 / 2);\n            r0 = r0 > minRadius ? minRadius : r0;\n            r1 = r1 > minRadius ? minRadius : r1;\n            r2 = r2 > minRadius ? minRadius : r2;\n            r3 = r3 > minRadius ? minRadius : r3;\n            r0 = r0 < 0 ? 0 : r0;\n            r1 = r1 < 0 ? 0 : r1;\n            r2 = r2 < 0 ? 0 : r2;\n            r3 = r3 < 0 ? 0 : r3;\n            context.arc(left + r0, top + r0, r0, -Math.PI, -Math.PI / 2);\n            context.arc(left + width - r1, top + r1, r1, -Math.PI / 2, 0);\n            context.arc(left + width - r2, top + _height3 - r2, r2, 0, Math.PI / 2);\n            context.arc(left + r3, top + _height3 - r3, r3, Math.PI / 2, Math.PI);\n          } else {\n            context.moveTo(startX, item.y);\n            context.lineTo(startX + item.width - 2, item.y);\n            context.lineTo(startX + item.width - 2, opts.height - opts.area[2]);\n            context.lineTo(startX, opts.height - opts.area[2]);\n            context.lineTo(startX, item.y);\n            context.setLineWidth(1);\n            context.setStrokeStyle(strokeColor);\n          }\n          context.setFillStyle(fillColor);\n          context.closePath();\n          context.fill();\n        }\n      }\n      columnIndex += 1;\n    }\n    //缁樺埗鍖哄煙鍥炬暟鎹甛n    if (eachSeries.type == 'area') {\n      var _splitPointList = splitPoints(points, eachSeries);\n      for (var _i20 = 0; _i20 < _splitPointList.length; _i20++) {\n        var _points3 = _splitPointList[_i20];\n        // 缁樺埗鍖哄煙鏁版嵁\n        context.beginPath();\n        context.setStrokeStyle(eachSeries.color);\n        context.setFillStyle(hexToRgb(eachSeries.color, 0.2));\n        context.setLineWidth(2 * opts.pix);\n        if (_points3.length > 1) {\n          var firstPoint = _points3[0];\n          var lastPoint = _points3[_points3.length - 1];\n          context.moveTo(firstPoint.x, firstPoint.y);\n          var startPoint = 0;\n          if (eachSeries.style === 'curve') {\n            for (var j = 0; j < _points3.length; j++) {\n              var _item19 = _points3[j];\n              if (startPoint == 0 && _item19.x > leftSpace) {\n                context.moveTo(_item19.x, _item19.y);\n                startPoint = 1;\n              }\n              if (j > 0 && _item19.x > leftSpace && _item19.x < rightSpace) {\n                var ctrlPoint = createCurveControlPoints(_points3, j - 1);\n                context.bezierCurveTo(ctrlPoint.ctrA.x, ctrlPoint.ctrA.y, ctrlPoint.ctrB.x, ctrlPoint.ctrB.y, _item19.x, _item19.y);\n              }\n            };\n          } else {\n            for (var _j8 = 0; _j8 < _points3.length; _j8++) {\n              var _item20 = _points3[_j8];\n              if (startPoint == 0 && _item20.x > leftSpace) {\n                context.moveTo(_item20.x, _item20.y);\n                startPoint = 1;\n              }\n              if (_j8 > 0 && _item20.x > leftSpace && _item20.x < rightSpace) {\n                context.lineTo(_item20.x, _item20.y);\n              }\n            };\n          }\n          context.lineTo(lastPoint.x, endY);\n          context.lineTo(firstPoint.x, endY);\n          context.lineTo(firstPoint.x, firstPoint.y);\n        } else {\n          var _item21 = _points3[0];\n          context.moveTo(_item21.x - eachSpacing / 2, _item21.y);\n          context.lineTo(_item21.x + eachSpacing / 2, _item21.y);\n          context.lineTo(_item21.x + eachSpacing / 2, endY);\n          context.lineTo(_item21.x - eachSpacing / 2, endY);\n          context.moveTo(_item21.x - eachSpacing / 2, _item21.y);\n        }\n        context.closePath();\n        context.fill();\n      }\n    }\n    // 缁樺埗鎶樼嚎鏁版嵁鍥綷n    if (eachSeries.type == 'line') {\n      var splitPointList = splitPoints(points, eachSeries);\n      splitPointList.forEach(function (points, index) {\n        if (eachSeries.lineType == 'dash') {\n          var dashLength = eachSeries.dashLength ? eachSeries.dashLength : 8;\n          dashLength *= opts.pix;\n          context.setLineDash([dashLength, dashLength]);\n        }\n        context.beginPath();\n        context.setStrokeStyle(eachSeries.color);\n        context.setLineWidth(2 * opts.pix);\n        if (points.length === 1) {\n          context.moveTo(points[0].x, points[0].y);\n          context.arc(points[0].x, points[0].y, 1, 0, 2 * Math.PI);\n        } else {\n          context.moveTo(points[0].x, points[0].y);\n          var _startPoint2 = 0;\n          if (eachSeries.style == 'curve') {\n            for (var _j9 = 0; _j9 < points.length; _j9++) {\n              var _item22 = points[_j9];\n              if (_startPoint2 == 0 && _item22.x > leftSpace) {\n                context.moveTo(_item22.x, _item22.y);\n                _startPoint2 = 1;\n              }\n              if (_j9 > 0 && _item22.x > leftSpace && _item22.x < rightSpace) {\n                var ctrlPoint = createCurveControlPoints(points, _j9 - 1);\n                context.bezierCurveTo(ctrlPoint.ctrA.x, ctrlPoint.ctrA.y, ctrlPoint.ctrB.x, ctrlPoint.ctrB.y,\n                _item22.x, _item22.y);\n              }\n            }\n          } else {\n            for (var _j10 = 0; _j10 < points.length; _j10++) {\n              var _item23 = points[_j10];\n              if (_startPoint2 == 0 && _item23.x > leftSpace) {\n                context.moveTo(_item23.x, _item23.y);\n                _startPoint2 = 1;\n              }\n              if (_j10 > 0 && _item23.x > leftSpace && _item23.x < rightSpace) {\n                context.lineTo(_item23.x, _item23.y);\n              }\n            }\n          }\n          context.moveTo(points[0].x, points[0].y);\n        }\n        context.stroke();\n        context.setLineDash([]);\n      });\n    }\n    // 缁樺埗鐐规暟鎹浘\n    if (eachSeries.type == 'point') {\n      eachSeries.addPoint = true;\n    }\n    if (eachSeries.addPoint == true && eachSeries.type !== 'column') {\n      drawPointShape(points, eachSeries.color, eachSeries.pointShape, context, opts);\n    }\n  });\n  if (opts.dataLabel !== false && process === 1) {\n    var columnIndex = 0;\n    series.forEach(function (eachSeries, seriesIndex) {\n      var ranges, minRange, maxRange;\n      ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n      minRange = ranges.pop();\n      maxRange = ranges.shift();\n      var data = eachSeries.data;\n      var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n      if (eachSeries.type !== 'column') {\n        drawPointText(points, eachSeries, config, context, opts);\n      } else {\n        points = fixColumeData(points, eachSpacing, columnLength, columnIndex, config, opts);\n        drawPointText(points, eachSeries, config, context, opts);\n        columnIndex += 1;\n      }\n    });\n  }\n  context.restore();\n  return {\n    xAxisPoints: xAxisPoints,\n    calPoints: calPoints,\n    eachSpacing: eachSpacing };\n\n}\n\nfunction drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints) {\n  var toolTipOption = opts.extra.tooltip || {};\n  if (toolTipOption.horizentalLine && opts.tooltip && process === 1 && (opts.type == 'line' || opts.type == 'area' || opts.type == 'column' || opts.type == 'candle' || opts.type == 'mix')) {\n    drawToolTipHorizentalLine(opts, config, context, eachSpacing, xAxisPoints);\n  }\n  context.save();\n  if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {\n    context.translate(opts._scrollDistance_, 0);\n  }\n  if (opts.tooltip && opts.tooltip.textList && opts.tooltip.textList.length && process === 1) {\n    drawToolTip(opts.tooltip.textList, opts.tooltip.offset, opts, config, context, eachSpacing, xAxisPoints);\n  }\n  context.restore();\n\n}\n\nfunction drawXAxis(categories, opts, config, context) {\n\n  var xAxisData = opts.chartData.xAxisData,\n  xAxisPoints = xAxisData.xAxisPoints,\n  startX = xAxisData.startX,\n  endX = xAxisData.endX,\n  eachSpacing = xAxisData.eachSpacing;\n  var boundaryGap = 'center';\n  if (opts.type == 'bar' || opts.type == 'line' || opts.type == 'area' || opts.type == 'scatter' || opts.type == 'bubble') {\n    boundaryGap = opts.xAxis.boundaryGap;\n  }\n  var startY = opts.height - opts.area[2];\n  var endY = opts.area[0];\n\n  //缁樺埗婊氬姩鏉n  if (opts.enableScroll && opts.xAxis.scrollShow) {\n    var scrollY = opts.height - opts.area[2] + config.xAxisHeight;\n    var scrollScreenWidth = endX - startX;\n    var scrollTotalWidth = eachSpacing * (xAxisPoints.length - 1);\n    var scrollWidth = scrollScreenWidth * scrollScreenWidth / scrollTotalWidth;\n    var scrollLeft = 0;\n    if (opts._scrollDistance_) {\n      scrollLeft = -opts._scrollDistance_ * scrollScreenWidth / scrollTotalWidth;\n    }\n    context.beginPath();\n    context.setLineCap('round');\n    context.setLineWidth(6 * opts.pix);\n    context.setStrokeStyle(opts.xAxis.scrollBackgroundColor || \"#EFEBEF\");\n    context.moveTo(startX, scrollY);\n    context.lineTo(endX, scrollY);\n    context.stroke();\n    context.closePath();\n    context.beginPath();\n    context.setLineCap('round');\n    context.setLineWidth(6 * opts.pix);\n    context.setStrokeStyle(opts.xAxis.scrollColor || \"#A6A6A6\");\n    context.moveTo(startX + scrollLeft, scrollY);\n    context.lineTo(startX + scrollLeft + scrollWidth, scrollY);\n    context.stroke();\n    context.closePath();\n    context.setLineCap('butt');\n  }\n  context.save();\n  if (opts._scrollDistance_ && opts._scrollDistance_ !== 0) {\n    context.translate(opts._scrollDistance_, 0);\n  }\n  //缁樺埗X杞村埢搴︾嚎\n  if (opts.xAxis.calibration === true) {\n    context.setStrokeStyle(opts.xAxis.gridColor || \"#cccccc\");\n    context.setLineCap('butt');\n    context.setLineWidth(1 * opts.pix);\n    xAxisPoints.forEach(function (item, index) {\n      if (index > 0) {\n        context.beginPath();\n        context.moveTo(item - eachSpacing / 2, startY);\n        context.lineTo(item - eachSpacing / 2, startY + 3 * opts.pix);\n        context.closePath();\n        context.stroke();\n      }\n    });\n  }\n  //缁樺埗X杞寸綉鏍糪n  if (opts.xAxis.disableGrid !== true) {\n    context.setStrokeStyle(opts.xAxis.gridColor || \"#cccccc\");\n    context.setLineCap('butt');\n    context.setLineWidth(1 * opts.pix);\n    if (opts.xAxis.gridType == 'dash') {\n      context.setLineDash([opts.xAxis.dashLength * opts.pix, opts.xAxis.dashLength * opts.pix]);\n    }\n    opts.xAxis.gridEval = opts.xAxis.gridEval || 1;\n    xAxisPoints.forEach(function (item, index) {\n      if (index % opts.xAxis.gridEval == 0) {\n        context.beginPath();\n        context.moveTo(item, startY);\n        context.lineTo(item, endY);\n        context.stroke();\n      }\n    });\n    context.setLineDash([]);\n  }\n  //缁樺埗X杞存枃妗圽n  if (opts.xAxis.disabled !== true) {\n    // 瀵筙杞村垪琛ㄥ仛鎶界█澶勭悊\n    //榛樿鍏ㄩ儴鏄剧ずX杞存爣绛綷n    var maxXAxisListLength = categories.length;\n    //濡傛灉璁剧疆浜哫杞村崟灞忔暟閲廫n    if (opts.xAxis.labelCount) {\n      //濡傛灉璁剧疆X杞村瘑搴n      if (opts.xAxis.itemCount) {\n        maxXAxisListLength = Math.ceil(categories.length / opts.xAxis.itemCount * opts.xAxis.labelCount);\n      } else {\n        maxXAxisListLength = opts.xAxis.labelCount;\n      }\n      maxXAxisListLength -= 1;\n    }\n\n    var ratio = Math.ceil(categories.length / maxXAxisListLength);\n\n    var newCategories = [];\n    var cgLength = categories.length;\n    for (var i = 0; i < cgLength; i++) {\n      if (i % ratio !== 0) {\n        newCategories.push(\"\");\n      } else {\n        newCategories.push(categories[i]);\n      }\n    }\n    newCategories[cgLength - 1] = categories[cgLength - 1];\n    var xAxisFontSize = opts.xAxis.fontSize * opts.pix || config.fontSize;\n    if (config._xAxisTextAngle_ === 0) {\n      newCategories.forEach(function (item, index) {\n        var xitem = opts.xAxis.formatter ? opts.xAxis.formatter(item) : item;\n        var offset = -measureText(String(xitem), xAxisFontSize, context) / 2;\n        if (boundaryGap == 'center') {\n          offset += eachSpacing / 2;\n        }\n        var scrollHeight = 0;\n        if (opts.xAxis.scrollShow) {\n          scrollHeight = 6 * opts.pix;\n        }\n        context.beginPath();\n        context.setFontSize(xAxisFontSize);\n        context.setFillStyle(opts.xAxis.fontColor || opts.fontColor);\n        context.fillText(String(xitem), xAxisPoints[index] + offset, startY + xAxisFontSize + (config.xAxisHeight - scrollHeight - xAxisFontSize) / 2);\n        context.closePath();\n        context.stroke();\n      });\n    } else {\n      newCategories.forEach(function (item, index) {\n        var xitem = opts.xAxis.formatter ? opts.xAxis.formatter(item) : item;\n        context.save();\n        context.beginPath();\n        context.setFontSize(xAxisFontSize);\n        context.setFillStyle(opts.xAxis.fontColor || opts.fontColor);\n        var textWidth = measureText(String(xitem), xAxisFontSize, context);\n        var offset = -textWidth;\n        if (boundaryGap == 'center') {\n          offset += eachSpacing / 2;\n        }\n        var _calRotateTranslate = calRotateTranslate(xAxisPoints[index] + eachSpacing / 2, startY + xAxisFontSize / 2 + 5, opts.height),\n        transX = _calRotateTranslate.transX,\n        transY = _calRotateTranslate.transY;\n\n        context.rotate(-1 * config._xAxisTextAngle_);\n        context.translate(transX, transY);\n        context.fillText(String(xitem), xAxisPoints[index] + offset, startY + xAxisFontSize + 5);\n        context.closePath();\n        context.stroke();\n        context.restore();\n      });\n    }\n  }\n  context.restore();\n  //缁樺埗X杞磋酱绾縗n  if (opts.xAxis.axisLine) {\n    context.beginPath();\n    context.setStrokeStyle(opts.xAxis.axisLineColor);\n    context.setLineWidth(1 * opts.pix);\n    context.moveTo(startX, opts.height - opts.area[2]);\n    context.lineTo(endX, opts.height - opts.area[2]);\n    context.stroke();\n  }\n}\n\nfunction drawYAxisGrid(categories, opts, config, context) {\n  if (opts.yAxis.disableGrid === true) {\n    return;\n  }\n  var spacingValid = opts.height - opts.area[0] - opts.area[2];\n  var eachSpacing = spacingValid / opts.yAxis.splitNumber;\n  var startX = opts.area[3];\n  var xAxisPoints = opts.chartData.xAxisData.xAxisPoints,\n  xAxiseachSpacing = opts.chartData.xAxisData.eachSpacing;\n  var TotalWidth = xAxiseachSpacing * (xAxisPoints.length - 1);\n  var endX = startX + TotalWidth;\n  var points = [];\n  var startY = 1;\n  if (opts.xAxis.axisLine === false) {\n    startY = 0;\n  }\n  for (var i = startY; i < opts.yAxis.splitNumber + 1; i++) {\n    points.push(opts.height - opts.area[2] - eachSpacing * i);\n  }\n  context.save();\n  if (opts._scrollDistance_ && opts._scrollDistance_ !== 0) {\n    context.translate(opts._scrollDistance_, 0);\n  }\n  if (opts.yAxis.gridType == 'dash') {\n    context.setLineDash([opts.yAxis.dashLength * opts.pix, opts.yAxis.dashLength * opts.pix]);\n  }\n  context.setStrokeStyle(opts.yAxis.gridColor);\n  context.setLineWidth(1 * opts.pix);\n  points.forEach(function (item, index) {\n    context.beginPath();\n    context.moveTo(startX, item);\n    context.lineTo(endX, item);\n    context.stroke();\n  });\n  context.setLineDash([]);\n  context.restore();\n}\n\nfunction drawYAxis(series, opts, config, context) {\n  if (opts.yAxis.disabled === true) {\n    return;\n  }\n  var spacingValid = opts.height - opts.area[0] - opts.area[2];\n  var eachSpacing = spacingValid / opts.yAxis.splitNumber;\n  var startX = opts.area[3];\n  var endX = opts.width - opts.area[1];\n  var endY = opts.height - opts.area[2];\n  var fillEndY = endY + config.xAxisHeight;\n  if (opts.xAxis.scrollShow) {\n    fillEndY -= 3 * opts.pix;\n  }\n  if (opts.xAxis.rotateLabel) {\n    fillEndY = opts.height - opts.area[2] + opts.fontSize * opts.pix / 2;\n  }\n  // set YAxis background\n  context.beginPath();\n  context.setFillStyle(opts.background);\n  if (opts.enableScroll == true && opts.xAxis.scrollPosition && opts.xAxis.scrollPosition !== 'left') {\n    context.fillRect(0, 0, startX, fillEndY);\n  }\n  if (opts.enableScroll == true && opts.xAxis.scrollPosition && opts.xAxis.scrollPosition !== 'right') {\n    context.fillRect(endX, 0, opts.width, fillEndY);\n  }\n  context.closePath();\n  context.stroke();\n\n  var tStartLeft = opts.area[3];\n  var tStartRight = opts.width - opts.area[1];\n  var tStartCenter = opts.area[3] + (opts.width - opts.area[1] - opts.area[3]) / 2;\n  if (opts.yAxis.data) {var _loop4 = function _loop4(\n    i) {\n      var yData = opts.yAxis.data[i];\n      points = [];\n      if (yData.type === 'categories') {\n        for (var _i21 = 0; _i21 <= yData.categories.length; _i21++) {\n          points.push(opts.area[0] + spacingValid / yData.categories.length / 2 + spacingValid / yData.categories.length * _i21);\n        }\n      } else {\n        for (var _i22 = 0; _i22 <= opts.yAxis.splitNumber; _i22++) {\n          points.push(opts.area[0] + eachSpacing * _i22);\n        }\n      }\n      if (yData.disabled !== true) {\n        var rangesFormat = opts.chartData.yAxisData.rangesFormat[i];\n        var yAxisFontSize = yData.fontSize ? yData.fontSize * opts.pix : config.fontSize;\n        var yAxisWidth = opts.chartData.yAxisData.yAxisWidth[i];\n        var textAlign = yData.textAlign || \"right\";\n        //鐢籝杞村埢搴﹀強鏂囨\n        rangesFormat.forEach(function (item, index) {\n          var pos = points[index] ? points[index] : endY;\n          context.beginPath();\n          context.setFontSize(yAxisFontSize);\n          context.setLineWidth(1 * opts.pix);\n          context.setStrokeStyle(yData.axisLineColor || '#cccccc');\n          context.setFillStyle(yData.fontColor || opts.fontColor);\n          var tmpstrat = 0;\n          var gapwidth = 4 * opts.pix;\n          if (yAxisWidth.position == 'left') {\n            //鐢诲埢搴︾嚎\n            if (yData.calibration == true) {\n              context.moveTo(tStartLeft, pos);\n              context.lineTo(tStartLeft - 3 * opts.pix, pos);\n              gapwidth += 3 * opts.pix;\n            }\n            //鐢绘枃瀛梊n            switch (textAlign) {\n              case \"left\":\n                context.setTextAlign('left');\n                tmpstrat = tStartLeft - yAxisWidth.width;\n                break;\n              case \"right\":\n                context.setTextAlign('right');\n                tmpstrat = tStartLeft - gapwidth;\n                break;\n              default:\n                context.setTextAlign('center');\n                tmpstrat = tStartLeft - yAxisWidth.width / 2;}\n\n            context.fillText(String(item), tmpstrat, pos + yAxisFontSize / 2 - 3 * opts.pix);\n\n          } else if (yAxisWidth.position == 'right') {\n            //鐢诲埢搴︾嚎\n            if (yData.calibration == true) {\n              context.moveTo(tStartRight, pos);\n              context.lineTo(tStartRight + 3 * opts.pix, pos);\n              gapwidth += 3 * opts.pix;\n            }\n            switch (textAlign) {\n              case \"left\":\n                context.setTextAlign('left');\n                tmpstrat = tStartRight + gapwidth;\n                break;\n              case \"right\":\n                context.setTextAlign('right');\n                tmpstrat = tStartRight + yAxisWidth.width;\n                break;\n              default:\n                context.setTextAlign('center');\n                tmpstrat = tStartRight + yAxisWidth.width / 2;}\n\n            context.fillText(String(item), tmpstrat, pos + yAxisFontSize / 2 - 3 * opts.pix);\n          } else if (yAxisWidth.position == 'center') {\n            //鐢诲埢搴︾嚎\n            if (yData.calibration == true) {\n              context.moveTo(tStartCenter, pos);\n              context.lineTo(tStartCenter - 3 * opts.pix, pos);\n              gapwidth += 3 * opts.pix;\n            }\n            //鐢绘枃瀛梊n            switch (textAlign) {\n              case \"left\":\n                context.setTextAlign('left');\n                tmpstrat = tStartCenter - yAxisWidth.width;\n                break;\n              case \"right\":\n                context.setTextAlign('right');\n                tmpstrat = tStartCenter - gapwidth;\n                break;\n              default:\n                context.setTextAlign('center');\n                tmpstrat = tStartCenter - yAxisWidth.width / 2;}\n\n            context.fillText(String(item), tmpstrat, pos + yAxisFontSize / 2 - 3 * opts.pix);\n          }\n          context.closePath();\n          context.stroke();\n          context.setTextAlign('left');\n        });\n        //鐢籝杞磋酱绾縗n        if (yData.axisLine !== false) {\n          context.beginPath();\n          context.setStrokeStyle(yData.axisLineColor || '#cccccc');\n          context.setLineWidth(1 * opts.pix);\n          if (yAxisWidth.position == 'left') {\n            context.moveTo(tStartLeft, opts.height - opts.area[2]);\n            context.lineTo(tStartLeft, opts.area[0]);\n          } else if (yAxisWidth.position == 'right') {\n            context.moveTo(tStartRight, opts.height - opts.area[2]);\n            context.lineTo(tStartRight, opts.area[0]);\n          } else if (yAxisWidth.position == 'center') {\n            context.moveTo(tStartCenter, opts.height - opts.area[2]);\n            context.lineTo(tStartCenter, opts.area[0]);\n          }\n          context.stroke();\n        }\n        //鐢籝杞存爣棰榎n        if (opts.yAxis.showTitle) {\n          var titleFontSize = yData.titleFontSize * opts.pix || config.fontSize;\n          var title = yData.title;\n          context.beginPath();\n          context.setFontSize(titleFontSize);\n          context.setFillStyle(yData.titleFontColor || opts.fontColor);\n          if (yAxisWidth.position == 'left') {\n            context.fillText(title, tStartLeft - measureText(title, titleFontSize, context) / 2 + (yData.titleOffsetX || 0), opts.area[0] - (10 - (yData.titleOffsetY || 0)) * opts.pix);\n          } else if (yAxisWidth.position == 'right') {\n            context.fillText(title, tStartRight - measureText(title, titleFontSize, context) / 2 + (yData.titleOffsetX || 0), opts.area[0] - (10 - (yData.titleOffsetY || 0)) * opts.pix);\n          } else if (yAxisWidth.position == 'center') {\n            context.fillText(title, tStartCenter - measureText(title, titleFontSize, context) / 2 + (yData.titleOffsetX || 0), opts.area[0] - (10 - (yData.titleOffsetY || 0)) * opts.pix);\n          }\n          context.closePath();\n          context.stroke();\n        }\n        if (yAxisWidth.position == 'left') {\n          tStartLeft -= yAxisWidth.width + opts.yAxis.padding * opts.pix;\n        } else {\n          tStartRight += yAxisWidth.width + opts.yAxis.padding * opts.pix;\n        }\n      }};for (var i = 0; i < opts.yAxis.data.length; i++) {var points;_loop4(i);\n    }\n  }\n\n}\n\nfunction drawLegend(series, opts, config, context, chartData) {\n  if (opts.legend.show === false) {\n    return;\n  }\n  var legendData = chartData.legendData;\n  var legendList = legendData.points;\n  var legendArea = legendData.area;\n  var padding = opts.legend.padding * opts.pix;\n  var fontSize = opts.legend.fontSize * opts.pix;\n  var shapeWidth = 15 * opts.pix;\n  var shapeRight = 5 * opts.pix;\n  var itemGap = opts.legend.itemGap * opts.pix;\n  var lineHeight = Math.max(opts.legend.lineHeight * opts.pix, fontSize);\n  //鐢昏儗鏅強杈规\n  context.beginPath();\n  context.setLineWidth(opts.legend.borderWidth * opts.pix);\n  context.setStrokeStyle(opts.legend.borderColor);\n  context.setFillStyle(opts.legend.backgroundColor);\n  context.moveTo(legendArea.start.x, legendArea.start.y);\n  context.rect(legendArea.start.x, legendArea.start.y, legendArea.width, legendArea.height);\n  context.closePath();\n  context.fill();\n  context.stroke();\n  legendList.forEach(function (itemList, listIndex) {\n    var width = 0;\n    var height = 0;\n    width = legendData.widthArr[listIndex];\n    height = legendData.heightArr[listIndex];\n    var startX = 0;\n    var startY = 0;\n    if (opts.legend.position == 'top' || opts.legend.position == 'bottom') {\n      switch (opts.legend.float) {\n        case 'left':\n          startX = legendArea.start.x + padding;\n          break;\n        case 'right':\n          startX = legendArea.start.x + legendArea.width - width;\n          break;\n        default:\n          startX = legendArea.start.x + (legendArea.width - width) / 2;}\n\n      startY = legendArea.start.y + padding + listIndex * lineHeight;\n    } else {\n      if (listIndex == 0) {\n        width = 0;\n      } else {\n        width = legendData.widthArr[listIndex - 1];\n      }\n      startX = legendArea.start.x + padding + width;\n      startY = legendArea.start.y + padding + (legendArea.height - height) / 2;\n    }\n    context.setFontSize(config.fontSize);\n    for (var i = 0; i < itemList.length; i++) {\n      var item = itemList[i];\n      item.area = [0, 0, 0, 0];\n      item.area[0] = startX;\n      item.area[1] = startY;\n      item.area[3] = startY + lineHeight;\n      context.beginPath();\n      context.setLineWidth(1 * opts.pix);\n      context.setStrokeStyle(item.show ? item.color : opts.legend.hiddenColor);\n      context.setFillStyle(item.show ? item.color : opts.legend.hiddenColor);\n      switch (item.legendShape) {\n        case 'line':\n          context.moveTo(startX, startY + 0.5 * lineHeight - 2 * opts.pix);\n          context.fillRect(startX, startY + 0.5 * lineHeight - 2 * opts.pix, 15 * opts.pix, 4 * opts.pix);\n          break;\n        case 'triangle':\n          context.moveTo(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight - 5 * opts.pix);\n          context.lineTo(startX + 2.5 * opts.pix, startY + 0.5 * lineHeight + 5 * opts.pix);\n          context.lineTo(startX + 12.5 * opts.pix, startY + 0.5 * lineHeight + 5 * opts.pix);\n          context.lineTo(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight - 5 * opts.pix);\n          break;\n        case 'diamond':\n          context.moveTo(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight - 5 * opts.pix);\n          context.lineTo(startX + 2.5 * opts.pix, startY + 0.5 * lineHeight);\n          context.lineTo(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight + 5 * opts.pix);\n          context.lineTo(startX + 12.5 * opts.pix, startY + 0.5 * lineHeight);\n          context.lineTo(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight - 5 * opts.pix);\n          break;\n        case 'circle':\n          context.moveTo(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight);\n          context.arc(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight, 5 * opts.pix, 0, 2 * Math.PI);\n          break;\n        case 'rect':\n          context.moveTo(startX, startY + 0.5 * lineHeight - 5 * opts.pix);\n          context.fillRect(startX, startY + 0.5 * lineHeight - 5 * opts.pix, 15 * opts.pix, 10 * opts.pix);\n          break;\n        case 'square':\n          context.moveTo(startX + 5 * opts.pix, startY + 0.5 * lineHeight - 5 * opts.pix);\n          context.fillRect(startX + 5 * opts.pix, startY + 0.5 * lineHeight - 5 * opts.pix, 10 * opts.pix, 10 * opts.pix);\n          break;\n        case 'none':\n          break;\n        default:\n          context.moveTo(startX, startY + 0.5 * lineHeight - 5 * opts.pix);\n          context.fillRect(startX, startY + 0.5 * lineHeight - 5 * opts.pix, 15 * opts.pix, 10 * opts.pix);}\n\n      context.closePath();\n      context.fill();\n      context.stroke();\n      startX += shapeWidth + shapeRight;\n      var fontTrans = 0.5 * lineHeight + 0.5 * fontSize - 2;\n      context.beginPath();\n      context.setFontSize(fontSize);\n      context.setFillStyle(item.show ? opts.legend.fontColor : opts.legend.hiddenColor);\n      context.fillText(item.name, startX, startY + fontTrans);\n      context.closePath();\n      context.stroke();\n      if (opts.legend.position == 'top' || opts.legend.position == 'bottom') {\n        startX += measureText(item.name, fontSize, context) + itemGap;\n        item.area[2] = startX;\n      } else {\n        item.area[2] = startX + measureText(item.name, fontSize, context) + itemGap;;\n        startX -= shapeWidth + shapeRight;\n        startY += lineHeight;\n      }\n    }\n  });\n}\n\nfunction drawPieDataPoints(series, opts, config, context) {\n  var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n  var pieOption = assign({}, {\n    activeOpacity: 0.5,\n    activeRadius: 10,\n    offsetAngle: 0,\n    labelWidth: 15,\n    ringWidth: 30,\n    customRadius: 0,\n    border: false,\n    borderWidth: 2,\n    borderColor: '#FFFFFF',\n    centerColor: '#FFFFFF',\n    linearType: 'none',\n    customColor: [] },\n  opts.type == \"pie\" ? opts.extra.pie : opts.extra.ring);\n  var centerPosition = {\n    x: opts.area[3] + (opts.width - opts.area[1] - opts.area[3]) / 2,\n    y: opts.area[0] + (opts.height - opts.area[0] - opts.area[2]) / 2 };\n\n  if (config.pieChartLinePadding == 0) {\n    config.pieChartLinePadding = pieOption.activeRadius * opts.pix;\n  }\n\n  var radius = Math.min((opts.width - opts.area[1] - opts.area[3]) / 2 - config.pieChartLinePadding - config.pieChartTextPadding - config._pieTextMaxLength_, (opts.height - opts.area[0] - opts.area[2]) / 2 - config.pieChartLinePadding - config.pieChartTextPadding);\n  if (pieOption.customRadius > 0) {\n    radius = pieOption.customRadius * opts.pix;\n  }\n  series = getPieDataPoints(series, radius, process);\n  var activeRadius = pieOption.activeRadius * opts.pix;\n  pieOption.customColor = fillCustomColor(pieOption.linearType, pieOption.customColor, series, config);\n  series = series.map(function (eachSeries) {\n    eachSeries._start_ += pieOption.offsetAngle * Math.PI / 180;\n    return eachSeries;\n  });\n  series.forEach(function (eachSeries, seriesIndex) {\n    if (opts.tooltip) {\n      if (opts.tooltip.index == seriesIndex) {\n        context.beginPath();\n        context.setFillStyle(hexToRgb(eachSeries.color, pieOption.activeOpacity || 0.5));\n        context.moveTo(centerPosition.x, centerPosition.y);\n        context.arc(centerPosition.x, centerPosition.y, eachSeries._radius_ + activeRadius, eachSeries._start_, eachSeries._start_ + 2 * eachSeries._proportion_ * Math.PI);\n        context.closePath();\n        context.fill();\n      }\n    }\n    context.beginPath();\n    context.setLineWidth(pieOption.borderWidth * opts.pix);\n    context.lineJoin = \"round\";\n    context.setStrokeStyle(pieOption.borderColor);\n    var fillcolor = eachSeries.color;\n    if (pieOption.linearType == 'custom') {\n      var grd;\n      if (context.createCircularGradient) {\n        grd = context.createCircularGradient(centerPosition.x, centerPosition.y, eachSeries._radius_);\n      } else {\n        grd = context.createRadialGradient(centerPosition.x, centerPosition.y, 0, centerPosition.x, centerPosition.y, eachSeries._radius_);\n      }\n      grd.addColorStop(0, hexToRgb(pieOption.customColor[eachSeries.linearIndex], 1));\n      grd.addColorStop(1, hexToRgb(eachSeries.color, 1));\n      fillcolor = grd;\n    }\n    context.setFillStyle(fillcolor);\n    context.moveTo(centerPosition.x, centerPosition.y);\n    context.arc(centerPosition.x, centerPosition.y, eachSeries._radius_, eachSeries._start_, eachSeries._start_ + 2 * eachSeries._proportion_ * Math.PI);\n    context.closePath();\n    context.fill();\n    if (pieOption.border == true) {\n      context.stroke();\n    }\n  });\n  if (opts.type === 'ring') {\n    var innerPieWidth = radius * 0.6;\n    if (typeof pieOption.ringWidth === 'number' && pieOption.ringWidth > 0) {\n      innerPieWidth = Math.max(0, radius - pieOption.ringWidth * opts.pix);\n    }\n    context.beginPath();\n    context.setFillStyle(pieOption.centerColor);\n    context.moveTo(centerPosition.x, centerPosition.y);\n    context.arc(centerPosition.x, centerPosition.y, innerPieWidth, 0, 2 * Math.PI);\n    context.closePath();\n    context.fill();\n  }\n  if (opts.dataLabel !== false && process === 1) {\n    var valid = false;\n    for (var i = 0, len = series.length; i < len; i++) {\n      if (series[i].data > 0) {\n        valid = true;\n        break;\n      }\n    }\n    if (valid) {\n      drawPieText(series, opts, config, context, radius, centerPosition);\n    }\n  }\n  if (process === 1 && opts.type === 'ring') {\n    drawRingTitle(opts, config, context, centerPosition);\n  }\n  return {\n    center: centerPosition,\n    radius: radius,\n    series: series };\n\n}\n\nfunction drawRoseDataPoints(series, opts, config, context) {\n  var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n  var roseOption = assign({}, {\n    type: 'area',\n    activeOpacity: 0.5,\n    activeRadius: 10,\n    offsetAngle: 0,\n    labelWidth: 15,\n    border: false,\n    borderWidth: 2,\n    borderColor: '#FFFFFF',\n    linearType: 'none',\n    customColor: [] },\n  opts.extra.rose);\n  if (config.pieChartLinePadding == 0) {\n    config.pieChartLinePadding = roseOption.activeRadius * opts.pix;\n  }\n  var centerPosition = {\n    x: opts.area[3] + (opts.width - opts.area[1] - opts.area[3]) / 2,\n    y: opts.area[0] + (opts.height - opts.area[0] - opts.area[2]) / 2 };\n\n  var radius = Math.min((opts.width - opts.area[1] - opts.area[3]) / 2 - config.pieChartLinePadding - config.pieChartTextPadding - config._pieTextMaxLength_, (opts.height - opts.area[0] - opts.area[2]) / 2 - config.pieChartLinePadding - config.pieChartTextPadding);\n  var minRadius = roseOption.minRadius || radius * 0.5;\n  series = getRoseDataPoints(series, roseOption.type, minRadius, radius, process);\n  var activeRadius = roseOption.activeRadius * opts.pix;\n  roseOption.customColor = fillCustomColor(roseOption.linearType, roseOption.customColor, series, config);\n  series = series.map(function (eachSeries) {\n    eachSeries._start_ += (roseOption.offsetAngle || 0) * Math.PI / 180;\n    return eachSeries;\n  });\n  series.forEach(function (eachSeries, seriesIndex) {\n    if (opts.tooltip) {\n      if (opts.tooltip.index == seriesIndex) {\n        context.beginPath();\n        context.setFillStyle(hexToRgb(eachSeries.color, roseOption.activeOpacity || 0.5));\n        context.moveTo(centerPosition.x, centerPosition.y);\n        context.arc(centerPosition.x, centerPosition.y, activeRadius + eachSeries._radius_, eachSeries._start_, eachSeries._start_ + 2 * eachSeries._rose_proportion_ * Math.PI);\n        context.closePath();\n        context.fill();\n      }\n    }\n    context.beginPath();\n    context.setLineWidth(roseOption.borderWidth * opts.pix);\n    context.lineJoin = \"round\";\n    context.setStrokeStyle(roseOption.borderColor);\n    var fillcolor = eachSeries.color;\n    if (roseOption.linearType == 'custom') {\n      var grd;\n      if (context.createCircularGradient) {\n        grd = context.createCircularGradient(centerPosition.x, centerPosition.y, eachSeries._radius_);\n      } else {\n        grd = context.createRadialGradient(centerPosition.x, centerPosition.y, 0, centerPosition.x, centerPosition.y, eachSeries._radius_);\n      }\n      grd.addColorStop(0, hexToRgb(roseOption.customColor[eachSeries.linearIndex], 1));\n      grd.addColorStop(1, hexToRgb(eachSeries.color, 1));\n      fillcolor = grd;\n    }\n    context.setFillStyle(fillcolor);\n    context.moveTo(centerPosition.x, centerPosition.y);\n    context.arc(centerPosition.x, centerPosition.y, eachSeries._radius_, eachSeries._start_, eachSeries._start_ + 2 * eachSeries._rose_proportion_ * Math.PI);\n    context.closePath();\n    context.fill();\n    if (roseOption.border == true) {\n      context.stroke();\n    }\n  });\n\n  if (opts.dataLabel !== false && process === 1) {\n    var valid = false;\n    for (var i = 0, len = series.length; i < len; i++) {\n      if (series[i].data > 0) {\n        valid = true;\n        break;\n      }\n    }\n    if (valid) {\n      drawPieText(series, opts, config, context, radius, centerPosition);\n    }\n  }\n  return {\n    center: centerPosition,\n    radius: radius,\n    series: series };\n\n}\n\nfunction drawArcbarDataPoints(series, opts, config, context) {\n  var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n  var arcbarOption = assign({}, {\n    startAngle: 0.75,\n    endAngle: 0.25,\n    type: 'default',\n    width: 12,\n    gap: 2,\n    linearType: 'none',\n    customColor: [] },\n  opts.extra.arcbar);\n  series = getArcbarDataPoints(series, arcbarOption, process);\n  var centerPosition;\n  if (arcbarOption.centerX || arcbarOption.centerY) {\n    centerPosition = {\n      x: arcbarOption.centerX ? arcbarOption.centerX : opts.width / 2,\n      y: arcbarOption.centerY ? arcbarOption.centerY : opts.height / 2 };\n\n  } else {\n    centerPosition = {\n      x: opts.width / 2,\n      y: opts.height / 2 };\n\n  }\n  var radius;\n  if (arcbarOption.radius) {\n    radius = arcbarOption.radius;\n  } else {\n    radius = Math.min(centerPosition.x, centerPosition.y);\n    radius -= 5 * opts.pix;\n    radius -= arcbarOption.width / 2;\n  }\n  arcbarOption.customColor = fillCustomColor(arcbarOption.linearType, arcbarOption.customColor, series, config);\n\n  for (var i = 0; i < series.length; i++) {\n    var eachSeries = series[i];\n    //鑳屾櫙棰滆壊\n    context.setLineWidth(arcbarOption.width * opts.pix);\n    context.setStrokeStyle(arcbarOption.backgroundColor || '#E9E9E9');\n    context.setLineCap('round');\n    context.beginPath();\n    if (arcbarOption.type == 'default') {\n      context.arc(centerPosition.x, centerPosition.y, radius - (arcbarOption.width * opts.pix + arcbarOption.gap * opts.pix) * i, arcbarOption.startAngle * Math.PI, arcbarOption.endAngle * Math.PI, false);\n    } else {\n      context.arc(centerPosition.x, centerPosition.y, radius - (arcbarOption.width * opts.pix + arcbarOption.gap * opts.pix) * i, 0, 2 * Math.PI, false);\n    }\n    context.stroke();\n    //杩涘害鏉n    var fillColor = eachSeries.color;\n    if (arcbarOption.linearType == 'custom') {\n      var grd = context.createLinearGradient(centerPosition.x - radius, centerPosition.y, centerPosition.x + radius, centerPosition.y);\n      grd.addColorStop(1, hexToRgb(arcbarOption.customColor[eachSeries.linearIndex], 1));\n      grd.addColorStop(0, hexToRgb(eachSeries.color, 1));\n      fillColor = grd;\n    }\n    context.setLineWidth(arcbarOption.width * opts.pix);\n    context.setStrokeStyle(fillColor);\n    context.setLineCap('round');\n    context.beginPath();\n    context.arc(centerPosition.x, centerPosition.y, radius - (arcbarOption.width * opts.pix + arcbarOption.gap * opts.pix) * i, arcbarOption.startAngle * Math.PI, eachSeries._proportion_ * Math.PI, false);\n    context.stroke();\n  }\n  drawRingTitle(opts, config, context, centerPosition);\n  return {\n    center: centerPosition,\n    radius: radius,\n    series: series };\n\n}\n\nfunction drawGaugeDataPoints(categories, series, opts, config, context) {\n  var process = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 1;\n  var gaugeOption = assign({}, {\n    type: 'default',\n    startAngle: 0.75,\n    endAngle: 0.25,\n    width: 15,\n    labelOffset: 13,\n    splitLine: {\n      fixRadius: 0,\n      splitNumber: 10,\n      width: 15,\n      color: '#FFFFFF',\n      childNumber: 5,\n      childWidth: 5 },\n\n    pointer: {\n      width: 15,\n      color: 'auto' } },\n\n  opts.extra.gauge);\n  if (gaugeOption.oldAngle == undefined) {\n    gaugeOption.oldAngle = gaugeOption.startAngle;\n  }\n  if (gaugeOption.oldData == undefined) {\n    gaugeOption.oldData = 0;\n  }\n  categories = getGaugeAxisPoints(categories, gaugeOption.startAngle, gaugeOption.endAngle);\n  var centerPosition = {\n    x: opts.width / 2,\n    y: opts.height / 2 };\n\n  var radius = Math.min(centerPosition.x, centerPosition.y);\n  radius -= 5 * opts.pix;\n  radius -= gaugeOption.width / 2;\n  var innerRadius = radius - gaugeOption.width;\n  var totalAngle = 0;\n  //鍒ゆ柇浠〃鐩樼殑鏍峰紡锛歞efault鐧惧害鏍峰紡锛宲rogress鏂版牱寮廫n  if (gaugeOption.type == 'progress') {\n    //## 绗竴姝ョ敾涓績鍦嗗舰鑳屾櫙鍜岃繘搴︽潯鑳屾櫙\n    //涓績鍦嗗舰鑳屾櫙\n    var pieRadius = radius - gaugeOption.width * 3;\n    context.beginPath();\n    var gradient = context.createLinearGradient(centerPosition.x, centerPosition.y - pieRadius, centerPosition.x, centerPosition.y + pieRadius);\n    //閰嶇疆娓愬彉濉厖锛堣捣鐐癸細涓績鐐瑰悜涓婂噺鍗婂緞锛涚粨鏉熺偣涓績鐐瑰悜涓嬪姞鍗婂緞锛塡n    gradient.addColorStop('0', hexToRgb(series[0].color, 0.3));\n    gradient.addColorStop('1.0', hexToRgb(\"#FFFFFF\", 0.1));\n    context.setFillStyle(gradient);\n    context.arc(centerPosition.x, centerPosition.y, pieRadius, 0, 2 * Math.PI, false);\n    context.fill();\n    //鐢昏繘搴︽潯鑳屾櫙\n    context.setLineWidth(gaugeOption.width);\n    context.setStrokeStyle(hexToRgb(series[0].color, 0.3));\n    context.setLineCap('round');\n    context.beginPath();\n    context.arc(centerPosition.x, centerPosition.y, innerRadius, gaugeOption.startAngle * Math.PI, gaugeOption.endAngle * Math.PI, false);\n    context.stroke();\n    //## 绗簩姝ョ敾鍒诲害绾縗n    totalAngle = gaugeOption.startAngle - gaugeOption.endAngle + 1;\n    var splitAngle = totalAngle / gaugeOption.splitLine.splitNumber;\n    var childAngle = totalAngle / gaugeOption.splitLine.splitNumber / gaugeOption.splitLine.childNumber;\n    var startX = -radius - gaugeOption.width * 0.5 - gaugeOption.splitLine.fixRadius;\n    var endX = -radius - gaugeOption.width - gaugeOption.splitLine.fixRadius + gaugeOption.splitLine.width;\n    context.save();\n    context.translate(centerPosition.x, centerPosition.y);\n    context.rotate((gaugeOption.startAngle - 1) * Math.PI);\n    var len = gaugeOption.splitLine.splitNumber * gaugeOption.splitLine.childNumber + 1;\n    var proc = series[0].data * process;\n    for (var i = 0; i < len; i++) {\n      context.beginPath();\n      //鍒诲害绾块殢杩涘害鍙樿壊\n      if (proc > i / len) {\n        context.setStrokeStyle(hexToRgb(series[0].color, 1));\n      } else {\n        context.setStrokeStyle(hexToRgb(series[0].color, 0.3));\n      }\n      context.setLineWidth(3 * opts.pix);\n      context.moveTo(startX, 0);\n      context.lineTo(endX, 0);\n      context.stroke();\n      context.rotate(childAngle * Math.PI);\n    }\n    context.restore();\n    //## 绗笁姝ョ敾杩涘害鏉n    series = getArcbarDataPoints(series, gaugeOption, process);\n    context.setLineWidth(gaugeOption.width);\n    context.setStrokeStyle(series[0].color);\n    context.setLineCap('round');\n    context.beginPath();\n    context.arc(centerPosition.x, centerPosition.y, innerRadius, gaugeOption.startAngle * Math.PI, series[0]._proportion_ * Math.PI, false);\n    context.stroke();\n    //## 绗洓姝ョ敾鎸囬拡\n    var pointerRadius = radius - gaugeOption.width * 2.5;\n    context.save();\n    context.translate(centerPosition.x, centerPosition.y);\n    context.rotate((series[0]._proportion_ - 1) * Math.PI);\n    context.beginPath();\n    context.setLineWidth(gaugeOption.width / 3);\n    var gradient3 = context.createLinearGradient(0, -pointerRadius * 0.6, 0, pointerRadius * 0.6);\n    gradient3.addColorStop('0', hexToRgb('#FFFFFF', 0));\n    gradient3.addColorStop('0.5', hexToRgb(series[0].color, 1));\n    gradient3.addColorStop('1.0', hexToRgb('#FFFFFF', 0));\n    context.setStrokeStyle(gradient3);\n    context.arc(0, 0, pointerRadius, 0.85 * Math.PI, 1.15 * Math.PI, false);\n    context.stroke();\n    context.beginPath();\n    context.setLineWidth(1);\n    context.setStrokeStyle(series[0].color);\n    context.setFillStyle(series[0].color);\n    context.moveTo(-pointerRadius - gaugeOption.width / 3 / 2, -4);\n    context.lineTo(-pointerRadius - gaugeOption.width / 3 / 2 - 4, 0);\n    context.lineTo(-pointerRadius - gaugeOption.width / 3 / 2, 4);\n    context.lineTo(-pointerRadius - gaugeOption.width / 3 / 2, -4);\n    context.stroke();\n    context.fill();\n    context.restore();\n    //default鐧惧害鏍峰紡\n  } else {\n    //鐢昏儗鏅痋n    context.setLineWidth(gaugeOption.width);\n    context.setLineCap('butt');\n    for (var _i23 = 0; _i23 < categories.length; _i23++) {\n      var eachCategories = categories[_i23];\n      context.beginPath();\n      context.setStrokeStyle(eachCategories.color);\n      context.arc(centerPosition.x, centerPosition.y, radius, eachCategories._startAngle_ * Math.PI, eachCategories._endAngle_ * Math.PI, false);\n      context.stroke();\n    }\n    context.save();\n    //鐢诲埢搴︾嚎\n    totalAngle = gaugeOption.startAngle - gaugeOption.endAngle + 1;\n    var _splitAngle = totalAngle / gaugeOption.splitLine.splitNumber;\n    var _childAngle = totalAngle / gaugeOption.splitLine.splitNumber / gaugeOption.splitLine.childNumber;\n    var _startX2 = -radius - gaugeOption.width * 0.5 - gaugeOption.splitLine.fixRadius;\n    var _endX = -radius - gaugeOption.width * 0.5 - gaugeOption.splitLine.fixRadius + gaugeOption.splitLine.width;\n    var childendX = -radius - gaugeOption.width * 0.5 - gaugeOption.splitLine.fixRadius + gaugeOption.splitLine.childWidth;\n    context.translate(centerPosition.x, centerPosition.y);\n    context.rotate((gaugeOption.startAngle - 1) * Math.PI);\n    for (var _i24 = 0; _i24 < gaugeOption.splitLine.splitNumber + 1; _i24++) {\n      context.beginPath();\n      context.setStrokeStyle(gaugeOption.splitLine.color);\n      context.setLineWidth(2 * opts.pix);\n      context.moveTo(_startX2, 0);\n      context.lineTo(_endX, 0);\n      context.stroke();\n      context.rotate(_splitAngle * Math.PI);\n    }\n    context.restore();\n    context.save();\n    context.translate(centerPosition.x, centerPosition.y);\n    context.rotate((gaugeOption.startAngle - 1) * Math.PI);\n    for (var _i25 = 0; _i25 < gaugeOption.splitLine.splitNumber * gaugeOption.splitLine.childNumber + 1; _i25++) {\n      context.beginPath();\n      context.setStrokeStyle(gaugeOption.splitLine.color);\n      context.setLineWidth(1 * opts.pix);\n      context.moveTo(_startX2, 0);\n      context.lineTo(childendX, 0);\n      context.stroke();\n      context.rotate(_childAngle * Math.PI);\n    }\n    context.restore();\n    //鐢绘寚閽圽n    series = getGaugeDataPoints(series, categories, gaugeOption, process);\n    for (var _i26 = 0; _i26 < series.length; _i26++) {\n      var eachSeries = series[_i26];\n      context.save();\n      context.translate(centerPosition.x, centerPosition.y);\n      context.rotate((eachSeries._proportion_ - 1) * Math.PI);\n      context.beginPath();\n      context.setFillStyle(eachSeries.color);\n      context.moveTo(gaugeOption.pointer.width, 0);\n      context.lineTo(0, -gaugeOption.pointer.width / 2);\n      context.lineTo(-innerRadius, 0);\n      context.lineTo(0, gaugeOption.pointer.width / 2);\n      context.lineTo(gaugeOption.pointer.width, 0);\n      context.closePath();\n      context.fill();\n      context.beginPath();\n      context.setFillStyle('#FFFFFF');\n      context.arc(0, 0, gaugeOption.pointer.width / 6, 0, 2 * Math.PI, false);\n      context.fill();\n      context.restore();\n    }\n    if (opts.dataLabel !== false) {\n      drawGaugeLabel(gaugeOption, radius, centerPosition, opts, config, context);\n    }\n  }\n  //鐢讳华琛ㄧ洏鏍囬锛屽壇鏍囬\n  drawRingTitle(opts, config, context, centerPosition);\n  if (process === 1 && opts.type === 'gauge') {\n    opts.extra.gauge.oldAngle = series[0]._proportion_;\n    opts.extra.gauge.oldData = series[0].data;\n  }\n  return {\n    center: centerPosition,\n    radius: radius,\n    innerRadius: innerRadius,\n    categories: categories,\n    totalAngle: totalAngle };\n\n}\n\nfunction drawRadarDataPoints(series, opts, config, context) {\n  var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n  var radarOption = assign({}, {\n    gridColor: '#cccccc',\n    gridType: 'radar',\n    opacity: 0.2,\n    gridCount: 3,\n    border: false,\n    borderWidth: 2 },\n  opts.extra.radar);\n  var coordinateAngle = getRadarCoordinateSeries(opts.categories.length);\n  var centerPosition = {\n    x: opts.area[3] + (opts.width - opts.area[1] - opts.area[3]) / 2,\n    y: opts.area[0] + (opts.height - opts.area[0] - opts.area[2]) / 2 };\n\n  var xr = (opts.width - opts.area[1] - opts.area[3]) / 2;\n  var yr = (opts.height - opts.area[0] - opts.area[2]) / 2;\n  var radius = Math.min(xr - (getMaxTextListLength(opts.categories, config.fontSize, context) + config.radarLabelTextMargin), yr - config.radarLabelTextMargin);\n  radius -= config.radarLabelTextMargin * opts.pix;\n  // 鐢诲垎鍓茬嚎\n  context.beginPath();\n  context.setLineWidth(1 * opts.pix);\n  context.setStrokeStyle(radarOption.gridColor);\n  coordinateAngle.forEach(function (angle) {\n    var pos = convertCoordinateOrigin(radius * Math.cos(angle), radius * Math.sin(angle), centerPosition);\n    context.moveTo(centerPosition.x, centerPosition.y);\n    context.lineTo(pos.x, pos.y);\n  });\n  context.stroke();\n  context.closePath();\n\n  // 鐢昏儗鏅綉鏍糪n  var _loop = function _loop(i) {\n    var startPos = {};\n    context.beginPath();\n    context.setLineWidth(1 * opts.pix);\n    context.setStrokeStyle(radarOption.gridColor);\n    if (radarOption.gridType == 'radar') {\n      coordinateAngle.forEach(function (angle, index) {\n        var pos = convertCoordinateOrigin(radius / radarOption.gridCount * i * Math.cos(angle), radius /\n        radarOption.gridCount * i * Math.sin(angle), centerPosition);\n        if (index === 0) {\n          startPos = pos;\n          context.moveTo(pos.x, pos.y);\n        } else {\n          context.lineTo(pos.x, pos.y);\n        }\n      });\n      context.lineTo(startPos.x, startPos.y);\n    } else {\n      var pos = convertCoordinateOrigin(radius / radarOption.gridCount * i * Math.cos(1.5), radius / radarOption.gridCount * i * Math.sin(1.5), centerPosition);\n      context.arc(centerPosition.x, centerPosition.y, centerPosition.y - pos.y, 0, 2 * Math.PI, false);\n    }\n    context.stroke();\n    context.closePath();\n  };\n  for (var i = 1; i <= radarOption.gridCount; i++) {\n    _loop(i);\n  }\n  var radarDataPoints = getRadarDataPoints(coordinateAngle, centerPosition, radius, series, opts, process);\n  radarDataPoints.forEach(function (eachSeries, seriesIndex) {\n    // 缁樺埗鍖哄煙鏁版嵁\n    context.beginPath();\n    context.setLineWidth(radarOption.borderWidth * opts.pix);\n    context.setStrokeStyle(eachSeries.color);\n    context.setFillStyle(hexToRgb(eachSeries.color, radarOption.opacity));\n    eachSeries.data.forEach(function (item, index) {\n      if (index === 0) {\n        context.moveTo(item.position.x, item.position.y);\n      } else {\n        context.lineTo(item.position.x, item.position.y);\n      }\n    });\n    context.closePath();\n    context.fill();\n    if (radarOption.border === true) {\n      context.stroke();\n    }\n    context.closePath();\n    if (opts.dataPointShape !== false) {\n      var points = eachSeries.data.map(function (item) {\n        return item.position;\n      });\n      drawPointShape(points, eachSeries.color, eachSeries.pointShape, context, opts);\n    }\n  });\n  // draw label text\n  drawRadarLabel(coordinateAngle, radius, centerPosition, opts, config, context);\n\n  // draw dataLabel\n  if (opts.dataLabel !== false && process === 1) {\n    radarDataPoints.forEach(function (eachSeries, seriesIndex) {\n      context.beginPath();\n      var fontSize = eachSeries.textSize * opts.pix || config.fontSize;\n      context.setFontSize(fontSize);\n      context.setFillStyle(eachSeries.textColor || opts.fontColor);\n      eachSeries.data.forEach(function (item, index) {\n        //濡傛灉鏄腑蹇冪偣鍨傜洿鐨勪笂涓嬬偣浣峔n        if (Math.abs(item.position.x - centerPosition.x) < 2) {\n          //濡傛灉鍦ㄤ笂闈n          if (item.position.y < centerPosition.y) {\n            context.setTextAlign('center');\n            context.fillText(item.value, item.position.x, item.position.y - 4);\n          } else {\n            context.setTextAlign('center');\n            context.fillText(item.value, item.position.x, item.position.y + fontSize + 2);\n          }\n        } else {\n          //濡傛灉鍦ㄥ乏渚n          if (item.position.x < centerPosition.x) {\n            context.setTextAlign('right');\n            context.fillText(item.value, item.position.x - 4, item.position.y + fontSize / 2 - 2);\n          } else {\n            context.setTextAlign('left');\n            context.fillText(item.value, item.position.x + 4, item.position.y + fontSize / 2 - 2);\n          }\n        }\n      });\n      context.closePath();\n      context.stroke();\n    });\n    context.setTextAlign('left');\n  }\n\n  return {\n    center: centerPosition,\n    radius: radius,\n    angleList: coordinateAngle };\n\n}\n\nfunction normalInt(min, max, iter) {\n  iter = iter == 0 ? 1 : iter;\n  var arr = [];\n  for (var i = 0; i < iter; i++) {\n    arr[i] = Math.random();\n  };\n  return Math.floor(arr.reduce(function (i, j) {\n    return i + j;\n  }) / iter * (max - min)) + min;\n};\n\nfunction collisionNew(area, points, width, height) {\n  var isIn = false;\n  for (var i = 0; i < points.length; i++) {\n    if (points[i].area) {\n      if (area[3] < points[i].area[1] || area[0] > points[i].area[2] || area[1] > points[i].area[3] || area[2] < points[i].area[0]) {\n        if (area[0] < 0 || area[1] < 0 || area[2] > width || area[3] > height) {\n          isIn = true;\n          break;\n        } else {\n          isIn = false;\n        }\n      } else {\n        isIn = true;\n        break;\n      }\n    }\n  }\n  return isIn;\n};\n\nfunction getBoundingBox(data) {\n  var bounds = {},coords;\n  bounds.xMin = 180;\n  bounds.xMax = 0;\n  bounds.yMin = 90;\n  bounds.yMax = 0;\n  for (var i = 0; i < data.length; i++) {\n    var coorda = data[i].geometry.coordinates;\n    for (var k = 0; k < coorda.length; k++) {\n      coords = coorda[k];\n      if (coords.length == 1) {\n        coords = coords[0];\n      }\n      for (var j = 0; j < coords.length; j++) {\n        var longitude = coords[j][0];\n        var latitude = coords[j][1];\n        var point = {\n          x: longitude,\n          y: latitude };\n\n        bounds.xMin = bounds.xMin < point.x ? bounds.xMin : point.x;\n        bounds.xMax = bounds.xMax > point.x ? bounds.xMax : point.x;\n        bounds.yMin = bounds.yMin < point.y ? bounds.yMin : point.y;\n        bounds.yMax = bounds.yMax > point.y ? bounds.yMax : point.y;\n      }\n    }\n  }\n  return bounds;\n}\n\nfunction coordinateToPoint(latitude, longitude, bounds, scale, xoffset, yoffset) {\n  return {\n    x: (longitude - bounds.xMin) * scale + xoffset,\n    y: (bounds.yMax - latitude) * scale + yoffset };\n\n}\n\nfunction pointToCoordinate(pointY, pointX, bounds, scale, xoffset, yoffset) {\n  return {\n    x: (pointX - xoffset) / scale + bounds.xMin,\n    y: bounds.yMax - (pointY - yoffset) / scale };\n\n}\n\nfunction isRayIntersectsSegment(poi, s_poi, e_poi) {\n  if (s_poi[1] == e_poi[1]) {\n    return false;\n  }\n  if (s_poi[1] > poi[1] && e_poi[1] > poi[1]) {\n    return false;\n  }\n  if (s_poi[1] < poi[1] && e_poi[1] < poi[1]) {\n    return false;\n  }\n  if (s_poi[1] == poi[1] && e_poi[1] > poi[1]) {\n    return false;\n  }\n  if (e_poi[1] == poi[1] && s_poi[1] > poi[1]) {\n    return false;\n  }\n  if (s_poi[0] < poi[0] && e_poi[1] < poi[1]) {\n    return false;\n  }\n  var xseg = e_poi[0] - (e_poi[0] - s_poi[0]) * (e_poi[1] - poi[1]) / (e_poi[1] - s_poi[1]);\n  if (xseg < poi[0]) {\n    return false;\n  } else {\n    return true;\n  }\n}\n\nfunction isPoiWithinPoly(poi, poly, mercator) {\n  var sinsc = 0;\n  for (var i = 0; i < poly.length; i++) {\n    var epoly = poly[i][0];\n    if (poly.length == 1) {\n      epoly = poly[i][0];\n    }\n    for (var j = 0; j < epoly.length - 1; j++) {\n      var s_poi = epoly[j];\n      var e_poi = epoly[j + 1];\n      if (mercator) {\n        s_poi = lonlat2mercator(epoly[j][0], epoly[j][1]);\n        e_poi = lonlat2mercator(epoly[j + 1][0], epoly[j + 1][1]);\n      }\n      if (isRayIntersectsSegment(poi, s_poi, e_poi)) {\n        sinsc += 1;\n      }\n    }\n  }\n  if (sinsc % 2 == 1) {\n    return true;\n  } else {\n    return false;\n  }\n}\n\n\nfunction drawMapDataPoints(series, opts, config, context) {\n  var mapOption = assign({}, {\n    border: true,\n    mercator: false,\n    borderWidth: 1,\n    borderColor: '#666666',\n    fillOpacity: 0.6,\n    activeBorderColor: '#f04864',\n    activeFillColor: '#facc14',\n    activeFillOpacity: 1 },\n  opts.extra.map);\n  var coords, point;\n  var data = series;\n  var bounds = getBoundingBox(data);\n  if (mapOption.mercator) {\n    var max = lonlat2mercator(bounds.xMax, bounds.yMax);\n    var min = lonlat2mercator(bounds.xMin, bounds.yMin);\n    bounds.xMax = max[0];\n    bounds.yMax = max[1];\n    bounds.xMin = min[0];\n    bounds.yMin = min[1];\n  }\n  var xScale = opts.width / Math.abs(bounds.xMax - bounds.xMin);\n  var yScale = opts.height / Math.abs(bounds.yMax - bounds.yMin);\n  var scale = xScale < yScale ? xScale : yScale;\n  var xoffset = opts.width / 2 - Math.abs(bounds.xMax - bounds.xMin) / 2 * scale;\n  var yoffset = opts.height / 2 - Math.abs(bounds.yMax - bounds.yMin) / 2 * scale;\n  for (var i = 0; i < data.length; i++) {\n    context.beginPath();\n    context.setLineWidth(mapOption.borderWidth * opts.pix);\n    context.setStrokeStyle(mapOption.borderColor);\n    context.setFillStyle(hexToRgb(series[i].color, mapOption.fillOpacity));\n    if (opts.tooltip) {\n      if (opts.tooltip.index == i) {\n        context.setStrokeStyle(mapOption.activeBorderColor);\n        context.setFillStyle(hexToRgb(mapOption.activeFillColor, mapOption.activeFillOpacity));\n      }\n    }\n    var coorda = data[i].geometry.coordinates;\n    for (var k = 0; k < coorda.length; k++) {\n      coords = coorda[k];\n      if (coords.length == 1) {\n        coords = coords[0];\n      }\n      for (var j = 0; j < coords.length; j++) {\n        var gaosi = Array(2);\n        if (mapOption.mercator) {\n          gaosi = lonlat2mercator(coords[j][0], coords[j][1]);\n        } else {\n          gaosi = coords[j];\n        }\n        point = coordinateToPoint(gaosi[1], gaosi[0], bounds, scale, xoffset, yoffset);\n        if (j === 0) {\n          context.beginPath();\n          context.moveTo(point.x, point.y);\n        } else {\n          context.lineTo(point.x, point.y);\n        }\n      }\n      context.fill();\n      if (mapOption.border == true) {\n        context.stroke();\n      }\n    }\n    if (opts.dataLabel == true) {\n      var centerPoint = data[i].properties.centroid;\n      if (centerPoint) {\n        if (mapOption.mercator) {\n          centerPoint = lonlat2mercator(data[i].properties.centroid[0], data[i].properties.centroid[1]);\n        }\n        point = coordinateToPoint(centerPoint[1], centerPoint[0], bounds, scale, xoffset, yoffset);\n        var fontSize = data[i].textSize * opts.pix || config.fontSize;\n        var text = data[i].properties.name;\n        context.beginPath();\n        context.setFontSize(fontSize);\n        context.setFillStyle(data[i].textColor || opts.fontColor);\n        context.fillText(text, point.x - measureText(text, fontSize, context) / 2, point.y + fontSize / 2);\n        context.closePath();\n        context.stroke();\n      }\n    }\n  }\n  opts.chartData.mapData = {\n    bounds: bounds,\n    scale: scale,\n    xoffset: xoffset,\n    yoffset: yoffset,\n    mercator: mapOption.mercator };\n\n  drawToolTipBridge(opts, config, context, 1);\n  context.draw();\n}\n\nfunction getWordCloudPoint(opts, type, context) {\n  var points = opts.series;\n  switch (type) {\n    case 'normal':\n      for (var i = 0; i < points.length; i++) {\n        var text = points[i].name;\n        var tHeight = points[i].textSize * opts.pix;\n        var tWidth = measureText(text, tHeight, context);\n        var x = void 0,y = void 0;\n        var area = void 0;\n        var breaknum = 0;\n        while (true) {\n          breaknum++;\n          x = normalInt(-opts.width / 2, opts.width / 2, 5) - tWidth / 2;\n          y = normalInt(-opts.height / 2, opts.height / 2, 5) + tHeight / 2;\n          area = [x - 5 + opts.width / 2, y - 5 - tHeight + opts.height / 2, x + tWidth + 5 + opts.width / 2, y + 5 +\n          opts.height / 2];\n\n          var isCollision = collisionNew(area, points, opts.width, opts.height);\n          if (!isCollision) break;\n          if (breaknum == 1000) {\n            area = [-100, -100, -100, -100];\n            break;\n          }\n        };\n        points[i].area = area;\n      }\n      break;\n    case 'vertical':var\n      Spin = function Spin() {\n        //鑾峰彇鍧囧寑闅忔満鍊硷紝鏄惁鏃嬭浆锛屾棆杞殑姒傜巼涓猴紙1-0.5锛塡n        if (Math.random() > 0.7) {\n          return true;\n        } else {\n          return false;\n        };\n      };;\n      for (var _i27 = 0; _i27 < points.length; _i27++) {\n        var _text = points[_i27].name;\n        var _tHeight = points[_i27].textSize * opts.pix;\n        var _tWidth = measureText(_text, _tHeight, context);\n        var isSpin = Spin();\n        var _x = void 0,_y = void 0,_area = void 0,areav = void 0;\n        var _breaknum = 0;\n        while (true) {\n          _breaknum++;\n          var _isCollision = void 0;\n          if (isSpin) {\n            _x = normalInt(-opts.width / 2, opts.width / 2, 5) - _tWidth / 2;\n            _y = normalInt(-opts.height / 2, opts.height / 2, 5) + _tHeight / 2;\n            _area = [_y - 5 - _tWidth + opts.width / 2, -_x - 5 + opts.height / 2, _y + 5 + opts.width / 2, -_x + _tHeight + 5 + opts.height / 2];\n            areav = [opts.width - (opts.width / 2 - opts.height / 2) - (-_x + _tHeight + 5 + opts.height / 2) - 5, opts.height / 2 - opts.width / 2 + (_y - 5 - _tWidth + opts.width / 2) - 5, opts.width - (opts.width / 2 - opts.height / 2) - (-_x + _tHeight + 5 + opts.height / 2) + _tHeight, opts.height / 2 - opts.width / 2 + (_y - 5 - _tWidth + opts.width / 2) + _tWidth + 5];\n            _isCollision = collisionNew(areav, points, opts.height, opts.width);\n          } else {\n            _x = normalInt(-opts.width / 2, opts.width / 2, 5) - _tWidth / 2;\n            _y = normalInt(-opts.height / 2, opts.height / 2, 5) + _tHeight / 2;\n            _area = [_x - 5 + opts.width / 2, _y - 5 - _tHeight + opts.height / 2, _x + _tWidth + 5 + opts.width / 2, _y + 5 + opts.height / 2];\n            _isCollision = collisionNew(_area, points, opts.width, opts.height);\n          }\n          if (!_isCollision) break;\n          if (_breaknum == 1000) {\n            _area = [-1000, -1000, -1000, -1000];\n            break;\n          }\n        };\n        if (isSpin) {\n          points[_i27].area = areav;\n          points[_i27].areav = _area;\n        } else {\n          points[_i27].area = _area;\n        }\n        points[_i27].rotate = isSpin;\n      };\n      break;}\n\n  return points;\n}\n\n\nfunction drawWordCloudDataPoints(series, opts, config, context) {\n  var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n  var wordOption = assign({}, {\n    type: 'normal',\n    autoColors: true },\n  opts.extra.word);\n  if (!opts.chartData.wordCloudData) {\n    opts.chartData.wordCloudData = getWordCloudPoint(opts, wordOption.type, context);\n  }\n  context.beginPath();\n  context.setFillStyle(opts.background);\n  context.rect(0, 0, opts.width, opts.height);\n  context.fill();\n  context.save();\n  var points = opts.chartData.wordCloudData;\n  context.translate(opts.width / 2, opts.height / 2);\n  for (var i = 0; i < points.length; i++) {\n    context.save();\n    if (points[i].rotate) {\n      context.rotate(90 * Math.PI / 180);\n    }\n    var text = points[i].name;\n    var tHeight = points[i].textSize * opts.pix;\n    var tWidth = measureText(text, tHeight, context);\n    context.beginPath();\n    context.setStrokeStyle(points[i].color);\n    context.setFillStyle(points[i].color);\n    context.setFontSize(tHeight);\n    if (points[i].rotate) {\n      if (points[i].areav[0] > 0) {\n        if (opts.tooltip) {\n          if (opts.tooltip.index == i) {\n            context.strokeText(text, (points[i].areav[0] + 5 - opts.width / 2) * process - tWidth * (1 - process) / 2, (points[i].areav[1] + 5 + tHeight - opts.height / 2) * process);\n          } else {\n            context.fillText(text, (points[i].areav[0] + 5 - opts.width / 2) * process - tWidth * (1 - process) / 2, (points[i].areav[1] + 5 + tHeight - opts.height / 2) * process);\n          }\n        } else {\n          context.fillText(text, (points[i].areav[0] + 5 - opts.width / 2) * process - tWidth * (1 - process) / 2, (points[i].areav[1] + 5 + tHeight - opts.height / 2) * process);\n        }\n      }\n    } else {\n      if (points[i].area[0] > 0) {\n        if (opts.tooltip) {\n          if (opts.tooltip.index == i) {\n            context.strokeText(text, (points[i].area[0] + 5 - opts.width / 2) * process - tWidth * (1 - process) / 2, (points[i].area[1] + 5 + tHeight - opts.height / 2) * process);\n          } else {\n            context.fillText(text, (points[i].area[0] + 5 - opts.width / 2) * process - tWidth * (1 - process) / 2, (points[i].area[1] + 5 + tHeight - opts.height / 2) * process);\n          }\n        } else {\n          context.fillText(text, (points[i].area[0] + 5 - opts.width / 2) * process - tWidth * (1 - process) / 2, (points[i].area[1] + 5 + tHeight - opts.height / 2) * process);\n        }\n      }\n    }\n    context.stroke();\n    context.restore();\n  }\n  context.restore();\n}\n\nfunction drawFunnelDataPoints(series, opts, config, context) {\n  var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n  var funnelOption = assign({}, {\n    type: 'funnel',\n    activeWidth: 10,\n    activeOpacity: 0.3,\n    border: false,\n    borderWidth: 2,\n    borderColor: '#FFFFFF',\n    fillOpacity: 1,\n    labelAlign: 'right',\n    linearType: 'none',\n    customColor: [] },\n  opts.extra.funnel);\n  var eachSpacing = (opts.height - opts.area[0] - opts.area[2]) / series.length;\n  var centerPosition = {\n    x: opts.area[3] + (opts.width - opts.area[1] - opts.area[3]) / 2,\n    y: opts.height - opts.area[2] };\n\n  var activeWidth = funnelOption.activeWidth * opts.pix;\n  var radius = Math.min((opts.width - opts.area[1] - opts.area[3]) / 2 - activeWidth, (opts.height - opts.area[0] - opts.area[2]) / 2 - activeWidth);\n  series = getFunnelDataPoints(series, radius, funnelOption.type, eachSpacing, process);\n  context.save();\n  context.translate(centerPosition.x, centerPosition.y);\n  funnelOption.customColor = fillCustomColor(funnelOption.linearType, funnelOption.customColor, series, config);\n  if (funnelOption.type == 'pyramid') {\n    for (var i = 0; i < series.length; i++) {\n      if (i == series.length - 1) {\n        if (opts.tooltip) {\n          if (opts.tooltip.index == i) {\n            context.beginPath();\n            context.setFillStyle(hexToRgb(series[i].color, funnelOption.activeOpacity));\n            context.moveTo(-activeWidth, -eachSpacing);\n            context.lineTo(-series[i].radius - activeWidth, 0);\n            context.lineTo(series[i].radius + activeWidth, 0);\n            context.lineTo(activeWidth, -eachSpacing);\n            context.lineTo(-activeWidth, -eachSpacing);\n            context.closePath();\n            context.fill();\n          }\n        }\n        series[i].funnelArea = [centerPosition.x - series[i].radius, centerPosition.y - eachSpacing * (i + 1), centerPosition.x + series[i].radius, centerPosition.y - eachSpacing * i];\n        context.beginPath();\n        context.setLineWidth(funnelOption.borderWidth * opts.pix);\n        context.setStrokeStyle(funnelOption.borderColor);\n        var fillColor = hexToRgb(series[i].color, funnelOption.fillOpacity);\n        if (funnelOption.linearType == 'custom') {\n          var grd = context.createLinearGradient(series[i].radius, -eachSpacing, -series[i].radius, -eachSpacing);\n          grd.addColorStop(0, hexToRgb(series[i].color, funnelOption.fillOpacity));\n          grd.addColorStop(0.5, hexToRgb(funnelOption.customColor[series[i].linearIndex], funnelOption.fillOpacity));\n          grd.addColorStop(1, hexToRgb(series[i].color, funnelOption.fillOpacity));\n          fillColor = grd;\n        }\n        context.setFillStyle(fillColor);\n        context.moveTo(0, -eachSpacing);\n        context.lineTo(-series[i].radius, 0);\n        context.lineTo(series[i].radius, 0);\n        context.lineTo(0, -eachSpacing);\n        context.closePath();\n        context.fill();\n        if (funnelOption.border == true) {\n          context.stroke();\n        }\n      } else {\n        if (opts.tooltip) {\n          if (opts.tooltip.index == i) {\n            context.beginPath();\n            context.setFillStyle(hexToRgb(series[i].color, funnelOption.activeOpacity));\n            context.moveTo(0, 0);\n            context.lineTo(-series[i].radius - activeWidth, 0);\n            context.lineTo(-series[i + 1].radius - activeWidth, -eachSpacing);\n            context.lineTo(series[i + 1].radius + activeWidth, -eachSpacing);\n            context.lineTo(series[i].radius + activeWidth, 0);\n            context.lineTo(0, 0);\n            context.closePath();\n            context.fill();\n          }\n        }\n        series[i].funnelArea = [centerPosition.x - series[i].radius, centerPosition.y - eachSpacing * (i + 1), centerPosition.x + series[i].radius, centerPosition.y - eachSpacing * i];\n        context.beginPath();\n        context.setLineWidth(funnelOption.borderWidth * opts.pix);\n        context.setStrokeStyle(funnelOption.borderColor);\n        var fillColor = hexToRgb(series[i].color, funnelOption.fillOpacity);\n        if (funnelOption.linearType == 'custom') {\n          var grd = context.createLinearGradient(series[i].radius, -eachSpacing, -series[i].radius, -eachSpacing);\n          grd.addColorStop(0, hexToRgb(series[i].color, funnelOption.fillOpacity));\n          grd.addColorStop(0.5, hexToRgb(funnelOption.customColor[series[i].linearIndex], funnelOption.fillOpacity));\n          grd.addColorStop(1, hexToRgb(series[i].color, funnelOption.fillOpacity));\n          fillColor = grd;\n        }\n        context.setFillStyle(fillColor);\n        context.moveTo(0, 0);\n        context.lineTo(-series[i].radius, 0);\n        context.lineTo(-series[i + 1].radius, -eachSpacing);\n        context.lineTo(series[i + 1].radius, -eachSpacing);\n        context.lineTo(series[i].radius, 0);\n        context.lineTo(0, 0);\n        context.closePath();\n        context.fill();\n        if (funnelOption.border == true) {\n          context.stroke();\n        }\n      }\n      context.translate(0, -eachSpacing);\n    }\n  } else {\n    for (var _i28 = 0; _i28 < series.length; _i28++) {\n      if (_i28 == 0) {\n        if (opts.tooltip) {\n          if (opts.tooltip.index == _i28) {\n            context.beginPath();\n            context.setFillStyle(hexToRgb(series[_i28].color, funnelOption.activeOpacity));\n            context.moveTo(-activeWidth, 0);\n            context.lineTo(-series[_i28].radius - activeWidth, -eachSpacing);\n            context.lineTo(series[_i28].radius + activeWidth, -eachSpacing);\n            context.lineTo(activeWidth, 0);\n            context.lineTo(-activeWidth, 0);\n            context.closePath();\n            context.fill();\n          }\n        }\n        series[_i28].funnelArea = [centerPosition.x - series[_i28].radius, centerPosition.y - eachSpacing, centerPosition.x + series[_i28].radius, centerPosition.y];\n        context.beginPath();\n        context.setLineWidth(funnelOption.borderWidth * opts.pix);\n        context.setStrokeStyle(funnelOption.borderColor);\n        var fillColor = hexToRgb(series[_i28].color, funnelOption.fillOpacity);\n        if (funnelOption.linearType == 'custom') {\n          var grd = context.createLinearGradient(series[_i28].radius, -eachSpacing, -series[_i28].radius, -eachSpacing);\n          grd.addColorStop(0, hexToRgb(series[_i28].color, funnelOption.fillOpacity));\n          grd.addColorStop(0.5, hexToRgb(funnelOption.customColor[series[_i28].linearIndex], funnelOption.fillOpacity));\n          grd.addColorStop(1, hexToRgb(series[_i28].color, funnelOption.fillOpacity));\n          fillColor = grd;\n        }\n        context.setFillStyle(fillColor);\n        context.moveTo(0, 0);\n        context.lineTo(-series[_i28].radius, -eachSpacing);\n        context.lineTo(series[_i28].radius, -eachSpacing);\n        context.lineTo(0, 0);\n        context.closePath();\n        context.fill();\n        if (funnelOption.border == true) {\n          context.stroke();\n        }\n      } else {\n        if (opts.tooltip) {\n          if (opts.tooltip.index == _i28) {\n            context.beginPath();\n            context.setFillStyle(hexToRgb(series[_i28].color, funnelOption.activeOpacity));\n            context.moveTo(0, 0);\n            context.lineTo(-series[_i28 - 1].radius - activeWidth, 0);\n            context.lineTo(-series[_i28].radius - activeWidth, -eachSpacing);\n            context.lineTo(series[_i28].radius + activeWidth, -eachSpacing);\n            context.lineTo(series[_i28 - 1].radius + activeWidth, 0);\n            context.lineTo(0, 0);\n            context.closePath();\n            context.fill();\n          }\n        }\n        series[_i28].funnelArea = [centerPosition.x - series[_i28].radius, centerPosition.y - eachSpacing * (_i28 + 1), centerPosition.x + series[_i28].radius, centerPosition.y - eachSpacing * _i28];\n        context.beginPath();\n        context.setLineWidth(funnelOption.borderWidth * opts.pix);\n        context.setStrokeStyle(funnelOption.borderColor);\n        var fillColor = hexToRgb(series[_i28].color, funnelOption.fillOpacity);\n        if (funnelOption.linearType == 'custom') {\n          var grd = context.createLinearGradient(series[_i28].radius, -eachSpacing, -series[_i28].radius, -eachSpacing);\n          grd.addColorStop(0, hexToRgb(series[_i28].color, funnelOption.fillOpacity));\n          grd.addColorStop(0.5, hexToRgb(funnelOption.customColor[series[_i28].linearIndex], funnelOption.fillOpacity));\n          grd.addColorStop(1, hexToRgb(series[_i28].color, funnelOption.fillOpacity));\n          fillColor = grd;\n        }\n        context.setFillStyle(fillColor);\n        context.moveTo(0, 0);\n        context.lineTo(-series[_i28 - 1].radius, 0);\n        context.lineTo(-series[_i28].radius, -eachSpacing);\n        context.lineTo(series[_i28].radius, -eachSpacing);\n        context.lineTo(series[_i28 - 1].radius, 0);\n        context.lineTo(0, 0);\n        context.closePath();\n        context.fill();\n        if (funnelOption.border == true) {\n          context.stroke();\n        }\n      }\n      context.translate(0, -eachSpacing);\n    }\n  }\n\n  context.restore();\n  if (opts.dataLabel !== false && process === 1) {\n    drawFunnelText(series, opts, context, eachSpacing, funnelOption.labelAlign, activeWidth, centerPosition);\n  }\n  return {\n    center: centerPosition,\n    radius: radius,\n    series: series };\n\n}\n\nfunction drawFunnelText(series, opts, context, eachSpacing, labelAlign, activeWidth, centerPosition) {\n  for (var i = 0; i < series.length; i++) {\n    var item = series[i];\n    var startX = void 0,endX = void 0,startY = void 0,fontSize = void 0;\n    var text = item.formatter ? item.formatter(item, i, series) : util.toFixed(item._proportion_ * 100) + '%';\n    if (labelAlign == 'right') {\n      if (opts.extra.funnel.type === 'pyramid') {\n        if (i == series.length - 1) {\n          startX = (item.funnelArea[2] + centerPosition.x) / 2;\n        } else {\n          startX = (item.funnelArea[2] + series[i + 1].funnelArea[2]) / 2;\n        }\n      } else {\n        if (i == 0) {\n          startX = (item.funnelArea[2] + centerPosition.x) / 2;\n        } else {\n          startX = (item.funnelArea[2] + series[i - 1].funnelArea[2]) / 2;\n        }\n      }\n      endX = startX + activeWidth * 2;\n      startY = item.funnelArea[1] + eachSpacing / 2;\n      fontSize = item.textSize * opts.pix || opts.fontSize * opts.pix;\n      context.setLineWidth(1 * opts.pix);\n      context.setStrokeStyle(item.color);\n      context.setFillStyle(item.color);\n      context.beginPath();\n      context.moveTo(startX, startY);\n      context.lineTo(endX, startY);\n      context.stroke();\n      context.closePath();\n      context.beginPath();\n      context.moveTo(endX, startY);\n      context.arc(endX, startY, 2, 0, 2 * Math.PI);\n      context.closePath();\n      context.fill();\n      context.beginPath();\n      context.setFontSize(fontSize);\n      context.setFillStyle(item.textColor || opts.fontColor);\n      context.fillText(text, endX + 5, startY + fontSize / 2 - 2);\n      context.closePath();\n      context.stroke();\n      context.closePath();\n    } else {\n      if (opts.extra.funnel.type === 'pyramid') {\n        if (i == series.length - 1) {\n          startX = (item.funnelArea[0] + centerPosition.x) / 2;\n        } else {\n          startX = (item.funnelArea[0] + series[i + 1].funnelArea[0]) / 2;\n        }\n      } else {\n        if (i == 0) {\n          startX = (item.funnelArea[0] + centerPosition.x) / 2;\n        } else {\n          startX = (item.funnelArea[0] + series[i - 1].funnelArea[0]) / 2;\n        }\n      }\n      endX = startX - activeWidth * 2;\n      startY = item.funnelArea[1] + eachSpacing / 2;\n      fontSize = item.textSize * opts.pix || opts.fontSize * opts.pix;\n      context.setLineWidth(1 * opts.pix);\n      context.setStrokeStyle(item.color);\n      context.setFillStyle(item.color);\n      context.beginPath();\n      context.moveTo(startX, startY);\n      context.lineTo(endX, startY);\n      context.stroke();\n      context.closePath();\n      context.beginPath();\n      context.moveTo(endX, startY);\n      context.arc(endX, startY, 2, 0, 2 * Math.PI);\n      context.closePath();\n      context.fill();\n      context.beginPath();\n      context.setFontSize(fontSize);\n      context.setFillStyle(item.textColor || opts.fontColor);\n      context.fillText(text, endX - 5 - measureText(text, fontSize, context), startY + fontSize / 2 - 2);\n      context.closePath();\n      context.stroke();\n      context.closePath();\n    }\n\n  }\n}\n\nfunction drawCanvas(opts, context) {\n  context.draw();\n}\n\nvar Timing = {\n  easeIn: function easeIn(pos) {\n    return Math.pow(pos, 3);\n  },\n  easeOut: function easeOut(pos) {\n    return Math.pow(pos - 1, 3) + 1;\n  },\n  easeInOut: function easeInOut(pos) {\n    if ((pos /= 0.5) < 1) {\n      return 0.5 * Math.pow(pos, 3);\n    } else {\n      return 0.5 * (Math.pow(pos - 2, 3) + 2);\n    }\n  },\n  linear: function linear(pos) {\n    return pos;\n  } };\n\n\nfunction Animation(opts) {\n  this.isStop = false;\n  opts.duration = typeof opts.duration === 'undefined' ? 1000 : opts.duration;\n  opts.timing = opts.timing || 'easeInOut';\n  var delay = 17;\n  function createAnimationFrame() {\n    if (typeof setTimeout !== 'undefined') {\n      return function (step, delay) {\n        setTimeout(function () {\n          var timeStamp = +new Date();\n          step(timeStamp);\n        }, delay);\n      };\n    } else if (typeof requestAnimationFrame !== 'undefined') {\n      return requestAnimationFrame;\n    } else {\n      return function (step) {\n        step(null);\n      };\n    }\n  };\n  var animationFrame = createAnimationFrame();\n  var startTimeStamp = null;\n  var _step = function step(timestamp) {\n    if (timestamp === null || this.isStop === true) {\n      opts.onProcess && opts.onProcess(1);\n      opts.onAnimationFinish && opts.onAnimationFinish();\n      return;\n    }\n    if (startTimeStamp === null) {\n      startTimeStamp = timestamp;\n    }\n    if (timestamp - startTimeStamp < opts.duration) {\n      var process = (timestamp - startTimeStamp) / opts.duration;\n      var timingFunction = Timing[opts.timing];\n      process = timingFunction(process);\n      opts.onProcess && opts.onProcess(process);\n      animationFrame(_step, delay);\n    } else {\n      opts.onProcess && opts.onProcess(1);\n      opts.onAnimationFinish && opts.onAnimationFinish();\n    }\n  };\n  _step = _step.bind(this);\n  animationFrame(_step, delay);\n}\n\nAnimation.prototype.stop = function () {\n  this.isStop = true;\n};\n\nfunction drawCharts(type, opts, config, context) {\n  var _this = this;\n  var series = opts.series;\n  //鍏煎ECharts楗煎浘绫绘暟鎹牸寮廫n  if (type === 'pie' || type === 'ring' || type === 'rose' || type === 'funnel') {\n    series = fixPieSeries(series, opts, config);\n  }\n  var categories = opts.categories;\n  series = fillSeries(series, opts, config);\n  var duration = opts.animation ? opts.duration : 0;\n  _this.animationInstance && _this.animationInstance.stop();\n  var seriesMA = null;\n  if (type == 'candle') {\n    var average = assign({}, opts.extra.candle.average);\n    if (average.show) {\n      seriesMA = calCandleMA(average.day, average.name, average.color, series[0].data);\n      seriesMA = fillSeries(seriesMA, opts, config);\n      opts.seriesMA = seriesMA;\n    } else if (opts.seriesMA) {\n      seriesMA = opts.seriesMA = fillSeries(opts.seriesMA, opts, config);\n    } else {\n      seriesMA = series;\n    }\n  } else {\n    seriesMA = series;\n  }\n  /* 杩囨护鎺塻how=false鐨剆eries */\n  opts._series_ = series = filterSeries(series);\n  //閲嶆柊璁$畻鍥捐〃鍖哄煙\n  opts.area = new Array(4);\n  //澶嶄綅缁樺浘鍖哄煙\n  for (var j = 0; j < 4; j++) {\n    opts.area[j] = opts.padding[j] * opts.pix;\n  }\n  //閫氳繃璁$畻涓夊ぇ鍖哄煙锛氬浘渚嬨�乆杞淬�乊杞寸殑澶у皬锛岀‘瀹氱粯鍥惧尯鍩焅n  var _calLegendData = calLegendData(seriesMA, opts, config, opts.chartData, context),\n  legendHeight = _calLegendData.area.wholeHeight,\n  legendWidth = _calLegendData.area.wholeWidth;\n\n  switch (opts.legend.position) {\n    case 'top':\n      opts.area[0] += legendHeight;\n      break;\n    case 'bottom':\n      opts.area[2] += legendHeight;\n      break;\n    case 'left':\n      opts.area[3] += legendWidth;\n      break;\n    case 'right':\n      opts.area[1] += legendWidth;\n      break;}\n\n\n  var _calYAxisData = {},\n  yAxisWidth = 0;\n  if (opts.type === 'line' || opts.type === 'column' || opts.type === 'area' || opts.type === 'mix' || opts.type === 'candle' || opts.type === 'scatter' || opts.type === 'bubble' || opts.type === 'bar') {\n    _calYAxisData = calYAxisData(series, opts, config, context);\n    yAxisWidth = _calYAxisData.yAxisWidth;\n    //濡傛灉鏄剧ずY杞存爣棰榎n    if (opts.yAxis.showTitle) {\n      var maxTitleHeight = 0;\n      for (var i = 0; i < opts.yAxis.data.length; i++) {\n        maxTitleHeight = Math.max(maxTitleHeight, opts.yAxis.data[i].titleFontSize ? opts.yAxis.data[i].titleFontSize * opts.pix : config.fontSize);\n      }\n      opts.area[0] += maxTitleHeight;\n    }\n    var rightIndex = 0,\n    leftIndex = 0;\n    //璁$畻涓荤粯鍥惧尯鍩熷乏鍙充綅缃甛n    for (var _i29 = 0; _i29 < yAxisWidth.length; _i29++) {\n      if (yAxisWidth[_i29].position == 'left') {\n        if (leftIndex > 0) {\n          opts.area[3] += yAxisWidth[_i29].width + opts.yAxis.padding * opts.pix;\n        } else {\n          opts.area[3] += yAxisWidth[_i29].width;\n        }\n        leftIndex += 1;\n      } else if (yAxisWidth[_i29].position == 'right') {\n        if (rightIndex > 0) {\n          opts.area[1] += yAxisWidth[_i29].width + opts.yAxis.padding * opts.pix;\n        } else {\n          opts.area[1] += yAxisWidth[_i29].width;\n        }\n        rightIndex += 1;\n      }\n    }\n  } else {\n    config.yAxisWidth = yAxisWidth;\n  }\n  opts.chartData.yAxisData = _calYAxisData;\n\n  if (opts.categories && opts.categories.length && opts.type !== 'radar' && opts.type !== 'gauge' && opts.type !== 'bar') {\n    opts.chartData.xAxisData = getXAxisPoints(opts.categories, opts, config);\n    var _calCategoriesData = calCategoriesData(opts.categories, opts, config, opts.chartData.xAxisData.eachSpacing, context),\n    xAxisHeight = _calCategoriesData.xAxisHeight,\n    angle = _calCategoriesData.angle;\n    config.xAxisHeight = xAxisHeight;\n    config._xAxisTextAngle_ = angle;\n    opts.area[2] += xAxisHeight;\n    opts.chartData.categoriesData = _calCategoriesData;\n  } else {\n    if (opts.type === 'line' || opts.type === 'area' || opts.type === 'scatter' || opts.type === 'bubble' || opts.type === 'bar') {\n      opts.chartData.xAxisData = calXAxisData(series, opts, config, context);\n      categories = opts.chartData.xAxisData.rangesFormat;\n      var _calCategoriesData2 = calCategoriesData(categories, opts, config, opts.chartData.xAxisData.eachSpacing, context),\n      _xAxisHeight = _calCategoriesData2.xAxisHeight,\n      _angle = _calCategoriesData2.angle;\n      config.xAxisHeight = _xAxisHeight;\n      config._xAxisTextAngle_ = _angle;\n      opts.area[2] += _xAxisHeight;\n      opts.chartData.categoriesData = _calCategoriesData2;\n    } else {\n      opts.chartData.xAxisData = {\n        xAxisPoints: [] };\n\n    }\n  }\n  //璁$畻鍙冲榻愬亸绉昏窛绂籠n  if (opts.enableScroll && opts.xAxis.scrollAlign == 'right' && opts._scrollDistance_ === undefined) {\n    var offsetLeft = 0,\n    xAxisPoints = opts.chartData.xAxisData.xAxisPoints,\n    startX = opts.chartData.xAxisData.startX,\n    endX = opts.chartData.xAxisData.endX,\n    eachSpacing = opts.chartData.xAxisData.eachSpacing;\n    var totalWidth = eachSpacing * (xAxisPoints.length - 1);\n    var screenWidth = endX - startX;\n    offsetLeft = screenWidth - totalWidth;\n    _this.scrollOption = {\n      currentOffset: offsetLeft,\n      startTouchX: offsetLeft,\n      distance: 0,\n      lastMoveTime: 0 };\n\n    opts._scrollDistance_ = offsetLeft;\n  }\n\n  if (type === 'pie' || type === 'ring' || type === 'rose') {\n    config._pieTextMaxLength_ = opts.dataLabel === false ? 0 : getPieTextMaxLength(seriesMA, config, context, opts);\n  }\n  switch (type) {\n    case 'word':\n      this.animationInstance = new Animation({\n        timing: opts.timing,\n        duration: duration,\n        onProcess: function onProcess(process) {\n          context.clearRect(0, 0, opts.width, opts.height);\n          if (opts.rotate) {\n            contextRotate(context, opts);\n          }\n          drawWordCloudDataPoints(series, opts, config, context, process);\n          drawCanvas(opts, context);\n        },\n        onAnimationFinish: function onAnimationFinish() {\n          _this.uevent.trigger('renderComplete');\n        } });\n\n      break;\n    case 'map':\n      context.clearRect(0, 0, opts.width, opts.height);\n      drawMapDataPoints(series, opts, config, context);\n      break;\n    case 'funnel':\n      this.animationInstance = new Animation({\n        timing: opts.timing,\n        duration: duration,\n        onProcess: function onProcess(process) {\n          context.clearRect(0, 0, opts.width, opts.height);\n          if (opts.rotate) {\n            contextRotate(context, opts);\n          }\n          opts.chartData.funnelData = drawFunnelDataPoints(series, opts, config, context, process);\n          drawLegend(opts.series, opts, config, context, opts.chartData);\n          drawToolTipBridge(opts, config, context, process);\n          drawCanvas(opts, context);\n        },\n        onAnimationFinish: function onAnimationFinish() {\n          _this.uevent.trigger('renderComplete');\n        } });\n\n      break;\n    case 'line':\n      this.animationInstance = new Animation({\n        timing: opts.timing,\n        duration: duration,\n        onProcess: function onProcess(process) {\n          context.clearRect(0, 0, opts.width, opts.height);\n          if (opts.rotate) {\n            contextRotate(context, opts);\n          }\n          drawYAxisGrid(categories, opts, config, context);\n          drawXAxis(categories, opts, config, context);\n          var _drawLineDataPoints = drawLineDataPoints(series, opts, config, context, process),\n          xAxisPoints = _drawLineDataPoints.xAxisPoints,\n          calPoints = _drawLineDataPoints.calPoints,\n          eachSpacing = _drawLineDataPoints.eachSpacing;\n          opts.chartData.xAxisPoints = xAxisPoints;\n          opts.chartData.calPoints = calPoints;\n          opts.chartData.eachSpacing = eachSpacing;\n          drawYAxis(series, opts, config, context);\n          if (opts.enableMarkLine !== false && process === 1) {\n            drawMarkLine(opts, config, context);\n          }\n          drawLegend(opts.series, opts, config, context, opts.chartData);\n          drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);\n          drawCanvas(opts, context);\n        },\n        onAnimationFinish: function onAnimationFinish() {\n          _this.uevent.trigger('renderComplete');\n        } });\n\n      break;\n    case 'scatter':\n      this.animationInstance = new Animation({\n        timing: opts.timing,\n        duration: duration,\n        onProcess: function onProcess(process) {\n          context.clearRect(0, 0, opts.width, opts.height);\n          if (opts.rotate) {\n            contextRotate(context, opts);\n          }\n          drawYAxisGrid(categories, opts, config, context);\n          drawXAxis(categories, opts, config, context);\n          var _drawScatterDataPoints = drawScatterDataPoints(series, opts, config, context, process),\n          xAxisPoints = _drawScatterDataPoints.xAxisPoints,\n          calPoints = _drawScatterDataPoints.calPoints,\n          eachSpacing = _drawScatterDataPoints.eachSpacing;\n          opts.chartData.xAxisPoints = xAxisPoints;\n          opts.chartData.calPoints = calPoints;\n          opts.chartData.eachSpacing = eachSpacing;\n          drawYAxis(series, opts, config, context);\n          if (opts.enableMarkLine !== false && process === 1) {\n            drawMarkLine(opts, config, context);\n          }\n          drawLegend(opts.series, opts, config, context, opts.chartData);\n          drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);\n          drawCanvas(opts, context);\n        },\n        onAnimationFinish: function onAnimationFinish() {\n          _this.uevent.trigger('renderComplete');\n        } });\n\n      break;\n    case 'bubble':\n      this.animationInstance = new Animation({\n        timing: opts.timing,\n        duration: duration,\n        onProcess: function onProcess(process) {\n          context.clearRect(0, 0, opts.width, opts.height);\n          if (opts.rotate) {\n            contextRotate(context, opts);\n          }\n          drawYAxisGrid(categories, opts, config, context);\n          drawXAxis(categories, opts, config, context);\n          var _drawBubbleDataPoints = drawBubbleDataPoints(series, opts, config, context, process),\n          xAxisPoints = _drawBubbleDataPoints.xAxisPoints,\n          calPoints = _drawBubbleDataPoints.calPoints,\n          eachSpacing = _drawBubbleDataPoints.eachSpacing;\n          opts.chartData.xAxisPoints = xAxisPoints;\n          opts.chartData.calPoints = calPoints;\n          opts.chartData.eachSpacing = eachSpacing;\n          drawYAxis(series, opts, config, context);\n          if (opts.enableMarkLine !== false && process === 1) {\n            drawMarkLine(opts, config, context);\n          }\n          drawLegend(opts.series, opts, config, context, opts.chartData);\n          drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);\n          drawCanvas(opts, context);\n        },\n        onAnimationFinish: function onAnimationFinish() {\n          _this.uevent.trigger('renderComplete');\n        } });\n\n      break;\n    case 'mix':\n      this.animationInstance = new Animation({\n        timing: opts.timing,\n        duration: duration,\n        onProcess: function onProcess(process) {\n          context.clearRect(0, 0, opts.width, opts.height);\n          if (opts.rotate) {\n            contextRotate(context, opts);\n          }\n          drawYAxisGrid(categories, opts, config, context);\n          drawXAxis(categories, opts, config, context);\n          var _drawMixDataPoints = drawMixDataPoints(series, opts, config, context, process),\n          xAxisPoints = _drawMixDataPoints.xAxisPoints,\n          calPoints = _drawMixDataPoints.calPoints,\n          eachSpacing = _drawMixDataPoints.eachSpacing;\n          opts.chartData.xAxisPoints = xAxisPoints;\n          opts.chartData.calPoints = calPoints;\n          opts.chartData.eachSpacing = eachSpacing;\n          drawYAxis(series, opts, config, context);\n          if (opts.enableMarkLine !== false && process === 1) {\n            drawMarkLine(opts, config, context);\n          }\n          drawLegend(opts.series, opts, config, context, opts.chartData);\n          drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);\n          drawCanvas(opts, context);\n        },\n        onAnimationFinish: function onAnimationFinish() {\n          _this.uevent.trigger('renderComplete');\n        } });\n\n      break;\n    case 'column':\n      this.animationInstance = new Animation({\n        timing: opts.timing,\n        duration: duration,\n        onProcess: function onProcess(process) {\n          context.clearRect(0, 0, opts.width, opts.height);\n          if (opts.rotate) {\n            contextRotate(context, opts);\n          }\n          drawYAxisGrid(categories, opts, config, context);\n          drawXAxis(categories, opts, config, context);\n          var _drawColumnDataPoints = drawColumnDataPoints(series, opts, config, context, process),\n          xAxisPoints = _drawColumnDataPoints.xAxisPoints,\n          calPoints = _drawColumnDataPoints.calPoints,\n          eachSpacing = _drawColumnDataPoints.eachSpacing;\n          opts.chartData.xAxisPoints = xAxisPoints;\n          opts.chartData.calPoints = calPoints;\n          opts.chartData.eachSpacing = eachSpacing;\n          drawYAxis(series, opts, config, context);\n          if (opts.enableMarkLine !== false && process === 1) {\n            drawMarkLine(opts, config, context);\n          }\n          drawLegend(opts.series, opts, config, context, opts.chartData);\n          drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);\n          drawCanvas(opts, context);\n        },\n        onAnimationFinish: function onAnimationFinish() {\n          _this.uevent.trigger('renderComplete');\n        } });\n\n      break;\n    case 'bar':\n      this.animationInstance = new Animation({\n        timing: opts.timing,\n        duration: duration,\n        onProcess: function onProcess(process) {\n          context.clearRect(0, 0, opts.width, opts.height);\n          if (opts.rotate) {\n            contextRotate(context, opts);\n          }\n          drawXAxis(categories, opts, config, context);\n          var _drawBarDataPoints = drawBarDataPoints(series, opts, config, context, process),\n          yAxisPoints = _drawBarDataPoints.yAxisPoints,\n          calPoints = _drawBarDataPoints.calPoints,\n          eachSpacing = _drawBarDataPoints.eachSpacing;\n          opts.chartData.yAxisPoints = yAxisPoints;\n          opts.chartData.xAxisPoints = opts.chartData.xAxisData.xAxisPoints;\n          opts.chartData.calPoints = calPoints;\n          opts.chartData.eachSpacing = eachSpacing;\n          drawYAxis(series, opts, config, context);\n          if (opts.enableMarkLine !== false && process === 1) {\n            drawMarkLine(opts, config, context);\n          }\n          drawLegend(opts.series, opts, config, context, opts.chartData);\n          drawToolTipBridge(opts, config, context, process, eachSpacing, yAxisPoints);\n          drawCanvas(opts, context);\n        },\n        onAnimationFinish: function onAnimationFinish() {\n          _this.uevent.trigger('renderComplete');\n        } });\n\n      break;\n    case 'area':\n      this.animationInstance = new Animation({\n        timing: opts.timing,\n        duration: duration,\n        onProcess: function onProcess(process) {\n          context.clearRect(0, 0, opts.width, opts.height);\n          if (opts.rotate) {\n            contextRotate(context, opts);\n          }\n          drawYAxisGrid(categories, opts, config, context);\n          drawXAxis(categories, opts, config, context);\n          var _drawAreaDataPoints = drawAreaDataPoints(series, opts, config, context, process),\n          xAxisPoints = _drawAreaDataPoints.xAxisPoints,\n          calPoints = _drawAreaDataPoints.calPoints,\n          eachSpacing = _drawAreaDataPoints.eachSpacing;\n          opts.chartData.xAxisPoints = xAxisPoints;\n          opts.chartData.calPoints = calPoints;\n          opts.chartData.eachSpacing = eachSpacing;\n          drawYAxis(series, opts, config, context);\n          if (opts.enableMarkLine !== false && process === 1) {\n            drawMarkLine(opts, config, context);\n          }\n          drawLegend(opts.series, opts, config, context, opts.chartData);\n          drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);\n          drawCanvas(opts, context);\n        },\n        onAnimationFinish: function onAnimationFinish() {\n          _this.uevent.trigger('renderComplete');\n        } });\n\n      break;\n    case 'ring':\n    case 'pie':\n      this.animationInstance = new Animation({\n        timing: opts.timing,\n        duration: duration,\n        onProcess: function onProcess(process) {\n          context.clearRect(0, 0, opts.width, opts.height);\n          if (opts.rotate) {\n            contextRotate(context, opts);\n          }\n          opts.chartData.pieData = drawPieDataPoints(series, opts, config, context, process);\n          drawLegend(opts.series, opts, config, context, opts.chartData);\n          drawToolTipBridge(opts, config, context, process);\n          drawCanvas(opts, context);\n        },\n        onAnimationFinish: function onAnimationFinish() {\n          _this.uevent.trigger('renderComplete');\n        } });\n\n      break;\n    case 'rose':\n      this.animationInstance = new Animation({\n        timing: opts.timing,\n        duration: duration,\n        onProcess: function onProcess(process) {\n          context.clearRect(0, 0, opts.width, opts.height);\n          if (opts.rotate) {\n            contextRotate(context, opts);\n          }\n          opts.chartData.pieData = drawRoseDataPoints(series, opts, config, context, process);\n          drawLegend(opts.series, opts, config, context, opts.chartData);\n          drawToolTipBridge(opts, config, context, process);\n          drawCanvas(opts, context);\n        },\n        onAnimationFinish: function onAnimationFinish() {\n          _this.uevent.trigger('renderComplete');\n        } });\n\n      break;\n    case 'radar':\n      this.animationInstance = new Animation({\n        timing: opts.timing,\n        duration: duration,\n        onProcess: function onProcess(process) {\n          context.clearRect(0, 0, opts.width, opts.height);\n          if (opts.rotate) {\n            contextRotate(context, opts);\n          }\n          opts.chartData.radarData = drawRadarDataPoints(series, opts, config, context, process);\n          drawLegend(opts.series, opts, config, context, opts.chartData);\n          drawToolTipBridge(opts, config, context, process);\n          drawCanvas(opts, context);\n        },\n        onAnimationFinish: function onAnimationFinish() {\n          _this.uevent.trigger('renderComplete');\n        } });\n\n      break;\n    case 'arcbar':\n      this.animationInstance = new Animation({\n        timing: opts.timing,\n        duration: duration,\n        onProcess: function onProcess(process) {\n          context.clearRect(0, 0, opts.width, opts.height);\n          if (opts.rotate) {\n            contextRotate(context, opts);\n          }\n          opts.chartData.arcbarData = drawArcbarDataPoints(series, opts, config, context, process);\n          drawCanvas(opts, context);\n        },\n        onAnimationFinish: function onAnimationFinish() {\n          _this.uevent.trigger('renderComplete');\n        } });\n\n      break;\n    case 'gauge':\n      this.animationInstance = new Animation({\n        timing: opts.timing,\n        duration: duration,\n        onProcess: function onProcess(process) {\n          context.clearRect(0, 0, opts.width, opts.height);\n          if (opts.rotate) {\n            contextRotate(context, opts);\n          }\n          opts.chartData.gaugeData = drawGaugeDataPoints(categories, series, opts, config, context, process);\n          drawCanvas(opts, context);\n        },\n        onAnimationFinish: function onAnimationFinish() {\n          _this.uevent.trigger('renderComplete');\n        } });\n\n      break;\n    case 'candle':\n      this.animationInstance = new Animation({\n        timing: opts.timing,\n        duration: duration,\n        onProcess: function onProcess(process) {\n          context.clearRect(0, 0, opts.width, opts.height);\n          if (opts.rotate) {\n            contextRotate(context, opts);\n          }\n          drawYAxisGrid(categories, opts, config, context);\n          drawXAxis(categories, opts, config, context);\n          var _drawCandleDataPoints = drawCandleDataPoints(series, seriesMA, opts, config, context, process),\n          xAxisPoints = _drawCandleDataPoints.xAxisPoints,\n          calPoints = _drawCandleDataPoints.calPoints,\n          eachSpacing = _drawCandleDataPoints.eachSpacing;\n          opts.chartData.xAxisPoints = xAxisPoints;\n          opts.chartData.calPoints = calPoints;\n          opts.chartData.eachSpacing = eachSpacing;\n          drawYAxis(series, opts, config, context);\n          if (opts.enableMarkLine !== false && process === 1) {\n            drawMarkLine(opts, config, context);\n          }\n          if (seriesMA) {\n            drawLegend(seriesMA, opts, config, context, opts.chartData);\n          } else {\n            drawLegend(opts.series, opts, config, context, opts.chartData);\n          }\n          drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);\n          drawCanvas(opts, context);\n        },\n        onAnimationFinish: function onAnimationFinish() {\n          _this.uevent.trigger('renderComplete');\n        } });\n\n      break;}\n\n}\n\nfunction uChartsEvent() {\n  this.events = {};\n}\n\nuChartsEvent.prototype.addEventListener = function (type, listener) {\n  this.events[type] = this.events[type] || [];\n  this.events[type].push(listener);\n};\n\nuChartsEvent.prototype.delEventListener = function (type) {\n  this.events[type] = [];\n};\n\nuChartsEvent.prototype.trigger = function () {\n  for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n    args[_key] = arguments[_key];\n  }\n  var type = args[0];\n  var params = args.slice(1);\n  if (!!this.events[type]) {\n    this.events[type].forEach(function (listener) {\n      try {\n        listener.apply(null, params);\n      } catch (e) {\n        //console.log('[uCharts] '+e);\n      }\n    });\n  }\n};\n\nvar uCharts = function uCharts(opts) {\n  opts.pix = opts.pixelRatio ? opts.pixelRatio : 1;\n  opts.fontSize = opts.fontSize ? opts.fontSize : 13;\n  opts.fontColor = opts.fontColor ? opts.fontColor : config.fontColor;\n  if (opts.background == \"\" || opts.background == \"none\") {\n    opts.background = \"#FFFFFF\";\n  }\n  opts.title = assign({}, opts.title);\n  opts.subtitle = assign({}, opts.subtitle);\n  opts.duration = opts.duration ? opts.duration : 1000;\n  opts.yAxis = assign({}, {\n    data: [],\n    showTitle: false,\n    disabled: false,\n    disableGrid: false,\n    splitNumber: 5,\n    gridType: 'solid',\n    dashLength: 4 * opts.pix,\n    gridColor: '#cccccc',\n    padding: 10,\n    fontColor: '#666666' },\n  opts.yAxis);\n  opts.xAxis = assign({}, {\n    rotateLabel: false,\n    disabled: false,\n    disableGrid: false,\n    splitNumber: 5,\n    calibration: false,\n    gridType: 'solid',\n    dashLength: 4,\n    scrollAlign: 'left',\n    boundaryGap: 'center',\n    axisLine: true,\n    axisLineColor: '#cccccc' },\n  opts.xAxis);\n  opts.xAxis.scrollPosition = opts.xAxis.scrollAlign;\n  opts.legend = assign({}, {\n    show: true,\n    position: 'bottom',\n    float: 'center',\n    backgroundColor: 'rgba(0,0,0,0)',\n    borderColor: 'rgba(0,0,0,0)',\n    borderWidth: 0,\n    padding: 5,\n    margin: 5,\n    itemGap: 10,\n    fontSize: opts.fontSize,\n    lineHeight: opts.fontSize,\n    fontColor: opts.fontColor,\n    formatter: {},\n    hiddenColor: '#CECECE' },\n  opts.legend);\n  opts.extra = assign({}, opts.extra);\n  opts.rotate = opts.rotate ? true : false;\n  opts.animation = opts.animation ? true : false;\n  opts.rotate = opts.rotate ? true : false;\n  opts.canvas2d = opts.canvas2d ? true : false;\n\n  var config$$1 = JSON.parse(JSON.stringify(config));\n  config$$1.color = opts.color ? opts.color : config$$1.color;\n  config$$1.yAxisTitleWidth = opts.yAxis.disabled !== true && opts.yAxis.title ? config$$1.yAxisTitleWidth : 0;\n  if (opts.type == 'pie') {\n    config$$1.pieChartLinePadding = opts.dataLabel === false ? 0 : opts.extra.pie.labelWidth * opts.pix || config$$1.pieChartLinePadding * opts.pix;\n  }\n  if (opts.type == 'ring') {\n    config$$1.pieChartLinePadding = opts.dataLabel === false ? 0 : opts.extra.ring.labelWidth * opts.pix || config$$1.pieChartLinePadding * opts.pix;\n  }\n  if (opts.type == 'rose') {\n    config$$1.pieChartLinePadding = opts.dataLabel === false ? 0 : opts.extra.rose.labelWidth * opts.pix || config$$1.pieChartLinePadding * opts.pix;\n  }\n  config$$1.pieChartTextPadding = opts.dataLabel === false ? 0 : config$$1.pieChartTextPadding * opts.pix;\n  config$$1.yAxisSplit = opts.yAxis.splitNumber ? opts.yAxis.splitNumber : config.yAxisSplit;\n\n  //灞忓箷鏃嬭浆\n  config$$1.rotate = opts.rotate;\n  if (opts.rotate) {\n    var tempWidth = opts.width;\n    var tempHeight = opts.height;\n    opts.width = tempHeight;\n    opts.height = tempWidth;\n  }\n\n  //閫傞厤楂樺垎灞廫n  opts.padding = opts.padding ? opts.padding : config$$1.padding;\n  config$$1.yAxisWidth = config.yAxisWidth * opts.pix;\n  config$$1.xAxisHeight = config.xAxisHeight * opts.pix;\n  if (opts.enableScroll && opts.xAxis.scrollShow) {\n    config$$1.xAxisHeight += 6 * opts.pix;\n  }\n  config$$1.xAxisLineHeight = config.xAxisLineHeight * opts.pix;\n  config$$1.fontSize = opts.fontSize * opts.pix;\n  config$$1.titleFontSize = config.titleFontSize * opts.pix;\n  config$$1.subtitleFontSize = config.subtitleFontSize * opts.pix;\n  config$$1.toolTipPadding = config.toolTipPadding * opts.pix;\n  config$$1.toolTipLineHeight = config.toolTipLineHeight * opts.pix;\n  config$$1.columePadding = config.columePadding * opts.pix;\n  //this.context = opts.context ? opts.context : uni.createCanvasContext(opts.canvasId, opts.$this);\n  //v2.0鐗堟湰鍚庨渶瑕佽嚜琛岃幏鍙朿ontext骞朵紶鍏pts杩涜鍒濆鍖栵紝杩欎箞鍋氭槸涓轰簡纭繚uCharts鍙互璺ㄦ洿澶氱浣跨敤锛屽苟淇濊瘉浜嗚嚜瀹氫箟缁勪欢this瀹炰緥涓嶈寰幆宓屽銆傚鏋滄偍瑙夊緱涓嶄究璇峰彇娑堜笂闈㈡敞閲婏紝閲囩敤v1.0鐗堟湰鐨勬柟寮忎娇鐢紝瀵规缁欐偍甯︽潵鐨勪笉渚挎暚璇疯皡瑙o紒\n  if (!opts.context) {\n    throw new Error('[uCharts] 鏈幏鍙栧埌context锛佹敞鎰忥細v2.0鐗堟湰鍚庯紝闇�瑕佽嚜琛岃幏鍙朿anvas鐨勭粯鍥句笂涓嬫枃骞朵紶鍏pts.context锛�');\n  }\n  this.context = opts.context;\n  if (!this.context.setTextAlign) {\n    this.context.setStrokeStyle = function (e) {\n      return this.strokeStyle = e;\n    };\n    this.context.setLineWidth = function (e) {\n      return this.lineWidth = e;\n    };\n    this.context.setLineCap = function (e) {\n      return this.lineCap = e;\n    };\n    this.context.setFontSize = function (e) {\n      return this.font = e + \"px sans-serif\";\n    };\n    this.context.setFillStyle = function (e) {\n      return this.fillStyle = e;\n    };\n    this.context.setTextAlign = function (e) {\n      return this.textAlign = e;\n    };\n    this.context.draw = function () {};\n  }\n  //鍏煎NVUEsetLineDash\n  if (!this.context.setLineDash) {\n    this.context.setLineDash = function (e) {};\n  }\n  opts.chartData = {};\n  this.uevent = new uChartsEvent();\n  this.scrollOption = {\n    currentOffset: 0,\n    startTouchX: 0,\n    distance: 0,\n    lastMoveTime: 0 };\n\n  this.opts = opts;\n  this.config = config$$1;\n  drawCharts.call(this, opts.type, opts, config$$1, this.context);\n};\n\nuCharts.prototype.updateData = function () {\n  var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  this.opts = assign({}, this.opts, data);\n  this.opts.updateData = true;\n  var scrollPosition = data.scrollPosition || 'current';\n  switch (scrollPosition) {\n    case 'current':\n      //this.opts._scrollDistance_ = this.scrollOption.currentOffset;\n      break;\n    case 'left':\n      this.opts._scrollDistance_ = 0;\n      this.scrollOption = {\n        currentOffset: 0,\n        startTouchX: 0,\n        distance: 0,\n        lastMoveTime: 0 };\n\n      break;\n    case 'right':\n      var _calYAxisData = calYAxisData(this.opts.series, this.opts, this.config, this.context),yAxisWidth = _calYAxisData.yAxisWidth;\n      this.config.yAxisWidth = yAxisWidth;\n      var offsetLeft = 0;\n      var _getXAxisPoints0 = getXAxisPoints(this.opts.categories, this.opts, this.config),xAxisPoints = _getXAxisPoints0.xAxisPoints,\n      startX = _getXAxisPoints0.startX,\n      endX = _getXAxisPoints0.endX,\n      eachSpacing = _getXAxisPoints0.eachSpacing;\n      var totalWidth = eachSpacing * (xAxisPoints.length - 1);\n      var screenWidth = endX - startX;\n      offsetLeft = screenWidth - totalWidth;\n      this.scrollOption = {\n        currentOffset: offsetLeft,\n        startTouchX: offsetLeft,\n        distance: 0,\n        lastMoveTime: 0 };\n\n      this.opts._scrollDistance_ = offsetLeft;\n      break;}\n\n  drawCharts.call(this, this.opts.type, this.opts, this.config, this.context);\n};\n\nuCharts.prototype.zoom = function () {\n  var val = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.opts.xAxis.itemCount;\n  if (this.opts.enableScroll !== true) {\n    __f__(\"log\", '[uCharts] 璇峰惎鐢ㄦ粴鍔ㄦ潯鍚庝娇鐢�', \" at uni_modules/qiun-data-charts/js_sdk/u-charts/u-charts.js:6386\");\n    return;\n  }\n  //褰撳墠灞忓箷涓棿鐐筡n  var centerPoint = Math.round(Math.abs(this.scrollOption.currentOffset) / this.opts.chartData.eachSpacing) + Math.round(this.opts.xAxis.itemCount / 2);\n  this.opts.animation = false;\n  this.opts.xAxis.itemCount = val.itemCount;\n  //閲嶆柊璁$畻x杞村亸绉昏窛绂籠n  var _calYAxisData = calYAxisData(this.opts.series, this.opts, this.config, this.context),\n  yAxisWidth = _calYAxisData.yAxisWidth;\n  this.config.yAxisWidth = yAxisWidth;\n  var offsetLeft = 0;\n  var _getXAxisPoints0 = getXAxisPoints(this.opts.categories, this.opts, this.config),\n  xAxisPoints = _getXAxisPoints0.xAxisPoints,\n  startX = _getXAxisPoints0.startX,\n  endX = _getXAxisPoints0.endX,\n  eachSpacing = _getXAxisPoints0.eachSpacing;\n  var centerLeft = eachSpacing * centerPoint;\n  var screenWidth = endX - startX;\n  var MaxLeft = screenWidth - eachSpacing * (xAxisPoints.length - 1);\n  offsetLeft = screenWidth / 2 - centerLeft;\n  if (offsetLeft > 0) {\n    offsetLeft = 0;\n  }\n  if (offsetLeft < MaxLeft) {\n    offsetLeft = MaxLeft;\n  }\n  this.scrollOption = {\n    currentOffset: offsetLeft,\n    startTouchX: offsetLeft,\n    distance: 0,\n    lastMoveTime: 0 };\n\n  this.opts._scrollDistance_ = offsetLeft;\n  drawCharts.call(this, this.opts.type, this.opts, this.config, this.context);\n};\n\nuCharts.prototype.stopAnimation = function () {\n  this.animationInstance && this.animationInstance.stop();\n};\n\nuCharts.prototype.addEventListener = function (type, listener) {\n  this.uevent.addEventListener(type, listener);\n};\n\nuCharts.prototype.delEventListener = function (type) {\n  this.uevent.delEventListener(type);\n};\n\nuCharts.prototype.getCurrentDataIndex = function (e) {\n  var touches = null;\n  if (e.changedTouches) {\n    touches = e.changedTouches[0];\n  } else {\n    touches = e.mp.changedTouches[0];\n  }\n  if (touches) {\n    var _touches$ = getTouches(touches, this.opts, e);\n    if (this.opts.type === 'pie' || this.opts.type === 'ring') {\n      return findPieChartCurrentIndex({\n        x: _touches$.x,\n        y: _touches$.y },\n      this.opts.chartData.pieData, this.opts);\n    } else if (this.opts.type === 'rose') {\n      return findRoseChartCurrentIndex({\n        x: _touches$.x,\n        y: _touches$.y },\n      this.opts.chartData.pieData, this.opts);\n    } else if (this.opts.type === 'radar') {\n      return findRadarChartCurrentIndex({\n        x: _touches$.x,\n        y: _touches$.y },\n      this.opts.chartData.radarData, this.opts.categories.length);\n    } else if (this.opts.type === 'funnel') {\n      return findFunnelChartCurrentIndex({\n        x: _touches$.x,\n        y: _touches$.y },\n      this.opts.chartData.funnelData);\n    } else if (this.opts.type === 'map') {\n      return findMapChartCurrentIndex({\n        x: _touches$.x,\n        y: _touches$.y },\n      this.opts);\n    } else if (this.opts.type === 'word') {\n      return findWordChartCurrentIndex({\n        x: _touches$.x,\n        y: _touches$.y },\n      this.opts.chartData.wordCloudData);\n    } else if (this.opts.type === 'bar') {\n      return findBarChartCurrentIndex({\n        x: _touches$.x,\n        y: _touches$.y },\n      this.opts.chartData.calPoints, this.opts, this.config, Math.abs(this.scrollOption.currentOffset));\n    } else {\n      return findCurrentIndex({\n        x: _touches$.x,\n        y: _touches$.y },\n      this.opts.chartData.calPoints, this.opts, this.config, Math.abs(this.scrollOption.currentOffset));\n    }\n  }\n  return -1;\n};\n\nuCharts.prototype.getLegendDataIndex = function (e) {\n  var touches = null;\n  if (e.changedTouches) {\n    touches = e.changedTouches[0];\n  } else {\n    touches = e.mp.changedTouches[0];\n  }\n  if (touches) {\n    var _touches$ = getTouches(touches, this.opts, e);\n    return findLegendIndex({\n      x: _touches$.x,\n      y: _touches$.y },\n    this.opts.chartData.legendData);\n  }\n  return -1;\n};\n\nuCharts.prototype.touchLegend = function (e) {\n  var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  var touches = null;\n  if (e.changedTouches) {\n    touches = e.changedTouches[0];\n  } else {\n    touches = e.mp.changedTouches[0];\n  }\n  if (touches) {\n    var _touches$ = getTouches(touches, this.opts, e);\n    var index = this.getLegendDataIndex(e);\n    if (index >= 0) {\n      if (this.opts.type == 'candle') {\n        this.opts.seriesMA[index].show = !this.opts.seriesMA[index].show;\n      } else {\n        this.opts.series[index].show = !this.opts.series[index].show;\n      }\n      this.opts.animation = option.animation ? true : false;\n      this.opts._scrollDistance_ = this.scrollOption.currentOffset;\n      drawCharts.call(this, this.opts.type, this.opts, this.config, this.context);\n    }\n  }\n\n};\n\nuCharts.prototype.showToolTip = function (e) {var _this2 = this;\n  var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  var touches = null;\n  if (e.changedTouches) {\n    touches = e.changedTouches[0];\n  } else {\n    touches = e.mp.changedTouches[0];\n  }\n  if (!touches) {\n    __f__(\"log\", \"[uCharts] 鏈幏鍙栧埌event鍧愭爣淇℃伅\", \" at uni_modules/qiun-data-charts/js_sdk/u-charts/u-charts.js:6540\");\n  }\n  var _touches$ = getTouches(touches, this.opts, e);\n  var currentOffset = this.scrollOption.currentOffset;\n  var opts = assign({}, this.opts, {\n    _scrollDistance_: currentOffset,\n    animation: false });\n\n  if (this.opts.type === 'line' || this.opts.type === 'area' || this.opts.type === 'column' || this.opts.type === 'scatter' || this.opts.type === 'bubble') {\n    var current = this.getCurrentDataIndex(e);\n    var index = option.index == undefined ? current.index : option.index;\n    if (index > -1 || index.length > 0) {\n      var seriesData = getSeriesDataItem(this.opts.series, index, current.group);\n      if (seriesData.length !== 0) {\n        var _getToolTipData = getToolTipData(seriesData, this.opts, index, current.group, this.opts.categories, option),\n        textList = _getToolTipData.textList,\n        offset = _getToolTipData.offset;\n        offset.y = _touches$.y;\n        opts.tooltip = {\n          textList: option.textList !== undefined ? option.textList : textList,\n          offset: option.offset !== undefined ? option.offset : offset,\n          option: option,\n          index: index };\n\n      }\n    }\n    drawCharts.call(this, opts.type, opts, this.config, this.context);\n  }\n  if (this.opts.type === 'bar') {\n    var current = this.getCurrentDataIndex(e);\n    var index = option.index == undefined ? current.index : option.index;\n    if (index > -1 || index.length > 0) {\n      var seriesData = getSeriesDataItem(this.opts.series, index, current.group);\n      if (seriesData.length !== 0) {\n        var _getToolTipData = getToolTipData(seriesData, this.opts, index, current.group, this.opts.categories, option),\n        textList = _getToolTipData.textList,\n        offset = _getToolTipData.offset;\n        offset.x = _touches$.x;\n        opts.tooltip = {\n          textList: option.textList !== undefined ? option.textList : textList,\n          offset: option.offset !== undefined ? option.offset : offset,\n          option: option,\n          index: index };\n\n      }\n    }\n    drawCharts.call(this, opts.type, opts, this.config, this.context);\n  }\n  if (this.opts.type === 'mix') {\n    var current = this.getCurrentDataIndex(e);\n    var index = option.index == undefined ? current.index : option.index;\n    if (index > -1) {\n      var currentOffset = this.scrollOption.currentOffset;\n      var opts = assign({}, this.opts, {\n        _scrollDistance_: currentOffset,\n        animation: false });\n\n      var seriesData = getSeriesDataItem(this.opts.series, index);\n      if (seriesData.length !== 0) {\n        var _getMixToolTipData = getMixToolTipData(seriesData, this.opts, index, this.opts.categories, option),\n        textList = _getMixToolTipData.textList,\n        offset = _getMixToolTipData.offset;\n        offset.y = _touches$.y;\n        opts.tooltip = {\n          textList: option.textList ? option.textList : textList,\n          offset: option.offset !== undefined ? option.offset : offset,\n          option: option,\n          index: index };\n\n      }\n    }\n    drawCharts.call(this, opts.type, opts, this.config, this.context);\n  }\n  if (this.opts.type === 'candle') {\n    var current = this.getCurrentDataIndex(e);\n    var index = option.index == undefined ? current.index : option.index;\n    if (index > -1) {\n      var currentOffset = this.scrollOption.currentOffset;\n      var opts = assign({}, this.opts, {\n        _scrollDistance_: currentOffset,\n        animation: false });\n\n      var seriesData = getSeriesDataItem(this.opts.series, index);\n      if (seriesData.length !== 0) {\n        var _getToolTipData = getCandleToolTipData(this.opts.series[0].data, seriesData, this.opts, index, this.opts.categories, this.opts.extra.candle, option),\n        textList = _getToolTipData.textList,\n        offset = _getToolTipData.offset;\n        offset.y = _touches$.y;\n        opts.tooltip = {\n          textList: option.textList ? option.textList : textList,\n          offset: option.offset !== undefined ? option.offset : offset,\n          option: option,\n          index: index };\n\n      }\n    }\n    drawCharts.call(this, opts.type, opts, this.config, this.context);\n  }\n  if (this.opts.type === 'pie' || this.opts.type === 'ring' || this.opts.type === 'rose' || this.opts.type === 'funnel') {\n    var index = option.index == undefined ? this.getCurrentDataIndex(e) : option.index;\n    if (index > -1) {\n      var opts = assign({}, this.opts, { animation: false });\n      var seriesData = assign({}, opts._series_[index]);\n      var textList = [{\n        text: option.formatter ? option.formatter(seriesData, undefined, index, opts) : seriesData.name + ': ' + seriesData.data,\n        color: seriesData.color }];\n\n      var offset = {\n        x: _touches$.x,\n        y: _touches$.y };\n\n      opts.tooltip = {\n        textList: option.textList ? option.textList : textList,\n        offset: option.offset !== undefined ? option.offset : offset,\n        option: option,\n        index: index };\n\n    }\n    drawCharts.call(this, opts.type, opts, this.config, this.context);\n  }\n  if (this.opts.type === 'map') {\n    var index = option.index == undefined ? this.getCurrentDataIndex(e) : option.index;\n    if (index > -1) {\n      var opts = assign({}, this.opts, { animation: false });\n      var seriesData = assign({}, this.opts.series[index]);\n      seriesData.name = seriesData.properties.name;\n      var textList = [{\n        text: option.formatter ? option.formatter(seriesData, undefined, index, this.opts) : seriesData.name,\n        color: seriesData.color }];\n\n      var offset = {\n        x: _touches$.x,\n        y: _touches$.y };\n\n      opts.tooltip = {\n        textList: option.textList ? option.textList : textList,\n        offset: option.offset !== undefined ? option.offset : offset,\n        option: option,\n        index: index };\n\n    }\n    opts.updateData = false;\n    drawCharts.call(this, opts.type, opts, this.config, this.context);\n  }\n  if (this.opts.type === 'word') {\n    var index = option.index == undefined ? this.getCurrentDataIndex(e) : option.index;\n    if (index > -1) {\n      var opts = assign({}, this.opts, { animation: false });\n      var seriesData = assign({}, this.opts.series[index]);\n      var textList = [{\n        text: option.formatter ? option.formatter(seriesData, undefined, index, this.opts) : seriesData.name,\n        color: seriesData.color }];\n\n      var offset = {\n        x: _touches$.x,\n        y: _touches$.y };\n\n      opts.tooltip = {\n        textList: option.textList ? option.textList : textList,\n        offset: option.offset !== undefined ? option.offset : offset,\n        option: option,\n        index: index };\n\n    }\n    opts.updateData = false;\n    drawCharts.call(this, opts.type, opts, this.config, this.context);\n  }\n  if (this.opts.type === 'radar') {\n    var index = option.index == undefined ? this.getCurrentDataIndex(e) : option.index;\n    if (index > -1) {\n      var opts = assign({}, this.opts, { animation: false });\n      var seriesData = getSeriesDataItem(this.opts.series, index);\n      if (seriesData.length !== 0) {\n        var textList = seriesData.map(function (item) {\n          return {\n            text: option.formatter ? option.formatter(item, _this2.opts.categories[index], index, _this2.opts) : item.name + ': ' + item.data,\n            color: item.color };\n\n        });\n        var offset = {\n          x: _touches$.x,\n          y: _touches$.y };\n\n        opts.tooltip = {\n          textList: option.textList ? option.textList : textList,\n          offset: option.offset !== undefined ? option.offset : offset,\n          option: option,\n          index: index };\n\n      }\n    }\n    drawCharts.call(this, opts.type, opts, this.config, this.context);\n  }\n};\n\nuCharts.prototype.translate = function (distance) {\n  this.scrollOption = {\n    currentOffset: distance,\n    startTouchX: distance,\n    distance: 0,\n    lastMoveTime: 0 };\n\n  var opts = assign({}, this.opts, {\n    _scrollDistance_: distance,\n    animation: false });\n\n  drawCharts.call(this, this.opts.type, opts, this.config, this.context);\n};\n\nuCharts.prototype.scrollStart = function (e) {\n  var touches = null;\n  if (e.changedTouches) {\n    touches = e.changedTouches[0];\n  } else {\n    touches = e.mp.changedTouches[0];\n  }\n  var _touches$ = getTouches(touches, this.opts, e);\n  if (touches && this.opts.enableScroll === true) {\n    this.scrollOption.startTouchX = _touches$.x;\n  }\n};\n\nuCharts.prototype.scroll = function (e) {\n  if (this.scrollOption.lastMoveTime === 0) {\n    this.scrollOption.lastMoveTime = Date.now();\n  }\n  var Limit = this.opts.touchMoveLimit || 60;\n  var currMoveTime = Date.now();\n  var duration = currMoveTime - this.scrollOption.lastMoveTime;\n  if (duration < Math.floor(1000 / Limit)) return;\n  this.scrollOption.lastMoveTime = currMoveTime;\n  var touches = null;\n  if (e.changedTouches) {\n    touches = e.changedTouches[0];\n  } else {\n    touches = e.mp.changedTouches[0];\n  }\n  if (touches && this.opts.enableScroll === true) {\n    var _touches$ = getTouches(touches, this.opts, e);\n    var _distance;\n    _distance = _touches$.x - this.scrollOption.startTouchX;\n    var currentOffset = this.scrollOption.currentOffset;\n    var validDistance = calValidDistance(this, currentOffset + _distance, this.opts.chartData, this.config, this.opts);\n    this.scrollOption.distance = _distance = validDistance - currentOffset;\n    var opts = assign({}, this.opts, {\n      _scrollDistance_: currentOffset + _distance,\n      animation: false });\n\n    this.opts = opts;\n    drawCharts.call(this, opts.type, opts, this.config, this.context);\n    return currentOffset + _distance;\n  }\n};\n\nuCharts.prototype.scrollEnd = function (e) {\n  if (this.opts.enableScroll === true) {\n    var _scrollOption = this.scrollOption,\n    currentOffset = _scrollOption.currentOffset,\n    distance = _scrollOption.distance;\n    this.scrollOption.currentOffset = currentOffset + distance;\n    this.scrollOption.distance = 0;\n  }\n};var _default =\n\nuCharts;exports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 10)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9qc19zZGsvdS1jaGFydHMvdS1jaGFydHMuanMiXSwibmFtZXMiOlsiY29uZmlnIiwidmVyc2lvbiIsInlBeGlzV2lkdGgiLCJ5QXhpc1NwbGl0IiwieEF4aXNIZWlnaHQiLCJ4QXhpc0xpbmVIZWlnaHQiLCJsZWdlbmRIZWlnaHQiLCJ5QXhpc1RpdGxlV2lkdGgiLCJwYWRkaW5nIiwicGl4ZWxSYXRpbyIsInJvdGF0ZSIsImNvbHVtZVBhZGRpbmciLCJmb250U2l6ZSIsImZvbnRDb2xvciIsImRhdGFQb2ludFNoYXBlIiwiY29sb3IiLCJsaW5lYXJDb2xvciIsInBpZUNoYXJ0TGluZVBhZGRpbmciLCJwaWVDaGFydFRleHRQYWRkaW5nIiwieEF4aXNUZXh0UGFkZGluZyIsInRpdGxlQ29sb3IiLCJ0aXRsZUZvbnRTaXplIiwic3VidGl0bGVDb2xvciIsInN1YnRpdGxlRm9udFNpemUiLCJ0b29sVGlwUGFkZGluZyIsInRvb2xUaXBCYWNrZ3JvdW5kIiwidG9vbFRpcE9wYWNpdHkiLCJ0b29sVGlwTGluZUhlaWdodCIsInJhZGFyTGFiZWxUZXh0TWFyZ2luIiwiZ2F1Z2VMYWJlbFRleHRNYXJnaW4iLCJhc3NpZ24iLCJ0YXJnZXQiLCJ2YXJBcmdzIiwiVHlwZUVycm9yIiwibGVuZ3RoIiwiZGVlcEFzc2lnbiIsIm9iajEiLCJvYmoyIiwia2V5IiwidG9TdHJpbmciLCJmb3JFYWNoIiwidmFsIiwidXRpbCIsInRvRml4ZWQiLCJudW0iLCJsaW1pdCIsImlzRmxvYXQiLCJhcHByb3hpbWF0ZWx5RXF1YWwiLCJudW0xIiwibnVtMiIsIk1hdGgiLCJhYnMiLCJpc1NhbWVTaWduIiwiaXNTYW1lWENvb3JkaW5hdGVBcmVhIiwicDEiLCJwMiIsIngiLCJpc0NvbGxpc2lvbiIsImVuZCIsInN0YXJ0Iiwid2lkdGgiLCJ5IiwiaGVpZ2h0IiwiZmxhZyIsImdldEg1T2Zmc2V0IiwiZSIsIm1wIiwiY2hhbmdlZFRvdWNoZXMiLCJwdXNoIiwib2Zmc2V0WCIsIm9mZnNldFkiLCJsb25sYXQybWVyY2F0b3IiLCJsb25naXR1ZGUiLCJsYXRpdHVkZSIsIm1lcmNhdG9yIiwiQXJyYXkiLCJsb2ciLCJ0YW4iLCJQSSIsIm1lcmNhdG9yMmxvbmxhdCIsImxvbmxhdCIsImF0YW4iLCJleHAiLCJoZXhUb1JnYiIsImhleFZhbHVlIiwib3BjIiwicmd4IiwiaGV4IiwicmVwbGFjZSIsIm0iLCJyIiwiZyIsImIiLCJyZ2IiLCJleGVjIiwicGFyc2VJbnQiLCJmaW5kUmFuZ2UiLCJ0eXBlIiwiaXNOYU4iLCJFcnJvciIsIm11bHRpcGxlIiwiY2VpbCIsImZsb29yIiwiY2FsQ2FuZGxlTUEiLCJkYXlBcnIiLCJuYW1lQXJyIiwiY29sb3JBcnIiLCJrZGF0YSIsInNlcmllc1RlbXAiLCJrIiwic2VyaWVzSXRlbSIsImRhdGEiLCJuYW1lIiwiaSIsImxlbiIsInN1bSIsImoiLCJjYWxWYWxpZERpc3RhbmNlIiwic2VsZiIsImRpc3RhbmNlIiwiY2hhcnREYXRhIiwib3B0cyIsImRhdGFDaGFydEFyZWFXaWR0aCIsImFyZWEiLCJkYXRhQ2hhcnRXaWR0aCIsImVhY2hTcGFjaW5nIiwieEF4aXNEYXRhIiwieEF4aXNQb2ludHMiLCJ2YWxpZERpc3RhbmNlIiwidWV2ZW50IiwidHJpZ2dlciIsInNjcm9sbE9wdGlvbiIsInBvc2l0aW9uIiwieEF4aXMiLCJzY3JvbGxQb3NpdGlvbiIsImlzSW5BbmdsZVJhbmdlIiwiYW5nbGUiLCJzdGFydEFuZ2xlIiwiZW5kQW5nbGUiLCJhZGp1c3QiLCJjYWxSb3RhdGVUcmFuc2xhdGUiLCJoIiwieHYiLCJ5diIsInRyYW5zWCIsInNxcnQiLCJ0cmFuc1kiLCJjcmVhdGVDdXJ2ZUNvbnRyb2xQb2ludHMiLCJwb2ludHMiLCJpc05vdE1pZGRsZVBvaW50IiwibWF4IiwibWluIiwiaXNOb3RNaWRkbGVQb2ludFgiLCJhIiwicEF4IiwicEF5IiwicEJ4IiwicEJ5IiwibGFzdCIsImN0ckEiLCJjdHJCIiwiY29udmVydENvb3JkaW5hdGVPcmlnaW4iLCJjZW50ZXIiLCJhdm9pZENvbGxpc2lvbiIsIm9iaiIsImZpeFBpZVNlcmllcyIsInNlcmllcyIsInBpZVNlcmllc0FyciIsImNvbnN0cnVjdG9yIiwiaW5kZXhPZiIsIl9waWVTZXJpZXNfIiwib2xkc2VyaWVzIiwiZm9ybWF0dGVyIiwidmFsdWUiLCJmaWxsU2VyaWVzIiwiaW5kZXgiLCJpdGVtIiwibGluZWFySW5kZXgiLCJzaG93IiwicG9pbnRTaGFwZSIsImxlZ2VuZFNoYXBlIiwiZmlsbEN1c3RvbUNvbG9yIiwibGluZWFyVHlwZSIsImN1c3RvbUNvbG9yIiwibmV3Y29sb3IiLCJjaGF6aGkiLCJnZXREYXRhUmFuZ2UiLCJtaW5EYXRhIiwibWF4RGF0YSIsInJhbmdlIiwibWluUmFuZ2UiLCJtYXhSYW5nZSIsIm1lYXN1cmVUZXh0IiwidGV4dCIsImNvbnRleHQiLCJTdHJpbmciLCJ1bmRlZmluZWQiLCJzZXRGb250U2l6ZSIsInNwbGl0IiwidGVzdCIsImRhdGFDb21iaW5lIiwicmVkdWNlIiwiY29uY2F0IiwiZGF0YUNvbWJpbmVTdGFjayIsImdldFRvdWNoZXMiLCJ0b3VjaGVzIiwiY2xpZW50WCIsInBpeCIsInBhZ2VZIiwiY3VycmVudFRhcmdldCIsIm9mZnNldFRvcCIsImdldFNlcmllc0RhdGFJdGVtIiwiZ3JvdXAiLCJuZXdTZXJpZXMiLCJpbmRleElzQXJyIiwidGVtcFNlcmllcyIsImZpbHRlclNlcmllcyIsInRtcGluZGV4Iiwic3R5bGUiLCJkaXNhYmxlTGVnZW5kIiwiZ2V0TWF4VGV4dExpc3RMZW5ndGgiLCJsaXN0IiwibGVuZ3RoTGlzdCIsIm1hcCIsImFwcGx5IiwiZ2V0UmFkYXJDb29yZGluYXRlU2VyaWVzIiwiZWFjaEFuZ2xlIiwiQ29vcmRpbmF0ZVNlcmllcyIsImdldFRvb2xUaXBEYXRhIiwic2VyaWVzRGF0YSIsImNhdGVnb3JpZXMiLCJvcHRpb24iLCJhcmd1bWVudHMiLCJjYWxQb2ludHMiLCJmaWx0ZXJQb2ludHMiLCJ0ZXh0TGlzdCIsInRpdGxlVGV4dCIsIm9mZnNldCIsInJvdW5kIiwiZ2V0TWl4VG9vbFRpcERhdGEiLCJmaWx0ZXIiLCJnZXRDYW5kbGVUb29sVGlwRGF0YSIsImV4dHJhIiwidXBDb2xvciIsInVwRmlsbCIsImRvd25Db2xvciIsImRvd25GaWxsIiwidGV4dDEiLCJ0ZXh0MiIsInRleHQzIiwidGV4dDQiLCJ2YWxpZENhbFBvaW50cyIsImZpbmRDdXJyZW50SW5kZXgiLCJjdXJyZW50UG9pbnRzIiwiY3VycmVudCIsInNwYWNpbmciLCJib3VuZGFyeUdhcCIsImlzSW5FeGFjdENoYXJ0QXJlYSIsInRpbWVQb2ludHMiLCJwb2ludFZhbHVlIiwicG9pbnRJbmRleCIsIm1pblZhbHVlIiwiZmluZEJhckNoYXJ0Q3VycmVudEluZGV4IiwieUF4aXNQb2ludHMiLCJmaW5kTGVnZW5kSW5kZXgiLCJsZWdlbmREYXRhIiwiY3VycmVudEluZGV4IiwiZ2FwIiwiaXNJbkV4YWN0TGVnZW5kQXJlYSIsImZpbmRSYWRhckNoYXJ0Q3VycmVudEluZGV4IiwicmFkYXJEYXRhIiwiY291bnQiLCJlYWNoQW5nbGVBcmVhIiwiaXNJbkV4YWN0UGllQ2hhcnRBcmVhIiwicmFkaXVzIiwiZml4QW5nbGUiLCJhdGFuMiIsImFuZ2xlTGlzdCIsInJhbmdlU3RhcnQiLCJyYW5nZUVuZCIsImZpbmRGdW5uZWxDaGFydEN1cnJlbnRJbmRleCIsImZ1bm5lbERhdGEiLCJmdW5uZWxBcmVhIiwiZmluZFdvcmRDaGFydEN1cnJlbnRJbmRleCIsIndvcmREYXRhIiwiZmluZE1hcENoYXJ0Q3VycmVudEluZGV4IiwiY0RhdGEiLCJtYXBEYXRhIiwidG1wIiwicG9pbnRUb0Nvb3JkaW5hdGUiLCJib3VuZHMiLCJzY2FsZSIsInhvZmZzZXQiLCJ5b2Zmc2V0IiwicG9pIiwiZ2VvbWV0cnkiLCJjb29yZGluYXRlcyIsImlzUG9pV2l0aGluUG9seSIsImZpbmRSb3NlQ2hhcnRDdXJyZW50SW5kZXgiLCJwaWVEYXRhIiwiZ2V0Um9zZURhdGFQb2ludHMiLCJfc2VyaWVzXyIsInJvc2UiLCJvZmZzZXRBbmdsZSIsIl9zdGFydF8iLCJfcm9zZV9wcm9wb3J0aW9uXyIsImZpbmRQaWVDaGFydEN1cnJlbnRJbmRleCIsImdldFBpZURhdGFQb2ludHMiLCJwaWUiLCJyaW5nIiwiX3Byb3BvcnRpb25fIiwicG93Iiwic3BsaXRQb2ludHMiLCJlYWNoU2VyaWVzIiwibmV3UG9pbnRzIiwiaXRlbXMiLCJjb25uZWN0TnVsbHMiLCJjYWxMZWdlbmREYXRhIiwid2hvbGVXaWR0aCIsIndob2xlSGVpZ2h0Iiwid2lkdGhBcnIiLCJoZWlnaHRBcnIiLCJsZWdlbmQiLCJtYXJnaW4iLCJzaGFwZVdpZHRoIiwic2hhcGVSaWdodCIsImxpbmVIZWlnaHQiLCJsZWdlbmRMaXN0Iiwid2lkdGhDb3VudCIsIndpZHRoQ291bnRBcnIiLCJjdXJyZW50Um93IiwiaXRlbVdpZHRoIiwiaXRlbUdhcCIsImxlZ2VuZFdpZHRoIiwiZmxvYXQiLCJtYXhIZWlnaHQiLCJtYXhMZW5ndGgiLCJsaW5lTnVtIiwidGVtcCIsInNsaWNlIiwibWF4V2lkdGgiLCJjYWxDYXRlZ29yaWVzRGF0YSIsInJlc3VsdCIsImNhdGVnb3JpZXNUZXh0TGVudGgiLCJtYXhUZXh0TGVuZ3RoIiwicm90YXRlTGFiZWwiLCJzaW4iLCJnZXRYQXhpc1RleHRMaXN0Iiwic3RhY2siLCJzb3J0ZWQiLCJzdWJpdGVtIiwicmFuZ2VTcGFuIiwiZWFjaFJhbmdlIiwic3BsaXROdW1iZXIiLCJjYWxYQXhpc0RhdGEiLCJjb2x1bW5zdHlsZSIsImJhciIsInJhbmdlcyIsInJhbmdlc0Zvcm1hdCIsInhBeGlzU2NhbGVWYWx1ZXMiLCJPYmplY3QiLCJnZXRYQXhpc1BvaW50cyIsInRleHRMZW5ndGgiLCJkaXNhYmxlZCIsImdldFJhZGFyRGF0YVBvaW50cyIsInByb2Nlc3MiLCJyYWRhck9wdGlvbiIsInJhZGFyIiwiZWFjaCIsImxpc3RJdGVtIiwicHJvcG9ydGlvbiIsImNvcyIsIl9yYWRpdXNfIiwiZ2V0RnVubmVsRGF0YVBvaW50cyIsInNvcnQiLCJyZXZlcnNlIiwibWluUmFkaXVzIiwiZGF0YUFyciIsInJhZGl1c0xlbmd0aCIsImdldEFyY2JhckRhdGFQb2ludHMiLCJhcmNiYXJPcHRpb24iLCJ0b3RhbEFuZ2xlIiwiZ2V0R2F1Z2VBeGlzUG9pbnRzIiwidGVtcFN0YXJ0QW5nbGUiLCJfc3RhcnRBbmdsZV8iLCJfZW5kQW5nbGVfIiwiZ2V0R2F1Z2VEYXRhUG9pbnRzIiwiZ2F1Z2VPcHRpb24iLCJwb2ludGVyIiwiX29sZEFuZ2xlXyIsIm9sZEFuZ2xlIiwib2xkRGF0YSIsImdldFBpZVRleHRNYXhMZW5ndGgiLCJ0ZXh0U2l6ZSIsImZpeENvbHVtZURhdGEiLCJjb2x1bW5MZW4iLCJzZXJpZXNHYXAiLCJjYXRlZ29yeUdhcCIsIm1peCIsImNvbHVtbiIsImZpeEJhckRhdGEiLCJmaXhDb2x1bWVNZXRlckRhdGEiLCJib3JkZXIiLCJmaXhDb2x1bWVTdGFja0RhdGEiLCJpbmRleG4iLCJmaXhCYXJTdGFja0RhdGEiLCJzcGFjaW5nVmFsaWQiLCJkYXRhQ291bnQiLCJlbmFibGVTY3JvbGwiLCJpdGVtQ291bnQiLCJzdGFydFgiLCJlbmRYIiwiZ2V0Q2FuZGxlRGF0YVBvaW50cyIsInZhbGlkSGVpZ2h0IiwiY1BvaW50cyIsImluZGV4cyIsInBvaW50IiwiZ2V0RGF0YVBvaW50cyIsInZhbGlkV2lkdGgiLCJ4cmFuZ2VzIiwieG1pblJhbmdlIiwieG1heFJhbmdlIiwic2hpZnQiLCJwb3AiLCJ0IiwiZ2V0QmFyRGF0YVBvaW50cyIsImdldFN0YWNrRGF0YVBvaW50cyIsInNlcmllc0luZGV4Iiwic3RhY2tTZXJpZXMiLCJ2YWx1ZTAiLCJoZWlnaHQwIiwiaGVpZ2h0YyIsInkwIiwiZ2V0QmFyU3RhY2tEYXRhUG9pbnRzIiwieDAiLCJnZXRZQXhpc1RleHRMaXN0IiwieURhdGEiLCJkYXRhUmFuZ2UiLCJ5QXhpcyIsImNhbFlBeGlzRGF0YSIsIllMZW5ndGgiLCJyYW5nZXNBcnIiLCJyYW5nZXNGb3JtYXRBcnIiLCJ5QXhpc1dpZHRoQXJyIiwidW5pdCIsInRvZml4IiwieUF4aXNGb250U2l6ZXMiLCJjYWxpYnJhdGlvbiIsInlBeGlzRm9udFNpemUiLCJjYWxUb29sdGlwWUF4aXNEYXRhIiwieUF4aXNEYXRhIiwibWluQXhpcyIsIm1heFZhbCIsIm1pblZhbCIsImNhbE1hcmtMaW5lRGF0YSIsInlBeGlzSW5kZXgiLCJjb250ZXh0Um90YXRlIiwicm90YXRlTG9jayIsInRyYW5zbGF0ZSIsIl9yb3RhdGVfIiwiZHJhd1BvaW50U2hhcGUiLCJzaGFwZSIsImJlZ2luUGF0aCIsImRhdGFQb2ludFNoYXBlVHlwZSIsInNldFN0cm9rZVN0eWxlIiwic2V0RmlsbFN0eWxlIiwiYmFja2dyb3VuZCIsInNldExpbmVXaWR0aCIsIm1vdmVUbyIsImxpbmVUbyIsImFyYyIsInJlY3QiLCJjbG9zZVBhdGgiLCJmaWxsIiwic3Ryb2tlIiwiZHJhd1JpbmdUaXRsZSIsInRpdGxlZm9udFNpemUiLCJ0aXRsZSIsInN1YnRpdGxlZm9udFNpemUiLCJzdWJ0aXRsZSIsInRpdGxlRm9udENvbG9yIiwic3VidGl0bGVGb250Q29sb3IiLCJ0aXRsZUhlaWdodCIsInN1YnRpdGxlSGVpZ2h0IiwidGV4dFdpZHRoIiwic3RhcnRZIiwiZmlsbFRleHQiLCJfdGV4dFdpZHRoIiwiX3N0YXJ0WCIsIl9zdGFydFkiLCJkcmF3UG9pbnRUZXh0IiwidGV4dE9mZnNldCIsInRleHRDb2xvciIsImZvcm1hdFZhbCIsInNldFRleHRBbGlnbiIsImRyYXdCYXJQb2ludFRleHQiLCJkcmF3R2F1Z2VMYWJlbCIsImNlbnRlclBvc2l0aW9uIiwibGFiZWxPZmZzZXQiLCJzcGxpdEFuZ2xlIiwic3BsaXRMaW5lIiwidG90YWxOdW1iZXIiLCJlbmROdW1iZXIiLCJzdGFydE51bWJlciIsIm5vd0FuZ2xlIiwibm93TnVtYmVyIiwicG9zIiwibGFiZWxUZXh0IiwibGFiZWxDb2xvciIsImRyYXdSYWRhckxhYmVsIiwicG9zUmVsYXRpdmVDYW52YXMiLCJkcmF3UGllVGV4dCIsImxpbmVSYWRpdXMiLCJ0ZXh0T2JqZWN0Q29sbGVjdGlvbiIsImxhc3RUZXh0T2JqZWN0Iiwic2VyaWVzQ29udmVydCIsIm9yZ2luWDEiLCJvcmdpblkxIiwib3JnaW5YMiIsIm9yZ2luWTIiLCJvcmdpblgzIiwib3JnaW5ZMyIsInRleHRPYmplY3QiLCJsaW5lU3RhcnQiLCJsaW5lRW5kIiwibGluZVN0YXJ0UG9pc3Rpb24iLCJsaW5lRW5kUG9pc3Rpb24iLCJ0ZXh0UG9zaXRpb24iLCJjdXJ2ZVN0YXJ0WCIsInRleHRTdGFydFgiLCJxdWFkcmF0aWNDdXJ2ZVRvIiwiZHJhd1Rvb2xUaXBTcGxpdExpbmUiLCJ0b29sVGlwT3B0aW9uIiwidG9vbHRpcCIsImdyaWRUeXBlIiwiZGFzaExlbmd0aCIsImVuZFkiLCJzZXRMaW5lRGFzaCIsImdyaWRDb2xvciIsInhBeGlzTGFiZWwiLCJ0ZXh0WCIsInRleHRZIiwibGFiZWxCZ0NvbG9yIiwibGFiZWxCZ09wYWNpdHkiLCJsYWJlbEZvbnRDb2xvciIsImRyYXdNYXJrTGluZSIsIm1hcmtMaW5lT3B0aW9uIiwibWFya0xpbmUiLCJsaW5lQ29sb3IiLCJzaG93TGFiZWwiLCJiZ1N0YXJ0WCIsImJnRW5kWCIsImJnV2lkdGgiLCJkcmF3VG9vbFRpcEhvcml6ZW50YWxMaW5lIiwieUF4aXNMYWJlbCIsInRTdGFydExlZnQiLCJ0U3RhcnRSaWdodCIsImRyYXdUb29sVGlwU3BsaXRBcmVhIiwiYWN0aXZlQmdDb2xvciIsImFjdGl2ZUJnT3BhY2l0eSIsImRyYXdCYXJUb29sVGlwU3BsaXRBcmVhIiwiZHJhd1Rvb2xUaXAiLCJzaG93Qm94Iiwic2hvd0Fycm93Iiwic2hvd0NhdGVnb3J5IiwiYmdDb2xvciIsImJnT3BhY2l0eSIsImJvcmRlckNvbG9yIiwiYm9yZGVyV2lkdGgiLCJib3JkZXJSYWRpdXMiLCJib3JkZXJPcGFjaXR5IiwidW5zaGlmdCIsImxlZ2VuZE1hcmdpblJpZ2h0IiwiYXJyb3dXaWR0aCIsImlzT3ZlclJpZ2h0Qm9yZGVyIiwidG9vbFRpcFdpZHRoIiwidG9vbFRpcEhlaWdodCIsIl9zY3JvbGxEaXN0YW5jZV8iLCJmaWxsUmVjdCIsImRyYXdDb2x1bW5EYXRhUG9pbnRzIiwiY29sdW1uT3B0aW9uIiwibWV0ZXJCb3JkZXIiLCJtZXRlckZpbGxDb2xvciIsImJhckJvcmRlckNpcmNsZSIsImJhckJvcmRlclJhZGl1cyIsImxpbmVhck9wYWNpdHkiLCJjb2xvclN0b3AiLCJzYXZlIiwibGVmdE51bSIsInJpZ2h0TnVtIiwidG9vbHRpcFBvaW50cyIsImZpbGxDb2xvciIsInN0cm9rZUNvbG9yIiwiZ3JkIiwiY3JlYXRlTGluZWFyR3JhZGllbnQiLCJhZGRDb2xvclN0b3AiLCJsZWZ0IiwidG9wIiwicjAiLCJyMSIsInIyIiwicjMiLCJkYXRhTGFiZWwiLCJyZXN0b3JlIiwiZHJhd0JhckRhdGFQb2ludHMiLCJoZWlnaCIsImRyYXdDYW5kbGVEYXRhUG9pbnRzIiwic2VyaWVzTUEiLCJjYW5kbGVPcHRpb24iLCJhdmVyYWdlIiwiY2FuZGxlIiwidXBMaW5lIiwiZG93bkxpbmUiLCJkYXkiLCJsZWZ0U3BhY2UiLCJyaWdodFNwYWNlIiwic3BsaXRQb2ludExpc3QiLCJzdGFydFBvaW50IiwiY3RybFBvaW50IiwiYmV6aWVyQ3VydmVUbyIsImRyYXdBcmVhRGF0YVBvaW50cyIsImFyZWFPcHRpb24iLCJvcGFjaXR5IiwiYWRkTGluZSIsImdyYWRpZW50IiwiZmlyc3RQb2ludCIsImxhc3RQb2ludCIsImxpbmVUeXBlIiwiZHJhd1NjYXR0ZXJEYXRhUG9pbnRzIiwic2NhdHRlck9wdGlvbiIsInNjYXR0ZXIiLCJkcmF3QnViYmxlRGF0YVBvaW50cyIsImJ1YmJsZU9wdGlvbiIsImJ1YmJsZSIsImRyYXdMaW5lRGF0YVBvaW50cyIsImxpbmVPcHRpb24iLCJsaW5lIiwiZHJhd01peERhdGFQb2ludHMiLCJjb2x1bW5JbmRleCIsImNvbHVtbkxlbmd0aCIsImFkZFBvaW50IiwiZHJhd1Rvb2xUaXBCcmlkZ2UiLCJob3JpemVudGFsTGluZSIsImRyYXdYQXhpcyIsInNjcm9sbFNob3ciLCJzY3JvbGxZIiwic2Nyb2xsU2NyZWVuV2lkdGgiLCJzY3JvbGxUb3RhbFdpZHRoIiwic2Nyb2xsV2lkdGgiLCJzY3JvbGxMZWZ0Iiwic2V0TGluZUNhcCIsInNjcm9sbEJhY2tncm91bmRDb2xvciIsInNjcm9sbENvbG9yIiwiZGlzYWJsZUdyaWQiLCJncmlkRXZhbCIsIm1heFhBeGlzTGlzdExlbmd0aCIsImxhYmVsQ291bnQiLCJyYXRpbyIsIm5ld0NhdGVnb3JpZXMiLCJjZ0xlbmd0aCIsInhBeGlzRm9udFNpemUiLCJfeEF4aXNUZXh0QW5nbGVfIiwieGl0ZW0iLCJzY3JvbGxIZWlnaHQiLCJfY2FsUm90YXRlVHJhbnNsYXRlIiwiYXhpc0xpbmUiLCJheGlzTGluZUNvbG9yIiwiZHJhd1lBeGlzR3JpZCIsInhBeGlzZWFjaFNwYWNpbmciLCJUb3RhbFdpZHRoIiwiZHJhd1lBeGlzIiwiZmlsbEVuZFkiLCJ0U3RhcnRDZW50ZXIiLCJ0ZXh0QWxpZ24iLCJ0bXBzdHJhdCIsImdhcHdpZHRoIiwic2hvd1RpdGxlIiwidGl0bGVPZmZzZXRYIiwidGl0bGVPZmZzZXRZIiwiZHJhd0xlZ2VuZCIsImxlZ2VuZEFyZWEiLCJiYWNrZ3JvdW5kQ29sb3IiLCJpdGVtTGlzdCIsImxpc3RJbmRleCIsImhpZGRlbkNvbG9yIiwiZm9udFRyYW5zIiwiZHJhd1BpZURhdGFQb2ludHMiLCJwaWVPcHRpb24iLCJhY3RpdmVPcGFjaXR5IiwiYWN0aXZlUmFkaXVzIiwibGFiZWxXaWR0aCIsInJpbmdXaWR0aCIsImN1c3RvbVJhZGl1cyIsImNlbnRlckNvbG9yIiwiX3BpZVRleHRNYXhMZW5ndGhfIiwibGluZUpvaW4iLCJmaWxsY29sb3IiLCJjcmVhdGVDaXJjdWxhckdyYWRpZW50IiwiY3JlYXRlUmFkaWFsR3JhZGllbnQiLCJpbm5lclBpZVdpZHRoIiwidmFsaWQiLCJkcmF3Um9zZURhdGFQb2ludHMiLCJyb3NlT3B0aW9uIiwiZHJhd0FyY2JhckRhdGFQb2ludHMiLCJhcmNiYXIiLCJjZW50ZXJYIiwiY2VudGVyWSIsImRyYXdHYXVnZURhdGFQb2ludHMiLCJmaXhSYWRpdXMiLCJjaGlsZE51bWJlciIsImNoaWxkV2lkdGgiLCJnYXVnZSIsImlubmVyUmFkaXVzIiwicGllUmFkaXVzIiwiY2hpbGRBbmdsZSIsInByb2MiLCJwb2ludGVyUmFkaXVzIiwiZ3JhZGllbnQzIiwiZWFjaENhdGVnb3JpZXMiLCJjaGlsZGVuZFgiLCJkcmF3UmFkYXJEYXRhUG9pbnRzIiwiZ3JpZENvdW50IiwiY29vcmRpbmF0ZUFuZ2xlIiwieHIiLCJ5ciIsIl9sb29wIiwic3RhcnRQb3MiLCJyYWRhckRhdGFQb2ludHMiLCJub3JtYWxJbnQiLCJpdGVyIiwiYXJyIiwicmFuZG9tIiwiY29sbGlzaW9uTmV3IiwiaXNJbiIsImdldEJvdW5kaW5nQm94IiwiY29vcmRzIiwieE1pbiIsInhNYXgiLCJ5TWluIiwieU1heCIsImNvb3JkYSIsImNvb3JkaW5hdGVUb1BvaW50IiwicG9pbnRZIiwicG9pbnRYIiwiaXNSYXlJbnRlcnNlY3RzU2VnbWVudCIsInNfcG9pIiwiZV9wb2kiLCJ4c2VnIiwicG9seSIsInNpbnNjIiwiZXBvbHkiLCJkcmF3TWFwRGF0YVBvaW50cyIsIm1hcE9wdGlvbiIsImZpbGxPcGFjaXR5IiwiYWN0aXZlQm9yZGVyQ29sb3IiLCJhY3RpdmVGaWxsQ29sb3IiLCJhY3RpdmVGaWxsT3BhY2l0eSIsInhTY2FsZSIsInlTY2FsZSIsImdhb3NpIiwiY2VudGVyUG9pbnQiLCJwcm9wZXJ0aWVzIiwiY2VudHJvaWQiLCJkcmF3IiwiZ2V0V29yZENsb3VkUG9pbnQiLCJ0SGVpZ2h0IiwidFdpZHRoIiwiYnJlYWtudW0iLCJTcGluIiwiaXNTcGluIiwiYXJlYXYiLCJkcmF3V29yZENsb3VkRGF0YVBvaW50cyIsIndvcmRPcHRpb24iLCJhdXRvQ29sb3JzIiwid29yZCIsIndvcmRDbG91ZERhdGEiLCJzdHJva2VUZXh0IiwiZHJhd0Z1bm5lbERhdGFQb2ludHMiLCJmdW5uZWxPcHRpb24iLCJhY3RpdmVXaWR0aCIsImxhYmVsQWxpZ24iLCJmdW5uZWwiLCJkcmF3RnVubmVsVGV4dCIsImRyYXdDYW52YXMiLCJUaW1pbmciLCJlYXNlSW4iLCJlYXNlT3V0IiwiZWFzZUluT3V0IiwibGluZWFyIiwiQW5pbWF0aW9uIiwiaXNTdG9wIiwiZHVyYXRpb24iLCJ0aW1pbmciLCJkZWxheSIsImNyZWF0ZUFuaW1hdGlvbkZyYW1lIiwic2V0VGltZW91dCIsInN0ZXAiLCJ0aW1lU3RhbXAiLCJEYXRlIiwicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwiYW5pbWF0aW9uRnJhbWUiLCJzdGFydFRpbWVTdGFtcCIsIl9zdGVwIiwidGltZXN0YW1wIiwib25Qcm9jZXNzIiwib25BbmltYXRpb25GaW5pc2giLCJ0aW1pbmdGdW5jdGlvbiIsImJpbmQiLCJwcm90b3R5cGUiLCJzdG9wIiwiZHJhd0NoYXJ0cyIsIl90aGlzIiwiYW5pbWF0aW9uIiwiYW5pbWF0aW9uSW5zdGFuY2UiLCJfY2FsTGVnZW5kRGF0YSIsIl9jYWxZQXhpc0RhdGEiLCJtYXhUaXRsZUhlaWdodCIsInJpZ2h0SW5kZXgiLCJsZWZ0SW5kZXgiLCJfY2FsQ2F0ZWdvcmllc0RhdGEiLCJjYXRlZ29yaWVzRGF0YSIsInNjcm9sbEFsaWduIiwib2Zmc2V0TGVmdCIsInRvdGFsV2lkdGgiLCJzY3JlZW5XaWR0aCIsImN1cnJlbnRPZmZzZXQiLCJzdGFydFRvdWNoWCIsImxhc3RNb3ZlVGltZSIsImNsZWFyUmVjdCIsIl9kcmF3TGluZURhdGFQb2ludHMiLCJlbmFibGVNYXJrTGluZSIsIl9kcmF3U2NhdHRlckRhdGFQb2ludHMiLCJfZHJhd0J1YmJsZURhdGFQb2ludHMiLCJfZHJhd01peERhdGFQb2ludHMiLCJfZHJhd0NvbHVtbkRhdGFQb2ludHMiLCJfZHJhd0JhckRhdGFQb2ludHMiLCJfZHJhd0FyZWFEYXRhUG9pbnRzIiwiYXJjYmFyRGF0YSIsImdhdWdlRGF0YSIsIl9kcmF3Q2FuZGxlRGF0YVBvaW50cyIsInVDaGFydHNFdmVudCIsImV2ZW50cyIsImFkZEV2ZW50TGlzdGVuZXIiLCJsaXN0ZW5lciIsImRlbEV2ZW50TGlzdGVuZXIiLCJfbGVuIiwiYXJncyIsIl9rZXkiLCJwYXJhbXMiLCJ1Q2hhcnRzIiwiY2FudmFzMmQiLCJjb25maWckJDEiLCJKU09OIiwicGFyc2UiLCJzdHJpbmdpZnkiLCJ0ZW1wV2lkdGgiLCJ0ZW1wSGVpZ2h0Iiwic3Ryb2tlU3R5bGUiLCJsaW5lV2lkdGgiLCJsaW5lQ2FwIiwiZm9udCIsImZpbGxTdHlsZSIsImNhbGwiLCJ1cGRhdGVEYXRhIiwiX2dldFhBeGlzUG9pbnRzMCIsInpvb20iLCJjZW50ZXJMZWZ0IiwiTWF4TGVmdCIsInN0b3BBbmltYXRpb24iLCJnZXRDdXJyZW50RGF0YUluZGV4IiwiX3RvdWNoZXMkIiwiZ2V0TGVnZW5kRGF0YUluZGV4IiwidG91Y2hMZWdlbmQiLCJzaG93VG9vbFRpcCIsIl9nZXRUb29sVGlwRGF0YSIsIl9nZXRNaXhUb29sVGlwRGF0YSIsInNjcm9sbFN0YXJ0Iiwic2Nyb2xsIiwibm93IiwiTGltaXQiLCJ0b3VjaE1vdmVMaW1pdCIsImN1cnJNb3ZlVGltZSIsIl9kaXN0YW5jZSIsInNjcm9sbEVuZCIsIl9zY3JvbGxPcHRpb24iXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW9CQSxJQUFJQSxNQUFNLEdBQUc7QUFDWEMsU0FBTyxFQUFFLGlCQURFO0FBRVhDLFlBQVUsRUFBRSxFQUZEO0FBR1hDLFlBQVUsRUFBRSxDQUhEO0FBSVhDLGFBQVcsRUFBRSxFQUpGO0FBS1hDLGlCQUFlLEVBQUUsRUFMTjtBQU1YQyxjQUFZLEVBQUUsRUFOSDtBQU9YQyxpQkFBZSxFQUFFLEVBUE47QUFRWEMsU0FBTyxFQUFFLENBQUMsRUFBRCxFQUFLLEVBQUwsRUFBUyxFQUFULEVBQWEsRUFBYixDQVJFO0FBU1hDLFlBQVUsRUFBRSxDQVREO0FBVVhDLFFBQU0sRUFBRSxLQVZHO0FBV1hDLGVBQWEsRUFBRSxDQVhKO0FBWVhDLFVB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L0J0RSxlQUFTLEVBQUUsS0FGb0IsRUFBaEIsQ0FBakI7O0FBSUYsU0FBS25yQixJQUFMLEdBQVlBLElBQVo7QUFDRWlyQixjQUFVLENBQUNvRCxJQUFYLENBQWdCLElBQWhCLEVBQXNCcnVCLElBQUksQ0FBQ3hCLElBQTNCLEVBQWlDd0IsSUFBakMsRUFBdUMsS0FBS3pILE1BQTVDLEVBQW9ELEtBQUtrTSxPQUF6RDtBQUNBLFdBQU91bkIsYUFBYSxHQUFHeUQsU0FBdkI7QUFDRDtBQUNGLENBOUJEOztBQWdDQWpDLE9BQU8sQ0FBQ3pDLFNBQVIsQ0FBa0IyRSxTQUFsQixHQUE4QixVQUFTbHpCLENBQVQsRUFBWTtBQUN4QyxNQUFJLEtBQUt3RCxJQUFMLENBQVUrUixZQUFWLEtBQTJCLElBQS9CLEVBQXFDO0FBQ25DLFFBQUk0ZCxhQUFhLEdBQUcsS0FBS2p2QixZQUF6QjtBQUNFc3JCLGlCQUFhLEdBQUcyRCxhQUFhLENBQUMzRCxhQURoQztBQUVFbHNCLFlBQVEsR0FBRzZ2QixhQUFhLENBQUM3dkIsUUFGM0I7QUFHQSxTQUFLWSxZQUFMLENBQWtCc3JCLGFBQWxCLEdBQWtDQSxhQUFhLEdBQUdsc0IsUUFBbEQ7QUFDQSxTQUFLWSxZQUFMLENBQWtCWixRQUFsQixHQUE2QixDQUE3QjtBQUNEO0FBQ0YsQ0FSRCxDOztBQVVlMHRCLE8iLCJmaWxlIjoiNzMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiB1Q2hhcnRzwq5cclxuICog6auY5oCn6IO96Leo5bmz5Y+w5Zu+6KGo5bqT77yM5pSv5oyBSDXjgIFBUFDjgIHlsI/nqIvluo/vvIjlvq7kv6Ev5pSv5LuY5a6dL+eZvuW6pi/lpLTmnaEvUVEvMzYw77yJ44CBVnVl44CBVGFyb+etieaUr+aMgWNhbnZhc+eahOahhuaetuW5s+WPsFxyXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjEgUUlVTsKu56eL5LqRIGh0dHBzOi8vd3d3LnVjaGFydHMuY24gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuICogTGljZW5zZWQgKCBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAgKVxyXG4gKiDlpI3liLbkvb/nlKjor7fkv53nlZnmnKzmrrXms6jph4rvvIzmhJ/osKLmlK/mjIHlvIDmupDvvIFcclxuICogXHJcbiAqIHVDaGFydHPCruWumOaWuee9keermVxyXG4gKiBodHRwczovL3d3dy51Q2hhcnRzLmNuXHJcbiAqIFxyXG4gKiDlvIDmupDlnLDlnYA6XHJcbiAqIGh0dHBzOi8vZ2l0ZWUuY29tL3VDaGFydHMvdUNoYXJ0c1xyXG4gKiBcclxuICogdW5pLWFwcOaPkuS7tuW4guWcuuWcsOWdgO+8mlxyXG4gKiBodHRwOi8vZXh0LmRjbG91ZC5uZXQuY24vcGx1Z2luP2lkPTI3MVxyXG4gKiBcclxuICovXHJcblxyXG4ndXNlIHN0cmljdCc7XHJcblxyXG52YXIgY29uZmlnID0ge1xyXG4gIHZlcnNpb246ICd2Mi4zLjctMjAyMjAxMjInLFxyXG4gIHlBeGlzV2lkdGg6IDE1LFxyXG4gIHlBeGlzU3BsaXQ6IDUsXHJcbiAgeEF4aXNIZWlnaHQ6IDIyLFxyXG4gIHhBeGlzTGluZUhlaWdodDogMjIsXHJcbiAgbGVnZW5kSGVpZ2h0OiAxNSxcclxuICB5QXhpc1RpdGxlV2lkdGg6IDE1LFxyXG4gIHBhZGRpbmc6IFsxMCwgMTAsIDEwLCAxMF0sXHJcbiAgcGl4ZWxSYXRpbzogMSxcclxuICByb3RhdGU6IGZhbHNlLFxyXG4gIGNvbHVtZVBhZGRpbmc6IDMsXHJcbiAgZm9udFNpemU6IDEzLFxyXG4gIGZvbnRDb2xvcjogJyM2NjY2NjYnLFxyXG4gIGRhdGFQb2ludFNoYXBlOiBbJ2NpcmNsZScsICdjaXJjbGUnLCAnY2lyY2xlJywgJ2NpcmNsZSddLFxyXG4gIGNvbG9yOiBbJyMxODkwRkYnLCAnIzkxQ0I3NCcsICcjRkFDODU4JywgJyNFRTY2NjYnLCAnIzczQzBERScsICcjM0NBMjcyJywgJyNGQzg0NTInLCAnIzlBNjBCNCcsICcjZWE3Y2NjJ10sXHJcbiAgbGluZWFyQ29sb3I6IFsnIzBFRTJGOCcsICcjMkJEQ0E4JywgJyNGQTdEOEQnLCAnI0VCODhFMicsICcjMkFFM0EwJywgJyMwRUUyRjgnLCAnI0VCODhFMicsICcjNjc3M0UzJywgJyNGNzhBODUnXSxcclxuICBwaWVDaGFydExpbmVQYWRkaW5nOiAxNSxcclxuICBwaWVDaGFydFRleHRQYWRkaW5nOiA1LFxyXG4gIHhBeGlzVGV4dFBhZGRpbmc6IDMsXHJcbiAgdGl0bGVDb2xvcjogJyMzMzMzMzMnLFxyXG4gIHRpdGxlRm9udFNpemU6IDIwLFxyXG4gIHN1YnRpdGxlQ29sb3I6ICcjOTk5OTk5JyxcclxuICBzdWJ0aXRsZUZvbnRTaXplOiAxNSxcclxuICB0b29sVGlwUGFkZGluZzogMyxcclxuICB0b29sVGlwQmFja2dyb3VuZDogJyMwMDAwMDAnLFxyXG4gIHRvb2xUaXBPcGFjaXR5OiAwLjcsXHJcbiAgdG9vbFRpcExpbmVIZWlnaHQ6IDIwLFxyXG4gIHJhZGFyTGFiZWxUZXh0TWFyZ2luOiAxMyxcclxuICBnYXVnZUxhYmVsVGV4dE1hcmdpbjogMTNcclxufTtcclxuXHJcbnZhciBhc3NpZ24gPSBmdW5jdGlvbih0YXJnZXQsIC4uLnZhckFyZ3MpIHtcclxuICBpZiAodGFyZ2V0ID09IG51bGwpIHtcclxuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1t1Q2hhcnRzXSBDYW5ub3QgY29udmVydCB1bmRlZmluZWQgb3IgbnVsbCB0byBvYmplY3QnKTtcclxuICB9XHJcbiAgaWYgKCF2YXJBcmdzIHx8IHZhckFyZ3MubGVuZ3RoIDw9IDApIHtcclxuICAgIHJldHVybiB0YXJnZXQ7XHJcbiAgfVxyXG4gIC8vIOa3seW6puWQiOW5tuWvueixoVxyXG4gIGZ1bmN0aW9uIGRlZXBBc3NpZ24ob2JqMSwgb2JqMikge1xyXG4gICAgZm9yIChsZXQga2V5IGluIG9iajIpIHtcclxuICAgICAgb2JqMVtrZXldID0gb2JqMVtrZXldICYmIG9iajFba2V5XS50b1N0cmluZygpID09PSBcIltvYmplY3QgT2JqZWN0XVwiID9cclxuICAgICAgICBkZWVwQXNzaWduKG9iajFba2V5XSwgb2JqMltrZXldKSA6IG9iajFba2V5XSA9IG9iajJba2V5XTtcclxuICAgIH1cclxuICAgIHJldHVybiBvYmoxO1xyXG4gIH1cclxuICB2YXJBcmdzLmZvckVhY2godmFsID0+IHtcclxuICAgIHRhcmdldCA9IGRlZXBBc3NpZ24odGFyZ2V0LCB2YWwpO1xyXG4gIH0pO1xyXG4gIHJldHVybiB0YXJnZXQ7XHJcbn07XHJcblxyXG52YXIgdXRpbCA9IHtcclxuICB0b0ZpeGVkOiBmdW5jdGlvbiB0b0ZpeGVkKG51bSwgbGltaXQpIHtcclxuICAgIGxpbWl0ID0gbGltaXQgfHwgMjtcclxuICAgIGlmICh0aGlzLmlzRmxvYXQobnVtKSkge1xyXG4gICAgICBudW0gPSBudW0udG9GaXhlZChsaW1pdCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVtO1xyXG4gIH0sXHJcbiAgaXNGbG9hdDogZnVuY3Rpb24gaXNGbG9hdChudW0pIHtcclxuICAgIHJldHVybiBudW0gJSAxICE9PSAwO1xyXG4gIH0sXHJcbiAgYXBwcm94aW1hdGVseUVxdWFsOiBmdW5jdGlvbiBhcHByb3hpbWF0ZWx5RXF1YWwobnVtMSwgbnVtMikge1xyXG4gICAgcmV0dXJuIE1hdGguYWJzKG51bTEgLSBudW0yKSA8IDFlLTEwO1xyXG4gIH0sXHJcbiAgaXNTYW1lU2lnbjogZnVuY3Rpb24gaXNTYW1lU2lnbihudW0xLCBudW0yKSB7XHJcbiAgICByZXR1cm4gTWF0aC5hYnMobnVtMSkgPT09IG51bTEgJiYgTWF0aC5hYnMobnVtMikgPT09IG51bTIgfHwgTWF0aC5hYnMobnVtMSkgIT09IG51bTEgJiYgTWF0aC5hYnMobnVtMikgIT09IG51bTI7XHJcbiAgfSxcclxuICBpc1NhbWVYQ29vcmRpbmF0ZUFyZWE6IGZ1bmN0aW9uIGlzU2FtZVhDb29yZGluYXRlQXJlYShwMSwgcDIpIHtcclxuICAgIHJldHVybiB0aGlzLmlzU2FtZVNpZ24ocDEueCwgcDIueCk7XHJcbiAgfSxcclxuICBpc0NvbGxpc2lvbjogZnVuY3Rpb24gaXNDb2xsaXNpb24ob2JqMSwgb2JqMikge1xyXG4gICAgb2JqMS5lbmQgPSB7fTtcclxuICAgIG9iajEuZW5kLnggPSBvYmoxLnN0YXJ0LnggKyBvYmoxLndpZHRoO1xyXG4gICAgb2JqMS5lbmQueSA9IG9iajEuc3RhcnQueSAtIG9iajEuaGVpZ2h0O1xyXG4gICAgb2JqMi5lbmQgPSB7fTtcclxuICAgIG9iajIuZW5kLnggPSBvYmoyLnN0YXJ0LnggKyBvYmoyLndpZHRoO1xyXG4gICAgb2JqMi5lbmQueSA9IG9iajIuc3RhcnQueSAtIG9iajIuaGVpZ2h0O1xyXG4gICAgdmFyIGZsYWcgPSBvYmoyLnN0YXJ0LnggPiBvYmoxLmVuZC54IHx8IG9iajIuZW5kLnggPCBvYmoxLnN0YXJ0LnggfHwgb2JqMi5lbmQueSA+IG9iajEuc3RhcnQueSB8fCBvYmoyLnN0YXJ0LnkgPCBvYmoxLmVuZC55O1xyXG4gICAgcmV0dXJuICFmbGFnO1xyXG4gIH1cclxufTtcclxuXHJcbi8v5YW85a65SDXngrnlh7vkuovku7ZcclxuZnVuY3Rpb24gZ2V0SDVPZmZzZXQoZSkge1xyXG4gIGUubXAgPSB7XHJcbiAgICBjaGFuZ2VkVG91Y2hlczogW11cclxuICB9O1xyXG4gIGUubXAuY2hhbmdlZFRvdWNoZXMucHVzaCh7XHJcbiAgICB4OiBlLm9mZnNldFgsXHJcbiAgICB5OiBlLm9mZnNldFlcclxuICB9KTtcclxuICByZXR1cm4gZTtcclxufVxyXG5cclxuLy8g57uP57qs5bqm6L2s5aKo5Y2h5omYXHJcbmZ1bmN0aW9uIGxvbmxhdDJtZXJjYXRvcihsb25naXR1ZGUsIGxhdGl0dWRlKSB7XHJcbiAgdmFyIG1lcmNhdG9yID0gQXJyYXkoMik7XHJcbiAgdmFyIHggPSBsb25naXR1ZGUgKiAyMDAzNzUwOC4zNCAvIDE4MDtcclxuICB2YXIgeSA9IE1hdGgubG9nKE1hdGgudGFuKCg5MCArIGxhdGl0dWRlKSAqIE1hdGguUEkgLyAzNjApKSAvIChNYXRoLlBJIC8gMTgwKTtcclxuICB5ID0geSAqIDIwMDM3NTA4LjM0IC8gMTgwO1xyXG4gIG1lcmNhdG9yWzBdID0geDtcclxuICBtZXJjYXRvclsxXSA9IHk7XHJcbiAgcmV0dXJuIG1lcmNhdG9yO1xyXG59XHJcblxyXG4vLyDloqjljaHmiZjovaznu4/nuqzluqZcclxuZnVuY3Rpb24gbWVyY2F0b3IybG9ubGF0KGxvbmdpdHVkZSwgbGF0aXR1ZGUpIHtcclxuICB2YXIgbG9ubGF0ID0gQXJyYXkoMilcclxuICB2YXIgeCA9IGxvbmdpdHVkZSAvIDIwMDM3NTA4LjM0ICogMTgwO1xyXG4gIHZhciB5ID0gbGF0aXR1ZGUgLyAyMDAzNzUwOC4zNCAqIDE4MDtcclxuICB5ID0gMTgwIC8gTWF0aC5QSSAqICgyICogTWF0aC5hdGFuKE1hdGguZXhwKHkgKiBNYXRoLlBJIC8gMTgwKSkgLSBNYXRoLlBJIC8gMik7XHJcbiAgbG9ubGF0WzBdID0geDtcclxuICBsb25sYXRbMV0gPSB5O1xyXG4gIHJldHVybiBsb25sYXQ7XHJcbn1cclxuXHJcbi8vIGhleCDovawgcmdiYVxyXG5mdW5jdGlvbiBoZXhUb1JnYihoZXhWYWx1ZSwgb3BjKSB7XHJcbiAgdmFyIHJneCA9IC9eIz8oW2EtZlxcZF0pKFthLWZcXGRdKShbYS1mXFxkXSkkL2k7XHJcbiAgdmFyIGhleCA9IGhleFZhbHVlLnJlcGxhY2Uocmd4LCBmdW5jdGlvbihtLCByLCBnLCBiKSB7XHJcbiAgICByZXR1cm4gciArIHIgKyBnICsgZyArIGIgKyBiO1xyXG4gIH0pO1xyXG4gIHZhciByZ2IgPSAvXiM/KFthLWZcXGRdezJ9KShbYS1mXFxkXXsyfSkoW2EtZlxcZF17Mn0pJC9pLmV4ZWMoaGV4KTtcclxuICB2YXIgciA9IHBhcnNlSW50KHJnYlsxXSwgMTYpO1xyXG4gIHZhciBnID0gcGFyc2VJbnQocmdiWzJdLCAxNik7XHJcbiAgdmFyIGIgPSBwYXJzZUludChyZ2JbM10sIDE2KTtcclxuICByZXR1cm4gJ3JnYmEoJyArIHIgKyAnLCcgKyBnICsgJywnICsgYiArICcsJyArIG9wYyArICcpJztcclxufVxyXG5cclxuZnVuY3Rpb24gZmluZFJhbmdlKG51bSwgdHlwZSwgbGltaXQpIHtcclxuICBpZiAoaXNOYU4obnVtKSkge1xyXG4gICAgdGhyb3cgbmV3IEVycm9yKCdbdUNoYXJ0c10gc2VyaWVz5pWw5o2u6ZyA5Li6TnVtYmVy5qC85byPJyk7XHJcbiAgfVxyXG4gIGxpbWl0ID0gbGltaXQgfHwgMTA7XHJcbiAgdHlwZSA9IHR5cGUgPyB0eXBlIDogJ3VwcGVyJztcclxuICB2YXIgbXVsdGlwbGUgPSAxO1xyXG4gIHdoaWxlIChsaW1pdCA8IDEpIHtcclxuICAgIGxpbWl0ICo9IDEwO1xyXG4gICAgbXVsdGlwbGUgKj0gMTA7XHJcbiAgfVxyXG4gIGlmICh0eXBlID09PSAndXBwZXInKSB7XHJcbiAgICBudW0gPSBNYXRoLmNlaWwobnVtICogbXVsdGlwbGUpO1xyXG4gIH0gZWxzZSB7XHJcbiAgICBudW0gPSBNYXRoLmZsb29yKG51bSAqIG11bHRpcGxlKTtcclxuICB9XHJcbiAgd2hpbGUgKG51bSAlIGxpbWl0ICE9PSAwKSB7XHJcbiAgICBpZiAodHlwZSA9PT0gJ3VwcGVyJykge1xyXG4gICAgICBudW0rKztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIG51bS0tO1xyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gbnVtIC8gbXVsdGlwbGU7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNhbENhbmRsZU1BKGRheUFyciwgbmFtZUFyciwgY29sb3JBcnIsIGtkYXRhKSB7XHJcbiAgbGV0IHNlcmllc1RlbXAgPSBbXTtcclxuICBmb3IgKGxldCBrID0gMDsgayA8IGRheUFyci5sZW5ndGg7IGsrKykge1xyXG4gICAgbGV0IHNlcmllc0l0ZW0gPSB7XHJcbiAgICAgIGRhdGE6IFtdLFxyXG4gICAgICBuYW1lOiBuYW1lQXJyW2tdLFxyXG4gICAgICBjb2xvcjogY29sb3JBcnJba11cclxuICAgIH07XHJcbiAgICBmb3IgKGxldCBpID0gMCwgbGVuID0ga2RhdGEubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcclxuICAgICAgaWYgKGkgPCBkYXlBcnJba10pIHtcclxuICAgICAgICBzZXJpZXNJdGVtLmRhdGEucHVzaChudWxsKTtcclxuICAgICAgICBjb250aW51ZTtcclxuICAgICAgfVxyXG4gICAgICBsZXQgc3VtID0gMDtcclxuICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBkYXlBcnJba107IGorKykge1xyXG4gICAgICAgIHN1bSArPSBrZGF0YVtpIC0gal1bMV07XHJcbiAgICAgIH1cclxuICAgICAgc2VyaWVzSXRlbS5kYXRhLnB1c2goKyhzdW0gLyBkYXlBcnJba10pLnRvRml4ZWQoMykpO1xyXG4gICAgfVxyXG4gICAgc2VyaWVzVGVtcC5wdXNoKHNlcmllc0l0ZW0pO1xyXG4gIH1cclxuICByZXR1cm4gc2VyaWVzVGVtcDtcclxufVxyXG5cclxuZnVuY3Rpb24gY2FsVmFsaWREaXN0YW5jZShzZWxmLCBkaXN0YW5jZSwgY2hhcnREYXRhLCBjb25maWcsIG9wdHMpIHtcclxuICB2YXIgZGF0YUNoYXJ0QXJlYVdpZHRoID0gb3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXSAtIG9wdHMuYXJlYVszXTtcclxuICB2YXIgZGF0YUNoYXJ0V2lkdGggPSBjaGFydERhdGEuZWFjaFNwYWNpbmcgKiAob3B0cy5jaGFydERhdGEueEF4aXNEYXRhLnhBeGlzUG9pbnRzLmxlbmd0aCAtIDEpO1xyXG4gIHZhciB2YWxpZERpc3RhbmNlID0gZGlzdGFuY2U7XHJcbiAgaWYgKGRpc3RhbmNlID49IDApIHtcclxuICAgIHZhbGlkRGlzdGFuY2UgPSAwO1xyXG4gICAgc2VsZi51ZXZlbnQudHJpZ2dlcignc2Nyb2xsTGVmdCcpO1xyXG4gICAgc2VsZi5zY3JvbGxPcHRpb24ucG9zaXRpb24gPSAnbGVmdCdcclxuICAgIG9wdHMueEF4aXMuc2Nyb2xsUG9zaXRpb24gPSAnbGVmdCc7XHJcbiAgfSBlbHNlIGlmIChNYXRoLmFicyhkaXN0YW5jZSkgPj0gZGF0YUNoYXJ0V2lkdGggLSBkYXRhQ2hhcnRBcmVhV2lkdGgpIHtcclxuICAgIHZhbGlkRGlzdGFuY2UgPSBkYXRhQ2hhcnRBcmVhV2lkdGggLSBkYXRhQ2hhcnRXaWR0aDtcclxuICAgIHNlbGYudWV2ZW50LnRyaWdnZXIoJ3Njcm9sbFJpZ2h0Jyk7XHJcbiAgICBzZWxmLnNjcm9sbE9wdGlvbi5wb3NpdGlvbiA9ICdyaWdodCdcclxuICAgIG9wdHMueEF4aXMuc2Nyb2xsUG9zaXRpb24gPSAncmlnaHQnO1xyXG4gIH0gZWxzZSB7XHJcbiAgICBzZWxmLnNjcm9sbE9wdGlvbi5wb3NpdGlvbiA9IGRpc3RhbmNlXHJcbiAgICBvcHRzLnhBeGlzLnNjcm9sbFBvc2l0aW9uID0gZGlzdGFuY2U7XHJcbiAgfVxyXG4gIHJldHVybiB2YWxpZERpc3RhbmNlO1xyXG59XHJcblxyXG5mdW5jdGlvbiBpc0luQW5nbGVSYW5nZShhbmdsZSwgc3RhcnRBbmdsZSwgZW5kQW5nbGUpIHtcclxuICBmdW5jdGlvbiBhZGp1c3QoYW5nbGUpIHtcclxuICAgIHdoaWxlIChhbmdsZSA8IDApIHtcclxuICAgICAgYW5nbGUgKz0gMiAqIE1hdGguUEk7XHJcbiAgICB9XHJcbiAgICB3aGlsZSAoYW5nbGUgPiAyICogTWF0aC5QSSkge1xyXG4gICAgICBhbmdsZSAtPSAyICogTWF0aC5QSTtcclxuICAgIH1cclxuICAgIHJldHVybiBhbmdsZTtcclxuICB9XHJcbiAgYW5nbGUgPSBhZGp1c3QoYW5nbGUpO1xyXG4gIHN0YXJ0QW5nbGUgPSBhZGp1c3Qoc3RhcnRBbmdsZSk7XHJcbiAgZW5kQW5nbGUgPSBhZGp1c3QoZW5kQW5nbGUpO1xyXG4gIGlmIChzdGFydEFuZ2xlID4gZW5kQW5nbGUpIHtcclxuICAgIGVuZEFuZ2xlICs9IDIgKiBNYXRoLlBJO1xyXG4gICAgaWYgKGFuZ2xlIDwgc3RhcnRBbmdsZSkge1xyXG4gICAgICBhbmdsZSArPSAyICogTWF0aC5QSTtcclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIGFuZ2xlID49IHN0YXJ0QW5nbGUgJiYgYW5nbGUgPD0gZW5kQW5nbGU7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNhbFJvdGF0ZVRyYW5zbGF0ZSh4LCB5LCBoKSB7XHJcbiAgdmFyIHh2ID0geDtcclxuICB2YXIgeXYgPSBoIC0geTtcclxuICB2YXIgdHJhbnNYID0geHYgKyAoaCAtIHl2IC0geHYpIC8gTWF0aC5zcXJ0KDIpO1xyXG4gIHRyYW5zWCAqPSAtMTtcclxuICB2YXIgdHJhbnNZID0gKGggLSB5dikgKiAoTWF0aC5zcXJ0KDIpIC0gMSkgLSAoaCAtIHl2IC0geHYpIC8gTWF0aC5zcXJ0KDIpO1xyXG4gIHJldHVybiB7XHJcbiAgICB0cmFuc1g6IHRyYW5zWCxcclxuICAgIHRyYW5zWTogdHJhbnNZXHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gY3JlYXRlQ3VydmVDb250cm9sUG9pbnRzKHBvaW50cywgaSkge1xyXG4gIGZ1bmN0aW9uIGlzTm90TWlkZGxlUG9pbnQocG9pbnRzLCBpKSB7XHJcbiAgICBpZiAocG9pbnRzW2kgLSAxXSAmJiBwb2ludHNbaSArIDFdKSB7XHJcbiAgICAgIHJldHVybiBwb2ludHNbaV0ueSA+PSBNYXRoLm1heChwb2ludHNbaSAtIDFdLnksIHBvaW50c1tpICsgMV0ueSkgfHwgcG9pbnRzW2ldLnkgPD0gTWF0aC5taW4ocG9pbnRzW2kgLSAxXS55LFxyXG4gICAgICAgIHBvaW50c1tpICsgMV0ueSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGZ1bmN0aW9uIGlzTm90TWlkZGxlUG9pbnRYKHBvaW50cywgaSkge1xyXG4gICAgaWYgKHBvaW50c1tpIC0gMV0gJiYgcG9pbnRzW2kgKyAxXSkge1xyXG4gICAgICByZXR1cm4gcG9pbnRzW2ldLnggPj0gTWF0aC5tYXgocG9pbnRzW2kgLSAxXS54LCBwb2ludHNbaSArIDFdLngpIHx8IHBvaW50c1tpXS54IDw9IE1hdGgubWluKHBvaW50c1tpIC0gMV0ueCxcclxuICAgICAgICBwb2ludHNbaSArIDFdLngpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuICB2YXIgYSA9IDAuMjtcclxuICB2YXIgYiA9IDAuMjtcclxuICB2YXIgcEF4ID0gbnVsbDtcclxuICB2YXIgcEF5ID0gbnVsbDtcclxuICB2YXIgcEJ4ID0gbnVsbDtcclxuICB2YXIgcEJ5ID0gbnVsbDtcclxuICBpZiAoaSA8IDEpIHtcclxuICAgIHBBeCA9IHBvaW50c1swXS54ICsgKHBvaW50c1sxXS54IC0gcG9pbnRzWzBdLngpICogYTtcclxuICAgIHBBeSA9IHBvaW50c1swXS55ICsgKHBvaW50c1sxXS55IC0gcG9pbnRzWzBdLnkpICogYTtcclxuICB9IGVsc2Uge1xyXG4gICAgcEF4ID0gcG9pbnRzW2ldLnggKyAocG9pbnRzW2kgKyAxXS54IC0gcG9pbnRzW2kgLSAxXS54KSAqIGE7XHJcbiAgICBwQXkgPSBwb2ludHNbaV0ueSArIChwb2ludHNbaSArIDFdLnkgLSBwb2ludHNbaSAtIDFdLnkpICogYTtcclxuICB9XHJcblxyXG4gIGlmIChpID4gcG9pbnRzLmxlbmd0aCAtIDMpIHtcclxuICAgIHZhciBsYXN0ID0gcG9pbnRzLmxlbmd0aCAtIDE7XHJcbiAgICBwQnggPSBwb2ludHNbbGFzdF0ueCAtIChwb2ludHNbbGFzdF0ueCAtIHBvaW50c1tsYXN0IC0gMV0ueCkgKiBiO1xyXG4gICAgcEJ5ID0gcG9pbnRzW2xhc3RdLnkgLSAocG9pbnRzW2xhc3RdLnkgLSBwb2ludHNbbGFzdCAtIDFdLnkpICogYjtcclxuICB9IGVsc2Uge1xyXG4gICAgcEJ4ID0gcG9pbnRzW2kgKyAxXS54IC0gKHBvaW50c1tpICsgMl0ueCAtIHBvaW50c1tpXS54KSAqIGI7XHJcbiAgICBwQnkgPSBwb2ludHNbaSArIDFdLnkgLSAocG9pbnRzW2kgKyAyXS55IC0gcG9pbnRzW2ldLnkpICogYjtcclxuICB9XHJcbiAgaWYgKGlzTm90TWlkZGxlUG9pbnQocG9pbnRzLCBpICsgMSkpIHtcclxuICAgIHBCeSA9IHBvaW50c1tpICsgMV0ueTtcclxuICB9XHJcbiAgaWYgKGlzTm90TWlkZGxlUG9pbnQocG9pbnRzLCBpKSkge1xyXG4gICAgcEF5ID0gcG9pbnRzW2ldLnk7XHJcbiAgfVxyXG4gIGlmIChpc05vdE1pZGRsZVBvaW50WChwb2ludHMsIGkgKyAxKSkge1xyXG4gICAgcEJ4ID0gcG9pbnRzW2kgKyAxXS54O1xyXG4gIH1cclxuICBpZiAoaXNOb3RNaWRkbGVQb2ludFgocG9pbnRzLCBpKSkge1xyXG4gICAgcEF4ID0gcG9pbnRzW2ldLng7XHJcbiAgfVxyXG4gIGlmIChwQXkgPj0gTWF0aC5tYXgocG9pbnRzW2ldLnksIHBvaW50c1tpICsgMV0ueSkgfHwgcEF5IDw9IE1hdGgubWluKHBvaW50c1tpXS55LCBwb2ludHNbaSArIDFdLnkpKSB7XHJcbiAgICBwQXkgPSBwb2ludHNbaV0ueTtcclxuICB9XHJcbiAgaWYgKHBCeSA+PSBNYXRoLm1heChwb2ludHNbaV0ueSwgcG9pbnRzW2kgKyAxXS55KSB8fCBwQnkgPD0gTWF0aC5taW4ocG9pbnRzW2ldLnksIHBvaW50c1tpICsgMV0ueSkpIHtcclxuICAgIHBCeSA9IHBvaW50c1tpICsgMV0ueTtcclxuICB9XHJcbiAgaWYgKHBBeCA+PSBNYXRoLm1heChwb2ludHNbaV0ueCwgcG9pbnRzW2kgKyAxXS54KSB8fCBwQXggPD0gTWF0aC5taW4ocG9pbnRzW2ldLngsIHBvaW50c1tpICsgMV0ueCkpIHtcclxuICAgIHBBeCA9IHBvaW50c1tpXS54O1xyXG4gIH1cclxuICBpZiAocEJ4ID49IE1hdGgubWF4KHBvaW50c1tpXS54LCBwb2ludHNbaSArIDFdLngpIHx8IHBCeCA8PSBNYXRoLm1pbihwb2ludHNbaV0ueCwgcG9pbnRzW2kgKyAxXS54KSkge1xyXG4gICAgcEJ4ID0gcG9pbnRzW2kgKyAxXS54O1xyXG4gIH1cclxuICByZXR1cm4ge1xyXG4gICAgY3RyQToge1xyXG4gICAgICB4OiBwQXgsXHJcbiAgICAgIHk6IHBBeVxyXG4gICAgfSxcclxuICAgIGN0ckI6IHtcclxuICAgICAgeDogcEJ4LFxyXG4gICAgICB5OiBwQnlcclxuICAgIH1cclxuICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBjb252ZXJ0Q29vcmRpbmF0ZU9yaWdpbih4LCB5LCBjZW50ZXIpIHtcclxuICByZXR1cm4ge1xyXG4gICAgeDogY2VudGVyLnggKyB4LFxyXG4gICAgeTogY2VudGVyLnkgLSB5XHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gYXZvaWRDb2xsaXNpb24ob2JqLCB0YXJnZXQpIHtcclxuICBpZiAodGFyZ2V0KSB7XHJcbiAgICAvLyBpcyBjb2xsaXNpb24gdGVzdFxyXG4gICAgd2hpbGUgKHV0aWwuaXNDb2xsaXNpb24ob2JqLCB0YXJnZXQpKSB7XHJcbiAgICAgIGlmIChvYmouc3RhcnQueCA+IDApIHtcclxuICAgICAgICBvYmouc3RhcnQueS0tO1xyXG4gICAgICB9IGVsc2UgaWYgKG9iai5zdGFydC54IDwgMCkge1xyXG4gICAgICAgIG9iai5zdGFydC55Kys7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKG9iai5zdGFydC55ID4gMCkge1xyXG4gICAgICAgICAgb2JqLnN0YXJ0LnkrKztcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgb2JqLnN0YXJ0LnktLTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIG9iajtcclxufVxyXG5cclxuZnVuY3Rpb24gZml4UGllU2VyaWVzKHNlcmllcywgb3B0cywgY29uZmlnKXtcclxuICBsZXQgcGllU2VyaWVzQXJyID0gW107XHJcbiAgaWYoc2VyaWVzLmxlbmd0aD4wICYmIHNlcmllc1swXS5kYXRhLmNvbnN0cnVjdG9yLnRvU3RyaW5nKCkuaW5kZXhPZignQXJyYXknKSA+IC0xKXtcclxuICAgIG9wdHMuX3BpZVNlcmllc18gPSBzZXJpZXM7XHJcbiAgICBsZXQgb2xkc2VyaWVzID0gc2VyaWVzWzBdLmRhdGE7XHJcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IG9sZHNlcmllcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBvbGRzZXJpZXNbaV0uZm9ybWF0dGVyID0gc2VyaWVzWzBdLmZvcm1hdHRlcjtcclxuICAgICAgb2xkc2VyaWVzW2ldLmRhdGEgPSBvbGRzZXJpZXNbaV0udmFsdWU7XHJcbiAgICAgIHBpZVNlcmllc0Fyci5wdXNoKG9sZHNlcmllc1tpXSk7XHJcbiAgICB9XHJcbiAgICBvcHRzLnNlcmllcyA9IHBpZVNlcmllc0FycjtcclxuICB9ZWxzZXtcclxuICAgIHBpZVNlcmllc0FyciA9IHNlcmllcztcclxuICB9XHJcbiAgcmV0dXJuIHBpZVNlcmllc0FycjtcclxufVxyXG5cclxuZnVuY3Rpb24gZmlsbFNlcmllcyhzZXJpZXMsIG9wdHMsIGNvbmZpZykge1xyXG4gIHZhciBpbmRleCA9IDA7XHJcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBzZXJpZXMubGVuZ3RoOyBpKyspIHtcclxuICAgIGxldCBpdGVtID0gc2VyaWVzW2ldO1xyXG4gICAgaWYgKCFpdGVtLmNvbG9yKSB7XHJcbiAgICAgIGl0ZW0uY29sb3IgPSBjb25maWcuY29sb3JbaW5kZXhdO1xyXG4gICAgICBpbmRleCA9IChpbmRleCArIDEpICUgY29uZmlnLmNvbG9yLmxlbmd0aDtcclxuICAgIH1cclxuICAgIGlmICghaXRlbS5saW5lYXJJbmRleCkge1xyXG4gICAgICBpdGVtLmxpbmVhckluZGV4ID0gaTtcclxuICAgIH1cclxuICAgIGlmICghaXRlbS5pbmRleCkge1xyXG4gICAgICBpdGVtLmluZGV4ID0gMDtcclxuICAgIH1cclxuICAgIGlmICghaXRlbS50eXBlKSB7XHJcbiAgICAgIGl0ZW0udHlwZSA9IG9wdHMudHlwZTtcclxuICAgIH1cclxuICAgIGlmICh0eXBlb2YgaXRlbS5zaG93ID09IFwidW5kZWZpbmVkXCIpIHtcclxuICAgICAgaXRlbS5zaG93ID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGlmICghaXRlbS50eXBlKSB7XHJcbiAgICAgIGl0ZW0udHlwZSA9IG9wdHMudHlwZTtcclxuICAgIH1cclxuICAgIGlmICghaXRlbS5wb2ludFNoYXBlKSB7XHJcbiAgICAgIGl0ZW0ucG9pbnRTaGFwZSA9IFwiY2lyY2xlXCI7XHJcbiAgICB9XHJcbiAgICBpZiAoIWl0ZW0ubGVnZW5kU2hhcGUpIHtcclxuICAgICAgc3dpdGNoIChpdGVtLnR5cGUpIHtcclxuICAgICAgICBjYXNlICdsaW5lJzpcclxuICAgICAgICAgIGl0ZW0ubGVnZW5kU2hhcGUgPSBcImxpbmVcIjtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ2NvbHVtbic6XHJcbiAgICAgICAgICBpdGVtLmxlZ2VuZFNoYXBlID0gXCJyZWN0XCI7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdhcmVhJzpcclxuICAgICAgICAgIGl0ZW0ubGVnZW5kU2hhcGUgPSBcInRyaWFuZ2xlXCI7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdiYXInOlxyXG4gICAgICAgICAgaXRlbS5sZWdlbmRTaGFwZSA9IFwicmVjdFwiO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIGl0ZW0ubGVnZW5kU2hhcGUgPSBcImNpcmNsZVwiO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBzZXJpZXM7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZpbGxDdXN0b21Db2xvcihsaW5lYXJUeXBlLCBjdXN0b21Db2xvciwgc2VyaWVzLCBjb25maWcpIHtcclxuICB2YXIgbmV3Y29sb3IgPSBjdXN0b21Db2xvciB8fCBbXTtcclxuICBpZiAobGluZWFyVHlwZSA9PSAnY3VzdG9tJyAmJiBuZXdjb2xvci5sZW5ndGggPT0gMCApIHtcclxuICAgIG5ld2NvbG9yID0gY29uZmlnLmxpbmVhckNvbG9yO1xyXG4gIH1cclxuICBpZiAobGluZWFyVHlwZSA9PSAnY3VzdG9tJyAmJiBuZXdjb2xvci5sZW5ndGggPCBzZXJpZXMubGVuZ3RoKSB7XHJcbiAgICBsZXQgY2hhemhpID0gc2VyaWVzLmxlbmd0aCAtIG5ld2NvbG9yLmxlbmd0aDtcclxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hhemhpOyBpKyspIHtcclxuICAgICAgbmV3Y29sb3IucHVzaChjb25maWcubGluZWFyQ29sb3JbKGkgKyAxKSAlIGNvbmZpZy5saW5lYXJDb2xvci5sZW5ndGhdKTtcclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIG5ld2NvbG9yO1xyXG59XHJcbiAgXHJcbmZ1bmN0aW9uIGdldERhdGFSYW5nZShtaW5EYXRhLCBtYXhEYXRhKSB7XHJcbiAgdmFyIGxpbWl0ID0gMDtcclxuICB2YXIgcmFuZ2UgPSBtYXhEYXRhIC0gbWluRGF0YTtcclxuICBpZiAocmFuZ2UgPj0gMTAwMDApIHtcclxuICAgIGxpbWl0ID0gMTAwMDtcclxuICB9IGVsc2UgaWYgKHJhbmdlID49IDEwMDApIHtcclxuICAgIGxpbWl0ID0gMTAwO1xyXG4gIH0gZWxzZSBpZiAocmFuZ2UgPj0gMTAwKSB7XHJcbiAgICBsaW1pdCA9IDEwO1xyXG4gIH0gZWxzZSBpZiAocmFuZ2UgPj0gMTApIHtcclxuICAgIGxpbWl0ID0gNTtcclxuICB9IGVsc2UgaWYgKHJhbmdlID49IDEpIHtcclxuICAgIGxpbWl0ID0gMTtcclxuICB9IGVsc2UgaWYgKHJhbmdlID49IDAuMSkge1xyXG4gICAgbGltaXQgPSAwLjE7XHJcbiAgfSBlbHNlIGlmIChyYW5nZSA+PSAwLjAxKSB7XHJcbiAgICBsaW1pdCA9IDAuMDE7XHJcbiAgfSBlbHNlIGlmIChyYW5nZSA+PSAwLjAwMSkge1xyXG4gICAgbGltaXQgPSAwLjAwMTtcclxuICB9IGVsc2UgaWYgKHJhbmdlID49IDAuMDAwMSkge1xyXG4gICAgbGltaXQgPSAwLjAwMDE7XHJcbiAgfSBlbHNlIGlmIChyYW5nZSA+PSAwLjAwMDAxKSB7XHJcbiAgICBsaW1pdCA9IDAuMDAwMDE7XHJcbiAgfSBlbHNlIHtcclxuICAgIGxpbWl0ID0gMC4wMDAwMDE7XHJcbiAgfVxyXG4gIHJldHVybiB7XHJcbiAgICBtaW5SYW5nZTogZmluZFJhbmdlKG1pbkRhdGEsICdsb3dlcicsIGxpbWl0KSxcclxuICAgIG1heFJhbmdlOiBmaW5kUmFuZ2UobWF4RGF0YSwgJ3VwcGVyJywgbGltaXQpXHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gbWVhc3VyZVRleHQodGV4dCwgZm9udFNpemUsIGNvbnRleHQpIHtcclxuICB2YXIgd2lkdGggPSAwO1xyXG4gIHRleHQgPSBTdHJpbmcodGV4dCk7XHJcblxyXG5cclxuXHJcbiAgaWYgKGNvbnRleHQgIT09IGZhbHNlICYmIGNvbnRleHQgIT09IHVuZGVmaW5lZCAmJiBjb250ZXh0LnNldEZvbnRTaXplICYmIGNvbnRleHQubWVhc3VyZVRleHQpIHtcclxuICAgIGNvbnRleHQuc2V0Rm9udFNpemUoZm9udFNpemUpO1xyXG4gICAgcmV0dXJuIGNvbnRleHQubWVhc3VyZVRleHQodGV4dCkud2lkdGg7XHJcbiAgfSBlbHNlIHtcclxuICAgIHZhciB0ZXh0ID0gdGV4dC5zcGxpdCgnJyk7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHtcclxuICAgICAgbGV0IGl0ZW0gPSB0ZXh0W2ldO1xyXG4gICAgICBpZiAoL1thLXpBLVpdLy50ZXN0KGl0ZW0pKSB7XHJcbiAgICAgICAgd2lkdGggKz0gNztcclxuICAgICAgfSBlbHNlIGlmICgvWzAtOV0vLnRlc3QoaXRlbSkpIHtcclxuICAgICAgICB3aWR0aCArPSA1LjU7XHJcbiAgICAgIH0gZWxzZSBpZiAoL1xcLi8udGVzdChpdGVtKSkge1xyXG4gICAgICAgIHdpZHRoICs9IDIuNztcclxuICAgICAgfSBlbHNlIGlmICgvLS8udGVzdChpdGVtKSkge1xyXG4gICAgICAgIHdpZHRoICs9IDMuMjU7XHJcbiAgICAgIH0gZWxzZSBpZiAoLzovLnRlc3QoaXRlbSkpIHtcclxuICAgICAgICB3aWR0aCArPSAyLjU7XHJcbiAgICAgIH0gZWxzZSBpZiAoL1tcXHU0ZTAwLVxcdTlmYTVdLy50ZXN0KGl0ZW0pKSB7XHJcbiAgICAgICAgd2lkdGggKz0gMTA7XHJcbiAgICAgIH0gZWxzZSBpZiAoL1xcKHxcXCkvLnRlc3QoaXRlbSkpIHtcclxuICAgICAgICB3aWR0aCArPSAzLjczO1xyXG4gICAgICB9IGVsc2UgaWYgKC9cXHMvLnRlc3QoaXRlbSkpIHtcclxuICAgICAgICB3aWR0aCArPSAyLjU7XHJcbiAgICAgIH0gZWxzZSBpZiAoLyUvLnRlc3QoaXRlbSkpIHtcclxuICAgICAgICB3aWR0aCArPSA4O1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHdpZHRoICs9IDEwO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gd2lkdGggKiBmb250U2l6ZSAvIDEwO1xyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gZGF0YUNvbWJpbmUoc2VyaWVzKSB7XHJcbiAgcmV0dXJuIHNlcmllcy5yZWR1Y2UoZnVuY3Rpb24oYSwgYikge1xyXG4gICAgcmV0dXJuIChhLmRhdGEgPyBhLmRhdGEgOiBhKS5jb25jYXQoYi5kYXRhKTtcclxuICB9LCBbXSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRhdGFDb21iaW5lU3RhY2soc2VyaWVzLCBsZW4pIHtcclxuICB2YXIgc3VtID0gbmV3IEFycmF5KGxlbik7XHJcbiAgZm9yICh2YXIgaiA9IDA7IGogPCBzdW0ubGVuZ3RoOyBqKyspIHtcclxuICAgIHN1bVtqXSA9IDA7XHJcbiAgfVxyXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgc2VyaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBmb3IgKHZhciBqID0gMDsgaiA8IHN1bS5sZW5ndGg7IGorKykge1xyXG4gICAgICBzdW1bal0gKz0gc2VyaWVzW2ldLmRhdGFbal07XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBzZXJpZXMucmVkdWNlKGZ1bmN0aW9uKGEsIGIpIHtcclxuICAgIHJldHVybiAoYS5kYXRhID8gYS5kYXRhIDogYSkuY29uY2F0KGIuZGF0YSkuY29uY2F0KHN1bSk7XHJcbiAgfSwgW10pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRUb3VjaGVzKHRvdWNoZXMsIG9wdHMsIGUpIHtcclxuICBsZXQgeCwgeTtcclxuICBpZiAodG91Y2hlcy5jbGllbnRYKSB7XHJcbiAgICBpZiAob3B0cy5yb3RhdGUpIHtcclxuICAgICAgeSA9IG9wdHMuaGVpZ2h0IC0gdG91Y2hlcy5jbGllbnRYICogb3B0cy5waXg7XHJcbiAgICAgIHggPSAodG91Y2hlcy5wYWdlWSAtIGUuY3VycmVudFRhcmdldC5vZmZzZXRUb3AgLSAob3B0cy5oZWlnaHQgLyBvcHRzLnBpeCAvIDIpICogKG9wdHMucGl4IC0gMSkpICogb3B0cy5waXg7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB4ID0gdG91Y2hlcy5jbGllbnRYICogb3B0cy5waXg7XHJcbiAgICAgIHkgPSAodG91Y2hlcy5wYWdlWSAtIGUuY3VycmVudFRhcmdldC5vZmZzZXRUb3AgLSAob3B0cy5oZWlnaHQgLyBvcHRzLnBpeCAvIDIpICogKG9wdHMucGl4IC0gMSkpICogb3B0cy5waXg7XHJcbiAgICB9XHJcbiAgfSBlbHNlIHtcclxuICAgIGlmIChvcHRzLnJvdGF0ZSkge1xyXG4gICAgICB5ID0gb3B0cy5oZWlnaHQgLSB0b3VjaGVzLnggKiBvcHRzLnBpeDtcclxuICAgICAgeCA9IHRvdWNoZXMueSAqIG9wdHMucGl4O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgeCA9IHRvdWNoZXMueCAqIG9wdHMucGl4O1xyXG4gICAgICB5ID0gdG91Y2hlcy55ICogb3B0cy5waXg7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiB7XHJcbiAgICB4OiB4LFxyXG4gICAgeTogeVxyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0U2VyaWVzRGF0YUl0ZW0oc2VyaWVzLCBpbmRleCwgZ3JvdXApIHtcclxuICB2YXIgZGF0YSA9IFtdO1xyXG4gIHZhciBuZXdTZXJpZXMgPSBbXTtcclxuICB2YXIgaW5kZXhJc0FyciA9IGluZGV4LmNvbnN0cnVjdG9yLnRvU3RyaW5nKCkuaW5kZXhPZignQXJyYXknKSA+IC0xO1xyXG4gIGlmKGluZGV4SXNBcnIpe1xyXG4gICAgbGV0IHRlbXBTZXJpZXMgPSBmaWx0ZXJTZXJpZXMoc2VyaWVzKTtcclxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZ3JvdXAubGVuZ3RoOyBpKyspIHtcclxuICAgICAgbmV3U2VyaWVzLnB1c2godGVtcFNlcmllc1tncm91cFtpXV0pO1xyXG4gICAgfVxyXG4gIH1lbHNle1xyXG4gICAgbmV3U2VyaWVzID0gc2VyaWVzO1xyXG4gIH07XHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBuZXdTZXJpZXMubGVuZ3RoOyBpKyspIHtcclxuICAgIGxldCBpdGVtID0gbmV3U2VyaWVzW2ldO1xyXG4gICAgbGV0IHRtcGluZGV4ID0gLTE7XHJcbiAgICBpZihpbmRleElzQXJyKXtcclxuICAgICAgdG1waW5kZXggPSBpbmRleFtpXTtcclxuICAgIH1lbHNle1xyXG4gICAgICB0bXBpbmRleCA9IGluZGV4O1xyXG4gICAgfVxyXG4gICAgaWYgKGl0ZW0uZGF0YVt0bXBpbmRleF0gIT09IG51bGwgJiYgdHlwZW9mIGl0ZW0uZGF0YVt0bXBpbmRleF0gIT09ICd1bmRlZmluZWQnICYmIGl0ZW0uc2hvdykge1xyXG4gICAgICBsZXQgc2VyaWVzSXRlbSA9IHt9O1xyXG4gICAgICBzZXJpZXNJdGVtLmNvbG9yID0gaXRlbS5jb2xvcjtcclxuICAgICAgc2VyaWVzSXRlbS50eXBlID0gaXRlbS50eXBlO1xyXG4gICAgICBzZXJpZXNJdGVtLnN0eWxlID0gaXRlbS5zdHlsZTtcclxuICAgICAgc2VyaWVzSXRlbS5wb2ludFNoYXBlID0gaXRlbS5wb2ludFNoYXBlO1xyXG4gICAgICBzZXJpZXNJdGVtLmRpc2FibGVMZWdlbmQgPSBpdGVtLmRpc2FibGVMZWdlbmQ7XHJcbiAgICAgIHNlcmllc0l0ZW0ubmFtZSA9IGl0ZW0ubmFtZTtcclxuICAgICAgc2VyaWVzSXRlbS5zaG93ID0gaXRlbS5zaG93O1xyXG4gICAgICBzZXJpZXNJdGVtLmRhdGEgPSBpdGVtLmZvcm1hdHRlciA/IGl0ZW0uZm9ybWF0dGVyKGl0ZW0uZGF0YVt0bXBpbmRleF0pIDogaXRlbS5kYXRhW3RtcGluZGV4XTtcclxuICAgICAgZGF0YS5wdXNoKHNlcmllc0l0ZW0pO1xyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gZGF0YTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0TWF4VGV4dExpc3RMZW5ndGgobGlzdCwgZm9udFNpemUsIGNvbnRleHQpIHtcclxuICB2YXIgbGVuZ3RoTGlzdCA9IGxpc3QubWFwKGZ1bmN0aW9uKGl0ZW0pIHtcclxuICAgIHJldHVybiBtZWFzdXJlVGV4dChpdGVtLCBmb250U2l6ZSwgY29udGV4dCk7XHJcbiAgfSk7XHJcbiAgcmV0dXJuIE1hdGgubWF4LmFwcGx5KG51bGwsIGxlbmd0aExpc3QpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRSYWRhckNvb3JkaW5hdGVTZXJpZXMobGVuZ3RoKSB7XHJcbiAgdmFyIGVhY2hBbmdsZSA9IDIgKiBNYXRoLlBJIC8gbGVuZ3RoO1xyXG4gIHZhciBDb29yZGluYXRlU2VyaWVzID0gW107XHJcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykge1xyXG4gICAgQ29vcmRpbmF0ZVNlcmllcy5wdXNoKGVhY2hBbmdsZSAqIGkpO1xyXG4gIH1cclxuICByZXR1cm4gQ29vcmRpbmF0ZVNlcmllcy5tYXAoZnVuY3Rpb24oaXRlbSkge1xyXG4gICAgcmV0dXJuIC0xICogaXRlbSArIE1hdGguUEkgLyAyO1xyXG4gIH0pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRUb29sVGlwRGF0YShzZXJpZXNEYXRhLCBvcHRzLCBpbmRleCwgZ3JvdXAsIGNhdGVnb3JpZXMpIHtcclxuICB2YXIgb3B0aW9uID0gYXJndW1lbnRzLmxlbmd0aCA+IDUgJiYgYXJndW1lbnRzWzVdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbNV0gOiB7fTtcclxuICB2YXIgY2FsUG9pbnRzID0gb3B0cy5jaGFydERhdGEuY2FsUG9pbnRzP29wdHMuY2hhcnREYXRhLmNhbFBvaW50czpbXTtcclxuICBsZXQgcG9pbnRzID0ge307XHJcbiAgaWYoZ3JvdXAubGVuZ3RoID4gMCl7XHJcbiAgICBsZXQgZmlsdGVyUG9pbnRzID0gW107XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGdyb3VwLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGZpbHRlclBvaW50cy5wdXNoKGNhbFBvaW50c1tncm91cFtpXV0pXHJcbiAgICB9XHJcbiAgICBwb2ludHMgPSBmaWx0ZXJQb2ludHNbMF1baW5kZXhbMF1dO1xyXG4gIH1lbHNle1xyXG4gICAgcG9pbnRzID0gY2FsUG9pbnRzWzBdW2luZGV4XTtcclxuICB9O1xyXG4gIHZhciB0ZXh0TGlzdCA9IHNlcmllc0RhdGEubWFwKGZ1bmN0aW9uKGl0ZW0pIHtcclxuICAgIGxldCB0aXRsZVRleHQgPSBudWxsO1xyXG4gICAgaWYgKG9wdHMuY2F0ZWdvcmllcyAmJiBvcHRzLmNhdGVnb3JpZXMubGVuZ3RoPjApIHtcclxuICAgICAgdGl0bGVUZXh0ID0gY2F0ZWdvcmllc1tpbmRleF07XHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgdGV4dDogb3B0aW9uLmZvcm1hdHRlciA/IG9wdGlvbi5mb3JtYXR0ZXIoaXRlbSwgdGl0bGVUZXh0LCBpbmRleCwgb3B0cykgOiBpdGVtLm5hbWUgKyAnOiAnICsgaXRlbS5kYXRhLFxyXG4gICAgICBjb2xvcjogaXRlbS5jb2xvclxyXG4gICAgfTtcclxuICB9KTtcclxuICB2YXIgb2Zmc2V0ID0ge1xyXG4gICAgeDogTWF0aC5yb3VuZChwb2ludHMueCksXHJcbiAgICB5OiBNYXRoLnJvdW5kKHBvaW50cy55KVxyXG4gIH07XHJcbiAgcmV0dXJuIHtcclxuICAgIHRleHRMaXN0OiB0ZXh0TGlzdCxcclxuICAgIG9mZnNldDogb2Zmc2V0XHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0TWl4VG9vbFRpcERhdGEoc2VyaWVzRGF0YSwgb3B0cywgaW5kZXgsIGNhdGVnb3JpZXMpIHtcclxuICB2YXIgb3B0aW9uID0gYXJndW1lbnRzLmxlbmd0aCA+IDQgJiYgYXJndW1lbnRzWzRdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbNF0gOiB7fTtcclxuICB2YXIgcG9pbnRzID0gb3B0cy5jaGFydERhdGEueEF4aXNQb2ludHNbaW5kZXhdICsgb3B0cy5jaGFydERhdGEuZWFjaFNwYWNpbmcgLyAyO1xyXG4gIHZhciB0ZXh0TGlzdCA9IHNlcmllc0RhdGEubWFwKGZ1bmN0aW9uKGl0ZW0pIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHRleHQ6IG9wdGlvbi5mb3JtYXR0ZXIgPyBvcHRpb24uZm9ybWF0dGVyKGl0ZW0sIGNhdGVnb3JpZXNbaW5kZXhdLCBpbmRleCwgb3B0cykgOiBpdGVtLm5hbWUgKyAnOiAnICsgaXRlbS5kYXRhLFxyXG4gICAgICBjb2xvcjogaXRlbS5jb2xvcixcclxuICAgICAgZGlzYWJsZUxlZ2VuZDogaXRlbS5kaXNhYmxlTGVnZW5kID8gdHJ1ZSA6IGZhbHNlXHJcbiAgICB9O1xyXG4gIH0pO1xyXG4gIHRleHRMaXN0ID0gdGV4dExpc3QuZmlsdGVyKGZ1bmN0aW9uKGl0ZW0pIHtcclxuICAgIGlmIChpdGVtLmRpc2FibGVMZWdlbmQgIT09IHRydWUpIHtcclxuICAgICAgcmV0dXJuIGl0ZW07XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgdmFyIG9mZnNldCA9IHtcclxuICAgIHg6IE1hdGgucm91bmQocG9pbnRzKSxcclxuICAgIHk6IDBcclxuICB9O1xyXG4gIHJldHVybiB7XHJcbiAgICB0ZXh0TGlzdDogdGV4dExpc3QsXHJcbiAgICBvZmZzZXQ6IG9mZnNldFxyXG4gIH07XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldENhbmRsZVRvb2xUaXBEYXRhKHNlcmllcywgc2VyaWVzRGF0YSwgb3B0cywgaW5kZXgsIGNhdGVnb3JpZXMsIGV4dHJhKSB7XHJcbiAgdmFyIG9wdGlvbiA9IGFyZ3VtZW50cy5sZW5ndGggPiA2ICYmIGFyZ3VtZW50c1s2XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzZdIDoge307XHJcbiAgdmFyIGNhbFBvaW50cyA9IG9wdHMuY2hhcnREYXRhLmNhbFBvaW50cztcclxuICBsZXQgdXBDb2xvciA9IGV4dHJhLmNvbG9yLnVwRmlsbDtcclxuICBsZXQgZG93bkNvbG9yID0gZXh0cmEuY29sb3IuZG93bkZpbGw7XHJcbiAgLy/popzoibLpobrluo/kuLrlvIDnm5jvvIzmlLbnm5jvvIzmnIDkvY7vvIzmnIDpq5hcclxuICBsZXQgY29sb3IgPSBbdXBDb2xvciwgdXBDb2xvciwgZG93bkNvbG9yLCB1cENvbG9yXTtcclxuICB2YXIgdGV4dExpc3QgPSBbXTtcclxuICBzZXJpZXNEYXRhLm1hcChmdW5jdGlvbihpdGVtKSB7XHJcbiAgICBpZiAoaW5kZXggPT0gMCkge1xyXG4gICAgICBpZiAoaXRlbS5kYXRhWzFdIC0gaXRlbS5kYXRhWzBdIDwgMCkge1xyXG4gICAgICAgIGNvbG9yWzFdID0gZG93bkNvbG9yO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbG9yWzFdID0gdXBDb2xvcjtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKGl0ZW0uZGF0YVswXSA8IHNlcmllc1tpbmRleCAtIDFdWzFdKSB7XHJcbiAgICAgICAgY29sb3JbMF0gPSBkb3duQ29sb3I7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGl0ZW0uZGF0YVsxXSA8IGl0ZW0uZGF0YVswXSkge1xyXG4gICAgICAgIGNvbG9yWzFdID0gZG93bkNvbG9yO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChpdGVtLmRhdGFbMl0gPiBzZXJpZXNbaW5kZXggLSAxXVsxXSkge1xyXG4gICAgICAgIGNvbG9yWzJdID0gdXBDb2xvcjtcclxuICAgICAgfVxyXG4gICAgICBpZiAoaXRlbS5kYXRhWzNdIDwgc2VyaWVzW2luZGV4IC0gMV1bMV0pIHtcclxuICAgICAgICBjb2xvclszXSA9IGRvd25Db2xvcjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgbGV0IHRleHQxID0ge1xyXG4gICAgICB0ZXh0OiAn5byA55uY77yaJyArIGl0ZW0uZGF0YVswXSxcclxuICAgICAgY29sb3I6IGNvbG9yWzBdXHJcbiAgICB9O1xyXG4gICAgbGV0IHRleHQyID0ge1xyXG4gICAgICB0ZXh0OiAn5pS255uY77yaJyArIGl0ZW0uZGF0YVsxXSxcclxuICAgICAgY29sb3I6IGNvbG9yWzFdXHJcbiAgICB9O1xyXG4gICAgbGV0IHRleHQzID0ge1xyXG4gICAgICB0ZXh0OiAn5pyA5L2O77yaJyArIGl0ZW0uZGF0YVsyXSxcclxuICAgICAgY29sb3I6IGNvbG9yWzJdXHJcbiAgICB9O1xyXG4gICAgbGV0IHRleHQ0ID0ge1xyXG4gICAgICB0ZXh0OiAn5pyA6auY77yaJyArIGl0ZW0uZGF0YVszXSxcclxuICAgICAgY29sb3I6IGNvbG9yWzNdXHJcbiAgICB9O1xyXG4gICAgdGV4dExpc3QucHVzaCh0ZXh0MSwgdGV4dDIsIHRleHQzLCB0ZXh0NCk7XHJcbiAgfSk7XHJcbiAgdmFyIHZhbGlkQ2FsUG9pbnRzID0gW107XHJcbiAgdmFyIG9mZnNldCA9IHtcclxuICAgIHg6IDAsXHJcbiAgICB5OiAwXHJcbiAgfTtcclxuICBmb3IgKGxldCBpID0gMDsgaSA8IGNhbFBvaW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgbGV0IHBvaW50cyA9IGNhbFBvaW50c1tpXTtcclxuICAgIGlmICh0eXBlb2YgcG9pbnRzW2luZGV4XSAhPT0gJ3VuZGVmaW5lZCcgJiYgcG9pbnRzW2luZGV4XSAhPT0gbnVsbCkge1xyXG4gICAgICB2YWxpZENhbFBvaW50cy5wdXNoKHBvaW50c1tpbmRleF0pO1xyXG4gICAgfVxyXG4gIH1cclxuICBvZmZzZXQueCA9IE1hdGgucm91bmQodmFsaWRDYWxQb2ludHNbMF1bMF0ueCk7XHJcbiAgcmV0dXJuIHtcclxuICAgIHRleHRMaXN0OiB0ZXh0TGlzdCxcclxuICAgIG9mZnNldDogb2Zmc2V0XHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gZmlsdGVyU2VyaWVzKHNlcmllcykge1xyXG4gIGxldCB0ZW1wU2VyaWVzID0gW107XHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXJpZXMubGVuZ3RoOyBpKyspIHtcclxuICAgIGlmIChzZXJpZXNbaV0uc2hvdyA9PSB0cnVlKSB7XHJcbiAgICAgIHRlbXBTZXJpZXMucHVzaChzZXJpZXNbaV0pXHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiB0ZW1wU2VyaWVzO1xyXG59XHJcblxyXG5mdW5jdGlvbiBmaW5kQ3VycmVudEluZGV4KGN1cnJlbnRQb2ludHMsIGNhbFBvaW50cywgb3B0cywgY29uZmlnKSB7XHJcbiAgdmFyIG9mZnNldCA9IGFyZ3VtZW50cy5sZW5ndGggPiA0ICYmIGFyZ3VtZW50c1s0XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzRdIDogMDtcclxuICB2YXIgY3VycmVudD17IGluZGV4Oi0xLCBncm91cDpbXSB9O1xyXG4gIHZhciBzcGFjaW5nID0gb3B0cy5jaGFydERhdGEuZWFjaFNwYWNpbmcgLyAyO1xyXG4gIGxldCB4QXhpc1BvaW50cyA9IFtdO1xyXG4gIGlmIChjYWxQb2ludHMgJiYgY2FsUG9pbnRzLmxlbmd0aCA+IDApIHtcclxuICAgIGlmICghb3B0cy5jYXRlZ29yaWVzKSB7XHJcbiAgICAgIHNwYWNpbmcgPSAwO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIGZvciAobGV0IGkgPSAxOyBpIDwgb3B0cy5jaGFydERhdGEueEF4aXNQb2ludHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICB4QXhpc1BvaW50cy5wdXNoKG9wdHMuY2hhcnREYXRhLnhBeGlzUG9pbnRzW2ldIC0gc3BhY2luZyk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKChvcHRzLnR5cGUgPT0gJ2xpbmUnIHx8IG9wdHMudHlwZSA9PSAnYXJlYScpICYmIG9wdHMueEF4aXMuYm91bmRhcnlHYXAgPT0gJ2p1c3RpZnknKSB7XHJcbiAgICAgICAgeEF4aXNQb2ludHMgPSBvcHRzLmNoYXJ0RGF0YS54QXhpc1BvaW50cztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKGlzSW5FeGFjdENoYXJ0QXJlYShjdXJyZW50UG9pbnRzLCBvcHRzLCBjb25maWcpKSB7XHJcbiAgICAgIGlmICghb3B0cy5jYXRlZ29yaWVzKSB7XHJcbiAgICAgICAgbGV0IHRpbWVQb2ludHMgPSBBcnJheShjYWxQb2ludHMubGVuZ3RoKTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNhbFBvaW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgdGltZVBvaW50c1tpXSA9IEFycmF5KGNhbFBvaW50c1tpXS5sZW5ndGgpXHJcbiAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGNhbFBvaW50c1tpXS5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICB0aW1lUG9pbnRzW2ldW2pdID0gKE1hdGguYWJzKGNhbFBvaW50c1tpXVtqXS54IC0gY3VycmVudFBvaW50cy54KSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICBsZXQgcG9pbnRWYWx1ZSA9ICBBcnJheSh0aW1lUG9pbnRzLmxlbmd0aCk7XHJcbiAgICAgICAgbGV0IHBvaW50SW5kZXggPSAgQXJyYXkodGltZVBvaW50cy5sZW5ndGgpO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGltZVBvaW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgcG9pbnRWYWx1ZVtpXSA9IE1hdGgubWluLmFwcGx5KG51bGwsIHRpbWVQb2ludHNbaV0pO1xyXG4gICAgICAgICAgcG9pbnRJbmRleFtpXSA9IHRpbWVQb2ludHNbaV0uaW5kZXhPZihwb2ludFZhbHVlW2ldKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IG1pblZhbHVlID0gTWF0aC5taW4uYXBwbHkobnVsbCwgcG9pbnRWYWx1ZSk7XHJcbiAgICAgICAgY3VycmVudC5pbmRleCA9IFtdO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcG9pbnRWYWx1ZS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgaWYocG9pbnRWYWx1ZVtpXSA9PSBtaW5WYWx1ZSl7XHJcbiAgICAgICAgICAgIGN1cnJlbnQuZ3JvdXAucHVzaChpKTtcclxuICAgICAgICAgICAgY3VycmVudC5pbmRleC5wdXNoKHBvaW50SW5kZXhbaV0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIHhBeGlzUG9pbnRzLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgICAgICAgIGlmIChjdXJyZW50UG9pbnRzLnggKyBvZmZzZXQgKyBzcGFjaW5nID4gaXRlbSkge1xyXG4gICAgICAgICAgICBjdXJyZW50LmluZGV4ID0gaW5kZXg7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIGN1cnJlbnQ7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZpbmRCYXJDaGFydEN1cnJlbnRJbmRleChjdXJyZW50UG9pbnRzLCBjYWxQb2ludHMsIG9wdHMsIGNvbmZpZykge1xyXG4gIHZhciBvZmZzZXQgPSBhcmd1bWVudHMubGVuZ3RoID4gNCAmJiBhcmd1bWVudHNbNF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s0XSA6IDA7XHJcbiAgdmFyIGN1cnJlbnQ9eyBpbmRleDotMSwgZ3JvdXA6W10gfTtcclxuICB2YXIgc3BhY2luZyA9IG9wdHMuY2hhcnREYXRhLmVhY2hTcGFjaW5nIC8gMjtcclxuICBsZXQgeUF4aXNQb2ludHMgPSBvcHRzLmNoYXJ0RGF0YS55QXhpc1BvaW50cztcclxuICBpZiAoY2FsUG9pbnRzICYmIGNhbFBvaW50cy5sZW5ndGggPiAwKSB7XHJcbiAgICBpZiAoaXNJbkV4YWN0Q2hhcnRBcmVhKGN1cnJlbnRQb2ludHMsIG9wdHMsIGNvbmZpZykpIHtcclxuICAgICAgeUF4aXNQb2ludHMuZm9yRWFjaChmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgICAgIGlmIChjdXJyZW50UG9pbnRzLnkgKyBvZmZzZXQgKyBzcGFjaW5nID4gaXRlbSkge1xyXG4gICAgICAgICAgY3VycmVudC5pbmRleCA9IGluZGV4O1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBjdXJyZW50O1xyXG59XHJcblxyXG5mdW5jdGlvbiBmaW5kTGVnZW5kSW5kZXgoY3VycmVudFBvaW50cywgbGVnZW5kRGF0YSwgb3B0cykge1xyXG4gIGxldCBjdXJyZW50SW5kZXggPSAtMTtcclxuICBsZXQgZ2FwID0gMDtcclxuICBpZiAoaXNJbkV4YWN0TGVnZW5kQXJlYShjdXJyZW50UG9pbnRzLCBsZWdlbmREYXRhLmFyZWEpKSB7XHJcbiAgICBsZXQgcG9pbnRzID0gbGVnZW5kRGF0YS5wb2ludHM7XHJcbiAgICBsZXQgaW5kZXggPSAtMTtcclxuICAgIGZvciAobGV0IGkgPSAwLCBsZW4gPSBwb2ludHMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcclxuICAgICAgbGV0IGl0ZW0gPSBwb2ludHNbaV07XHJcbiAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgaXRlbS5sZW5ndGg7IGorKykge1xyXG4gICAgICAgIGluZGV4ICs9IDE7XHJcbiAgICAgICAgbGV0IGFyZWEgPSBpdGVtW2pdWydhcmVhJ107XHJcbiAgICAgICAgaWYgKGFyZWEgJiYgY3VycmVudFBvaW50cy54ID4gYXJlYVswXSAtIGdhcCAmJiBjdXJyZW50UG9pbnRzLnggPCBhcmVhWzJdICsgZ2FwICYmIGN1cnJlbnRQb2ludHMueSA+IGFyZWFbMV0gLSBnYXAgJiYgY3VycmVudFBvaW50cy55IDwgYXJlYVszXSArIGdhcCkge1xyXG4gICAgICAgICAgY3VycmVudEluZGV4ID0gaW5kZXg7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBjdXJyZW50SW5kZXg7XHJcbiAgfVxyXG4gIHJldHVybiBjdXJyZW50SW5kZXg7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzSW5FeGFjdExlZ2VuZEFyZWEoY3VycmVudFBvaW50cywgYXJlYSkge1xyXG4gIHJldHVybiBjdXJyZW50UG9pbnRzLnggPiBhcmVhLnN0YXJ0LnggJiYgY3VycmVudFBvaW50cy54IDwgYXJlYS5lbmQueCAmJiBjdXJyZW50UG9pbnRzLnkgPiBhcmVhLnN0YXJ0LnkgJiYgY3VycmVudFBvaW50cy55IDwgYXJlYS5lbmQueTtcclxufVxyXG5cclxuZnVuY3Rpb24gaXNJbkV4YWN0Q2hhcnRBcmVhKGN1cnJlbnRQb2ludHMsIG9wdHMsIGNvbmZpZykge1xyXG4gIHJldHVybiBjdXJyZW50UG9pbnRzLnggPD0gb3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXSArIDEwICYmIGN1cnJlbnRQb2ludHMueCA+PSBvcHRzLmFyZWFbM10gLSAxMCAmJiBjdXJyZW50UG9pbnRzLnkgPj0gb3B0cy5hcmVhWzBdICYmIGN1cnJlbnRQb2ludHMueSA8PSBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXTtcclxufVxyXG5cclxuZnVuY3Rpb24gZmluZFJhZGFyQ2hhcnRDdXJyZW50SW5kZXgoY3VycmVudFBvaW50cywgcmFkYXJEYXRhLCBjb3VudCkge1xyXG4gIHZhciBlYWNoQW5nbGVBcmVhID0gMiAqIE1hdGguUEkgLyBjb3VudDtcclxuICB2YXIgY3VycmVudEluZGV4ID0gLTE7XHJcbiAgaWYgKGlzSW5FeGFjdFBpZUNoYXJ0QXJlYShjdXJyZW50UG9pbnRzLCByYWRhckRhdGEuY2VudGVyLCByYWRhckRhdGEucmFkaXVzKSkge1xyXG4gICAgdmFyIGZpeEFuZ2xlID0gZnVuY3Rpb24gZml4QW5nbGUoYW5nbGUpIHtcclxuICAgICAgaWYgKGFuZ2xlIDwgMCkge1xyXG4gICAgICAgIGFuZ2xlICs9IDIgKiBNYXRoLlBJO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChhbmdsZSA+IDIgKiBNYXRoLlBJKSB7XHJcbiAgICAgICAgYW5nbGUgLT0gMiAqIE1hdGguUEk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIGFuZ2xlO1xyXG4gICAgfTtcclxuICAgIHZhciBhbmdsZSA9IE1hdGguYXRhbjIocmFkYXJEYXRhLmNlbnRlci55IC0gY3VycmVudFBvaW50cy55LCBjdXJyZW50UG9pbnRzLnggLSByYWRhckRhdGEuY2VudGVyLngpO1xyXG4gICAgYW5nbGUgPSAtMSAqIGFuZ2xlO1xyXG4gICAgaWYgKGFuZ2xlIDwgMCkge1xyXG4gICAgICBhbmdsZSArPSAyICogTWF0aC5QSTtcclxuICAgIH1cclxuICAgIHZhciBhbmdsZUxpc3QgPSByYWRhckRhdGEuYW5nbGVMaXN0Lm1hcChmdW5jdGlvbihpdGVtKSB7XHJcbiAgICAgIGl0ZW0gPSBmaXhBbmdsZSgtMSAqIGl0ZW0pO1xyXG4gICAgICByZXR1cm4gaXRlbTtcclxuICAgIH0pO1xyXG4gICAgYW5nbGVMaXN0LmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgICAgdmFyIHJhbmdlU3RhcnQgPSBmaXhBbmdsZShpdGVtIC0gZWFjaEFuZ2xlQXJlYSAvIDIpO1xyXG4gICAgICB2YXIgcmFuZ2VFbmQgPSBmaXhBbmdsZShpdGVtICsgZWFjaEFuZ2xlQXJlYSAvIDIpO1xyXG4gICAgICBpZiAocmFuZ2VFbmQgPCByYW5nZVN0YXJ0KSB7XHJcbiAgICAgICAgcmFuZ2VFbmQgKz0gMiAqIE1hdGguUEk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGFuZ2xlID49IHJhbmdlU3RhcnQgJiYgYW5nbGUgPD0gcmFuZ2VFbmQgfHwgYW5nbGUgKyAyICogTWF0aC5QSSA+PSByYW5nZVN0YXJ0ICYmIGFuZ2xlICsgMiAqIE1hdGguUEkgPD0gcmFuZ2VFbmQpIHtcclxuICAgICAgICBjdXJyZW50SW5kZXggPSBpbmRleDtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHJldHVybiBjdXJyZW50SW5kZXg7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZpbmRGdW5uZWxDaGFydEN1cnJlbnRJbmRleChjdXJyZW50UG9pbnRzLCBmdW5uZWxEYXRhKSB7XHJcbiAgdmFyIGN1cnJlbnRJbmRleCA9IC0xO1xyXG4gIGZvciAodmFyIGkgPSAwLCBsZW4gPSBmdW5uZWxEYXRhLnNlcmllcy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xyXG4gICAgdmFyIGl0ZW0gPSBmdW5uZWxEYXRhLnNlcmllc1tpXTtcclxuICAgIGlmIChjdXJyZW50UG9pbnRzLnggPiBpdGVtLmZ1bm5lbEFyZWFbMF0gJiYgY3VycmVudFBvaW50cy54IDwgaXRlbS5mdW5uZWxBcmVhWzJdICYmIGN1cnJlbnRQb2ludHMueSA+IGl0ZW0uZnVubmVsQXJlYVsxXSAmJiBjdXJyZW50UG9pbnRzLnkgPCBpdGVtLmZ1bm5lbEFyZWFbM10pIHtcclxuICAgICAgY3VycmVudEluZGV4ID0gaTtcclxuICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBjdXJyZW50SW5kZXg7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZpbmRXb3JkQ2hhcnRDdXJyZW50SW5kZXgoY3VycmVudFBvaW50cywgd29yZERhdGEpIHtcclxuICB2YXIgY3VycmVudEluZGV4ID0gLTE7XHJcbiAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IHdvcmREYXRhLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XHJcbiAgICB2YXIgaXRlbSA9IHdvcmREYXRhW2ldO1xyXG4gICAgaWYgKGN1cnJlbnRQb2ludHMueCA+IGl0ZW0uYXJlYVswXSAmJiBjdXJyZW50UG9pbnRzLnggPCBpdGVtLmFyZWFbMl0gJiYgY3VycmVudFBvaW50cy55ID4gaXRlbS5hcmVhWzFdICYmIGN1cnJlbnRQb2ludHMueSA8IGl0ZW0uYXJlYVszXSkge1xyXG4gICAgICBjdXJyZW50SW5kZXggPSBpO1xyXG4gICAgICBicmVhaztcclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIGN1cnJlbnRJbmRleDtcclxufVxyXG5cclxuZnVuY3Rpb24gZmluZE1hcENoYXJ0Q3VycmVudEluZGV4KGN1cnJlbnRQb2ludHMsIG9wdHMpIHtcclxuICB2YXIgY3VycmVudEluZGV4ID0gLTE7XHJcbiAgdmFyIGNEYXRhID0gb3B0cy5jaGFydERhdGEubWFwRGF0YTtcclxuICB2YXIgZGF0YSA9IG9wdHMuc2VyaWVzO1xyXG4gIHZhciB0bXAgPSBwb2ludFRvQ29vcmRpbmF0ZShjdXJyZW50UG9pbnRzLnksIGN1cnJlbnRQb2ludHMueCwgY0RhdGEuYm91bmRzLCBjRGF0YS5zY2FsZSwgY0RhdGEueG9mZnNldCwgY0RhdGEueW9mZnNldCk7XHJcbiAgdmFyIHBvaSA9IFt0bXAueCwgdG1wLnldO1xyXG4gIGZvciAodmFyIGkgPSAwLCBsZW4gPSBkYXRhLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XHJcbiAgICB2YXIgaXRlbSA9IGRhdGFbaV0uZ2VvbWV0cnkuY29vcmRpbmF0ZXM7XHJcbiAgICBpZiAoaXNQb2lXaXRoaW5Qb2x5KHBvaSwgaXRlbSwgb3B0cy5jaGFydERhdGEubWFwRGF0YS5tZXJjYXRvcikpIHtcclxuICAgICAgY3VycmVudEluZGV4ID0gaTtcclxuICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBjdXJyZW50SW5kZXg7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZpbmRSb3NlQ2hhcnRDdXJyZW50SW5kZXgoY3VycmVudFBvaW50cywgcGllRGF0YSwgb3B0cykge1xyXG4gIHZhciBjdXJyZW50SW5kZXggPSAtMTtcclxuICB2YXIgc2VyaWVzID0gZ2V0Um9zZURhdGFQb2ludHMob3B0cy5fc2VyaWVzXywgb3B0cy5leHRyYS5yb3NlLnR5cGUsIHBpZURhdGEucmFkaXVzLCBwaWVEYXRhLnJhZGl1cyk7XHJcbiAgaWYgKHBpZURhdGEgJiYgcGllRGF0YS5jZW50ZXIgJiYgaXNJbkV4YWN0UGllQ2hhcnRBcmVhKGN1cnJlbnRQb2ludHMsIHBpZURhdGEuY2VudGVyLCBwaWVEYXRhLnJhZGl1cykpIHtcclxuICAgIHZhciBhbmdsZSA9IE1hdGguYXRhbjIocGllRGF0YS5jZW50ZXIueSAtIGN1cnJlbnRQb2ludHMueSwgY3VycmVudFBvaW50cy54IC0gcGllRGF0YS5jZW50ZXIueCk7XHJcbiAgICBhbmdsZSA9IC1hbmdsZTtcclxuICAgIGlmKG9wdHMuZXh0cmEucm9zZSAmJiBvcHRzLmV4dHJhLnJvc2Uub2Zmc2V0QW5nbGUpe1xyXG4gICAgICBhbmdsZSA9IGFuZ2xlIC0gb3B0cy5leHRyYS5yb3NlLm9mZnNldEFuZ2xlICogTWF0aC5QSSAvIDE4MDtcclxuICAgIH1cclxuICAgIGZvciAodmFyIGkgPSAwLCBsZW4gPSBzZXJpZXMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcclxuICAgICAgaWYgKGlzSW5BbmdsZVJhbmdlKGFuZ2xlLCBzZXJpZXNbaV0uX3N0YXJ0Xywgc2VyaWVzW2ldLl9zdGFydF8gKyBzZXJpZXNbaV0uX3Jvc2VfcHJvcG9ydGlvbl8gKiAyICogTWF0aC5QSSkpIHtcclxuICAgICAgICBjdXJyZW50SW5kZXggPSBpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBjdXJyZW50SW5kZXg7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZpbmRQaWVDaGFydEN1cnJlbnRJbmRleChjdXJyZW50UG9pbnRzLCBwaWVEYXRhLCBvcHRzKSB7XHJcbiAgdmFyIGN1cnJlbnRJbmRleCA9IC0xO1xyXG4gIHZhciBzZXJpZXMgPSBnZXRQaWVEYXRhUG9pbnRzKHBpZURhdGEuc2VyaWVzKTtcclxuICBpZiAocGllRGF0YSAmJiBwaWVEYXRhLmNlbnRlciAmJiBpc0luRXhhY3RQaWVDaGFydEFyZWEoY3VycmVudFBvaW50cywgcGllRGF0YS5jZW50ZXIsIHBpZURhdGEucmFkaXVzKSkge1xyXG4gICAgdmFyIGFuZ2xlID0gTWF0aC5hdGFuMihwaWVEYXRhLmNlbnRlci55IC0gY3VycmVudFBvaW50cy55LCBjdXJyZW50UG9pbnRzLnggLSBwaWVEYXRhLmNlbnRlci54KTtcclxuICAgIGFuZ2xlID0gLWFuZ2xlO1xyXG4gICAgaWYob3B0cy5leHRyYS5waWUgJiYgb3B0cy5leHRyYS5waWUub2Zmc2V0QW5nbGUpe1xyXG4gICAgICBhbmdsZSA9IGFuZ2xlIC0gb3B0cy5leHRyYS5waWUub2Zmc2V0QW5nbGUgKiBNYXRoLlBJIC8gMTgwO1xyXG4gICAgfVxyXG4gICAgaWYob3B0cy5leHRyYS5yaW5nICYmIG9wdHMuZXh0cmEucmluZy5vZmZzZXRBbmdsZSl7XHJcbiAgICAgIGFuZ2xlID0gYW5nbGUgLSBvcHRzLmV4dHJhLnJpbmcub2Zmc2V0QW5nbGUgKiBNYXRoLlBJIC8gMTgwO1xyXG4gICAgfVxyXG4gICAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IHNlcmllcy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xyXG4gICAgICBpZiAoaXNJbkFuZ2xlUmFuZ2UoYW5nbGUsIHNlcmllc1tpXS5fc3RhcnRfLCBzZXJpZXNbaV0uX3N0YXJ0XyArIHNlcmllc1tpXS5fcHJvcG9ydGlvbl8gKiAyICogTWF0aC5QSSkpIHtcclxuICAgICAgICBjdXJyZW50SW5kZXggPSBpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBjdXJyZW50SW5kZXg7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzSW5FeGFjdFBpZUNoYXJ0QXJlYShjdXJyZW50UG9pbnRzLCBjZW50ZXIsIHJhZGl1cykge1xyXG4gIHJldHVybiBNYXRoLnBvdyhjdXJyZW50UG9pbnRzLnggLSBjZW50ZXIueCwgMikgKyBNYXRoLnBvdyhjdXJyZW50UG9pbnRzLnkgLSBjZW50ZXIueSwgMikgPD0gTWF0aC5wb3cocmFkaXVzLCAyKTtcclxufVxyXG5cclxuZnVuY3Rpb24gc3BsaXRQb2ludHMocG9pbnRzLGVhY2hTZXJpZXMpIHtcclxuICB2YXIgbmV3UG9pbnRzID0gW107XHJcbiAgdmFyIGl0ZW1zID0gW107XHJcbiAgcG9pbnRzLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgIGlmKGVhY2hTZXJpZXMuY29ubmVjdE51bGxzKXtcclxuICAgICAgaWYgKGl0ZW0gIT09IG51bGwpIHtcclxuICAgICAgICBpdGVtcy5wdXNoKGl0ZW0pO1xyXG4gICAgICB9XHJcbiAgICB9ZWxzZXtcclxuICAgICAgaWYgKGl0ZW0gIT09IG51bGwpIHtcclxuICAgICAgICBpdGVtcy5wdXNoKGl0ZW0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmIChpdGVtcy5sZW5ndGgpIHtcclxuICAgICAgICAgIG5ld1BvaW50cy5wdXNoKGl0ZW1zKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaXRlbXMgPSBbXTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgXHJcbiAgfSk7XHJcbiAgaWYgKGl0ZW1zLmxlbmd0aCkge1xyXG4gICAgbmV3UG9pbnRzLnB1c2goaXRlbXMpO1xyXG4gIH1cclxuICByZXR1cm4gbmV3UG9pbnRzO1xyXG59XHJcblxyXG5mdW5jdGlvbiBjYWxMZWdlbmREYXRhKHNlcmllcywgb3B0cywgY29uZmlnLCBjaGFydERhdGEsIGNvbnRleHQpIHtcclxuICBsZXQgbGVnZW5kRGF0YSA9IHtcclxuICAgIGFyZWE6IHtcclxuICAgICAgc3RhcnQ6IHtcclxuICAgICAgICB4OiAwLFxyXG4gICAgICAgIHk6IDBcclxuICAgICAgfSxcclxuICAgICAgZW5kOiB7XHJcbiAgICAgICAgeDogMCxcclxuICAgICAgICB5OiAwXHJcbiAgICAgIH0sXHJcbiAgICAgIHdpZHRoOiAwLFxyXG4gICAgICBoZWlnaHQ6IDAsXHJcbiAgICAgIHdob2xlV2lkdGg6IDAsXHJcbiAgICAgIHdob2xlSGVpZ2h0OiAwXHJcbiAgICB9LFxyXG4gICAgcG9pbnRzOiBbXSxcclxuICAgIHdpZHRoQXJyOiBbXSxcclxuICAgIGhlaWdodEFycjogW11cclxuICB9O1xyXG4gIGlmIChvcHRzLmxlZ2VuZC5zaG93ID09PSBmYWxzZSkge1xyXG4gICAgY2hhcnREYXRhLmxlZ2VuZERhdGEgPSBsZWdlbmREYXRhO1xyXG4gICAgcmV0dXJuIGxlZ2VuZERhdGE7XHJcbiAgfVxyXG4gIGxldCBwYWRkaW5nID0gb3B0cy5sZWdlbmQucGFkZGluZyAqIG9wdHMucGl4O1xyXG4gIGxldCBtYXJnaW4gPSBvcHRzLmxlZ2VuZC5tYXJnaW4gKiBvcHRzLnBpeDtcclxuICBsZXQgZm9udFNpemUgPSBvcHRzLmxlZ2VuZC5mb250U2l6ZSA/IG9wdHMubGVnZW5kLmZvbnRTaXplICogb3B0cy5waXggOiBjb25maWcuZm9udFNpemU7XHJcbiAgbGV0IHNoYXBlV2lkdGggPSAxNSAqIG9wdHMucGl4O1xyXG4gIGxldCBzaGFwZVJpZ2h0ID0gNSAqIG9wdHMucGl4O1xyXG4gIGxldCBsaW5lSGVpZ2h0ID0gTWF0aC5tYXgob3B0cy5sZWdlbmQubGluZUhlaWdodCAqIG9wdHMucGl4LCBmb250U2l6ZSk7XHJcbiAgaWYgKG9wdHMubGVnZW5kLnBvc2l0aW9uID09ICd0b3AnIHx8IG9wdHMubGVnZW5kLnBvc2l0aW9uID09ICdib3R0b20nKSB7XHJcbiAgICBsZXQgbGVnZW5kTGlzdCA9IFtdO1xyXG4gICAgbGV0IHdpZHRoQ291bnQgPSAwO1xyXG4gICAgbGV0IHdpZHRoQ291bnRBcnIgPSBbXTtcclxuICAgIGxldCBjdXJyZW50Um93ID0gW107XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNlcmllcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBsZXQgaXRlbSA9IHNlcmllc1tpXTtcclxuICAgICAgbGV0IGl0ZW1XaWR0aCA9IHNoYXBlV2lkdGggKyBzaGFwZVJpZ2h0ICsgbWVhc3VyZVRleHQoaXRlbS5uYW1lIHx8ICd1bmRlZmluZWQnLCBmb250U2l6ZSwgY29udGV4dCkgKyBvcHRzLmxlZ2VuZC5pdGVtR2FwICogb3B0cy5waXg7XHJcbiAgICAgIGlmICh3aWR0aENvdW50ICsgaXRlbVdpZHRoID4gb3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXSAtIG9wdHMuYXJlYVszXSkge1xyXG4gICAgICAgIGxlZ2VuZExpc3QucHVzaChjdXJyZW50Um93KTtcclxuICAgICAgICB3aWR0aENvdW50QXJyLnB1c2god2lkdGhDb3VudCAtIG9wdHMubGVnZW5kLml0ZW1HYXAgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgd2lkdGhDb3VudCA9IGl0ZW1XaWR0aDtcclxuICAgICAgICBjdXJyZW50Um93ID0gW2l0ZW1dO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHdpZHRoQ291bnQgKz0gaXRlbVdpZHRoO1xyXG4gICAgICAgIGN1cnJlbnRSb3cucHVzaChpdGVtKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKGN1cnJlbnRSb3cubGVuZ3RoKSB7XHJcbiAgICAgIGxlZ2VuZExpc3QucHVzaChjdXJyZW50Um93KTtcclxuICAgICAgd2lkdGhDb3VudEFyci5wdXNoKHdpZHRoQ291bnQgLSBvcHRzLmxlZ2VuZC5pdGVtR2FwICogb3B0cy5waXgpO1xyXG4gICAgICBsZWdlbmREYXRhLndpZHRoQXJyID0gd2lkdGhDb3VudEFycjtcclxuICAgICAgbGV0IGxlZ2VuZFdpZHRoID0gTWF0aC5tYXguYXBwbHkobnVsbCwgd2lkdGhDb3VudEFycik7XHJcbiAgICAgIHN3aXRjaCAob3B0cy5sZWdlbmQuZmxvYXQpIHtcclxuICAgICAgICBjYXNlICdsZWZ0JzpcclxuICAgICAgICAgIGxlZ2VuZERhdGEuYXJlYS5zdGFydC54ID0gb3B0cy5hcmVhWzNdO1xyXG4gICAgICAgICAgbGVnZW5kRGF0YS5hcmVhLmVuZC54ID0gb3B0cy5hcmVhWzNdICsgbGVnZW5kV2lkdGggKyAyICogcGFkZGluZztcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ3JpZ2h0JzpcclxuICAgICAgICAgIGxlZ2VuZERhdGEuYXJlYS5zdGFydC54ID0gb3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXSAtIGxlZ2VuZFdpZHRoIC0gMiAqIHBhZGRpbmc7XHJcbiAgICAgICAgICBsZWdlbmREYXRhLmFyZWEuZW5kLnggPSBvcHRzLndpZHRoIC0gb3B0cy5hcmVhWzFdO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIGxlZ2VuZERhdGEuYXJlYS5zdGFydC54ID0gKG9wdHMud2lkdGggLSBsZWdlbmRXaWR0aCkgLyAyIC0gcGFkZGluZztcclxuICAgICAgICAgIGxlZ2VuZERhdGEuYXJlYS5lbmQueCA9IChvcHRzLndpZHRoICsgbGVnZW5kV2lkdGgpIC8gMiArIHBhZGRpbmc7XHJcbiAgICAgIH1cclxuICAgICAgbGVnZW5kRGF0YS5hcmVhLndpZHRoID0gbGVnZW5kV2lkdGggKyAyICogcGFkZGluZztcclxuICAgICAgbGVnZW5kRGF0YS5hcmVhLndob2xlV2lkdGggPSBsZWdlbmRXaWR0aCArIDIgKiBwYWRkaW5nO1xyXG4gICAgICBsZWdlbmREYXRhLmFyZWEuaGVpZ2h0ID0gbGVnZW5kTGlzdC5sZW5ndGggKiBsaW5lSGVpZ2h0ICsgMiAqIHBhZGRpbmc7XHJcbiAgICAgIGxlZ2VuZERhdGEuYXJlYS53aG9sZUhlaWdodCA9IGxlZ2VuZExpc3QubGVuZ3RoICogbGluZUhlaWdodCArIDIgKiBwYWRkaW5nICsgMiAqIG1hcmdpbjtcclxuICAgICAgbGVnZW5kRGF0YS5wb2ludHMgPSBsZWdlbmRMaXN0O1xyXG4gICAgfVxyXG4gIH0gZWxzZSB7XHJcbiAgICBsZXQgbGVuID0gc2VyaWVzLmxlbmd0aDtcclxuICAgIGxldCBtYXhIZWlnaHQgPSBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVswXSAtIG9wdHMuYXJlYVsyXSAtIDIgKiBtYXJnaW4gLSAyICogcGFkZGluZztcclxuICAgIGxldCBtYXhMZW5ndGggPSBNYXRoLm1pbihNYXRoLmZsb29yKG1heEhlaWdodCAvIGxpbmVIZWlnaHQpLCBsZW4pO1xyXG4gICAgbGVnZW5kRGF0YS5hcmVhLmhlaWdodCA9IG1heExlbmd0aCAqIGxpbmVIZWlnaHQgKyBwYWRkaW5nICogMjtcclxuICAgIGxlZ2VuZERhdGEuYXJlYS53aG9sZUhlaWdodCA9IG1heExlbmd0aCAqIGxpbmVIZWlnaHQgKyBwYWRkaW5nICogMjtcclxuICAgIHN3aXRjaCAob3B0cy5sZWdlbmQuZmxvYXQpIHtcclxuICAgICAgY2FzZSAndG9wJzpcclxuICAgICAgICBsZWdlbmREYXRhLmFyZWEuc3RhcnQueSA9IG9wdHMuYXJlYVswXSArIG1hcmdpbjtcclxuICAgICAgICBsZWdlbmREYXRhLmFyZWEuZW5kLnkgPSBvcHRzLmFyZWFbMF0gKyBtYXJnaW4gKyBsZWdlbmREYXRhLmFyZWEuaGVpZ2h0O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdib3R0b20nOlxyXG4gICAgICAgIGxlZ2VuZERhdGEuYXJlYS5zdGFydC55ID0gb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0gLSBtYXJnaW4gLSBsZWdlbmREYXRhLmFyZWEuaGVpZ2h0O1xyXG4gICAgICAgIGxlZ2VuZERhdGEuYXJlYS5lbmQueSA9IG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdIC0gbWFyZ2luO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIGxlZ2VuZERhdGEuYXJlYS5zdGFydC55ID0gKG9wdHMuaGVpZ2h0IC0gbGVnZW5kRGF0YS5hcmVhLmhlaWdodCkgLyAyO1xyXG4gICAgICAgIGxlZ2VuZERhdGEuYXJlYS5lbmQueSA9IChvcHRzLmhlaWdodCArIGxlZ2VuZERhdGEuYXJlYS5oZWlnaHQpIC8gMjtcclxuICAgIH1cclxuICAgIGxldCBsaW5lTnVtID0gbGVuICUgbWF4TGVuZ3RoID09PSAwID8gbGVuIC8gbWF4TGVuZ3RoIDogTWF0aC5mbG9vcigobGVuIC8gbWF4TGVuZ3RoKSArIDEpO1xyXG4gICAgbGV0IGN1cnJlbnRSb3cgPSBbXTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGluZU51bTsgaSsrKSB7XHJcbiAgICAgIGxldCB0ZW1wID0gc2VyaWVzLnNsaWNlKGkgKiBtYXhMZW5ndGgsIGkgKiBtYXhMZW5ndGggKyBtYXhMZW5ndGgpO1xyXG4gICAgICBjdXJyZW50Um93LnB1c2godGVtcCk7XHJcbiAgICB9XHJcbiAgICBsZWdlbmREYXRhLnBvaW50cyA9IGN1cnJlbnRSb3c7XHJcbiAgICBpZiAoY3VycmVudFJvdy5sZW5ndGgpIHtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjdXJyZW50Um93Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgbGV0IGl0ZW0gPSBjdXJyZW50Um93W2ldO1xyXG4gICAgICAgIGxldCBtYXhXaWR0aCA9IDA7XHJcbiAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBpdGVtLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICBsZXQgaXRlbVdpZHRoID0gc2hhcGVXaWR0aCArIHNoYXBlUmlnaHQgKyBtZWFzdXJlVGV4dChpdGVtW2pdLm5hbWUgfHwgJ3VuZGVmaW5lZCcsIGZvbnRTaXplLCBjb250ZXh0KSArIG9wdHMubGVnZW5kLml0ZW1HYXAgKiBvcHRzLnBpeDtcclxuICAgICAgICAgIGlmIChpdGVtV2lkdGggPiBtYXhXaWR0aCkge1xyXG4gICAgICAgICAgICBtYXhXaWR0aCA9IGl0ZW1XaWR0aDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgbGVnZW5kRGF0YS53aWR0aEFyci5wdXNoKG1heFdpZHRoKTtcclxuICAgICAgICBsZWdlbmREYXRhLmhlaWdodEFyci5wdXNoKGl0ZW0ubGVuZ3RoICogbGluZUhlaWdodCArIHBhZGRpbmcgKiAyKTtcclxuICAgICAgfVxyXG4gICAgICBsZXQgbGVnZW5kV2lkdGggPSAwXHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVnZW5kRGF0YS53aWR0aEFyci5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGxlZ2VuZFdpZHRoICs9IGxlZ2VuZERhdGEud2lkdGhBcnJbaV07XHJcbiAgICAgIH1cclxuICAgICAgbGVnZW5kRGF0YS5hcmVhLndpZHRoID0gbGVnZW5kV2lkdGggLSBvcHRzLmxlZ2VuZC5pdGVtR2FwICogb3B0cy5waXggKyAyICogcGFkZGluZztcclxuICAgICAgbGVnZW5kRGF0YS5hcmVhLndob2xlV2lkdGggPSBsZWdlbmREYXRhLmFyZWEud2lkdGggKyBwYWRkaW5nO1xyXG4gICAgfVxyXG4gIH1cclxuICBzd2l0Y2ggKG9wdHMubGVnZW5kLnBvc2l0aW9uKSB7XHJcbiAgICBjYXNlICd0b3AnOlxyXG4gICAgICBsZWdlbmREYXRhLmFyZWEuc3RhcnQueSA9IG9wdHMuYXJlYVswXSArIG1hcmdpbjtcclxuICAgICAgbGVnZW5kRGF0YS5hcmVhLmVuZC55ID0gb3B0cy5hcmVhWzBdICsgbWFyZ2luICsgbGVnZW5kRGF0YS5hcmVhLmhlaWdodDtcclxuICAgICAgYnJlYWs7XHJcbiAgICBjYXNlICdib3R0b20nOlxyXG4gICAgICBsZWdlbmREYXRhLmFyZWEuc3RhcnQueSA9IG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdIC0gbGVnZW5kRGF0YS5hcmVhLmhlaWdodCAtIG1hcmdpbjtcclxuICAgICAgbGVnZW5kRGF0YS5hcmVhLmVuZC55ID0gb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0gLSBtYXJnaW47XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAnbGVmdCc6XHJcbiAgICAgIGxlZ2VuZERhdGEuYXJlYS5zdGFydC54ID0gb3B0cy5hcmVhWzNdO1xyXG4gICAgICBsZWdlbmREYXRhLmFyZWEuZW5kLnggPSBvcHRzLmFyZWFbM10gKyBsZWdlbmREYXRhLmFyZWEud2lkdGg7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAncmlnaHQnOlxyXG4gICAgICBsZWdlbmREYXRhLmFyZWEuc3RhcnQueCA9IG9wdHMud2lkdGggLSBvcHRzLmFyZWFbMV0gLSBsZWdlbmREYXRhLmFyZWEud2lkdGg7XHJcbiAgICAgIGxlZ2VuZERhdGEuYXJlYS5lbmQueCA9IG9wdHMud2lkdGggLSBvcHRzLmFyZWFbMV07XHJcbiAgICAgIGJyZWFrO1xyXG4gIH1cclxuICBjaGFydERhdGEubGVnZW5kRGF0YSA9IGxlZ2VuZERhdGE7XHJcbiAgcmV0dXJuIGxlZ2VuZERhdGE7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNhbENhdGVnb3JpZXNEYXRhKGNhdGVnb3JpZXMsIG9wdHMsIGNvbmZpZywgZWFjaFNwYWNpbmcsIGNvbnRleHQpIHtcclxuICB2YXIgcmVzdWx0ID0ge1xyXG4gICAgYW5nbGU6IDAsXHJcbiAgICB4QXhpc0hlaWdodDogY29uZmlnLnhBeGlzSGVpZ2h0XHJcbiAgfTtcclxuICB2YXIgY2F0ZWdvcmllc1RleHRMZW50aCA9IGNhdGVnb3JpZXMubWFwKGZ1bmN0aW9uKGl0ZW0pIHtcclxuICAgIHJldHVybiBtZWFzdXJlVGV4dChpdGVtLCBvcHRzLnhBeGlzLmZvbnRTaXplICogb3B0cy5waXggfHwgY29uZmlnLmZvbnRTaXplLCBjb250ZXh0KTtcclxuICB9KTtcclxuICB2YXIgbWF4VGV4dExlbmd0aCA9IE1hdGgubWF4LmFwcGx5KHRoaXMsIGNhdGVnb3JpZXNUZXh0TGVudGgpO1xyXG5cclxuICBpZiAob3B0cy54QXhpcy5yb3RhdGVMYWJlbCA9PSB0cnVlICYmIG1heFRleHRMZW5ndGggKyAyICogY29uZmlnLnhBeGlzVGV4dFBhZGRpbmcgPiBlYWNoU3BhY2luZykge1xyXG4gICAgcmVzdWx0LmFuZ2xlID0gNDUgKiBNYXRoLlBJIC8gMTgwO1xyXG4gICAgcmVzdWx0LnhBeGlzSGVpZ2h0ID0gMiAqIGNvbmZpZy54QXhpc1RleHRQYWRkaW5nICsgbWF4VGV4dExlbmd0aCAqIE1hdGguc2luKHJlc3VsdC5hbmdsZSk7XHJcbiAgfVxyXG4gIHJldHVybiByZXN1bHQ7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldFhBeGlzVGV4dExpc3Qoc2VyaWVzLCBvcHRzLCBjb25maWcsIHN0YWNrKSB7XHJcbiAgdmFyIGluZGV4ID0gYXJndW1lbnRzLmxlbmd0aCA+IDQgJiYgYXJndW1lbnRzWzRdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbNF0gOiAtMTtcclxuICB2YXIgZGF0YTtcclxuICBpZiAoc3RhY2sgPT0gJ3N0YWNrJykge1xyXG4gICAgZGF0YSA9IGRhdGFDb21iaW5lU3RhY2soc2VyaWVzLCBvcHRzLmNhdGVnb3JpZXMubGVuZ3RoKTtcclxuICB9IGVsc2Uge1xyXG4gICAgZGF0YSA9IGRhdGFDb21iaW5lKHNlcmllcyk7XHJcbiAgfVxyXG4gIHZhciBzb3J0ZWQgPSBbXTtcclxuICAvLyByZW1vdmUgbnVsbCBmcm9tIGRhdGFcclxuICBkYXRhID0gZGF0YS5maWx0ZXIoZnVuY3Rpb24oaXRlbSkge1xyXG4gICAgLy9yZXR1cm4gaXRlbSAhPT0gbnVsbDtcclxuICAgIGlmICh0eXBlb2YgaXRlbSA9PT0gJ29iamVjdCcgJiYgaXRlbSAhPT0gbnVsbCkge1xyXG4gICAgICBpZiAoaXRlbS5jb25zdHJ1Y3Rvci50b1N0cmluZygpLmluZGV4T2YoJ0FycmF5JykgPiAtMSkge1xyXG4gICAgICAgIHJldHVybiBpdGVtICE9PSBudWxsO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiBpdGVtLnZhbHVlICE9PSBudWxsO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gaXRlbSAhPT0gbnVsbDtcclxuICAgIH1cclxuICB9KTtcclxuICBkYXRhLm1hcChmdW5jdGlvbihpdGVtKSB7XHJcbiAgICBpZiAodHlwZW9mIGl0ZW0gPT09ICdvYmplY3QnKSB7XHJcbiAgICAgIGlmIChpdGVtLmNvbnN0cnVjdG9yLnRvU3RyaW5nKCkuaW5kZXhPZignQXJyYXknKSA+IC0xKSB7XHJcbiAgICAgICAgaWYgKG9wdHMudHlwZSA9PSAnY2FuZGxlJykge1xyXG4gICAgICAgICAgaXRlbS5tYXAoZnVuY3Rpb24oc3ViaXRlbSkge1xyXG4gICAgICAgICAgICBzb3J0ZWQucHVzaChzdWJpdGVtKTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHNvcnRlZC5wdXNoKGl0ZW1bMF0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBzb3J0ZWQucHVzaChpdGVtLnZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgc29ydGVkLnB1c2goaXRlbSk7XHJcbiAgICB9XHJcbiAgfSlcclxuXHJcbiAgdmFyIG1pbkRhdGEgPSAwO1xyXG4gIHZhciBtYXhEYXRhID0gMDtcclxuICBpZiAoc29ydGVkLmxlbmd0aCA+IDApIHtcclxuICAgIG1pbkRhdGEgPSBNYXRoLm1pbi5hcHBseSh0aGlzLCBzb3J0ZWQpO1xyXG4gICAgbWF4RGF0YSA9IE1hdGgubWF4LmFwcGx5KHRoaXMsIHNvcnRlZCk7XHJcbiAgfVxyXG4gIC8v5Li65LqG5YW85a65djEuOS4w5LmL5YmN55qE6aG555uuXHJcbiAgaWYgKGluZGV4ID4gLTEpIHtcclxuICAgIGlmICh0eXBlb2Ygb3B0cy54QXhpcy5kYXRhW2luZGV4XS5taW4gPT09ICdudW1iZXInKSB7XHJcbiAgICAgIG1pbkRhdGEgPSBNYXRoLm1pbihvcHRzLnhBeGlzLmRhdGFbaW5kZXhdLm1pbiwgbWluRGF0YSk7XHJcbiAgICB9XHJcbiAgICBpZiAodHlwZW9mIG9wdHMueEF4aXMuZGF0YVtpbmRleF0ubWF4ID09PSAnbnVtYmVyJykge1xyXG4gICAgICBtYXhEYXRhID0gTWF0aC5tYXgob3B0cy54QXhpcy5kYXRhW2luZGV4XS5tYXgsIG1heERhdGEpO1xyXG4gICAgfVxyXG4gIH0gZWxzZSB7XHJcbiAgICBpZiAodHlwZW9mIG9wdHMueEF4aXMubWluID09PSAnbnVtYmVyJykge1xyXG4gICAgICBtaW5EYXRhID0gTWF0aC5taW4ob3B0cy54QXhpcy5taW4sIG1pbkRhdGEpO1xyXG4gICAgfVxyXG4gICAgaWYgKHR5cGVvZiBvcHRzLnhBeGlzLm1heCA9PT0gJ251bWJlcicpIHtcclxuICAgICAgbWF4RGF0YSA9IE1hdGgubWF4KG9wdHMueEF4aXMubWF4LCBtYXhEYXRhKTtcclxuICAgIH1cclxuICB9XHJcbiAgaWYgKG1pbkRhdGEgPT09IG1heERhdGEpIHtcclxuICAgIHZhciByYW5nZVNwYW4gPSBtYXhEYXRhIHx8IDEwO1xyXG4gICAgbWF4RGF0YSArPSByYW5nZVNwYW47XHJcbiAgfVxyXG4gIC8vdmFyIGRhdGFSYW5nZSA9IGdldERhdGFSYW5nZShtaW5EYXRhLCBtYXhEYXRhKTtcclxuICB2YXIgbWluUmFuZ2UgPSBtaW5EYXRhO1xyXG4gIHZhciBtYXhSYW5nZSA9IG1heERhdGE7XHJcbiAgdmFyIHJhbmdlID0gW107XHJcbiAgdmFyIGVhY2hSYW5nZSA9IChtYXhSYW5nZSAtIG1pblJhbmdlKSAvIG9wdHMueEF4aXMuc3BsaXROdW1iZXI7XHJcbiAgZm9yICh2YXIgaSA9IDA7IGkgPD0gb3B0cy54QXhpcy5zcGxpdE51bWJlcjsgaSsrKSB7XHJcbiAgICByYW5nZS5wdXNoKG1pblJhbmdlICsgZWFjaFJhbmdlICogaSk7XHJcbiAgfVxyXG4gIHJldHVybiByYW5nZTtcclxufVxyXG5cclxuZnVuY3Rpb24gY2FsWEF4aXNEYXRhKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KSB7XHJcbiAgLy/loIblj6Dlm77ph43nrpdZ6L20XHJcbiAgdmFyIGNvbHVtbnN0eWxlID0gYXNzaWduKHt9LCB7XHJcbiAgICB0eXBlOiBcIlwiXHJcbiAgfSwgb3B0cy5leHRyYS5iYXIpO1xyXG4gIHZhciByZXN1bHQgPSB7XHJcbiAgICBhbmdsZTogMCxcclxuICAgIHhBeGlzSGVpZ2h0OiBjb25maWcueEF4aXNIZWlnaHRcclxuICB9O1xyXG4gIHJlc3VsdC5yYW5nZXMgPSBnZXRYQXhpc1RleHRMaXN0KHNlcmllcywgb3B0cywgY29uZmlnLCBjb2x1bW5zdHlsZS50eXBlKTtcclxuICByZXN1bHQucmFuZ2VzRm9ybWF0ID0gcmVzdWx0LnJhbmdlcy5tYXAoZnVuY3Rpb24oaXRlbSkge1xyXG4gICAgLy9pdGVtID0gb3B0cy54QXhpcy5mb3JtYXR0ZXIgPyBvcHRzLnhBeGlzLmZvcm1hdHRlcihpdGVtKSA6IHV0aWwudG9GaXhlZChpdGVtLCAyKTtcclxuICAgIGl0ZW0gPSB1dGlsLnRvRml4ZWQoaXRlbSwgMik7XHJcbiAgICByZXR1cm4gaXRlbTtcclxuICB9KTtcclxuICB2YXIgeEF4aXNTY2FsZVZhbHVlcyA9IHJlc3VsdC5yYW5nZXMubWFwKGZ1bmN0aW9uKGl0ZW0pIHtcclxuICAgIC8vIOWmguaenOWIu+W6puWAvOaYr+a1rueCueaVsCzliJnkv53nlZnkuKTkvY3lsI/mlbBcclxuICAgIGl0ZW0gPSB1dGlsLnRvRml4ZWQoaXRlbSwgMik7XHJcbiAgICAvLyDoi6XmnInoh6rlrprkuYnmoLzlvI/liJnosIPnlKjoh6rlrprkuYnnmoTmoLzlvI/ljJblh73mlbBcclxuICAgIC8vaXRlbSA9IG9wdHMueEF4aXMuZm9ybWF0dGVyID8gb3B0cy54QXhpcy5mb3JtYXR0ZXIoTnVtYmVyKGl0ZW0pKSA6IGl0ZW07XHJcbiAgICByZXR1cm4gaXRlbTtcclxuICB9KTtcclxuICByZXN1bHQgPSBPYmplY3QuYXNzaWduKHJlc3VsdCwgZ2V0WEF4aXNQb2ludHMoeEF4aXNTY2FsZVZhbHVlcywgb3B0cywgY29uZmlnKSk7XHJcbiAgLy8g6K6h566XWOi9tOWIu+W6pueahOWxnuaAp+itrOWmguavj+S4quWIu+W6pueahOmXtOmalCzliLvluqbnmoTotbflp4vngrlcXOe7k+adn+eCueS7peWPiuaAu+mVv1xyXG4gIHZhciBlYWNoU3BhY2luZyA9IHJlc3VsdC5lYWNoU3BhY2luZztcclxuICB2YXIgdGV4dExlbmd0aCA9IHhBeGlzU2NhbGVWYWx1ZXMubWFwKGZ1bmN0aW9uKGl0ZW0pIHtcclxuICAgIHJldHVybiBtZWFzdXJlVGV4dChpdGVtLCBvcHRzLnhBeGlzLmZvbnRTaXplICogb3B0cy5waXggfHwgY29uZmlnLmZvbnRTaXplLCBjb250ZXh0KTtcclxuICB9KTtcclxuICAvLyBnZXQgbWF4IGxlbmd0aCBvZiBjYXRlZ29yaWVzIHRleHRcclxuICB2YXIgbWF4VGV4dExlbmd0aCA9IE1hdGgubWF4LmFwcGx5KHRoaXMsIHRleHRMZW5ndGgpO1xyXG4gIC8vIOWmguaenOWIu+W6puWAvOaWh+acrOWGheWuuei/h+mVvyzliJnlsIblhbbpgIbml7bpkojml4vovaw0NcKwXHJcbiAgaWYgKG1heFRleHRMZW5ndGggKyAyICogY29uZmlnLnhBeGlzVGV4dFBhZGRpbmcgPiBlYWNoU3BhY2luZykge1xyXG4gICAgcmVzdWx0LmFuZ2xlID0gNDUgKiBNYXRoLlBJIC8gMTgwO1xyXG4gICAgcmVzdWx0LnhBeGlzSGVpZ2h0ID0gMiAqIGNvbmZpZy54QXhpc1RleHRQYWRkaW5nICsgbWF4VGV4dExlbmd0aCAqIE1hdGguc2luKHJlc3VsdC5hbmdsZSk7XHJcbiAgfVxyXG4gIGlmIChvcHRzLnhBeGlzLmRpc2FibGVkID09PSB0cnVlKSB7XHJcbiAgICByZXN1bHQueEF4aXNIZWlnaHQgPSAwO1xyXG4gIH1cclxuICByZXR1cm4gcmVzdWx0O1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRSYWRhckRhdGFQb2ludHMoYW5nbGVMaXN0LCBjZW50ZXIsIHJhZGl1cywgc2VyaWVzLCBvcHRzKSB7XHJcbiAgdmFyIHByb2Nlc3MgPSBhcmd1bWVudHMubGVuZ3RoID4gNSAmJiBhcmd1bWVudHNbNV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s1XSA6IDE7XHJcbiAgdmFyIHJhZGFyT3B0aW9uID0gb3B0cy5leHRyYS5yYWRhciB8fCB7fTtcclxuICByYWRhck9wdGlvbi5tYXggPSByYWRhck9wdGlvbi5tYXggfHwgMDtcclxuICB2YXIgbWF4RGF0YSA9IE1hdGgubWF4KHJhZGFyT3B0aW9uLm1heCwgTWF0aC5tYXguYXBwbHkobnVsbCwgZGF0YUNvbWJpbmUoc2VyaWVzKSkpO1xyXG4gIHZhciBkYXRhID0gW107XHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXJpZXMubGVuZ3RoOyBpKyspIHtcclxuICAgIGxldCBlYWNoID0gc2VyaWVzW2ldO1xyXG4gICAgbGV0IGxpc3RJdGVtID0ge307XHJcbiAgICBsaXN0SXRlbS5jb2xvciA9IGVhY2guY29sb3I7XHJcbiAgICBsaXN0SXRlbS5sZWdlbmRTaGFwZSA9IGVhY2gubGVnZW5kU2hhcGU7XHJcbiAgICBsaXN0SXRlbS5wb2ludFNoYXBlID0gZWFjaC5wb2ludFNoYXBlO1xyXG4gICAgbGlzdEl0ZW0uZGF0YSA9IFtdO1xyXG4gICAgZWFjaC5kYXRhLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgICAgbGV0IHRtcCA9IHt9O1xyXG4gICAgICB0bXAuYW5nbGUgPSBhbmdsZUxpc3RbaW5kZXhdO1xyXG4gICAgICB0bXAucHJvcG9ydGlvbiA9IGl0ZW0gLyBtYXhEYXRhO1xyXG4gICAgICB0bXAudmFsdWUgPSBpdGVtO1xyXG4gICAgICB0bXAucG9zaXRpb24gPSBjb252ZXJ0Q29vcmRpbmF0ZU9yaWdpbihyYWRpdXMgKiB0bXAucHJvcG9ydGlvbiAqIHByb2Nlc3MgKiBNYXRoLmNvcyh0bXAuYW5nbGUpLCByYWRpdXMgKiB0bXAucHJvcG9ydGlvbiAqIHByb2Nlc3MgKiBNYXRoLnNpbih0bXAuYW5nbGUpLCBjZW50ZXIpO1xyXG4gICAgICBsaXN0SXRlbS5kYXRhLnB1c2godG1wKTtcclxuICAgIH0pO1xyXG4gICAgZGF0YS5wdXNoKGxpc3RJdGVtKTtcclxuICB9XHJcbiAgcmV0dXJuIGRhdGE7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldFBpZURhdGFQb2ludHMoc2VyaWVzLCByYWRpdXMpIHtcclxuICB2YXIgcHJvY2VzcyA9IGFyZ3VtZW50cy5sZW5ndGggPiAyICYmIGFyZ3VtZW50c1syXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzJdIDogMTtcclxuICB2YXIgY291bnQgPSAwO1xyXG4gIHZhciBfc3RhcnRfID0gMDtcclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHNlcmllcy5sZW5ndGg7IGkrKykge1xyXG4gICAgbGV0IGl0ZW0gPSBzZXJpZXNbaV07XHJcbiAgICBpdGVtLmRhdGEgPSBpdGVtLmRhdGEgPT09IG51bGwgPyAwIDogaXRlbS5kYXRhO1xyXG4gICAgY291bnQgKz0gaXRlbS5kYXRhO1xyXG4gIH1cclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHNlcmllcy5sZW5ndGg7IGkrKykge1xyXG4gICAgbGV0IGl0ZW0gPSBzZXJpZXNbaV07XHJcbiAgICBpdGVtLmRhdGEgPSBpdGVtLmRhdGEgPT09IG51bGwgPyAwIDogaXRlbS5kYXRhO1xyXG4gICAgaWYgKGNvdW50ID09PSAwKSB7XHJcbiAgICAgIGl0ZW0uX3Byb3BvcnRpb25fID0gMSAvIHNlcmllcy5sZW5ndGggKiBwcm9jZXNzO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaXRlbS5fcHJvcG9ydGlvbl8gPSBpdGVtLmRhdGEgLyBjb3VudCAqIHByb2Nlc3M7XHJcbiAgICB9XHJcbiAgICBpdGVtLl9yYWRpdXNfID0gcmFkaXVzO1xyXG4gIH1cclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHNlcmllcy5sZW5ndGg7IGkrKykge1xyXG4gICAgbGV0IGl0ZW0gPSBzZXJpZXNbaV07XHJcbiAgICBpdGVtLl9zdGFydF8gPSBfc3RhcnRfO1xyXG4gICAgX3N0YXJ0XyArPSAyICogaXRlbS5fcHJvcG9ydGlvbl8gKiBNYXRoLlBJO1xyXG4gIH1cclxuICByZXR1cm4gc2VyaWVzO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRGdW5uZWxEYXRhUG9pbnRzKHNlcmllcywgcmFkaXVzLCB0eXBlLCBlYWNoU3BhY2luZykge1xyXG4gIHZhciBwcm9jZXNzID0gYXJndW1lbnRzLmxlbmd0aCA+IDQgJiYgYXJndW1lbnRzWzRdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbNF0gOiAxO1xyXG4gIHNlcmllcyA9IHNlcmllcy5zb3J0KGZ1bmN0aW9uKGEsIGIpIHtcclxuICAgIHJldHVybiBwYXJzZUludChiLmRhdGEpIC0gcGFyc2VJbnQoYS5kYXRhKTtcclxuICB9KTtcclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHNlcmllcy5sZW5ndGg7IGkrKykge1xyXG4gICAgaWYodHlwZSA9PSAnZnVubmVsJyl7XHJcbiAgICAgIHNlcmllc1tpXS5yYWRpdXMgPSBzZXJpZXNbaV0uZGF0YSAvIHNlcmllc1swXS5kYXRhICogcmFkaXVzICogcHJvY2VzcztcclxuICAgIH1lbHNle1xyXG4gICAgICBzZXJpZXNbaV0ucmFkaXVzID0gIChlYWNoU3BhY2luZyAqIChzZXJpZXMubGVuZ3RoIC0gaSkpIC8gKGVhY2hTcGFjaW5nICogc2VyaWVzLmxlbmd0aCkgKiByYWRpdXMgKiBwcm9jZXNzO1xyXG4gICAgfVxyXG4gICAgc2VyaWVzW2ldLl9wcm9wb3J0aW9uXyA9IHNlcmllc1tpXS5kYXRhIC8gc2VyaWVzWzBdLmRhdGE7XHJcbiAgfVxyXG4gIGlmKHR5cGUgIT09ICdweXJhbWlkJyl7XHJcbiAgICBzZXJpZXMucmV2ZXJzZSgpO1xyXG4gIH1cclxuICByZXR1cm4gc2VyaWVzO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRSb3NlRGF0YVBvaW50cyhzZXJpZXMsIHR5cGUsIG1pblJhZGl1cywgcmFkaXVzKSB7XHJcbiAgdmFyIHByb2Nlc3MgPSBhcmd1bWVudHMubGVuZ3RoID4gNCAmJiBhcmd1bWVudHNbNF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s0XSA6IDE7XHJcbiAgdmFyIGNvdW50ID0gMDtcclxuICB2YXIgX3N0YXJ0XyA9IDA7XHJcbiAgdmFyIGRhdGFBcnIgPSBbXTtcclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHNlcmllcy5sZW5ndGg7IGkrKykge1xyXG4gICAgbGV0IGl0ZW0gPSBzZXJpZXNbaV07XHJcbiAgICBpdGVtLmRhdGEgPSBpdGVtLmRhdGEgPT09IG51bGwgPyAwIDogaXRlbS5kYXRhO1xyXG4gICAgY291bnQgKz0gaXRlbS5kYXRhO1xyXG4gICAgZGF0YUFyci5wdXNoKGl0ZW0uZGF0YSk7XHJcbiAgfVxyXG4gIHZhciBtaW5EYXRhID0gTWF0aC5taW4uYXBwbHkobnVsbCwgZGF0YUFycik7XHJcbiAgdmFyIG1heERhdGEgPSBNYXRoLm1heC5hcHBseShudWxsLCBkYXRhQXJyKTtcclxuICB2YXIgcmFkaXVzTGVuZ3RoID0gcmFkaXVzIC0gbWluUmFkaXVzO1xyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc2VyaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBsZXQgaXRlbSA9IHNlcmllc1tpXTtcclxuICAgIGl0ZW0uZGF0YSA9IGl0ZW0uZGF0YSA9PT0gbnVsbCA/IDAgOiBpdGVtLmRhdGE7XHJcbiAgICBpZiAoY291bnQgPT09IDApIHtcclxuICAgICAgaXRlbS5fcHJvcG9ydGlvbl8gPSAxIC8gc2VyaWVzLmxlbmd0aCAqIHByb2Nlc3M7XHJcbiAgICAgIGl0ZW0uX3Jvc2VfcHJvcG9ydGlvbl8gPSAxIC8gc2VyaWVzLmxlbmd0aCAqIHByb2Nlc3M7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpdGVtLl9wcm9wb3J0aW9uXyA9IGl0ZW0uZGF0YSAvIGNvdW50ICogcHJvY2VzcztcclxuICAgICAgaWYodHlwZSA9PSAnYXJlYScpe1xyXG4gICAgICAgIGl0ZW0uX3Jvc2VfcHJvcG9ydGlvbl8gPSAxIC8gc2VyaWVzLmxlbmd0aCAqIHByb2Nlc3M7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIGl0ZW0uX3Jvc2VfcHJvcG9ydGlvbl8gPSBpdGVtLmRhdGEgLyBjb3VudCAqIHByb2Nlc3M7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGl0ZW0uX3JhZGl1c18gPSBtaW5SYWRpdXMgKyByYWRpdXNMZW5ndGggKiAoKGl0ZW0uZGF0YSAtIG1pbkRhdGEpIC8gKG1heERhdGEgLSBtaW5EYXRhKSkgfHwgcmFkaXVzO1xyXG4gIH1cclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHNlcmllcy5sZW5ndGg7IGkrKykge1xyXG4gICAgbGV0IGl0ZW0gPSBzZXJpZXNbaV07XHJcbiAgICBpdGVtLl9zdGFydF8gPSBfc3RhcnRfO1xyXG4gICAgX3N0YXJ0XyArPSAyICogaXRlbS5fcm9zZV9wcm9wb3J0aW9uXyAqIE1hdGguUEk7XHJcbiAgfVxyXG4gIHJldHVybiBzZXJpZXM7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldEFyY2JhckRhdGFQb2ludHMoc2VyaWVzLCBhcmNiYXJPcHRpb24pIHtcclxuICB2YXIgcHJvY2VzcyA9IGFyZ3VtZW50cy5sZW5ndGggPiAyICYmIGFyZ3VtZW50c1syXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzJdIDogMTtcclxuICBpZiAocHJvY2VzcyA9PSAxKSB7XHJcbiAgICBwcm9jZXNzID0gMC45OTk5OTk7XHJcbiAgfVxyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc2VyaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBsZXQgaXRlbSA9IHNlcmllc1tpXTtcclxuICAgIGl0ZW0uZGF0YSA9IGl0ZW0uZGF0YSA9PT0gbnVsbCA/IDAgOiBpdGVtLmRhdGE7XHJcbiAgICBsZXQgdG90YWxBbmdsZTtcclxuICAgIGlmIChhcmNiYXJPcHRpb24udHlwZSA9PSAnY2lyY2xlJykge1xyXG4gICAgICB0b3RhbEFuZ2xlID0gMjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChhcmNiYXJPcHRpb24uZW5kQW5nbGUgPCBhcmNiYXJPcHRpb24uc3RhcnRBbmdsZSkge1xyXG4gICAgICAgIHRvdGFsQW5nbGUgPSAyICsgYXJjYmFyT3B0aW9uLmVuZEFuZ2xlIC0gYXJjYmFyT3B0aW9uLnN0YXJ0QW5nbGU7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdG90YWxBbmdsZSA9IGFyY2Jhck9wdGlvbi5zdGFydEFuZ2xlIC0gYXJjYmFyT3B0aW9uLmVuZEFuZ2xlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpdGVtLl9wcm9wb3J0aW9uXyA9IHRvdGFsQW5nbGUgKiBpdGVtLmRhdGEgKiBwcm9jZXNzICsgYXJjYmFyT3B0aW9uLnN0YXJ0QW5nbGU7XHJcbiAgICBpZiAoaXRlbS5fcHJvcG9ydGlvbl8gPj0gMikge1xyXG4gICAgICBpdGVtLl9wcm9wb3J0aW9uXyA9IGl0ZW0uX3Byb3BvcnRpb25fICUgMjtcclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIHNlcmllcztcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0R2F1Z2VBeGlzUG9pbnRzKGNhdGVnb3JpZXMsIHN0YXJ0QW5nbGUsIGVuZEFuZ2xlKSB7XHJcbiAgbGV0IHRvdGFsQW5nbGUgPSBzdGFydEFuZ2xlIC0gZW5kQW5nbGUgKyAxO1xyXG4gIGxldCB0ZW1wU3RhcnRBbmdsZSA9IHN0YXJ0QW5nbGU7XHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBjYXRlZ29yaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBjYXRlZ29yaWVzW2ldLnZhbHVlID0gY2F0ZWdvcmllc1tpXS52YWx1ZSA9PT0gbnVsbCA/IDAgOiBjYXRlZ29yaWVzW2ldLnZhbHVlO1xyXG4gICAgY2F0ZWdvcmllc1tpXS5fc3RhcnRBbmdsZV8gPSB0ZW1wU3RhcnRBbmdsZTtcclxuICAgIGNhdGVnb3JpZXNbaV0uX2VuZEFuZ2xlXyA9IHRvdGFsQW5nbGUgKiBjYXRlZ29yaWVzW2ldLnZhbHVlICsgc3RhcnRBbmdsZTtcclxuICAgIGlmIChjYXRlZ29yaWVzW2ldLl9lbmRBbmdsZV8gPj0gMikge1xyXG4gICAgICBjYXRlZ29yaWVzW2ldLl9lbmRBbmdsZV8gPSBjYXRlZ29yaWVzW2ldLl9lbmRBbmdsZV8gJSAyO1xyXG4gICAgfVxyXG4gICAgdGVtcFN0YXJ0QW5nbGUgPSBjYXRlZ29yaWVzW2ldLl9lbmRBbmdsZV87XHJcbiAgfVxyXG4gIHJldHVybiBjYXRlZ29yaWVzO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRHYXVnZURhdGFQb2ludHMoc2VyaWVzLCBjYXRlZ29yaWVzLCBnYXVnZU9wdGlvbikge1xyXG4gIGxldCBwcm9jZXNzID0gYXJndW1lbnRzLmxlbmd0aCA+IDMgJiYgYXJndW1lbnRzWzNdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbM10gOiAxO1xyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc2VyaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBsZXQgaXRlbSA9IHNlcmllc1tpXTtcclxuICAgIGl0ZW0uZGF0YSA9IGl0ZW0uZGF0YSA9PT0gbnVsbCA/IDAgOiBpdGVtLmRhdGE7XHJcbiAgICBpZiAoZ2F1Z2VPcHRpb24ucG9pbnRlci5jb2xvciA9PSAnYXV0bycpIHtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjYXRlZ29yaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgaWYgKGl0ZW0uZGF0YSA8PSBjYXRlZ29yaWVzW2ldLnZhbHVlKSB7XHJcbiAgICAgICAgICBpdGVtLmNvbG9yID0gY2F0ZWdvcmllc1tpXS5jb2xvcjtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaXRlbS5jb2xvciA9IGdhdWdlT3B0aW9uLnBvaW50ZXIuY29sb3I7XHJcbiAgICB9XHJcbiAgICBsZXQgdG90YWxBbmdsZSA9IGdhdWdlT3B0aW9uLnN0YXJ0QW5nbGUgLSBnYXVnZU9wdGlvbi5lbmRBbmdsZSArIDE7XHJcbiAgICBpdGVtLl9lbmRBbmdsZV8gPSB0b3RhbEFuZ2xlICogaXRlbS5kYXRhICsgZ2F1Z2VPcHRpb24uc3RhcnRBbmdsZTtcclxuICAgIGl0ZW0uX29sZEFuZ2xlXyA9IGdhdWdlT3B0aW9uLm9sZEFuZ2xlO1xyXG4gICAgaWYgKGdhdWdlT3B0aW9uLm9sZEFuZ2xlIDwgZ2F1Z2VPcHRpb24uZW5kQW5nbGUpIHtcclxuICAgICAgaXRlbS5fb2xkQW5nbGVfICs9IDI7XHJcbiAgICB9XHJcbiAgICBpZiAoaXRlbS5kYXRhID49IGdhdWdlT3B0aW9uLm9sZERhdGEpIHtcclxuICAgICAgaXRlbS5fcHJvcG9ydGlvbl8gPSAoaXRlbS5fZW5kQW5nbGVfIC0gaXRlbS5fb2xkQW5nbGVfKSAqIHByb2Nlc3MgKyBnYXVnZU9wdGlvbi5vbGRBbmdsZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGl0ZW0uX3Byb3BvcnRpb25fID0gaXRlbS5fb2xkQW5nbGVfIC0gKGl0ZW0uX29sZEFuZ2xlXyAtIGl0ZW0uX2VuZEFuZ2xlXykgKiBwcm9jZXNzO1xyXG4gICAgfVxyXG4gICAgaWYgKGl0ZW0uX3Byb3BvcnRpb25fID49IDIpIHtcclxuICAgICAgaXRlbS5fcHJvcG9ydGlvbl8gPSBpdGVtLl9wcm9wb3J0aW9uXyAlIDI7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBzZXJpZXM7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldFBpZVRleHRNYXhMZW5ndGgoc2VyaWVzLCBjb25maWcsIGNvbnRleHQsIG9wdHMpIHtcclxuICBzZXJpZXMgPSBnZXRQaWVEYXRhUG9pbnRzKHNlcmllcyk7XHJcbiAgbGV0IG1heExlbmd0aCA9IDA7XHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXJpZXMubGVuZ3RoOyBpKyspIHtcclxuICAgIGxldCBpdGVtID0gc2VyaWVzW2ldO1xyXG4gICAgbGV0IHRleHQgPSBpdGVtLmZvcm1hdHRlciA/IGl0ZW0uZm9ybWF0dGVyKCtpdGVtLl9wcm9wb3J0aW9uXy50b0ZpeGVkKDIpKSA6IHV0aWwudG9GaXhlZChpdGVtLl9wcm9wb3J0aW9uXyAqIDEwMCkgKyAnJSc7XHJcbiAgICBtYXhMZW5ndGggPSBNYXRoLm1heChtYXhMZW5ndGgsIG1lYXN1cmVUZXh0KHRleHQsIGl0ZW0udGV4dFNpemUgKiBvcHRzLnBpeCB8fCBjb25maWcuZm9udFNpemUsIGNvbnRleHQpKTtcclxuICB9XHJcbiAgcmV0dXJuIG1heExlbmd0aDtcclxufVxyXG5cclxuZnVuY3Rpb24gZml4Q29sdW1lRGF0YShwb2ludHMsIGVhY2hTcGFjaW5nLCBjb2x1bW5MZW4sIGluZGV4LCBjb25maWcsIG9wdHMpIHtcclxuICByZXR1cm4gcG9pbnRzLm1hcChmdW5jdGlvbihpdGVtKSB7XHJcbiAgICBpZiAoaXRlbSA9PT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIHZhciBzZXJpZXNHYXAgPSAwO1xyXG4gICAgdmFyIGNhdGVnb3J5R2FwID0gMDtcclxuICAgIGlmIChvcHRzLnR5cGUgPT0gJ21peCcpIHtcclxuICAgICAgc2VyaWVzR2FwID0gb3B0cy5leHRyYS5taXguY29sdW1uLnNlcmllc0dhcCAqIG9wdHMucGl4IHx8IDA7XHJcbiAgICAgIGNhdGVnb3J5R2FwID0gb3B0cy5leHRyYS5taXguY29sdW1uLmNhdGVnb3J5R2FwICogb3B0cy5waXggfHwgMDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHNlcmllc0dhcCA9IG9wdHMuZXh0cmEuY29sdW1uLnNlcmllc0dhcCAqIG9wdHMucGl4IHx8IDA7XHJcbiAgICAgIGNhdGVnb3J5R2FwID0gb3B0cy5leHRyYS5jb2x1bW4uY2F0ZWdvcnlHYXAgKiBvcHRzLnBpeCB8fCAwO1xyXG4gICAgfVxyXG4gICAgc2VyaWVzR2FwID0gIE1hdGgubWluKHNlcmllc0dhcCwgZWFjaFNwYWNpbmcgLyBjb2x1bW5MZW4pXHJcbiAgICBjYXRlZ29yeUdhcCA9ICBNYXRoLm1pbihjYXRlZ29yeUdhcCwgZWFjaFNwYWNpbmcgLyBjb2x1bW5MZW4pXHJcbiAgICBpdGVtLndpZHRoID0gTWF0aC5jZWlsKChlYWNoU3BhY2luZyAtIDIgKiBjYXRlZ29yeUdhcCAtIHNlcmllc0dhcCAqIChjb2x1bW5MZW4gLSAxKSkgLyBjb2x1bW5MZW4pO1xyXG4gICAgaWYgKG9wdHMuZXh0cmEubWl4ICYmIG9wdHMuZXh0cmEubWl4LmNvbHVtbi53aWR0aCAmJiArb3B0cy5leHRyYS5taXguY29sdW1uLndpZHRoID4gMCkge1xyXG4gICAgICBpdGVtLndpZHRoID0gTWF0aC5taW4oaXRlbS53aWR0aCwgK29wdHMuZXh0cmEubWl4LmNvbHVtbi53aWR0aCAqIG9wdHMucGl4KTtcclxuICAgIH1cclxuICAgIGlmIChvcHRzLmV4dHJhLmNvbHVtbiAmJiBvcHRzLmV4dHJhLmNvbHVtbi53aWR0aCAmJiArb3B0cy5leHRyYS5jb2x1bW4ud2lkdGggPiAwKSB7XHJcbiAgICAgIGl0ZW0ud2lkdGggPSBNYXRoLm1pbihpdGVtLndpZHRoLCArb3B0cy5leHRyYS5jb2x1bW4ud2lkdGggKiBvcHRzLnBpeCk7XHJcbiAgICB9XHJcbiAgICBpZiAoaXRlbS53aWR0aCA8PSAwKSB7XHJcbiAgICAgIGl0ZW0ud2lkdGggPSAxO1xyXG4gICAgfVxyXG4gICAgaXRlbS54ICs9IChpbmRleCArIDAuNSAtIGNvbHVtbkxlbiAvIDIpICogKGl0ZW0ud2lkdGggKyBzZXJpZXNHYXApO1xyXG4gICAgcmV0dXJuIGl0ZW07XHJcbiAgfSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZpeEJhckRhdGEocG9pbnRzLCBlYWNoU3BhY2luZywgY29sdW1uTGVuLCBpbmRleCwgY29uZmlnLCBvcHRzKSB7XHJcbiAgcmV0dXJuIHBvaW50cy5tYXAoZnVuY3Rpb24oaXRlbSkge1xyXG4gICAgaWYgKGl0ZW0gPT09IG51bGwpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICB2YXIgc2VyaWVzR2FwID0gMDtcclxuICAgIHZhciBjYXRlZ29yeUdhcCA9IDA7XHJcbiAgICBzZXJpZXNHYXAgPSBvcHRzLmV4dHJhLmJhci5zZXJpZXNHYXAgKiBvcHRzLnBpeCB8fCAwO1xyXG4gICAgY2F0ZWdvcnlHYXAgPSBvcHRzLmV4dHJhLmJhci5jYXRlZ29yeUdhcCAqIG9wdHMucGl4IHx8IDA7XHJcbiAgICBzZXJpZXNHYXAgPSAgTWF0aC5taW4oc2VyaWVzR2FwLCBlYWNoU3BhY2luZyAvIGNvbHVtbkxlbilcclxuICAgIGNhdGVnb3J5R2FwID0gIE1hdGgubWluKGNhdGVnb3J5R2FwLCBlYWNoU3BhY2luZyAvIGNvbHVtbkxlbilcclxuICAgIGl0ZW0ud2lkdGggPSBNYXRoLmNlaWwoKGVhY2hTcGFjaW5nIC0gMiAqIGNhdGVnb3J5R2FwIC0gc2VyaWVzR2FwICogKGNvbHVtbkxlbiAtIDEpKSAvIGNvbHVtbkxlbik7XHJcbiAgICBpZiAob3B0cy5leHRyYS5iYXIgJiYgb3B0cy5leHRyYS5iYXIud2lkdGggJiYgK29wdHMuZXh0cmEuYmFyLndpZHRoID4gMCkge1xyXG4gICAgICBpdGVtLndpZHRoID0gTWF0aC5taW4oaXRlbS53aWR0aCwgK29wdHMuZXh0cmEuYmFyLndpZHRoICogb3B0cy5waXgpO1xyXG4gICAgfVxyXG4gICAgaWYgKGl0ZW0ud2lkdGggPD0gMCkge1xyXG4gICAgICBpdGVtLndpZHRoID0gMTtcclxuICAgIH1cclxuICAgIGl0ZW0ueSArPSAoaW5kZXggKyAwLjUgLSBjb2x1bW5MZW4gLyAyKSAqIChpdGVtLndpZHRoICsgc2VyaWVzR2FwKTtcclxuICAgIHJldHVybiBpdGVtO1xyXG4gIH0pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBmaXhDb2x1bWVNZXRlckRhdGEocG9pbnRzLCBlYWNoU3BhY2luZywgY29sdW1uTGVuLCBpbmRleCwgY29uZmlnLCBvcHRzLCBib3JkZXIpIHtcclxuICB2YXIgY2F0ZWdvcnlHYXAgPSBvcHRzLmV4dHJhLmNvbHVtbi5jYXRlZ29yeUdhcCAqIG9wdHMucGl4IHx8IDA7XHJcbiAgcmV0dXJuIHBvaW50cy5tYXAoZnVuY3Rpb24oaXRlbSkge1xyXG4gICAgaWYgKGl0ZW0gPT09IG51bGwpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICBpdGVtLndpZHRoID0gTWF0aC5jZWlsKGVhY2hTcGFjaW5nIC0gMiAqIGNhdGVnb3J5R2FwKTtcclxuICAgIGlmIChvcHRzLmV4dHJhLmNvbHVtbiAmJiBvcHRzLmV4dHJhLmNvbHVtbi53aWR0aCAmJiArb3B0cy5leHRyYS5jb2x1bW4ud2lkdGggPiAwKSB7XHJcbiAgICAgIGl0ZW0ud2lkdGggPSBNYXRoLm1pbihpdGVtLndpZHRoLCArb3B0cy5leHRyYS5jb2x1bW4ud2lkdGggKiBvcHRzLnBpeCk7XHJcbiAgICB9XHJcbiAgICBpZiAoaW5kZXggPiAwKSB7XHJcbiAgICAgIGl0ZW0ud2lkdGggLT0gMiAqIGJvcmRlcjtcclxuICAgIH1cclxuICAgIHJldHVybiBpdGVtO1xyXG4gIH0pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBmaXhDb2x1bWVTdGFja0RhdGEocG9pbnRzLCBlYWNoU3BhY2luZywgY29sdW1uTGVuLCBpbmRleCwgY29uZmlnLCBvcHRzLCBzZXJpZXMpIHtcclxuICB2YXIgY2F0ZWdvcnlHYXAgPSBvcHRzLmV4dHJhLmNvbHVtbi5jYXRlZ29yeUdhcCAqIG9wdHMucGl4IHx8IDA7XHJcbiAgcmV0dXJuIHBvaW50cy5tYXAoZnVuY3Rpb24oaXRlbSwgaW5kZXhuKSB7XHJcbiAgICBpZiAoaXRlbSA9PT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIGl0ZW0ud2lkdGggPSBNYXRoLmNlaWwoZWFjaFNwYWNpbmcgLSAyICogY2F0ZWdvcnlHYXApO1xyXG4gICAgaWYgKG9wdHMuZXh0cmEuY29sdW1uICYmIG9wdHMuZXh0cmEuY29sdW1uLndpZHRoICYmICtvcHRzLmV4dHJhLmNvbHVtbi53aWR0aCA+IDApIHtcclxuICAgICAgaXRlbS53aWR0aCA9IE1hdGgubWluKGl0ZW0ud2lkdGgsICtvcHRzLmV4dHJhLmNvbHVtbi53aWR0aCAqIG9wdHMucGl4KTtcclxuICAgIH1cclxuICAgIGlmIChpdGVtLndpZHRoIDw9IDApIHtcclxuICAgICAgaXRlbS53aWR0aCA9IDE7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gaXRlbTtcclxuICB9KTtcclxufVxyXG5cclxuZnVuY3Rpb24gZml4QmFyU3RhY2tEYXRhKHBvaW50cywgZWFjaFNwYWNpbmcsIGNvbHVtbkxlbiwgaW5kZXgsIGNvbmZpZywgb3B0cywgc2VyaWVzKSB7XHJcbiAgdmFyIGNhdGVnb3J5R2FwID0gb3B0cy5leHRyYS5iYXIuY2F0ZWdvcnlHYXAgKiBvcHRzLnBpeCB8fCAwO1xyXG4gIHJldHVybiBwb2ludHMubWFwKGZ1bmN0aW9uKGl0ZW0sIGluZGV4bikge1xyXG4gICAgaWYgKGl0ZW0gPT09IG51bGwpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICBpdGVtLndpZHRoID0gTWF0aC5jZWlsKGVhY2hTcGFjaW5nIC0gMiAqIGNhdGVnb3J5R2FwKTtcclxuICAgIGlmIChvcHRzLmV4dHJhLmJhciAmJiBvcHRzLmV4dHJhLmJhci53aWR0aCAmJiArb3B0cy5leHRyYS5iYXIud2lkdGggPiAwKSB7XHJcbiAgICAgIGl0ZW0ud2lkdGggPSBNYXRoLm1pbihpdGVtLndpZHRoLCArb3B0cy5leHRyYS5iYXIud2lkdGggKiBvcHRzLnBpeCk7XHJcbiAgICB9XHJcbiAgICBpZiAoaXRlbS53aWR0aCA8PSAwKSB7XHJcbiAgICAgIGl0ZW0ud2lkdGggPSAxO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGl0ZW07XHJcbiAgfSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldFhBeGlzUG9pbnRzKGNhdGVnb3JpZXMsIG9wdHMsIGNvbmZpZykge1xyXG4gIHZhciBzcGFjaW5nVmFsaWQgPSBvcHRzLndpZHRoIC0gb3B0cy5hcmVhWzFdIC0gb3B0cy5hcmVhWzNdO1xyXG4gIHZhciBkYXRhQ291bnQgPSBvcHRzLmVuYWJsZVNjcm9sbCA/IE1hdGgubWluKG9wdHMueEF4aXMuaXRlbUNvdW50LCBjYXRlZ29yaWVzLmxlbmd0aCkgOiBjYXRlZ29yaWVzLmxlbmd0aDtcclxuICBpZiAoKG9wdHMudHlwZSA9PSAnbGluZScgfHwgb3B0cy50eXBlID09ICdhcmVhJyB8fCBvcHRzLnR5cGUgPT0gJ3NjYXR0ZXInIHx8IG9wdHMudHlwZSA9PSAnYnViYmxlJyB8fCBvcHRzLnR5cGUgPT0gJ2JhcicpICYmIGRhdGFDb3VudCA+IDEgJiYgb3B0cy54QXhpcy5ib3VuZGFyeUdhcCA9PSAnanVzdGlmeScpIHtcclxuICAgIGRhdGFDb3VudCAtPSAxO1xyXG4gIH1cclxuICB2YXIgZWFjaFNwYWNpbmcgPSBzcGFjaW5nVmFsaWQgLyBkYXRhQ291bnQ7XHJcbiAgdmFyIHhBeGlzUG9pbnRzID0gW107XHJcbiAgdmFyIHN0YXJ0WCA9IG9wdHMuYXJlYVszXTtcclxuICB2YXIgZW5kWCA9IG9wdHMud2lkdGggLSBvcHRzLmFyZWFbMV07XHJcbiAgY2F0ZWdvcmllcy5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICB4QXhpc1BvaW50cy5wdXNoKHN0YXJ0WCArIGluZGV4ICogZWFjaFNwYWNpbmcpO1xyXG4gIH0pO1xyXG4gIGlmIChvcHRzLnhBeGlzLmJvdW5kYXJ5R2FwICE9PSAnanVzdGlmeScpIHtcclxuICAgIGlmIChvcHRzLmVuYWJsZVNjcm9sbCA9PT0gdHJ1ZSkge1xyXG4gICAgICB4QXhpc1BvaW50cy5wdXNoKHN0YXJ0WCArIGNhdGVnb3JpZXMubGVuZ3RoICogZWFjaFNwYWNpbmcpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgeEF4aXNQb2ludHMucHVzaChlbmRYKTtcclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIHtcclxuICAgIHhBeGlzUG9pbnRzOiB4QXhpc1BvaW50cyxcclxuICAgIHN0YXJ0WDogc3RhcnRYLFxyXG4gICAgZW5kWDogZW5kWCxcclxuICAgIGVhY2hTcGFjaW5nOiBlYWNoU3BhY2luZ1xyXG4gIH07XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldENhbmRsZURhdGFQb2ludHMoZGF0YSwgbWluUmFuZ2UsIG1heFJhbmdlLCB4QXhpc1BvaW50cywgZWFjaFNwYWNpbmcsIG9wdHMsIGNvbmZpZykge1xyXG4gIHZhciBwcm9jZXNzID0gYXJndW1lbnRzLmxlbmd0aCA+IDcgJiYgYXJndW1lbnRzWzddICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbN10gOiAxO1xyXG4gIHZhciBwb2ludHMgPSBbXTtcclxuICB2YXIgdmFsaWRIZWlnaHQgPSBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVswXSAtIG9wdHMuYXJlYVsyXTtcclxuICBkYXRhLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgIGlmIChpdGVtID09PSBudWxsKSB7XHJcbiAgICAgIHBvaW50cy5wdXNoKG51bGwpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdmFyIGNQb2ludHMgPSBbXTtcclxuICAgICAgaXRlbS5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW1zLCBpbmRleHMpIHtcclxuICAgICAgICB2YXIgcG9pbnQgPSB7fTtcclxuICAgICAgICBwb2ludC54ID0geEF4aXNQb2ludHNbaW5kZXhdICsgTWF0aC5yb3VuZChlYWNoU3BhY2luZyAvIDIpO1xyXG4gICAgICAgIHZhciB2YWx1ZSA9IGl0ZW1zLnZhbHVlIHx8IGl0ZW1zO1xyXG4gICAgICAgIHZhciBoZWlnaHQgPSB2YWxpZEhlaWdodCAqICh2YWx1ZSAtIG1pblJhbmdlKSAvIChtYXhSYW5nZSAtIG1pblJhbmdlKTtcclxuICAgICAgICBoZWlnaHQgKj0gcHJvY2VzcztcclxuICAgICAgICBwb2ludC55ID0gb3B0cy5oZWlnaHQgLSBNYXRoLnJvdW5kKGhlaWdodCkgLSBvcHRzLmFyZWFbMl07XHJcbiAgICAgICAgY1BvaW50cy5wdXNoKHBvaW50KTtcclxuICAgICAgfSk7XHJcbiAgICAgIHBvaW50cy5wdXNoKGNQb2ludHMpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG4gIHJldHVybiBwb2ludHM7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldERhdGFQb2ludHMoZGF0YSwgbWluUmFuZ2UsIG1heFJhbmdlLCB4QXhpc1BvaW50cywgZWFjaFNwYWNpbmcsIG9wdHMsIGNvbmZpZykge1xyXG4gIHZhciBwcm9jZXNzID0gYXJndW1lbnRzLmxlbmd0aCA+IDcgJiYgYXJndW1lbnRzWzddICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbN10gOiAxO1xyXG4gIHZhciBib3VuZGFyeUdhcCA9ICdjZW50ZXInO1xyXG4gIGlmIChvcHRzLnR5cGUgPT0gJ2xpbmUnIHx8IG9wdHMudHlwZSA9PSAnYXJlYScgfHwgb3B0cy50eXBlID09ICdzY2F0dGVyJyB8fCBvcHRzLnR5cGUgPT0gJ2J1YmJsZScgKSB7XHJcbiAgICBib3VuZGFyeUdhcCA9IG9wdHMueEF4aXMuYm91bmRhcnlHYXA7XHJcbiAgfVxyXG4gIHZhciBwb2ludHMgPSBbXTtcclxuICB2YXIgdmFsaWRIZWlnaHQgPSBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVswXSAtIG9wdHMuYXJlYVsyXTtcclxuICB2YXIgdmFsaWRXaWR0aCA9IG9wdHMud2lkdGggLSBvcHRzLmFyZWFbMV0gLSBvcHRzLmFyZWFbM107XHJcbiAgZGF0YS5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICBpZiAoaXRlbSA9PT0gbnVsbCkge1xyXG4gICAgICBwb2ludHMucHVzaChudWxsKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHZhciBwb2ludCA9IHt9O1xyXG4gICAgICBwb2ludC5jb2xvciA9IGl0ZW0uY29sb3I7XHJcbiAgICAgIHBvaW50LnggPSB4QXhpc1BvaW50c1tpbmRleF07XHJcbiAgICAgIHZhciB2YWx1ZSA9IGl0ZW07XHJcbiAgICAgIGlmICh0eXBlb2YgaXRlbSA9PT0gJ29iamVjdCcgJiYgaXRlbSAhPT0gbnVsbCkge1xyXG4gICAgICAgIGlmIChpdGVtLmNvbnN0cnVjdG9yLnRvU3RyaW5nKCkuaW5kZXhPZignQXJyYXknKSA+IC0xKSB7XHJcbiAgICAgICAgICBsZXQgeHJhbmdlcywgeG1pblJhbmdlLCB4bWF4UmFuZ2U7XHJcbiAgICAgICAgICB4cmFuZ2VzID0gW10uY29uY2F0KG9wdHMuY2hhcnREYXRhLnhBeGlzRGF0YS5yYW5nZXMpO1xyXG4gICAgICAgICAgeG1pblJhbmdlID0geHJhbmdlcy5zaGlmdCgpO1xyXG4gICAgICAgICAgeG1heFJhbmdlID0geHJhbmdlcy5wb3AoKTtcclxuICAgICAgICAgIHZhbHVlID0gaXRlbVsxXTtcclxuICAgICAgICAgIHBvaW50LnggPSBvcHRzLmFyZWFbM10gKyB2YWxpZFdpZHRoICogKGl0ZW1bMF0gLSB4bWluUmFuZ2UpIC8gKHhtYXhSYW5nZSAtIHhtaW5SYW5nZSk7XHJcbiAgICAgICAgICBpZihvcHRzLnR5cGUgPT0gJ2J1YmJsZScpe1xyXG4gICAgICAgICAgICBwb2ludC5yID0gaXRlbVsyXTtcclxuICAgICAgICAgICAgcG9pbnQudCA9IGl0ZW1bM107XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHZhbHVlID0gaXRlbS52YWx1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGJvdW5kYXJ5R2FwID09ICdjZW50ZXInKSB7XHJcbiAgICAgICAgcG9pbnQueCArPSBlYWNoU3BhY2luZyAvIDI7XHJcbiAgICAgIH1cclxuICAgICAgdmFyIGhlaWdodCA9IHZhbGlkSGVpZ2h0ICogKHZhbHVlIC0gbWluUmFuZ2UpIC8gKG1heFJhbmdlIC0gbWluUmFuZ2UpO1xyXG4gICAgICBoZWlnaHQgKj0gcHJvY2VzcztcclxuICAgICAgcG9pbnQueSA9IG9wdHMuaGVpZ2h0IC0gaGVpZ2h0IC0gb3B0cy5hcmVhWzJdO1xyXG4gICAgICBwb2ludHMucHVzaChwb2ludCk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgcmV0dXJuIHBvaW50cztcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0QmFyRGF0YVBvaW50cyhkYXRhLCBtaW5SYW5nZSwgbWF4UmFuZ2UsIHlBeGlzUG9pbnRzLCBlYWNoU3BhY2luZywgb3B0cywgY29uZmlnKSB7XHJcbiAgdmFyIHByb2Nlc3MgPSBhcmd1bWVudHMubGVuZ3RoID4gNyAmJiBhcmd1bWVudHNbN10gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s3XSA6IDE7XHJcbiAgdmFyIHBvaW50cyA9IFtdO1xyXG4gIHZhciB2YWxpZEhlaWdodCA9IG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzBdIC0gb3B0cy5hcmVhWzJdO1xyXG4gIHZhciB2YWxpZFdpZHRoID0gb3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXSAtIG9wdHMuYXJlYVszXTtcclxuICBkYXRhLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgIGlmIChpdGVtID09PSBudWxsKSB7XHJcbiAgICAgIHBvaW50cy5wdXNoKG51bGwpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdmFyIHBvaW50ID0ge307XHJcbiAgICAgIHBvaW50LmNvbG9yID0gaXRlbS5jb2xvcjtcclxuICAgICAgcG9pbnQueSA9IHlBeGlzUG9pbnRzW2luZGV4XTtcclxuICAgICAgdmFyIHZhbHVlID0gaXRlbTtcclxuICAgICAgaWYgKHR5cGVvZiBpdGVtID09PSAnb2JqZWN0JyAmJiBpdGVtICE9PSBudWxsKSB7XHJcbiAgICAgICAgdmFsdWUgPSBpdGVtLnZhbHVlO1xyXG4gICAgICB9XHJcbiAgICAgIHZhciBoZWlnaHQgPSB2YWxpZFdpZHRoICogKHZhbHVlIC0gbWluUmFuZ2UpIC8gKG1heFJhbmdlIC0gbWluUmFuZ2UpO1xyXG4gICAgICBoZWlnaHQgKj0gcHJvY2VzcztcclxuICAgICAgcG9pbnQuaGVpZ2h0ID0gaGVpZ2h0O1xyXG4gICAgICBwb2ludC52YWx1ZSA9IHZhbHVlO1xyXG4gICAgICBwb2ludC54ID0gaGVpZ2h0ICsgb3B0cy5hcmVhWzNdO1xyXG4gICAgICBwb2ludHMucHVzaChwb2ludCk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgcmV0dXJuIHBvaW50cztcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0U3RhY2tEYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeEF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHNlcmllc0luZGV4LCBzdGFja1Nlcmllcykge1xyXG4gIHZhciBwcm9jZXNzID0gYXJndW1lbnRzLmxlbmd0aCA+IDkgJiYgYXJndW1lbnRzWzldICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbOV0gOiAxO1xyXG4gIHZhciBwb2ludHMgPSBbXTtcclxuICB2YXIgdmFsaWRIZWlnaHQgPSBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVswXSAtIG9wdHMuYXJlYVsyXTtcclxuICBkYXRhLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgIGlmIChpdGVtID09PSBudWxsKSB7XHJcbiAgICAgIHBvaW50cy5wdXNoKG51bGwpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdmFyIHBvaW50ID0ge307XHJcbiAgICAgIHBvaW50LmNvbG9yID0gaXRlbS5jb2xvcjtcclxuICAgICAgcG9pbnQueCA9IHhBeGlzUG9pbnRzW2luZGV4XSArIE1hdGgucm91bmQoZWFjaFNwYWNpbmcgLyAyKTtcclxuXHJcbiAgICAgIGlmIChzZXJpZXNJbmRleCA+IDApIHtcclxuICAgICAgICB2YXIgdmFsdWUgPSAwO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IHNlcmllc0luZGV4OyBpKyspIHtcclxuICAgICAgICAgIHZhbHVlICs9IHN0YWNrU2VyaWVzW2ldLmRhdGFbaW5kZXhdO1xyXG4gICAgICAgIH1cclxuICAgICAgICB2YXIgdmFsdWUwID0gdmFsdWUgLSBpdGVtO1xyXG4gICAgICAgIHZhciBoZWlnaHQgPSB2YWxpZEhlaWdodCAqICh2YWx1ZSAtIG1pblJhbmdlKSAvIChtYXhSYW5nZSAtIG1pblJhbmdlKTtcclxuICAgICAgICB2YXIgaGVpZ2h0MCA9IHZhbGlkSGVpZ2h0ICogKHZhbHVlMCAtIG1pblJhbmdlKSAvIChtYXhSYW5nZSAtIG1pblJhbmdlKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB2YXIgdmFsdWUgPSBpdGVtO1xyXG4gICAgICAgIHZhciBoZWlnaHQgPSB2YWxpZEhlaWdodCAqICh2YWx1ZSAtIG1pblJhbmdlKSAvIChtYXhSYW5nZSAtIG1pblJhbmdlKTtcclxuICAgICAgICB2YXIgaGVpZ2h0MCA9IDA7XHJcbiAgICAgIH1cclxuICAgICAgdmFyIGhlaWdodGMgPSBoZWlnaHQwO1xyXG4gICAgICBoZWlnaHQgKj0gcHJvY2VzcztcclxuICAgICAgaGVpZ2h0YyAqPSBwcm9jZXNzO1xyXG4gICAgICBwb2ludC55ID0gb3B0cy5oZWlnaHQgLSBNYXRoLnJvdW5kKGhlaWdodCkgLSBvcHRzLmFyZWFbMl07XHJcbiAgICAgIHBvaW50LnkwID0gb3B0cy5oZWlnaHQgLSBNYXRoLnJvdW5kKGhlaWdodGMpIC0gb3B0cy5hcmVhWzJdO1xyXG4gICAgICBwb2ludHMucHVzaChwb2ludCk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgcmV0dXJuIHBvaW50cztcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0QmFyU3RhY2tEYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeUF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHNlcmllc0luZGV4LCBzdGFja1Nlcmllcykge1xyXG4gIHZhciBwcm9jZXNzID0gYXJndW1lbnRzLmxlbmd0aCA+IDkgJiYgYXJndW1lbnRzWzldICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbOV0gOiAxO1xyXG4gIHZhciBwb2ludHMgPSBbXTtcclxuICB2YXIgdmFsaWRIZWlnaHQgPSBvcHRzLndpZHRoIC0gb3B0cy5hcmVhWzFdIC0gb3B0cy5hcmVhWzNdO1xyXG4gIGRhdGEuZm9yRWFjaChmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgaWYgKGl0ZW0gPT09IG51bGwpIHtcclxuICAgICAgcG9pbnRzLnB1c2gobnVsbCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB2YXIgcG9pbnQgPSB7fTtcclxuICAgICAgcG9pbnQuY29sb3IgPSBpdGVtLmNvbG9yO1xyXG4gICAgICBwb2ludC55ID0geUF4aXNQb2ludHNbaW5kZXhdO1xyXG4gICAgICBpZiAoc2VyaWVzSW5kZXggPiAwKSB7XHJcbiAgICAgICAgdmFyIHZhbHVlID0gMDtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8PSBzZXJpZXNJbmRleDsgaSsrKSB7XHJcbiAgICAgICAgICB2YWx1ZSArPSBzdGFja1Nlcmllc1tpXS5kYXRhW2luZGV4XTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdmFyIHZhbHVlMCA9IHZhbHVlIC0gaXRlbTtcclxuICAgICAgICB2YXIgaGVpZ2h0ID0gdmFsaWRIZWlnaHQgKiAodmFsdWUgLSBtaW5SYW5nZSkgLyAobWF4UmFuZ2UgLSBtaW5SYW5nZSk7XHJcbiAgICAgICAgdmFyIGhlaWdodDAgPSB2YWxpZEhlaWdodCAqICh2YWx1ZTAgLSBtaW5SYW5nZSkgLyAobWF4UmFuZ2UgLSBtaW5SYW5nZSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdmFyIHZhbHVlID0gaXRlbTtcclxuICAgICAgICB2YXIgaGVpZ2h0ID0gdmFsaWRIZWlnaHQgKiAodmFsdWUgLSBtaW5SYW5nZSkgLyAobWF4UmFuZ2UgLSBtaW5SYW5nZSk7XHJcbiAgICAgICAgdmFyIGhlaWdodDAgPSAwO1xyXG4gICAgICB9XHJcbiAgICAgIHZhciBoZWlnaHRjID0gaGVpZ2h0MDtcclxuICAgICAgaGVpZ2h0ICo9IHByb2Nlc3M7XHJcbiAgICAgIGhlaWdodGMgKj0gcHJvY2VzcztcclxuICAgICAgcG9pbnQuaGVpZ2h0ID0gaGVpZ2h0IC0gaGVpZ2h0YztcclxuICAgICAgcG9pbnQueCA9IG9wdHMuYXJlYVszXSArIGhlaWdodDtcclxuICAgICAgcG9pbnQueDAgPSBvcHRzLmFyZWFbM10gKyBoZWlnaHRjO1xyXG4gICAgICBwb2ludHMucHVzaChwb2ludCk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgcmV0dXJuIHBvaW50cztcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0WUF4aXNUZXh0TGlzdChzZXJpZXMsIG9wdHMsIGNvbmZpZywgc3RhY2ssIHlEYXRhKSB7XHJcbiAgdmFyIGluZGV4ID0gYXJndW1lbnRzLmxlbmd0aCA+IDUgJiYgYXJndW1lbnRzWzVdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbNV0gOiAtMTtcclxuICB2YXIgZGF0YTtcclxuICBpZiAoc3RhY2sgPT0gJ3N0YWNrJykge1xyXG4gICAgZGF0YSA9IGRhdGFDb21iaW5lU3RhY2soc2VyaWVzLCBvcHRzLmNhdGVnb3JpZXMubGVuZ3RoKTtcclxuICB9IGVsc2Uge1xyXG4gICAgZGF0YSA9IGRhdGFDb21iaW5lKHNlcmllcyk7XHJcbiAgfVxyXG4gIHZhciBzb3J0ZWQgPSBbXTtcclxuICAvLyByZW1vdmUgbnVsbCBmcm9tIGRhdGFcclxuICBkYXRhID0gZGF0YS5maWx0ZXIoZnVuY3Rpb24oaXRlbSkge1xyXG4gICAgLy9yZXR1cm4gaXRlbSAhPT0gbnVsbDtcclxuICAgIGlmICh0eXBlb2YgaXRlbSA9PT0gJ29iamVjdCcgJiYgaXRlbSAhPT0gbnVsbCkge1xyXG4gICAgICBpZiAoaXRlbS5jb25zdHJ1Y3Rvci50b1N0cmluZygpLmluZGV4T2YoJ0FycmF5JykgPiAtMSkge1xyXG4gICAgICAgIHJldHVybiBpdGVtICE9PSBudWxsO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiBpdGVtLnZhbHVlICE9PSBudWxsO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gaXRlbSAhPT0gbnVsbDtcclxuICAgIH1cclxuICB9KTtcclxuICBkYXRhLm1hcChmdW5jdGlvbihpdGVtKSB7XHJcbiAgICBpZiAodHlwZW9mIGl0ZW0gPT09ICdvYmplY3QnKSB7XHJcbiAgICAgIGlmIChpdGVtLmNvbnN0cnVjdG9yLnRvU3RyaW5nKCkuaW5kZXhPZignQXJyYXknKSA+IC0xKSB7XHJcbiAgICAgICAgaWYgKG9wdHMudHlwZSA9PSAnY2FuZGxlJykge1xyXG4gICAgICAgICAgaXRlbS5tYXAoZnVuY3Rpb24oc3ViaXRlbSkge1xyXG4gICAgICAgICAgICBzb3J0ZWQucHVzaChzdWJpdGVtKTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHNvcnRlZC5wdXNoKGl0ZW1bMV0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBzb3J0ZWQucHVzaChpdGVtLnZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgc29ydGVkLnB1c2goaXRlbSk7XHJcbiAgICB9XHJcbiAgfSlcclxuICB2YXIgbWluRGF0YSA9IHlEYXRhLm1pbiB8fCAwO1xyXG4gIHZhciBtYXhEYXRhID0geURhdGEubWF4IHx8IDA7XHJcbiAgaWYgKHNvcnRlZC5sZW5ndGggPiAwKSB7XHJcbiAgICBtaW5EYXRhID0gTWF0aC5taW4uYXBwbHkodGhpcywgc29ydGVkKTtcclxuICAgIG1heERhdGEgPSBNYXRoLm1heC5hcHBseSh0aGlzLCBzb3J0ZWQpO1xyXG4gIH1cclxuICAvL+S4uuS6huWFvOWuuXYxLjkuMOS5i+WJjeeahOmhueebrlxyXG4gIC8vIGlmIChpbmRleCA+IC0xKSB7XHJcbiAgLy8gICBpZiAodHlwZW9mIG9wdHMueUF4aXMuZGF0YVtpbmRleF0ubWluID09PSAnbnVtYmVyJykge1xyXG4gIC8vICAgICBtaW5EYXRhID0gTWF0aC5taW4ob3B0cy55QXhpcy5kYXRhW2luZGV4XS5taW4sIG1pbkRhdGEpO1xyXG4gIC8vICAgfVxyXG4gIC8vICAgaWYgKHR5cGVvZiBvcHRzLnlBeGlzLmRhdGFbaW5kZXhdLm1heCA9PT0gJ251bWJlcicpIHtcclxuICAvLyAgICAgbWF4RGF0YSA9IE1hdGgubWF4KG9wdHMueUF4aXMuZGF0YVtpbmRleF0ubWF4LCBtYXhEYXRhKTtcclxuICAvLyAgIH1cclxuICAvLyB9IGVsc2Uge1xyXG4gIC8vICAgaWYgKHR5cGVvZiBvcHRzLnlBeGlzLm1pbiA9PT0gJ251bWJlcicpIHtcclxuICAvLyAgICAgbWluRGF0YSA9IE1hdGgubWluKG9wdHMueUF4aXMubWluLCBtaW5EYXRhKTtcclxuICAvLyAgIH1cclxuICAvLyAgIGlmICh0eXBlb2Ygb3B0cy55QXhpcy5tYXggPT09ICdudW1iZXInKSB7XHJcbiAgLy8gICAgIG1heERhdGEgPSBNYXRoLm1heChvcHRzLnlBeGlzLm1heCwgbWF4RGF0YSk7XHJcbiAgLy8gICB9XHJcbiAgLy8gfVxyXG4gIGlmIChtaW5EYXRhID09PSBtYXhEYXRhKSB7XHJcbiAgICB2YXIgcmFuZ2VTcGFuID0gbWF4RGF0YSB8fCAxMDtcclxuICAgIG1heERhdGEgKz0gcmFuZ2VTcGFuO1xyXG4gIH1cclxuICB2YXIgZGF0YVJhbmdlID0gZ2V0RGF0YVJhbmdlKG1pbkRhdGEsIG1heERhdGEpO1xyXG4gIHZhciBtaW5SYW5nZSA9IHlEYXRhLm1pbiA9PT0gdW5kZWZpbmVkIHx8IHlEYXRhLm1pbiA9PT0gbnVsbCA/IGRhdGFSYW5nZS5taW5SYW5nZSA6IHlEYXRhLm1pbjtcclxuICB2YXIgbWF4UmFuZ2UgPSB5RGF0YS5tYXggPT09IHVuZGVmaW5lZCB8fCB5RGF0YS5taW4gPT09IG51bGwgPyBkYXRhUmFuZ2UubWF4UmFuZ2UgOiB5RGF0YS5tYXg7XHJcbiAgdmFyIHJhbmdlID0gW107XHJcbiAgdmFyIGVhY2hSYW5nZSA9IChtYXhSYW5nZSAtIG1pblJhbmdlKSAvIG9wdHMueUF4aXMuc3BsaXROdW1iZXI7XHJcbiAgZm9yICh2YXIgaSA9IDA7IGkgPD0gb3B0cy55QXhpcy5zcGxpdE51bWJlcjsgaSsrKSB7XHJcbiAgICByYW5nZS5wdXNoKG1pblJhbmdlICsgZWFjaFJhbmdlICogaSk7XHJcbiAgfVxyXG4gIHJldHVybiByYW5nZS5yZXZlcnNlKCk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNhbFlBeGlzRGF0YShzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCkge1xyXG4gIC8v5aCG5Y+g5Zu+6YeN566XWei9tFxyXG4gIHZhciBjb2x1bW5zdHlsZSA9IGFzc2lnbih7fSwge1xyXG4gICAgdHlwZTogXCJcIlxyXG4gIH0sIG9wdHMuZXh0cmEuY29sdW1uKTtcclxuICAvL+WmguaenOaYr+WkmlnovbTvvIzph43mlrDorqHnrpdcclxuICB2YXIgWUxlbmd0aCA9IG9wdHMueUF4aXMuZGF0YS5sZW5ndGg7XHJcbiAgdmFyIG5ld1NlcmllcyA9IG5ldyBBcnJheShZTGVuZ3RoKTtcclxuICBpZiAoWUxlbmd0aCA+IDApIHtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgWUxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIG5ld1Nlcmllc1tpXSA9IFtdO1xyXG4gICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHNlcmllcy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgIGlmIChzZXJpZXNbal0uaW5kZXggPT0gaSkge1xyXG4gICAgICAgICAgbmV3U2VyaWVzW2ldLnB1c2goc2VyaWVzW2pdKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHZhciByYW5nZXNBcnIgPSBuZXcgQXJyYXkoWUxlbmd0aCk7XHJcbiAgICB2YXIgcmFuZ2VzRm9ybWF0QXJyID0gbmV3IEFycmF5KFlMZW5ndGgpO1xyXG4gICAgdmFyIHlBeGlzV2lkdGhBcnIgPSBuZXcgQXJyYXkoWUxlbmd0aCk7XHJcblxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBZTGVuZ3RoOyBpKyspIHtcclxuICAgICAgbGV0IHlEYXRhID0gb3B0cy55QXhpcy5kYXRhW2ldO1xyXG4gICAgICAvL+WmguaenOaAu+W8gOWFs+S4jeaYvuekuu+8jOW8uuWItuavj+S4qlnovbTkuLrkuI3mmL7npLpcclxuICAgICAgaWYgKG9wdHMueUF4aXMuZGlzYWJsZWQgPT0gdHJ1ZSkge1xyXG4gICAgICAgIHlEYXRhLmRpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICBpZih5RGF0YS50eXBlID09PSAnY2F0ZWdvcmllcycpe1xyXG4gICAgICAgIGlmKCF5RGF0YS5mb3JtYXR0ZXIpe1xyXG4gICAgICAgICAgeURhdGEuZm9ybWF0dGVyID0gKHZhbCkgPT4ge3JldHVybiB2YWwgKyAoeURhdGEudW5pdCB8fCAnJyl9O1xyXG4gICAgICAgIH1cclxuICAgICAgICB5RGF0YS5jYXRlZ29yaWVzID0geURhdGEuY2F0ZWdvcmllcyB8fCBvcHRzLmNhdGVnb3JpZXM7XHJcbiAgICAgICAgcmFuZ2VzQXJyW2ldID0geURhdGEuY2F0ZWdvcmllcztcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgaWYoIXlEYXRhLmZvcm1hdHRlcil7XHJcbiAgICAgICAgICB5RGF0YS5mb3JtYXR0ZXIgPSAodmFsKSA9PiB7cmV0dXJuIHZhbC50b0ZpeGVkKHlEYXRhLnRvZml4KSArICh5RGF0YS51bml0IHx8ICcnKX07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJhbmdlc0FycltpXSA9IGdldFlBeGlzVGV4dExpc3QobmV3U2VyaWVzW2ldLCBvcHRzLCBjb25maWcsIGNvbHVtbnN0eWxlLnR5cGUsIHlEYXRhLCBpKTtcclxuICAgICAgfVxyXG4gICAgICBsZXQgeUF4aXNGb250U2l6ZXMgPSB5RGF0YS5mb250U2l6ZSAqIG9wdHMucGl4IHx8IGNvbmZpZy5mb250U2l6ZTtcclxuICAgICAgeUF4aXNXaWR0aEFycltpXSA9IHtcclxuICAgICAgICBwb3NpdGlvbjogeURhdGEucG9zaXRpb24gPyB5RGF0YS5wb3NpdGlvbiA6ICdsZWZ0JyxcclxuICAgICAgICB3aWR0aDogMFxyXG4gICAgICB9O1xyXG4gICAgICByYW5nZXNGb3JtYXRBcnJbaV0gPSByYW5nZXNBcnJbaV0ubWFwKGZ1bmN0aW9uKGl0ZW1zKSB7XHJcbiAgICAgICAgaXRlbXMgPSB5RGF0YS5mb3JtYXR0ZXIoaXRlbXMpO1xyXG4gICAgICAgIHlBeGlzV2lkdGhBcnJbaV0ud2lkdGggPSBNYXRoLm1heCh5QXhpc1dpZHRoQXJyW2ldLndpZHRoLCBtZWFzdXJlVGV4dChpdGVtcywgeUF4aXNGb250U2l6ZXMsIGNvbnRleHQpICsgNSk7XHJcbiAgICAgICAgcmV0dXJuIGl0ZW1zO1xyXG4gICAgICB9KTtcclxuICAgICAgbGV0IGNhbGlicmF0aW9uID0geURhdGEuY2FsaWJyYXRpb24gPyA0ICogb3B0cy5waXggOiAwO1xyXG4gICAgICB5QXhpc1dpZHRoQXJyW2ldLndpZHRoICs9IGNhbGlicmF0aW9uICsgMyAqIG9wdHMucGl4O1xyXG4gICAgICBpZiAoeURhdGEuZGlzYWJsZWQgPT09IHRydWUpIHtcclxuICAgICAgICB5QXhpc1dpZHRoQXJyW2ldLndpZHRoID0gMDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0gZWxzZSB7XHJcbiAgICB2YXIgcmFuZ2VzQXJyID0gbmV3IEFycmF5KDEpO1xyXG4gICAgdmFyIHJhbmdlc0Zvcm1hdEFyciA9IG5ldyBBcnJheSgxKTtcclxuICAgIHZhciB5QXhpc1dpZHRoQXJyID0gbmV3IEFycmF5KDEpO1xyXG4gICAgaWYob3B0cy50eXBlID09PSAnYmFyJyl7XHJcbiAgICAgIHJhbmdlc0FyclswXSA9IG9wdHMuY2F0ZWdvcmllcztcclxuICAgICAgaWYoIW9wdHMueUF4aXMuZm9ybWF0dGVyKXtcclxuICAgICAgICBvcHRzLnlBeGlzLmZvcm1hdHRlciA9ICh2YWwpID0+IHtyZXR1cm4gdmFsICsgKG9wdHMueUF4aXMudW5pdCB8fCAnJyl9XHJcbiAgICAgIH1cclxuICAgIH1lbHNle1xyXG4gICAgICBpZighb3B0cy55QXhpcy5mb3JtYXR0ZXIpe1xyXG4gICAgICAgIG9wdHMueUF4aXMuZm9ybWF0dGVyID0gKHZhbCkgPT4ge3JldHVybiB2YWwudG9GaXhlZChvcHRzLnlBeGlzLnRvZml4ICkgKyAob3B0cy55QXhpcy51bml0IHx8ICcnKX1cclxuICAgICAgfVxyXG4gICAgICByYW5nZXNBcnJbMF0gPSBnZXRZQXhpc1RleHRMaXN0KHNlcmllcywgb3B0cywgY29uZmlnLCBjb2x1bW5zdHlsZS50eXBlLCB7fSk7XHJcbiAgICB9XHJcbiAgICB5QXhpc1dpZHRoQXJyWzBdID0ge1xyXG4gICAgICBwb3NpdGlvbjogJ2xlZnQnLFxyXG4gICAgICB3aWR0aDogMFxyXG4gICAgfTtcclxuICAgIHZhciB5QXhpc0ZvbnRTaXplID0gb3B0cy55QXhpcy5mb250U2l6ZSAqIG9wdHMucGl4IHx8IGNvbmZpZy5mb250U2l6ZTtcclxuICAgIHJhbmdlc0Zvcm1hdEFyclswXSA9IHJhbmdlc0FyclswXS5tYXAoZnVuY3Rpb24oaXRlbSkge1xyXG4gICAgICBpdGVtID0gb3B0cy55QXhpcy5mb3JtYXR0ZXIoaXRlbSk7XHJcbiAgICAgIHlBeGlzV2lkdGhBcnJbMF0ud2lkdGggPSBNYXRoLm1heCh5QXhpc1dpZHRoQXJyWzBdLndpZHRoLCBtZWFzdXJlVGV4dChpdGVtLCB5QXhpc0ZvbnRTaXplLCBjb250ZXh0KSArIDUpO1xyXG4gICAgICByZXR1cm4gaXRlbTtcclxuICAgIH0pO1xyXG4gICAgeUF4aXNXaWR0aEFyclswXS53aWR0aCArPSAzICogb3B0cy5waXg7XHJcbiAgICBpZiAob3B0cy55QXhpcy5kaXNhYmxlZCA9PT0gdHJ1ZSkge1xyXG4gICAgICB5QXhpc1dpZHRoQXJyWzBdID0ge1xyXG4gICAgICAgIHBvc2l0aW9uOiAnbGVmdCcsXHJcbiAgICAgICAgd2lkdGg6IDBcclxuICAgICAgfTtcclxuICAgICAgb3B0cy55QXhpcy5kYXRhWzBdID0ge1xyXG4gICAgICAgIGRpc2FibGVkOiB0cnVlXHJcbiAgICAgIH07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBvcHRzLnlBeGlzLmRhdGFbMF0gPSB7XHJcbiAgICAgICAgZGlzYWJsZWQ6IGZhbHNlLFxyXG4gICAgICAgIHBvc2l0aW9uOiAnbGVmdCcsXHJcbiAgICAgICAgbWF4OiBvcHRzLnlBeGlzLm1heCxcclxuICAgICAgICBtaW46IG9wdHMueUF4aXMubWluLFxyXG4gICAgICAgIGZvcm1hdHRlcjogb3B0cy55QXhpcy5mb3JtYXR0ZXJcclxuICAgICAgfTtcclxuICAgICAgaWYob3B0cy50eXBlID09PSAnYmFyJyl7XHJcbiAgICAgICAgb3B0cy55QXhpcy5kYXRhWzBdLmNhdGVnb3JpZXMgPSBvcHRzLmNhdGVnb3JpZXM7XHJcbiAgICAgICAgb3B0cy55QXhpcy5kYXRhWzBdLnR5cGUgPSAnY2F0ZWdvcmllcyc7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIHtcclxuICAgIHJhbmdlc0Zvcm1hdDogcmFuZ2VzRm9ybWF0QXJyLFxyXG4gICAgcmFuZ2VzOiByYW5nZXNBcnIsXHJcbiAgICB5QXhpc1dpZHRoOiB5QXhpc1dpZHRoQXJyXHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gY2FsVG9vbHRpcFlBeGlzRGF0YShwb2ludCwgc2VyaWVzLCBvcHRzLCBjb25maWcsIGVhY2hTcGFjaW5nKSB7XHJcbiAgbGV0IHJhbmdlcyA9IFtdLmNvbmNhdChvcHRzLmNoYXJ0RGF0YS55QXhpc0RhdGEucmFuZ2VzKTtcclxuICBsZXQgc3BhY2luZ1ZhbGlkID0gb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMF0gLSBvcHRzLmFyZWFbMl07XHJcbiAgbGV0IG1pbkF4aXMgPSBvcHRzLmFyZWFbMF07XHJcbiAgbGV0IGl0ZW1zID0gW107XHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCByYW5nZXMubGVuZ3RoOyBpKyspIHtcclxuICAgIGxldCBtYXhWYWwgPSByYW5nZXNbaV0uc2hpZnQoKTtcclxuICAgIGxldCBtaW5WYWwgPSByYW5nZXNbaV0ucG9wKCk7XHJcbiAgICBsZXQgaXRlbSA9IG1heFZhbCAtIChtYXhWYWwgLSBtaW5WYWwpICogKHBvaW50IC0gbWluQXhpcykgLyBzcGFjaW5nVmFsaWQ7XHJcbiAgICBpdGVtID0gb3B0cy55QXhpcy5kYXRhW2ldLmZvcm1hdHRlciA/IG9wdHMueUF4aXMuZGF0YVtpXS5mb3JtYXR0ZXIoaXRlbSkgOiBpdGVtLnRvRml4ZWQoMCk7XHJcbiAgICBpdGVtcy5wdXNoKFN0cmluZyhpdGVtKSlcclxuICB9XHJcbiAgcmV0dXJuIGl0ZW1zO1xyXG59XHJcblxyXG5mdW5jdGlvbiBjYWxNYXJrTGluZURhdGEocG9pbnRzLCBvcHRzKSB7XHJcbiAgbGV0IG1pblJhbmdlLCBtYXhSYW5nZTtcclxuICBsZXQgc3BhY2luZ1ZhbGlkID0gb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMF0gLSBvcHRzLmFyZWFbMl07XHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBwb2ludHMubGVuZ3RoOyBpKyspIHtcclxuICAgIHBvaW50c1tpXS55QXhpc0luZGV4ID0gcG9pbnRzW2ldLnlBeGlzSW5kZXggPyBwb2ludHNbaV0ueUF4aXNJbmRleCA6IDA7XHJcbiAgICBsZXQgcmFuZ2UgPSBbXS5jb25jYXQob3B0cy5jaGFydERhdGEueUF4aXNEYXRhLnJhbmdlc1twb2ludHNbaV0ueUF4aXNJbmRleF0pO1xyXG4gICAgbWluUmFuZ2UgPSByYW5nZS5wb3AoKTtcclxuICAgIG1heFJhbmdlID0gcmFuZ2Uuc2hpZnQoKTtcclxuICAgIGxldCBoZWlnaHQgPSBzcGFjaW5nVmFsaWQgKiAocG9pbnRzW2ldLnZhbHVlIC0gbWluUmFuZ2UpIC8gKG1heFJhbmdlIC0gbWluUmFuZ2UpO1xyXG4gICAgcG9pbnRzW2ldLnkgPSBvcHRzLmhlaWdodCAtIE1hdGgucm91bmQoaGVpZ2h0KSAtIG9wdHMuYXJlYVsyXTtcclxuICB9XHJcbiAgcmV0dXJuIHBvaW50cztcclxufVxyXG5cclxuZnVuY3Rpb24gY29udGV4dFJvdGF0ZShjb250ZXh0LCBvcHRzKSB7XHJcbiAgaWYgKG9wdHMucm90YXRlTG9jayAhPT0gdHJ1ZSkge1xyXG4gICAgY29udGV4dC50cmFuc2xhdGUob3B0cy5oZWlnaHQsIDApO1xyXG4gICAgY29udGV4dC5yb3RhdGUoOTAgKiBNYXRoLlBJIC8gMTgwKTtcclxuICB9IGVsc2UgaWYgKG9wdHMuX3JvdGF0ZV8gIT09IHRydWUpIHtcclxuICAgIGNvbnRleHQudHJhbnNsYXRlKG9wdHMuaGVpZ2h0LCAwKTtcclxuICAgIGNvbnRleHQucm90YXRlKDkwICogTWF0aC5QSSAvIDE4MCk7XHJcbiAgICBvcHRzLl9yb3RhdGVfID0gdHJ1ZTtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRyYXdQb2ludFNoYXBlKHBvaW50cywgY29sb3IsIHNoYXBlLCBjb250ZXh0LCBvcHRzKSB7XHJcbiAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICBpZiAob3B0cy5kYXRhUG9pbnRTaGFwZVR5cGUgPT0gJ2hvbGxvdycpIHtcclxuICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoY29sb3IpO1xyXG4gICAgY29udGV4dC5zZXRGaWxsU3R5bGUob3B0cy5iYWNrZ3JvdW5kKTtcclxuICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKDIgKiBvcHRzLnBpeCk7XHJcbiAgfSBlbHNlIHtcclxuICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoXCIjZmZmZmZmXCIpO1xyXG4gICAgY29udGV4dC5zZXRGaWxsU3R5bGUoY29sb3IpO1xyXG4gICAgY29udGV4dC5zZXRMaW5lV2lkdGgoMSAqIG9wdHMucGl4KTtcclxuICB9XHJcbiAgaWYgKHNoYXBlID09PSAnZGlhbW9uZCcpIHtcclxuICAgIHBvaW50cy5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICAgIGlmIChpdGVtICE9PSBudWxsKSB7XHJcbiAgICAgICAgY29udGV4dC5tb3ZlVG8oaXRlbS54LCBpdGVtLnkgLSA0LjUpO1xyXG4gICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCAtIDQuNSwgaXRlbS55KTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLngsIGl0ZW0ueSArIDQuNSk7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbS54ICsgNC41LCBpdGVtLnkpO1xyXG4gICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCwgaXRlbS55IC0gNC41KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfSBlbHNlIGlmIChzaGFwZSA9PT0gJ2NpcmNsZScpIHtcclxuICAgIHBvaW50cy5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICAgIGlmIChpdGVtICE9PSBudWxsKSB7XHJcbiAgICAgICAgY29udGV4dC5tb3ZlVG8oaXRlbS54ICsgMi41ICogb3B0cy5waXgsIGl0ZW0ueSk7XHJcbiAgICAgICAgY29udGV4dC5hcmMoaXRlbS54LCBpdGVtLnksIDMgKiBvcHRzLnBpeCwgMCwgMiAqIE1hdGguUEksIGZhbHNlKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfSBlbHNlIGlmIChzaGFwZSA9PT0gJ3NxdWFyZScpIHtcclxuICAgIHBvaW50cy5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICAgIGlmIChpdGVtICE9PSBudWxsKSB7XHJcbiAgICAgICAgY29udGV4dC5tb3ZlVG8oaXRlbS54IC0gMy41LCBpdGVtLnkgLSAzLjUpO1xyXG4gICAgICAgIGNvbnRleHQucmVjdChpdGVtLnggLSAzLjUsIGl0ZW0ueSAtIDMuNSwgNywgNyk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH0gZWxzZSBpZiAoc2hhcGUgPT09ICd0cmlhbmdsZScpIHtcclxuICAgIHBvaW50cy5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICAgIGlmIChpdGVtICE9PSBudWxsKSB7XHJcbiAgICAgICAgY29udGV4dC5tb3ZlVG8oaXRlbS54LCBpdGVtLnkgLSA0LjUpO1xyXG4gICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCAtIDQuNSwgaXRlbS55ICsgNC41KTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLnggKyA0LjUsIGl0ZW0ueSArIDQuNSk7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbS54LCBpdGVtLnkgLSA0LjUpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9IGVsc2UgaWYgKHNoYXBlID09PSAndHJpYW5nbGUnKSB7XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG4gIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgY29udGV4dC5maWxsKCk7XHJcbiAgY29udGV4dC5zdHJva2UoKTtcclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd1JpbmdUaXRsZShvcHRzLCBjb25maWcsIGNvbnRleHQsIGNlbnRlcikge1xyXG4gIHZhciB0aXRsZWZvbnRTaXplID0gb3B0cy50aXRsZS5mb250U2l6ZSB8fCBjb25maWcudGl0bGVGb250U2l6ZTtcclxuICB2YXIgc3VidGl0bGVmb250U2l6ZSA9IG9wdHMuc3VidGl0bGUuZm9udFNpemUgfHwgY29uZmlnLnN1YnRpdGxlRm9udFNpemU7XHJcbiAgdmFyIHRpdGxlID0gb3B0cy50aXRsZS5uYW1lIHx8ICcnO1xyXG4gIHZhciBzdWJ0aXRsZSA9IG9wdHMuc3VidGl0bGUubmFtZSB8fCAnJztcclxuICB2YXIgdGl0bGVGb250Q29sb3IgPSBvcHRzLnRpdGxlLmNvbG9yIHx8IG9wdHMuZm9udENvbG9yO1xyXG4gIHZhciBzdWJ0aXRsZUZvbnRDb2xvciA9IG9wdHMuc3VidGl0bGUuY29sb3IgfHwgb3B0cy5mb250Q29sb3I7XHJcbiAgdmFyIHRpdGxlSGVpZ2h0ID0gdGl0bGUgPyB0aXRsZWZvbnRTaXplIDogMDtcclxuICB2YXIgc3VidGl0bGVIZWlnaHQgPSBzdWJ0aXRsZSA/IHN1YnRpdGxlZm9udFNpemUgOiAwO1xyXG4gIHZhciBtYXJnaW4gPSA1O1xyXG4gIGlmIChzdWJ0aXRsZSkge1xyXG4gICAgdmFyIHRleHRXaWR0aCA9IG1lYXN1cmVUZXh0KHN1YnRpdGxlLCBzdWJ0aXRsZWZvbnRTaXplICogb3B0cy5waXgsIGNvbnRleHQpO1xyXG4gICAgdmFyIHN0YXJ0WCA9IGNlbnRlci54IC0gdGV4dFdpZHRoIC8gMiArIChvcHRzLnN1YnRpdGxlLm9mZnNldFh8fCAwKSAqIG9wdHMucGl4IDtcclxuICAgIHZhciBzdGFydFkgPSBjZW50ZXIueSArIHN1YnRpdGxlZm9udFNpemUgKiBvcHRzLnBpeCAvIDIgKyAob3B0cy5zdWJ0aXRsZS5vZmZzZXRZIHx8IDApICogb3B0cy5waXg7XHJcbiAgICBpZiAodGl0bGUpIHtcclxuICAgICAgc3RhcnRZICs9ICh0aXRsZUhlaWdodCAqIG9wdHMucGl4ICsgbWFyZ2luKSAvIDI7XHJcbiAgICB9XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5zZXRGb250U2l6ZShzdWJ0aXRsZWZvbnRTaXplICogb3B0cy5waXgpO1xyXG4gICAgY29udGV4dC5zZXRGaWxsU3R5bGUoc3VidGl0bGVGb250Q29sb3IpO1xyXG4gICAgY29udGV4dC5maWxsVGV4dChzdWJ0aXRsZSwgc3RhcnRYLCBzdGFydFkpO1xyXG4gICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgfVxyXG4gIGlmICh0aXRsZSkge1xyXG4gICAgdmFyIF90ZXh0V2lkdGggPSBtZWFzdXJlVGV4dCh0aXRsZSwgdGl0bGVmb250U2l6ZSAqIG9wdHMucGl4LCBjb250ZXh0KTtcclxuICAgIHZhciBfc3RhcnRYID0gY2VudGVyLnggLSBfdGV4dFdpZHRoIC8gMiArIChvcHRzLnRpdGxlLm9mZnNldFggfHwgMCk7XHJcbiAgICB2YXIgX3N0YXJ0WSA9IGNlbnRlci55ICsgdGl0bGVmb250U2l6ZSAqIG9wdHMucGl4IC8gMiArIChvcHRzLnRpdGxlLm9mZnNldFkgfHwgMCkgKiBvcHRzLnBpeDtcclxuICAgIGlmIChzdWJ0aXRsZSkge1xyXG4gICAgICBfc3RhcnRZIC09IChzdWJ0aXRsZUhlaWdodCAqIG9wdHMucGl4ICsgbWFyZ2luKSAvIDI7XHJcbiAgICB9XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5zZXRGb250U2l6ZSh0aXRsZWZvbnRTaXplICogb3B0cy5waXgpO1xyXG4gICAgY29udGV4dC5zZXRGaWxsU3R5bGUodGl0bGVGb250Q29sb3IpO1xyXG4gICAgY29udGV4dC5maWxsVGV4dCh0aXRsZSwgX3N0YXJ0WCwgX3N0YXJ0WSk7XHJcbiAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgY29udGV4dC5zdHJva2UoKTtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRyYXdQb2ludFRleHQocG9pbnRzLCBzZXJpZXMsIGNvbmZpZywgY29udGV4dCwgb3B0cykge1xyXG4gIC8vIOe7mOWItuaVsOaNruaWh+ahiFxyXG4gIHZhciBkYXRhID0gc2VyaWVzLmRhdGE7XHJcbiAgdmFyIHRleHRPZmZzZXQgPSBzZXJpZXMudGV4dE9mZnNldCA/IHNlcmllcy50ZXh0T2Zmc2V0IDogMDtcclxuICBwb2ludHMuZm9yRWFjaChmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgaWYgKGl0ZW0gIT09IG51bGwpIHtcclxuICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgdmFyIGZvbnRTaXplID0gc2VyaWVzLnRleHRTaXplID8gc2VyaWVzLnRleHRTaXplICogb3B0cy5waXggOiBjb25maWcuZm9udFNpemU7XHJcbiAgICAgIGNvbnRleHQuc2V0Rm9udFNpemUoZm9udFNpemUpO1xyXG4gICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShzZXJpZXMudGV4dENvbG9yIHx8IG9wdHMuZm9udENvbG9yKTtcclxuICAgICAgdmFyIHZhbHVlID0gZGF0YVtpbmRleF1cclxuICAgICAgaWYgKHR5cGVvZiBkYXRhW2luZGV4XSA9PT0gJ29iamVjdCcgJiYgZGF0YVtpbmRleF0gIT09IG51bGwpIHtcclxuICAgICAgICBpZiAoZGF0YVtpbmRleF0uY29uc3RydWN0b3IudG9TdHJpbmcoKS5pbmRleE9mKCdBcnJheScpPi0xKSB7XHJcbiAgICAgICAgICB2YWx1ZSA9IGRhdGFbaW5kZXhdWzFdO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB2YWx1ZSA9IGRhdGFbaW5kZXhdLnZhbHVlXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHZhciBmb3JtYXRWYWwgPSBzZXJpZXMuZm9ybWF0dGVyID8gc2VyaWVzLmZvcm1hdHRlcih2YWx1ZSxpbmRleCkgOiB2YWx1ZTtcclxuICAgICAgY29udGV4dC5zZXRUZXh0QWxpZ24oJ2NlbnRlcicpO1xyXG4gICAgICBjb250ZXh0LmZpbGxUZXh0KFN0cmluZyhmb3JtYXRWYWwpLCBpdGVtLngsIGl0ZW0ueSAtIDQgKyB0ZXh0T2Zmc2V0ICogb3B0cy5waXgpO1xyXG4gICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICBjb250ZXh0LnNldFRleHRBbGlnbignbGVmdCcpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3QmFyUG9pbnRUZXh0KHBvaW50cywgc2VyaWVzLCBjb25maWcsIGNvbnRleHQsIG9wdHMpIHtcclxuICAvLyDnu5jliLbmlbDmja7mlofmoYhcclxuICB2YXIgZGF0YSA9IHNlcmllcy5kYXRhO1xyXG4gIHZhciB0ZXh0T2Zmc2V0ID0gc2VyaWVzLnRleHRPZmZzZXQgPyBzZXJpZXMudGV4dE9mZnNldCA6IDA7XHJcbiAgcG9pbnRzLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgIGlmIChpdGVtICE9PSBudWxsKSB7XHJcbiAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgIHZhciBmb250U2l6ZSA9IHNlcmllcy50ZXh0U2l6ZSA/IHNlcmllcy50ZXh0U2l6ZSAqIG9wdHMucGl4IDogY29uZmlnLmZvbnRTaXplO1xyXG4gICAgICBjb250ZXh0LnNldEZvbnRTaXplKGZvbnRTaXplKTtcclxuICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoc2VyaWVzLnRleHRDb2xvciB8fCBvcHRzLmZvbnRDb2xvcik7XHJcbiAgICAgIHZhciB2YWx1ZSA9IGRhdGFbaW5kZXhdXHJcbiAgICAgIGlmICh0eXBlb2YgZGF0YVtpbmRleF0gPT09ICdvYmplY3QnICYmIGRhdGFbaW5kZXhdICE9PSBudWxsKSB7XHJcbiAgICAgICAgdmFsdWUgPSBkYXRhW2luZGV4XS52YWx1ZSA7XHJcbiAgICAgIH1cclxuICAgICAgdmFyIGZvcm1hdFZhbCA9IHNlcmllcy5mb3JtYXR0ZXIgPyBzZXJpZXMuZm9ybWF0dGVyKHZhbHVlLGluZGV4KSA6IHZhbHVlO1xyXG4gICAgICBjb250ZXh0LnNldFRleHRBbGlnbignbGVmdCcpO1xyXG4gICAgICBjb250ZXh0LmZpbGxUZXh0KFN0cmluZyhmb3JtYXRWYWwpLCBpdGVtLnggKyA0ICogb3B0cy5waXggLCBpdGVtLnkgKyBmb250U2l6ZSAvIDIgLSAzICk7XHJcbiAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRyYXdHYXVnZUxhYmVsKGdhdWdlT3B0aW9uLCByYWRpdXMsIGNlbnRlclBvc2l0aW9uLCBvcHRzLCBjb25maWcsIGNvbnRleHQpIHtcclxuICByYWRpdXMgLT0gZ2F1Z2VPcHRpb24ud2lkdGggLyAyICsgZ2F1Z2VPcHRpb24ubGFiZWxPZmZzZXQgKiBvcHRzLnBpeDtcclxuICBsZXQgdG90YWxBbmdsZSA9IGdhdWdlT3B0aW9uLnN0YXJ0QW5nbGUgLSBnYXVnZU9wdGlvbi5lbmRBbmdsZSArIDE7XHJcbiAgbGV0IHNwbGl0QW5nbGUgPSB0b3RhbEFuZ2xlIC8gZ2F1Z2VPcHRpb24uc3BsaXRMaW5lLnNwbGl0TnVtYmVyO1xyXG4gIGxldCB0b3RhbE51bWJlciA9IGdhdWdlT3B0aW9uLmVuZE51bWJlciAtIGdhdWdlT3B0aW9uLnN0YXJ0TnVtYmVyO1xyXG4gIGxldCBzcGxpdE51bWJlciA9IHRvdGFsTnVtYmVyIC8gZ2F1Z2VPcHRpb24uc3BsaXRMaW5lLnNwbGl0TnVtYmVyO1xyXG4gIGxldCBub3dBbmdsZSA9IGdhdWdlT3B0aW9uLnN0YXJ0QW5nbGU7XHJcbiAgbGV0IG5vd051bWJlciA9IGdhdWdlT3B0aW9uLnN0YXJ0TnVtYmVyO1xyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgZ2F1Z2VPcHRpb24uc3BsaXRMaW5lLnNwbGl0TnVtYmVyICsgMTsgaSsrKSB7XHJcbiAgICB2YXIgcG9zID0ge1xyXG4gICAgICB4OiByYWRpdXMgKiBNYXRoLmNvcyhub3dBbmdsZSAqIE1hdGguUEkpLFxyXG4gICAgICB5OiByYWRpdXMgKiBNYXRoLnNpbihub3dBbmdsZSAqIE1hdGguUEkpXHJcbiAgICB9O1xyXG4gICAgdmFyIGxhYmVsVGV4dCA9IGdhdWdlT3B0aW9uLmZvcm1hdHRlciA/IGdhdWdlT3B0aW9uLmZvcm1hdHRlcihub3dOdW1iZXIpIDogbm93TnVtYmVyO1xyXG4gICAgcG9zLnggKz0gY2VudGVyUG9zaXRpb24ueCAtIG1lYXN1cmVUZXh0KGxhYmVsVGV4dCwgY29uZmlnLmZvbnRTaXplLCBjb250ZXh0KSAvIDI7XHJcbiAgICBwb3MueSArPSBjZW50ZXJQb3NpdGlvbi55O1xyXG4gICAgdmFyIHN0YXJ0WCA9IHBvcy54O1xyXG4gICAgdmFyIHN0YXJ0WSA9IHBvcy55O1xyXG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgIGNvbnRleHQuc2V0Rm9udFNpemUoY29uZmlnLmZvbnRTaXplKTtcclxuICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGdhdWdlT3B0aW9uLmxhYmVsQ29sb3IgfHwgb3B0cy5mb250Q29sb3IpO1xyXG4gICAgY29udGV4dC5maWxsVGV4dChsYWJlbFRleHQsIHN0YXJ0WCwgc3RhcnRZICsgY29uZmlnLmZvbnRTaXplIC8gMik7XHJcbiAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgIG5vd0FuZ2xlICs9IHNwbGl0QW5nbGU7XHJcbiAgICBpZiAobm93QW5nbGUgPj0gMikge1xyXG4gICAgICBub3dBbmdsZSA9IG5vd0FuZ2xlICUgMjtcclxuICAgIH1cclxuICAgIG5vd051bWJlciArPSBzcGxpdE51bWJlcjtcclxuICB9XHJcblxyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3UmFkYXJMYWJlbChhbmdsZUxpc3QsIHJhZGl1cywgY2VudGVyUG9zaXRpb24sIG9wdHMsIGNvbmZpZywgY29udGV4dCkge1xyXG4gIHZhciByYWRhck9wdGlvbiA9IG9wdHMuZXh0cmEucmFkYXIgfHwge307XHJcbiAgcmFkaXVzICs9IGNvbmZpZy5yYWRhckxhYmVsVGV4dE1hcmdpbiAqIG9wdHMucGl4O1xyXG4gIGFuZ2xlTGlzdC5mb3JFYWNoKGZ1bmN0aW9uKGFuZ2xlLCBpbmRleCkge1xyXG4gICAgdmFyIHBvcyA9IHtcclxuICAgICAgeDogcmFkaXVzICogTWF0aC5jb3MoYW5nbGUpLFxyXG4gICAgICB5OiByYWRpdXMgKiBNYXRoLnNpbihhbmdsZSlcclxuICAgIH07XHJcbiAgICB2YXIgcG9zUmVsYXRpdmVDYW52YXMgPSBjb252ZXJ0Q29vcmRpbmF0ZU9yaWdpbihwb3MueCwgcG9zLnksIGNlbnRlclBvc2l0aW9uKTtcclxuICAgIHZhciBzdGFydFggPSBwb3NSZWxhdGl2ZUNhbnZhcy54O1xyXG4gICAgdmFyIHN0YXJ0WSA9IHBvc1JlbGF0aXZlQ2FudmFzLnk7XHJcbiAgICBpZiAodXRpbC5hcHByb3hpbWF0ZWx5RXF1YWwocG9zLngsIDApKSB7XHJcbiAgICAgIHN0YXJ0WCAtPSBtZWFzdXJlVGV4dChvcHRzLmNhdGVnb3JpZXNbaW5kZXhdIHx8ICcnLCBjb25maWcuZm9udFNpemUsIGNvbnRleHQpIC8gMjtcclxuICAgIH0gZWxzZSBpZiAocG9zLnggPCAwKSB7XHJcbiAgICAgIHN0YXJ0WCAtPSBtZWFzdXJlVGV4dChvcHRzLmNhdGVnb3JpZXNbaW5kZXhdIHx8ICcnLCBjb25maWcuZm9udFNpemUsIGNvbnRleHQpO1xyXG4gICAgfVxyXG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgIGNvbnRleHQuc2V0Rm9udFNpemUoY29uZmlnLmZvbnRTaXplKTtcclxuICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKHJhZGFyT3B0aW9uLmxhYmVsQ29sb3IgfHwgb3B0cy5mb250Q29sb3IpO1xyXG4gICAgY29udGV4dC5maWxsVGV4dChvcHRzLmNhdGVnb3JpZXNbaW5kZXhdIHx8ICcnLCBzdGFydFgsIHN0YXJ0WSArIGNvbmZpZy5mb250U2l6ZSAvIDIpO1xyXG4gICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgfSk7XHJcblxyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3UGllVGV4dChzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgcmFkaXVzLCBjZW50ZXIpIHtcclxuICB2YXIgbGluZVJhZGl1cyA9IGNvbmZpZy5waWVDaGFydExpbmVQYWRkaW5nO1xyXG4gIHZhciB0ZXh0T2JqZWN0Q29sbGVjdGlvbiA9IFtdO1xyXG4gIHZhciBsYXN0VGV4dE9iamVjdCA9IG51bGw7XHJcbiAgdmFyIHNlcmllc0NvbnZlcnQgPSBzZXJpZXMubWFwKGZ1bmN0aW9uKGl0ZW0saW5kZXgsc2VyaWVzKSB7XHJcbiAgICB2YXIgdGV4dCA9IGl0ZW0uZm9ybWF0dGVyID8gaXRlbS5mb3JtYXR0ZXIoaXRlbSxpbmRleCxzZXJpZXMpIDogdXRpbC50b0ZpeGVkKGl0ZW0uX3Byb3BvcnRpb25fLnRvRml4ZWQoNCkgKiAxMDApICsgJyUnO1xyXG4gICAgdmFyIGFyYyA9IDIgKiBNYXRoLlBJIC0gKGl0ZW0uX3N0YXJ0XyArIDIgKiBNYXRoLlBJICogaXRlbS5fcHJvcG9ydGlvbl8gLyAyKTtcclxuICAgIGlmIChpdGVtLl9yb3NlX3Byb3BvcnRpb25fKSB7XHJcbiAgICAgIGFyYyA9IDIgKiBNYXRoLlBJIC0gKGl0ZW0uX3N0YXJ0XyArIDIgKiBNYXRoLlBJICogaXRlbS5fcm9zZV9wcm9wb3J0aW9uXyAvIDIpO1xyXG4gICAgfVxyXG4gICAgdmFyIGNvbG9yID0gaXRlbS5jb2xvcjtcclxuICAgIHZhciByYWRpdXMgPSBpdGVtLl9yYWRpdXNfO1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgYXJjOiBhcmMsXHJcbiAgICAgIHRleHQ6IHRleHQsXHJcbiAgICAgIGNvbG9yOiBjb2xvcixcclxuICAgICAgcmFkaXVzOiByYWRpdXMsXHJcbiAgICAgIHRleHRDb2xvcjogaXRlbS50ZXh0Q29sb3IsXHJcbiAgICAgIHRleHRTaXplOiBpdGVtLnRleHRTaXplLFxyXG4gICAgfTtcclxuICB9KTtcclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHNlcmllc0NvbnZlcnQubGVuZ3RoOyBpKyspIHtcclxuICAgIGxldCBpdGVtID0gc2VyaWVzQ29udmVydFtpXTtcclxuICAgIC8vIGxpbmUgZW5kXHJcbiAgICBsZXQgb3JnaW5YMSA9IE1hdGguY29zKGl0ZW0uYXJjKSAqIChpdGVtLnJhZGl1cyArIGxpbmVSYWRpdXMpO1xyXG4gICAgbGV0IG9yZ2luWTEgPSBNYXRoLnNpbihpdGVtLmFyYykgKiAoaXRlbS5yYWRpdXMgKyBsaW5lUmFkaXVzKTtcclxuICAgIC8vIGxpbmUgc3RhcnRcclxuICAgIGxldCBvcmdpblgyID0gTWF0aC5jb3MoaXRlbS5hcmMpICogaXRlbS5yYWRpdXM7XHJcbiAgICBsZXQgb3JnaW5ZMiA9IE1hdGguc2luKGl0ZW0uYXJjKSAqIGl0ZW0ucmFkaXVzO1xyXG4gICAgLy8gdGV4dCBzdGFydFxyXG4gICAgbGV0IG9yZ2luWDMgPSBvcmdpblgxID49IDAgPyBvcmdpblgxICsgY29uZmlnLnBpZUNoYXJ0VGV4dFBhZGRpbmcgOiBvcmdpblgxIC0gY29uZmlnLnBpZUNoYXJ0VGV4dFBhZGRpbmc7XHJcbiAgICBsZXQgb3JnaW5ZMyA9IG9yZ2luWTE7XHJcbiAgICBsZXQgdGV4dFdpZHRoID0gbWVhc3VyZVRleHQoaXRlbS50ZXh0LCBpdGVtLnRleHRTaXplICogb3B0cy5waXggfHwgY29uZmlnLmZvbnRTaXplLCBjb250ZXh0KTtcclxuICAgIGxldCBzdGFydFkgPSBvcmdpblkzO1xyXG4gICAgaWYgKGxhc3RUZXh0T2JqZWN0ICYmIHV0aWwuaXNTYW1lWENvb3JkaW5hdGVBcmVhKGxhc3RUZXh0T2JqZWN0LnN0YXJ0LCB7XHJcbiAgICAgICAgeDogb3JnaW5YM1xyXG4gICAgICB9KSkge1xyXG4gICAgICBpZiAob3JnaW5YMyA+IDApIHtcclxuICAgICAgICBzdGFydFkgPSBNYXRoLm1pbihvcmdpblkzLCBsYXN0VGV4dE9iamVjdC5zdGFydC55KTtcclxuICAgICAgfSBlbHNlIGlmIChvcmdpblgxIDwgMCkge1xyXG4gICAgICAgIHN0YXJ0WSA9IE1hdGgubWF4KG9yZ2luWTMsIGxhc3RUZXh0T2JqZWN0LnN0YXJ0LnkpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmIChvcmdpblkzID4gMCkge1xyXG4gICAgICAgICAgc3RhcnRZID0gTWF0aC5tYXgob3JnaW5ZMywgbGFzdFRleHRPYmplY3Quc3RhcnQueSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHN0YXJ0WSA9IE1hdGgubWluKG9yZ2luWTMsIGxhc3RUZXh0T2JqZWN0LnN0YXJ0LnkpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKG9yZ2luWDMgPCAwKSB7XHJcbiAgICAgIG9yZ2luWDMgLT0gdGV4dFdpZHRoO1xyXG4gICAgfVxyXG4gICAgbGV0IHRleHRPYmplY3QgPSB7XHJcbiAgICAgIGxpbmVTdGFydDoge1xyXG4gICAgICAgIHg6IG9yZ2luWDIsXHJcbiAgICAgICAgeTogb3JnaW5ZMlxyXG4gICAgICB9LFxyXG4gICAgICBsaW5lRW5kOiB7XHJcbiAgICAgICAgeDogb3JnaW5YMSxcclxuICAgICAgICB5OiBvcmdpblkxXHJcbiAgICAgIH0sXHJcbiAgICAgIHN0YXJ0OiB7XHJcbiAgICAgICAgeDogb3JnaW5YMyxcclxuICAgICAgICB5OiBzdGFydFlcclxuICAgICAgfSxcclxuICAgICAgd2lkdGg6IHRleHRXaWR0aCxcclxuICAgICAgaGVpZ2h0OiBjb25maWcuZm9udFNpemUsXHJcbiAgICAgIHRleHQ6IGl0ZW0udGV4dCxcclxuICAgICAgY29sb3I6IGl0ZW0uY29sb3IsXHJcbiAgICAgIHRleHRDb2xvcjogaXRlbS50ZXh0Q29sb3IsXHJcbiAgICAgIHRleHRTaXplOiBpdGVtLnRleHRTaXplXHJcbiAgICB9O1xyXG4gICAgbGFzdFRleHRPYmplY3QgPSBhdm9pZENvbGxpc2lvbih0ZXh0T2JqZWN0LCBsYXN0VGV4dE9iamVjdCk7XHJcbiAgICB0ZXh0T2JqZWN0Q29sbGVjdGlvbi5wdXNoKGxhc3RUZXh0T2JqZWN0KTtcclxuICB9XHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCB0ZXh0T2JqZWN0Q29sbGVjdGlvbi5sZW5ndGg7IGkrKykge1xyXG4gICAgbGV0IGl0ZW0gPSB0ZXh0T2JqZWN0Q29sbGVjdGlvbltpXTtcclxuICAgIGxldCBsaW5lU3RhcnRQb2lzdGlvbiA9IGNvbnZlcnRDb29yZGluYXRlT3JpZ2luKGl0ZW0ubGluZVN0YXJ0LngsIGl0ZW0ubGluZVN0YXJ0LnksIGNlbnRlcik7XHJcbiAgICBsZXQgbGluZUVuZFBvaXN0aW9uID0gY29udmVydENvb3JkaW5hdGVPcmlnaW4oaXRlbS5saW5lRW5kLngsIGl0ZW0ubGluZUVuZC55LCBjZW50ZXIpO1xyXG4gICAgbGV0IHRleHRQb3NpdGlvbiA9IGNvbnZlcnRDb29yZGluYXRlT3JpZ2luKGl0ZW0uc3RhcnQueCwgaXRlbS5zdGFydC55LCBjZW50ZXIpO1xyXG4gICAgY29udGV4dC5zZXRMaW5lV2lkdGgoMSAqIG9wdHMucGl4KTtcclxuICAgIGNvbnRleHQuc2V0Rm9udFNpemUoaXRlbS50ZXh0U2l6ZSAqIG9wdHMucGl4IHx8IGNvbmZpZy5mb250U2l6ZSk7XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShpdGVtLmNvbG9yKTtcclxuICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGl0ZW0uY29sb3IpO1xyXG4gICAgY29udGV4dC5tb3ZlVG8obGluZVN0YXJ0UG9pc3Rpb24ueCwgbGluZVN0YXJ0UG9pc3Rpb24ueSk7XHJcbiAgICBsZXQgY3VydmVTdGFydFggPSBpdGVtLnN0YXJ0LnggPCAwID8gdGV4dFBvc2l0aW9uLnggKyBpdGVtLndpZHRoIDogdGV4dFBvc2l0aW9uLng7XHJcbiAgICBsZXQgdGV4dFN0YXJ0WCA9IGl0ZW0uc3RhcnQueCA8IDAgPyB0ZXh0UG9zaXRpb24ueCAtIDUgOiB0ZXh0UG9zaXRpb24ueCArIDU7XHJcbiAgICBjb250ZXh0LnF1YWRyYXRpY0N1cnZlVG8obGluZUVuZFBvaXN0aW9uLngsIGxpbmVFbmRQb2lzdGlvbi55LCBjdXJ2ZVN0YXJ0WCwgdGV4dFBvc2l0aW9uLnkpO1xyXG4gICAgY29udGV4dC5tb3ZlVG8obGluZVN0YXJ0UG9pc3Rpb24ueCwgbGluZVN0YXJ0UG9pc3Rpb24ueSk7XHJcbiAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICBjb250ZXh0Lm1vdmVUbyh0ZXh0UG9zaXRpb24ueCArIGl0ZW0ud2lkdGgsIHRleHRQb3NpdGlvbi55KTtcclxuICAgIGNvbnRleHQuYXJjKGN1cnZlU3RhcnRYLCB0ZXh0UG9zaXRpb24ueSwgMiwgMCwgMiAqIE1hdGguUEkpO1xyXG4gICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgIGNvbnRleHQuc2V0Rm9udFNpemUoaXRlbS50ZXh0U2l6ZSAqIG9wdHMucGl4IHx8IGNvbmZpZy5mb250U2l6ZSk7XHJcbiAgICBjb250ZXh0LnNldEZpbGxTdHlsZShpdGVtLnRleHRDb2xvciB8fCBvcHRzLmZvbnRDb2xvcik7XHJcbiAgICBjb250ZXh0LmZpbGxUZXh0KGl0ZW0udGV4dCwgdGV4dFN0YXJ0WCwgdGV4dFBvc2l0aW9uLnkgKyAzKTtcclxuICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRyYXdUb29sVGlwU3BsaXRMaW5lKG9mZnNldFgsIG9wdHMsIGNvbmZpZywgY29udGV4dCkge1xyXG4gIHZhciB0b29sVGlwT3B0aW9uID0gb3B0cy5leHRyYS50b29sdGlwIHx8IHt9O1xyXG4gIHRvb2xUaXBPcHRpb24uZ3JpZFR5cGUgPSB0b29sVGlwT3B0aW9uLmdyaWRUeXBlID09IHVuZGVmaW5lZCA/ICdzb2xpZCcgOiB0b29sVGlwT3B0aW9uLmdyaWRUeXBlO1xyXG4gIHRvb2xUaXBPcHRpb24uZGFzaExlbmd0aCA9IHRvb2xUaXBPcHRpb24uZGFzaExlbmd0aCA9PSB1bmRlZmluZWQgPyA0IDogdG9vbFRpcE9wdGlvbi5kYXNoTGVuZ3RoO1xyXG4gIHZhciBzdGFydFkgPSBvcHRzLmFyZWFbMF07XHJcbiAgdmFyIGVuZFkgPSBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXTtcclxuICBpZiAodG9vbFRpcE9wdGlvbi5ncmlkVHlwZSA9PSAnZGFzaCcpIHtcclxuICAgIGNvbnRleHQuc2V0TGluZURhc2goW3Rvb2xUaXBPcHRpb24uZGFzaExlbmd0aCwgdG9vbFRpcE9wdGlvbi5kYXNoTGVuZ3RoXSk7XHJcbiAgfVxyXG4gIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUodG9vbFRpcE9wdGlvbi5ncmlkQ29sb3IgfHwgJyNjY2NjY2MnKTtcclxuICBjb250ZXh0LnNldExpbmVXaWR0aCgxICogb3B0cy5waXgpO1xyXG4gIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgY29udGV4dC5tb3ZlVG8ob2Zmc2V0WCwgc3RhcnRZKTtcclxuICBjb250ZXh0LmxpbmVUbyhvZmZzZXRYLCBlbmRZKTtcclxuICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gIGNvbnRleHQuc2V0TGluZURhc2goW10pO1xyXG4gIGlmICh0b29sVGlwT3B0aW9uLnhBeGlzTGFiZWwpIHtcclxuICAgIGxldCBsYWJlbFRleHQgPSBvcHRzLmNhdGVnb3JpZXNbb3B0cy50b29sdGlwLmluZGV4XTtcclxuICAgIGNvbnRleHQuc2V0Rm9udFNpemUoY29uZmlnLmZvbnRTaXplKTtcclxuICAgIGxldCB0ZXh0V2lkdGggPSBtZWFzdXJlVGV4dChsYWJlbFRleHQsIGNvbmZpZy5mb250U2l6ZSwgY29udGV4dCk7XHJcbiAgICBsZXQgdGV4dFggPSBvZmZzZXRYIC0gMC41ICogdGV4dFdpZHRoO1xyXG4gICAgbGV0IHRleHRZID0gZW5kWTtcclxuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICBjb250ZXh0LnNldEZpbGxTdHlsZShoZXhUb1JnYih0b29sVGlwT3B0aW9uLmxhYmVsQmdDb2xvciB8fCBjb25maWcudG9vbFRpcEJhY2tncm91bmQsIHRvb2xUaXBPcHRpb24ubGFiZWxCZ09wYWNpdHkgfHwgY29uZmlnLnRvb2xUaXBPcGFjaXR5KSk7XHJcbiAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKHRvb2xUaXBPcHRpb24ubGFiZWxCZ0NvbG9yIHx8IGNvbmZpZy50b29sVGlwQmFja2dyb3VuZCk7XHJcbiAgICBjb250ZXh0LnNldExpbmVXaWR0aCgxICogb3B0cy5waXgpO1xyXG4gICAgY29udGV4dC5yZWN0KHRleHRYIC0gY29uZmlnLnRvb2xUaXBQYWRkaW5nLCB0ZXh0WSwgdGV4dFdpZHRoICsgMiAqIGNvbmZpZy50b29sVGlwUGFkZGluZywgY29uZmlnLmZvbnRTaXplICsgMiAqIGNvbmZpZy50b29sVGlwUGFkZGluZyk7XHJcbiAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgIGNvbnRleHQuc2V0Rm9udFNpemUoY29uZmlnLmZvbnRTaXplKTtcclxuICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKHRvb2xUaXBPcHRpb24ubGFiZWxGb250Q29sb3IgfHwgb3B0cy5mb250Q29sb3IpO1xyXG4gICAgY29udGV4dC5maWxsVGV4dChTdHJpbmcobGFiZWxUZXh0KSwgdGV4dFgsIHRleHRZICsgY29uZmlnLnRvb2xUaXBQYWRkaW5nICsgY29uZmlnLmZvbnRTaXplKTtcclxuICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd01hcmtMaW5lKG9wdHMsIGNvbmZpZywgY29udGV4dCkge1xyXG4gIGxldCBtYXJrTGluZU9wdGlvbiA9IGFzc2lnbih7fSwge1xyXG4gICAgdHlwZTogJ3NvbGlkJyxcclxuICAgIGRhc2hMZW5ndGg6IDQsXHJcbiAgICBkYXRhOiBbXVxyXG4gIH0sIG9wdHMuZXh0cmEubWFya0xpbmUpO1xyXG4gIGxldCBzdGFydFggPSBvcHRzLmFyZWFbM107XHJcbiAgbGV0IGVuZFggPSBvcHRzLndpZHRoIC0gb3B0cy5hcmVhWzFdO1xyXG4gIGxldCBwb2ludHMgPSBjYWxNYXJrTGluZURhdGEobWFya0xpbmVPcHRpb24uZGF0YSwgb3B0cyk7XHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBwb2ludHMubGVuZ3RoOyBpKyspIHtcclxuICAgIGxldCBpdGVtID0gYXNzaWduKHt9LCB7XHJcbiAgICAgIGxpbmVDb2xvcjogJyNERTRBNDInLFxyXG4gICAgICBzaG93TGFiZWw6IGZhbHNlLFxyXG4gICAgICBsYWJlbEZvbnRDb2xvcjogJyM2NjY2NjYnLFxyXG4gICAgICBsYWJlbEJnQ29sb3I6ICcjREZFOEZGJyxcclxuICAgICAgbGFiZWxCZ09wYWNpdHk6IDAuOCxcclxuICAgICAgeUF4aXNJbmRleDogMFxyXG4gICAgfSwgcG9pbnRzW2ldKTtcclxuICAgIGlmIChtYXJrTGluZU9wdGlvbi50eXBlID09ICdkYXNoJykge1xyXG4gICAgICBjb250ZXh0LnNldExpbmVEYXNoKFttYXJrTGluZU9wdGlvbi5kYXNoTGVuZ3RoLCBtYXJrTGluZU9wdGlvbi5kYXNoTGVuZ3RoXSk7XHJcbiAgICB9XHJcbiAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKGl0ZW0ubGluZUNvbG9yKTtcclxuICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKDEgKiBvcHRzLnBpeCk7XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5tb3ZlVG8oc3RhcnRYLCBpdGVtLnkpO1xyXG4gICAgY29udGV4dC5saW5lVG8oZW5kWCwgaXRlbS55KTtcclxuICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICBjb250ZXh0LnNldExpbmVEYXNoKFtdKTtcclxuICAgIGlmIChpdGVtLnNob3dMYWJlbCkge1xyXG4gICAgICBsZXQgbGFiZWxUZXh0ID0gb3B0cy55QXhpcy5mb3JtYXR0ZXIgPyBvcHRzLnlBeGlzLmZvcm1hdHRlcihpdGVtLnZhbHVlKSA6IGl0ZW0udmFsdWU7XHJcbiAgICAgIGNvbnRleHQuc2V0Rm9udFNpemUoY29uZmlnLmZvbnRTaXplKTtcclxuICAgICAgbGV0IHRleHRXaWR0aCA9IG1lYXN1cmVUZXh0KGxhYmVsVGV4dCwgY29uZmlnLmZvbnRTaXplLCBjb250ZXh0KTtcclxuICAgICAgbGV0IHlBeGlzV2lkdGggPSBvcHRzLmNoYXJ0RGF0YS55QXhpc0RhdGEueUF4aXNXaWR0aFswXS53aWR0aDtcclxuICAgICAgbGV0IGJnU3RhcnRYID0gb3B0cy5hcmVhWzNdIC0gdGV4dFdpZHRoIC0gY29uZmlnLnRvb2xUaXBQYWRkaW5nICogMjtcclxuICAgICAgbGV0IGJnRW5kWCA9IG9wdHMuYXJlYVszXTtcclxuICAgICAgbGV0IGJnV2lkdGggPSBiZ0VuZFggLSBiZ1N0YXJ0WDtcclxuICAgICAgbGV0IHRleHRYID0gYmdFbmRYIC0gY29uZmlnLnRvb2xUaXBQYWRkaW5nO1xyXG4gICAgICBsZXQgdGV4dFkgPSBpdGVtLnk7XHJcbiAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGhleFRvUmdiKGl0ZW0ubGFiZWxCZ0NvbG9yLCBpdGVtLmxhYmVsQmdPcGFjaXR5KSk7XHJcbiAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoaXRlbS5sYWJlbEJnQ29sb3IpO1xyXG4gICAgICBjb250ZXh0LnNldExpbmVXaWR0aCgxICogb3B0cy5waXgpO1xyXG4gICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LnJlY3QoYmdTdGFydFgsIHRleHRZIC0gMC41ICogY29uZmlnLmZvbnRTaXplIC0gY29uZmlnLnRvb2xUaXBQYWRkaW5nLCBiZ1dpZHRoLCBjb25maWcuZm9udFNpemUgKyAyICogY29uZmlnLnRvb2xUaXBQYWRkaW5nKTtcclxuICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAgIGNvbnRleHQuc2V0Rm9udFNpemUoY29uZmlnLmZvbnRTaXplKTtcclxuICAgICAgY29udGV4dC5zZXRUZXh0QWxpZ24oJ3JpZ2h0Jyk7XHJcbiAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGl0ZW0ubGFiZWxGb250Q29sb3IpO1xyXG4gICAgICBjb250ZXh0LmZpbGxUZXh0KFN0cmluZyhsYWJlbFRleHQpLCB0ZXh0WCwgdGV4dFkgKyAwLjUgKiBjb25maWcuZm9udFNpemUpO1xyXG4gICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICBjb250ZXh0LnNldFRleHRBbGlnbignbGVmdCcpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd1Rvb2xUaXBIb3JpemVudGFsTGluZShvcHRzLCBjb25maWcsIGNvbnRleHQsIGVhY2hTcGFjaW5nLCB4QXhpc1BvaW50cykge1xyXG4gIHZhciB0b29sVGlwT3B0aW9uID0gYXNzaWduKHt9LCB7XHJcbiAgICBncmlkVHlwZTogJ3NvbGlkJyxcclxuICAgIGRhc2hMZW5ndGg6IDRcclxuICB9LCBvcHRzLmV4dHJhLnRvb2x0aXApO1xyXG4gIHZhciBzdGFydFggPSBvcHRzLmFyZWFbM107XHJcbiAgdmFyIGVuZFggPSBvcHRzLndpZHRoIC0gb3B0cy5hcmVhWzFdO1xyXG4gIGlmICh0b29sVGlwT3B0aW9uLmdyaWRUeXBlID09ICdkYXNoJykge1xyXG4gICAgY29udGV4dC5zZXRMaW5lRGFzaChbdG9vbFRpcE9wdGlvbi5kYXNoTGVuZ3RoLCB0b29sVGlwT3B0aW9uLmRhc2hMZW5ndGhdKTtcclxuICB9XHJcbiAgY29udGV4dC5zZXRTdHJva2VTdHlsZSh0b29sVGlwT3B0aW9uLmdyaWRDb2xvciB8fCAnI2NjY2NjYycpO1xyXG4gIGNvbnRleHQuc2V0TGluZVdpZHRoKDEgKiBvcHRzLnBpeCk7XHJcbiAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICBjb250ZXh0Lm1vdmVUbyhzdGFydFgsIG9wdHMudG9vbHRpcC5vZmZzZXQueSk7XHJcbiAgY29udGV4dC5saW5lVG8oZW5kWCwgb3B0cy50b29sdGlwLm9mZnNldC55KTtcclxuICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gIGNvbnRleHQuc2V0TGluZURhc2goW10pO1xyXG4gIGlmICh0b29sVGlwT3B0aW9uLnlBeGlzTGFiZWwpIHtcclxuICAgIGxldCBsYWJlbFRleHQgPSBjYWxUb29sdGlwWUF4aXNEYXRhKG9wdHMudG9vbHRpcC5vZmZzZXQueSwgb3B0cy5zZXJpZXMsIG9wdHMsIGNvbmZpZywgZWFjaFNwYWNpbmcpO1xyXG4gICAgbGV0IHdpZHRoQXJyID0gb3B0cy5jaGFydERhdGEueUF4aXNEYXRhLnlBeGlzV2lkdGg7XHJcbiAgICBsZXQgdFN0YXJ0TGVmdCA9IG9wdHMuYXJlYVszXTtcclxuICAgIGxldCB0U3RhcnRSaWdodCA9IG9wdHMud2lkdGggLSBvcHRzLmFyZWFbMV07XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxhYmVsVGV4dC5sZW5ndGg7IGkrKykge1xyXG4gICAgICBjb250ZXh0LnNldEZvbnRTaXplKGNvbmZpZy5mb250U2l6ZSk7XHJcbiAgICAgIGxldCB0ZXh0V2lkdGggPSBtZWFzdXJlVGV4dChsYWJlbFRleHRbaV0sIGNvbmZpZy5mb250U2l6ZSwgY29udGV4dCk7XHJcbiAgICAgIGxldCBiZ1N0YXJ0WCwgYmdFbmRYLCBiZ1dpZHRoO1xyXG4gICAgICBpZiAod2lkdGhBcnJbaV0ucG9zaXRpb24gPT0gJ2xlZnQnKSB7XHJcbiAgICAgICAgYmdTdGFydFggPSB0U3RhcnRMZWZ0IC0gd2lkdGhBcnJbaV0ud2lkdGg7XHJcbiAgICAgICAgYmdFbmRYID0gTWF0aC5tYXgoYmdTdGFydFgsIGJnU3RhcnRYICsgdGV4dFdpZHRoICsgY29uZmlnLnRvb2xUaXBQYWRkaW5nICogMik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgYmdTdGFydFggPSB0U3RhcnRSaWdodDtcclxuICAgICAgICBiZ0VuZFggPSBNYXRoLm1heChiZ1N0YXJ0WCArIHdpZHRoQXJyW2ldLndpZHRoLCBiZ1N0YXJ0WCArIHRleHRXaWR0aCArIGNvbmZpZy50b29sVGlwUGFkZGluZyAqIDIpO1xyXG4gICAgICB9XHJcbiAgICAgIGJnV2lkdGggPSBiZ0VuZFggLSBiZ1N0YXJ0WDtcclxuICAgICAgbGV0IHRleHRYID0gYmdTdGFydFggKyAoYmdXaWR0aCAtIHRleHRXaWR0aCkgLyAyO1xyXG4gICAgICBsZXQgdGV4dFkgPSBvcHRzLnRvb2x0aXAub2Zmc2V0Lnk7XHJcbiAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGhleFRvUmdiKHRvb2xUaXBPcHRpb24ubGFiZWxCZ0NvbG9yIHx8IGNvbmZpZy50b29sVGlwQmFja2dyb3VuZCwgdG9vbFRpcE9wdGlvbi5sYWJlbEJnT3BhY2l0eSB8fCBjb25maWcudG9vbFRpcE9wYWNpdHkpKTtcclxuICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZSh0b29sVGlwT3B0aW9uLmxhYmVsQmdDb2xvciB8fCBjb25maWcudG9vbFRpcEJhY2tncm91bmQpO1xyXG4gICAgICBjb250ZXh0LnNldExpbmVXaWR0aCgxICogb3B0cy5waXgpO1xyXG4gICAgICBjb250ZXh0LnJlY3QoYmdTdGFydFgsIHRleHRZIC0gMC41ICogY29uZmlnLmZvbnRTaXplIC0gY29uZmlnLnRvb2xUaXBQYWRkaW5nLCBiZ1dpZHRoLCBjb25maWcuZm9udFNpemUgKyAyICpcclxuICAgICAgICBjb25maWcudG9vbFRpcFBhZGRpbmcpO1xyXG4gICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgY29udGV4dC5zZXRGb250U2l6ZShjb25maWcuZm9udFNpemUpO1xyXG4gICAgICBjb250ZXh0LnNldEZpbGxTdHlsZSh0b29sVGlwT3B0aW9uLmxhYmVsRm9udENvbG9yIHx8IG9wdHMuZm9udENvbG9yKTtcclxuICAgICAgY29udGV4dC5maWxsVGV4dChsYWJlbFRleHRbaV0sIHRleHRYLCB0ZXh0WSArIDAuNSAqIGNvbmZpZy5mb250U2l6ZSk7XHJcbiAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgIGlmICh3aWR0aEFycltpXS5wb3NpdGlvbiA9PSAnbGVmdCcpIHtcclxuICAgICAgICB0U3RhcnRMZWZ0IC09ICh3aWR0aEFycltpXS53aWR0aCArIG9wdHMueUF4aXMucGFkZGluZyAqIG9wdHMucGl4KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0U3RhcnRSaWdodCArPSB3aWR0aEFycltpXS53aWR0aCArIG9wdHMueUF4aXMucGFkZGluZyAqIG9wdHMucGl4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3VG9vbFRpcFNwbGl0QXJlYShvZmZzZXRYLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIGVhY2hTcGFjaW5nKSB7XHJcbiAgdmFyIHRvb2xUaXBPcHRpb24gPSBhc3NpZ24oe30sIHtcclxuICAgIGFjdGl2ZUJnQ29sb3I6ICcjMDAwMDAwJyxcclxuICAgIGFjdGl2ZUJnT3BhY2l0eTogMC4wOFxyXG4gIH0sIG9wdHMuZXh0cmEuY29sdW1uKTtcclxuICB2YXIgc3RhcnRZID0gb3B0cy5hcmVhWzBdO1xyXG4gIHZhciBlbmRZID0gb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl07XHJcbiAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICBjb250ZXh0LnNldEZpbGxTdHlsZShoZXhUb1JnYih0b29sVGlwT3B0aW9uLmFjdGl2ZUJnQ29sb3IsIHRvb2xUaXBPcHRpb24uYWN0aXZlQmdPcGFjaXR5KSk7XHJcbiAgY29udGV4dC5yZWN0KG9mZnNldFggLSBlYWNoU3BhY2luZyAvIDIsIHN0YXJ0WSwgZWFjaFNwYWNpbmcsIGVuZFkgLSBzdGFydFkpO1xyXG4gIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgY29udGV4dC5maWxsKCk7XHJcbiAgY29udGV4dC5zZXRGaWxsU3R5bGUoXCIjRkZGRkZGXCIpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3QmFyVG9vbFRpcFNwbGl0QXJlYShvZmZzZXRYLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIGVhY2hTcGFjaW5nKSB7XHJcbiAgdmFyIHRvb2xUaXBPcHRpb24gPSBhc3NpZ24oe30sIHtcclxuICAgIGFjdGl2ZUJnQ29sb3I6ICcjMDAwMDAwJyxcclxuICAgIGFjdGl2ZUJnT3BhY2l0eTogMC4wOFxyXG4gIH0sIG9wdHMuZXh0cmEuYmFyKTtcclxuICB2YXIgc3RhcnRYID0gb3B0cy5hcmVhWzNdO1xyXG4gIHZhciBlbmRYID0gb3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXTtcclxuICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gIGNvbnRleHQuc2V0RmlsbFN0eWxlKGhleFRvUmdiKHRvb2xUaXBPcHRpb24uYWN0aXZlQmdDb2xvciwgdG9vbFRpcE9wdGlvbi5hY3RpdmVCZ09wYWNpdHkpKTtcclxuICBjb250ZXh0LnJlY3QoIHN0YXJ0WCAsb2Zmc2V0WCAtIGVhY2hTcGFjaW5nIC8gMiAsICBlbmRYIC0gc3RhcnRYLGVhY2hTcGFjaW5nKTtcclxuICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gIGNvbnRleHQuZmlsbCgpO1xyXG4gIGNvbnRleHQuc2V0RmlsbFN0eWxlKFwiI0ZGRkZGRlwiKTtcclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd1Rvb2xUaXAodGV4dExpc3QsIG9mZnNldCwgb3B0cywgY29uZmlnLCBjb250ZXh0LCBlYWNoU3BhY2luZywgeEF4aXNQb2ludHMpIHtcclxuICB2YXIgdG9vbFRpcE9wdGlvbiA9IGFzc2lnbih7fSwge1xyXG4gICAgc2hvd0JveDogdHJ1ZSxcclxuICAgIHNob3dBcnJvdzogdHJ1ZSxcclxuICAgIHNob3dDYXRlZ29yeTogZmFsc2UsXHJcbiAgICBiZ0NvbG9yOiAnIzAwMDAwMCcsXHJcbiAgICBiZ09wYWNpdHk6IDAuNyxcclxuICAgIGJvcmRlckNvbG9yOiAnIzAwMDAwMCcsXHJcbiAgICBib3JkZXJXaWR0aDogMCxcclxuICAgIGJvcmRlclJhZGl1czogMCxcclxuICAgIGJvcmRlck9wYWNpdHk6IDAuNyxcclxuICAgIGZvbnRDb2xvcjogJyNGRkZGRkYnLFxyXG4gICAgc3BsaXRMaW5lOiB0cnVlLFxyXG4gIH0sIG9wdHMuZXh0cmEudG9vbHRpcCk7XHJcbiAgaWYodG9vbFRpcE9wdGlvbi5zaG93Q2F0ZWdvcnk9PXRydWUgJiYgb3B0cy5jYXRlZ29yaWVzKXtcclxuICAgIHRleHRMaXN0LnVuc2hpZnQoe3RleHQ6b3B0cy5jYXRlZ29yaWVzW29wdHMudG9vbHRpcC5pbmRleF0sY29sb3I6bnVsbH0pXHJcbiAgfVxyXG4gIHZhciBsZWdlbmRXaWR0aCA9IDQgKiBvcHRzLnBpeDtcclxuICB2YXIgbGVnZW5kTWFyZ2luUmlnaHQgPSA1ICogb3B0cy5waXg7XHJcbiAgdmFyIGFycm93V2lkdGggPSB0b29sVGlwT3B0aW9uLnNob3dBcnJvdyA/IDggKiBvcHRzLnBpeCA6IDA7XHJcbiAgdmFyIGlzT3ZlclJpZ2h0Qm9yZGVyID0gZmFsc2U7XHJcbiAgaWYgKG9wdHMudHlwZSA9PSAnbGluZScgfHwgb3B0cy50eXBlID09ICdhcmVhJyB8fCBvcHRzLnR5cGUgPT0gJ2NhbmRsZScgfHwgb3B0cy50eXBlID09ICdtaXgnKSB7XHJcbiAgICBpZiAodG9vbFRpcE9wdGlvbi5zcGxpdExpbmUgPT0gdHJ1ZSkge1xyXG4gICAgICBkcmF3VG9vbFRpcFNwbGl0TGluZShvcHRzLnRvb2x0aXAub2Zmc2V0LngsIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIG9mZnNldCA9IGFzc2lnbih7XHJcbiAgICB4OiAwLFxyXG4gICAgeTogMFxyXG4gIH0sIG9mZnNldCk7XHJcbiAgb2Zmc2V0LnkgLT0gOCAqIG9wdHMucGl4O1xyXG4gIHZhciB0ZXh0V2lkdGggPSB0ZXh0TGlzdC5tYXAoZnVuY3Rpb24oaXRlbSkge1xyXG4gICAgcmV0dXJuIG1lYXN1cmVUZXh0KGl0ZW0udGV4dCwgY29uZmlnLmZvbnRTaXplLCBjb250ZXh0KTtcclxuICB9KTtcclxuICB2YXIgdG9vbFRpcFdpZHRoID0gbGVnZW5kV2lkdGggKyBsZWdlbmRNYXJnaW5SaWdodCArIDQgKiBjb25maWcudG9vbFRpcFBhZGRpbmcgKyBNYXRoLm1heC5hcHBseShudWxsLCB0ZXh0V2lkdGgpO1xyXG4gIHZhciB0b29sVGlwSGVpZ2h0ID0gMiAqIGNvbmZpZy50b29sVGlwUGFkZGluZyArIHRleHRMaXN0Lmxlbmd0aCAqIGNvbmZpZy50b29sVGlwTGluZUhlaWdodDtcclxuICBpZiAodG9vbFRpcE9wdGlvbi5zaG93Qm94ID09IGZhbHNlKSB7XHJcbiAgICByZXR1cm5cclxuICB9XHJcbiAgLy8gaWYgYmV5b25kIHRoZSByaWdodCBib3JkZXJcclxuICBpZiAob2Zmc2V0LnggLSBNYXRoLmFicyhvcHRzLl9zY3JvbGxEaXN0YW5jZV8gfHwgMCkgKyBhcnJvd1dpZHRoICsgdG9vbFRpcFdpZHRoID4gb3B0cy53aWR0aCkge1xyXG4gICAgaXNPdmVyUmlnaHRCb3JkZXIgPSB0cnVlO1xyXG4gIH1cclxuICBpZiAodG9vbFRpcEhlaWdodCArIG9mZnNldC55ID4gb3B0cy5oZWlnaHQpIHtcclxuICAgIG9mZnNldC55ID0gb3B0cy5oZWlnaHQgLSB0b29sVGlwSGVpZ2h0O1xyXG4gIH1cclxuICAvLyBkcmF3IGJhY2tncm91bmQgcmVjdFxyXG4gIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgY29udGV4dC5zZXRGaWxsU3R5bGUoaGV4VG9SZ2IodG9vbFRpcE9wdGlvbi5iZ0NvbG9yIHx8IGNvbmZpZy50b29sVGlwQmFja2dyb3VuZCwgdG9vbFRpcE9wdGlvbi5iZ09wYWNpdHkgfHwgY29uZmlnLnRvb2xUaXBPcGFjaXR5KSk7XHJcbiAgY29udGV4dC5zZXRMaW5lV2lkdGgodG9vbFRpcE9wdGlvbi5ib3JkZXJXaWR0aCAqIG9wdHMucGl4KTtcclxuICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKGhleFRvUmdiKHRvb2xUaXBPcHRpb24uYm9yZGVyQ29sb3IsIHRvb2xUaXBPcHRpb24uYm9yZGVyT3BhY2l0eSkpO1xyXG4gIHZhciByYWRpdXMgPSB0b29sVGlwT3B0aW9uLmJvcmRlclJhZGl1cztcclxuICBpZiAoaXNPdmVyUmlnaHRCb3JkZXIpIHtcclxuICAgIGlmICh0b29sVGlwT3B0aW9uLnNob3dBcnJvdykge1xyXG4gICAgICBjb250ZXh0Lm1vdmVUbyhvZmZzZXQueCwgb2Zmc2V0LnkgKyAxMCAqIG9wdHMucGl4KTtcclxuICAgICAgY29udGV4dC5saW5lVG8ob2Zmc2V0LnggLSBhcnJvd1dpZHRoLCBvZmZzZXQueSArIDEwICogb3B0cy5waXggKyA1ICogb3B0cy5waXgpO1xyXG4gICAgfVxyXG4gICAgY29udGV4dC5hcmMob2Zmc2V0LnggLSBhcnJvd1dpZHRoIC0gcmFkaXVzLCBvZmZzZXQueSArIHRvb2xUaXBIZWlnaHQgLSByYWRpdXMsIHJhZGl1cywgMCwgTWF0aC5QSSAvIDIsIGZhbHNlKTtcclxuICAgIGNvbnRleHQuYXJjKG9mZnNldC54IC0gYXJyb3dXaWR0aCAtIE1hdGgucm91bmQodG9vbFRpcFdpZHRoKSArIHJhZGl1cywgb2Zmc2V0LnkgKyB0b29sVGlwSGVpZ2h0IC0gcmFkaXVzLCByYWRpdXMsXHJcbiAgICAgIE1hdGguUEkgLyAyLCBNYXRoLlBJLCBmYWxzZSk7XHJcbiAgICBjb250ZXh0LmFyYyhvZmZzZXQueCAtIGFycm93V2lkdGggLSBNYXRoLnJvdW5kKHRvb2xUaXBXaWR0aCkgKyByYWRpdXMsIG9mZnNldC55ICsgcmFkaXVzLCByYWRpdXMsIC1NYXRoLlBJLCAtTWF0aC5QSSAvIDIsIGZhbHNlKTtcclxuICAgIGNvbnRleHQuYXJjKG9mZnNldC54IC0gYXJyb3dXaWR0aCAtIHJhZGl1cywgb2Zmc2V0LnkgKyByYWRpdXMsIHJhZGl1cywgLU1hdGguUEkgLyAyLCAwLCBmYWxzZSk7XHJcbiAgICBpZiAodG9vbFRpcE9wdGlvbi5zaG93QXJyb3cpIHtcclxuICAgICAgY29udGV4dC5saW5lVG8ob2Zmc2V0LnggLSBhcnJvd1dpZHRoLCBvZmZzZXQueSArIDEwICogb3B0cy5waXggLSA1ICogb3B0cy5waXgpO1xyXG4gICAgICBjb250ZXh0LmxpbmVUbyhvZmZzZXQueCwgb2Zmc2V0LnkgKyAxMCAqIG9wdHMucGl4KTtcclxuICAgIH1cclxuICB9IGVsc2Uge1xyXG4gICAgaWYgKHRvb2xUaXBPcHRpb24uc2hvd0Fycm93KSB7XHJcbiAgICAgIGNvbnRleHQubW92ZVRvKG9mZnNldC54LCBvZmZzZXQueSArIDEwICogb3B0cy5waXgpO1xyXG4gICAgICBjb250ZXh0LmxpbmVUbyhvZmZzZXQueCArIGFycm93V2lkdGgsIG9mZnNldC55ICsgMTAgKiBvcHRzLnBpeCAtIDUgKiBvcHRzLnBpeCk7XHJcbiAgICB9XHJcbiAgICBjb250ZXh0LmFyYyhvZmZzZXQueCArIGFycm93V2lkdGggKyByYWRpdXMsIG9mZnNldC55ICsgcmFkaXVzLCByYWRpdXMsIC1NYXRoLlBJLCAtTWF0aC5QSSAvIDIsIGZhbHNlKTtcclxuICAgIGNvbnRleHQuYXJjKG9mZnNldC54ICsgYXJyb3dXaWR0aCArIE1hdGgucm91bmQodG9vbFRpcFdpZHRoKSAtIHJhZGl1cywgb2Zmc2V0LnkgKyByYWRpdXMsIHJhZGl1cywgLU1hdGguUEkgLyAyLCAwLFxyXG4gICAgICBmYWxzZSk7XHJcbiAgICBjb250ZXh0LmFyYyhvZmZzZXQueCArIGFycm93V2lkdGggKyBNYXRoLnJvdW5kKHRvb2xUaXBXaWR0aCkgLSByYWRpdXMsIG9mZnNldC55ICsgdG9vbFRpcEhlaWdodCAtIHJhZGl1cywgcmFkaXVzLCAwLFxyXG4gICAgICBNYXRoLlBJIC8gMiwgZmFsc2UpO1xyXG4gICAgY29udGV4dC5hcmMob2Zmc2V0LnggKyBhcnJvd1dpZHRoICsgcmFkaXVzLCBvZmZzZXQueSArIHRvb2xUaXBIZWlnaHQgLSByYWRpdXMsIHJhZGl1cywgTWF0aC5QSSAvIDIsIE1hdGguUEksIGZhbHNlKTtcclxuICAgIGlmICh0b29sVGlwT3B0aW9uLnNob3dBcnJvdykge1xyXG4gICAgICBjb250ZXh0LmxpbmVUbyhvZmZzZXQueCArIGFycm93V2lkdGgsIG9mZnNldC55ICsgMTAgKiBvcHRzLnBpeCArIDUgKiBvcHRzLnBpeCk7XHJcbiAgICAgIGNvbnRleHQubGluZVRvKG9mZnNldC54LCBvZmZzZXQueSArIDEwICogb3B0cy5waXgpO1xyXG4gICAgfVxyXG4gIH1cclxuICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gIGNvbnRleHQuZmlsbCgpO1xyXG4gIGlmICh0b29sVGlwT3B0aW9uLmJvcmRlcldpZHRoID4gMCkge1xyXG4gICAgY29udGV4dC5zdHJva2UoKTtcclxuICB9XHJcbiAgLy8gZHJhdyBsZWdlbmRcclxuICB0ZXh0TGlzdC5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICBpZiAoaXRlbS5jb2xvciAhPT0gbnVsbCkge1xyXG4gICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShpdGVtLmNvbG9yKTtcclxuICAgICAgdmFyIHN0YXJ0WCA9IG9mZnNldC54ICsgYXJyb3dXaWR0aCArIDIgKiBjb25maWcudG9vbFRpcFBhZGRpbmc7XHJcbiAgICAgIHZhciBzdGFydFkgPSBvZmZzZXQueSArIChjb25maWcudG9vbFRpcExpbmVIZWlnaHQgLSBjb25maWcuZm9udFNpemUpIC8gMiArIGNvbmZpZy50b29sVGlwTGluZUhlaWdodCAqIGluZGV4ICsgY29uZmlnLnRvb2xUaXBQYWRkaW5nICsgMTtcclxuICAgICAgaWYgKGlzT3ZlclJpZ2h0Qm9yZGVyKSB7XHJcbiAgICAgICAgc3RhcnRYID0gb2Zmc2V0LnggLSB0b29sVGlwV2lkdGggLSBhcnJvd1dpZHRoICsgMiAqIGNvbmZpZy50b29sVGlwUGFkZGluZztcclxuICAgICAgfVxyXG4gICAgICBjb250ZXh0LmZpbGxSZWN0KHN0YXJ0WCwgc3RhcnRZLCBsZWdlbmRXaWR0aCwgY29uZmlnLmZvbnRTaXplKTtcclxuICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgIH1cclxuICB9KTtcclxuICAvLyBkcmF3IHRleHQgbGlzdFxyXG4gIHRleHRMaXN0LmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgIHZhciBzdGFydFggPSBvZmZzZXQueCArIGFycm93V2lkdGggKyAyICogY29uZmlnLnRvb2xUaXBQYWRkaW5nICsgbGVnZW5kV2lkdGggKyBsZWdlbmRNYXJnaW5SaWdodDtcclxuICAgIGlmIChpc092ZXJSaWdodEJvcmRlcikge1xyXG4gICAgICBzdGFydFggPSBvZmZzZXQueCAtIHRvb2xUaXBXaWR0aCAtIGFycm93V2lkdGggKyAyICogY29uZmlnLnRvb2xUaXBQYWRkaW5nICsgK2xlZ2VuZFdpZHRoICsgbGVnZW5kTWFyZ2luUmlnaHQ7XHJcbiAgICB9XHJcbiAgICB2YXIgc3RhcnRZID0gb2Zmc2V0LnkgKyAoY29uZmlnLnRvb2xUaXBMaW5lSGVpZ2h0IC0gY29uZmlnLmZvbnRTaXplKSAvIDIgKyBjb25maWcudG9vbFRpcExpbmVIZWlnaHQgKiBpbmRleCArIGNvbmZpZy50b29sVGlwUGFkZGluZztcclxuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICBjb250ZXh0LnNldEZvbnRTaXplKGNvbmZpZy5mb250U2l6ZSk7XHJcbiAgICBjb250ZXh0LnNldEZpbGxTdHlsZSh0b29sVGlwT3B0aW9uLmZvbnRDb2xvcik7XHJcbiAgICBjb250ZXh0LmZpbGxUZXh0KGl0ZW0udGV4dCwgc3RhcnRYLCBzdGFydFkgKyBjb25maWcuZm9udFNpemUpO1xyXG4gICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgfSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRyYXdDb2x1bW5EYXRhUG9pbnRzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KSB7XHJcbiAgbGV0IHByb2Nlc3MgPSBhcmd1bWVudHMubGVuZ3RoID4gNCAmJiBhcmd1bWVudHNbNF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s0XSA6IDE7XHJcbiAgbGV0IHhBeGlzRGF0YSA9IG9wdHMuY2hhcnREYXRhLnhBeGlzRGF0YSxcclxuICAgIHhBeGlzUG9pbnRzID0geEF4aXNEYXRhLnhBeGlzUG9pbnRzLFxyXG4gICAgZWFjaFNwYWNpbmcgPSB4QXhpc0RhdGEuZWFjaFNwYWNpbmc7XHJcbiAgbGV0IGNvbHVtbk9wdGlvbiA9IGFzc2lnbih7fSwge1xyXG4gICAgdHlwZTogJ2dyb3VwJyxcclxuICAgIHdpZHRoOiBlYWNoU3BhY2luZyAvIDIsXHJcbiAgICBtZXRlckJvcmRlcjogNCxcclxuICAgIG1ldGVyRmlsbENvbG9yOiAnI0ZGRkZGRicsXHJcbiAgICBiYXJCb3JkZXJDaXJjbGU6IGZhbHNlLFxyXG4gICAgYmFyQm9yZGVyUmFkaXVzOiBbXSxcclxuICAgIHNlcmllc0dhcDogMixcclxuICAgIGxpbmVhclR5cGU6ICdub25lJyxcclxuICAgIGxpbmVhck9wYWNpdHk6IDEsXHJcbiAgICBjdXN0b21Db2xvcjogW10sXHJcbiAgICBjb2xvclN0b3A6IDAsXHJcbiAgfSwgb3B0cy5leHRyYS5jb2x1bW4pO1xyXG4gIGxldCBjYWxQb2ludHMgPSBbXTtcclxuICBjb250ZXh0LnNhdmUoKTtcclxuICBsZXQgbGVmdE51bSA9IC0yO1xyXG4gIGxldCByaWdodE51bSA9IHhBeGlzUG9pbnRzLmxlbmd0aCArIDI7XHJcbiAgaWYgKG9wdHMuX3Njcm9sbERpc3RhbmNlXyAmJiBvcHRzLl9zY3JvbGxEaXN0YW5jZV8gIT09IDAgJiYgb3B0cy5lbmFibGVTY3JvbGwgPT09IHRydWUpIHtcclxuICAgIGNvbnRleHQudHJhbnNsYXRlKG9wdHMuX3Njcm9sbERpc3RhbmNlXywgMCk7XHJcbiAgICBsZWZ0TnVtID0gTWF0aC5mbG9vcigtb3B0cy5fc2Nyb2xsRGlzdGFuY2VfIC8gZWFjaFNwYWNpbmcpIC0gMjtcclxuICAgIHJpZ2h0TnVtID0gbGVmdE51bSArIG9wdHMueEF4aXMuaXRlbUNvdW50ICsgNDtcclxuICB9XHJcbiAgaWYgKG9wdHMudG9vbHRpcCAmJiBvcHRzLnRvb2x0aXAudGV4dExpc3QgJiYgb3B0cy50b29sdGlwLnRleHRMaXN0Lmxlbmd0aCAmJiBwcm9jZXNzID09PSAxKSB7XHJcbiAgICBkcmF3VG9vbFRpcFNwbGl0QXJlYShvcHRzLnRvb2x0aXAub2Zmc2V0LngsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgZWFjaFNwYWNpbmcpO1xyXG4gIH1cclxuICBjb2x1bW5PcHRpb24uY3VzdG9tQ29sb3IgPSBmaWxsQ3VzdG9tQ29sb3IoY29sdW1uT3B0aW9uLmxpbmVhclR5cGUsIGNvbHVtbk9wdGlvbi5jdXN0b21Db2xvciwgc2VyaWVzLCBjb25maWcpO1xyXG4gIHNlcmllcy5mb3JFYWNoKGZ1bmN0aW9uKGVhY2hTZXJpZXMsIHNlcmllc0luZGV4KSB7XHJcbiAgICBsZXQgcmFuZ2VzLCBtaW5SYW5nZSwgbWF4UmFuZ2U7XHJcbiAgICByYW5nZXMgPSBbXS5jb25jYXQob3B0cy5jaGFydERhdGEueUF4aXNEYXRhLnJhbmdlc1tlYWNoU2VyaWVzLmluZGV4XSk7XHJcbiAgICBtaW5SYW5nZSA9IHJhbmdlcy5wb3AoKTtcclxuICAgIG1heFJhbmdlID0gcmFuZ2VzLnNoaWZ0KCk7XHJcbiAgICB2YXIgZGF0YSA9IGVhY2hTZXJpZXMuZGF0YTtcclxuICAgIHN3aXRjaCAoY29sdW1uT3B0aW9uLnR5cGUpIHtcclxuICAgICAgY2FzZSAnZ3JvdXAnOlxyXG4gICAgICAgIHZhciBwb2ludHMgPSBnZXREYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeEF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHByb2Nlc3MpO1xyXG4gICAgICAgIHZhciB0b29sdGlwUG9pbnRzID0gZ2V0U3RhY2tEYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeEF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHNlcmllc0luZGV4LCBzZXJpZXMsIHByb2Nlc3MpO1xyXG4gICAgICAgIGNhbFBvaW50cy5wdXNoKHRvb2x0aXBQb2ludHMpO1xyXG4gICAgICAgIHBvaW50cyA9IGZpeENvbHVtZURhdGEocG9pbnRzLCBlYWNoU3BhY2luZywgc2VyaWVzLmxlbmd0aCwgc2VyaWVzSW5kZXgsIGNvbmZpZywgb3B0cyk7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwb2ludHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgIGxldCBpdGVtID0gcG9pbnRzW2ldO1xyXG4gICAgICAgICAgLy9maXggaXNzdWVzL0kyN0IxTiB5eW9pbmdlICYgSm9lc2h1XHJcbiAgICAgICAgICBpZiAoaXRlbSAhPT0gbnVsbCAmJiBpID4gbGVmdE51bSAmJiBpIDwgcmlnaHROdW0pIHtcclxuICAgICAgICAgICAgdmFyIHN0YXJ0WCA9IGl0ZW0ueCAtIGl0ZW0ud2lkdGggLyAyO1xyXG4gICAgICAgICAgICB2YXIgaGVpZ2h0ID0gb3B0cy5oZWlnaHQgLSBpdGVtLnkgLSBvcHRzLmFyZWFbMl07XHJcbiAgICAgICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgICAgIHZhciBmaWxsQ29sb3IgPSBpdGVtLmNvbG9yIHx8IGVhY2hTZXJpZXMuY29sb3JcclxuICAgICAgICAgICAgdmFyIHN0cm9rZUNvbG9yID0gaXRlbS5jb2xvciB8fCBlYWNoU2VyaWVzLmNvbG9yXHJcbiAgICAgICAgICAgIGlmIChjb2x1bW5PcHRpb24ubGluZWFyVHlwZSAhPT0gJ25vbmUnKSB7XHJcbiAgICAgICAgICAgICAgdmFyIGdyZCA9IGNvbnRleHQuY3JlYXRlTGluZWFyR3JhZGllbnQoc3RhcnRYLCBpdGVtLnksIHN0YXJ0WCwgb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0pO1xyXG4gICAgICAgICAgICAgIC8v6YCP5piO5riQ5Y+YXHJcbiAgICAgICAgICAgICAgaWYgKGNvbHVtbk9wdGlvbi5saW5lYXJUeXBlID09ICdvcGFjaXR5Jykge1xyXG4gICAgICAgICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgwLCBoZXhUb1JnYihmaWxsQ29sb3IsIGNvbHVtbk9wdGlvbi5saW5lYXJPcGFjaXR5KSk7XHJcbiAgICAgICAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDEsIGhleFRvUmdiKGZpbGxDb2xvciwgMSkpO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDAsIGhleFRvUmdiKGNvbHVtbk9wdGlvbi5jdXN0b21Db2xvcltlYWNoU2VyaWVzLmxpbmVhckluZGV4XSwgY29sdW1uT3B0aW9uLmxpbmVhck9wYWNpdHkpKTtcclxuICAgICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoY29sdW1uT3B0aW9uLmNvbG9yU3RvcCwgaGV4VG9SZ2IoY29sdW1uT3B0aW9uLmN1c3RvbUNvbG9yW2VhY2hTZXJpZXMubGluZWFySW5kZXhdLGNvbHVtbk9wdGlvbi5saW5lYXJPcGFjaXR5KSk7XHJcbiAgICAgICAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDEsIGhleFRvUmdiKGZpbGxDb2xvciwgMSkpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBmaWxsQ29sb3IgPSBncmRcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyDlnIbop5LovrnmoYZcclxuICAgICAgICAgICAgaWYgKChjb2x1bW5PcHRpb24uYmFyQm9yZGVyUmFkaXVzICYmIGNvbHVtbk9wdGlvbi5iYXJCb3JkZXJSYWRpdXMubGVuZ3RoID09PSA0KSB8fCBjb2x1bW5PcHRpb24uYmFyQm9yZGVyQ2lyY2xlID09PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgY29uc3QgbGVmdCA9IHN0YXJ0WDtcclxuICAgICAgICAgICAgICBjb25zdCB0b3AgPSBpdGVtLnk7XHJcbiAgICAgICAgICAgICAgY29uc3Qgd2lkdGggPSBpdGVtLndpZHRoO1xyXG4gICAgICAgICAgICAgIGNvbnN0IGhlaWdodCA9IG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdIC0gaXRlbS55O1xyXG4gICAgICAgICAgICAgIGlmIChjb2x1bW5PcHRpb24uYmFyQm9yZGVyQ2lyY2xlKSB7XHJcbiAgICAgICAgICAgICAgICBjb2x1bW5PcHRpb24uYmFyQm9yZGVyUmFkaXVzID0gW3dpZHRoIC8gMiwgd2lkdGggLyAyLCAwLCAwXTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgbGV0IFtyMCwgcjEsIHIyLCByM10gPSBjb2x1bW5PcHRpb24uYmFyQm9yZGVyUmFkaXVzO1xyXG4gICAgICAgICAgICAgIGxldCBtaW5SYWRpdXMgPSBNYXRoLm1pbih3aWR0aC8yLGhlaWdodC8yKTtcclxuICAgICAgICAgICAgICByMCA9IHIwID4gbWluUmFkaXVzID8gbWluUmFkaXVzIDogcjA7XHJcbiAgICAgICAgICAgICAgcjEgPSByMSA+IG1pblJhZGl1cyA/IG1pblJhZGl1cyA6IHIxO1xyXG4gICAgICAgICAgICAgIHIyID0gcjIgPiBtaW5SYWRpdXMgPyBtaW5SYWRpdXMgOiByMjtcclxuICAgICAgICAgICAgICByMyA9IHIzID4gbWluUmFkaXVzID8gbWluUmFkaXVzIDogcjM7XHJcbiAgICAgICAgICAgICAgcjAgPSByMCA8IDAgPyAwIDogcjA7XHJcbiAgICAgICAgICAgICAgcjEgPSByMSA8IDAgPyAwIDogcjE7XHJcbiAgICAgICAgICAgICAgcjIgPSByMiA8IDAgPyAwIDogcjI7XHJcbiAgICAgICAgICAgICAgcjMgPSByMyA8IDAgPyAwIDogcjM7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5hcmMobGVmdCArIHIwLCB0b3AgKyByMCwgcjAsIC1NYXRoLlBJLCAtTWF0aC5QSSAvIDIpO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQuYXJjKGxlZnQgKyB3aWR0aCAtIHIxLCB0b3AgKyByMSwgcjEsIC1NYXRoLlBJIC8gMiwgMCk7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5hcmMobGVmdCArIHdpZHRoIC0gcjIsIHRvcCArIGhlaWdodCAtIHIyLCByMiwgMCwgTWF0aC5QSSAvIDIpO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQuYXJjKGxlZnQgKyByMywgdG9wICsgaGVpZ2h0IC0gcjMsIHIzLCBNYXRoLlBJIC8gMiwgTWF0aC5QSSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5tb3ZlVG8oc3RhcnRYLCBpdGVtLnkpO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHN0YXJ0WCArIGl0ZW0ud2lkdGggLSAyLCBpdGVtLnkpO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHN0YXJ0WCArIGl0ZW0ud2lkdGggLSAyLCBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXSk7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5saW5lVG8oc3RhcnRYLCBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXSk7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5saW5lVG8oc3RhcnRYLCBpdGVtLnkpO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKDEpXHJcbiAgICAgICAgICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShzdHJva2VDb2xvcik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoZmlsbENvbG9yKTtcclxuICAgICAgICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgICAgICAgLy9jb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICAgICAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdzdGFjayc6XHJcbiAgICAgICAgLy8g57uY5Yi25aCG5Y+g5pWw5o2u5Zu+XHJcbiAgICAgICAgdmFyIHBvaW50cyA9IGdldFN0YWNrRGF0YVBvaW50cyhkYXRhLCBtaW5SYW5nZSwgbWF4UmFuZ2UsIHhBeGlzUG9pbnRzLCBlYWNoU3BhY2luZywgb3B0cywgY29uZmlnLCBzZXJpZXNJbmRleCwgc2VyaWVzLCBwcm9jZXNzKTtcclxuICAgICAgICBjYWxQb2ludHMucHVzaChwb2ludHMpO1xyXG4gICAgICAgIHBvaW50cyA9IGZpeENvbHVtZVN0YWNrRGF0YShwb2ludHMsIGVhY2hTcGFjaW5nLCBzZXJpZXMubGVuZ3RoLCBzZXJpZXNJbmRleCwgY29uZmlnLCBvcHRzLCBzZXJpZXMpO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcG9pbnRzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICBsZXQgaXRlbSA9IHBvaW50c1tpXTtcclxuICAgICAgICAgIGlmIChpdGVtICE9PSBudWxsICYmIGkgPiBsZWZ0TnVtICYmIGkgPCByaWdodE51bSkge1xyXG4gICAgICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgICAgICB2YXIgZmlsbENvbG9yID0gaXRlbS5jb2xvciB8fCBlYWNoU2VyaWVzLmNvbG9yO1xyXG4gICAgICAgICAgICB2YXIgc3RhcnRYID0gaXRlbS54IC0gaXRlbS53aWR0aCAvIDIgKyAxO1xyXG4gICAgICAgICAgICB2YXIgaGVpZ2h0ID0gb3B0cy5oZWlnaHQgLSBpdGVtLnkgLSBvcHRzLmFyZWFbMl07XHJcbiAgICAgICAgICAgIHZhciBoZWlnaHQwID0gb3B0cy5oZWlnaHQgLSBpdGVtLnkwIC0gb3B0cy5hcmVhWzJdO1xyXG4gICAgICAgICAgICBpZiAoc2VyaWVzSW5kZXggPiAwKSB7XHJcbiAgICAgICAgICAgICAgaGVpZ2h0IC09IGhlaWdodDA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoZmlsbENvbG9yKTtcclxuICAgICAgICAgICAgY29udGV4dC5tb3ZlVG8oc3RhcnRYLCBpdGVtLnkpO1xyXG4gICAgICAgICAgICBjb250ZXh0LmZpbGxSZWN0KHN0YXJ0WCwgaXRlbS55LCBpdGVtLndpZHRoIC0gMiwgaGVpZ2h0KTtcclxuICAgICAgICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnbWV0ZXInOlxyXG4gICAgICAgIC8vIOe7mOWItua4qeW6puiuoeaVsOaNruWbvlxyXG4gICAgICAgIHZhciBwb2ludHMgPSBnZXREYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeEF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHByb2Nlc3MpO1xyXG4gICAgICAgIGNhbFBvaW50cy5wdXNoKHBvaW50cyk7XHJcbiAgICAgICAgcG9pbnRzID0gZml4Q29sdW1lTWV0ZXJEYXRhKHBvaW50cywgZWFjaFNwYWNpbmcsIHNlcmllcy5sZW5ndGgsIHNlcmllc0luZGV4LCBjb25maWcsIG9wdHMsIGNvbHVtbk9wdGlvbi5tZXRlckJvcmRlcik7XHJcbiAgICAgICAgaWYgKHNlcmllc0luZGV4ID09IDApIHtcclxuICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcG9pbnRzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGxldCBpdGVtID0gcG9pbnRzW2ldO1xyXG4gICAgICAgICAgICBpZiAoaXRlbSAhPT0gbnVsbCAmJiBpID4gbGVmdE51bSAmJiBpIDwgcmlnaHROdW0pIHtcclxuICAgICAgICAgICAgICAvL+eUu+iDjOaZr+minOiJslxyXG4gICAgICAgICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoY29sdW1uT3B0aW9uLm1ldGVyRmlsbENvbG9yKTtcclxuICAgICAgICAgICAgICB2YXIgc3RhcnRYID0gaXRlbS54IC0gaXRlbS53aWR0aCAvIDI7XHJcbiAgICAgICAgICAgICAgdmFyIGhlaWdodCA9IG9wdHMuaGVpZ2h0IC0gaXRlbS55IC0gb3B0cy5hcmVhWzJdO1xyXG4gICAgICAgICAgICAgIGlmIChjb2x1bW5PcHRpb24uYmFyQm9yZGVyQ2lyY2xlKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgYmFyQm9yZGVyUmFkaXVzID0gKGl0ZW0ud2lkdGggLSBjb2x1bW5PcHRpb24ubWV0ZXJCb3JkZXIqMikgLyAyO1xyXG4gICAgICAgICAgICAgICAgaWYoYmFyQm9yZGVyUmFkaXVzPmhlaWdodCl7XHJcbiAgICAgICAgICAgICAgICAgIGJhckJvcmRlclJhZGl1cyA9IGhlaWdodDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKHN0YXJ0WCArIGNvbHVtbk9wdGlvbi5tZXRlckJvcmRlciwgb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0pO1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5saW5lVG8oc3RhcnRYICsgY29sdW1uT3B0aW9uLm1ldGVyQm9yZGVyLCBpdGVtLnkgKyBiYXJCb3JkZXJSYWRpdXMpO1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5hcmMoc3RhcnRYICsgaXRlbS53aWR0aC8yLCBpdGVtLnkgKyBiYXJCb3JkZXJSYWRpdXMsIGJhckJvcmRlclJhZGl1cywgLU1hdGguUEksIDApO1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5saW5lVG8oc3RhcnRYICsgaXRlbS53aWR0aCAtIGNvbHVtbk9wdGlvbi5tZXRlckJvcmRlciAsIG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdKTtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHN0YXJ0WCwgb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0pO1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhzdGFydFgsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LmZpbGxSZWN0KHN0YXJ0WCwgaXRlbS55LCBpdGVtLndpZHRoLCBoZWlnaHQpO1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAvL+eUu+i+ueahhue6v1xyXG4gICAgICAgICAgICAgIGlmIChjb2x1bW5PcHRpb24ubWV0ZXJCb3JkZXIgPiAwKSB7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShlYWNoU2VyaWVzLmNvbG9yKTtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKGNvbHVtbk9wdGlvbi5tZXRlckJvcmRlciAqIG9wdHMucGl4KTtcclxuICAgICAgICAgICAgICAgIGlmIChjb2x1bW5PcHRpb24uYmFyQm9yZGVyQ2lyY2xlKSB7XHJcbiAgICAgICAgICAgICAgICAgIHZhciBiYXJCb3JkZXJSYWRpdXMgPSAoaXRlbS53aWR0aCAtIGNvbHVtbk9wdGlvbi5tZXRlckJvcmRlcikvIDI7XHJcbiAgICAgICAgICAgICAgICAgIGlmKGJhckJvcmRlclJhZGl1cz5oZWlnaHQpe1xyXG4gICAgICAgICAgICAgICAgICAgIGJhckJvcmRlclJhZGl1cyA9IGhlaWdodDtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhzdGFydFggICsgY29sdW1uT3B0aW9uLm1ldGVyQm9yZGVyICogMC41LCBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXSk7XHJcbiAgICAgICAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHN0YXJ0WCArIGNvbHVtbk9wdGlvbi5tZXRlckJvcmRlciAqIDAuNSwgaXRlbS55ICsgYmFyQm9yZGVyUmFkaXVzKTtcclxuICAgICAgICAgICAgICAgICAgY29udGV4dC5hcmMoc3RhcnRYICsgaXRlbS53aWR0aC8yLCBpdGVtLnkgKyBiYXJCb3JkZXJSYWRpdXMgLSBjb2x1bW5PcHRpb24ubWV0ZXJCb3JkZXIgKiAwLjUsIGJhckJvcmRlclJhZGl1cywgLU1hdGguUEksIDApO1xyXG4gICAgICAgICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhzdGFydFggKyBpdGVtLndpZHRoIC0gY29sdW1uT3B0aW9uLm1ldGVyQm9yZGVyICogMC41LCBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXSk7XHJcbiAgICAgICAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgICAgICAgY29udGV4dC5tb3ZlVG8oc3RhcnRYICsgY29sdW1uT3B0aW9uLm1ldGVyQm9yZGVyICogMC41LCBpdGVtLnkgKyBoZWlnaHQpO1xyXG4gICAgICAgICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhzdGFydFggKyBjb2x1bW5PcHRpb24ubWV0ZXJCb3JkZXIgKiAwLjUsIGl0ZW0ueSArIGNvbHVtbk9wdGlvbi5tZXRlckJvcmRlciAqIDAuNSk7XHJcbiAgICAgICAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHN0YXJ0WCArIGl0ZW0ud2lkdGggLSBjb2x1bW5PcHRpb24ubWV0ZXJCb3JkZXIgKiAwLjUsIGl0ZW0ueSArIGNvbHVtbk9wdGlvbi5tZXRlckJvcmRlciAqIDAuNSk7XHJcbiAgICAgICAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHN0YXJ0WCArIGl0ZW0ud2lkdGggLSBjb2x1bW5PcHRpb24ubWV0ZXJCb3JkZXIgKiAwLjUsIGl0ZW0ueSArIGhlaWdodCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwb2ludHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgbGV0IGl0ZW0gPSBwb2ludHNbaV07XHJcbiAgICAgICAgICAgIGlmIChpdGVtICE9PSBudWxsICYmIGkgPiBsZWZ0TnVtICYmIGkgPCByaWdodE51bSkge1xyXG4gICAgICAgICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoaXRlbS5jb2xvciB8fCBlYWNoU2VyaWVzLmNvbG9yKTtcclxuICAgICAgICAgICAgICB2YXIgc3RhcnRYID0gaXRlbS54IC0gaXRlbS53aWR0aCAvIDI7XHJcbiAgICAgICAgICAgICAgdmFyIGhlaWdodCA9IG9wdHMuaGVpZ2h0IC0gaXRlbS55IC0gb3B0cy5hcmVhWzJdO1xyXG4gICAgICAgICAgICAgIGlmIChjb2x1bW5PcHRpb24uYmFyQm9yZGVyQ2lyY2xlKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgYmFyQm9yZGVyUmFkaXVzID0gaXRlbS53aWR0aCAvIDI7XHJcbiAgICAgICAgICAgICAgICBpZihiYXJCb3JkZXJSYWRpdXM+aGVpZ2h0KXtcclxuICAgICAgICAgICAgICAgICAgYmFyQm9yZGVyUmFkaXVzID0gaGVpZ2h0O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY29udGV4dC5tb3ZlVG8oc3RhcnRYLCBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXSk7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LmFyYyhzdGFydFggKyBiYXJCb3JkZXJSYWRpdXMsIGl0ZW0ueSArIGJhckJvcmRlclJhZGl1cywgYmFyQm9yZGVyUmFkaXVzLCAtTWF0aC5QSSwgLU1hdGguUEkgLyAyKTtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQuYXJjKHN0YXJ0WCArIGl0ZW0ud2lkdGggLSBiYXJCb3JkZXJSYWRpdXMsIGl0ZW0ueSArIGJhckJvcmRlclJhZGl1cywgYmFyQm9yZGVyUmFkaXVzLCAtTWF0aC5QSSAvIDIsIDApO1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5saW5lVG8oc3RhcnRYICsgaXRlbS53aWR0aCwgb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0pO1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5saW5lVG8oc3RhcnRYLCBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXSk7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgICAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKHN0YXJ0WCwgaXRlbS55KTtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQuZmlsbFJlY3Qoc3RhcnRYLCBpdGVtLnksIGl0ZW0ud2lkdGgsIGhlaWdodCk7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICB9KTtcclxuXHJcbiAgaWYgKG9wdHMuZGF0YUxhYmVsICE9PSBmYWxzZSAmJiBwcm9jZXNzID09PSAxKSB7XHJcbiAgICBzZXJpZXMuZm9yRWFjaChmdW5jdGlvbihlYWNoU2VyaWVzLCBzZXJpZXNJbmRleCkge1xyXG4gICAgICBsZXQgcmFuZ2VzLCBtaW5SYW5nZSwgbWF4UmFuZ2U7XHJcbiAgICAgIHJhbmdlcyA9IFtdLmNvbmNhdChvcHRzLmNoYXJ0RGF0YS55QXhpc0RhdGEucmFuZ2VzW2VhY2hTZXJpZXMuaW5kZXhdKTtcclxuICAgICAgbWluUmFuZ2UgPSByYW5nZXMucG9wKCk7XHJcbiAgICAgIG1heFJhbmdlID0gcmFuZ2VzLnNoaWZ0KCk7XHJcbiAgICAgIHZhciBkYXRhID0gZWFjaFNlcmllcy5kYXRhO1xyXG4gICAgICBzd2l0Y2ggKGNvbHVtbk9wdGlvbi50eXBlKSB7XHJcbiAgICAgICAgY2FzZSAnZ3JvdXAnOlxyXG4gICAgICAgICAgdmFyIHBvaW50cyA9IGdldERhdGFQb2ludHMoZGF0YSwgbWluUmFuZ2UsIG1heFJhbmdlLCB4QXhpc1BvaW50cywgZWFjaFNwYWNpbmcsIG9wdHMsIGNvbmZpZywgcHJvY2Vzcyk7XHJcbiAgICAgICAgICBwb2ludHMgPSBmaXhDb2x1bWVEYXRhKHBvaW50cywgZWFjaFNwYWNpbmcsIHNlcmllcy5sZW5ndGgsIHNlcmllc0luZGV4LCBjb25maWcsIG9wdHMpO1xyXG4gICAgICAgICAgZHJhd1BvaW50VGV4dChwb2ludHMsIGVhY2hTZXJpZXMsIGNvbmZpZywgY29udGV4dCwgb3B0cyk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdzdGFjayc6XHJcbiAgICAgICAgICB2YXIgcG9pbnRzID0gZ2V0U3RhY2tEYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeEF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHNlcmllc0luZGV4LCBzZXJpZXMsIHByb2Nlc3MpO1xyXG4gICAgICAgICAgZHJhd1BvaW50VGV4dChwb2ludHMsIGVhY2hTZXJpZXMsIGNvbmZpZywgY29udGV4dCwgb3B0cyk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdtZXRlcic6XHJcbiAgICAgICAgICB2YXIgcG9pbnRzID0gZ2V0RGF0YVBvaW50cyhkYXRhLCBtaW5SYW5nZSwgbWF4UmFuZ2UsIHhBeGlzUG9pbnRzLCBlYWNoU3BhY2luZywgb3B0cywgY29uZmlnLCBwcm9jZXNzKTtcclxuICAgICAgICAgIGRyYXdQb2ludFRleHQocG9pbnRzLCBlYWNoU2VyaWVzLCBjb25maWcsIGNvbnRleHQsIG9wdHMpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICBjb250ZXh0LnJlc3RvcmUoKTtcclxuICByZXR1cm4ge1xyXG4gICAgeEF4aXNQb2ludHM6IHhBeGlzUG9pbnRzLFxyXG4gICAgY2FsUG9pbnRzOiBjYWxQb2ludHMsXHJcbiAgICBlYWNoU3BhY2luZzogZWFjaFNwYWNpbmdcclxuICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3QmFyRGF0YVBvaW50cyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCkge1xyXG4gIGxldCBwcm9jZXNzID0gYXJndW1lbnRzLmxlbmd0aCA+IDQgJiYgYXJndW1lbnRzWzRdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbNF0gOiAxO1xyXG4gIGxldCB5QXhpc1BvaW50cyA9IFtdO1xyXG4gIGxldCBlYWNoU3BhY2luZyA9IChvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVswXSAtIG9wdHMuYXJlYVsyXSkvb3B0cy5jYXRlZ29yaWVzLmxlbmd0aDtcclxuICBmb3IgKGxldCBpID0gMDsgaSA8IG9wdHMuY2F0ZWdvcmllcy5sZW5ndGg7IGkrKykge1xyXG4gICAgeUF4aXNQb2ludHMucHVzaChvcHRzLmFyZWFbMF0gKyBlYWNoU3BhY2luZyAvIDIgKyBlYWNoU3BhY2luZyAqIGkpO1xyXG4gIH1cclxuICBsZXQgY29sdW1uT3B0aW9uID0gYXNzaWduKHt9LCB7XHJcbiAgICB0eXBlOiAnZ3JvdXAnLFxyXG4gICAgd2lkdGg6IGVhY2hTcGFjaW5nIC8gMixcclxuICAgIG1ldGVyQm9yZGVyOiA0LFxyXG4gICAgbWV0ZXJGaWxsQ29sb3I6ICcjRkZGRkZGJyxcclxuICAgIGJhckJvcmRlckNpcmNsZTogZmFsc2UsXHJcbiAgICBiYXJCb3JkZXJSYWRpdXM6IFtdLFxyXG4gICAgc2VyaWVzR2FwOiAyLFxyXG4gICAgbGluZWFyVHlwZTogJ25vbmUnLFxyXG4gICAgbGluZWFyT3BhY2l0eTogMSxcclxuICAgIGN1c3RvbUNvbG9yOiBbXSxcclxuICAgIGNvbG9yU3RvcDogMCxcclxuICB9LCBvcHRzLmV4dHJhLmJhcik7XHJcbiAgbGV0IGNhbFBvaW50cyA9IFtdO1xyXG4gIGNvbnRleHQuc2F2ZSgpO1xyXG4gIGxldCBsZWZ0TnVtID0gLTI7XHJcbiAgbGV0IHJpZ2h0TnVtID0geUF4aXNQb2ludHMubGVuZ3RoICsgMjtcclxuICBpZiAob3B0cy50b29sdGlwICYmIG9wdHMudG9vbHRpcC50ZXh0TGlzdCAmJiBvcHRzLnRvb2x0aXAudGV4dExpc3QubGVuZ3RoICYmIHByb2Nlc3MgPT09IDEpIHtcclxuICAgIGRyYXdCYXJUb29sVGlwU3BsaXRBcmVhKG9wdHMudG9vbHRpcC5vZmZzZXQueSwgb3B0cywgY29uZmlnLCBjb250ZXh0LCBlYWNoU3BhY2luZyk7XHJcbiAgfVxyXG4gIGNvbHVtbk9wdGlvbi5jdXN0b21Db2xvciA9IGZpbGxDdXN0b21Db2xvcihjb2x1bW5PcHRpb24ubGluZWFyVHlwZSwgY29sdW1uT3B0aW9uLmN1c3RvbUNvbG9yLCBzZXJpZXMsIGNvbmZpZyk7XHJcbiAgc2VyaWVzLmZvckVhY2goZnVuY3Rpb24oZWFjaFNlcmllcywgc2VyaWVzSW5kZXgpIHtcclxuICAgIGxldCByYW5nZXMsIG1pblJhbmdlLCBtYXhSYW5nZTtcclxuICAgIHJhbmdlcyA9IFtdLmNvbmNhdChvcHRzLmNoYXJ0RGF0YS54QXhpc0RhdGEucmFuZ2VzKTtcclxuICAgIG1heFJhbmdlID0gcmFuZ2VzLnBvcCgpO1xyXG4gICAgbWluUmFuZ2UgPSByYW5nZXMuc2hpZnQoKTtcclxuICAgIHZhciBkYXRhID0gZWFjaFNlcmllcy5kYXRhO1xyXG4gICAgc3dpdGNoIChjb2x1bW5PcHRpb24udHlwZSkge1xyXG4gICAgICBjYXNlICdncm91cCc6XHJcbiAgICAgICAgdmFyIHBvaW50cyA9IGdldEJhckRhdGFQb2ludHMoZGF0YSwgbWluUmFuZ2UsIG1heFJhbmdlLCB5QXhpc1BvaW50cywgZWFjaFNwYWNpbmcsIG9wdHMsIGNvbmZpZywgcHJvY2Vzcyk7XHJcbiAgICAgICAgdmFyIHRvb2x0aXBQb2ludHMgPSBnZXRCYXJTdGFja0RhdGFQb2ludHMoZGF0YSwgbWluUmFuZ2UsIG1heFJhbmdlLCB5QXhpc1BvaW50cywgZWFjaFNwYWNpbmcsIG9wdHMsIGNvbmZpZywgc2VyaWVzSW5kZXgsIHNlcmllcywgcHJvY2Vzcyk7XHJcbiAgICAgICAgY2FsUG9pbnRzLnB1c2godG9vbHRpcFBvaW50cyk7XHJcbiAgICAgICAgcG9pbnRzID0gZml4QmFyRGF0YShwb2ludHMsIGVhY2hTcGFjaW5nLCBzZXJpZXMubGVuZ3RoLCBzZXJpZXNJbmRleCwgY29uZmlnLCBvcHRzKTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBvaW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgbGV0IGl0ZW0gPSBwb2ludHNbaV07XHJcbiAgICAgICAgICAvL2ZpeCBpc3N1ZXMvSTI3QjFOIHl5b2luZ2UgJiBKb2VzaHVcclxuICAgICAgICAgIGlmIChpdGVtICE9PSBudWxsICYmIGkgPiBsZWZ0TnVtICYmIGkgPCByaWdodE51bSkge1xyXG4gICAgICAgICAgICAvL3ZhciBzdGFydFggPSBpdGVtLnggLSBpdGVtLndpZHRoIC8gMjtcclxuICAgICAgICAgICAgdmFyIHN0YXJ0WCA9IG9wdHMuYXJlYVszXTtcclxuICAgICAgICAgICAgdmFyIHN0YXJ0WSA9IGl0ZW0ueSAtIGl0ZW0ud2lkdGggLyAyO1xyXG4gICAgICAgICAgICB2YXIgaGVpZ2h0ID0gaXRlbS5oZWlnaHQ7XHJcbiAgICAgICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgICAgIHZhciBmaWxsQ29sb3IgPSBpdGVtLmNvbG9yIHx8IGVhY2hTZXJpZXMuY29sb3JcclxuICAgICAgICAgICAgdmFyIHN0cm9rZUNvbG9yID0gaXRlbS5jb2xvciB8fCBlYWNoU2VyaWVzLmNvbG9yXHJcbiAgICAgICAgICAgIGlmIChjb2x1bW5PcHRpb24ubGluZWFyVHlwZSAhPT0gJ25vbmUnKSB7XHJcbiAgICAgICAgICAgICAgdmFyIGdyZCA9IGNvbnRleHQuY3JlYXRlTGluZWFyR3JhZGllbnQoc3RhcnRYLCBpdGVtLnksIGl0ZW0ueCwgaXRlbS55KTtcclxuICAgICAgICAgICAgICAvL+mAj+aYjua4kOWPmFxyXG4gICAgICAgICAgICAgIGlmIChjb2x1bW5PcHRpb24ubGluZWFyVHlwZSA9PSAnb3BhY2l0eScpIHtcclxuICAgICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMCwgaGV4VG9SZ2IoZmlsbENvbG9yLCBjb2x1bW5PcHRpb24ubGluZWFyT3BhY2l0eSkpO1xyXG4gICAgICAgICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgxLCBoZXhUb1JnYihmaWxsQ29sb3IsIDEpKTtcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgwLCBoZXhUb1JnYihjb2x1bW5PcHRpb24uY3VzdG9tQ29sb3JbZWFjaFNlcmllcy5saW5lYXJJbmRleF0sIGNvbHVtbk9wdGlvbi5saW5lYXJPcGFjaXR5KSk7XHJcbiAgICAgICAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKGNvbHVtbk9wdGlvbi5jb2xvclN0b3AsIGhleFRvUmdiKGNvbHVtbk9wdGlvbi5jdXN0b21Db2xvcltlYWNoU2VyaWVzLmxpbmVhckluZGV4XSxjb2x1bW5PcHRpb24ubGluZWFyT3BhY2l0eSkpO1xyXG4gICAgICAgICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgxLCBoZXhUb1JnYihmaWxsQ29sb3IsIDEpKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgZmlsbENvbG9yID0gZ3JkXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8g5ZyG6KeS6L655qGGXHJcbiAgICAgICAgICAgIGlmICgoY29sdW1uT3B0aW9uLmJhckJvcmRlclJhZGl1cyAmJiBjb2x1bW5PcHRpb24uYmFyQm9yZGVyUmFkaXVzLmxlbmd0aCA9PT0gNCkgfHwgY29sdW1uT3B0aW9uLmJhckJvcmRlckNpcmNsZSA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGxlZnQgPSBzdGFydFg7XHJcbiAgICAgICAgICAgICAgY29uc3Qgd2lkdGggPSBpdGVtLndpZHRoO1xyXG4gICAgICAgICAgICAgIGNvbnN0IHRvcCA9IGl0ZW0ueSAtIGl0ZW0ud2lkdGggLyAyO1xyXG4gICAgICAgICAgICAgIGNvbnN0IGhlaWdodCA9IGl0ZW0uaGVpZ2g7XHJcbiAgICAgICAgICAgICAgaWYgKGNvbHVtbk9wdGlvbi5iYXJCb3JkZXJDaXJjbGUpIHtcclxuICAgICAgICAgICAgICAgIGNvbHVtbk9wdGlvbi5iYXJCb3JkZXJSYWRpdXMgPSBbd2lkdGggLyAyLCB3aWR0aCAvIDIsIDAsIDBdO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBsZXQgW3IwLCByMSwgcjIsIHIzXSA9IGNvbHVtbk9wdGlvbi5iYXJCb3JkZXJSYWRpdXM7XHJcbiAgICAgICAgICAgICAgbGV0IG1pblJhZGl1cyA9IE1hdGgubWluKHdpZHRoLzIsaGVpZ2h0LzIpO1xyXG4gICAgICAgICAgICAgIHIwID0gcjAgPiBtaW5SYWRpdXMgPyBtaW5SYWRpdXMgOiByMDtcclxuICAgICAgICAgICAgICByMSA9IHIxID4gbWluUmFkaXVzID8gbWluUmFkaXVzIDogcjE7XHJcbiAgICAgICAgICAgICAgcjIgPSByMiA+IG1pblJhZGl1cyA/IG1pblJhZGl1cyA6IHIyO1xyXG4gICAgICAgICAgICAgIHIzID0gcjMgPiBtaW5SYWRpdXMgPyBtaW5SYWRpdXMgOiByMztcclxuICAgICAgICAgICAgICByMCA9IHIwIDwgMCA/IDAgOiByMDtcclxuICAgICAgICAgICAgICByMSA9IHIxIDwgMCA/IDAgOiByMTtcclxuICAgICAgICAgICAgICByMiA9IHIyIDwgMCA/IDAgOiByMjtcclxuICAgICAgICAgICAgICByMyA9IHIzIDwgMCA/IDAgOiByMztcclxuICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICBjb250ZXh0LmFyYyhsZWZ0ICsgcjMsIHRvcCArIHIzLCByMywgLU1hdGguUEksIC1NYXRoLlBJIC8gMik7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5hcmMoaXRlbS54IC0gcjAsIHRvcCArIHIwLCByMCwgLU1hdGguUEkgLyAyLCAwKTtcclxuICAgICAgICAgICAgICBjb250ZXh0LmFyYyhpdGVtLnggLSByMSwgdG9wICsgd2lkdGggLSByMSwgcjEsIDAsIE1hdGguUEkgLyAyKTtcclxuICAgICAgICAgICAgICBjb250ZXh0LmFyYyhsZWZ0ICsgcjIsIHRvcCArIHdpZHRoIC0gcjIsIHIyLCBNYXRoLlBJIC8gMiwgTWF0aC5QSSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5tb3ZlVG8oc3RhcnRYLCBzdGFydFkpO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCwgc3RhcnRZKTtcclxuICAgICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLngsIHN0YXJ0WSArIGl0ZW0ud2lkdGggLSAyKTtcclxuICAgICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhzdGFydFgsIHN0YXJ0WSArIGl0ZW0ud2lkdGggLSAyKTtcclxuICAgICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhzdGFydFgsIHN0YXJ0WSk7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5zZXRMaW5lV2lkdGgoMSlcclxuICAgICAgICAgICAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKHN0cm9rZUNvbG9yKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShmaWxsQ29sb3IpO1xyXG4gICAgICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICAgICAgICAvL2NvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3N0YWNrJzpcclxuICAgICAgICAvLyDnu5jliLbloIblj6DmlbDmja7lm75cclxuICAgICAgICB2YXIgcG9pbnRzID0gZ2V0QmFyU3RhY2tEYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeUF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHNlcmllc0luZGV4LCBzZXJpZXMsIHByb2Nlc3MpO1xyXG4gICAgICAgIGNhbFBvaW50cy5wdXNoKHBvaW50cyk7XHJcbiAgICAgICAgcG9pbnRzID0gZml4QmFyU3RhY2tEYXRhKHBvaW50cywgZWFjaFNwYWNpbmcsIHNlcmllcy5sZW5ndGgsIHNlcmllc0luZGV4LCBjb25maWcsIG9wdHMsIHNlcmllcyk7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwb2ludHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgIGxldCBpdGVtID0gcG9pbnRzW2ldO1xyXG4gICAgICAgICAgaWYgKGl0ZW0gIT09IG51bGwgJiYgaSA+IGxlZnROdW0gJiYgaSA8IHJpZ2h0TnVtKSB7XHJcbiAgICAgICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgICAgIHZhciBmaWxsQ29sb3IgPSBpdGVtLmNvbG9yIHx8IGVhY2hTZXJpZXMuY29sb3I7XHJcbiAgICAgICAgICAgIHZhciBzdGFydFggPSBpdGVtLngwO1xyXG4gICAgICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShmaWxsQ29sb3IpO1xyXG4gICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhzdGFydFgsIGl0ZW0ueSAtIGl0ZW0ud2lkdGgvMik7XHJcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbFJlY3Qoc3RhcnRYLCBpdGVtLnkgLSBpdGVtLndpZHRoLzIsIGl0ZW0uaGVpZ2h0ICwgaXRlbS53aWR0aCAtIDIpO1xyXG4gICAgICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICAgICAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH0pO1xyXG5cclxuICBpZiAob3B0cy5kYXRhTGFiZWwgIT09IGZhbHNlICYmIHByb2Nlc3MgPT09IDEpIHtcclxuICAgIHNlcmllcy5mb3JFYWNoKGZ1bmN0aW9uKGVhY2hTZXJpZXMsIHNlcmllc0luZGV4KSB7XHJcbiAgICAgIGxldCByYW5nZXMsIG1pblJhbmdlLCBtYXhSYW5nZTtcclxuICAgICAgcmFuZ2VzID0gW10uY29uY2F0KG9wdHMuY2hhcnREYXRhLnhBeGlzRGF0YS5yYW5nZXMpO1xyXG4gICAgICBtYXhSYW5nZSA9IHJhbmdlcy5wb3AoKTtcclxuICAgICAgbWluUmFuZ2UgPSByYW5nZXMuc2hpZnQoKTtcclxuICAgICAgdmFyIGRhdGEgPSBlYWNoU2VyaWVzLmRhdGE7XHJcbiAgICAgIHN3aXRjaCAoY29sdW1uT3B0aW9uLnR5cGUpIHtcclxuICAgICAgICBjYXNlICdncm91cCc6XHJcbiAgICAgICAgICB2YXIgcG9pbnRzID0gZ2V0QmFyRGF0YVBvaW50cyhkYXRhLCBtaW5SYW5nZSwgbWF4UmFuZ2UsIHlBeGlzUG9pbnRzLCBlYWNoU3BhY2luZywgb3B0cywgY29uZmlnLCBwcm9jZXNzKTtcclxuICAgICAgICAgIHBvaW50cyA9IGZpeEJhckRhdGEocG9pbnRzLCBlYWNoU3BhY2luZywgc2VyaWVzLmxlbmd0aCwgc2VyaWVzSW5kZXgsIGNvbmZpZywgb3B0cyk7XHJcbiAgICAgICAgICBkcmF3QmFyUG9pbnRUZXh0KHBvaW50cywgZWFjaFNlcmllcywgY29uZmlnLCBjb250ZXh0LCBvcHRzKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ3N0YWNrJzpcclxuICAgICAgICAgIHZhciBwb2ludHMgPSBnZXRCYXJTdGFja0RhdGFQb2ludHMoZGF0YSwgbWluUmFuZ2UsIG1heFJhbmdlLCB5QXhpc1BvaW50cywgZWFjaFNwYWNpbmcsIG9wdHMsIGNvbmZpZywgc2VyaWVzSW5kZXgsIHNlcmllcywgcHJvY2Vzcyk7XHJcbiAgICAgICAgICBkcmF3QmFyUG9pbnRUZXh0KHBvaW50cywgZWFjaFNlcmllcywgY29uZmlnLCBjb250ZXh0LCBvcHRzKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbiAgcmV0dXJuIHtcclxuICAgIHlBeGlzUG9pbnRzOiB5QXhpc1BvaW50cyxcclxuICAgIGNhbFBvaW50czogY2FsUG9pbnRzLFxyXG4gICAgZWFjaFNwYWNpbmc6IGVhY2hTcGFjaW5nXHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd0NhbmRsZURhdGFQb2ludHMoc2VyaWVzLCBzZXJpZXNNQSwgb3B0cywgY29uZmlnLCBjb250ZXh0KSB7XHJcbiAgdmFyIHByb2Nlc3MgPSBhcmd1bWVudHMubGVuZ3RoID4gNSAmJiBhcmd1bWVudHNbNV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s1XSA6IDE7XHJcbiAgdmFyIGNhbmRsZU9wdGlvbiA9IGFzc2lnbih7fSwge1xyXG4gICAgY29sb3I6IHt9LFxyXG4gICAgYXZlcmFnZToge31cclxuICB9LCBvcHRzLmV4dHJhLmNhbmRsZSk7XHJcbiAgY2FuZGxlT3B0aW9uLmNvbG9yID0gYXNzaWduKHt9LCB7XHJcbiAgICB1cExpbmU6ICcjZjA0ODY0JyxcclxuICAgIHVwRmlsbDogJyNmMDQ4NjQnLFxyXG4gICAgZG93bkxpbmU6ICcjMmZjMjViJyxcclxuICAgIGRvd25GaWxsOiAnIzJmYzI1YidcclxuICB9LCBjYW5kbGVPcHRpb24uY29sb3IpO1xyXG4gIGNhbmRsZU9wdGlvbi5hdmVyYWdlID0gYXNzaWduKHt9LCB7XHJcbiAgICBzaG93OiBmYWxzZSxcclxuICAgIG5hbWU6IFtdLFxyXG4gICAgZGF5OiBbXSxcclxuICAgIGNvbG9yOiBjb25maWcuY29sb3JcclxuICB9LCBjYW5kbGVPcHRpb24uYXZlcmFnZSk7XHJcbiAgb3B0cy5leHRyYS5jYW5kbGUgPSBjYW5kbGVPcHRpb247XHJcbiAgbGV0IHhBeGlzRGF0YSA9IG9wdHMuY2hhcnREYXRhLnhBeGlzRGF0YSxcclxuICAgIHhBeGlzUG9pbnRzID0geEF4aXNEYXRhLnhBeGlzUG9pbnRzLFxyXG4gICAgZWFjaFNwYWNpbmcgPSB4QXhpc0RhdGEuZWFjaFNwYWNpbmc7XHJcbiAgbGV0IGNhbFBvaW50cyA9IFtdO1xyXG4gIGNvbnRleHQuc2F2ZSgpO1xyXG4gIGxldCBsZWZ0TnVtID0gLTI7XHJcbiAgbGV0IHJpZ2h0TnVtID0geEF4aXNQb2ludHMubGVuZ3RoICsgMjtcclxuICBsZXQgbGVmdFNwYWNlID0gMDtcclxuICBsZXQgcmlnaHRTcGFjZSA9IG9wdHMud2lkdGggKyBlYWNoU3BhY2luZztcclxuICBpZiAob3B0cy5fc2Nyb2xsRGlzdGFuY2VfICYmIG9wdHMuX3Njcm9sbERpc3RhbmNlXyAhPT0gMCAmJiBvcHRzLmVuYWJsZVNjcm9sbCA9PT0gdHJ1ZSkge1xyXG4gICAgY29udGV4dC50cmFuc2xhdGUob3B0cy5fc2Nyb2xsRGlzdGFuY2VfLCAwKTtcclxuICAgIGxlZnROdW0gPSBNYXRoLmZsb29yKC1vcHRzLl9zY3JvbGxEaXN0YW5jZV8gLyBlYWNoU3BhY2luZykgLSAyO1xyXG4gICAgcmlnaHROdW0gPSBsZWZ0TnVtICsgb3B0cy54QXhpcy5pdGVtQ291bnQgKyA0O1xyXG4gICAgbGVmdFNwYWNlID0gLW9wdHMuX3Njcm9sbERpc3RhbmNlXyAtIGVhY2hTcGFjaW5nICogMiArIG9wdHMuYXJlYVszXTtcclxuICAgIHJpZ2h0U3BhY2UgPSBsZWZ0U3BhY2UgKyAob3B0cy54QXhpcy5pdGVtQ291bnQgKyA0KSAqIGVhY2hTcGFjaW5nO1xyXG4gIH1cclxuICAvL+eUu+Wdh+e6v1xyXG4gIGlmIChjYW5kbGVPcHRpb24uYXZlcmFnZS5zaG93IHx8IHNlcmllc01BKSB7IC8vTWVyZ2UgcHVsbCByZXF1ZXN0ICExMiBmcm9tIOmCsei0tee/lFxyXG4gICAgc2VyaWVzTUEuZm9yRWFjaChmdW5jdGlvbihlYWNoU2VyaWVzLCBzZXJpZXNJbmRleCkge1xyXG4gICAgICBsZXQgcmFuZ2VzLCBtaW5SYW5nZSwgbWF4UmFuZ2U7XHJcbiAgICAgIHJhbmdlcyA9IFtdLmNvbmNhdChvcHRzLmNoYXJ0RGF0YS55QXhpc0RhdGEucmFuZ2VzW2VhY2hTZXJpZXMuaW5kZXhdKTtcclxuICAgICAgbWluUmFuZ2UgPSByYW5nZXMucG9wKCk7XHJcbiAgICAgIG1heFJhbmdlID0gcmFuZ2VzLnNoaWZ0KCk7XHJcbiAgICAgIHZhciBkYXRhID0gZWFjaFNlcmllcy5kYXRhO1xyXG4gICAgICB2YXIgcG9pbnRzID0gZ2V0RGF0YVBvaW50cyhkYXRhLCBtaW5SYW5nZSwgbWF4UmFuZ2UsIHhBeGlzUG9pbnRzLCBlYWNoU3BhY2luZywgb3B0cywgY29uZmlnLCBwcm9jZXNzKTtcclxuICAgICAgdmFyIHNwbGl0UG9pbnRMaXN0ID0gc3BsaXRQb2ludHMocG9pbnRzLGVhY2hTZXJpZXMpO1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNwbGl0UG9pbnRMaXN0Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgbGV0IHBvaW50cyA9IHNwbGl0UG9pbnRMaXN0W2ldO1xyXG4gICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShlYWNoU2VyaWVzLmNvbG9yKTtcclxuICAgICAgICBjb250ZXh0LnNldExpbmVXaWR0aCgxKTtcclxuICAgICAgICBpZiAocG9pbnRzLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgICAgY29udGV4dC5tb3ZlVG8ocG9pbnRzWzBdLngsIHBvaW50c1swXS55KTtcclxuICAgICAgICAgIGNvbnRleHQuYXJjKHBvaW50c1swXS54LCBwb2ludHNbMF0ueSwgMSwgMCwgMiAqIE1hdGguUEkpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhwb2ludHNbMF0ueCwgcG9pbnRzWzBdLnkpO1xyXG4gICAgICAgICAgbGV0IHN0YXJ0UG9pbnQgPSAwO1xyXG4gICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBwb2ludHMubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICAgICAgbGV0IGl0ZW0gPSBwb2ludHNbal07XHJcbiAgICAgICAgICAgIGlmIChzdGFydFBvaW50ID09IDAgJiYgaXRlbS54ID4gbGVmdFNwYWNlKSB7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5tb3ZlVG8oaXRlbS54LCBpdGVtLnkpO1xyXG4gICAgICAgICAgICAgIHN0YXJ0UG9pbnQgPSAxO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChqID4gMCAmJiBpdGVtLnggPiBsZWZ0U3BhY2UgJiYgaXRlbS54IDwgcmlnaHRTcGFjZSkge1xyXG4gICAgICAgICAgICAgIHZhciBjdHJsUG9pbnQgPSBjcmVhdGVDdXJ2ZUNvbnRyb2xQb2ludHMocG9pbnRzLCBqIC0gMSk7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5iZXppZXJDdXJ2ZVRvKGN0cmxQb2ludC5jdHJBLngsIGN0cmxQb2ludC5jdHJBLnksIGN0cmxQb2ludC5jdHJCLngsIGN0cmxQb2ludC5jdHJCLnksIGl0ZW0ueCxcclxuICAgICAgICAgICAgICAgIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGNvbnRleHQubW92ZVRvKHBvaW50c1swXS54LCBwb2ludHNbMF0ueSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIC8v55S7S+e6v1xyXG4gIHNlcmllcy5mb3JFYWNoKGZ1bmN0aW9uKGVhY2hTZXJpZXMsIHNlcmllc0luZGV4KSB7XHJcbiAgICBsZXQgcmFuZ2VzLCBtaW5SYW5nZSwgbWF4UmFuZ2U7XHJcbiAgICByYW5nZXMgPSBbXS5jb25jYXQob3B0cy5jaGFydERhdGEueUF4aXNEYXRhLnJhbmdlc1tlYWNoU2VyaWVzLmluZGV4XSk7XHJcbiAgICBtaW5SYW5nZSA9IHJhbmdlcy5wb3AoKTtcclxuICAgIG1heFJhbmdlID0gcmFuZ2VzLnNoaWZ0KCk7XHJcbiAgICB2YXIgZGF0YSA9IGVhY2hTZXJpZXMuZGF0YTtcclxuICAgIHZhciBwb2ludHMgPSBnZXRDYW5kbGVEYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeEF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHByb2Nlc3MpO1xyXG4gICAgY2FsUG9pbnRzLnB1c2gocG9pbnRzKTtcclxuICAgIHZhciBzcGxpdFBvaW50TGlzdCA9IHNwbGl0UG9pbnRzKHBvaW50cyxlYWNoU2VyaWVzKTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3BsaXRQb2ludExpc3RbMF0ubGVuZ3RoOyBpKyspIHtcclxuICAgICAgaWYgKGkgPiBsZWZ0TnVtICYmIGkgPCByaWdodE51bSkge1xyXG4gICAgICAgIGxldCBpdGVtID0gc3BsaXRQb2ludExpc3RbMF1baV07XHJcbiAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICAvL+WmguaenOS4iua2qFxyXG4gICAgICAgIGlmIChkYXRhW2ldWzFdIC0gZGF0YVtpXVswXSA+IDApIHtcclxuICAgICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoY2FuZGxlT3B0aW9uLmNvbG9yLnVwTGluZSk7XHJcbiAgICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShjYW5kbGVPcHRpb24uY29sb3IudXBGaWxsKTtcclxuICAgICAgICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKDEgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtWzNdLngsIGl0ZW1bM10ueSk7IC8v6aG254K5XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtWzFdLngsIGl0ZW1bMV0ueSk7IC8v5pS255uY5Lit6Ze054K5XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtWzFdLnggLSBlYWNoU3BhY2luZyAvIDQsIGl0ZW1bMV0ueSk7IC8v5pS255uY5bem5L6n54K5XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtWzBdLnggLSBlYWNoU3BhY2luZyAvIDQsIGl0ZW1bMF0ueSk7IC8v5byA55uY5bem5L6n54K5XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtWzBdLngsIGl0ZW1bMF0ueSk7IC8v5byA55uY5Lit6Ze054K5XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtWzJdLngsIGl0ZW1bMl0ueSk7IC8v5bqV54K5XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtWzBdLngsIGl0ZW1bMF0ueSk7IC8v5byA55uY5Lit6Ze054K5XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtWzBdLnggKyBlYWNoU3BhY2luZyAvIDQsIGl0ZW1bMF0ueSk7IC8v5byA55uY5Y+z5L6n54K5XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtWzFdLnggKyBlYWNoU3BhY2luZyAvIDQsIGl0ZW1bMV0ueSk7IC8v5pS255uY5Y+z5L6n54K5XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtWzFdLngsIGl0ZW1bMV0ueSk7IC8v5pS255uY5Lit6Ze054K5XHJcbiAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtWzNdLngsIGl0ZW1bM10ueSk7IC8v6aG254K5XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoY2FuZGxlT3B0aW9uLmNvbG9yLmRvd25MaW5lKTtcclxuICAgICAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGNhbmRsZU9wdGlvbi5jb2xvci5kb3duRmlsbCk7XHJcbiAgICAgICAgICBjb250ZXh0LnNldExpbmVXaWR0aCgxICogb3B0cy5waXgpO1xyXG4gICAgICAgICAgY29udGV4dC5tb3ZlVG8oaXRlbVszXS54LCBpdGVtWzNdLnkpOyAvL+mhtueCuVxyXG4gICAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbVswXS54LCBpdGVtWzBdLnkpOyAvL+W8gOebmOS4remXtOeCuVxyXG4gICAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbVswXS54IC0gZWFjaFNwYWNpbmcgLyA0LCBpdGVtWzBdLnkpOyAvL+W8gOebmOW3puS+p+eCuVxyXG4gICAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbVsxXS54IC0gZWFjaFNwYWNpbmcgLyA0LCBpdGVtWzFdLnkpOyAvL+aUtuebmOW3puS+p+eCuVxyXG4gICAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbVsxXS54LCBpdGVtWzFdLnkpOyAvL+aUtuebmOS4remXtOeCuVxyXG4gICAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbVsyXS54LCBpdGVtWzJdLnkpOyAvL+W6leeCuVxyXG4gICAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbVsxXS54LCBpdGVtWzFdLnkpOyAvL+aUtuebmOS4remXtOeCuVxyXG4gICAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbVsxXS54ICsgZWFjaFNwYWNpbmcgLyA0LCBpdGVtWzFdLnkpOyAvL+aUtuebmOWPs+S+p+eCuVxyXG4gICAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbVswXS54ICsgZWFjaFNwYWNpbmcgLyA0LCBpdGVtWzBdLnkpOyAvL+W8gOebmOWPs+S+p+eCuVxyXG4gICAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbVswXS54LCBpdGVtWzBdLnkpOyAvL+W8gOebmOS4remXtOeCuVxyXG4gICAgICAgICAgY29udGV4dC5tb3ZlVG8oaXRlbVszXS54LCBpdGVtWzNdLnkpOyAvL+mhtueCuVxyXG4gICAgICAgIH1cclxuICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9KTtcclxuICBjb250ZXh0LnJlc3RvcmUoKTtcclxuICByZXR1cm4ge1xyXG4gICAgeEF4aXNQb2ludHM6IHhBeGlzUG9pbnRzLFxyXG4gICAgY2FsUG9pbnRzOiBjYWxQb2ludHMsXHJcbiAgICBlYWNoU3BhY2luZzogZWFjaFNwYWNpbmdcclxuICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3QXJlYURhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpIHtcclxuICB2YXIgcHJvY2VzcyA9IGFyZ3VtZW50cy5sZW5ndGggPiA0ICYmIGFyZ3VtZW50c1s0XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzRdIDogMTtcclxuICB2YXIgYXJlYU9wdGlvbiA9IGFzc2lnbih7fSwge1xyXG4gICAgdHlwZTogJ3N0cmFpZ2h0JyxcclxuICAgIG9wYWNpdHk6IDAuMixcclxuICAgIGFkZExpbmU6IGZhbHNlLFxyXG4gICAgd2lkdGg6IDIsXHJcbiAgICBncmFkaWVudDogZmFsc2VcclxuICB9LCBvcHRzLmV4dHJhLmFyZWEpO1xyXG4gIGxldCB4QXhpc0RhdGEgPSBvcHRzLmNoYXJ0RGF0YS54QXhpc0RhdGEsXHJcbiAgICB4QXhpc1BvaW50cyA9IHhBeGlzRGF0YS54QXhpc1BvaW50cyxcclxuICAgIGVhY2hTcGFjaW5nID0geEF4aXNEYXRhLmVhY2hTcGFjaW5nO1xyXG4gIGxldCBlbmRZID0gb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl07XHJcbiAgbGV0IGNhbFBvaW50cyA9IFtdO1xyXG4gIGNvbnRleHQuc2F2ZSgpO1xyXG4gIGxldCBsZWZ0U3BhY2UgPSAwO1xyXG4gIGxldCByaWdodFNwYWNlID0gb3B0cy53aWR0aCArIGVhY2hTcGFjaW5nO1xyXG4gIGlmIChvcHRzLl9zY3JvbGxEaXN0YW5jZV8gJiYgb3B0cy5fc2Nyb2xsRGlzdGFuY2VfICE9PSAwICYmIG9wdHMuZW5hYmxlU2Nyb2xsID09PSB0cnVlKSB7XHJcbiAgICBjb250ZXh0LnRyYW5zbGF0ZShvcHRzLl9zY3JvbGxEaXN0YW5jZV8sIDApO1xyXG4gICAgbGVmdFNwYWNlID0gLW9wdHMuX3Njcm9sbERpc3RhbmNlXyAtIGVhY2hTcGFjaW5nICogMiArIG9wdHMuYXJlYVszXTtcclxuICAgIHJpZ2h0U3BhY2UgPSBsZWZ0U3BhY2UgKyAob3B0cy54QXhpcy5pdGVtQ291bnQgKyA0KSAqIGVhY2hTcGFjaW5nO1xyXG4gIH1cclxuICBzZXJpZXMuZm9yRWFjaChmdW5jdGlvbihlYWNoU2VyaWVzLCBzZXJpZXNJbmRleCkge1xyXG4gICAgbGV0IHJhbmdlcywgbWluUmFuZ2UsIG1heFJhbmdlO1xyXG4gICAgcmFuZ2VzID0gW10uY29uY2F0KG9wdHMuY2hhcnREYXRhLnlBeGlzRGF0YS5yYW5nZXNbZWFjaFNlcmllcy5pbmRleF0pO1xyXG4gICAgbWluUmFuZ2UgPSByYW5nZXMucG9wKCk7XHJcbiAgICBtYXhSYW5nZSA9IHJhbmdlcy5zaGlmdCgpO1xyXG4gICAgbGV0IGRhdGEgPSBlYWNoU2VyaWVzLmRhdGE7XHJcbiAgICBsZXQgcG9pbnRzID0gZ2V0RGF0YVBvaW50cyhkYXRhLCBtaW5SYW5nZSwgbWF4UmFuZ2UsIHhBeGlzUG9pbnRzLCBlYWNoU3BhY2luZywgb3B0cywgY29uZmlnLCBwcm9jZXNzKTtcclxuICAgIGNhbFBvaW50cy5wdXNoKHBvaW50cyk7XHJcbiAgICBsZXQgc3BsaXRQb2ludExpc3QgPSBzcGxpdFBvaW50cyhwb2ludHMsZWFjaFNlcmllcyk7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNwbGl0UG9pbnRMaXN0Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGxldCBwb2ludHMgPSBzcGxpdFBvaW50TGlzdFtpXTtcclxuICAgICAgLy8g57uY5Yi25Yy65Z+f5pWwXHJcbiAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoaGV4VG9SZ2IoZWFjaFNlcmllcy5jb2xvciwgYXJlYU9wdGlvbi5vcGFjaXR5KSk7XHJcbiAgICAgIGlmIChhcmVhT3B0aW9uLmdyYWRpZW50KSB7XHJcbiAgICAgICAgbGV0IGdyYWRpZW50ID0gY29udGV4dC5jcmVhdGVMaW5lYXJHcmFkaWVudCgwLCBvcHRzLmFyZWFbMF0sIDAsIG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdKTtcclxuICAgICAgICBncmFkaWVudC5hZGRDb2xvclN0b3AoJzAnLCBoZXhUb1JnYihlYWNoU2VyaWVzLmNvbG9yLCBhcmVhT3B0aW9uLm9wYWNpdHkpKTtcclxuICAgICAgICBncmFkaWVudC5hZGRDb2xvclN0b3AoJzEuMCcsIGhleFRvUmdiKFwiI0ZGRkZGRlwiLCAwLjEpKTtcclxuICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShncmFkaWVudCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoaGV4VG9SZ2IoZWFjaFNlcmllcy5jb2xvciwgYXJlYU9wdGlvbi5vcGFjaXR5KSk7XHJcbiAgICAgIH1cclxuICAgICAgY29udGV4dC5zZXRMaW5lV2lkdGgoYXJlYU9wdGlvbi53aWR0aCAqIG9wdHMucGl4KTtcclxuICAgICAgaWYgKHBvaW50cy5sZW5ndGggPiAxKSB7XHJcbiAgICAgICAgbGV0IGZpcnN0UG9pbnQgPSBwb2ludHNbMF07XHJcbiAgICAgICAgbGV0IGxhc3RQb2ludCA9IHBvaW50c1twb2ludHMubGVuZ3RoIC0gMV07XHJcbiAgICAgICAgY29udGV4dC5tb3ZlVG8oZmlyc3RQb2ludC54LCBmaXJzdFBvaW50LnkpO1xyXG4gICAgICAgIGxldCBzdGFydFBvaW50ID0gMDtcclxuICAgICAgICBpZiAoYXJlYU9wdGlvbi50eXBlID09PSAnY3VydmUnKSB7XHJcbiAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHBvaW50cy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICBsZXQgaXRlbSA9IHBvaW50c1tqXTtcclxuICAgICAgICAgICAgaWYgKHN0YXJ0UG9pbnQgPT0gMCAmJiBpdGVtLnggPiBsZWZ0U3BhY2UpIHtcclxuICAgICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtLngsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgICAgc3RhcnRQb2ludCA9IDE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGogPiAwICYmIGl0ZW0ueCA+IGxlZnRTcGFjZSAmJiBpdGVtLnggPCByaWdodFNwYWNlKSB7XHJcbiAgICAgICAgICAgICAgbGV0IGN0cmxQb2ludCA9IGNyZWF0ZUN1cnZlQ29udHJvbFBvaW50cyhwb2ludHMsIGogLSAxKTtcclxuICAgICAgICAgICAgICBjb250ZXh0LmJlemllckN1cnZlVG8oY3RybFBvaW50LmN0ckEueCwgY3RybFBvaW50LmN0ckEueSwgY3RybFBvaW50LmN0ckIueCwgY3RybFBvaW50LmN0ckIueSwgaXRlbS54LCBpdGVtLnkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH0gXHJcbiAgICAgICAgaWYgKGFyZWFPcHRpb24udHlwZSA9PT0gJ3N0cmFpZ2h0Jykge1xyXG4gICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBwb2ludHMubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICAgICAgbGV0IGl0ZW0gPSBwb2ludHNbal07XHJcbiAgICAgICAgICAgIGlmIChzdGFydFBvaW50ID09IDAgJiYgaXRlbS54ID4gbGVmdFNwYWNlKSB7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5tb3ZlVG8oaXRlbS54LCBpdGVtLnkpO1xyXG4gICAgICAgICAgICAgIHN0YXJ0UG9pbnQgPSAxO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChqID4gMCAmJiBpdGVtLnggPiBsZWZ0U3BhY2UgJiYgaXRlbS54IDwgcmlnaHRTcGFjZSkge1xyXG4gICAgICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCwgaXRlbS55KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGFyZWFPcHRpb24udHlwZSA9PT0gJ3N0ZXAnKSB7XHJcbiAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHBvaW50cy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICBsZXQgaXRlbSA9IHBvaW50c1tqXTtcclxuICAgICAgICAgICAgaWYgKHN0YXJ0UG9pbnQgPT0gMCAmJiBpdGVtLnggPiBsZWZ0U3BhY2UpIHtcclxuICAgICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtLngsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgICAgc3RhcnRQb2ludCA9IDE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGogPiAwICYmIGl0ZW0ueCA+IGxlZnRTcGFjZSAmJiBpdGVtLnggPCByaWdodFNwYWNlKSB7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbS54LCBwb2ludHNbaiAtIDFdLnkpO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCwgaXRlbS55KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8obGFzdFBvaW50LngsIGVuZFkpO1xyXG4gICAgICAgIGNvbnRleHQubGluZVRvKGZpcnN0UG9pbnQueCwgZW5kWSk7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oZmlyc3RQb2ludC54LCBmaXJzdFBvaW50LnkpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGxldCBpdGVtID0gcG9pbnRzWzBdO1xyXG4gICAgICAgIGNvbnRleHQubW92ZVRvKGl0ZW0ueCAtIGVhY2hTcGFjaW5nIC8gMiwgaXRlbS55KTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLnggKyBlYWNoU3BhY2luZyAvIDIsIGl0ZW0ueSk7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbS54ICsgZWFjaFNwYWNpbmcgLyAyLCBlbmRZKTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLnggLSBlYWNoU3BhY2luZyAvIDIsIGVuZFkpO1xyXG4gICAgICAgIGNvbnRleHQubW92ZVRvKGl0ZW0ueCAtIGVhY2hTcGFjaW5nIC8gMiwgaXRlbS55KTtcclxuICAgICAgfVxyXG4gICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgICAgLy/nlLvov57nur9cclxuICAgICAgaWYgKGFyZWFPcHRpb24uYWRkTGluZSkge1xyXG4gICAgICAgIGlmIChlYWNoU2VyaWVzLmxpbmVUeXBlID09ICdkYXNoJykge1xyXG4gICAgICAgICAgbGV0IGRhc2hMZW5ndGggPSBlYWNoU2VyaWVzLmRhc2hMZW5ndGggPyBlYWNoU2VyaWVzLmRhc2hMZW5ndGggOiA4O1xyXG4gICAgICAgICAgZGFzaExlbmd0aCAqPSBvcHRzLnBpeDtcclxuICAgICAgICAgIGNvbnRleHQuc2V0TGluZURhc2goW2Rhc2hMZW5ndGgsIGRhc2hMZW5ndGhdKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKGVhY2hTZXJpZXMuY29sb3IpO1xyXG4gICAgICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKGFyZWFPcHRpb24ud2lkdGggKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgaWYgKHBvaW50cy5sZW5ndGggPT09IDEpIHtcclxuICAgICAgICAgIGNvbnRleHQubW92ZVRvKHBvaW50c1swXS54LCBwb2ludHNbMF0ueSk7XHJcbiAgICAgICAgICBjb250ZXh0LmFyYyhwb2ludHNbMF0ueCwgcG9pbnRzWzBdLnksIDEsIDAsIDIgKiBNYXRoLlBJKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29udGV4dC5tb3ZlVG8ocG9pbnRzWzBdLngsIHBvaW50c1swXS55KTtcclxuICAgICAgICAgIGxldCBzdGFydFBvaW50ID0gMDtcclxuICAgICAgICAgIGlmIChhcmVhT3B0aW9uLnR5cGUgPT09ICdjdXJ2ZScpIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBwb2ludHMubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICAgICAgICBsZXQgaXRlbSA9IHBvaW50c1tqXTtcclxuICAgICAgICAgICAgICBpZiAoc3RhcnRQb2ludCA9PSAwICYmIGl0ZW0ueCA+IGxlZnRTcGFjZSkge1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5tb3ZlVG8oaXRlbS54LCBpdGVtLnkpO1xyXG4gICAgICAgICAgICAgICAgc3RhcnRQb2ludCA9IDE7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGlmIChqID4gMCAmJiBpdGVtLnggPiBsZWZ0U3BhY2UgJiYgaXRlbS54IDwgcmlnaHRTcGFjZSkge1xyXG4gICAgICAgICAgICAgICAgbGV0IGN0cmxQb2ludCA9IGNyZWF0ZUN1cnZlQ29udHJvbFBvaW50cyhwb2ludHMsIGogLSAxKTtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQuYmV6aWVyQ3VydmVUbyhjdHJsUG9pbnQuY3RyQS54LCBjdHJsUG9pbnQuY3RyQS55LCBjdHJsUG9pbnQuY3RyQi54LCBjdHJsUG9pbnQuY3RyQi55LCBpdGVtLngsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKGFyZWFPcHRpb24udHlwZSA9PT0gJ3N0cmFpZ2h0Jykge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHBvaW50cy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICAgIGxldCBpdGVtID0gcG9pbnRzW2pdO1xyXG4gICAgICAgICAgICAgIGlmIChzdGFydFBvaW50ID09IDAgJiYgaXRlbS54ID4gbGVmdFNwYWNlKSB7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtLngsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgICAgICBzdGFydFBvaW50ID0gMTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgaWYgKGogPiAwICYmIGl0ZW0ueCA+IGxlZnRTcGFjZSAmJiBpdGVtLnggPCByaWdodFNwYWNlKSB7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLngsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKGFyZWFPcHRpb24udHlwZSA9PT0gJ3N0ZXAnKSB7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgcG9pbnRzLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICAgICAgbGV0IGl0ZW0gPSBwb2ludHNbal07XHJcbiAgICAgICAgICAgICAgaWYgKHN0YXJ0UG9pbnQgPT0gMCAmJiBpdGVtLnggPiBsZWZ0U3BhY2UpIHtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKGl0ZW0ueCwgaXRlbS55KTtcclxuICAgICAgICAgICAgICAgIHN0YXJ0UG9pbnQgPSAxO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBpZiAoaiA+IDAgJiYgaXRlbS54ID4gbGVmdFNwYWNlICYmIGl0ZW0ueCA8IHJpZ2h0U3BhY2UpIHtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCwgcG9pbnRzW2ogLSAxXS55KTtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCwgaXRlbS55KTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhwb2ludHNbMF0ueCwgcG9pbnRzWzBdLnkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICAgIGNvbnRleHQuc2V0TGluZURhc2goW10pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAvL+eUu+eCuVxyXG4gICAgaWYgKG9wdHMuZGF0YVBvaW50U2hhcGUgIT09IGZhbHNlKSB7XHJcbiAgICAgIGRyYXdQb2ludFNoYXBlKHBvaW50cywgZWFjaFNlcmllcy5jb2xvciwgZWFjaFNlcmllcy5wb2ludFNoYXBlLCBjb250ZXh0LCBvcHRzKTtcclxuICAgIH1cclxuICB9KTtcclxuXHJcbiAgaWYgKG9wdHMuZGF0YUxhYmVsICE9PSBmYWxzZSAmJiBwcm9jZXNzID09PSAxKSB7XHJcbiAgICBzZXJpZXMuZm9yRWFjaChmdW5jdGlvbihlYWNoU2VyaWVzLCBzZXJpZXNJbmRleCkge1xyXG4gICAgICBsZXQgcmFuZ2VzLCBtaW5SYW5nZSwgbWF4UmFuZ2U7XHJcbiAgICAgIHJhbmdlcyA9IFtdLmNvbmNhdChvcHRzLmNoYXJ0RGF0YS55QXhpc0RhdGEucmFuZ2VzW2VhY2hTZXJpZXMuaW5kZXhdKTtcclxuICAgICAgbWluUmFuZ2UgPSByYW5nZXMucG9wKCk7XHJcbiAgICAgIG1heFJhbmdlID0gcmFuZ2VzLnNoaWZ0KCk7XHJcbiAgICAgIHZhciBkYXRhID0gZWFjaFNlcmllcy5kYXRhO1xyXG4gICAgICB2YXIgcG9pbnRzID0gZ2V0RGF0YVBvaW50cyhkYXRhLCBtaW5SYW5nZSwgbWF4UmFuZ2UsIHhBeGlzUG9pbnRzLCBlYWNoU3BhY2luZywgb3B0cywgY29uZmlnLCBwcm9jZXNzKTtcclxuICAgICAgZHJhd1BvaW50VGV4dChwb2ludHMsIGVhY2hTZXJpZXMsIGNvbmZpZywgY29udGV4dCwgb3B0cyk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgY29udGV4dC5yZXN0b3JlKCk7XHJcbiAgcmV0dXJuIHtcclxuICAgIHhBeGlzUG9pbnRzOiB4QXhpc1BvaW50cyxcclxuICAgIGNhbFBvaW50czogY2FsUG9pbnRzLFxyXG4gICAgZWFjaFNwYWNpbmc6IGVhY2hTcGFjaW5nXHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd1NjYXR0ZXJEYXRhUG9pbnRzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KSB7XHJcbiAgdmFyIHByb2Nlc3MgPSBhcmd1bWVudHMubGVuZ3RoID4gNCAmJiBhcmd1bWVudHNbNF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s0XSA6IDE7XHJcbiAgdmFyIHNjYXR0ZXJPcHRpb24gPSBhc3NpZ24oe30sIHtcclxuICAgIHR5cGU6ICdjaXJjbGUnXHJcbiAgfSwgb3B0cy5leHRyYS5zY2F0dGVyKTtcclxuICBsZXQgeEF4aXNEYXRhID0gb3B0cy5jaGFydERhdGEueEF4aXNEYXRhLFxyXG4gICAgeEF4aXNQb2ludHMgPSB4QXhpc0RhdGEueEF4aXNQb2ludHMsXHJcbiAgICBlYWNoU3BhY2luZyA9IHhBeGlzRGF0YS5lYWNoU3BhY2luZztcclxuICB2YXIgY2FsUG9pbnRzID0gW107XHJcbiAgY29udGV4dC5zYXZlKCk7XHJcbiAgbGV0IGxlZnRTcGFjZSA9IDA7XHJcbiAgbGV0IHJpZ2h0U3BhY2UgPSBvcHRzLndpZHRoICsgZWFjaFNwYWNpbmc7XHJcbiAgaWYgKG9wdHMuX3Njcm9sbERpc3RhbmNlXyAmJiBvcHRzLl9zY3JvbGxEaXN0YW5jZV8gIT09IDAgJiYgb3B0cy5lbmFibGVTY3JvbGwgPT09IHRydWUpIHtcclxuICAgIGNvbnRleHQudHJhbnNsYXRlKG9wdHMuX3Njcm9sbERpc3RhbmNlXywgMCk7XHJcbiAgICBsZWZ0U3BhY2UgPSAtb3B0cy5fc2Nyb2xsRGlzdGFuY2VfIC0gZWFjaFNwYWNpbmcgKiAyICsgb3B0cy5hcmVhWzNdO1xyXG4gICAgcmlnaHRTcGFjZSA9IGxlZnRTcGFjZSArIChvcHRzLnhBeGlzLml0ZW1Db3VudCArIDQpICogZWFjaFNwYWNpbmc7XHJcbiAgfVxyXG4gIHNlcmllcy5mb3JFYWNoKGZ1bmN0aW9uKGVhY2hTZXJpZXMsIHNlcmllc0luZGV4KSB7XHJcbiAgICBsZXQgcmFuZ2VzLCBtaW5SYW5nZSwgbWF4UmFuZ2U7XHJcbiAgICByYW5nZXMgPSBbXS5jb25jYXQob3B0cy5jaGFydERhdGEueUF4aXNEYXRhLnJhbmdlc1tlYWNoU2VyaWVzLmluZGV4XSk7XHJcbiAgICBtaW5SYW5nZSA9IHJhbmdlcy5wb3AoKTtcclxuICAgIG1heFJhbmdlID0gcmFuZ2VzLnNoaWZ0KCk7XHJcbiAgICB2YXIgZGF0YSA9IGVhY2hTZXJpZXMuZGF0YTtcclxuICAgIHZhciBwb2ludHMgPSBnZXREYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeEF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHByb2Nlc3MpO1xyXG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoZWFjaFNlcmllcy5jb2xvcik7XHJcbiAgICBjb250ZXh0LnNldEZpbGxTdHlsZShlYWNoU2VyaWVzLmNvbG9yKTtcclxuICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKDEgKiBvcHRzLnBpeCk7XHJcbiAgICB2YXIgc2hhcGUgPSBlYWNoU2VyaWVzLnBvaW50U2hhcGU7XHJcbiAgICBpZiAoc2hhcGUgPT09ICdkaWFtb25kJykge1xyXG4gICAgICBwb2ludHMuZm9yRWFjaChmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgICAgIGlmIChpdGVtICE9PSBudWxsKSB7XHJcbiAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtLngsIGl0ZW0ueSAtIDQuNSk7XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLnggLSA0LjUsIGl0ZW0ueSk7XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLngsIGl0ZW0ueSArIDQuNSk7XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLnggKyA0LjUsIGl0ZW0ueSk7XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLngsIGl0ZW0ueSAtIDQuNSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSBpZiAoc2hhcGUgPT09ICdjaXJjbGUnKSB7XHJcbiAgICAgIHBvaW50cy5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICAgICAgaWYgKGl0ZW0gIT09IG51bGwpIHtcclxuICAgICAgICAgIGNvbnRleHQubW92ZVRvKGl0ZW0ueCArIDIuNSAqIG9wdHMucGl4LCBpdGVtLnkpO1xyXG4gICAgICAgICAgY29udGV4dC5hcmMoaXRlbS54LCBpdGVtLnksIDMgKiBvcHRzLnBpeCwgMCwgMiAqIE1hdGguUEksIGZhbHNlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIGlmIChzaGFwZSA9PT0gJ3NxdWFyZScpIHtcclxuICAgICAgcG9pbnRzLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgICAgICBpZiAoaXRlbSAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgY29udGV4dC5tb3ZlVG8oaXRlbS54IC0gMy41LCBpdGVtLnkgLSAzLjUpO1xyXG4gICAgICAgICAgY29udGV4dC5yZWN0KGl0ZW0ueCAtIDMuNSwgaXRlbS55IC0gMy41LCA3LCA3KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIGlmIChzaGFwZSA9PT0gJ3RyaWFuZ2xlJykge1xyXG4gICAgICBwb2ludHMuZm9yRWFjaChmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgICAgIGlmIChpdGVtICE9PSBudWxsKSB7XHJcbiAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtLngsIGl0ZW0ueSAtIDQuNSk7XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLnggLSA0LjUsIGl0ZW0ueSArIDQuNSk7XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLnggKyA0LjUsIGl0ZW0ueSArIDQuNSk7XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLngsIGl0ZW0ueSAtIDQuNSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSBpZiAoc2hhcGUgPT09ICd0cmlhbmdsZScpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgY29udGV4dC5zdHJva2UoKTtcclxuICB9KTtcclxuICBpZiAob3B0cy5kYXRhTGFiZWwgIT09IGZhbHNlICYmIHByb2Nlc3MgPT09IDEpIHtcclxuICAgIHNlcmllcy5mb3JFYWNoKGZ1bmN0aW9uKGVhY2hTZXJpZXMsIHNlcmllc0luZGV4KSB7XHJcbiAgICAgIGxldCByYW5nZXMsIG1pblJhbmdlLCBtYXhSYW5nZTtcclxuICAgICAgcmFuZ2VzID0gW10uY29uY2F0KG9wdHMuY2hhcnREYXRhLnlBeGlzRGF0YS5yYW5nZXNbZWFjaFNlcmllcy5pbmRleF0pO1xyXG4gICAgICBtaW5SYW5nZSA9IHJhbmdlcy5wb3AoKTtcclxuICAgICAgbWF4UmFuZ2UgPSByYW5nZXMuc2hpZnQoKTtcclxuICAgICAgdmFyIGRhdGEgPSBlYWNoU2VyaWVzLmRhdGE7XHJcbiAgICAgIHZhciBwb2ludHMgPSBnZXREYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeEF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHByb2Nlc3MpO1xyXG4gICAgICBkcmF3UG9pbnRUZXh0KHBvaW50cywgZWFjaFNlcmllcywgY29uZmlnLCBjb250ZXh0LCBvcHRzKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBjb250ZXh0LnJlc3RvcmUoKTtcclxuICByZXR1cm4ge1xyXG4gICAgeEF4aXNQb2ludHM6IHhBeGlzUG9pbnRzLFxyXG4gICAgY2FsUG9pbnRzOiBjYWxQb2ludHMsXHJcbiAgICBlYWNoU3BhY2luZzogZWFjaFNwYWNpbmdcclxuICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3QnViYmxlRGF0YVBvaW50cyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCkge1xyXG4gIHZhciBwcm9jZXNzID0gYXJndW1lbnRzLmxlbmd0aCA+IDQgJiYgYXJndW1lbnRzWzRdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbNF0gOiAxO1xyXG4gIHZhciBidWJibGVPcHRpb24gPSBhc3NpZ24oe30sIHtcclxuICAgIG9wYWNpdHk6IDEsXHJcbiAgICBib3JkZXI6MlxyXG4gIH0sIG9wdHMuZXh0cmEuYnViYmxlKTtcclxuICBsZXQgeEF4aXNEYXRhID0gb3B0cy5jaGFydERhdGEueEF4aXNEYXRhLFxyXG4gICAgeEF4aXNQb2ludHMgPSB4QXhpc0RhdGEueEF4aXNQb2ludHMsXHJcbiAgICBlYWNoU3BhY2luZyA9IHhBeGlzRGF0YS5lYWNoU3BhY2luZztcclxuICB2YXIgY2FsUG9pbnRzID0gW107XHJcbiAgY29udGV4dC5zYXZlKCk7XHJcbiAgbGV0IGxlZnRTcGFjZSA9IDA7XHJcbiAgbGV0IHJpZ2h0U3BhY2UgPSBvcHRzLndpZHRoICsgZWFjaFNwYWNpbmc7XHJcbiAgaWYgKG9wdHMuX3Njcm9sbERpc3RhbmNlXyAmJiBvcHRzLl9zY3JvbGxEaXN0YW5jZV8gIT09IDAgJiYgb3B0cy5lbmFibGVTY3JvbGwgPT09IHRydWUpIHtcclxuICAgIGNvbnRleHQudHJhbnNsYXRlKG9wdHMuX3Njcm9sbERpc3RhbmNlXywgMCk7XHJcbiAgICBsZWZ0U3BhY2UgPSAtb3B0cy5fc2Nyb2xsRGlzdGFuY2VfIC0gZWFjaFNwYWNpbmcgKiAyICsgb3B0cy5hcmVhWzNdO1xyXG4gICAgcmlnaHRTcGFjZSA9IGxlZnRTcGFjZSArIChvcHRzLnhBeGlzLml0ZW1Db3VudCArIDQpICogZWFjaFNwYWNpbmc7XHJcbiAgfVxyXG4gIHNlcmllcy5mb3JFYWNoKGZ1bmN0aW9uKGVhY2hTZXJpZXMsIHNlcmllc0luZGV4KSB7XHJcbiAgICBsZXQgcmFuZ2VzLCBtaW5SYW5nZSwgbWF4UmFuZ2U7XHJcbiAgICByYW5nZXMgPSBbXS5jb25jYXQob3B0cy5jaGFydERhdGEueUF4aXNEYXRhLnJhbmdlc1tlYWNoU2VyaWVzLmluZGV4XSk7XHJcbiAgICBtaW5SYW5nZSA9IHJhbmdlcy5wb3AoKTtcclxuICAgIG1heFJhbmdlID0gcmFuZ2VzLnNoaWZ0KCk7XHJcbiAgICB2YXIgZGF0YSA9IGVhY2hTZXJpZXMuZGF0YTtcclxuICAgIHZhciBwb2ludHMgPSBnZXREYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeEF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHByb2Nlc3MpO1xyXG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoZWFjaFNlcmllcy5jb2xvcik7XHJcbiAgICBjb250ZXh0LnNldExpbmVXaWR0aChidWJibGVPcHRpb24uYm9yZGVyICogb3B0cy5waXgpO1xyXG4gICAgY29udGV4dC5zZXRGaWxsU3R5bGUoaGV4VG9SZ2IoZWFjaFNlcmllcy5jb2xvciwgYnViYmxlT3B0aW9uLm9wYWNpdHkpKTtcclxuICAgIHBvaW50cy5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICAgIGNvbnRleHQubW92ZVRvKGl0ZW0ueCArIGl0ZW0uciwgaXRlbS55KTtcclxuICAgICAgY29udGV4dC5hcmMoaXRlbS54LCBpdGVtLnksIGl0ZW0uciAqIG9wdHMucGl4LCAwLCAyICogTWF0aC5QSSwgZmFsc2UpO1xyXG4gICAgfSk7XHJcbiAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgY29udGV4dC5maWxsKCk7XHJcbiAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgXHJcbiAgICBpZiAob3B0cy5kYXRhTGFiZWwgIT09IGZhbHNlICYmIHByb2Nlc3MgPT09IDEpIHtcclxuICAgICAgcG9pbnRzLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgIHZhciBmb250U2l6ZSA9IHNlcmllcy50ZXh0U2l6ZSAqIG9wdHMucGl4IHx8IGNvbmZpZy5mb250U2l6ZTtcclxuICAgICAgICBjb250ZXh0LnNldEZvbnRTaXplKGZvbnRTaXplKTtcclxuICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShzZXJpZXMudGV4dENvbG9yIHx8IFwiI0ZGRkZGRlwiKTtcclxuICAgICAgICBjb250ZXh0LnNldFRleHRBbGlnbignY2VudGVyJyk7XHJcbiAgICAgICAgY29udGV4dC5maWxsVGV4dChTdHJpbmcoaXRlbS50KSwgaXRlbS54LCBpdGVtLnkgKyBmb250U2l6ZS8yKTtcclxuICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgICAgY29udGV4dC5zZXRUZXh0QWxpZ24oJ2xlZnQnKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgY29udGV4dC5yZXN0b3JlKCk7XHJcbiAgcmV0dXJuIHtcclxuICAgIHhBeGlzUG9pbnRzOiB4QXhpc1BvaW50cyxcclxuICAgIGNhbFBvaW50czogY2FsUG9pbnRzLFxyXG4gICAgZWFjaFNwYWNpbmc6IGVhY2hTcGFjaW5nXHJcbiAgfTtcclxufVxyXG5cclxuXHJcbmZ1bmN0aW9uIGRyYXdMaW5lRGF0YVBvaW50cyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCkge1xyXG4gIHZhciBwcm9jZXNzID0gYXJndW1lbnRzLmxlbmd0aCA+IDQgJiYgYXJndW1lbnRzWzRdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbNF0gOiAxO1xyXG4gIHZhciBsaW5lT3B0aW9uID0gYXNzaWduKHt9LCB7XHJcbiAgICB0eXBlOiAnc3RyYWlnaHQnLFxyXG4gICAgd2lkdGg6IDJcclxuICB9LCBvcHRzLmV4dHJhLmxpbmUpO1xyXG4gIGxpbmVPcHRpb24ud2lkdGggKj0gb3B0cy5waXg7XHJcbiAgbGV0IHhBeGlzRGF0YSA9IG9wdHMuY2hhcnREYXRhLnhBeGlzRGF0YSxcclxuICAgIHhBeGlzUG9pbnRzID0geEF4aXNEYXRhLnhBeGlzUG9pbnRzLFxyXG4gICAgZWFjaFNwYWNpbmcgPSB4QXhpc0RhdGEuZWFjaFNwYWNpbmc7XHJcbiAgdmFyIGNhbFBvaW50cyA9IFtdO1xyXG4gIGNvbnRleHQuc2F2ZSgpO1xyXG4gIGxldCBsZWZ0U3BhY2UgPSAwO1xyXG4gIGxldCByaWdodFNwYWNlID0gb3B0cy53aWR0aCArIGVhY2hTcGFjaW5nO1xyXG4gIGlmIChvcHRzLl9zY3JvbGxEaXN0YW5jZV8gJiYgb3B0cy5fc2Nyb2xsRGlzdGFuY2VfICE9PSAwICYmIG9wdHMuZW5hYmxlU2Nyb2xsID09PSB0cnVlKSB7XHJcbiAgICBjb250ZXh0LnRyYW5zbGF0ZShvcHRzLl9zY3JvbGxEaXN0YW5jZV8sIDApO1xyXG4gICAgbGVmdFNwYWNlID0gLW9wdHMuX3Njcm9sbERpc3RhbmNlXyAtIGVhY2hTcGFjaW5nICogMiArIG9wdHMuYXJlYVszXTtcclxuICAgIHJpZ2h0U3BhY2UgPSBsZWZ0U3BhY2UgKyAob3B0cy54QXhpcy5pdGVtQ291bnQgKyA0KSAqIGVhY2hTcGFjaW5nO1xyXG4gIH1cclxuICBzZXJpZXMuZm9yRWFjaChmdW5jdGlvbihlYWNoU2VyaWVzLCBzZXJpZXNJbmRleCkge1xyXG4gICAgbGV0IHJhbmdlcywgbWluUmFuZ2UsIG1heFJhbmdlO1xyXG4gICAgcmFuZ2VzID0gW10uY29uY2F0KG9wdHMuY2hhcnREYXRhLnlBeGlzRGF0YS5yYW5nZXNbZWFjaFNlcmllcy5pbmRleF0pO1xyXG4gICAgbWluUmFuZ2UgPSByYW5nZXMucG9wKCk7XHJcbiAgICBtYXhSYW5nZSA9IHJhbmdlcy5zaGlmdCgpO1xyXG4gICAgdmFyIGRhdGEgPSBlYWNoU2VyaWVzLmRhdGE7XHJcbiAgICB2YXIgcG9pbnRzID0gZ2V0RGF0YVBvaW50cyhkYXRhLCBtaW5SYW5nZSwgbWF4UmFuZ2UsIHhBeGlzUG9pbnRzLCBlYWNoU3BhY2luZywgb3B0cywgY29uZmlnLCBwcm9jZXNzKTtcclxuICAgIGNhbFBvaW50cy5wdXNoKHBvaW50cyk7XHJcbiAgICB2YXIgc3BsaXRQb2ludExpc3QgPSBzcGxpdFBvaW50cyhwb2ludHMsZWFjaFNlcmllcyk7XHJcbiAgICBpZiAoZWFjaFNlcmllcy5saW5lVHlwZSA9PSAnZGFzaCcpIHtcclxuICAgICAgbGV0IGRhc2hMZW5ndGggPSBlYWNoU2VyaWVzLmRhc2hMZW5ndGggPyBlYWNoU2VyaWVzLmRhc2hMZW5ndGggOiA4O1xyXG4gICAgICBkYXNoTGVuZ3RoICo9IG9wdHMucGl4O1xyXG4gICAgICBjb250ZXh0LnNldExpbmVEYXNoKFtkYXNoTGVuZ3RoLCBkYXNoTGVuZ3RoXSk7XHJcbiAgICB9XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShlYWNoU2VyaWVzLmNvbG9yKTtcclxuICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKGxpbmVPcHRpb24ud2lkdGgpO1xyXG4gICAgc3BsaXRQb2ludExpc3QuZm9yRWFjaChmdW5jdGlvbihwb2ludHMsIGluZGV4KSB7XHJcbiAgICAgIGlmIChwb2ludHMubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgICAgY29udGV4dC5tb3ZlVG8ocG9pbnRzWzBdLngsIHBvaW50c1swXS55KTtcclxuICAgICAgICBjb250ZXh0LmFyYyhwb2ludHNbMF0ueCwgcG9pbnRzWzBdLnksIDEsIDAsIDIgKiBNYXRoLlBJKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb250ZXh0Lm1vdmVUbyhwb2ludHNbMF0ueCwgcG9pbnRzWzBdLnkpO1xyXG4gICAgICAgIGxldCBzdGFydFBvaW50ID0gMDtcclxuICAgICAgICBpZiAobGluZU9wdGlvbi50eXBlID09PSAnY3VydmUnKSB7XHJcbiAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHBvaW50cy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICBsZXQgaXRlbSA9IHBvaW50c1tqXTtcclxuICAgICAgICAgICAgaWYgKHN0YXJ0UG9pbnQgPT0gMCAmJiBpdGVtLnggPiBsZWZ0U3BhY2UpIHtcclxuICAgICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtLngsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgICAgc3RhcnRQb2ludCA9IDE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGogPiAwICYmIGl0ZW0ueCA+IGxlZnRTcGFjZSAmJiBpdGVtLnggPCByaWdodFNwYWNlKSB7XHJcbiAgICAgICAgICAgICAgdmFyIGN0cmxQb2ludCA9IGNyZWF0ZUN1cnZlQ29udHJvbFBvaW50cyhwb2ludHMsIGogLSAxKTtcclxuICAgICAgICAgICAgICBjb250ZXh0LmJlemllckN1cnZlVG8oY3RybFBvaW50LmN0ckEueCwgY3RybFBvaW50LmN0ckEueSwgY3RybFBvaW50LmN0ckIueCwgY3RybFBvaW50LmN0ckIueSwgaXRlbS54LCBpdGVtLnkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAobGluZU9wdGlvbi50eXBlID09PSAnc3RyYWlnaHQnKSB7XHJcbiAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHBvaW50cy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICBsZXQgaXRlbSA9IHBvaW50c1tqXTtcclxuICAgICAgICAgICAgaWYgKHN0YXJ0UG9pbnQgPT0gMCAmJiBpdGVtLnggPiBsZWZ0U3BhY2UpIHtcclxuICAgICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtLngsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgICAgc3RhcnRQb2ludCA9IDE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGogPiAwICYmIGl0ZW0ueCA+IGxlZnRTcGFjZSAmJiBpdGVtLnggPCByaWdodFNwYWNlKSB7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbS54LCBpdGVtLnkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAobGluZU9wdGlvbi50eXBlID09PSAnc3RlcCcpIHtcclxuICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgcG9pbnRzLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICAgIGxldCBpdGVtID0gcG9pbnRzW2pdO1xyXG4gICAgICAgICAgICBpZiAoc3RhcnRQb2ludCA9PSAwICYmIGl0ZW0ueCA+IGxlZnRTcGFjZSkge1xyXG4gICAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKGl0ZW0ueCwgaXRlbS55KTtcclxuICAgICAgICAgICAgICBzdGFydFBvaW50ID0gMTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoaiA+IDAgJiYgaXRlbS54ID4gbGVmdFNwYWNlICYmIGl0ZW0ueCA8IHJpZ2h0U3BhY2UpIHtcclxuICAgICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLngsIHBvaW50c1tqIC0gMV0ueSk7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbS54LCBpdGVtLnkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb250ZXh0Lm1vdmVUbyhwb2ludHNbMF0ueCwgcG9pbnRzWzBdLnkpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICBjb250ZXh0LnNldExpbmVEYXNoKFtdKTtcclxuICAgIGlmIChvcHRzLmRhdGFQb2ludFNoYXBlICE9PSBmYWxzZSkge1xyXG4gICAgICBkcmF3UG9pbnRTaGFwZShwb2ludHMsIGVhY2hTZXJpZXMuY29sb3IsIGVhY2hTZXJpZXMucG9pbnRTaGFwZSwgY29udGV4dCwgb3B0cyk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgaWYgKG9wdHMuZGF0YUxhYmVsICE9PSBmYWxzZSAmJiBwcm9jZXNzID09PSAxKSB7XHJcbiAgICBzZXJpZXMuZm9yRWFjaChmdW5jdGlvbihlYWNoU2VyaWVzLCBzZXJpZXNJbmRleCkge1xyXG4gICAgICBsZXQgcmFuZ2VzLCBtaW5SYW5nZSwgbWF4UmFuZ2U7XHJcbiAgICAgIHJhbmdlcyA9IFtdLmNvbmNhdChvcHRzLmNoYXJ0RGF0YS55QXhpc0RhdGEucmFuZ2VzW2VhY2hTZXJpZXMuaW5kZXhdKTtcclxuICAgICAgbWluUmFuZ2UgPSByYW5nZXMucG9wKCk7XHJcbiAgICAgIG1heFJhbmdlID0gcmFuZ2VzLnNoaWZ0KCk7XHJcbiAgICAgIHZhciBkYXRhID0gZWFjaFNlcmllcy5kYXRhO1xyXG4gICAgICB2YXIgcG9pbnRzID0gZ2V0RGF0YVBvaW50cyhkYXRhLCBtaW5SYW5nZSwgbWF4UmFuZ2UsIHhBeGlzUG9pbnRzLCBlYWNoU3BhY2luZywgb3B0cywgY29uZmlnLCBwcm9jZXNzKTtcclxuICAgICAgZHJhd1BvaW50VGV4dChwb2ludHMsIGVhY2hTZXJpZXMsIGNvbmZpZywgY29udGV4dCwgb3B0cyk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgY29udGV4dC5yZXN0b3JlKCk7XHJcbiAgcmV0dXJuIHtcclxuICAgIHhBeGlzUG9pbnRzOiB4QXhpc1BvaW50cyxcclxuICAgIGNhbFBvaW50czogY2FsUG9pbnRzLFxyXG4gICAgZWFjaFNwYWNpbmc6IGVhY2hTcGFjaW5nXHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd01peERhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpIHtcclxuICBsZXQgcHJvY2VzcyA9IGFyZ3VtZW50cy5sZW5ndGggPiA0ICYmIGFyZ3VtZW50c1s0XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzRdIDogMTtcclxuICBsZXQgY29sdW1uT3B0aW9uID0gYXNzaWduKHt9LCB7XHJcbiAgICB3aWR0aDogZWFjaFNwYWNpbmcgLyAyLFxyXG4gICAgYmFyQm9yZGVyQ2lyY2xlOiBmYWxzZSxcclxuICAgIGJhckJvcmRlclJhZGl1czogW10sXHJcbiAgICBzZXJpZXNHYXA6IDIsXHJcbiAgICBsaW5lYXJUeXBlOiAnbm9uZScsXHJcbiAgICBsaW5lYXJPcGFjaXR5OiAxLFxyXG4gICAgY3VzdG9tQ29sb3I6IFtdLFxyXG4gICAgY29sb3JTdG9wOiAwLFxyXG4gIH0sIG9wdHMuZXh0cmEubWl4LmNvbHVtbik7XHJcbiAgbGV0IHhBeGlzRGF0YSA9IG9wdHMuY2hhcnREYXRhLnhBeGlzRGF0YSxcclxuICAgIHhBeGlzUG9pbnRzID0geEF4aXNEYXRhLnhBeGlzUG9pbnRzLFxyXG4gICAgZWFjaFNwYWNpbmcgPSB4QXhpc0RhdGEuZWFjaFNwYWNpbmc7XHJcbiAgbGV0IGVuZFkgPSBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXTtcclxuICBsZXQgY2FsUG9pbnRzID0gW107XHJcbiAgdmFyIGNvbHVtbkluZGV4ID0gMDtcclxuICB2YXIgY29sdW1uTGVuZ3RoID0gMDtcclxuICBzZXJpZXMuZm9yRWFjaChmdW5jdGlvbihlYWNoU2VyaWVzLCBzZXJpZXNJbmRleCkge1xyXG4gICAgaWYgKGVhY2hTZXJpZXMudHlwZSA9PSAnY29sdW1uJykge1xyXG4gICAgICBjb2x1bW5MZW5ndGggKz0gMTtcclxuICAgIH1cclxuICB9KTtcclxuICBjb250ZXh0LnNhdmUoKTtcclxuICBsZXQgbGVmdE51bSA9IC0yO1xyXG4gIGxldCByaWdodE51bSA9IHhBeGlzUG9pbnRzLmxlbmd0aCArIDI7XHJcbiAgbGV0IGxlZnRTcGFjZSA9IDA7XHJcbiAgbGV0IHJpZ2h0U3BhY2UgPSBvcHRzLndpZHRoICsgZWFjaFNwYWNpbmc7XHJcbiAgaWYgKG9wdHMuX3Njcm9sbERpc3RhbmNlXyAmJiBvcHRzLl9zY3JvbGxEaXN0YW5jZV8gIT09IDAgJiYgb3B0cy5lbmFibGVTY3JvbGwgPT09IHRydWUpIHtcclxuICAgIGNvbnRleHQudHJhbnNsYXRlKG9wdHMuX3Njcm9sbERpc3RhbmNlXywgMCk7XHJcbiAgICBsZWZ0TnVtID0gTWF0aC5mbG9vcigtb3B0cy5fc2Nyb2xsRGlzdGFuY2VfIC8gZWFjaFNwYWNpbmcpIC0gMjtcclxuICAgIHJpZ2h0TnVtID0gbGVmdE51bSArIG9wdHMueEF4aXMuaXRlbUNvdW50ICsgNDtcclxuICAgIGxlZnRTcGFjZSA9IC1vcHRzLl9zY3JvbGxEaXN0YW5jZV8gLSBlYWNoU3BhY2luZyAqIDIgKyBvcHRzLmFyZWFbM107XHJcbiAgICByaWdodFNwYWNlID0gbGVmdFNwYWNlICsgKG9wdHMueEF4aXMuaXRlbUNvdW50ICsgNCkgKiBlYWNoU3BhY2luZztcclxuICB9XHJcbiAgY29sdW1uT3B0aW9uLmN1c3RvbUNvbG9yID0gZmlsbEN1c3RvbUNvbG9yKGNvbHVtbk9wdGlvbi5saW5lYXJUeXBlLCBjb2x1bW5PcHRpb24uY3VzdG9tQ29sb3IsIHNlcmllcywgY29uZmlnKTtcclxuICBzZXJpZXMuZm9yRWFjaChmdW5jdGlvbihlYWNoU2VyaWVzLCBzZXJpZXNJbmRleCkge1xyXG4gICAgbGV0IHJhbmdlcywgbWluUmFuZ2UsIG1heFJhbmdlO1xyXG4gICAgcmFuZ2VzID0gW10uY29uY2F0KG9wdHMuY2hhcnREYXRhLnlBeGlzRGF0YS5yYW5nZXNbZWFjaFNlcmllcy5pbmRleF0pO1xyXG4gICAgbWluUmFuZ2UgPSByYW5nZXMucG9wKCk7XHJcbiAgICBtYXhSYW5nZSA9IHJhbmdlcy5zaGlmdCgpO1xyXG4gICAgdmFyIGRhdGEgPSBlYWNoU2VyaWVzLmRhdGE7XHJcbiAgICB2YXIgcG9pbnRzID0gZ2V0RGF0YVBvaW50cyhkYXRhLCBtaW5SYW5nZSwgbWF4UmFuZ2UsIHhBeGlzUG9pbnRzLCBlYWNoU3BhY2luZywgb3B0cywgY29uZmlnLCBwcm9jZXNzKTtcclxuICAgIGNhbFBvaW50cy5wdXNoKHBvaW50cyk7XHJcbiAgICAvLyDnu5jliLbmn7HnirbmlbDmja7lm75cclxuICAgIGlmIChlYWNoU2VyaWVzLnR5cGUgPT0gJ2NvbHVtbicpIHtcclxuICAgICAgcG9pbnRzID0gZml4Q29sdW1lRGF0YShwb2ludHMsIGVhY2hTcGFjaW5nLCBjb2x1bW5MZW5ndGgsIGNvbHVtbkluZGV4LCBjb25maWcsIG9wdHMpO1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBvaW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGxldCBpdGVtID0gcG9pbnRzW2ldO1xyXG4gICAgICAgIGlmIChpdGVtICE9PSBudWxsICYmIGkgPiBsZWZ0TnVtICYmIGkgPCByaWdodE51bSkge1xyXG4gICAgICAgICAgdmFyIHN0YXJ0WCA9IGl0ZW0ueCAtIGl0ZW0ud2lkdGggLyAyO1xyXG4gICAgICAgICAgdmFyIGhlaWdodCA9IG9wdHMuaGVpZ2h0IC0gaXRlbS55IC0gb3B0cy5hcmVhWzJdO1xyXG4gICAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICAgIHZhciBmaWxsQ29sb3IgPSBpdGVtLmNvbG9yIHx8IGVhY2hTZXJpZXMuY29sb3JcclxuICAgICAgICAgIHZhciBzdHJva2VDb2xvciA9IGl0ZW0uY29sb3IgfHwgZWFjaFNlcmllcy5jb2xvclxyXG4gICAgICAgICAgaWYgKGNvbHVtbk9wdGlvbi5saW5lYXJUeXBlICE9PSAnbm9uZScpIHtcclxuICAgICAgICAgICAgdmFyIGdyZCA9IGNvbnRleHQuY3JlYXRlTGluZWFyR3JhZGllbnQoc3RhcnRYLCBpdGVtLnksIHN0YXJ0WCwgb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0pO1xyXG4gICAgICAgICAgICAvL+mAj+aYjua4kOWPmFxyXG4gICAgICAgICAgICBpZiAoY29sdW1uT3B0aW9uLmxpbmVhclR5cGUgPT0gJ29wYWNpdHknKSB7XHJcbiAgICAgICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgwLCBoZXhUb1JnYihmaWxsQ29sb3IsIGNvbHVtbk9wdGlvbi5saW5lYXJPcGFjaXR5KSk7XHJcbiAgICAgICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgxLCBoZXhUb1JnYihmaWxsQ29sb3IsIDEpKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDAsIGhleFRvUmdiKGNvbHVtbk9wdGlvbi5jdXN0b21Db2xvcltlYWNoU2VyaWVzLmxpbmVhckluZGV4XSwgY29sdW1uT3B0aW9uLmxpbmVhck9wYWNpdHkpKTtcclxuICAgICAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKGNvbHVtbk9wdGlvbi5jb2xvclN0b3AsIGhleFRvUmdiKGNvbHVtbk9wdGlvbi5jdXN0b21Db2xvcltlYWNoU2VyaWVzLmxpbmVhckluZGV4XSwgY29sdW1uT3B0aW9uLmxpbmVhck9wYWNpdHkpKTtcclxuICAgICAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDEsIGhleFRvUmdiKGZpbGxDb2xvciwgMSkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGZpbGxDb2xvciA9IGdyZFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgLy8g5ZyG6KeS6L655qGGXHJcbiAgICAgICAgICBpZiAoKGNvbHVtbk9wdGlvbi5iYXJCb3JkZXJSYWRpdXMgJiYgY29sdW1uT3B0aW9uLmJhckJvcmRlclJhZGl1cy5sZW5ndGggPT09IDQpIHx8IGNvbHVtbk9wdGlvbi5iYXJCb3JkZXJDaXJjbGUpIHtcclxuICAgICAgICAgICAgY29uc3QgbGVmdCA9IHN0YXJ0WDtcclxuICAgICAgICAgICAgY29uc3QgdG9wID0gaXRlbS55O1xyXG4gICAgICAgICAgICBjb25zdCB3aWR0aCA9IGl0ZW0ud2lkdGg7XHJcbiAgICAgICAgICAgIGNvbnN0IGhlaWdodCA9IG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdIC0gaXRlbS55O1xyXG4gICAgICAgICAgICBpZiAoY29sdW1uT3B0aW9uLmJhckJvcmRlckNpcmNsZSkge1xyXG4gICAgICAgICAgICAgIGNvbHVtbk9wdGlvbi5iYXJCb3JkZXJSYWRpdXMgPSBbd2lkdGggLyAyLCB3aWR0aCAvIDIsIDAsIDBdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGxldCBbcjAsIHIxLCByMiwgcjNdID0gY29sdW1uT3B0aW9uLmJhckJvcmRlclJhZGl1cztcclxuICAgICAgICAgICAgbGV0IG1pblJhZGl1cyA9IE1hdGgubWluKHdpZHRoLzIsaGVpZ2h0LzIpO1xyXG4gICAgICAgICAgICByMCA9IHIwID4gbWluUmFkaXVzID8gbWluUmFkaXVzIDogcjA7XHJcbiAgICAgICAgICAgIHIxID0gcjEgPiBtaW5SYWRpdXMgPyBtaW5SYWRpdXMgOiByMTtcclxuICAgICAgICAgICAgcjIgPSByMiA+IG1pblJhZGl1cyA/IG1pblJhZGl1cyA6IHIyO1xyXG4gICAgICAgICAgICByMyA9IHIzID4gbWluUmFkaXVzID8gbWluUmFkaXVzIDogcjM7XHJcbiAgICAgICAgICAgIHIwID0gcjAgPCAwID8gMCA6IHIwO1xyXG4gICAgICAgICAgICByMSA9IHIxIDwgMCA/IDAgOiByMTtcclxuICAgICAgICAgICAgcjIgPSByMiA8IDAgPyAwIDogcjI7XHJcbiAgICAgICAgICAgIHIzID0gcjMgPCAwID8gMCA6IHIzO1xyXG4gICAgICAgICAgICBjb250ZXh0LmFyYyhsZWZ0ICsgcjAsIHRvcCArIHIwLCByMCwgLU1hdGguUEksIC1NYXRoLlBJIC8gMik7XHJcbiAgICAgICAgICAgIGNvbnRleHQuYXJjKGxlZnQgKyB3aWR0aCAtIHIxLCB0b3AgKyByMSwgcjEsIC1NYXRoLlBJIC8gMiwgMCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQuYXJjKGxlZnQgKyB3aWR0aCAtIHIyLCB0b3AgKyBoZWlnaHQgLSByMiwgcjIsIDAsIE1hdGguUEkgLyAyKTtcclxuICAgICAgICAgICAgY29udGV4dC5hcmMobGVmdCArIHIzLCB0b3AgKyBoZWlnaHQgLSByMywgcjMsIE1hdGguUEkgLyAyLCBNYXRoLlBJKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKHN0YXJ0WCwgaXRlbS55KTtcclxuICAgICAgICAgICAgY29udGV4dC5saW5lVG8oc3RhcnRYICsgaXRlbS53aWR0aCAtIDIsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHN0YXJ0WCArIGl0ZW0ud2lkdGggLSAyLCBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXSk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHN0YXJ0WCwgb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0pO1xyXG4gICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhzdGFydFgsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKDEpXHJcbiAgICAgICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoc3Ryb2tlQ29sb3IpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoZmlsbENvbG9yKTtcclxuICAgICAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgICAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgY29sdW1uSW5kZXggKz0gMTtcclxuICAgIH1cclxuICAgIC8v57uY5Yi25Yy65Z+f5Zu+5pWw5o2uXHJcbiAgICBpZiAoZWFjaFNlcmllcy50eXBlID09ICdhcmVhJykge1xyXG4gICAgICBsZXQgc3BsaXRQb2ludExpc3QgPSBzcGxpdFBvaW50cyhwb2ludHMsZWFjaFNlcmllcyk7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3BsaXRQb2ludExpc3QubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBsZXQgcG9pbnRzID0gc3BsaXRQb2ludExpc3RbaV07XHJcbiAgICAgICAgLy8g57uY5Yi25Yy65Z+f5pWw5o2uXHJcbiAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKGVhY2hTZXJpZXMuY29sb3IpO1xyXG4gICAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGhleFRvUmdiKGVhY2hTZXJpZXMuY29sb3IsIDAuMikpO1xyXG4gICAgICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKDIgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgaWYgKHBvaW50cy5sZW5ndGggPiAxKSB7XHJcbiAgICAgICAgICB2YXIgZmlyc3RQb2ludCA9IHBvaW50c1swXTtcclxuICAgICAgICAgIGxldCBsYXN0UG9pbnQgPSBwb2ludHNbcG9pbnRzLmxlbmd0aCAtIDFdO1xyXG4gICAgICAgICAgY29udGV4dC5tb3ZlVG8oZmlyc3RQb2ludC54LCBmaXJzdFBvaW50LnkpO1xyXG4gICAgICAgICAgbGV0IHN0YXJ0UG9pbnQgPSAwO1xyXG4gICAgICAgICAgaWYgKGVhY2hTZXJpZXMuc3R5bGUgPT09ICdjdXJ2ZScpIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBwb2ludHMubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICAgICAgICBsZXQgaXRlbSA9IHBvaW50c1tqXTtcclxuICAgICAgICAgICAgICBpZiAoc3RhcnRQb2ludCA9PSAwICYmIGl0ZW0ueCA+IGxlZnRTcGFjZSkge1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5tb3ZlVG8oaXRlbS54LCBpdGVtLnkpO1xyXG4gICAgICAgICAgICAgICAgc3RhcnRQb2ludCA9IDE7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGlmIChqID4gMCAmJiBpdGVtLnggPiBsZWZ0U3BhY2UgJiYgaXRlbS54IDwgcmlnaHRTcGFjZSkge1xyXG4gICAgICAgICAgICAgICAgdmFyIGN0cmxQb2ludCA9IGNyZWF0ZUN1cnZlQ29udHJvbFBvaW50cyhwb2ludHMsIGogLSAxKTtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQuYmV6aWVyQ3VydmVUbyhjdHJsUG9pbnQuY3RyQS54LCBjdHJsUG9pbnQuY3RyQS55LCBjdHJsUG9pbnQuY3RyQi54LCBjdHJsUG9pbnQuY3RyQi55LCBpdGVtLngsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBwb2ludHMubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICAgICAgICBsZXQgaXRlbSA9IHBvaW50c1tqXTtcclxuICAgICAgICAgICAgICBpZiAoc3RhcnRQb2ludCA9PSAwICYmIGl0ZW0ueCA+IGxlZnRTcGFjZSkge1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5tb3ZlVG8oaXRlbS54LCBpdGVtLnkpO1xyXG4gICAgICAgICAgICAgICAgc3RhcnRQb2ludCA9IDE7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGlmIChqID4gMCAmJiBpdGVtLnggPiBsZWZ0U3BhY2UgJiYgaXRlbS54IDwgcmlnaHRTcGFjZSkge1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbS54LCBpdGVtLnkpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKGxhc3RQb2ludC54LCBlbmRZKTtcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKGZpcnN0UG9pbnQueCwgZW5kWSk7XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhmaXJzdFBvaW50LngsIGZpcnN0UG9pbnQueSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGxldCBpdGVtID0gcG9pbnRzWzBdO1xyXG4gICAgICAgICAgY29udGV4dC5tb3ZlVG8oaXRlbS54IC0gZWFjaFNwYWNpbmcgLyAyLCBpdGVtLnkpO1xyXG4gICAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbS54ICsgZWFjaFNwYWNpbmcgLyAyLCBpdGVtLnkpO1xyXG4gICAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbS54ICsgZWFjaFNwYWNpbmcgLyAyLCBlbmRZKTtcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCAtIGVhY2hTcGFjaW5nIC8gMiwgZW5kWSk7XHJcbiAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtLnggLSBlYWNoU3BhY2luZyAvIDIsIGl0ZW0ueSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIC8vIOe7mOWItuaKmOe6v+aVsOaNruWbvlxyXG4gICAgaWYgKGVhY2hTZXJpZXMudHlwZSA9PSAnbGluZScpIHtcclxuICAgICAgdmFyIHNwbGl0UG9pbnRMaXN0ID0gc3BsaXRQb2ludHMocG9pbnRzLGVhY2hTZXJpZXMpO1xyXG4gICAgICBzcGxpdFBvaW50TGlzdC5mb3JFYWNoKGZ1bmN0aW9uKHBvaW50cywgaW5kZXgpIHtcclxuICAgICAgICBpZiAoZWFjaFNlcmllcy5saW5lVHlwZSA9PSAnZGFzaCcpIHtcclxuICAgICAgICAgIGxldCBkYXNoTGVuZ3RoID0gZWFjaFNlcmllcy5kYXNoTGVuZ3RoID8gZWFjaFNlcmllcy5kYXNoTGVuZ3RoIDogODtcclxuICAgICAgICAgIGRhc2hMZW5ndGggKj0gb3B0cy5waXg7XHJcbiAgICAgICAgICBjb250ZXh0LnNldExpbmVEYXNoKFtkYXNoTGVuZ3RoLCBkYXNoTGVuZ3RoXSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShlYWNoU2VyaWVzLmNvbG9yKTtcclxuICAgICAgICBjb250ZXh0LnNldExpbmVXaWR0aCgyICogb3B0cy5waXgpO1xyXG4gICAgICAgIGlmIChwb2ludHMubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhwb2ludHNbMF0ueCwgcG9pbnRzWzBdLnkpO1xyXG4gICAgICAgICAgY29udGV4dC5hcmMocG9pbnRzWzBdLngsIHBvaW50c1swXS55LCAxLCAwLCAyICogTWF0aC5QSSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNvbnRleHQubW92ZVRvKHBvaW50c1swXS54LCBwb2ludHNbMF0ueSk7XHJcbiAgICAgICAgICBsZXQgc3RhcnRQb2ludCA9IDA7XHJcbiAgICAgICAgICBpZiAoZWFjaFNlcmllcy5zdHlsZSA9PSAnY3VydmUnKSB7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgcG9pbnRzLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICAgICAgbGV0IGl0ZW0gPSBwb2ludHNbal07XHJcbiAgICAgICAgICAgICAgaWYgKHN0YXJ0UG9pbnQgPT0gMCAmJiBpdGVtLnggPiBsZWZ0U3BhY2UpIHtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKGl0ZW0ueCwgaXRlbS55KTtcclxuICAgICAgICAgICAgICAgIHN0YXJ0UG9pbnQgPSAxO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBpZiAoaiA+IDAgJiYgaXRlbS54ID4gbGVmdFNwYWNlICYmIGl0ZW0ueCA8IHJpZ2h0U3BhY2UpIHtcclxuICAgICAgICAgICAgICAgIHZhciBjdHJsUG9pbnQgPSBjcmVhdGVDdXJ2ZUNvbnRyb2xQb2ludHMocG9pbnRzLCBqIC0gMSk7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LmJlemllckN1cnZlVG8oY3RybFBvaW50LmN0ckEueCwgY3RybFBvaW50LmN0ckEueSwgY3RybFBvaW50LmN0ckIueCwgY3RybFBvaW50LmN0ckIueSxcclxuICAgICAgICAgICAgICAgICAgaXRlbS54LCBpdGVtLnkpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBwb2ludHMubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICAgICAgICBsZXQgaXRlbSA9IHBvaW50c1tqXTtcclxuICAgICAgICAgICAgICBpZiAoc3RhcnRQb2ludCA9PSAwICYmIGl0ZW0ueCA+IGxlZnRTcGFjZSkge1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5tb3ZlVG8oaXRlbS54LCBpdGVtLnkpO1xyXG4gICAgICAgICAgICAgICAgc3RhcnRQb2ludCA9IDE7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGlmIChqID4gMCAmJiBpdGVtLnggPiBsZWZ0U3BhY2UgJiYgaXRlbS54IDwgcmlnaHRTcGFjZSkge1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbS54LCBpdGVtLnkpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgY29udGV4dC5tb3ZlVG8ocG9pbnRzWzBdLngsIHBvaW50c1swXS55KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgICBjb250ZXh0LnNldExpbmVEYXNoKFtdKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICAvLyDnu5jliLbngrnmlbDmja7lm75cclxuICAgIGlmIChlYWNoU2VyaWVzLnR5cGUgPT0gJ3BvaW50Jykge1xyXG4gICAgICBlYWNoU2VyaWVzLmFkZFBvaW50ID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGlmIChlYWNoU2VyaWVzLmFkZFBvaW50ID09IHRydWUgJiYgZWFjaFNlcmllcy50eXBlICE9PSAnY29sdW1uJykge1xyXG4gICAgICBkcmF3UG9pbnRTaGFwZShwb2ludHMsIGVhY2hTZXJpZXMuY29sb3IsIGVhY2hTZXJpZXMucG9pbnRTaGFwZSwgY29udGV4dCwgb3B0cyk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgaWYgKG9wdHMuZGF0YUxhYmVsICE9PSBmYWxzZSAmJiBwcm9jZXNzID09PSAxKSB7XHJcbiAgICB2YXIgY29sdW1uSW5kZXggPSAwO1xyXG4gICAgc2VyaWVzLmZvckVhY2goZnVuY3Rpb24oZWFjaFNlcmllcywgc2VyaWVzSW5kZXgpIHtcclxuICAgICAgbGV0IHJhbmdlcywgbWluUmFuZ2UsIG1heFJhbmdlO1xyXG4gICAgICByYW5nZXMgPSBbXS5jb25jYXQob3B0cy5jaGFydERhdGEueUF4aXNEYXRhLnJhbmdlc1tlYWNoU2VyaWVzLmluZGV4XSk7XHJcbiAgICAgIG1pblJhbmdlID0gcmFuZ2VzLnBvcCgpO1xyXG4gICAgICBtYXhSYW5nZSA9IHJhbmdlcy5zaGlmdCgpO1xyXG4gICAgICB2YXIgZGF0YSA9IGVhY2hTZXJpZXMuZGF0YTtcclxuICAgICAgdmFyIHBvaW50cyA9IGdldERhdGFQb2ludHMoZGF0YSwgbWluUmFuZ2UsIG1heFJhbmdlLCB4QXhpc1BvaW50cywgZWFjaFNwYWNpbmcsIG9wdHMsIGNvbmZpZywgcHJvY2Vzcyk7XHJcbiAgICAgIGlmIChlYWNoU2VyaWVzLnR5cGUgIT09ICdjb2x1bW4nKSB7XHJcbiAgICAgICAgZHJhd1BvaW50VGV4dChwb2ludHMsIGVhY2hTZXJpZXMsIGNvbmZpZywgY29udGV4dCwgb3B0cyk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcG9pbnRzID0gZml4Q29sdW1lRGF0YShwb2ludHMsIGVhY2hTcGFjaW5nLCBjb2x1bW5MZW5ndGgsIGNvbHVtbkluZGV4LCBjb25maWcsIG9wdHMpO1xyXG4gICAgICAgIGRyYXdQb2ludFRleHQocG9pbnRzLCBlYWNoU2VyaWVzLCBjb25maWcsIGNvbnRleHQsIG9wdHMpO1xyXG4gICAgICAgIGNvbHVtbkluZGV4ICs9IDE7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICBjb250ZXh0LnJlc3RvcmUoKTtcclxuICByZXR1cm4ge1xyXG4gICAgeEF4aXNQb2ludHM6IHhBeGlzUG9pbnRzLFxyXG4gICAgY2FsUG9pbnRzOiBjYWxQb2ludHMsXHJcbiAgICBlYWNoU3BhY2luZzogZWFjaFNwYWNpbmcsXHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3VG9vbFRpcEJyaWRnZShvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MsIGVhY2hTcGFjaW5nLCB4QXhpc1BvaW50cykge1xyXG4gIHZhciB0b29sVGlwT3B0aW9uID0gb3B0cy5leHRyYS50b29sdGlwIHx8IHt9O1xyXG4gIGlmICh0b29sVGlwT3B0aW9uLmhvcml6ZW50YWxMaW5lICYmIG9wdHMudG9vbHRpcCAmJiBwcm9jZXNzID09PSAxICYmIChvcHRzLnR5cGUgPT0gJ2xpbmUnIHx8IG9wdHMudHlwZSA9PSAnYXJlYScgfHwgb3B0cy50eXBlID09ICdjb2x1bW4nIHx8IG9wdHMudHlwZSA9PSAnY2FuZGxlJyB8fCBvcHRzLnR5cGUgPT0gJ21peCcpKSB7XHJcbiAgICBkcmF3VG9vbFRpcEhvcml6ZW50YWxMaW5lKG9wdHMsIGNvbmZpZywgY29udGV4dCwgZWFjaFNwYWNpbmcsIHhBeGlzUG9pbnRzKVxyXG4gIH1cclxuICBjb250ZXh0LnNhdmUoKTtcclxuICBpZiAob3B0cy5fc2Nyb2xsRGlzdGFuY2VfICYmIG9wdHMuX3Njcm9sbERpc3RhbmNlXyAhPT0gMCAmJiBvcHRzLmVuYWJsZVNjcm9sbCA9PT0gdHJ1ZSkge1xyXG4gICAgY29udGV4dC50cmFuc2xhdGUob3B0cy5fc2Nyb2xsRGlzdGFuY2VfLCAwKTtcclxuICB9XHJcbiAgaWYgKG9wdHMudG9vbHRpcCAmJiBvcHRzLnRvb2x0aXAudGV4dExpc3QgJiYgb3B0cy50b29sdGlwLnRleHRMaXN0Lmxlbmd0aCAmJiBwcm9jZXNzID09PSAxKSB7XHJcbiAgICBkcmF3VG9vbFRpcChvcHRzLnRvb2x0aXAudGV4dExpc3QsIG9wdHMudG9vbHRpcC5vZmZzZXQsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgZWFjaFNwYWNpbmcsIHhBeGlzUG9pbnRzKTtcclxuICB9XHJcbiAgY29udGV4dC5yZXN0b3JlKCk7XHJcblxyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3WEF4aXMoY2F0ZWdvcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KSB7XHJcblxyXG4gIGxldCB4QXhpc0RhdGEgPSBvcHRzLmNoYXJ0RGF0YS54QXhpc0RhdGEsXHJcbiAgICB4QXhpc1BvaW50cyA9IHhBeGlzRGF0YS54QXhpc1BvaW50cyxcclxuICAgIHN0YXJ0WCA9IHhBeGlzRGF0YS5zdGFydFgsXHJcbiAgICBlbmRYID0geEF4aXNEYXRhLmVuZFgsXHJcbiAgICBlYWNoU3BhY2luZyA9IHhBeGlzRGF0YS5lYWNoU3BhY2luZztcclxuICB2YXIgYm91bmRhcnlHYXAgPSAnY2VudGVyJztcclxuICBpZiAob3B0cy50eXBlID09ICdiYXInIHx8IG9wdHMudHlwZSA9PSAnbGluZScgfHwgb3B0cy50eXBlID09ICdhcmVhJ3x8IG9wdHMudHlwZSA9PSAnc2NhdHRlcicgfHwgb3B0cy50eXBlID09ICdidWJibGUnKSB7XHJcbiAgICBib3VuZGFyeUdhcCA9IG9wdHMueEF4aXMuYm91bmRhcnlHYXA7XHJcbiAgfVxyXG4gIHZhciBzdGFydFkgPSBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXTtcclxuICB2YXIgZW5kWSA9IG9wdHMuYXJlYVswXTtcclxuXHJcbiAgLy/nu5jliLbmu5rliqjmnaFcclxuICBpZiAob3B0cy5lbmFibGVTY3JvbGwgJiYgb3B0cy54QXhpcy5zY3JvbGxTaG93KSB7XHJcbiAgICB2YXIgc2Nyb2xsWSA9IG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdICsgY29uZmlnLnhBeGlzSGVpZ2h0O1xyXG4gICAgdmFyIHNjcm9sbFNjcmVlbldpZHRoID0gZW5kWCAtIHN0YXJ0WDtcclxuICAgIHZhciBzY3JvbGxUb3RhbFdpZHRoID0gZWFjaFNwYWNpbmcgKiAoeEF4aXNQb2ludHMubGVuZ3RoIC0gMSk7XHJcbiAgICB2YXIgc2Nyb2xsV2lkdGggPSBzY3JvbGxTY3JlZW5XaWR0aCAqIHNjcm9sbFNjcmVlbldpZHRoIC8gc2Nyb2xsVG90YWxXaWR0aDtcclxuICAgIHZhciBzY3JvbGxMZWZ0ID0gMDtcclxuICAgIGlmIChvcHRzLl9zY3JvbGxEaXN0YW5jZV8pIHtcclxuICAgICAgc2Nyb2xsTGVmdCA9IC1vcHRzLl9zY3JvbGxEaXN0YW5jZV8gKiAoc2Nyb2xsU2NyZWVuV2lkdGgpIC8gc2Nyb2xsVG90YWxXaWR0aDtcclxuICAgIH1cclxuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICBjb250ZXh0LnNldExpbmVDYXAoJ3JvdW5kJyk7XHJcbiAgICBjb250ZXh0LnNldExpbmVXaWR0aCg2ICogb3B0cy5waXgpO1xyXG4gICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShvcHRzLnhBeGlzLnNjcm9sbEJhY2tncm91bmRDb2xvciB8fCBcIiNFRkVCRUZcIik7XHJcbiAgICBjb250ZXh0Lm1vdmVUbyhzdGFydFgsIHNjcm9sbFkpO1xyXG4gICAgY29udGV4dC5saW5lVG8oZW5kWCwgc2Nyb2xsWSk7XHJcbiAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICBjb250ZXh0LnNldExpbmVDYXAoJ3JvdW5kJyk7XHJcbiAgICBjb250ZXh0LnNldExpbmVXaWR0aCg2ICogb3B0cy5waXgpO1xyXG4gICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShvcHRzLnhBeGlzLnNjcm9sbENvbG9yIHx8IFwiI0E2QTZBNlwiKTtcclxuICAgIGNvbnRleHQubW92ZVRvKHN0YXJ0WCArIHNjcm9sbExlZnQsIHNjcm9sbFkpO1xyXG4gICAgY29udGV4dC5saW5lVG8oc3RhcnRYICsgc2Nyb2xsTGVmdCArIHNjcm9sbFdpZHRoLCBzY3JvbGxZKTtcclxuICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgY29udGV4dC5zZXRMaW5lQ2FwKCdidXR0Jyk7XHJcbiAgfVxyXG4gIGNvbnRleHQuc2F2ZSgpO1xyXG4gIGlmIChvcHRzLl9zY3JvbGxEaXN0YW5jZV8gJiYgb3B0cy5fc2Nyb2xsRGlzdGFuY2VfICE9PSAwKSB7XHJcbiAgICBjb250ZXh0LnRyYW5zbGF0ZShvcHRzLl9zY3JvbGxEaXN0YW5jZV8sIDApO1xyXG4gIH1cclxuICAvL+e7mOWItljovbTliLvluqbnur9cclxuICBpZiAob3B0cy54QXhpcy5jYWxpYnJhdGlvbiA9PT0gdHJ1ZSkge1xyXG4gICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShvcHRzLnhBeGlzLmdyaWRDb2xvciB8fCBcIiNjY2NjY2NcIik7XHJcbiAgICBjb250ZXh0LnNldExpbmVDYXAoJ2J1dHQnKTtcclxuICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKDEgKiBvcHRzLnBpeCk7XHJcbiAgICB4QXhpc1BvaW50cy5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICAgIGlmIChpbmRleCA+IDApIHtcclxuICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgIGNvbnRleHQubW92ZVRvKGl0ZW0gLSBlYWNoU3BhY2luZyAvIDIsIHN0YXJ0WSk7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbSAtIGVhY2hTcGFjaW5nIC8gMiwgc3RhcnRZICsgMyAqIG9wdHMucGl4KTtcclxuICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICAvL+e7mOWItljovbTnvZHmoLxcclxuICBpZiAob3B0cy54QXhpcy5kaXNhYmxlR3JpZCAhPT0gdHJ1ZSkge1xyXG4gICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShvcHRzLnhBeGlzLmdyaWRDb2xvciB8fCBcIiNjY2NjY2NcIik7XHJcbiAgICBjb250ZXh0LnNldExpbmVDYXAoJ2J1dHQnKTtcclxuICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKDEgKiBvcHRzLnBpeCk7XHJcbiAgICBpZiAob3B0cy54QXhpcy5ncmlkVHlwZSA9PSAnZGFzaCcpIHtcclxuICAgICAgY29udGV4dC5zZXRMaW5lRGFzaChbb3B0cy54QXhpcy5kYXNoTGVuZ3RoICogb3B0cy5waXgsIG9wdHMueEF4aXMuZGFzaExlbmd0aCAqIG9wdHMucGl4XSk7XHJcbiAgICB9XHJcbiAgICBvcHRzLnhBeGlzLmdyaWRFdmFsID0gb3B0cy54QXhpcy5ncmlkRXZhbCB8fCAxO1xyXG4gICAgeEF4aXNQb2ludHMuZm9yRWFjaChmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgICBpZiAoaW5kZXggJSBvcHRzLnhBeGlzLmdyaWRFdmFsID09IDApIHtcclxuICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgIGNvbnRleHQubW92ZVRvKGl0ZW0sIHN0YXJ0WSk7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbSwgZW5kWSk7XHJcbiAgICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICBjb250ZXh0LnNldExpbmVEYXNoKFtdKTtcclxuICB9XHJcbiAgLy/nu5jliLZY6L205paH5qGIXHJcbiAgaWYgKG9wdHMueEF4aXMuZGlzYWJsZWQgIT09IHRydWUpIHtcclxuICAgIC8vIOWvuVjovbTliJfooajlgZrmir3nqIDlpITnkIZcclxuICAgIC8v6buY6K6k5YWo6YOo5pi+56S6WOi9tOagh+etvlxyXG4gICAgbGV0IG1heFhBeGlzTGlzdExlbmd0aCA9IGNhdGVnb3JpZXMubGVuZ3RoO1xyXG4gICAgLy/lpoLmnpzorr7nva7kuoZY6L205Y2V5bGP5pWw6YePXHJcbiAgICBpZiAob3B0cy54QXhpcy5sYWJlbENvdW50KSB7XHJcbiAgICAgIC8v5aaC5p6c6K6+572uWOi9tOWvhuW6plxyXG4gICAgICBpZiAob3B0cy54QXhpcy5pdGVtQ291bnQpIHtcclxuICAgICAgICBtYXhYQXhpc0xpc3RMZW5ndGggPSBNYXRoLmNlaWwoY2F0ZWdvcmllcy5sZW5ndGggLyBvcHRzLnhBeGlzLml0ZW1Db3VudCAqIG9wdHMueEF4aXMubGFiZWxDb3VudCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgbWF4WEF4aXNMaXN0TGVuZ3RoID0gb3B0cy54QXhpcy5sYWJlbENvdW50O1xyXG4gICAgICB9XHJcbiAgICAgIG1heFhBeGlzTGlzdExlbmd0aCAtPSAxO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCByYXRpbyA9IE1hdGguY2VpbChjYXRlZ29yaWVzLmxlbmd0aCAvIG1heFhBeGlzTGlzdExlbmd0aCk7XHJcblxyXG4gICAgbGV0IG5ld0NhdGVnb3JpZXMgPSBbXTtcclxuICAgIGxldCBjZ0xlbmd0aCA9IGNhdGVnb3JpZXMubGVuZ3RoO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjZ0xlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGlmIChpICUgcmF0aW8gIT09IDApIHtcclxuICAgICAgICBuZXdDYXRlZ29yaWVzLnB1c2goXCJcIik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgbmV3Q2F0ZWdvcmllcy5wdXNoKGNhdGVnb3JpZXNbaV0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBuZXdDYXRlZ29yaWVzW2NnTGVuZ3RoIC0gMV0gPSBjYXRlZ29yaWVzW2NnTGVuZ3RoIC0gMV07XHJcbiAgICB2YXIgeEF4aXNGb250U2l6ZSA9IG9wdHMueEF4aXMuZm9udFNpemUgKiBvcHRzLnBpeCB8fCBjb25maWcuZm9udFNpemU7XHJcbiAgICBpZiAoY29uZmlnLl94QXhpc1RleHRBbmdsZV8gPT09IDApIHtcclxuICAgICAgbmV3Q2F0ZWdvcmllcy5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICAgICAgdmFyIHhpdGVtID0gb3B0cy54QXhpcy5mb3JtYXR0ZXIgPyBvcHRzLnhBeGlzLmZvcm1hdHRlcihpdGVtKSA6IGl0ZW07XHJcbiAgICAgICAgdmFyIG9mZnNldCA9IC1tZWFzdXJlVGV4dChTdHJpbmcoeGl0ZW0pLCB4QXhpc0ZvbnRTaXplLCBjb250ZXh0KSAvIDI7XHJcbiAgICAgICAgaWYgKGJvdW5kYXJ5R2FwID09ICdjZW50ZXInKSB7XHJcbiAgICAgICAgICBvZmZzZXQgKz0gZWFjaFNwYWNpbmcgLyAyO1xyXG4gICAgICAgIH1cclxuICAgICAgICB2YXIgc2Nyb2xsSGVpZ2h0ID0gMDtcclxuICAgICAgICBpZiAob3B0cy54QXhpcy5zY3JvbGxTaG93KSB7XHJcbiAgICAgICAgICBzY3JvbGxIZWlnaHQgPSA2ICogb3B0cy5waXg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgY29udGV4dC5zZXRGb250U2l6ZSh4QXhpc0ZvbnRTaXplKTtcclxuICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShvcHRzLnhBeGlzLmZvbnRDb2xvciB8fCBvcHRzLmZvbnRDb2xvcik7XHJcbiAgICAgICAgY29udGV4dC5maWxsVGV4dChTdHJpbmcoeGl0ZW0pLCB4QXhpc1BvaW50c1tpbmRleF0gKyBvZmZzZXQsIHN0YXJ0WSArIHhBeGlzRm9udFNpemUgKyAoY29uZmlnLnhBeGlzSGVpZ2h0IC0gc2Nyb2xsSGVpZ2h0IC0geEF4aXNGb250U2l6ZSkgLyAyKTtcclxuICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbmV3Q2F0ZWdvcmllcy5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICAgICAgdmFyIHhpdGVtID0gb3B0cy54QXhpcy5mb3JtYXR0ZXIgPyBvcHRzLnhBeGlzLmZvcm1hdHRlcihpdGVtKSA6IGl0ZW07XHJcbiAgICAgICAgY29udGV4dC5zYXZlKCk7XHJcbiAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICBjb250ZXh0LnNldEZvbnRTaXplKHhBeGlzRm9udFNpemUpO1xyXG4gICAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKG9wdHMueEF4aXMuZm9udENvbG9yIHx8IG9wdHMuZm9udENvbG9yKTtcclxuICAgICAgICB2YXIgdGV4dFdpZHRoID0gbWVhc3VyZVRleHQoU3RyaW5nKHhpdGVtKSwgeEF4aXNGb250U2l6ZSwgY29udGV4dCk7XHJcbiAgICAgICAgdmFyIG9mZnNldCA9IC10ZXh0V2lkdGg7XHJcbiAgICAgICAgaWYgKGJvdW5kYXJ5R2FwID09ICdjZW50ZXInKSB7XHJcbiAgICAgICAgICBvZmZzZXQgKz0gZWFjaFNwYWNpbmcgLyAyO1xyXG4gICAgICAgIH1cclxuICAgICAgICB2YXIgX2NhbFJvdGF0ZVRyYW5zbGF0ZSA9IGNhbFJvdGF0ZVRyYW5zbGF0ZSh4QXhpc1BvaW50c1tpbmRleF0gKyBlYWNoU3BhY2luZyAvIDIsIHN0YXJ0WSArIHhBeGlzRm9udFNpemUgLyAyICsgNSwgb3B0cy5oZWlnaHQpLFxyXG4gICAgICAgICAgdHJhbnNYID0gX2NhbFJvdGF0ZVRyYW5zbGF0ZS50cmFuc1gsXHJcbiAgICAgICAgICB0cmFuc1kgPSBfY2FsUm90YXRlVHJhbnNsYXRlLnRyYW5zWTtcclxuXHJcbiAgICAgICAgY29udGV4dC5yb3RhdGUoLTEgKiBjb25maWcuX3hBeGlzVGV4dEFuZ2xlXyk7XHJcbiAgICAgICAgY29udGV4dC50cmFuc2xhdGUodHJhbnNYLCB0cmFuc1kpO1xyXG4gICAgICAgIGNvbnRleHQuZmlsbFRleHQoU3RyaW5nKHhpdGVtKSwgeEF4aXNQb2ludHNbaW5kZXhdICsgb2Zmc2V0LCBzdGFydFkgKyB4QXhpc0ZvbnRTaXplICsgNSk7XHJcbiAgICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICAgIGNvbnRleHQucmVzdG9yZSgpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgY29udGV4dC5yZXN0b3JlKCk7XHJcbiAgLy/nu5jliLZY6L206L2057q/XHJcbiAgaWYgKG9wdHMueEF4aXMuYXhpc0xpbmUpIHtcclxuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKG9wdHMueEF4aXMuYXhpc0xpbmVDb2xvcik7XHJcbiAgICBjb250ZXh0LnNldExpbmVXaWR0aCgxICogb3B0cy5waXgpO1xyXG4gICAgY29udGV4dC5tb3ZlVG8oc3RhcnRYLCBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXSk7XHJcbiAgICBjb250ZXh0LmxpbmVUbyhlbmRYLCBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXSk7XHJcbiAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd1lBeGlzR3JpZChjYXRlZ29yaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpIHtcclxuICBpZiAob3B0cy55QXhpcy5kaXNhYmxlR3JpZCA9PT0gdHJ1ZSkge1xyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuICBsZXQgc3BhY2luZ1ZhbGlkID0gb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMF0gLSBvcHRzLmFyZWFbMl07XHJcbiAgbGV0IGVhY2hTcGFjaW5nID0gc3BhY2luZ1ZhbGlkIC8gb3B0cy55QXhpcy5zcGxpdE51bWJlcjtcclxuICBsZXQgc3RhcnRYID0gb3B0cy5hcmVhWzNdO1xyXG4gIGxldCB4QXhpc1BvaW50cyA9IG9wdHMuY2hhcnREYXRhLnhBeGlzRGF0YS54QXhpc1BvaW50cyxcclxuICAgIHhBeGlzZWFjaFNwYWNpbmcgPSBvcHRzLmNoYXJ0RGF0YS54QXhpc0RhdGEuZWFjaFNwYWNpbmc7XHJcbiAgbGV0IFRvdGFsV2lkdGggPSB4QXhpc2VhY2hTcGFjaW5nICogKHhBeGlzUG9pbnRzLmxlbmd0aCAtIDEpO1xyXG4gIGxldCBlbmRYID0gc3RhcnRYICsgVG90YWxXaWR0aDtcclxuICBsZXQgcG9pbnRzID0gW107XHJcbiAgbGV0IHN0YXJ0WSA9IDFcclxuICBpZiAob3B0cy54QXhpcy5heGlzTGluZSA9PT0gZmFsc2UpIHtcclxuICAgIHN0YXJ0WSA9IDBcclxuICB9XHJcbiAgZm9yIChsZXQgaSA9IHN0YXJ0WTsgaSA8IG9wdHMueUF4aXMuc3BsaXROdW1iZXIgKyAxOyBpKyspIHtcclxuICAgIHBvaW50cy5wdXNoKG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdIC0gZWFjaFNwYWNpbmcgKiBpKTtcclxuICB9XHJcbiAgY29udGV4dC5zYXZlKCk7XHJcbiAgaWYgKG9wdHMuX3Njcm9sbERpc3RhbmNlXyAmJiBvcHRzLl9zY3JvbGxEaXN0YW5jZV8gIT09IDApIHtcclxuICAgIGNvbnRleHQudHJhbnNsYXRlKG9wdHMuX3Njcm9sbERpc3RhbmNlXywgMCk7XHJcbiAgfVxyXG4gIGlmIChvcHRzLnlBeGlzLmdyaWRUeXBlID09ICdkYXNoJykge1xyXG4gICAgY29udGV4dC5zZXRMaW5lRGFzaChbb3B0cy55QXhpcy5kYXNoTGVuZ3RoICogb3B0cy5waXgsIG9wdHMueUF4aXMuZGFzaExlbmd0aCAqIG9wdHMucGl4XSk7XHJcbiAgfVxyXG4gIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUob3B0cy55QXhpcy5ncmlkQ29sb3IpO1xyXG4gIGNvbnRleHQuc2V0TGluZVdpZHRoKDEgKiBvcHRzLnBpeCk7XHJcbiAgcG9pbnRzLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICBjb250ZXh0Lm1vdmVUbyhzdGFydFgsIGl0ZW0pO1xyXG4gICAgY29udGV4dC5saW5lVG8oZW5kWCwgaXRlbSk7XHJcbiAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gIH0pO1xyXG4gIGNvbnRleHQuc2V0TGluZURhc2goW10pO1xyXG4gIGNvbnRleHQucmVzdG9yZSgpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3WUF4aXMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpIHtcclxuICBpZiAob3B0cy55QXhpcy5kaXNhYmxlZCA9PT0gdHJ1ZSkge1xyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuICB2YXIgc3BhY2luZ1ZhbGlkID0gb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMF0gLSBvcHRzLmFyZWFbMl07XHJcbiAgdmFyIGVhY2hTcGFjaW5nID0gc3BhY2luZ1ZhbGlkIC8gb3B0cy55QXhpcy5zcGxpdE51bWJlcjtcclxuICB2YXIgc3RhcnRYID0gb3B0cy5hcmVhWzNdO1xyXG4gIHZhciBlbmRYID0gb3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXTtcclxuICB2YXIgZW5kWSA9IG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdO1xyXG4gIHZhciBmaWxsRW5kWSA9IGVuZFkgKyBjb25maWcueEF4aXNIZWlnaHQ7XHJcbiAgaWYgKG9wdHMueEF4aXMuc2Nyb2xsU2hvdykge1xyXG4gICAgZmlsbEVuZFkgLT0gMyAqIG9wdHMucGl4O1xyXG4gIH1cclxuICBpZiAob3B0cy54QXhpcy5yb3RhdGVMYWJlbCkge1xyXG4gICAgZmlsbEVuZFkgPSBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXSArIG9wdHMuZm9udFNpemUgKiBvcHRzLnBpeCAvIDI7XHJcbiAgfVxyXG4gIC8vIHNldCBZQXhpcyBiYWNrZ3JvdW5kXHJcbiAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICBjb250ZXh0LnNldEZpbGxTdHlsZShvcHRzLmJhY2tncm91bmQpO1xyXG4gIGlmIChvcHRzLmVuYWJsZVNjcm9sbCA9PSB0cnVlICYmIG9wdHMueEF4aXMuc2Nyb2xsUG9zaXRpb24gJiYgb3B0cy54QXhpcy5zY3JvbGxQb3NpdGlvbiAhPT0gJ2xlZnQnKSB7XHJcbiAgICBjb250ZXh0LmZpbGxSZWN0KDAsIDAsIHN0YXJ0WCwgZmlsbEVuZFkpO1xyXG4gIH1cclxuICBpZiAob3B0cy5lbmFibGVTY3JvbGwgPT0gdHJ1ZSAmJiBvcHRzLnhBeGlzLnNjcm9sbFBvc2l0aW9uICYmIG9wdHMueEF4aXMuc2Nyb2xsUG9zaXRpb24gIT09ICdyaWdodCcpIHtcclxuICAgIGNvbnRleHQuZmlsbFJlY3QoZW5kWCwgMCwgb3B0cy53aWR0aCwgZmlsbEVuZFkpO1xyXG4gIH1cclxuICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgXHJcbiAgbGV0IHRTdGFydExlZnQgPSBvcHRzLmFyZWFbM107XHJcbiAgbGV0IHRTdGFydFJpZ2h0ID0gb3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXTtcclxuICBsZXQgdFN0YXJ0Q2VudGVyID0gb3B0cy5hcmVhWzNdICsgKG9wdHMud2lkdGggLSBvcHRzLmFyZWFbMV0gLSBvcHRzLmFyZWFbM10pIC8gMjtcclxuICBpZiAob3B0cy55QXhpcy5kYXRhKSB7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG9wdHMueUF4aXMuZGF0YS5sZW5ndGg7IGkrKykge1xyXG4gICAgICBsZXQgeURhdGEgPSBvcHRzLnlBeGlzLmRhdGFbaV07XHJcbiAgICAgIHZhciBwb2ludHMgPSBbXTtcclxuICAgICAgaWYoeURhdGEudHlwZSA9PT0gJ2NhdGVnb3JpZXMnKXtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8PSB5RGF0YS5jYXRlZ29yaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICBwb2ludHMucHVzaChvcHRzLmFyZWFbMF0gKyBzcGFjaW5nVmFsaWQgLyB5RGF0YS5jYXRlZ29yaWVzLmxlbmd0aCAvIDIgKyBzcGFjaW5nVmFsaWQgLyB5RGF0YS5jYXRlZ29yaWVzLmxlbmd0aCAqIGkpO1xyXG4gICAgICAgIH1cclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gb3B0cy55QXhpcy5zcGxpdE51bWJlcjsgaSsrKSB7XHJcbiAgICAgICAgICBwb2ludHMucHVzaChvcHRzLmFyZWFbMF0gKyBlYWNoU3BhY2luZyAqIGkpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAoeURhdGEuZGlzYWJsZWQgIT09IHRydWUpIHtcclxuICAgICAgICBsZXQgcmFuZ2VzRm9ybWF0ID0gb3B0cy5jaGFydERhdGEueUF4aXNEYXRhLnJhbmdlc0Zvcm1hdFtpXTtcclxuICAgICAgICBsZXQgeUF4aXNGb250U2l6ZSA9IHlEYXRhLmZvbnRTaXplID8geURhdGEuZm9udFNpemUgKiBvcHRzLnBpeCA6IGNvbmZpZy5mb250U2l6ZTtcclxuICAgICAgICBsZXQgeUF4aXNXaWR0aCA9IG9wdHMuY2hhcnREYXRhLnlBeGlzRGF0YS55QXhpc1dpZHRoW2ldO1xyXG4gICAgICAgIGxldCB0ZXh0QWxpZ24gPSB5RGF0YS50ZXh0QWxpZ24gfHwgXCJyaWdodFwiO1xyXG4gICAgICAgIC8v55S7Wei9tOWIu+W6puWPiuaWh+ahiFxyXG4gICAgICAgIHJhbmdlc0Zvcm1hdC5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICAgICAgICB2YXIgcG9zID0gcG9pbnRzW2luZGV4XSA/IHBvaW50c1tpbmRleF0gOiBlbmRZO1xyXG4gICAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICAgIGNvbnRleHQuc2V0Rm9udFNpemUoeUF4aXNGb250U2l6ZSk7XHJcbiAgICAgICAgICBjb250ZXh0LnNldExpbmVXaWR0aCgxICogb3B0cy5waXgpO1xyXG4gICAgICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZSh5RGF0YS5heGlzTGluZUNvbG9yIHx8ICcjY2NjY2NjJyk7XHJcbiAgICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZSh5RGF0YS5mb250Q29sb3IgfHwgb3B0cy5mb250Q29sb3IpO1xyXG4gICAgICAgICAgbGV0IHRtcHN0cmF0ID0gMDtcclxuICAgICAgICAgIGxldCBnYXB3aWR0aCA9IDQgKiBvcHRzLnBpeDtcclxuICAgICAgICAgIGlmICh5QXhpc1dpZHRoLnBvc2l0aW9uID09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgICAvL+eUu+WIu+W6pue6v1xyXG4gICAgICAgICAgICBpZiAoeURhdGEuY2FsaWJyYXRpb24gPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKHRTdGFydExlZnQsIHBvcyk7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5saW5lVG8odFN0YXJ0TGVmdCAtIDMgKiBvcHRzLnBpeCwgcG9zKTtcclxuICAgICAgICAgICAgICBnYXB3aWR0aCArPSAzICogb3B0cy5waXg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy/nlLvmloflrZdcclxuICAgICAgICAgICAgc3dpdGNoICh0ZXh0QWxpZ24pIHtcclxuICAgICAgICAgICAgICBjYXNlIFwibGVmdFwiOlxyXG4gICAgICAgICAgICAgICAgY29udGV4dC5zZXRUZXh0QWxpZ24oJ2xlZnQnKTtcclxuICAgICAgICAgICAgICAgIHRtcHN0cmF0ID0gdFN0YXJ0TGVmdCAtIHlBeGlzV2lkdGgud2lkdGhcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgIGNhc2UgXCJyaWdodFwiOlxyXG4gICAgICAgICAgICAgICAgY29udGV4dC5zZXRUZXh0QWxpZ24oJ3JpZ2h0Jyk7XHJcbiAgICAgICAgICAgICAgICB0bXBzdHJhdCA9IHRTdGFydExlZnQgLSBnYXB3aWR0aFxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgIGNvbnRleHQuc2V0VGV4dEFsaWduKCdjZW50ZXInKTtcclxuICAgICAgICAgICAgICAgIHRtcHN0cmF0ID0gdFN0YXJ0TGVmdCAtIHlBeGlzV2lkdGgud2lkdGggLyAyXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29udGV4dC5maWxsVGV4dChTdHJpbmcoaXRlbSksIHRtcHN0cmF0LCBwb3MgKyB5QXhpc0ZvbnRTaXplIC8gMiAtIDMgKiBvcHRzLnBpeCk7XHJcblxyXG4gICAgICAgICAgfSBlbHNlIGlmICh5QXhpc1dpZHRoLnBvc2l0aW9uID09ICdyaWdodCcpIHtcclxuICAgICAgICAgICAgLy/nlLvliLvluqbnur9cclxuICAgICAgICAgICAgaWYgKHlEYXRhLmNhbGlicmF0aW9uID09IHRydWUpIHtcclxuICAgICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyh0U3RhcnRSaWdodCwgcG9zKTtcclxuICAgICAgICAgICAgICBjb250ZXh0LmxpbmVUbyh0U3RhcnRSaWdodCArIDMgKiBvcHRzLnBpeCwgcG9zKTtcclxuICAgICAgICAgICAgICBnYXB3aWR0aCArPSAzICogb3B0cy5waXg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgc3dpdGNoICh0ZXh0QWxpZ24pIHtcclxuICAgICAgICAgICAgICBjYXNlIFwibGVmdFwiOlxyXG4gICAgICAgICAgICAgICAgY29udGV4dC5zZXRUZXh0QWxpZ24oJ2xlZnQnKTtcclxuICAgICAgICAgICAgICAgIHRtcHN0cmF0ID0gdFN0YXJ0UmlnaHQgKyBnYXB3aWR0aFxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgY2FzZSBcInJpZ2h0XCI6XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LnNldFRleHRBbGlnbigncmlnaHQnKTtcclxuICAgICAgICAgICAgICAgIHRtcHN0cmF0ID0gdFN0YXJ0UmlnaHQgKyB5QXhpc1dpZHRoLndpZHRoXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgY29udGV4dC5zZXRUZXh0QWxpZ24oJ2NlbnRlcicpO1xyXG4gICAgICAgICAgICAgICAgdG1wc3RyYXQgPSB0U3RhcnRSaWdodCArIHlBeGlzV2lkdGgud2lkdGggLyAyXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29udGV4dC5maWxsVGV4dChTdHJpbmcoaXRlbSksIHRtcHN0cmF0LCBwb3MgKyB5QXhpc0ZvbnRTaXplIC8gMiAtIDMgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKHlBeGlzV2lkdGgucG9zaXRpb24gPT0gJ2NlbnRlcicpIHtcclxuICAgICAgICAgICAgLy/nlLvliLvluqbnur9cclxuICAgICAgICAgICAgaWYgKHlEYXRhLmNhbGlicmF0aW9uID09IHRydWUpIHtcclxuICAgICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyh0U3RhcnRDZW50ZXIsIHBvcyk7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5saW5lVG8odFN0YXJ0Q2VudGVyIC0gMyAqIG9wdHMucGl4LCBwb3MpO1xyXG4gICAgICAgICAgICAgIGdhcHdpZHRoICs9IDMgKiBvcHRzLnBpeDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvL+eUu+aWh+Wtl1xyXG4gICAgICAgICAgICBzd2l0Y2ggKHRleHRBbGlnbikge1xyXG4gICAgICAgICAgICAgIGNhc2UgXCJsZWZ0XCI6XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LnNldFRleHRBbGlnbignbGVmdCcpO1xyXG4gICAgICAgICAgICAgICAgdG1wc3RyYXQgPSB0U3RhcnRDZW50ZXIgLSB5QXhpc1dpZHRoLndpZHRoXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICBjYXNlIFwicmlnaHRcIjpcclxuICAgICAgICAgICAgICAgIGNvbnRleHQuc2V0VGV4dEFsaWduKCdyaWdodCcpO1xyXG4gICAgICAgICAgICAgICAgdG1wc3RyYXQgPSB0U3RhcnRDZW50ZXIgLSBnYXB3aWR0aFxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgIGNvbnRleHQuc2V0VGV4dEFsaWduKCdjZW50ZXInKTtcclxuICAgICAgICAgICAgICAgIHRtcHN0cmF0ID0gdFN0YXJ0Q2VudGVyIC0geUF4aXNXaWR0aC53aWR0aCAvIDJcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb250ZXh0LmZpbGxUZXh0KFN0cmluZyhpdGVtKSwgdG1wc3RyYXQsIHBvcyArIHlBeGlzRm9udFNpemUgLyAyIC0gMyAqIG9wdHMucGl4KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICAgICAgY29udGV4dC5zZXRUZXh0QWxpZ24oJ2xlZnQnKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICAvL+eUu1novbTovbTnur9cclxuICAgICAgICBpZiAoeURhdGEuYXhpc0xpbmUgIT09IGZhbHNlKSB7XHJcbiAgICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZSh5RGF0YS5heGlzTGluZUNvbG9yIHx8ICcjY2NjY2NjJyk7XHJcbiAgICAgICAgICBjb250ZXh0LnNldExpbmVXaWR0aCgxICogb3B0cy5waXgpO1xyXG4gICAgICAgICAgaWYgKHlBeGlzV2lkdGgucG9zaXRpb24gPT0gJ2xlZnQnKSB7XHJcbiAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKHRTdGFydExlZnQsIG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdKTtcclxuICAgICAgICAgICAgY29udGV4dC5saW5lVG8odFN0YXJ0TGVmdCwgb3B0cy5hcmVhWzBdKTtcclxuICAgICAgICAgIH0gZWxzZSBpZiAoeUF4aXNXaWR0aC5wb3NpdGlvbiA9PSAncmlnaHQnKSB7XHJcbiAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKHRTdGFydFJpZ2h0LCBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXSk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHRTdGFydFJpZ2h0LCBvcHRzLmFyZWFbMF0pO1xyXG4gICAgICAgICAgfSBlbHNlIGlmICh5QXhpc1dpZHRoLnBvc2l0aW9uID09ICdjZW50ZXInKSB7XHJcbiAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKHRTdGFydENlbnRlciwgb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0pO1xyXG4gICAgICAgICAgICBjb250ZXh0LmxpbmVUbyh0U3RhcnRDZW50ZXIsIG9wdHMuYXJlYVswXSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvL+eUu1novbTmoIfpophcclxuICAgICAgICBpZiAob3B0cy55QXhpcy5zaG93VGl0bGUpIHtcclxuICAgICAgICAgIGxldCB0aXRsZUZvbnRTaXplID0geURhdGEudGl0bGVGb250U2l6ZSAqIG9wdHMucGl4IHx8IGNvbmZpZy5mb250U2l6ZTtcclxuICAgICAgICAgIGxldCB0aXRsZSA9IHlEYXRhLnRpdGxlO1xyXG4gICAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICAgIGNvbnRleHQuc2V0Rm9udFNpemUodGl0bGVGb250U2l6ZSk7XHJcbiAgICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZSh5RGF0YS50aXRsZUZvbnRDb2xvciB8fCBvcHRzLmZvbnRDb2xvcik7XHJcbiAgICAgICAgICBpZiAoeUF4aXNXaWR0aC5wb3NpdGlvbiA9PSAnbGVmdCcpIHtcclxuICAgICAgICAgICAgY29udGV4dC5maWxsVGV4dCh0aXRsZSwgdFN0YXJ0TGVmdCAtIG1lYXN1cmVUZXh0KHRpdGxlLCB0aXRsZUZvbnRTaXplLCBjb250ZXh0KSAvIDIgKyAoeURhdGEudGl0bGVPZmZzZXRYIHx8IDApLCBvcHRzLmFyZWFbMF0gLSAoMTAgLSAoeURhdGEudGl0bGVPZmZzZXRZIHx8IDApKSAqIG9wdHMucGl4KTtcclxuICAgICAgICAgIH0gZWxzZSBpZiAoeUF4aXNXaWR0aC5wb3NpdGlvbiA9PSAncmlnaHQnKSB7XHJcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbFRleHQodGl0bGUsIHRTdGFydFJpZ2h0IC0gbWVhc3VyZVRleHQodGl0bGUsIHRpdGxlRm9udFNpemUsIGNvbnRleHQpIC8gMiArICh5RGF0YS50aXRsZU9mZnNldFggfHwgMCksIG9wdHMuYXJlYVswXSAtICgxMCAtICh5RGF0YS50aXRsZU9mZnNldFkgfHwgMCkpICogb3B0cy5waXgpO1xyXG4gICAgICAgICAgfSBlbHNlIGlmICh5QXhpc1dpZHRoLnBvc2l0aW9uID09ICdjZW50ZXInKSB7XHJcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbFRleHQodGl0bGUsIHRTdGFydENlbnRlciAtIG1lYXN1cmVUZXh0KHRpdGxlLCB0aXRsZUZvbnRTaXplLCBjb250ZXh0KSAvIDIgKyAoeURhdGEudGl0bGVPZmZzZXRYIHx8IDApLCBvcHRzLmFyZWFbMF0gLSAoMTAgLSAoeURhdGEudGl0bGVPZmZzZXRZIHx8IDApKSAqIG9wdHMucGl4KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoeUF4aXNXaWR0aC5wb3NpdGlvbiA9PSAnbGVmdCcpIHtcclxuICAgICAgICAgIHRTdGFydExlZnQgLT0gKHlBeGlzV2lkdGgud2lkdGggKyBvcHRzLnlBeGlzLnBhZGRpbmcgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRTdGFydFJpZ2h0ICs9IHlBeGlzV2lkdGgud2lkdGggKyBvcHRzLnlBeGlzLnBhZGRpbmcgKiBvcHRzLnBpeDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3TGVnZW5kKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0LCBjaGFydERhdGEpIHtcclxuICBpZiAob3B0cy5sZWdlbmQuc2hvdyA9PT0gZmFsc2UpIHtcclxuICAgIHJldHVybjtcclxuICB9XHJcbiAgbGV0IGxlZ2VuZERhdGEgPSBjaGFydERhdGEubGVnZW5kRGF0YTtcclxuICBsZXQgbGVnZW5kTGlzdCA9IGxlZ2VuZERhdGEucG9pbnRzO1xyXG4gIGxldCBsZWdlbmRBcmVhID0gbGVnZW5kRGF0YS5hcmVhO1xyXG4gIGxldCBwYWRkaW5nID0gb3B0cy5sZWdlbmQucGFkZGluZyAqIG9wdHMucGl4O1xyXG4gIGxldCBmb250U2l6ZSA9IG9wdHMubGVnZW5kLmZvbnRTaXplICogb3B0cy5waXg7XHJcbiAgbGV0IHNoYXBlV2lkdGggPSAxNSAqIG9wdHMucGl4O1xyXG4gIGxldCBzaGFwZVJpZ2h0ID0gNSAqIG9wdHMucGl4O1xyXG4gIGxldCBpdGVtR2FwID0gb3B0cy5sZWdlbmQuaXRlbUdhcCAqIG9wdHMucGl4O1xyXG4gIGxldCBsaW5lSGVpZ2h0ID0gTWF0aC5tYXgob3B0cy5sZWdlbmQubGluZUhlaWdodCAqIG9wdHMucGl4LCBmb250U2l6ZSk7XHJcbiAgLy/nlLvog4zmma/lj4rovrnmoYZcclxuICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gIGNvbnRleHQuc2V0TGluZVdpZHRoKG9wdHMubGVnZW5kLmJvcmRlcldpZHRoICogb3B0cy5waXgpO1xyXG4gIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUob3B0cy5sZWdlbmQuYm9yZGVyQ29sb3IpO1xyXG4gIGNvbnRleHQuc2V0RmlsbFN0eWxlKG9wdHMubGVnZW5kLmJhY2tncm91bmRDb2xvcik7XHJcbiAgY29udGV4dC5tb3ZlVG8obGVnZW5kQXJlYS5zdGFydC54LCBsZWdlbmRBcmVhLnN0YXJ0LnkpO1xyXG4gIGNvbnRleHQucmVjdChsZWdlbmRBcmVhLnN0YXJ0LngsIGxlZ2VuZEFyZWEuc3RhcnQueSwgbGVnZW5kQXJlYS53aWR0aCwgbGVnZW5kQXJlYS5oZWlnaHQpO1xyXG4gIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgY29udGV4dC5maWxsKCk7XHJcbiAgY29udGV4dC5zdHJva2UoKTtcclxuICBsZWdlbmRMaXN0LmZvckVhY2goZnVuY3Rpb24oaXRlbUxpc3QsIGxpc3RJbmRleCkge1xyXG4gICAgbGV0IHdpZHRoID0gMDtcclxuICAgIGxldCBoZWlnaHQgPSAwO1xyXG4gICAgd2lkdGggPSBsZWdlbmREYXRhLndpZHRoQXJyW2xpc3RJbmRleF07XHJcbiAgICBoZWlnaHQgPSBsZWdlbmREYXRhLmhlaWdodEFycltsaXN0SW5kZXhdO1xyXG4gICAgbGV0IHN0YXJ0WCA9IDA7XHJcbiAgICBsZXQgc3RhcnRZID0gMDtcclxuICAgIGlmIChvcHRzLmxlZ2VuZC5wb3NpdGlvbiA9PSAndG9wJyB8fCBvcHRzLmxlZ2VuZC5wb3NpdGlvbiA9PSAnYm90dG9tJykge1xyXG4gICAgICBzd2l0Y2ggKG9wdHMubGVnZW5kLmZsb2F0KSB7XHJcbiAgICAgICAgY2FzZSAnbGVmdCc6XHJcbiAgICAgICAgICBzdGFydFggPSBsZWdlbmRBcmVhLnN0YXJ0LnggKyBwYWRkaW5nO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ3JpZ2h0JzpcclxuICAgICAgICAgIHN0YXJ0WCA9IGxlZ2VuZEFyZWEuc3RhcnQueCArIGxlZ2VuZEFyZWEud2lkdGggLSB3aWR0aDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHN0YXJ0WCA9IGxlZ2VuZEFyZWEuc3RhcnQueCArIChsZWdlbmRBcmVhLndpZHRoIC0gd2lkdGgpIC8gMjtcclxuICAgICAgfVxyXG4gICAgICBzdGFydFkgPSBsZWdlbmRBcmVhLnN0YXJ0LnkgKyBwYWRkaW5nICsgbGlzdEluZGV4ICogbGluZUhlaWdodDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChsaXN0SW5kZXggPT0gMCkge1xyXG4gICAgICAgIHdpZHRoID0gMDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB3aWR0aCA9IGxlZ2VuZERhdGEud2lkdGhBcnJbbGlzdEluZGV4IC0gMV07XHJcbiAgICAgIH1cclxuICAgICAgc3RhcnRYID0gbGVnZW5kQXJlYS5zdGFydC54ICsgcGFkZGluZyArIHdpZHRoO1xyXG4gICAgICBzdGFydFkgPSBsZWdlbmRBcmVhLnN0YXJ0LnkgKyBwYWRkaW5nICsgKGxlZ2VuZEFyZWEuaGVpZ2h0IC0gaGVpZ2h0KSAvIDI7XHJcbiAgICB9XHJcbiAgICBjb250ZXh0LnNldEZvbnRTaXplKGNvbmZpZy5mb250U2l6ZSk7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGl0ZW1MaXN0Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGxldCBpdGVtID0gaXRlbUxpc3RbaV07XHJcbiAgICAgIGl0ZW0uYXJlYSA9IFswLCAwLCAwLCAwXTtcclxuICAgICAgaXRlbS5hcmVhWzBdID0gc3RhcnRYO1xyXG4gICAgICBpdGVtLmFyZWFbMV0gPSBzdGFydFk7XHJcbiAgICAgIGl0ZW0uYXJlYVszXSA9IHN0YXJ0WSArIGxpbmVIZWlnaHQ7XHJcbiAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKDEgKiBvcHRzLnBpeCk7XHJcbiAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoaXRlbS5zaG93ID8gaXRlbS5jb2xvciA6IG9wdHMubGVnZW5kLmhpZGRlbkNvbG9yKTtcclxuICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoaXRlbS5zaG93ID8gaXRlbS5jb2xvciA6IG9wdHMubGVnZW5kLmhpZGRlbkNvbG9yKTtcclxuICAgICAgc3dpdGNoIChpdGVtLmxlZ2VuZFNoYXBlKSB7XHJcbiAgICAgICAgY2FzZSAnbGluZSc6XHJcbiAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhzdGFydFgsIHN0YXJ0WSArIDAuNSAqIGxpbmVIZWlnaHQgLSAyICogb3B0cy5waXgpO1xyXG4gICAgICAgICAgY29udGV4dC5maWxsUmVjdChzdGFydFgsIHN0YXJ0WSArIDAuNSAqIGxpbmVIZWlnaHQgLSAyICogb3B0cy5waXgsIDE1ICogb3B0cy5waXgsIDQgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICd0cmlhbmdsZSc6XHJcbiAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhzdGFydFggKyA3LjUgKiBvcHRzLnBpeCwgc3RhcnRZICsgMC41ICogbGluZUhlaWdodCAtIDUgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhzdGFydFggKyAyLjUgKiBvcHRzLnBpeCwgc3RhcnRZICsgMC41ICogbGluZUhlaWdodCArIDUgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhzdGFydFggKyAxMi41ICogb3B0cy5waXgsIHN0YXJ0WSArIDAuNSAqIGxpbmVIZWlnaHQgKyA1ICogb3B0cy5waXgpO1xyXG4gICAgICAgICAgY29udGV4dC5saW5lVG8oc3RhcnRYICsgNy41ICogb3B0cy5waXgsIHN0YXJ0WSArIDAuNSAqIGxpbmVIZWlnaHQgLSA1ICogb3B0cy5waXgpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnZGlhbW9uZCc6XHJcbiAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhzdGFydFggKyA3LjUgKiBvcHRzLnBpeCwgc3RhcnRZICsgMC41ICogbGluZUhlaWdodCAtIDUgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhzdGFydFggKyAyLjUgKiBvcHRzLnBpeCwgc3RhcnRZICsgMC41ICogbGluZUhlaWdodCk7XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhzdGFydFggKyA3LjUgKiBvcHRzLnBpeCwgc3RhcnRZICsgMC41ICogbGluZUhlaWdodCArIDUgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhzdGFydFggKyAxMi41ICogb3B0cy5waXgsIHN0YXJ0WSArIDAuNSAqIGxpbmVIZWlnaHQpO1xyXG4gICAgICAgICAgY29udGV4dC5saW5lVG8oc3RhcnRYICsgNy41ICogb3B0cy5waXgsIHN0YXJ0WSArIDAuNSAqIGxpbmVIZWlnaHQgLSA1ICogb3B0cy5waXgpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnY2lyY2xlJzpcclxuICAgICAgICAgIGNvbnRleHQubW92ZVRvKHN0YXJ0WCArIDcuNSAqIG9wdHMucGl4LCBzdGFydFkgKyAwLjUgKiBsaW5lSGVpZ2h0KTtcclxuICAgICAgICAgIGNvbnRleHQuYXJjKHN0YXJ0WCArIDcuNSAqIG9wdHMucGl4LCBzdGFydFkgKyAwLjUgKiBsaW5lSGVpZ2h0LCA1ICogb3B0cy5waXgsIDAsIDIgKiBNYXRoLlBJKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ3JlY3QnOlxyXG4gICAgICAgICAgY29udGV4dC5tb3ZlVG8oc3RhcnRYLCBzdGFydFkgKyAwLjUgKiBsaW5lSGVpZ2h0IC0gNSAqIG9wdHMucGl4KTtcclxuICAgICAgICAgIGNvbnRleHQuZmlsbFJlY3Qoc3RhcnRYLCBzdGFydFkgKyAwLjUgKiBsaW5lSGVpZ2h0IC0gNSAqIG9wdHMucGl4LCAxNSAqIG9wdHMucGl4LCAxMCAqIG9wdHMucGl4KTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ3NxdWFyZSc6XHJcbiAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhzdGFydFggKyA1ICogb3B0cy5waXgsIHN0YXJ0WSArIDAuNSAqIGxpbmVIZWlnaHQgLSA1ICogb3B0cy5waXgpO1xyXG4gICAgICAgICAgY29udGV4dC5maWxsUmVjdChzdGFydFggKyA1ICogb3B0cy5waXgsIHN0YXJ0WSArIDAuNSAqIGxpbmVIZWlnaHQgLSA1ICogb3B0cy5waXgsIDEwICogb3B0cy5waXgsIDEwICogb3B0cy5waXgpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnbm9uZSc6XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgY29udGV4dC5tb3ZlVG8oc3RhcnRYLCBzdGFydFkgKyAwLjUgKiBsaW5lSGVpZ2h0IC0gNSAqIG9wdHMucGl4KTtcclxuICAgICAgICAgIGNvbnRleHQuZmlsbFJlY3Qoc3RhcnRYLCBzdGFydFkgKyAwLjUgKiBsaW5lSGVpZ2h0IC0gNSAqIG9wdHMucGl4LCAxNSAqIG9wdHMucGl4LCAxMCAqIG9wdHMucGl4KTtcclxuICAgICAgfVxyXG4gICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgc3RhcnRYICs9IHNoYXBlV2lkdGggKyBzaGFwZVJpZ2h0O1xyXG4gICAgICBsZXQgZm9udFRyYW5zID0gMC41ICogbGluZUhlaWdodCArIDAuNSAqIGZvbnRTaXplIC0gMjtcclxuICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgY29udGV4dC5zZXRGb250U2l6ZShmb250U2l6ZSk7XHJcbiAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGl0ZW0uc2hvdyA/IG9wdHMubGVnZW5kLmZvbnRDb2xvciA6IG9wdHMubGVnZW5kLmhpZGRlbkNvbG9yKTtcclxuICAgICAgY29udGV4dC5maWxsVGV4dChpdGVtLm5hbWUsIHN0YXJ0WCwgc3RhcnRZICsgZm9udFRyYW5zKTtcclxuICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgaWYgKG9wdHMubGVnZW5kLnBvc2l0aW9uID09ICd0b3AnIHx8IG9wdHMubGVnZW5kLnBvc2l0aW9uID09ICdib3R0b20nKSB7XHJcbiAgICAgICAgc3RhcnRYICs9IG1lYXN1cmVUZXh0KGl0ZW0ubmFtZSwgZm9udFNpemUsIGNvbnRleHQpICsgaXRlbUdhcDtcclxuICAgICAgICBpdGVtLmFyZWFbMl0gPSBzdGFydFg7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaXRlbS5hcmVhWzJdID0gc3RhcnRYICsgbWVhc3VyZVRleHQoaXRlbS5uYW1lLCBmb250U2l6ZSwgY29udGV4dCkgKyBpdGVtR2FwOztcclxuICAgICAgICBzdGFydFggLT0gc2hhcGVXaWR0aCArIHNoYXBlUmlnaHQ7XHJcbiAgICAgICAgc3RhcnRZICs9IGxpbmVIZWlnaHQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9KTtcclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd1BpZURhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpIHtcclxuICB2YXIgcHJvY2VzcyA9IGFyZ3VtZW50cy5sZW5ndGggPiA0ICYmIGFyZ3VtZW50c1s0XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzRdIDogMTtcclxuICB2YXIgcGllT3B0aW9uID0gYXNzaWduKHt9LCB7XHJcbiAgICBhY3RpdmVPcGFjaXR5OiAwLjUsXHJcbiAgICBhY3RpdmVSYWRpdXM6IDEwLFxyXG4gICAgb2Zmc2V0QW5nbGU6IDAsXHJcbiAgICBsYWJlbFdpZHRoOiAxNSxcclxuICAgIHJpbmdXaWR0aDogMzAsXHJcbiAgICBjdXN0b21SYWRpdXM6IDAsXHJcbiAgICBib3JkZXI6IGZhbHNlLFxyXG4gICAgYm9yZGVyV2lkdGg6IDIsXHJcbiAgICBib3JkZXJDb2xvcjogJyNGRkZGRkYnLFxyXG4gICAgY2VudGVyQ29sb3I6ICcjRkZGRkZGJyxcclxuICAgIGxpbmVhclR5cGU6ICdub25lJyxcclxuICAgIGN1c3RvbUNvbG9yOiBbXSxcclxuICB9LCBvcHRzLnR5cGUgPT0gXCJwaWVcIiA/IG9wdHMuZXh0cmEucGllIDogb3B0cy5leHRyYS5yaW5nKTtcclxuICB2YXIgY2VudGVyUG9zaXRpb24gPSB7XHJcbiAgICB4OiBvcHRzLmFyZWFbM10gKyAob3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXSAtIG9wdHMuYXJlYVszXSkgLyAyLFxyXG4gICAgeTogb3B0cy5hcmVhWzBdICsgKG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzBdIC0gb3B0cy5hcmVhWzJdKSAvIDJcclxuICB9O1xyXG4gIGlmIChjb25maWcucGllQ2hhcnRMaW5lUGFkZGluZyA9PSAwKSB7XHJcbiAgICBjb25maWcucGllQ2hhcnRMaW5lUGFkZGluZyA9IHBpZU9wdGlvbi5hY3RpdmVSYWRpdXMgKiBvcHRzLnBpeDtcclxuICB9XHJcblxyXG4gIHZhciByYWRpdXMgPSBNYXRoLm1pbigob3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXSAtIG9wdHMuYXJlYVszXSkgLyAyIC0gY29uZmlnLnBpZUNoYXJ0TGluZVBhZGRpbmcgLSBjb25maWcucGllQ2hhcnRUZXh0UGFkZGluZyAtIGNvbmZpZy5fcGllVGV4dE1heExlbmd0aF8sIChvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVswXSAtIG9wdHMuYXJlYVsyXSkgLyAyIC0gY29uZmlnLnBpZUNoYXJ0TGluZVBhZGRpbmcgLSBjb25maWcucGllQ2hhcnRUZXh0UGFkZGluZyk7XHJcbiAgaWYgKHBpZU9wdGlvbi5jdXN0b21SYWRpdXMgPiAwKSB7XHJcbiAgICByYWRpdXMgPSBwaWVPcHRpb24uY3VzdG9tUmFkaXVzICogb3B0cy5waXg7XHJcbiAgfVxyXG4gIHNlcmllcyA9IGdldFBpZURhdGFQb2ludHMoc2VyaWVzLCByYWRpdXMsIHByb2Nlc3MpO1xyXG4gIHZhciBhY3RpdmVSYWRpdXMgPSBwaWVPcHRpb24uYWN0aXZlUmFkaXVzICogb3B0cy5waXg7XHJcbiAgcGllT3B0aW9uLmN1c3RvbUNvbG9yID0gZmlsbEN1c3RvbUNvbG9yKHBpZU9wdGlvbi5saW5lYXJUeXBlLCBwaWVPcHRpb24uY3VzdG9tQ29sb3IsIHNlcmllcywgY29uZmlnKTtcclxuICBzZXJpZXMgPSBzZXJpZXMubWFwKGZ1bmN0aW9uKGVhY2hTZXJpZXMpIHtcclxuICAgIGVhY2hTZXJpZXMuX3N0YXJ0XyArPSAocGllT3B0aW9uLm9mZnNldEFuZ2xlKSAqIE1hdGguUEkgLyAxODA7XHJcbiAgICByZXR1cm4gZWFjaFNlcmllcztcclxuICB9KTtcclxuICBzZXJpZXMuZm9yRWFjaChmdW5jdGlvbihlYWNoU2VyaWVzLCBzZXJpZXNJbmRleCkge1xyXG4gICAgaWYgKG9wdHMudG9vbHRpcCkge1xyXG4gICAgICBpZiAob3B0cy50b29sdGlwLmluZGV4ID09IHNlcmllc0luZGV4KSB7XHJcbiAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShoZXhUb1JnYihlYWNoU2VyaWVzLmNvbG9yLCBwaWVPcHRpb24uYWN0aXZlT3BhY2l0eSB8fCAwLjUpKTtcclxuICAgICAgICBjb250ZXh0Lm1vdmVUbyhjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55KTtcclxuICAgICAgICBjb250ZXh0LmFyYyhjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55LCBlYWNoU2VyaWVzLl9yYWRpdXNfICsgYWN0aXZlUmFkaXVzLCBlYWNoU2VyaWVzLl9zdGFydF8sIGVhY2hTZXJpZXMuX3N0YXJ0XyArIDIgKiBlYWNoU2VyaWVzLl9wcm9wb3J0aW9uXyAqIE1hdGguUEkpO1xyXG4gICAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICBjb250ZXh0LnNldExpbmVXaWR0aChwaWVPcHRpb24uYm9yZGVyV2lkdGggKiBvcHRzLnBpeCk7XHJcbiAgICBjb250ZXh0LmxpbmVKb2luID0gXCJyb3VuZFwiO1xyXG4gICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShwaWVPcHRpb24uYm9yZGVyQ29sb3IpO1xyXG4gICAgdmFyIGZpbGxjb2xvciA9IGVhY2hTZXJpZXMuY29sb3I7XHJcbiAgICBpZiAocGllT3B0aW9uLmxpbmVhclR5cGUgPT0gJ2N1c3RvbScpIHtcclxuICAgICAgdmFyIGdyZDtcclxuICAgICAgaWYoY29udGV4dC5jcmVhdGVDaXJjdWxhckdyYWRpZW50KXtcclxuICAgICAgICBncmQgPSBjb250ZXh0LmNyZWF0ZUNpcmN1bGFyR3JhZGllbnQoY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSwgZWFjaFNlcmllcy5fcmFkaXVzXylcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgZ3JkID0gY29udGV4dC5jcmVhdGVSYWRpYWxHcmFkaWVudChjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55LCAwLGNlbnRlclBvc2l0aW9uLngsIGNlbnRlclBvc2l0aW9uLnksIGVhY2hTZXJpZXMuX3JhZGl1c18pXHJcbiAgICAgIH1cclxuICAgICAgZ3JkLmFkZENvbG9yU3RvcCgwLCBoZXhUb1JnYihwaWVPcHRpb24uY3VzdG9tQ29sb3JbZWFjaFNlcmllcy5saW5lYXJJbmRleF0sIDEpKVxyXG4gICAgICBncmQuYWRkQ29sb3JTdG9wKDEsIGhleFRvUmdiKGVhY2hTZXJpZXMuY29sb3IsIDEpKVxyXG4gICAgICBmaWxsY29sb3IgPSBncmRcclxuICAgIH1cclxuICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGZpbGxjb2xvcik7XHJcbiAgICBjb250ZXh0Lm1vdmVUbyhjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55KTtcclxuICAgIGNvbnRleHQuYXJjKGNlbnRlclBvc2l0aW9uLngsIGNlbnRlclBvc2l0aW9uLnksIGVhY2hTZXJpZXMuX3JhZGl1c18sIGVhY2hTZXJpZXMuX3N0YXJ0XywgZWFjaFNlcmllcy5fc3RhcnRfICsgMiAqIGVhY2hTZXJpZXMuX3Byb3BvcnRpb25fICogTWF0aC5QSSk7XHJcbiAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgY29udGV4dC5maWxsKCk7XHJcbiAgICBpZiAocGllT3B0aW9uLmJvcmRlciA9PSB0cnVlKSB7XHJcbiAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgaWYgKG9wdHMudHlwZSA9PT0gJ3JpbmcnKSB7XHJcbiAgICB2YXIgaW5uZXJQaWVXaWR0aCA9IHJhZGl1cyAqIDAuNjtcclxuICAgIGlmICh0eXBlb2YgcGllT3B0aW9uLnJpbmdXaWR0aCA9PT0gJ251bWJlcicgJiYgcGllT3B0aW9uLnJpbmdXaWR0aCA+IDApIHtcclxuICAgICAgaW5uZXJQaWVXaWR0aCA9IE1hdGgubWF4KDAsIHJhZGl1cyAtIHBpZU9wdGlvbi5yaW5nV2lkdGggKiBvcHRzLnBpeCk7XHJcbiAgICB9XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5zZXRGaWxsU3R5bGUocGllT3B0aW9uLmNlbnRlckNvbG9yKTtcclxuICAgIGNvbnRleHQubW92ZVRvKGNlbnRlclBvc2l0aW9uLngsIGNlbnRlclBvc2l0aW9uLnkpO1xyXG4gICAgY29udGV4dC5hcmMoY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSwgaW5uZXJQaWVXaWR0aCwgMCwgMiAqIE1hdGguUEkpO1xyXG4gICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gIH1cclxuICBpZiAob3B0cy5kYXRhTGFiZWwgIT09IGZhbHNlICYmIHByb2Nlc3MgPT09IDEpIHtcclxuICAgIHZhciB2YWxpZCA9IGZhbHNlO1xyXG4gICAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IHNlcmllcy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xyXG4gICAgICBpZiAoc2VyaWVzW2ldLmRhdGEgPiAwKSB7XHJcbiAgICAgICAgdmFsaWQgPSB0cnVlO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAodmFsaWQpIHtcclxuICAgICAgZHJhd1BpZVRleHQoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIHJhZGl1cywgY2VudGVyUG9zaXRpb24pO1xyXG4gICAgfVxyXG4gIH1cclxuICBpZiAocHJvY2VzcyA9PT0gMSAmJiBvcHRzLnR5cGUgPT09ICdyaW5nJykge1xyXG4gICAgZHJhd1JpbmdUaXRsZShvcHRzLCBjb25maWcsIGNvbnRleHQsIGNlbnRlclBvc2l0aW9uKTtcclxuICB9XHJcbiAgcmV0dXJuIHtcclxuICAgIGNlbnRlcjogY2VudGVyUG9zaXRpb24sXHJcbiAgICByYWRpdXM6IHJhZGl1cyxcclxuICAgIHNlcmllczogc2VyaWVzXHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd1Jvc2VEYXRhUG9pbnRzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KSB7XHJcbiAgdmFyIHByb2Nlc3MgPSBhcmd1bWVudHMubGVuZ3RoID4gNCAmJiBhcmd1bWVudHNbNF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s0XSA6IDE7XHJcbiAgdmFyIHJvc2VPcHRpb24gPSBhc3NpZ24oe30sIHtcclxuICAgIHR5cGU6ICdhcmVhJyxcclxuICAgIGFjdGl2ZU9wYWNpdHk6IDAuNSxcclxuICAgIGFjdGl2ZVJhZGl1czogMTAsXHJcbiAgICBvZmZzZXRBbmdsZTogMCxcclxuICAgIGxhYmVsV2lkdGg6IDE1LFxyXG4gICAgYm9yZGVyOiBmYWxzZSxcclxuICAgIGJvcmRlcldpZHRoOiAyLFxyXG4gICAgYm9yZGVyQ29sb3I6ICcjRkZGRkZGJyxcclxuICAgIGxpbmVhclR5cGU6ICdub25lJyxcclxuICAgIGN1c3RvbUNvbG9yOiBbXSxcclxuICB9LCBvcHRzLmV4dHJhLnJvc2UpO1xyXG4gIGlmIChjb25maWcucGllQ2hhcnRMaW5lUGFkZGluZyA9PSAwKSB7XHJcbiAgICBjb25maWcucGllQ2hhcnRMaW5lUGFkZGluZyA9IHJvc2VPcHRpb24uYWN0aXZlUmFkaXVzICogb3B0cy5waXg7XHJcbiAgfVxyXG4gIHZhciBjZW50ZXJQb3NpdGlvbiA9IHtcclxuICAgIHg6IG9wdHMuYXJlYVszXSArIChvcHRzLndpZHRoIC0gb3B0cy5hcmVhWzFdIC0gb3B0cy5hcmVhWzNdKSAvIDIsXHJcbiAgICB5OiBvcHRzLmFyZWFbMF0gKyAob3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMF0gLSBvcHRzLmFyZWFbMl0pIC8gMlxyXG4gIH07XHJcbiAgdmFyIHJhZGl1cyA9IE1hdGgubWluKChvcHRzLndpZHRoIC0gb3B0cy5hcmVhWzFdIC0gb3B0cy5hcmVhWzNdKSAvIDIgLSBjb25maWcucGllQ2hhcnRMaW5lUGFkZGluZyAtIGNvbmZpZy5waWVDaGFydFRleHRQYWRkaW5nIC0gY29uZmlnLl9waWVUZXh0TWF4TGVuZ3RoXywgKG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzBdIC0gb3B0cy5hcmVhWzJdKSAvIDIgLSBjb25maWcucGllQ2hhcnRMaW5lUGFkZGluZyAtIGNvbmZpZy5waWVDaGFydFRleHRQYWRkaW5nKTtcclxuICB2YXIgbWluUmFkaXVzID0gcm9zZU9wdGlvbi5taW5SYWRpdXMgfHwgcmFkaXVzICogMC41O1xyXG4gIHNlcmllcyA9IGdldFJvc2VEYXRhUG9pbnRzKHNlcmllcywgcm9zZU9wdGlvbi50eXBlLCBtaW5SYWRpdXMsIHJhZGl1cywgcHJvY2Vzcyk7XHJcbiAgdmFyIGFjdGl2ZVJhZGl1cyA9IHJvc2VPcHRpb24uYWN0aXZlUmFkaXVzICogb3B0cy5waXg7XHJcbiAgcm9zZU9wdGlvbi5jdXN0b21Db2xvciA9IGZpbGxDdXN0b21Db2xvcihyb3NlT3B0aW9uLmxpbmVhclR5cGUsIHJvc2VPcHRpb24uY3VzdG9tQ29sb3IsIHNlcmllcywgY29uZmlnKTtcclxuICBzZXJpZXMgPSBzZXJpZXMubWFwKGZ1bmN0aW9uKGVhY2hTZXJpZXMpIHtcclxuICAgIGVhY2hTZXJpZXMuX3N0YXJ0XyArPSAocm9zZU9wdGlvbi5vZmZzZXRBbmdsZSB8fCAwKSAqIE1hdGguUEkgLyAxODA7XHJcbiAgICByZXR1cm4gZWFjaFNlcmllcztcclxuICB9KTtcclxuICBzZXJpZXMuZm9yRWFjaChmdW5jdGlvbihlYWNoU2VyaWVzLCBzZXJpZXNJbmRleCkge1xyXG4gICAgaWYgKG9wdHMudG9vbHRpcCkge1xyXG4gICAgICBpZiAob3B0cy50b29sdGlwLmluZGV4ID09IHNlcmllc0luZGV4KSB7XHJcbiAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShoZXhUb1JnYihlYWNoU2VyaWVzLmNvbG9yLCByb3NlT3B0aW9uLmFjdGl2ZU9wYWNpdHkgfHwgMC41KSk7XHJcbiAgICAgICAgY29udGV4dC5tb3ZlVG8oY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSk7XHJcbiAgICAgICAgY29udGV4dC5hcmMoY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSwgYWN0aXZlUmFkaXVzICsgZWFjaFNlcmllcy5fcmFkaXVzXywgZWFjaFNlcmllcy5fc3RhcnRfLCBlYWNoU2VyaWVzLl9zdGFydF8gKyAyICogZWFjaFNlcmllcy5fcm9zZV9wcm9wb3J0aW9uXyAqIE1hdGguUEkpO1xyXG4gICAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICBjb250ZXh0LnNldExpbmVXaWR0aChyb3NlT3B0aW9uLmJvcmRlcldpZHRoICogb3B0cy5waXgpO1xyXG4gICAgY29udGV4dC5saW5lSm9pbiA9IFwicm91bmRcIjtcclxuICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUocm9zZU9wdGlvbi5ib3JkZXJDb2xvcik7XHJcbiAgICB2YXIgZmlsbGNvbG9yID0gZWFjaFNlcmllcy5jb2xvcjtcclxuICAgIGlmIChyb3NlT3B0aW9uLmxpbmVhclR5cGUgPT0gJ2N1c3RvbScpIHtcclxuICAgICAgdmFyIGdyZDtcclxuICAgICAgaWYoY29udGV4dC5jcmVhdGVDaXJjdWxhckdyYWRpZW50KXtcclxuICAgICAgICBncmQgPSBjb250ZXh0LmNyZWF0ZUNpcmN1bGFyR3JhZGllbnQoY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSwgZWFjaFNlcmllcy5fcmFkaXVzXylcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgZ3JkID0gY29udGV4dC5jcmVhdGVSYWRpYWxHcmFkaWVudChjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55LCAwLGNlbnRlclBvc2l0aW9uLngsIGNlbnRlclBvc2l0aW9uLnksIGVhY2hTZXJpZXMuX3JhZGl1c18pXHJcbiAgICAgIH1cclxuICAgICAgZ3JkLmFkZENvbG9yU3RvcCgwLCBoZXhUb1JnYihyb3NlT3B0aW9uLmN1c3RvbUNvbG9yW2VhY2hTZXJpZXMubGluZWFySW5kZXhdLCAxKSlcclxuICAgICAgZ3JkLmFkZENvbG9yU3RvcCgxLCBoZXhUb1JnYihlYWNoU2VyaWVzLmNvbG9yLCAxKSlcclxuICAgICAgZmlsbGNvbG9yID0gZ3JkXHJcbiAgICB9XHJcbiAgICBjb250ZXh0LnNldEZpbGxTdHlsZShmaWxsY29sb3IpO1xyXG4gICAgY29udGV4dC5tb3ZlVG8oY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSk7XHJcbiAgICBjb250ZXh0LmFyYyhjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55LCBlYWNoU2VyaWVzLl9yYWRpdXNfLCBlYWNoU2VyaWVzLl9zdGFydF8sIGVhY2hTZXJpZXMuX3N0YXJ0XyArIDIgKiBlYWNoU2VyaWVzLl9yb3NlX3Byb3BvcnRpb25fICogTWF0aC5QSSk7XHJcbiAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgY29udGV4dC5maWxsKCk7XHJcbiAgICBpZiAocm9zZU9wdGlvbi5ib3JkZXIgPT0gdHJ1ZSkge1xyXG4gICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG5cclxuICBpZiAob3B0cy5kYXRhTGFiZWwgIT09IGZhbHNlICYmIHByb2Nlc3MgPT09IDEpIHtcclxuICAgIHZhciB2YWxpZCA9IGZhbHNlO1xyXG4gICAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IHNlcmllcy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xyXG4gICAgICBpZiAoc2VyaWVzW2ldLmRhdGEgPiAwKSB7XHJcbiAgICAgICAgdmFsaWQgPSB0cnVlO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAodmFsaWQpIHtcclxuICAgICAgZHJhd1BpZVRleHQoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIHJhZGl1cywgY2VudGVyUG9zaXRpb24pO1xyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4ge1xyXG4gICAgY2VudGVyOiBjZW50ZXJQb3NpdGlvbixcclxuICAgIHJhZGl1czogcmFkaXVzLFxyXG4gICAgc2VyaWVzOiBzZXJpZXNcclxuICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3QXJjYmFyRGF0YVBvaW50cyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCkge1xyXG4gIHZhciBwcm9jZXNzID0gYXJndW1lbnRzLmxlbmd0aCA+IDQgJiYgYXJndW1lbnRzWzRdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbNF0gOiAxO1xyXG4gIHZhciBhcmNiYXJPcHRpb24gPSBhc3NpZ24oe30sIHtcclxuICAgIHN0YXJ0QW5nbGU6IDAuNzUsXHJcbiAgICBlbmRBbmdsZTogMC4yNSxcclxuICAgIHR5cGU6ICdkZWZhdWx0JyxcclxuICAgIHdpZHRoOiAxMiAsXHJcbiAgICBnYXA6IDIgLFxyXG4gICAgbGluZWFyVHlwZTogJ25vbmUnLFxyXG4gICAgY3VzdG9tQ29sb3I6IFtdLFxyXG4gIH0sIG9wdHMuZXh0cmEuYXJjYmFyKTtcclxuICBzZXJpZXMgPSBnZXRBcmNiYXJEYXRhUG9pbnRzKHNlcmllcywgYXJjYmFyT3B0aW9uLCBwcm9jZXNzKTtcclxuICB2YXIgY2VudGVyUG9zaXRpb247XHJcbiAgaWYgKGFyY2Jhck9wdGlvbi5jZW50ZXJYIHx8IGFyY2Jhck9wdGlvbi5jZW50ZXJZKSB7XHJcbiAgICBjZW50ZXJQb3NpdGlvbiA9IHtcclxuICAgICAgeDogYXJjYmFyT3B0aW9uLmNlbnRlclggPyBhcmNiYXJPcHRpb24uY2VudGVyWCA6IG9wdHMud2lkdGggLyAyLFxyXG4gICAgICB5OiBhcmNiYXJPcHRpb24uY2VudGVyWSA/IGFyY2Jhck9wdGlvbi5jZW50ZXJZIDogb3B0cy5oZWlnaHQgLyAyXHJcbiAgICB9O1xyXG4gIH0gZWxzZSB7XHJcbiAgICBjZW50ZXJQb3NpdGlvbiA9IHtcclxuICAgICAgeDogb3B0cy53aWR0aCAvIDIsXHJcbiAgICAgIHk6IG9wdHMuaGVpZ2h0IC8gMlxyXG4gICAgfTtcclxuICB9XHJcbiAgdmFyIHJhZGl1cztcclxuICBpZiAoYXJjYmFyT3B0aW9uLnJhZGl1cykge1xyXG4gICAgcmFkaXVzID0gYXJjYmFyT3B0aW9uLnJhZGl1cztcclxuICB9IGVsc2Uge1xyXG4gICAgcmFkaXVzID0gTWF0aC5taW4oY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSk7XHJcbiAgICByYWRpdXMgLT0gNSAqIG9wdHMucGl4O1xyXG4gICAgcmFkaXVzIC09IGFyY2Jhck9wdGlvbi53aWR0aCAvIDI7XHJcbiAgfVxyXG4gIGFyY2Jhck9wdGlvbi5jdXN0b21Db2xvciA9IGZpbGxDdXN0b21Db2xvcihhcmNiYXJPcHRpb24ubGluZWFyVHlwZSwgYXJjYmFyT3B0aW9uLmN1c3RvbUNvbG9yLCBzZXJpZXMsIGNvbmZpZyk7XHJcbiAgXHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXJpZXMubGVuZ3RoOyBpKyspIHtcclxuICAgIGxldCBlYWNoU2VyaWVzID0gc2VyaWVzW2ldO1xyXG4gICAgLy/og4zmma/popzoibJcclxuICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKGFyY2Jhck9wdGlvbi53aWR0aCAqIG9wdHMucGl4KTtcclxuICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoYXJjYmFyT3B0aW9uLmJhY2tncm91bmRDb2xvciB8fCAnI0U5RTlFOScpO1xyXG4gICAgY29udGV4dC5zZXRMaW5lQ2FwKCdyb3VuZCcpO1xyXG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgIGlmIChhcmNiYXJPcHRpb24udHlwZSA9PSAnZGVmYXVsdCcpIHtcclxuICAgICAgY29udGV4dC5hcmMoY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSwgcmFkaXVzIC0gKGFyY2Jhck9wdGlvbi53aWR0aCAqIG9wdHMucGl4ICsgYXJjYmFyT3B0aW9uLmdhcCAqIG9wdHMucGl4KSAqIGksIGFyY2Jhck9wdGlvbi5zdGFydEFuZ2xlICogTWF0aC5QSSwgYXJjYmFyT3B0aW9uLmVuZEFuZ2xlICogTWF0aC5QSSwgZmFsc2UpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29udGV4dC5hcmMoY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSwgcmFkaXVzIC0gKGFyY2Jhck9wdGlvbi53aWR0aCAqIG9wdHMucGl4ICsgYXJjYmFyT3B0aW9uLmdhcCAqIG9wdHMucGl4KSAqIGksIDAsIDIgKiBNYXRoLlBJLCBmYWxzZSk7XHJcbiAgICB9XHJcbiAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgLy/ov5vluqbmnaFcclxuICAgIHZhciBmaWxsQ29sb3IgPSBlYWNoU2VyaWVzLmNvbG9yXHJcbiAgICBpZihhcmNiYXJPcHRpb24ubGluZWFyVHlwZSA9PSAnY3VzdG9tJyl7XHJcbiAgICAgIHZhciBncmQgPSBjb250ZXh0LmNyZWF0ZUxpbmVhckdyYWRpZW50KGNlbnRlclBvc2l0aW9uLnggLSByYWRpdXMsIGNlbnRlclBvc2l0aW9uLnksIGNlbnRlclBvc2l0aW9uLnggKyByYWRpdXMsIGNlbnRlclBvc2l0aW9uLnkpO1xyXG4gICAgICBncmQuYWRkQ29sb3JTdG9wKDEsIGhleFRvUmdiKGFyY2Jhck9wdGlvbi5jdXN0b21Db2xvcltlYWNoU2VyaWVzLmxpbmVhckluZGV4XSwgMSkpXHJcbiAgICAgIGdyZC5hZGRDb2xvclN0b3AoMCwgaGV4VG9SZ2IoZWFjaFNlcmllcy5jb2xvciwgMSkpXHJcbiAgICAgIGZpbGxDb2xvciA9IGdyZDtcclxuICAgIH1cclxuICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKGFyY2Jhck9wdGlvbi53aWR0aCAqIG9wdHMucGl4KTtcclxuICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoZmlsbENvbG9yKTtcclxuICAgIGNvbnRleHQuc2V0TGluZUNhcCgncm91bmQnKTtcclxuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICBjb250ZXh0LmFyYyhjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55LCByYWRpdXMgLSAoYXJjYmFyT3B0aW9uLndpZHRoICogb3B0cy5waXggKyBhcmNiYXJPcHRpb24uZ2FwICogb3B0cy5waXgpICogaSwgYXJjYmFyT3B0aW9uLnN0YXJ0QW5nbGUgKiBNYXRoLlBJLCBlYWNoU2VyaWVzLl9wcm9wb3J0aW9uXyAqIE1hdGguUEksIGZhbHNlKTtcclxuICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgfVxyXG4gIGRyYXdSaW5nVGl0bGUob3B0cywgY29uZmlnLCBjb250ZXh0LCBjZW50ZXJQb3NpdGlvbik7XHJcbiAgcmV0dXJuIHtcclxuICAgIGNlbnRlcjogY2VudGVyUG9zaXRpb24sXHJcbiAgICByYWRpdXM6IHJhZGl1cyxcclxuICAgIHNlcmllczogc2VyaWVzXHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd0dhdWdlRGF0YVBvaW50cyhjYXRlZ29yaWVzLCBzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCkge1xyXG4gIHZhciBwcm9jZXNzID0gYXJndW1lbnRzLmxlbmd0aCA+IDUgJiYgYXJndW1lbnRzWzVdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbNV0gOiAxO1xyXG4gIHZhciBnYXVnZU9wdGlvbiA9IGFzc2lnbih7fSwge1xyXG4gICAgdHlwZTogJ2RlZmF1bHQnLFxyXG4gICAgc3RhcnRBbmdsZTogMC43NSxcclxuICAgIGVuZEFuZ2xlOiAwLjI1LFxyXG4gICAgd2lkdGg6IDE1LFxyXG4gICAgbGFiZWxPZmZzZXQ6MTMsXHJcbiAgICBzcGxpdExpbmU6IHtcclxuICAgICAgZml4UmFkaXVzOiAwLFxyXG4gICAgICBzcGxpdE51bWJlcjogMTAsXHJcbiAgICAgIHdpZHRoOiAxNSxcclxuICAgICAgY29sb3I6ICcjRkZGRkZGJyxcclxuICAgICAgY2hpbGROdW1iZXI6IDUsXHJcbiAgICAgIGNoaWxkV2lkdGg6IDVcclxuICAgIH0sXHJcbiAgICBwb2ludGVyOiB7XHJcbiAgICAgIHdpZHRoOiAxNSxcclxuICAgICAgY29sb3I6ICdhdXRvJ1xyXG4gICAgfVxyXG4gIH0sIG9wdHMuZXh0cmEuZ2F1Z2UpO1xyXG4gIGlmIChnYXVnZU9wdGlvbi5vbGRBbmdsZSA9PSB1bmRlZmluZWQpIHtcclxuICAgIGdhdWdlT3B0aW9uLm9sZEFuZ2xlID0gZ2F1Z2VPcHRpb24uc3RhcnRBbmdsZTtcclxuICB9XHJcbiAgaWYgKGdhdWdlT3B0aW9uLm9sZERhdGEgPT0gdW5kZWZpbmVkKSB7XHJcbiAgICBnYXVnZU9wdGlvbi5vbGREYXRhID0gMDtcclxuICB9XHJcbiAgY2F0ZWdvcmllcyA9IGdldEdhdWdlQXhpc1BvaW50cyhjYXRlZ29yaWVzLCBnYXVnZU9wdGlvbi5zdGFydEFuZ2xlLCBnYXVnZU9wdGlvbi5lbmRBbmdsZSk7XHJcbiAgdmFyIGNlbnRlclBvc2l0aW9uID0ge1xyXG4gICAgeDogb3B0cy53aWR0aCAvIDIsXHJcbiAgICB5OiBvcHRzLmhlaWdodCAvIDJcclxuICB9O1xyXG4gIHZhciByYWRpdXMgPSBNYXRoLm1pbihjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55KTtcclxuICByYWRpdXMgLT0gNSAqIG9wdHMucGl4O1xyXG4gIHJhZGl1cyAtPSBnYXVnZU9wdGlvbi53aWR0aCAvIDI7XHJcbiAgdmFyIGlubmVyUmFkaXVzID0gcmFkaXVzIC0gZ2F1Z2VPcHRpb24ud2lkdGg7XHJcbiAgdmFyIHRvdGFsQW5nbGUgPSAwO1xyXG4gIC8v5Yik5pat5Luq6KGo55uY55qE5qC35byP77yaZGVmYXVsdOeZvuW6puagt+W8j++8jHByb2dyZXNz5paw5qC35byPXHJcbiAgaWYgKGdhdWdlT3B0aW9uLnR5cGUgPT0gJ3Byb2dyZXNzJykge1xyXG4gICAgLy8jIyDnrKzkuIDmraXnlLvkuK3lv4PlnIblvaLog4zmma/lkozov5vluqbmnaHog4zmma9cclxuICAgIC8v5Lit5b+D5ZyG5b2i6IOM5pmvXHJcbiAgICB2YXIgcGllUmFkaXVzID0gcmFkaXVzIC0gZ2F1Z2VPcHRpb24ud2lkdGggKiAzO1xyXG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgIGxldCBncmFkaWVudCA9IGNvbnRleHQuY3JlYXRlTGluZWFyR3JhZGllbnQoY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSAtIHBpZVJhZGl1cywgY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSArIHBpZVJhZGl1cyk7XHJcbiAgICAvL+mFjee9rua4kOWPmOWhq+WFhe+8iOi1t+eCue+8muS4reW/g+eCueWQkeS4iuWHj+WNiuW+hO+8m+e7k+adn+eCueS4reW/g+eCueWQkeS4i+WKoOWNiuW+hO+8iVxyXG4gICAgZ3JhZGllbnQuYWRkQ29sb3JTdG9wKCcwJywgaGV4VG9SZ2Ioc2VyaWVzWzBdLmNvbG9yLCAwLjMpKTtcclxuICAgIGdyYWRpZW50LmFkZENvbG9yU3RvcCgnMS4wJywgaGV4VG9SZ2IoXCIjRkZGRkZGXCIsIDAuMSkpO1xyXG4gICAgY29udGV4dC5zZXRGaWxsU3R5bGUoZ3JhZGllbnQpO1xyXG4gICAgY29udGV4dC5hcmMoY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSwgcGllUmFkaXVzLCAwLCAyICogTWF0aC5QSSwgZmFsc2UpO1xyXG4gICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAvL+eUu+i/m+W6puadoeiDjOaZr1xyXG4gICAgY29udGV4dC5zZXRMaW5lV2lkdGgoZ2F1Z2VPcHRpb24ud2lkdGgpO1xyXG4gICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShoZXhUb1JnYihzZXJpZXNbMF0uY29sb3IsIDAuMykpO1xyXG4gICAgY29udGV4dC5zZXRMaW5lQ2FwKCdyb3VuZCcpO1xyXG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgIGNvbnRleHQuYXJjKGNlbnRlclBvc2l0aW9uLngsIGNlbnRlclBvc2l0aW9uLnksIGlubmVyUmFkaXVzLCBnYXVnZU9wdGlvbi5zdGFydEFuZ2xlICogTWF0aC5QSSwgZ2F1Z2VPcHRpb24uZW5kQW5nbGUgKiBNYXRoLlBJLCBmYWxzZSk7XHJcbiAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgLy8jIyDnrKzkuozmraXnlLvliLvluqbnur9cclxuICAgIHRvdGFsQW5nbGUgPSBnYXVnZU9wdGlvbi5zdGFydEFuZ2xlIC0gZ2F1Z2VPcHRpb24uZW5kQW5nbGUgKyAxO1xyXG4gICAgbGV0IHNwbGl0QW5nbGUgPSB0b3RhbEFuZ2xlIC8gZ2F1Z2VPcHRpb24uc3BsaXRMaW5lLnNwbGl0TnVtYmVyO1xyXG4gICAgbGV0IGNoaWxkQW5nbGUgPSB0b3RhbEFuZ2xlIC8gZ2F1Z2VPcHRpb24uc3BsaXRMaW5lLnNwbGl0TnVtYmVyIC8gZ2F1Z2VPcHRpb24uc3BsaXRMaW5lLmNoaWxkTnVtYmVyO1xyXG4gICAgbGV0IHN0YXJ0WCA9IC1yYWRpdXMgLSBnYXVnZU9wdGlvbi53aWR0aCAqIDAuNSAtIGdhdWdlT3B0aW9uLnNwbGl0TGluZS5maXhSYWRpdXM7XHJcbiAgICBsZXQgZW5kWCA9IC1yYWRpdXMgLSBnYXVnZU9wdGlvbi53aWR0aCAtIGdhdWdlT3B0aW9uLnNwbGl0TGluZS5maXhSYWRpdXMgKyBnYXVnZU9wdGlvbi5zcGxpdExpbmUud2lkdGg7XHJcbiAgICBjb250ZXh0LnNhdmUoKTtcclxuICAgIGNvbnRleHQudHJhbnNsYXRlKGNlbnRlclBvc2l0aW9uLngsIGNlbnRlclBvc2l0aW9uLnkpO1xyXG4gICAgY29udGV4dC5yb3RhdGUoKGdhdWdlT3B0aW9uLnN0YXJ0QW5nbGUgLSAxKSAqIE1hdGguUEkpO1xyXG4gICAgbGV0IGxlbiA9IGdhdWdlT3B0aW9uLnNwbGl0TGluZS5zcGxpdE51bWJlciAqIGdhdWdlT3B0aW9uLnNwbGl0TGluZS5jaGlsZE51bWJlciArIDE7XHJcbiAgICBsZXQgcHJvYyA9IHNlcmllc1swXS5kYXRhICogcHJvY2VzcztcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcclxuICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgLy/liLvluqbnur/pmo/ov5vluqblj5joibJcclxuICAgICAgaWYgKHByb2MgPiAoaSAvIGxlbikpIHtcclxuICAgICAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKGhleFRvUmdiKHNlcmllc1swXS5jb2xvciwgMSkpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoaGV4VG9SZ2Ioc2VyaWVzWzBdLmNvbG9yLCAwLjMpKTtcclxuICAgICAgfVxyXG4gICAgICBjb250ZXh0LnNldExpbmVXaWR0aCgzICogb3B0cy5waXgpO1xyXG4gICAgICBjb250ZXh0Lm1vdmVUbyhzdGFydFgsIDApO1xyXG4gICAgICBjb250ZXh0LmxpbmVUbyhlbmRYLCAwKTtcclxuICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgY29udGV4dC5yb3RhdGUoY2hpbGRBbmdsZSAqIE1hdGguUEkpO1xyXG4gICAgfVxyXG4gICAgY29udGV4dC5yZXN0b3JlKCk7XHJcbiAgICAvLyMjIOesrOS4ieatpeeUu+i/m+W6puadoVxyXG4gICAgc2VyaWVzID0gZ2V0QXJjYmFyRGF0YVBvaW50cyhzZXJpZXMsIGdhdWdlT3B0aW9uLCBwcm9jZXNzKTtcclxuICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKGdhdWdlT3B0aW9uLndpZHRoKTtcclxuICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoc2VyaWVzWzBdLmNvbG9yKTtcclxuICAgIGNvbnRleHQuc2V0TGluZUNhcCgncm91bmQnKTtcclxuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICBjb250ZXh0LmFyYyhjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55LCBpbm5lclJhZGl1cywgZ2F1Z2VPcHRpb24uc3RhcnRBbmdsZSAqIE1hdGguUEksIHNlcmllc1swXS5fcHJvcG9ydGlvbl8gKiBNYXRoLlBJLCBmYWxzZSk7XHJcbiAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgLy8jIyDnrKzlm5vmraXnlLvmjIfpkohcclxuICAgIGxldCBwb2ludGVyUmFkaXVzID0gcmFkaXVzIC0gZ2F1Z2VPcHRpb24ud2lkdGggKiAyLjU7XHJcbiAgICBjb250ZXh0LnNhdmUoKTtcclxuICAgIGNvbnRleHQudHJhbnNsYXRlKGNlbnRlclBvc2l0aW9uLngsIGNlbnRlclBvc2l0aW9uLnkpO1xyXG4gICAgY29udGV4dC5yb3RhdGUoKHNlcmllc1swXS5fcHJvcG9ydGlvbl8gLSAxKSAqIE1hdGguUEkpO1xyXG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKGdhdWdlT3B0aW9uLndpZHRoIC8gMyk7XHJcbiAgICBsZXQgZ3JhZGllbnQzID0gY29udGV4dC5jcmVhdGVMaW5lYXJHcmFkaWVudCgwLCAtcG9pbnRlclJhZGl1cyAqIDAuNiwgMCwgcG9pbnRlclJhZGl1cyAqIDAuNik7XHJcbiAgICBncmFkaWVudDMuYWRkQ29sb3JTdG9wKCcwJywgaGV4VG9SZ2IoJyNGRkZGRkYnLCAwKSk7XHJcbiAgICBncmFkaWVudDMuYWRkQ29sb3JTdG9wKCcwLjUnLCBoZXhUb1JnYihzZXJpZXNbMF0uY29sb3IsIDEpKTtcclxuICAgIGdyYWRpZW50My5hZGRDb2xvclN0b3AoJzEuMCcsIGhleFRvUmdiKCcjRkZGRkZGJywgMCkpO1xyXG4gICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShncmFkaWVudDMpO1xyXG4gICAgY29udGV4dC5hcmMoMCwgMCwgcG9pbnRlclJhZGl1cywgMC44NSAqIE1hdGguUEksIDEuMTUgKiBNYXRoLlBJLCBmYWxzZSk7XHJcbiAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKDEpO1xyXG4gICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShzZXJpZXNbMF0uY29sb3IpO1xyXG4gICAgY29udGV4dC5zZXRGaWxsU3R5bGUoc2VyaWVzWzBdLmNvbG9yKTtcclxuICAgIGNvbnRleHQubW92ZVRvKC1wb2ludGVyUmFkaXVzIC0gZ2F1Z2VPcHRpb24ud2lkdGggLyAzIC8gMiwgLTQpO1xyXG4gICAgY29udGV4dC5saW5lVG8oLXBvaW50ZXJSYWRpdXMgLSBnYXVnZU9wdGlvbi53aWR0aCAvIDMgLyAyIC0gNCwgMCk7XHJcbiAgICBjb250ZXh0LmxpbmVUbygtcG9pbnRlclJhZGl1cyAtIGdhdWdlT3B0aW9uLndpZHRoIC8gMyAvIDIsIDQpO1xyXG4gICAgY29udGV4dC5saW5lVG8oLXBvaW50ZXJSYWRpdXMgLSBnYXVnZU9wdGlvbi53aWR0aCAvIDMgLyAyLCAtNCk7XHJcbiAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgY29udGV4dC5maWxsKCk7XHJcbiAgICBjb250ZXh0LnJlc3RvcmUoKTtcclxuICAgIC8vZGVmYXVsdOeZvuW6puagt+W8j1xyXG4gIH0gZWxzZSB7XHJcbiAgICAvL+eUu+iDjOaZr1xyXG4gICAgY29udGV4dC5zZXRMaW5lV2lkdGgoZ2F1Z2VPcHRpb24ud2lkdGgpO1xyXG4gICAgY29udGV4dC5zZXRMaW5lQ2FwKCdidXR0Jyk7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNhdGVnb3JpZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgbGV0IGVhY2hDYXRlZ29yaWVzID0gY2F0ZWdvcmllc1tpXTtcclxuICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShlYWNoQ2F0ZWdvcmllcy5jb2xvcik7XHJcbiAgICAgIGNvbnRleHQuYXJjKGNlbnRlclBvc2l0aW9uLngsIGNlbnRlclBvc2l0aW9uLnksIHJhZGl1cywgZWFjaENhdGVnb3JpZXMuX3N0YXJ0QW5nbGVfICogTWF0aC5QSSwgZWFjaENhdGVnb3JpZXMuX2VuZEFuZ2xlXyAqIE1hdGguUEksIGZhbHNlKTtcclxuICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgIH1cclxuICAgIGNvbnRleHQuc2F2ZSgpO1xyXG4gICAgLy/nlLvliLvluqbnur9cclxuICAgIHRvdGFsQW5nbGUgPSBnYXVnZU9wdGlvbi5zdGFydEFuZ2xlIC0gZ2F1Z2VPcHRpb24uZW5kQW5nbGUgKyAxO1xyXG4gICAgbGV0IHNwbGl0QW5nbGUgPSB0b3RhbEFuZ2xlIC8gZ2F1Z2VPcHRpb24uc3BsaXRMaW5lLnNwbGl0TnVtYmVyO1xyXG4gICAgbGV0IGNoaWxkQW5nbGUgPSB0b3RhbEFuZ2xlIC8gZ2F1Z2VPcHRpb24uc3BsaXRMaW5lLnNwbGl0TnVtYmVyIC8gZ2F1Z2VPcHRpb24uc3BsaXRMaW5lLmNoaWxkTnVtYmVyO1xyXG4gICAgbGV0IHN0YXJ0WCA9IC1yYWRpdXMgLSBnYXVnZU9wdGlvbi53aWR0aCAqIDAuNSAtIGdhdWdlT3B0aW9uLnNwbGl0TGluZS5maXhSYWRpdXM7XHJcbiAgICBsZXQgZW5kWCA9IC1yYWRpdXMgLSBnYXVnZU9wdGlvbi53aWR0aCAqIDAuNSAtIGdhdWdlT3B0aW9uLnNwbGl0TGluZS5maXhSYWRpdXMgKyBnYXVnZU9wdGlvbi5zcGxpdExpbmUud2lkdGg7XHJcbiAgICBsZXQgY2hpbGRlbmRYID0gLXJhZGl1cyAtIGdhdWdlT3B0aW9uLndpZHRoICogMC41IC0gZ2F1Z2VPcHRpb24uc3BsaXRMaW5lLmZpeFJhZGl1cyArIGdhdWdlT3B0aW9uLnNwbGl0TGluZS5jaGlsZFdpZHRoO1xyXG4gICAgY29udGV4dC50cmFuc2xhdGUoY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSk7XHJcbiAgICBjb250ZXh0LnJvdGF0ZSgoZ2F1Z2VPcHRpb24uc3RhcnRBbmdsZSAtIDEpICogTWF0aC5QSSk7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGdhdWdlT3B0aW9uLnNwbGl0TGluZS5zcGxpdE51bWJlciArIDE7IGkrKykge1xyXG4gICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKGdhdWdlT3B0aW9uLnNwbGl0TGluZS5jb2xvcik7XHJcbiAgICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKDIgKiBvcHRzLnBpeCk7XHJcbiAgICAgIGNvbnRleHQubW92ZVRvKHN0YXJ0WCwgMCk7XHJcbiAgICAgIGNvbnRleHQubGluZVRvKGVuZFgsIDApO1xyXG4gICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICBjb250ZXh0LnJvdGF0ZShzcGxpdEFuZ2xlICogTWF0aC5QSSk7XHJcbiAgICB9XHJcbiAgICBjb250ZXh0LnJlc3RvcmUoKTtcclxuICAgIGNvbnRleHQuc2F2ZSgpO1xyXG4gICAgY29udGV4dC50cmFuc2xhdGUoY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSk7XHJcbiAgICBjb250ZXh0LnJvdGF0ZSgoZ2F1Z2VPcHRpb24uc3RhcnRBbmdsZSAtIDEpICogTWF0aC5QSSk7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGdhdWdlT3B0aW9uLnNwbGl0TGluZS5zcGxpdE51bWJlciAqIGdhdWdlT3B0aW9uLnNwbGl0TGluZS5jaGlsZE51bWJlciArIDE7IGkrKykge1xyXG4gICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKGdhdWdlT3B0aW9uLnNwbGl0TGluZS5jb2xvcik7XHJcbiAgICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKDEgKiBvcHRzLnBpeCk7XHJcbiAgICAgIGNvbnRleHQubW92ZVRvKHN0YXJ0WCwgMCk7XHJcbiAgICAgIGNvbnRleHQubGluZVRvKGNoaWxkZW5kWCwgMCk7XHJcbiAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgIGNvbnRleHQucm90YXRlKGNoaWxkQW5nbGUgKiBNYXRoLlBJKTtcclxuICAgIH1cclxuICAgIGNvbnRleHQucmVzdG9yZSgpO1xyXG4gICAgLy/nlLvmjIfpkohcclxuICAgIHNlcmllcyA9IGdldEdhdWdlRGF0YVBvaW50cyhzZXJpZXMsIGNhdGVnb3JpZXMsIGdhdWdlT3B0aW9uLCBwcm9jZXNzKTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2VyaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGxldCBlYWNoU2VyaWVzID0gc2VyaWVzW2ldO1xyXG4gICAgICBjb250ZXh0LnNhdmUoKTtcclxuICAgICAgY29udGV4dC50cmFuc2xhdGUoY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSk7XHJcbiAgICAgIGNvbnRleHQucm90YXRlKChlYWNoU2VyaWVzLl9wcm9wb3J0aW9uXyAtIDEpICogTWF0aC5QSSk7XHJcbiAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGVhY2hTZXJpZXMuY29sb3IpO1xyXG4gICAgICBjb250ZXh0Lm1vdmVUbyhnYXVnZU9wdGlvbi5wb2ludGVyLndpZHRoLCAwKTtcclxuICAgICAgY29udGV4dC5saW5lVG8oMCwgLWdhdWdlT3B0aW9uLnBvaW50ZXIud2lkdGggLyAyKTtcclxuICAgICAgY29udGV4dC5saW5lVG8oLWlubmVyUmFkaXVzLCAwKTtcclxuICAgICAgY29udGV4dC5saW5lVG8oMCwgZ2F1Z2VPcHRpb24ucG9pbnRlci53aWR0aCAvIDIpO1xyXG4gICAgICBjb250ZXh0LmxpbmVUbyhnYXVnZU9wdGlvbi5wb2ludGVyLndpZHRoLCAwKTtcclxuICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKCcjRkZGRkZGJyk7XHJcbiAgICAgIGNvbnRleHQuYXJjKDAsIDAsIGdhdWdlT3B0aW9uLnBvaW50ZXIud2lkdGggLyA2LCAwLCAyICogTWF0aC5QSSwgZmFsc2UpO1xyXG4gICAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgICAgY29udGV4dC5yZXN0b3JlKCk7XHJcbiAgICB9XHJcbiAgICBpZiAob3B0cy5kYXRhTGFiZWwgIT09IGZhbHNlKSB7XHJcbiAgICAgIGRyYXdHYXVnZUxhYmVsKGdhdWdlT3B0aW9uLCByYWRpdXMsIGNlbnRlclBvc2l0aW9uLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgfVxyXG4gIH1cclxuICAvL+eUu+S7quihqOebmOagh+mimO+8jOWJr+agh+mimFxyXG4gIGRyYXdSaW5nVGl0bGUob3B0cywgY29uZmlnLCBjb250ZXh0LCBjZW50ZXJQb3NpdGlvbik7XHJcbiAgaWYgKHByb2Nlc3MgPT09IDEgJiYgb3B0cy50eXBlID09PSAnZ2F1Z2UnKSB7XHJcbiAgICBvcHRzLmV4dHJhLmdhdWdlLm9sZEFuZ2xlID0gc2VyaWVzWzBdLl9wcm9wb3J0aW9uXztcclxuICAgIG9wdHMuZXh0cmEuZ2F1Z2Uub2xkRGF0YSA9IHNlcmllc1swXS5kYXRhO1xyXG4gIH1cclxuICByZXR1cm4ge1xyXG4gICAgY2VudGVyOiBjZW50ZXJQb3NpdGlvbixcclxuICAgIHJhZGl1czogcmFkaXVzLFxyXG4gICAgaW5uZXJSYWRpdXM6IGlubmVyUmFkaXVzLFxyXG4gICAgY2F0ZWdvcmllczogY2F0ZWdvcmllcyxcclxuICAgIHRvdGFsQW5nbGU6IHRvdGFsQW5nbGVcclxuICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3UmFkYXJEYXRhUG9pbnRzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KSB7XHJcbiAgdmFyIHByb2Nlc3MgPSBhcmd1bWVudHMubGVuZ3RoID4gNCAmJiBhcmd1bWVudHNbNF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s0XSA6IDE7XHJcbiAgdmFyIHJhZGFyT3B0aW9uID0gYXNzaWduKHt9LCB7XHJcbiAgICBncmlkQ29sb3I6ICcjY2NjY2NjJyxcclxuICAgIGdyaWRUeXBlOiAncmFkYXInLFxyXG4gICAgb3BhY2l0eTogMC4yLFxyXG4gICAgZ3JpZENvdW50OiAzLFxyXG4gICAgYm9yZGVyOmZhbHNlLFxyXG4gICAgYm9yZGVyV2lkdGg6MlxyXG4gIH0sIG9wdHMuZXh0cmEucmFkYXIpO1xyXG4gIHZhciBjb29yZGluYXRlQW5nbGUgPSBnZXRSYWRhckNvb3JkaW5hdGVTZXJpZXMob3B0cy5jYXRlZ29yaWVzLmxlbmd0aCk7XHJcbiAgdmFyIGNlbnRlclBvc2l0aW9uID0ge1xyXG4gICAgeDogb3B0cy5hcmVhWzNdICsgKG9wdHMud2lkdGggLSBvcHRzLmFyZWFbMV0gLSBvcHRzLmFyZWFbM10pIC8gMixcclxuICAgIHk6IG9wdHMuYXJlYVswXSArIChvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVswXSAtIG9wdHMuYXJlYVsyXSkgLyAyXHJcbiAgfTtcclxuICB2YXIgeHIgPSAob3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXSAtIG9wdHMuYXJlYVszXSkgLyAyXHJcbiAgdmFyIHlyID0gKG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzBdIC0gb3B0cy5hcmVhWzJdKSAvIDJcclxuICB2YXIgcmFkaXVzID0gTWF0aC5taW4oeHIgLSAoZ2V0TWF4VGV4dExpc3RMZW5ndGgob3B0cy5jYXRlZ29yaWVzLCBjb25maWcuZm9udFNpemUsIGNvbnRleHQpICsgY29uZmlnLnJhZGFyTGFiZWxUZXh0TWFyZ2luKSwgeXIgLSBjb25maWcucmFkYXJMYWJlbFRleHRNYXJnaW4pO1xyXG4gIHJhZGl1cyAtPSBjb25maWcucmFkYXJMYWJlbFRleHRNYXJnaW4gKiBvcHRzLnBpeDtcclxuICAvLyDnlLvliIblibLnur9cclxuICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gIGNvbnRleHQuc2V0TGluZVdpZHRoKDEgKiBvcHRzLnBpeCk7XHJcbiAgY29udGV4dC5zZXRTdHJva2VTdHlsZShyYWRhck9wdGlvbi5ncmlkQ29sb3IpO1xyXG4gIGNvb3JkaW5hdGVBbmdsZS5mb3JFYWNoKGZ1bmN0aW9uKGFuZ2xlKSB7XHJcbiAgICB2YXIgcG9zID0gY29udmVydENvb3JkaW5hdGVPcmlnaW4ocmFkaXVzICogTWF0aC5jb3MoYW5nbGUpLCByYWRpdXMgKiBNYXRoLnNpbihhbmdsZSksIGNlbnRlclBvc2l0aW9uKTtcclxuICAgIGNvbnRleHQubW92ZVRvKGNlbnRlclBvc2l0aW9uLngsIGNlbnRlclBvc2l0aW9uLnkpO1xyXG4gICAgY29udGV4dC5saW5lVG8ocG9zLngsIHBvcy55KTtcclxuICB9KTtcclxuICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgXHJcbiAgLy8g55S76IOM5pmv572R5qC8XHJcbiAgdmFyIF9sb29wID0gZnVuY3Rpb24gX2xvb3AoaSkge1xyXG4gICAgdmFyIHN0YXJ0UG9zID0ge307XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5zZXRMaW5lV2lkdGgoMSAqIG9wdHMucGl4KTtcclxuICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUocmFkYXJPcHRpb24uZ3JpZENvbG9yKTtcclxuICAgIGlmIChyYWRhck9wdGlvbi5ncmlkVHlwZSA9PSAncmFkYXInKSB7XHJcbiAgICAgIGNvb3JkaW5hdGVBbmdsZS5mb3JFYWNoKGZ1bmN0aW9uKGFuZ2xlLCBpbmRleCkge1xyXG4gICAgICAgIHZhciBwb3MgPSBjb252ZXJ0Q29vcmRpbmF0ZU9yaWdpbihyYWRpdXMgLyByYWRhck9wdGlvbi5ncmlkQ291bnQgKiBpICogTWF0aC5jb3MoYW5nbGUpLCByYWRpdXMgL1xyXG4gICAgICAgICAgcmFkYXJPcHRpb24uZ3JpZENvdW50ICogaSAqIE1hdGguc2luKGFuZ2xlKSwgY2VudGVyUG9zaXRpb24pO1xyXG4gICAgICAgIGlmIChpbmRleCA9PT0gMCkge1xyXG4gICAgICAgICAgc3RhcnRQb3MgPSBwb3M7XHJcbiAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhwb3MueCwgcG9zLnkpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhwb3MueCwgcG9zLnkpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGNvbnRleHQubGluZVRvKHN0YXJ0UG9zLngsIHN0YXJ0UG9zLnkpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdmFyIHBvcyA9IGNvbnZlcnRDb29yZGluYXRlT3JpZ2luKHJhZGl1cyAvIHJhZGFyT3B0aW9uLmdyaWRDb3VudCAqIGkgKiBNYXRoLmNvcygxLjUpLCByYWRpdXMgLyByYWRhck9wdGlvbi5ncmlkQ291bnQgKiBpICogTWF0aC5zaW4oMS41KSwgY2VudGVyUG9zaXRpb24pO1xyXG4gICAgICBjb250ZXh0LmFyYyhjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55LCBjZW50ZXJQb3NpdGlvbi55IC0gcG9zLnksIDAsIDIgKiBNYXRoLlBJLCBmYWxzZSk7XHJcbiAgICB9XHJcbiAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICB9O1xyXG4gIGZvciAodmFyIGkgPSAxOyBpIDw9IHJhZGFyT3B0aW9uLmdyaWRDb3VudDsgaSsrKSB7XHJcbiAgICBfbG9vcChpKTtcclxuICB9XHJcbiAgdmFyIHJhZGFyRGF0YVBvaW50cyA9IGdldFJhZGFyRGF0YVBvaW50cyhjb29yZGluYXRlQW5nbGUsIGNlbnRlclBvc2l0aW9uLCByYWRpdXMsIHNlcmllcywgb3B0cywgcHJvY2Vzcyk7XHJcbiAgcmFkYXJEYXRhUG9pbnRzLmZvckVhY2goZnVuY3Rpb24oZWFjaFNlcmllcywgc2VyaWVzSW5kZXgpIHtcclxuICAgIC8vIOe7mOWItuWMuuWfn+aVsOaNrlxyXG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKHJhZGFyT3B0aW9uLmJvcmRlcldpZHRoICogb3B0cy5waXgpO1xyXG4gICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShlYWNoU2VyaWVzLmNvbG9yKTtcclxuICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGhleFRvUmdiKGVhY2hTZXJpZXMuY29sb3IsIHJhZGFyT3B0aW9uLm9wYWNpdHkpKTtcclxuICAgIGVhY2hTZXJpZXMuZGF0YS5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICAgIGlmIChpbmRleCA9PT0gMCkge1xyXG4gICAgICAgIGNvbnRleHQubW92ZVRvKGl0ZW0ucG9zaXRpb24ueCwgaXRlbS5wb3NpdGlvbi55KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLnBvc2l0aW9uLngsIGl0ZW0ucG9zaXRpb24ueSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgaWYocmFkYXJPcHRpb24uYm9yZGVyID09PSB0cnVlKXtcclxuICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgIH1cclxuICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICBpZiAob3B0cy5kYXRhUG9pbnRTaGFwZSAhPT0gZmFsc2UpIHtcclxuICAgICAgdmFyIHBvaW50cyA9IGVhY2hTZXJpZXMuZGF0YS5tYXAoZnVuY3Rpb24oaXRlbSkge1xyXG4gICAgICAgIHJldHVybiBpdGVtLnBvc2l0aW9uO1xyXG4gICAgICB9KTtcclxuICAgICAgZHJhd1BvaW50U2hhcGUocG9pbnRzLCBlYWNoU2VyaWVzLmNvbG9yLCBlYWNoU2VyaWVzLnBvaW50U2hhcGUsIGNvbnRleHQsIG9wdHMpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG4gIC8vIGRyYXcgbGFiZWwgdGV4dFxyXG4gIGRyYXdSYWRhckxhYmVsKGNvb3JkaW5hdGVBbmdsZSwgcmFkaXVzLCBjZW50ZXJQb3NpdGlvbiwgb3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICBcclxuICAvLyBkcmF3IGRhdGFMYWJlbFxyXG4gIGlmIChvcHRzLmRhdGFMYWJlbCAhPT0gZmFsc2UgJiYgcHJvY2VzcyA9PT0gMSkge1xyXG4gICAgcmFkYXJEYXRhUG9pbnRzLmZvckVhY2goZnVuY3Rpb24oZWFjaFNlcmllcywgc2VyaWVzSW5kZXgpIHtcclxuICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgdmFyIGZvbnRTaXplID0gZWFjaFNlcmllcy50ZXh0U2l6ZSAqIG9wdHMucGl4IHx8IGNvbmZpZy5mb250U2l6ZTtcclxuICAgICAgY29udGV4dC5zZXRGb250U2l6ZShmb250U2l6ZSk7XHJcbiAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGVhY2hTZXJpZXMudGV4dENvbG9yIHx8IG9wdHMuZm9udENvbG9yKTtcclxuICAgICAgZWFjaFNlcmllcy5kYXRhLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgICAgICAvL+WmguaenOaYr+S4reW/g+eCueWeguebtOeahOS4iuS4i+eCueS9jVxyXG4gICAgICAgIGlmKE1hdGguYWJzKGl0ZW0ucG9zaXRpb24ueCAtIGNlbnRlclBvc2l0aW9uLngpPDIpe1xyXG4gICAgICAgICAgLy/lpoLmnpzlnKjkuIrpnaJcclxuICAgICAgICAgIGlmKGl0ZW0ucG9zaXRpb24ueSA8IGNlbnRlclBvc2l0aW9uLnkpe1xyXG4gICAgICAgICAgICBjb250ZXh0LnNldFRleHRBbGlnbignY2VudGVyJyk7XHJcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbFRleHQoaXRlbS52YWx1ZSwgaXRlbS5wb3NpdGlvbi54LCBpdGVtLnBvc2l0aW9uLnkgLSA0KTtcclxuICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICBjb250ZXh0LnNldFRleHRBbGlnbignY2VudGVyJyk7XHJcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbFRleHQoaXRlbS52YWx1ZSwgaXRlbS5wb3NpdGlvbi54LCBpdGVtLnBvc2l0aW9uLnkgKyBmb250U2l6ZSArIDIpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgLy/lpoLmnpzlnKjlt6bkvqdcclxuICAgICAgICAgIGlmKGl0ZW0ucG9zaXRpb24ueCA8IGNlbnRlclBvc2l0aW9uLngpe1xyXG4gICAgICAgICAgICBjb250ZXh0LnNldFRleHRBbGlnbigncmlnaHQnKTtcclxuICAgICAgICAgICAgY29udGV4dC5maWxsVGV4dChpdGVtLnZhbHVlLCBpdGVtLnBvc2l0aW9uLnggLSA0LCBpdGVtLnBvc2l0aW9uLnkgKyBmb250U2l6ZSAvIDIgLSAyKTtcclxuICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICBjb250ZXh0LnNldFRleHRBbGlnbignbGVmdCcpO1xyXG4gICAgICAgICAgICBjb250ZXh0LmZpbGxUZXh0KGl0ZW0udmFsdWUsIGl0ZW0ucG9zaXRpb24ueCArIDQsIGl0ZW0ucG9zaXRpb24ueSArIGZvbnRTaXplIC8gMiAtIDIpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICB9KTtcclxuICAgIGNvbnRleHQuc2V0VGV4dEFsaWduKCdsZWZ0Jyk7XHJcbiAgfVxyXG4gIFxyXG4gIHJldHVybiB7XHJcbiAgICBjZW50ZXI6IGNlbnRlclBvc2l0aW9uLFxyXG4gICAgcmFkaXVzOiByYWRpdXMsXHJcbiAgICBhbmdsZUxpc3Q6IGNvb3JkaW5hdGVBbmdsZVxyXG4gIH07XHJcbn1cclxuXHJcbmZ1bmN0aW9uIG5vcm1hbEludChtaW4sIG1heCwgaXRlcikge1xyXG4gIGl0ZXIgPSBpdGVyID09IDAgPyAxIDogaXRlcjtcclxuICB2YXIgYXJyID0gW107XHJcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBpdGVyOyBpKyspIHtcclxuICAgIGFycltpXSA9IE1hdGgucmFuZG9tKCk7XHJcbiAgfTtcclxuICByZXR1cm4gTWF0aC5mbG9vcihhcnIucmVkdWNlKGZ1bmN0aW9uKGksIGopIHtcclxuICAgIHJldHVybiBpICsgalxyXG4gIH0pIC8gaXRlciAqIChtYXggLSBtaW4pKSArIG1pbjtcclxufTtcclxuXHJcbmZ1bmN0aW9uIGNvbGxpc2lvbk5ldyhhcmVhLCBwb2ludHMsIHdpZHRoLCBoZWlnaHQpIHtcclxuICB2YXIgaXNJbiA9IGZhbHNlO1xyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgcG9pbnRzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBpZiAocG9pbnRzW2ldLmFyZWEpIHtcclxuICAgICAgaWYgKGFyZWFbM10gPCBwb2ludHNbaV0uYXJlYVsxXSB8fCBhcmVhWzBdID4gcG9pbnRzW2ldLmFyZWFbMl0gfHwgYXJlYVsxXSA+IHBvaW50c1tpXS5hcmVhWzNdIHx8IGFyZWFbMl0gPCBwb2ludHNbaV0uYXJlYVswXSkge1xyXG4gICAgICAgIGlmIChhcmVhWzBdIDwgMCB8fCBhcmVhWzFdIDwgMCB8fCBhcmVhWzJdID4gd2lkdGggfHwgYXJlYVszXSA+IGhlaWdodCkge1xyXG4gICAgICAgICAgaXNJbiA9IHRydWU7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaXNJbiA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpc0luID0gdHJ1ZTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gaXNJbjtcclxufTtcclxuXHJcbmZ1bmN0aW9uIGdldEJvdW5kaW5nQm94KGRhdGEpIHtcclxuICB2YXIgYm91bmRzID0ge30sY29vcmRzO1xyXG4gIGJvdW5kcy54TWluID0gMTgwO1xyXG4gIGJvdW5kcy54TWF4ID0gMDtcclxuICBib3VuZHMueU1pbiA9IDkwO1xyXG4gIGJvdW5kcy55TWF4ID0gMFxyXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgZGF0YS5sZW5ndGg7IGkrKykge1xyXG4gICAgdmFyIGNvb3JkYSA9IGRhdGFbaV0uZ2VvbWV0cnkuY29vcmRpbmF0ZXNcclxuICAgIGZvciAodmFyIGsgPSAwOyBrIDwgY29vcmRhLmxlbmd0aDsgaysrKSB7XHJcbiAgICAgIGNvb3JkcyA9IGNvb3JkYVtrXTtcclxuICAgICAgaWYgKGNvb3Jkcy5sZW5ndGggPT0gMSkge1xyXG4gICAgICAgIGNvb3JkcyA9IGNvb3Jkc1swXVxyXG4gICAgICB9XHJcbiAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgY29vcmRzLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgdmFyIGxvbmdpdHVkZSA9IGNvb3Jkc1tqXVswXTtcclxuICAgICAgICB2YXIgbGF0aXR1ZGUgPSBjb29yZHNbal1bMV07XHJcbiAgICAgICAgdmFyIHBvaW50ID0ge1xyXG4gICAgICAgICAgeDogbG9uZ2l0dWRlLFxyXG4gICAgICAgICAgeTogbGF0aXR1ZGVcclxuICAgICAgICB9XHJcbiAgICAgICAgYm91bmRzLnhNaW4gPSBib3VuZHMueE1pbiA8IHBvaW50LnggPyBib3VuZHMueE1pbiA6IHBvaW50Lng7XHJcbiAgICAgICAgYm91bmRzLnhNYXggPSBib3VuZHMueE1heCA+IHBvaW50LnggPyBib3VuZHMueE1heCA6IHBvaW50Lng7XHJcbiAgICAgICAgYm91bmRzLnlNaW4gPSBib3VuZHMueU1pbiA8IHBvaW50LnkgPyBib3VuZHMueU1pbiA6IHBvaW50Lnk7XHJcbiAgICAgICAgYm91bmRzLnlNYXggPSBib3VuZHMueU1heCA+IHBvaW50LnkgPyBib3VuZHMueU1heCA6IHBvaW50Lnk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIGJvdW5kcztcclxufVxyXG5cclxuZnVuY3Rpb24gY29vcmRpbmF0ZVRvUG9pbnQobGF0aXR1ZGUsIGxvbmdpdHVkZSwgYm91bmRzLCBzY2FsZSwgeG9mZnNldCwgeW9mZnNldCkge1xyXG4gIHJldHVybiB7XHJcbiAgICB4OiAobG9uZ2l0dWRlIC0gYm91bmRzLnhNaW4pICogc2NhbGUgKyB4b2Zmc2V0LFxyXG4gICAgeTogKGJvdW5kcy55TWF4IC0gbGF0aXR1ZGUpICogc2NhbGUgKyB5b2Zmc2V0XHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gcG9pbnRUb0Nvb3JkaW5hdGUocG9pbnRZLCBwb2ludFgsIGJvdW5kcywgc2NhbGUsIHhvZmZzZXQsIHlvZmZzZXQpIHtcclxuICByZXR1cm4ge1xyXG4gICAgeDogKHBvaW50WCAtIHhvZmZzZXQpIC8gc2NhbGUgKyBib3VuZHMueE1pbixcclxuICAgIHk6IGJvdW5kcy55TWF4IC0gKHBvaW50WSAtIHlvZmZzZXQpIC8gc2NhbGVcclxuICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBpc1JheUludGVyc2VjdHNTZWdtZW50KHBvaSwgc19wb2ksIGVfcG9pKSB7XHJcbiAgaWYgKHNfcG9pWzFdID09IGVfcG9pWzFdKSB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG4gIGlmIChzX3BvaVsxXSA+IHBvaVsxXSAmJiBlX3BvaVsxXSA+IHBvaVsxXSkge1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuICBpZiAoc19wb2lbMV0gPCBwb2lbMV0gJiYgZV9wb2lbMV0gPCBwb2lbMV0pIHtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbiAgaWYgKHNfcG9pWzFdID09IHBvaVsxXSAmJiBlX3BvaVsxXSA+IHBvaVsxXSkge1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuICBpZiAoZV9wb2lbMV0gPT0gcG9pWzFdICYmIHNfcG9pWzFdID4gcG9pWzFdKSB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG4gIGlmIChzX3BvaVswXSA8IHBvaVswXSAmJiBlX3BvaVsxXSA8IHBvaVsxXSkge1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuICBsZXQgeHNlZyA9IGVfcG9pWzBdIC0gKGVfcG9pWzBdIC0gc19wb2lbMF0pICogKGVfcG9pWzFdIC0gcG9pWzFdKSAvIChlX3BvaVsxXSAtIHNfcG9pWzFdKTtcclxuICBpZiAoeHNlZyA8IHBvaVswXSkge1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH0gZWxzZSB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzUG9pV2l0aGluUG9seShwb2ksIHBvbHksIG1lcmNhdG9yKSB7XHJcbiAgbGV0IHNpbnNjID0gMDtcclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHBvbHkubGVuZ3RoOyBpKyspIHtcclxuICAgIGxldCBlcG9seSA9IHBvbHlbaV1bMF07XHJcbiAgICBpZiAocG9seS5sZW5ndGggPT0gMSkge1xyXG4gICAgICBlcG9seSA9IHBvbHlbaV1bMF1cclxuICAgIH1cclxuICAgIGZvciAobGV0IGogPSAwOyBqIDwgZXBvbHkubGVuZ3RoIC0gMTsgaisrKSB7XHJcbiAgICAgIGxldCBzX3BvaSA9IGVwb2x5W2pdO1xyXG4gICAgICBsZXQgZV9wb2kgPSBlcG9seVtqICsgMV07XHJcbiAgICAgIGlmIChtZXJjYXRvcikge1xyXG4gICAgICAgIHNfcG9pID0gbG9ubGF0Mm1lcmNhdG9yKGVwb2x5W2pdWzBdLCBlcG9seVtqXVsxXSk7XHJcbiAgICAgICAgZV9wb2kgPSBsb25sYXQybWVyY2F0b3IoZXBvbHlbaiArIDFdWzBdLCBlcG9seVtqICsgMV1bMV0pO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChpc1JheUludGVyc2VjdHNTZWdtZW50KHBvaSwgc19wb2ksIGVfcG9pKSkge1xyXG4gICAgICAgIHNpbnNjICs9IDE7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgaWYgKHNpbnNjICUgMiA9PSAxKSB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9IGVsc2Uge1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxufVxyXG5cclxuXHJcbmZ1bmN0aW9uIGRyYXdNYXBEYXRhUG9pbnRzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KSB7XHJcbiAgdmFyIG1hcE9wdGlvbiA9IGFzc2lnbih7fSwge1xyXG4gICAgYm9yZGVyOiB0cnVlLFxyXG4gICAgbWVyY2F0b3I6IGZhbHNlLFxyXG4gICAgYm9yZGVyV2lkdGg6IDEsXHJcbiAgICBib3JkZXJDb2xvcjogJyM2NjY2NjYnLFxyXG4gICAgZmlsbE9wYWNpdHk6IDAuNixcclxuICAgIGFjdGl2ZUJvcmRlckNvbG9yOiAnI2YwNDg2NCcsXHJcbiAgICBhY3RpdmVGaWxsQ29sb3I6ICcjZmFjYzE0JyxcclxuICAgIGFjdGl2ZUZpbGxPcGFjaXR5OiAxXHJcbiAgfSwgb3B0cy5leHRyYS5tYXApO1xyXG4gIHZhciBjb29yZHMsIHBvaW50O1xyXG4gIHZhciBkYXRhID0gc2VyaWVzO1xyXG4gIHZhciBib3VuZHMgPSBnZXRCb3VuZGluZ0JveChkYXRhKTtcclxuICBpZiAobWFwT3B0aW9uLm1lcmNhdG9yKSB7XHJcbiAgICB2YXIgbWF4ID0gbG9ubGF0Mm1lcmNhdG9yKGJvdW5kcy54TWF4LCBib3VuZHMueU1heClcclxuICAgIHZhciBtaW4gPSBsb25sYXQybWVyY2F0b3IoYm91bmRzLnhNaW4sIGJvdW5kcy55TWluKVxyXG4gICAgYm91bmRzLnhNYXggPSBtYXhbMF1cclxuICAgIGJvdW5kcy55TWF4ID0gbWF4WzFdXHJcbiAgICBib3VuZHMueE1pbiA9IG1pblswXVxyXG4gICAgYm91bmRzLnlNaW4gPSBtaW5bMV1cclxuICB9XHJcbiAgdmFyIHhTY2FsZSA9IG9wdHMud2lkdGggLyBNYXRoLmFicyhib3VuZHMueE1heCAtIGJvdW5kcy54TWluKTtcclxuICB2YXIgeVNjYWxlID0gb3B0cy5oZWlnaHQgLyBNYXRoLmFicyhib3VuZHMueU1heCAtIGJvdW5kcy55TWluKTtcclxuICB2YXIgc2NhbGUgPSB4U2NhbGUgPCB5U2NhbGUgPyB4U2NhbGUgOiB5U2NhbGU7XHJcbiAgdmFyIHhvZmZzZXQgPSBvcHRzLndpZHRoIC8gMiAtIE1hdGguYWJzKGJvdW5kcy54TWF4IC0gYm91bmRzLnhNaW4pIC8gMiAqIHNjYWxlO1xyXG4gIHZhciB5b2Zmc2V0ID0gb3B0cy5oZWlnaHQgLyAyIC0gTWF0aC5hYnMoYm91bmRzLnlNYXggLSBib3VuZHMueU1pbikgLyAyICogc2NhbGU7XHJcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5zZXRMaW5lV2lkdGgobWFwT3B0aW9uLmJvcmRlcldpZHRoICogb3B0cy5waXgpO1xyXG4gICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShtYXBPcHRpb24uYm9yZGVyQ29sb3IpO1xyXG4gICAgY29udGV4dC5zZXRGaWxsU3R5bGUoaGV4VG9SZ2Ioc2VyaWVzW2ldLmNvbG9yLCBtYXBPcHRpb24uZmlsbE9wYWNpdHkpKTtcclxuICAgIGlmIChvcHRzLnRvb2x0aXApIHtcclxuICAgICAgaWYgKG9wdHMudG9vbHRpcC5pbmRleCA9PSBpKSB7XHJcbiAgICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShtYXBPcHRpb24uYWN0aXZlQm9yZGVyQ29sb3IpO1xyXG4gICAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGhleFRvUmdiKG1hcE9wdGlvbi5hY3RpdmVGaWxsQ29sb3IsIG1hcE9wdGlvbi5hY3RpdmVGaWxsT3BhY2l0eSkpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB2YXIgY29vcmRhID0gZGF0YVtpXS5nZW9tZXRyeS5jb29yZGluYXRlc1xyXG4gICAgZm9yICh2YXIgayA9IDA7IGsgPCBjb29yZGEubGVuZ3RoOyBrKyspIHtcclxuICAgICAgY29vcmRzID0gY29vcmRhW2tdO1xyXG4gICAgICBpZiAoY29vcmRzLmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgICAgY29vcmRzID0gY29vcmRzWzBdXHJcbiAgICAgIH1cclxuICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBjb29yZHMubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICB2YXIgZ2Fvc2kgPSBBcnJheSgyKTtcclxuICAgICAgICBpZiAobWFwT3B0aW9uLm1lcmNhdG9yKSB7XHJcbiAgICAgICAgICBnYW9zaSA9IGxvbmxhdDJtZXJjYXRvcihjb29yZHNbal1bMF0sIGNvb3Jkc1tqXVsxXSlcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgZ2Fvc2kgPSBjb29yZHNbal1cclxuICAgICAgICB9XHJcbiAgICAgICAgcG9pbnQgPSBjb29yZGluYXRlVG9Qb2ludChnYW9zaVsxXSwgZ2Fvc2lbMF0sIGJvdW5kcywgc2NhbGUsIHhvZmZzZXQsIHlvZmZzZXQpXHJcbiAgICAgICAgaWYgKGogPT09IDApIHtcclxuICAgICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhwb2ludC54LCBwb2ludC55KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29udGV4dC5saW5lVG8ocG9pbnQueCwgcG9pbnQueSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICBpZiAobWFwT3B0aW9uLmJvcmRlciA9PSB0cnVlKSB7XHJcbiAgICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKG9wdHMuZGF0YUxhYmVsID09IHRydWUpIHtcclxuICAgICAgdmFyIGNlbnRlclBvaW50ID0gZGF0YVtpXS5wcm9wZXJ0aWVzLmNlbnRyb2lkO1xyXG4gICAgICBpZiAoY2VudGVyUG9pbnQpIHtcclxuICAgICAgICBpZiAobWFwT3B0aW9uLm1lcmNhdG9yKSB7XHJcbiAgICAgICAgICBjZW50ZXJQb2ludCA9IGxvbmxhdDJtZXJjYXRvcihkYXRhW2ldLnByb3BlcnRpZXMuY2VudHJvaWRbMF0sIGRhdGFbaV0ucHJvcGVydGllcy5jZW50cm9pZFsxXSlcclxuICAgICAgICB9XHJcbiAgICAgICAgcG9pbnQgPSBjb29yZGluYXRlVG9Qb2ludChjZW50ZXJQb2ludFsxXSwgY2VudGVyUG9pbnRbMF0sIGJvdW5kcywgc2NhbGUsIHhvZmZzZXQsIHlvZmZzZXQpO1xyXG4gICAgICAgIGxldCBmb250U2l6ZSA9IGRhdGFbaV0udGV4dFNpemUgKiBvcHRzLnBpeCB8fCBjb25maWcuZm9udFNpemU7XHJcbiAgICAgICAgbGV0IHRleHQgPSBkYXRhW2ldLnByb3BlcnRpZXMubmFtZTtcclxuICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgIGNvbnRleHQuc2V0Rm9udFNpemUoZm9udFNpemUpXHJcbiAgICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoZGF0YVtpXS50ZXh0Q29sb3IgfHwgb3B0cy5mb250Q29sb3IpXHJcbiAgICAgICAgY29udGV4dC5maWxsVGV4dCh0ZXh0LCBwb2ludC54IC0gbWVhc3VyZVRleHQodGV4dCwgZm9udFNpemUsIGNvbnRleHQpIC8gMiwgcG9pbnQueSArIGZvbnRTaXplIC8gMik7XHJcbiAgICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIG9wdHMuY2hhcnREYXRhLm1hcERhdGEgPSB7XHJcbiAgICBib3VuZHM6IGJvdW5kcyxcclxuICAgIHNjYWxlOiBzY2FsZSxcclxuICAgIHhvZmZzZXQ6IHhvZmZzZXQsXHJcbiAgICB5b2Zmc2V0OiB5b2Zmc2V0LFxyXG4gICAgbWVyY2F0b3I6IG1hcE9wdGlvbi5tZXJjYXRvclxyXG4gIH1cclxuICBkcmF3VG9vbFRpcEJyaWRnZShvcHRzLCBjb25maWcsIGNvbnRleHQsIDEpO1xyXG4gIGNvbnRleHQuZHJhdygpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRXb3JkQ2xvdWRQb2ludChvcHRzLCB0eXBlLCBjb250ZXh0KSB7XHJcbiAgbGV0IHBvaW50cyA9IG9wdHMuc2VyaWVzO1xyXG4gIHN3aXRjaCAodHlwZSkge1xyXG4gICAgY2FzZSAnbm9ybWFsJzpcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwb2ludHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBsZXQgdGV4dCA9IHBvaW50c1tpXS5uYW1lO1xyXG4gICAgICAgIGxldCB0SGVpZ2h0ID0gcG9pbnRzW2ldLnRleHRTaXplICogb3B0cy5waXg7XHJcbiAgICAgICAgbGV0IHRXaWR0aCA9IG1lYXN1cmVUZXh0KHRleHQsIHRIZWlnaHQsIGNvbnRleHQpO1xyXG4gICAgICAgIGxldCB4LCB5O1xyXG4gICAgICAgIGxldCBhcmVhO1xyXG4gICAgICAgIGxldCBicmVha251bSA9IDA7XHJcbiAgICAgICAgd2hpbGUgKHRydWUpIHtcclxuICAgICAgICAgIGJyZWFrbnVtKys7XHJcbiAgICAgICAgICB4ID0gbm9ybWFsSW50KC1vcHRzLndpZHRoIC8gMiwgb3B0cy53aWR0aCAvIDIsIDUpIC0gdFdpZHRoIC8gMjtcclxuICAgICAgICAgIHkgPSBub3JtYWxJbnQoLW9wdHMuaGVpZ2h0IC8gMiwgb3B0cy5oZWlnaHQgLyAyLCA1KSArIHRIZWlnaHQgLyAyO1xyXG4gICAgICAgICAgYXJlYSA9IFt4IC0gNSArIG9wdHMud2lkdGggLyAyLCB5IC0gNSAtIHRIZWlnaHQgKyBvcHRzLmhlaWdodCAvIDIsIHggKyB0V2lkdGggKyA1ICsgb3B0cy53aWR0aCAvIDIsIHkgKyA1ICtcclxuICAgICAgICAgICAgb3B0cy5oZWlnaHQgLyAyXHJcbiAgICAgICAgICBdO1xyXG4gICAgICAgICAgbGV0IGlzQ29sbGlzaW9uID0gY29sbGlzaW9uTmV3KGFyZWEsIHBvaW50cywgb3B0cy53aWR0aCwgb3B0cy5oZWlnaHQpO1xyXG4gICAgICAgICAgaWYgKCFpc0NvbGxpc2lvbikgYnJlYWs7XHJcbiAgICAgICAgICBpZiAoYnJlYWtudW0gPT0gMTAwMCkge1xyXG4gICAgICAgICAgICBhcmVhID0gWy0xMDAsIC0xMDAsIC0xMDAsIC0xMDBdO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICAgIHBvaW50c1tpXS5hcmVhID0gYXJlYTtcclxuICAgICAgfVxyXG4gICAgICBicmVhaztcclxuICAgIGNhc2UgJ3ZlcnRpY2FsJzpcclxuICAgICAgZnVuY3Rpb24gU3BpbigpIHtcclxuICAgICAgICAvL+iOt+WPluWdh+WMgOmaj+acuuWAvO+8jOaYr+WQpuaXi+i9rO+8jOaXi+i9rOeahOamgueOh+S4uu+8iDEtMC4177yJXHJcbiAgICAgICAgaWYgKE1hdGgucmFuZG9tKCkgPiAwLjcpIHtcclxuICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXR1cm4gZmFsc2VcclxuICAgICAgICB9O1xyXG4gICAgICB9O1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBvaW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGxldCB0ZXh0ID0gcG9pbnRzW2ldLm5hbWU7XHJcbiAgICAgICAgbGV0IHRIZWlnaHQgPSBwb2ludHNbaV0udGV4dFNpemUgKiBvcHRzLnBpeDtcclxuICAgICAgICBsZXQgdFdpZHRoID0gbWVhc3VyZVRleHQodGV4dCwgdEhlaWdodCwgY29udGV4dCk7XHJcbiAgICAgICAgbGV0IGlzU3BpbiA9IFNwaW4oKTtcclxuICAgICAgICBsZXQgeCwgeSwgYXJlYSwgYXJlYXY7XHJcbiAgICAgICAgbGV0IGJyZWFrbnVtID0gMDtcclxuICAgICAgICB3aGlsZSAodHJ1ZSkge1xyXG4gICAgICAgICAgYnJlYWtudW0rKztcclxuICAgICAgICAgIGxldCBpc0NvbGxpc2lvbjtcclxuICAgICAgICAgIGlmIChpc1NwaW4pIHtcclxuICAgICAgICAgICAgeCA9IG5vcm1hbEludCgtb3B0cy53aWR0aCAvIDIsIG9wdHMud2lkdGggLyAyLCA1KSAtIHRXaWR0aCAvIDI7XHJcbiAgICAgICAgICAgIHkgPSBub3JtYWxJbnQoLW9wdHMuaGVpZ2h0IC8gMiwgb3B0cy5oZWlnaHQgLyAyLCA1KSArIHRIZWlnaHQgLyAyO1xyXG4gICAgICAgICAgICBhcmVhID0gW3kgLSA1IC0gdFdpZHRoICsgb3B0cy53aWR0aCAvIDIsICgteCAtIDUgKyBvcHRzLmhlaWdodCAvIDIpLCB5ICsgNSArIG9wdHMud2lkdGggLyAyLCAoLXggKyB0SGVpZ2h0ICsgNSArIG9wdHMuaGVpZ2h0IC8gMildO1xyXG4gICAgICAgICAgICBhcmVhdiA9IFtvcHRzLndpZHRoIC0gKG9wdHMud2lkdGggLyAyIC0gb3B0cy5oZWlnaHQgLyAyKSAtICgteCArIHRIZWlnaHQgKyA1ICsgb3B0cy5oZWlnaHQgLyAyKSAtIDUsIChvcHRzLmhlaWdodCAvIDIgLSBvcHRzLndpZHRoIC8gMikgKyAoeSAtIDUgLSB0V2lkdGggKyBvcHRzLndpZHRoIC8gMikgLSA1LCBvcHRzLndpZHRoIC0gKG9wdHMud2lkdGggLyAyIC0gb3B0cy5oZWlnaHQgLyAyKSAtICgteCArIHRIZWlnaHQgKyA1ICsgb3B0cy5oZWlnaHQgLyAyKSArIHRIZWlnaHQsIChvcHRzLmhlaWdodCAvIDIgLSBvcHRzLndpZHRoIC8gMikgKyAoeSAtIDUgLSB0V2lkdGggKyBvcHRzLndpZHRoIC8gMikgKyB0V2lkdGggKyA1XTtcclxuICAgICAgICAgICAgaXNDb2xsaXNpb24gPSBjb2xsaXNpb25OZXcoYXJlYXYsIHBvaW50cywgb3B0cy5oZWlnaHQsIG9wdHMud2lkdGgpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgeCA9IG5vcm1hbEludCgtb3B0cy53aWR0aCAvIDIsIG9wdHMud2lkdGggLyAyLCA1KSAtIHRXaWR0aCAvIDI7XHJcbiAgICAgICAgICAgIHkgPSBub3JtYWxJbnQoLW9wdHMuaGVpZ2h0IC8gMiwgb3B0cy5oZWlnaHQgLyAyLCA1KSArIHRIZWlnaHQgLyAyO1xyXG4gICAgICAgICAgICBhcmVhID0gW3ggLSA1ICsgb3B0cy53aWR0aCAvIDIsIHkgLSA1IC0gdEhlaWdodCArIG9wdHMuaGVpZ2h0IC8gMiwgeCArIHRXaWR0aCArIDUgKyBvcHRzLndpZHRoIC8gMiwgeSArIDUgKyBvcHRzLmhlaWdodCAvIDJdO1xyXG4gICAgICAgICAgICBpc0NvbGxpc2lvbiA9IGNvbGxpc2lvbk5ldyhhcmVhLCBwb2ludHMsIG9wdHMud2lkdGgsIG9wdHMuaGVpZ2h0KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICghaXNDb2xsaXNpb24pIGJyZWFrO1xyXG4gICAgICAgICAgaWYgKGJyZWFrbnVtID09IDEwMDApIHtcclxuICAgICAgICAgICAgYXJlYSA9IFstMTAwMCwgLTEwMDAsIC0xMDAwLCAtMTAwMF07XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgaWYgKGlzU3Bpbikge1xyXG4gICAgICAgICAgcG9pbnRzW2ldLmFyZWEgPSBhcmVhdjtcclxuICAgICAgICAgIHBvaW50c1tpXS5hcmVhdiA9IGFyZWE7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHBvaW50c1tpXS5hcmVhID0gYXJlYTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcG9pbnRzW2ldLnJvdGF0ZSA9IGlzU3BpbjtcclxuICAgICAgfTtcclxuICAgICAgYnJlYWs7XHJcbiAgfVxyXG4gIHJldHVybiBwb2ludHM7XHJcbn1cclxuXHJcblxyXG5mdW5jdGlvbiBkcmF3V29yZENsb3VkRGF0YVBvaW50cyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCkge1xyXG4gIGxldCBwcm9jZXNzID0gYXJndW1lbnRzLmxlbmd0aCA+IDQgJiYgYXJndW1lbnRzWzRdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbNF0gOiAxO1xyXG4gIGxldCB3b3JkT3B0aW9uID0gYXNzaWduKHt9LCB7XHJcbiAgICB0eXBlOiAnbm9ybWFsJyxcclxuICAgIGF1dG9Db2xvcnM6IHRydWVcclxuICB9LCBvcHRzLmV4dHJhLndvcmQpO1xyXG4gIGlmICghb3B0cy5jaGFydERhdGEud29yZENsb3VkRGF0YSkge1xyXG4gICAgb3B0cy5jaGFydERhdGEud29yZENsb3VkRGF0YSA9IGdldFdvcmRDbG91ZFBvaW50KG9wdHMsIHdvcmRPcHRpb24udHlwZSwgY29udGV4dCk7XHJcbiAgfVxyXG4gIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgY29udGV4dC5zZXRGaWxsU3R5bGUob3B0cy5iYWNrZ3JvdW5kKTtcclxuICBjb250ZXh0LnJlY3QoMCwgMCwgb3B0cy53aWR0aCwgb3B0cy5oZWlnaHQpO1xyXG4gIGNvbnRleHQuZmlsbCgpO1xyXG4gIGNvbnRleHQuc2F2ZSgpO1xyXG4gIGxldCBwb2ludHMgPSBvcHRzLmNoYXJ0RGF0YS53b3JkQ2xvdWREYXRhO1xyXG4gIGNvbnRleHQudHJhbnNsYXRlKG9wdHMud2lkdGggLyAyLCBvcHRzLmhlaWdodCAvIDIpO1xyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgcG9pbnRzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBjb250ZXh0LnNhdmUoKTtcclxuICAgIGlmIChwb2ludHNbaV0ucm90YXRlKSB7XHJcbiAgICAgIGNvbnRleHQucm90YXRlKDkwICogTWF0aC5QSSAvIDE4MCk7XHJcbiAgICB9XHJcbiAgICBsZXQgdGV4dCA9IHBvaW50c1tpXS5uYW1lO1xyXG4gICAgbGV0IHRIZWlnaHQgPSBwb2ludHNbaV0udGV4dFNpemUgKiBvcHRzLnBpeDtcclxuICAgIGxldCB0V2lkdGggPSBtZWFzdXJlVGV4dCh0ZXh0LCB0SGVpZ2h0LCBjb250ZXh0KTtcclxuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKHBvaW50c1tpXS5jb2xvcik7XHJcbiAgICBjb250ZXh0LnNldEZpbGxTdHlsZShwb2ludHNbaV0uY29sb3IpO1xyXG4gICAgY29udGV4dC5zZXRGb250U2l6ZSh0SGVpZ2h0KTtcclxuICAgIGlmIChwb2ludHNbaV0ucm90YXRlKSB7XHJcbiAgICAgIGlmIChwb2ludHNbaV0uYXJlYXZbMF0gPiAwKSB7XHJcbiAgICAgICAgaWYgKG9wdHMudG9vbHRpcCkge1xyXG4gICAgICAgICAgaWYgKG9wdHMudG9vbHRpcC5pbmRleCA9PSBpKSB7XHJcbiAgICAgICAgICAgIGNvbnRleHQuc3Ryb2tlVGV4dCh0ZXh0LCAocG9pbnRzW2ldLmFyZWF2WzBdICsgNSAtIG9wdHMud2lkdGggLyAyKSAqIHByb2Nlc3MgLSB0V2lkdGggKiAoMSAtIHByb2Nlc3MpIC8gMiwgKHBvaW50c1tpXS5hcmVhdlsxXSArIDUgKyB0SGVpZ2h0IC0gb3B0cy5oZWlnaHQgLyAyKSAqIHByb2Nlc3MpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY29udGV4dC5maWxsVGV4dCh0ZXh0LCAocG9pbnRzW2ldLmFyZWF2WzBdICsgNSAtIG9wdHMud2lkdGggLyAyKSAqIHByb2Nlc3MgLSB0V2lkdGggKiAoMSAtIHByb2Nlc3MpIC8gMiwgKHBvaW50c1tpXS5hcmVhdlsxXSArIDUgKyB0SGVpZ2h0IC0gb3B0cy5oZWlnaHQgLyAyKSAqIHByb2Nlc3MpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjb250ZXh0LmZpbGxUZXh0KHRleHQsIChwb2ludHNbaV0uYXJlYXZbMF0gKyA1IC0gb3B0cy53aWR0aCAvIDIpICogcHJvY2VzcyAtIHRXaWR0aCAqICgxIC0gcHJvY2VzcykgLyAyLCAocG9pbnRzW2ldLmFyZWF2WzFdICsgNSArIHRIZWlnaHQgLSBvcHRzLmhlaWdodCAvIDIpICogcHJvY2Vzcyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAocG9pbnRzW2ldLmFyZWFbMF0gPiAwKSB7XHJcbiAgICAgICAgaWYgKG9wdHMudG9vbHRpcCkge1xyXG4gICAgICAgICAgaWYgKG9wdHMudG9vbHRpcC5pbmRleCA9PSBpKSB7XHJcbiAgICAgICAgICAgIGNvbnRleHQuc3Ryb2tlVGV4dCh0ZXh0LCAocG9pbnRzW2ldLmFyZWFbMF0gKyA1IC0gb3B0cy53aWR0aCAvIDIpICogcHJvY2VzcyAtIHRXaWR0aCAqICgxIC0gcHJvY2VzcykgLyAyLCAocG9pbnRzW2ldLmFyZWFbMV0gKyA1ICsgdEhlaWdodCAtIG9wdHMuaGVpZ2h0IC8gMikgKiBwcm9jZXNzKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbFRleHQodGV4dCwgKHBvaW50c1tpXS5hcmVhWzBdICsgNSAtIG9wdHMud2lkdGggLyAyKSAqIHByb2Nlc3MgLSB0V2lkdGggKiAoMSAtIHByb2Nlc3MpIC8gMiwgKHBvaW50c1tpXS5hcmVhWzFdICsgNSArIHRIZWlnaHQgLSBvcHRzLmhlaWdodCAvIDIpICogcHJvY2Vzcyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNvbnRleHQuZmlsbFRleHQodGV4dCwgKHBvaW50c1tpXS5hcmVhWzBdICsgNSAtIG9wdHMud2lkdGggLyAyKSAqIHByb2Nlc3MgLSB0V2lkdGggKiAoMSAtIHByb2Nlc3MpIC8gMiwgKHBvaW50c1tpXS5hcmVhWzFdICsgNSArIHRIZWlnaHQgLSBvcHRzLmhlaWdodCAvIDIpICogcHJvY2Vzcyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgY29udGV4dC5yZXN0b3JlKCk7XHJcbiAgfVxyXG4gIGNvbnRleHQucmVzdG9yZSgpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3RnVubmVsRGF0YVBvaW50cyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCkge1xyXG4gIGxldCBwcm9jZXNzID0gYXJndW1lbnRzLmxlbmd0aCA+IDQgJiYgYXJndW1lbnRzWzRdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbNF0gOiAxO1xyXG4gIGxldCBmdW5uZWxPcHRpb24gPSBhc3NpZ24oe30sIHtcclxuICAgIHR5cGU6J2Z1bm5lbCcsXHJcbiAgICBhY3RpdmVXaWR0aDogMTAsXHJcbiAgICBhY3RpdmVPcGFjaXR5OiAwLjMsXHJcbiAgICBib3JkZXI6IGZhbHNlLFxyXG4gICAgYm9yZGVyV2lkdGg6IDIsXHJcbiAgICBib3JkZXJDb2xvcjogJyNGRkZGRkYnLFxyXG4gICAgZmlsbE9wYWNpdHk6IDEsXHJcbiAgICBsYWJlbEFsaWduOiAncmlnaHQnLFxyXG4gICAgbGluZWFyVHlwZTogJ25vbmUnLFxyXG4gICAgY3VzdG9tQ29sb3I6IFtdLFxyXG4gIH0sIG9wdHMuZXh0cmEuZnVubmVsKTtcclxuICBsZXQgZWFjaFNwYWNpbmcgPSAob3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMF0gLSBvcHRzLmFyZWFbMl0pIC8gc2VyaWVzLmxlbmd0aDtcclxuICBsZXQgY2VudGVyUG9zaXRpb24gPSB7XHJcbiAgICB4OiBvcHRzLmFyZWFbM10gKyAob3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXSAtIG9wdHMuYXJlYVszXSkgLyAyLFxyXG4gICAgeTogb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl1cclxuICB9O1xyXG4gIGxldCBhY3RpdmVXaWR0aCA9IGZ1bm5lbE9wdGlvbi5hY3RpdmVXaWR0aCAqIG9wdHMucGl4O1xyXG4gIGxldCByYWRpdXMgPSBNYXRoLm1pbigob3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXSAtIG9wdHMuYXJlYVszXSkgLyAyIC0gYWN0aXZlV2lkdGgsIChvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVswXSAtIG9wdHMuYXJlYVsyXSkgLyAyIC0gYWN0aXZlV2lkdGgpO1xyXG4gIHNlcmllcyA9IGdldEZ1bm5lbERhdGFQb2ludHMoc2VyaWVzLCByYWRpdXMsIGZ1bm5lbE9wdGlvbi50eXBlLCBlYWNoU3BhY2luZywgcHJvY2Vzcyk7XHJcbiAgY29udGV4dC5zYXZlKCk7XHJcbiAgY29udGV4dC50cmFuc2xhdGUoY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSk7XHJcbiAgZnVubmVsT3B0aW9uLmN1c3RvbUNvbG9yID0gZmlsbEN1c3RvbUNvbG9yKGZ1bm5lbE9wdGlvbi5saW5lYXJUeXBlLCBmdW5uZWxPcHRpb24uY3VzdG9tQ29sb3IsIHNlcmllcywgY29uZmlnKTtcclxuICBpZihmdW5uZWxPcHRpb24udHlwZSA9PSAncHlyYW1pZCcpe1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXJpZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgaWYgKGkgPT0gc2VyaWVzLmxlbmd0aCAtMSkge1xyXG4gICAgICAgIGlmIChvcHRzLnRvb2x0aXApIHtcclxuICAgICAgICAgIGlmIChvcHRzLnRvb2x0aXAuaW5kZXggPT0gaSkge1xyXG4gICAgICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShoZXhUb1JnYihzZXJpZXNbaV0uY29sb3IsIGZ1bm5lbE9wdGlvbi5hY3RpdmVPcGFjaXR5KSk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKC1hY3RpdmVXaWR0aCwgLWVhY2hTcGFjaW5nKTtcclxuICAgICAgICAgICAgY29udGV4dC5saW5lVG8oLXNlcmllc1tpXS5yYWRpdXMgLSBhY3RpdmVXaWR0aCwgMCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHNlcmllc1tpXS5yYWRpdXMgKyBhY3RpdmVXaWR0aCwgMCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKGFjdGl2ZVdpZHRoLCAtZWFjaFNwYWNpbmcpO1xyXG4gICAgICAgICAgICBjb250ZXh0LmxpbmVUbygtYWN0aXZlV2lkdGgsIC1lYWNoU3BhY2luZyk7XHJcbiAgICAgICAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBzZXJpZXNbaV0uZnVubmVsQXJlYSA9IFtjZW50ZXJQb3NpdGlvbi54IC0gc2VyaWVzW2ldLnJhZGl1cywgY2VudGVyUG9zaXRpb24ueSAtIGVhY2hTcGFjaW5nICogKGkgKyAxKSwgY2VudGVyUG9zaXRpb24ueCArIHNlcmllc1tpXS5yYWRpdXMsIGNlbnRlclBvc2l0aW9uLnkgLSBlYWNoU3BhY2luZyAqIGldO1xyXG4gICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgY29udGV4dC5zZXRMaW5lV2lkdGgoZnVubmVsT3B0aW9uLmJvcmRlcldpZHRoICogb3B0cy5waXgpO1xyXG4gICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoZnVubmVsT3B0aW9uLmJvcmRlckNvbG9yKTtcclxuICAgICAgICB2YXIgZmlsbENvbG9yID0gaGV4VG9SZ2Ioc2VyaWVzW2ldLmNvbG9yLCBmdW5uZWxPcHRpb24uZmlsbE9wYWNpdHkpO1xyXG4gICAgICAgIGlmIChmdW5uZWxPcHRpb24ubGluZWFyVHlwZSA9PSAnY3VzdG9tJykge1xyXG4gICAgICAgICAgdmFyIGdyZCA9IGNvbnRleHQuY3JlYXRlTGluZWFyR3JhZGllbnQoc2VyaWVzW2ldLnJhZGl1cywgLWVhY2hTcGFjaW5nLCAtc2VyaWVzW2ldLnJhZGl1cywgLWVhY2hTcGFjaW5nKTtcclxuICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMCwgaGV4VG9SZ2Ioc2VyaWVzW2ldLmNvbG9yLCBmdW5uZWxPcHRpb24uZmlsbE9wYWNpdHkpKTtcclxuICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMC41LCBoZXhUb1JnYihmdW5uZWxPcHRpb24uY3VzdG9tQ29sb3Jbc2VyaWVzW2ldLmxpbmVhckluZGV4XSwgZnVubmVsT3B0aW9uLmZpbGxPcGFjaXR5KSk7XHJcbiAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDEsIGhleFRvUmdiKHNlcmllc1tpXS5jb2xvciwgZnVubmVsT3B0aW9uLmZpbGxPcGFjaXR5KSk7XHJcbiAgICAgICAgICBmaWxsQ29sb3IgPSBncmRcclxuICAgICAgICB9XHJcbiAgICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoZmlsbENvbG9yKTtcclxuICAgICAgICBjb250ZXh0Lm1vdmVUbygwLCAtZWFjaFNwYWNpbmcpO1xyXG4gICAgICAgIGNvbnRleHQubGluZVRvKC1zZXJpZXNbaV0ucmFkaXVzLCAwKTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbyhzZXJpZXNbaV0ucmFkaXVzLCAwKTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbygwLCAtZWFjaFNwYWNpbmcpO1xyXG4gICAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAgICAgaWYgKGZ1bm5lbE9wdGlvbi5ib3JkZXIgPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKG9wdHMudG9vbHRpcCkge1xyXG4gICAgICAgICAgaWYgKG9wdHMudG9vbHRpcC5pbmRleCA9PSBpKSB7XHJcbiAgICAgICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGhleFRvUmdiKHNlcmllc1tpXS5jb2xvciwgZnVubmVsT3B0aW9uLmFjdGl2ZU9wYWNpdHkpKTtcclxuICAgICAgICAgICAgY29udGV4dC5tb3ZlVG8oMCwgMCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKC1zZXJpZXNbaV0ucmFkaXVzIC0gYWN0aXZlV2lkdGgsIDApO1xyXG4gICAgICAgICAgICBjb250ZXh0LmxpbmVUbygtc2VyaWVzW2kgKyAxXS5yYWRpdXMgLSBhY3RpdmVXaWR0aCwgLWVhY2hTcGFjaW5nKTtcclxuICAgICAgICAgICAgY29udGV4dC5saW5lVG8oc2VyaWVzW2kgKyAxXS5yYWRpdXMgKyBhY3RpdmVXaWR0aCwgLWVhY2hTcGFjaW5nKTtcclxuICAgICAgICAgICAgY29udGV4dC5saW5lVG8oc2VyaWVzW2ldLnJhZGl1cyArIGFjdGl2ZVdpZHRoLCAwKTtcclxuICAgICAgICAgICAgY29udGV4dC5saW5lVG8oMCwgMCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBzZXJpZXNbaV0uZnVubmVsQXJlYSA9IFtjZW50ZXJQb3NpdGlvbi54IC0gc2VyaWVzW2ldLnJhZGl1cywgY2VudGVyUG9zaXRpb24ueSAtIGVhY2hTcGFjaW5nICogKGkgKyAxKSwgY2VudGVyUG9zaXRpb24ueCArIHNlcmllc1tpXS5yYWRpdXMsIGNlbnRlclBvc2l0aW9uLnkgLSBlYWNoU3BhY2luZyAqIGldO1xyXG4gICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgY29udGV4dC5zZXRMaW5lV2lkdGgoZnVubmVsT3B0aW9uLmJvcmRlcldpZHRoICogb3B0cy5waXgpO1xyXG4gICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoZnVubmVsT3B0aW9uLmJvcmRlckNvbG9yKTtcclxuICAgICAgICB2YXIgZmlsbENvbG9yID0gaGV4VG9SZ2Ioc2VyaWVzW2ldLmNvbG9yLCBmdW5uZWxPcHRpb24uZmlsbE9wYWNpdHkpO1xyXG4gICAgICAgIGlmIChmdW5uZWxPcHRpb24ubGluZWFyVHlwZSA9PSAnY3VzdG9tJykge1xyXG4gICAgICAgICAgdmFyIGdyZCA9IGNvbnRleHQuY3JlYXRlTGluZWFyR3JhZGllbnQoc2VyaWVzW2ldLnJhZGl1cywgLWVhY2hTcGFjaW5nLCAtc2VyaWVzW2ldLnJhZGl1cywgLWVhY2hTcGFjaW5nKTtcclxuICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMCwgaGV4VG9SZ2Ioc2VyaWVzW2ldLmNvbG9yLCBmdW5uZWxPcHRpb24uZmlsbE9wYWNpdHkpKTtcclxuICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMC41LCBoZXhUb1JnYihmdW5uZWxPcHRpb24uY3VzdG9tQ29sb3Jbc2VyaWVzW2ldLmxpbmVhckluZGV4XSwgZnVubmVsT3B0aW9uLmZpbGxPcGFjaXR5KSk7XHJcbiAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDEsIGhleFRvUmdiKHNlcmllc1tpXS5jb2xvciwgZnVubmVsT3B0aW9uLmZpbGxPcGFjaXR5KSk7XHJcbiAgICAgICAgICBmaWxsQ29sb3IgPSBncmRcclxuICAgICAgICB9XHJcbiAgICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoZmlsbENvbG9yKTtcclxuICAgICAgICBjb250ZXh0Lm1vdmVUbygwLCAwKTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbygtc2VyaWVzW2ldLnJhZGl1cywgMCk7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oLXNlcmllc1tpICsgMV0ucmFkaXVzLCAtZWFjaFNwYWNpbmcpO1xyXG4gICAgICAgIGNvbnRleHQubGluZVRvKHNlcmllc1tpICsgMV0ucmFkaXVzLCAtZWFjaFNwYWNpbmcpO1xyXG4gICAgICAgIGNvbnRleHQubGluZVRvKHNlcmllc1tpXS5yYWRpdXMsIDApO1xyXG4gICAgICAgIGNvbnRleHQubGluZVRvKDAsIDApO1xyXG4gICAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAgICAgaWYgKGZ1bm5lbE9wdGlvbi5ib3JkZXIgPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgY29udGV4dC50cmFuc2xhdGUoMCwgLWVhY2hTcGFjaW5nKVxyXG4gICAgfVxyXG4gIH1lbHNle1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXJpZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgaWYgKGkgPT0gMCkge1xyXG4gICAgICAgIGlmIChvcHRzLnRvb2x0aXApIHtcclxuICAgICAgICAgIGlmIChvcHRzLnRvb2x0aXAuaW5kZXggPT0gaSkge1xyXG4gICAgICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShoZXhUb1JnYihzZXJpZXNbaV0uY29sb3IsIGZ1bm5lbE9wdGlvbi5hY3RpdmVPcGFjaXR5KSk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKC1hY3RpdmVXaWR0aCwgMCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKC1zZXJpZXNbaV0ucmFkaXVzIC0gYWN0aXZlV2lkdGgsIC1lYWNoU3BhY2luZyk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHNlcmllc1tpXS5yYWRpdXMgKyBhY3RpdmVXaWR0aCwgLWVhY2hTcGFjaW5nKTtcclxuICAgICAgICAgICAgY29udGV4dC5saW5lVG8oYWN0aXZlV2lkdGgsIDApO1xyXG4gICAgICAgICAgICBjb250ZXh0LmxpbmVUbygtYWN0aXZlV2lkdGgsIDApO1xyXG4gICAgICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICAgICAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgc2VyaWVzW2ldLmZ1bm5lbEFyZWEgPSBbY2VudGVyUG9zaXRpb24ueCAtIHNlcmllc1tpXS5yYWRpdXMsIGNlbnRlclBvc2l0aW9uLnkgLSBlYWNoU3BhY2luZywgY2VudGVyUG9zaXRpb24ueCArIHNlcmllc1tpXS5yYWRpdXMsIGNlbnRlclBvc2l0aW9uLnldO1xyXG4gICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgY29udGV4dC5zZXRMaW5lV2lkdGgoZnVubmVsT3B0aW9uLmJvcmRlcldpZHRoICogb3B0cy5waXgpO1xyXG4gICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoZnVubmVsT3B0aW9uLmJvcmRlckNvbG9yKTtcclxuICAgICAgICB2YXIgZmlsbENvbG9yID0gaGV4VG9SZ2Ioc2VyaWVzW2ldLmNvbG9yLCBmdW5uZWxPcHRpb24uZmlsbE9wYWNpdHkpO1xyXG4gICAgICAgIGlmIChmdW5uZWxPcHRpb24ubGluZWFyVHlwZSA9PSAnY3VzdG9tJykge1xyXG4gICAgICAgICAgdmFyIGdyZCA9IGNvbnRleHQuY3JlYXRlTGluZWFyR3JhZGllbnQoc2VyaWVzW2ldLnJhZGl1cywgLWVhY2hTcGFjaW5nLCAtc2VyaWVzW2ldLnJhZGl1cywgLWVhY2hTcGFjaW5nKTtcclxuICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMCwgaGV4VG9SZ2Ioc2VyaWVzW2ldLmNvbG9yLCBmdW5uZWxPcHRpb24uZmlsbE9wYWNpdHkpKTtcclxuICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMC41LCBoZXhUb1JnYihmdW5uZWxPcHRpb24uY3VzdG9tQ29sb3Jbc2VyaWVzW2ldLmxpbmVhckluZGV4XSwgZnVubmVsT3B0aW9uLmZpbGxPcGFjaXR5KSk7XHJcbiAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDEsIGhleFRvUmdiKHNlcmllc1tpXS5jb2xvciwgZnVubmVsT3B0aW9uLmZpbGxPcGFjaXR5KSk7XHJcbiAgICAgICAgICBmaWxsQ29sb3IgPSBncmRcclxuICAgICAgICB9XHJcbiAgICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoZmlsbENvbG9yKTtcclxuICAgICAgICBjb250ZXh0Lm1vdmVUbygwLCAwKTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbygtc2VyaWVzW2ldLnJhZGl1cywgLWVhY2hTcGFjaW5nKTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbyhzZXJpZXNbaV0ucmFkaXVzLCAtZWFjaFNwYWNpbmcpO1xyXG4gICAgICAgIGNvbnRleHQubGluZVRvKDAsIDApO1xyXG4gICAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAgICAgaWYgKGZ1bm5lbE9wdGlvbi5ib3JkZXIgPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKG9wdHMudG9vbHRpcCkge1xyXG4gICAgICAgICAgaWYgKG9wdHMudG9vbHRpcC5pbmRleCA9PSBpKSB7XHJcbiAgICAgICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGhleFRvUmdiKHNlcmllc1tpXS5jb2xvciwgZnVubmVsT3B0aW9uLmFjdGl2ZU9wYWNpdHkpKTtcclxuICAgICAgICAgICAgY29udGV4dC5tb3ZlVG8oMCwgMCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKC1zZXJpZXNbaSAtIDFdLnJhZGl1cyAtIGFjdGl2ZVdpZHRoLCAwKTtcclxuICAgICAgICAgICAgY29udGV4dC5saW5lVG8oLXNlcmllc1tpXS5yYWRpdXMgLSBhY3RpdmVXaWR0aCwgLWVhY2hTcGFjaW5nKTtcclxuICAgICAgICAgICAgY29udGV4dC5saW5lVG8oc2VyaWVzW2ldLnJhZGl1cyArIGFjdGl2ZVdpZHRoLCAtZWFjaFNwYWNpbmcpO1xyXG4gICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhzZXJpZXNbaSAtIDFdLnJhZGl1cyArIGFjdGl2ZVdpZHRoLCAwKTtcclxuICAgICAgICAgICAgY29udGV4dC5saW5lVG8oMCwgMCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBzZXJpZXNbaV0uZnVubmVsQXJlYSA9IFtjZW50ZXJQb3NpdGlvbi54IC0gc2VyaWVzW2ldLnJhZGl1cywgY2VudGVyUG9zaXRpb24ueSAtIGVhY2hTcGFjaW5nICogKGkgKyAxKSwgY2VudGVyUG9zaXRpb24ueCArIHNlcmllc1tpXS5yYWRpdXMsIGNlbnRlclBvc2l0aW9uLnkgLSBlYWNoU3BhY2luZyAqIGldO1xyXG4gICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgY29udGV4dC5zZXRMaW5lV2lkdGgoZnVubmVsT3B0aW9uLmJvcmRlcldpZHRoICogb3B0cy5waXgpO1xyXG4gICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoZnVubmVsT3B0aW9uLmJvcmRlckNvbG9yKTtcclxuICAgICAgICB2YXIgZmlsbENvbG9yID0gaGV4VG9SZ2Ioc2VyaWVzW2ldLmNvbG9yLCBmdW5uZWxPcHRpb24uZmlsbE9wYWNpdHkpO1xyXG4gICAgICAgIGlmIChmdW5uZWxPcHRpb24ubGluZWFyVHlwZSA9PSAnY3VzdG9tJykge1xyXG4gICAgICAgICAgdmFyIGdyZCA9IGNvbnRleHQuY3JlYXRlTGluZWFyR3JhZGllbnQoc2VyaWVzW2ldLnJhZGl1cywgLWVhY2hTcGFjaW5nLCAtc2VyaWVzW2ldLnJhZGl1cywgLWVhY2hTcGFjaW5nKTtcclxuICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMCwgaGV4VG9SZ2Ioc2VyaWVzW2ldLmNvbG9yLCBmdW5uZWxPcHRpb24uZmlsbE9wYWNpdHkpKTtcclxuICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMC41LCBoZXhUb1JnYihmdW5uZWxPcHRpb24uY3VzdG9tQ29sb3Jbc2VyaWVzW2ldLmxpbmVhckluZGV4XSwgZnVubmVsT3B0aW9uLmZpbGxPcGFjaXR5KSk7XHJcbiAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDEsIGhleFRvUmdiKHNlcmllc1tpXS5jb2xvciwgZnVubmVsT3B0aW9uLmZpbGxPcGFjaXR5KSk7XHJcbiAgICAgICAgICBmaWxsQ29sb3IgPSBncmRcclxuICAgICAgICB9XHJcbiAgICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoZmlsbENvbG9yKTtcclxuICAgICAgICBjb250ZXh0Lm1vdmVUbygwLCAwKTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbygtc2VyaWVzW2kgLSAxXS5yYWRpdXMsIDApO1xyXG4gICAgICAgIGNvbnRleHQubGluZVRvKC1zZXJpZXNbaV0ucmFkaXVzLCAtZWFjaFNwYWNpbmcpO1xyXG4gICAgICAgIGNvbnRleHQubGluZVRvKHNlcmllc1tpXS5yYWRpdXMsIC1lYWNoU3BhY2luZyk7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oc2VyaWVzW2kgLSAxXS5yYWRpdXMsIDApO1xyXG4gICAgICAgIGNvbnRleHQubGluZVRvKDAsIDApO1xyXG4gICAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAgICAgaWYgKGZ1bm5lbE9wdGlvbi5ib3JkZXIgPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgY29udGV4dC50cmFuc2xhdGUoMCwgLWVhY2hTcGFjaW5nKVxyXG4gICAgfVxyXG4gIH1cclxuICBcclxuICBjb250ZXh0LnJlc3RvcmUoKTtcclxuICBpZiAob3B0cy5kYXRhTGFiZWwgIT09IGZhbHNlICYmIHByb2Nlc3MgPT09IDEpIHtcclxuICAgIGRyYXdGdW5uZWxUZXh0KHNlcmllcywgb3B0cywgY29udGV4dCwgZWFjaFNwYWNpbmcsIGZ1bm5lbE9wdGlvbi5sYWJlbEFsaWduLCBhY3RpdmVXaWR0aCwgY2VudGVyUG9zaXRpb24pO1xyXG4gIH1cclxuICByZXR1cm4ge1xyXG4gICAgY2VudGVyOiBjZW50ZXJQb3NpdGlvbixcclxuICAgIHJhZGl1czogcmFkaXVzLFxyXG4gICAgc2VyaWVzOiBzZXJpZXNcclxuICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3RnVubmVsVGV4dChzZXJpZXMsIG9wdHMsIGNvbnRleHQsIGVhY2hTcGFjaW5nLCBsYWJlbEFsaWduLCBhY3RpdmVXaWR0aCwgY2VudGVyUG9zaXRpb24pIHtcclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHNlcmllcy5sZW5ndGg7IGkrKykge1xyXG4gICAgbGV0IGl0ZW0gPSBzZXJpZXNbaV07XHJcbiAgICBsZXQgc3RhcnRYLCBlbmRYLCBzdGFydFksIGZvbnRTaXplO1xyXG4gICAgbGV0IHRleHQgPSBpdGVtLmZvcm1hdHRlciA/IGl0ZW0uZm9ybWF0dGVyKGl0ZW0saSxzZXJpZXMpIDogdXRpbC50b0ZpeGVkKGl0ZW0uX3Byb3BvcnRpb25fICogMTAwKSArICclJztcclxuICAgIGlmIChsYWJlbEFsaWduID09ICdyaWdodCcpIHtcclxuICAgICAgaWYob3B0cy5leHRyYS5mdW5uZWwudHlwZSA9PT0gJ3B5cmFtaWQnKXtcclxuICAgICAgICBpZiAoaSA9PSBzZXJpZXMubGVuZ3RoIC0xKSB7XHJcbiAgICAgICAgICBzdGFydFggPSAoaXRlbS5mdW5uZWxBcmVhWzJdICsgY2VudGVyUG9zaXRpb24ueCkgLyAyO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBzdGFydFggPSAoaXRlbS5mdW5uZWxBcmVhWzJdICsgc2VyaWVzW2kgKyAxXS5mdW5uZWxBcmVhWzJdKSAvIDI7XHJcbiAgICAgICAgfVxyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICBpZiAoaSA9PSAwKSB7XHJcbiAgICAgICAgICBzdGFydFggPSAoaXRlbS5mdW5uZWxBcmVhWzJdICsgY2VudGVyUG9zaXRpb24ueCkgLyAyO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBzdGFydFggPSAoaXRlbS5mdW5uZWxBcmVhWzJdICsgc2VyaWVzW2kgLSAxXS5mdW5uZWxBcmVhWzJdKSAvIDI7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGVuZFggPSBzdGFydFggKyBhY3RpdmVXaWR0aCAqIDI7XHJcbiAgICAgIHN0YXJ0WSA9IGl0ZW0uZnVubmVsQXJlYVsxXSArIGVhY2hTcGFjaW5nIC8gMjtcclxuICAgICAgZm9udFNpemUgPSBpdGVtLnRleHRTaXplICogb3B0cy5waXggfHwgb3B0cy5mb250U2l6ZSAqIG9wdHMucGl4O1xyXG4gICAgICBjb250ZXh0LnNldExpbmVXaWR0aCgxICogb3B0cy5waXgpO1xyXG4gICAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKGl0ZW0uY29sb3IpO1xyXG4gICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShpdGVtLmNvbG9yKTtcclxuICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgY29udGV4dC5tb3ZlVG8oc3RhcnRYLCBzdGFydFkpO1xyXG4gICAgICBjb250ZXh0LmxpbmVUbyhlbmRYLCBzdGFydFkpO1xyXG4gICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICBjb250ZXh0Lm1vdmVUbyhlbmRYLCBzdGFydFkpO1xyXG4gICAgICBjb250ZXh0LmFyYyhlbmRYLCBzdGFydFksIDIsIDAsIDIgKiBNYXRoLlBJKTtcclxuICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgIGNvbnRleHQuc2V0Rm9udFNpemUoZm9udFNpemUpO1xyXG4gICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShpdGVtLnRleHRDb2xvciB8fCBvcHRzLmZvbnRDb2xvcik7XHJcbiAgICAgIGNvbnRleHQuZmlsbFRleHQodGV4dCwgZW5kWCArIDUsIHN0YXJ0WSArIGZvbnRTaXplIC8gMiAtIDIpO1xyXG4gICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYob3B0cy5leHRyYS5mdW5uZWwudHlwZSA9PT0gJ3B5cmFtaWQnKXtcclxuICAgICAgICBpZiAoaSA9PSBzZXJpZXMubGVuZ3RoIC0xKSB7XHJcbiAgICAgICAgICBzdGFydFggPSAoaXRlbS5mdW5uZWxBcmVhWzBdICsgY2VudGVyUG9zaXRpb24ueCkgLyAyO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBzdGFydFggPSAoaXRlbS5mdW5uZWxBcmVhWzBdICsgc2VyaWVzW2kgKyAxXS5mdW5uZWxBcmVhWzBdKSAvIDI7XHJcbiAgICAgICAgfVxyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICBpZiAoaSA9PSAwKSB7XHJcbiAgICAgICAgICBzdGFydFggPSAoaXRlbS5mdW5uZWxBcmVhWzBdICsgY2VudGVyUG9zaXRpb24ueCkgLyAyO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBzdGFydFggPSAoaXRlbS5mdW5uZWxBcmVhWzBdICsgc2VyaWVzW2kgLSAxXS5mdW5uZWxBcmVhWzBdKSAvIDI7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGVuZFggPSBzdGFydFggLSBhY3RpdmVXaWR0aCAqIDI7XHJcbiAgICAgIHN0YXJ0WSA9IGl0ZW0uZnVubmVsQXJlYVsxXSArIGVhY2hTcGFjaW5nIC8gMjtcclxuICAgICAgZm9udFNpemUgPSBpdGVtLnRleHRTaXplICogb3B0cy5waXggfHwgb3B0cy5mb250U2l6ZSAqIG9wdHMucGl4O1xyXG4gICAgICBjb250ZXh0LnNldExpbmVXaWR0aCgxICogb3B0cy5waXgpO1xyXG4gICAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKGl0ZW0uY29sb3IpO1xyXG4gICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShpdGVtLmNvbG9yKTtcclxuICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgY29udGV4dC5tb3ZlVG8oc3RhcnRYLCBzdGFydFkpO1xyXG4gICAgICBjb250ZXh0LmxpbmVUbyhlbmRYLCBzdGFydFkpO1xyXG4gICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICBjb250ZXh0Lm1vdmVUbyhlbmRYLCBzdGFydFkpO1xyXG4gICAgICBjb250ZXh0LmFyYyhlbmRYLCBzdGFydFksIDIsIDAsIDIgKiBNYXRoLlBJKTtcclxuICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgIGNvbnRleHQuc2V0Rm9udFNpemUoZm9udFNpemUpO1xyXG4gICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShpdGVtLnRleHRDb2xvciB8fCBvcHRzLmZvbnRDb2xvcik7XHJcbiAgICAgIGNvbnRleHQuZmlsbFRleHQodGV4dCwgZW5kWCAtIDUgLSBtZWFzdXJlVGV4dCh0ZXh0LCBmb250U2l6ZSwgY29udGV4dCksIHN0YXJ0WSArIGZvbnRTaXplIC8gMiAtIDIpO1xyXG4gICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgfVxyXG5cclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRyYXdDYW52YXMob3B0cywgY29udGV4dCkge1xyXG4gIGNvbnRleHQuZHJhdygpO1xyXG59XHJcblxyXG52YXIgVGltaW5nID0ge1xyXG4gIGVhc2VJbjogZnVuY3Rpb24gZWFzZUluKHBvcykge1xyXG4gICAgcmV0dXJuIE1hdGgucG93KHBvcywgMyk7XHJcbiAgfSxcclxuICBlYXNlT3V0OiBmdW5jdGlvbiBlYXNlT3V0KHBvcykge1xyXG4gICAgcmV0dXJuIE1hdGgucG93KHBvcyAtIDEsIDMpICsgMTtcclxuICB9LFxyXG4gIGVhc2VJbk91dDogZnVuY3Rpb24gZWFzZUluT3V0KHBvcykge1xyXG4gICAgaWYgKChwb3MgLz0gMC41KSA8IDEpIHtcclxuICAgICAgcmV0dXJuIDAuNSAqIE1hdGgucG93KHBvcywgMyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gMC41ICogKE1hdGgucG93KHBvcyAtIDIsIDMpICsgMik7XHJcbiAgICB9XHJcbiAgfSxcclxuICBsaW5lYXI6IGZ1bmN0aW9uIGxpbmVhcihwb3MpIHtcclxuICAgIHJldHVybiBwb3M7XHJcbiAgfVxyXG59O1xyXG5cclxuZnVuY3Rpb24gQW5pbWF0aW9uKG9wdHMpIHtcclxuICB0aGlzLmlzU3RvcCA9IGZhbHNlO1xyXG4gIG9wdHMuZHVyYXRpb24gPSB0eXBlb2Ygb3B0cy5kdXJhdGlvbiA9PT0gJ3VuZGVmaW5lZCcgPyAxMDAwIDogb3B0cy5kdXJhdGlvbjtcclxuICBvcHRzLnRpbWluZyA9IG9wdHMudGltaW5nIHx8ICdlYXNlSW5PdXQnO1xyXG4gIHZhciBkZWxheSA9IDE3O1xyXG4gIGZ1bmN0aW9uIGNyZWF0ZUFuaW1hdGlvbkZyYW1lKCkge1xyXG4gICAgaWYgKHR5cGVvZiBzZXRUaW1lb3V0ICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICByZXR1cm4gZnVuY3Rpb24oc3RlcCwgZGVsYXkpIHtcclxuICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xyXG4gICAgICAgICAgdmFyIHRpbWVTdGFtcCA9ICtuZXcgRGF0ZSgpO1xyXG4gICAgICAgICAgc3RlcCh0aW1lU3RhbXApO1xyXG4gICAgICAgIH0sIGRlbGF5KTtcclxuICAgICAgfTtcclxuICAgIH0gZWxzZSBpZiAodHlwZW9mIHJlcXVlc3RBbmltYXRpb25GcmFtZSAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgcmV0dXJuIHJlcXVlc3RBbmltYXRpb25GcmFtZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBmdW5jdGlvbihzdGVwKSB7XHJcbiAgICAgICAgc3RlcChudWxsKTtcclxuICAgICAgfTtcclxuICAgIH1cclxuICB9O1xyXG4gIHZhciBhbmltYXRpb25GcmFtZSA9IGNyZWF0ZUFuaW1hdGlvbkZyYW1lKCk7XHJcbiAgdmFyIHN0YXJ0VGltZVN0YW1wID0gbnVsbDtcclxuICB2YXIgX3N0ZXAgPSBmdW5jdGlvbiBzdGVwKHRpbWVzdGFtcCkge1xyXG4gICAgaWYgKHRpbWVzdGFtcCA9PT0gbnVsbCB8fCB0aGlzLmlzU3RvcCA9PT0gdHJ1ZSkge1xyXG4gICAgICBvcHRzLm9uUHJvY2VzcyAmJiBvcHRzLm9uUHJvY2VzcygxKTtcclxuICAgICAgb3B0cy5vbkFuaW1hdGlvbkZpbmlzaCAmJiBvcHRzLm9uQW5pbWF0aW9uRmluaXNoKCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmIChzdGFydFRpbWVTdGFtcCA9PT0gbnVsbCkge1xyXG4gICAgICBzdGFydFRpbWVTdGFtcCA9IHRpbWVzdGFtcDtcclxuICAgIH1cclxuICAgIGlmICh0aW1lc3RhbXAgLSBzdGFydFRpbWVTdGFtcCA8IG9wdHMuZHVyYXRpb24pIHtcclxuICAgICAgdmFyIHByb2Nlc3MgPSAodGltZXN0YW1wIC0gc3RhcnRUaW1lU3RhbXApIC8gb3B0cy5kdXJhdGlvbjtcclxuICAgICAgdmFyIHRpbWluZ0Z1bmN0aW9uID0gVGltaW5nW29wdHMudGltaW5nXTtcclxuICAgICAgcHJvY2VzcyA9IHRpbWluZ0Z1bmN0aW9uKHByb2Nlc3MpO1xyXG4gICAgICBvcHRzLm9uUHJvY2VzcyAmJiBvcHRzLm9uUHJvY2Vzcyhwcm9jZXNzKTtcclxuICAgICAgYW5pbWF0aW9uRnJhbWUoX3N0ZXAsIGRlbGF5KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIG9wdHMub25Qcm9jZXNzICYmIG9wdHMub25Qcm9jZXNzKDEpO1xyXG4gICAgICBvcHRzLm9uQW5pbWF0aW9uRmluaXNoICYmIG9wdHMub25BbmltYXRpb25GaW5pc2goKTtcclxuICAgIH1cclxuICB9O1xyXG4gIF9zdGVwID0gX3N0ZXAuYmluZCh0aGlzKTtcclxuICBhbmltYXRpb25GcmFtZShfc3RlcCwgZGVsYXkpO1xyXG59XHJcblxyXG5BbmltYXRpb24ucHJvdG90eXBlLnN0b3AgPSBmdW5jdGlvbigpIHtcclxuICB0aGlzLmlzU3RvcCA9IHRydWU7XHJcbn07XHJcblxyXG5mdW5jdGlvbiBkcmF3Q2hhcnRzKHR5cGUsIG9wdHMsIGNvbmZpZywgY29udGV4dCkge1xyXG4gIHZhciBfdGhpcyA9IHRoaXM7XHJcbiAgdmFyIHNlcmllcyA9IG9wdHMuc2VyaWVzO1xyXG4gIC8v5YW85a65RUNoYXJ0c+mlvOWbvuexu+aVsOaNruagvOW8j1xyXG4gIGlmICh0eXBlID09PSAncGllJyB8fCB0eXBlID09PSAncmluZycgfHwgdHlwZSA9PT0gJ3Jvc2UnIHx8IHR5cGUgPT09ICdmdW5uZWwnKSB7XHJcbiAgICBzZXJpZXMgPSBmaXhQaWVTZXJpZXMoc2VyaWVzLCBvcHRzLCBjb25maWcpO1xyXG4gIH1cclxuICB2YXIgY2F0ZWdvcmllcyA9IG9wdHMuY2F0ZWdvcmllcztcclxuICBzZXJpZXMgPSBmaWxsU2VyaWVzKHNlcmllcywgb3B0cywgY29uZmlnKTtcclxuICB2YXIgZHVyYXRpb24gPSBvcHRzLmFuaW1hdGlvbiA/IG9wdHMuZHVyYXRpb24gOiAwO1xyXG4gIF90aGlzLmFuaW1hdGlvbkluc3RhbmNlICYmIF90aGlzLmFuaW1hdGlvbkluc3RhbmNlLnN0b3AoKTtcclxuICB2YXIgc2VyaWVzTUEgPSBudWxsO1xyXG4gIGlmICh0eXBlID09ICdjYW5kbGUnKSB7XHJcbiAgICBsZXQgYXZlcmFnZSA9IGFzc2lnbih7fSwgb3B0cy5leHRyYS5jYW5kbGUuYXZlcmFnZSk7XHJcbiAgICBpZiAoYXZlcmFnZS5zaG93KSB7XHJcbiAgICAgIHNlcmllc01BID0gY2FsQ2FuZGxlTUEoYXZlcmFnZS5kYXksIGF2ZXJhZ2UubmFtZSwgYXZlcmFnZS5jb2xvciwgc2VyaWVzWzBdLmRhdGEpO1xyXG4gICAgICBzZXJpZXNNQSA9IGZpbGxTZXJpZXMoc2VyaWVzTUEsIG9wdHMsIGNvbmZpZyk7XHJcbiAgICAgIG9wdHMuc2VyaWVzTUEgPSBzZXJpZXNNQTtcclxuICAgIH0gZWxzZSBpZiAob3B0cy5zZXJpZXNNQSkge1xyXG4gICAgICBzZXJpZXNNQSA9IG9wdHMuc2VyaWVzTUEgPSBmaWxsU2VyaWVzKG9wdHMuc2VyaWVzTUEsIG9wdHMsIGNvbmZpZyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBzZXJpZXNNQSA9IHNlcmllcztcclxuICAgIH1cclxuICB9IGVsc2Uge1xyXG4gICAgc2VyaWVzTUEgPSBzZXJpZXM7XHJcbiAgfVxyXG4gIC8qIOi/h+a7pOaOiXNob3c9ZmFsc2XnmoRzZXJpZXMgKi9cclxuICBvcHRzLl9zZXJpZXNfID0gc2VyaWVzID0gZmlsdGVyU2VyaWVzKHNlcmllcyk7XHJcbiAgLy/ph43mlrDorqHnrpflm77ooajljLrln59cclxuICBvcHRzLmFyZWEgPSBuZXcgQXJyYXkoNCk7XHJcbiAgLy/lpI3kvY3nu5jlm77ljLrln59cclxuICBmb3IgKGxldCBqID0gMDsgaiA8IDQ7IGorKykge1xyXG4gICAgb3B0cy5hcmVhW2pdID0gb3B0cy5wYWRkaW5nW2pdICogb3B0cy5waXg7XHJcbiAgfVxyXG4gIC8v6YCa6L+H6K6h566X5LiJ5aSn5Yy65Z+f77ya5Zu+5L6L44CBWOi9tOOAgVnovbTnmoTlpKflsI/vvIznoa7lrprnu5jlm77ljLrln59cclxuICB2YXIgX2NhbExlZ2VuZERhdGEgPSBjYWxMZWdlbmREYXRhKHNlcmllc01BLCBvcHRzLCBjb25maWcsIG9wdHMuY2hhcnREYXRhLCBjb250ZXh0KSxcclxuICAgIGxlZ2VuZEhlaWdodCA9IF9jYWxMZWdlbmREYXRhLmFyZWEud2hvbGVIZWlnaHQsXHJcbiAgICBsZWdlbmRXaWR0aCA9IF9jYWxMZWdlbmREYXRhLmFyZWEud2hvbGVXaWR0aDtcclxuXHJcbiAgc3dpdGNoIChvcHRzLmxlZ2VuZC5wb3NpdGlvbikge1xyXG4gICAgY2FzZSAndG9wJzpcclxuICAgICAgb3B0cy5hcmVhWzBdICs9IGxlZ2VuZEhlaWdodDtcclxuICAgICAgYnJlYWs7XHJcbiAgICBjYXNlICdib3R0b20nOlxyXG4gICAgICBvcHRzLmFyZWFbMl0gKz0gbGVnZW5kSGVpZ2h0O1xyXG4gICAgICBicmVhaztcclxuICAgIGNhc2UgJ2xlZnQnOlxyXG4gICAgICBvcHRzLmFyZWFbM10gKz0gbGVnZW5kV2lkdGg7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAncmlnaHQnOlxyXG4gICAgICBvcHRzLmFyZWFbMV0gKz0gbGVnZW5kV2lkdGg7XHJcbiAgICAgIGJyZWFrO1xyXG4gIH1cclxuXHJcbiAgbGV0IF9jYWxZQXhpc0RhdGEgPSB7fSxcclxuICAgIHlBeGlzV2lkdGggPSAwO1xyXG4gIGlmIChvcHRzLnR5cGUgPT09ICdsaW5lJyB8fCBvcHRzLnR5cGUgPT09ICdjb2x1bW4nIHx8IG9wdHMudHlwZSA9PT0gJ2FyZWEnIHx8IG9wdHMudHlwZSA9PT0gJ21peCcgfHwgb3B0cy50eXBlID09PSAnY2FuZGxlJyB8fCBvcHRzLnR5cGUgPT09ICdzY2F0dGVyJyAgfHwgb3B0cy50eXBlID09PSAnYnViYmxlJyB8fCBvcHRzLnR5cGUgPT09ICdiYXInKSB7XHJcbiAgICAgIF9jYWxZQXhpc0RhdGEgPSBjYWxZQXhpc0RhdGEoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICB5QXhpc1dpZHRoID0gX2NhbFlBeGlzRGF0YS55QXhpc1dpZHRoO1xyXG4gICAgLy/lpoLmnpzmmL7npLpZ6L205qCH6aKYXHJcbiAgICBpZiAob3B0cy55QXhpcy5zaG93VGl0bGUpIHtcclxuICAgICAgbGV0IG1heFRpdGxlSGVpZ2h0ID0gMDtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBvcHRzLnlBeGlzLmRhdGEubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBtYXhUaXRsZUhlaWdodCA9IE1hdGgubWF4KG1heFRpdGxlSGVpZ2h0LCBvcHRzLnlBeGlzLmRhdGFbaV0udGl0bGVGb250U2l6ZSA/IG9wdHMueUF4aXMuZGF0YVtpXS50aXRsZUZvbnRTaXplICogb3B0cy5waXggOiBjb25maWcuZm9udFNpemUpXHJcbiAgICAgIH1cclxuICAgICAgb3B0cy5hcmVhWzBdICs9IG1heFRpdGxlSGVpZ2h0O1xyXG4gICAgfVxyXG4gICAgbGV0IHJpZ2h0SW5kZXggPSAwLFxyXG4gICAgICBsZWZ0SW5kZXggPSAwO1xyXG4gICAgLy/orqHnrpfkuLvnu5jlm77ljLrln5/lt6blj7PkvY3nva5cclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgeUF4aXNXaWR0aC5sZW5ndGg7IGkrKykge1xyXG4gICAgICBpZiAoeUF4aXNXaWR0aFtpXS5wb3NpdGlvbiA9PSAnbGVmdCcpIHtcclxuICAgICAgICBpZiAobGVmdEluZGV4ID4gMCkge1xyXG4gICAgICAgICAgb3B0cy5hcmVhWzNdICs9IHlBeGlzV2lkdGhbaV0ud2lkdGggKyBvcHRzLnlBeGlzLnBhZGRpbmcgKiBvcHRzLnBpeDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgb3B0cy5hcmVhWzNdICs9IHlBeGlzV2lkdGhbaV0ud2lkdGg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxlZnRJbmRleCArPSAxO1xyXG4gICAgICB9IGVsc2UgaWYgKHlBeGlzV2lkdGhbaV0ucG9zaXRpb24gPT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgIGlmIChyaWdodEluZGV4ID4gMCkge1xyXG4gICAgICAgICAgb3B0cy5hcmVhWzFdICs9IHlBeGlzV2lkdGhbaV0ud2lkdGggKyBvcHRzLnlBeGlzLnBhZGRpbmcgKiBvcHRzLnBpeDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgb3B0cy5hcmVhWzFdICs9IHlBeGlzV2lkdGhbaV0ud2lkdGg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJpZ2h0SW5kZXggKz0gMTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0gZWxzZSB7XHJcbiAgICBjb25maWcueUF4aXNXaWR0aCA9IHlBeGlzV2lkdGg7XHJcbiAgfVxyXG4gIG9wdHMuY2hhcnREYXRhLnlBeGlzRGF0YSA9IF9jYWxZQXhpc0RhdGE7XHJcblxyXG4gIGlmIChvcHRzLmNhdGVnb3JpZXMgJiYgb3B0cy5jYXRlZ29yaWVzLmxlbmd0aCAmJiBvcHRzLnR5cGUgIT09ICdyYWRhcicgJiYgb3B0cy50eXBlICE9PSAnZ2F1Z2UnICYmIG9wdHMudHlwZSAhPT0gJ2JhcicpIHtcclxuICAgIG9wdHMuY2hhcnREYXRhLnhBeGlzRGF0YSA9IGdldFhBeGlzUG9pbnRzKG9wdHMuY2F0ZWdvcmllcywgb3B0cywgY29uZmlnKTtcclxuICAgIGxldCBfY2FsQ2F0ZWdvcmllc0RhdGEgPSBjYWxDYXRlZ29yaWVzRGF0YShvcHRzLmNhdGVnb3JpZXMsIG9wdHMsIGNvbmZpZywgb3B0cy5jaGFydERhdGEueEF4aXNEYXRhLmVhY2hTcGFjaW5nLCBjb250ZXh0KSxcclxuICAgICAgeEF4aXNIZWlnaHQgPSBfY2FsQ2F0ZWdvcmllc0RhdGEueEF4aXNIZWlnaHQsXHJcbiAgICAgIGFuZ2xlID0gX2NhbENhdGVnb3JpZXNEYXRhLmFuZ2xlO1xyXG4gICAgY29uZmlnLnhBeGlzSGVpZ2h0ID0geEF4aXNIZWlnaHQ7XHJcbiAgICBjb25maWcuX3hBeGlzVGV4dEFuZ2xlXyA9IGFuZ2xlO1xyXG4gICAgb3B0cy5hcmVhWzJdICs9IHhBeGlzSGVpZ2h0O1xyXG4gICAgb3B0cy5jaGFydERhdGEuY2F0ZWdvcmllc0RhdGEgPSBfY2FsQ2F0ZWdvcmllc0RhdGE7XHJcbiAgfSBlbHNlIHtcclxuICAgIGlmIChvcHRzLnR5cGUgPT09ICdsaW5lJyB8fCBvcHRzLnR5cGUgPT09ICdhcmVhJyB8fCBvcHRzLnR5cGUgPT09ICdzY2F0dGVyJyB8fCBvcHRzLnR5cGUgPT09ICdidWJibGUnIHx8IG9wdHMudHlwZSA9PT0gJ2JhcicpIHtcclxuICAgICAgb3B0cy5jaGFydERhdGEueEF4aXNEYXRhID0gY2FsWEF4aXNEYXRhKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgY2F0ZWdvcmllcyA9IG9wdHMuY2hhcnREYXRhLnhBeGlzRGF0YS5yYW5nZXNGb3JtYXQ7XHJcbiAgICAgIGxldCBfY2FsQ2F0ZWdvcmllc0RhdGEgPSBjYWxDYXRlZ29yaWVzRGF0YShjYXRlZ29yaWVzLCBvcHRzLCBjb25maWcsIG9wdHMuY2hhcnREYXRhLnhBeGlzRGF0YS5lYWNoU3BhY2luZywgY29udGV4dCksXHJcbiAgICAgICAgeEF4aXNIZWlnaHQgPSBfY2FsQ2F0ZWdvcmllc0RhdGEueEF4aXNIZWlnaHQsXHJcbiAgICAgICAgYW5nbGUgPSBfY2FsQ2F0ZWdvcmllc0RhdGEuYW5nbGU7XHJcbiAgICAgIGNvbmZpZy54QXhpc0hlaWdodCA9IHhBeGlzSGVpZ2h0O1xyXG4gICAgICBjb25maWcuX3hBeGlzVGV4dEFuZ2xlXyA9IGFuZ2xlO1xyXG4gICAgICBvcHRzLmFyZWFbMl0gKz0geEF4aXNIZWlnaHQ7XHJcbiAgICAgIG9wdHMuY2hhcnREYXRhLmNhdGVnb3JpZXNEYXRhID0gX2NhbENhdGVnb3JpZXNEYXRhO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgb3B0cy5jaGFydERhdGEueEF4aXNEYXRhID0ge1xyXG4gICAgICAgIHhBeGlzUG9pbnRzOiBbXVxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gIH1cclxuICAvL+iuoeeul+WPs+Wvuem9kOWBj+enu+i3neemu1xyXG4gIGlmIChvcHRzLmVuYWJsZVNjcm9sbCAmJiBvcHRzLnhBeGlzLnNjcm9sbEFsaWduID09ICdyaWdodCcgJiYgb3B0cy5fc2Nyb2xsRGlzdGFuY2VfID09PSB1bmRlZmluZWQpIHtcclxuICAgIGxldCBvZmZzZXRMZWZ0ID0gMCxcclxuICAgICAgeEF4aXNQb2ludHMgPSBvcHRzLmNoYXJ0RGF0YS54QXhpc0RhdGEueEF4aXNQb2ludHMsXHJcbiAgICAgIHN0YXJ0WCA9IG9wdHMuY2hhcnREYXRhLnhBeGlzRGF0YS5zdGFydFgsXHJcbiAgICAgIGVuZFggPSBvcHRzLmNoYXJ0RGF0YS54QXhpc0RhdGEuZW5kWCxcclxuICAgICAgZWFjaFNwYWNpbmcgPSBvcHRzLmNoYXJ0RGF0YS54QXhpc0RhdGEuZWFjaFNwYWNpbmc7XHJcbiAgICBsZXQgdG90YWxXaWR0aCA9IGVhY2hTcGFjaW5nICogKHhBeGlzUG9pbnRzLmxlbmd0aCAtIDEpO1xyXG4gICAgbGV0IHNjcmVlbldpZHRoID0gZW5kWCAtIHN0YXJ0WDtcclxuICAgIG9mZnNldExlZnQgPSBzY3JlZW5XaWR0aCAtIHRvdGFsV2lkdGg7XHJcbiAgICBfdGhpcy5zY3JvbGxPcHRpb24gPSB7XHJcbiAgICAgIGN1cnJlbnRPZmZzZXQ6IG9mZnNldExlZnQsXHJcbiAgICAgIHN0YXJ0VG91Y2hYOiBvZmZzZXRMZWZ0LFxyXG4gICAgICBkaXN0YW5jZTogMCxcclxuICAgICAgbGFzdE1vdmVUaW1lOiAwXHJcbiAgICB9O1xyXG4gICAgb3B0cy5fc2Nyb2xsRGlzdGFuY2VfID0gb2Zmc2V0TGVmdDtcclxuICB9XHJcblxyXG4gIGlmICh0eXBlID09PSAncGllJyB8fCB0eXBlID09PSAncmluZycgfHwgdHlwZSA9PT0gJ3Jvc2UnKSB7XHJcbiAgICBjb25maWcuX3BpZVRleHRNYXhMZW5ndGhfID0gb3B0cy5kYXRhTGFiZWwgPT09IGZhbHNlID8gMCA6IGdldFBpZVRleHRNYXhMZW5ndGgoc2VyaWVzTUEsIGNvbmZpZywgY29udGV4dCwgb3B0cyk7XHJcbiAgfVxyXG4gIHN3aXRjaCAodHlwZSkge1xyXG4gICAgY2FzZSAnd29yZCc6XHJcbiAgICAgIHRoaXMuYW5pbWF0aW9uSW5zdGFuY2UgPSBuZXcgQW5pbWF0aW9uKHtcclxuICAgICAgICB0aW1pbmc6IG9wdHMudGltaW5nLFxyXG4gICAgICAgIGR1cmF0aW9uOiBkdXJhdGlvbixcclxuICAgICAgICBvblByb2Nlc3M6IGZ1bmN0aW9uKHByb2Nlc3MpIHtcclxuICAgICAgICAgIGNvbnRleHQuY2xlYXJSZWN0KDAsIDAsIG9wdHMud2lkdGgsIG9wdHMuaGVpZ2h0KTtcclxuICAgICAgICAgIGlmIChvcHRzLnJvdGF0ZSkge1xyXG4gICAgICAgICAgICBjb250ZXh0Um90YXRlKGNvbnRleHQsIG9wdHMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZHJhd1dvcmRDbG91ZERhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MpO1xyXG4gICAgICAgICAgZHJhd0NhbnZhcyhvcHRzLCBjb250ZXh0KTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9uQW5pbWF0aW9uRmluaXNoOiBmdW5jdGlvbiBvbkFuaW1hdGlvbkZpbmlzaCgpIHtcclxuICAgICAgICAgIF90aGlzLnVldmVudC50cmlnZ2VyKCdyZW5kZXJDb21wbGV0ZScpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAnbWFwJzpcclxuICAgICAgY29udGV4dC5jbGVhclJlY3QoMCwgMCwgb3B0cy53aWR0aCwgb3B0cy5oZWlnaHQpO1xyXG4gICAgICBkcmF3TWFwRGF0YVBvaW50cyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAnZnVubmVsJzpcclxuICAgICAgdGhpcy5hbmltYXRpb25JbnN0YW5jZSA9IG5ldyBBbmltYXRpb24oe1xyXG4gICAgICAgIHRpbWluZzogb3B0cy50aW1pbmcsXHJcbiAgICAgICAgZHVyYXRpb246IGR1cmF0aW9uLFxyXG4gICAgICAgIG9uUHJvY2VzczogZnVuY3Rpb24ocHJvY2Vzcykge1xyXG4gICAgICAgICAgY29udGV4dC5jbGVhclJlY3QoMCwgMCwgb3B0cy53aWR0aCwgb3B0cy5oZWlnaHQpO1xyXG4gICAgICAgICAgaWYgKG9wdHMucm90YXRlKSB7XHJcbiAgICAgICAgICAgIGNvbnRleHRSb3RhdGUoY29udGV4dCwgb3B0cyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBvcHRzLmNoYXJ0RGF0YS5mdW5uZWxEYXRhID0gZHJhd0Z1bm5lbERhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MpO1xyXG4gICAgICAgICAgZHJhd0xlZ2VuZChvcHRzLnNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0LCBvcHRzLmNoYXJ0RGF0YSk7XHJcbiAgICAgICAgICBkcmF3VG9vbFRpcEJyaWRnZShvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MpO1xyXG4gICAgICAgICAgZHJhd0NhbnZhcyhvcHRzLCBjb250ZXh0KTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9uQW5pbWF0aW9uRmluaXNoOiBmdW5jdGlvbiBvbkFuaW1hdGlvbkZpbmlzaCgpIHtcclxuICAgICAgICAgIF90aGlzLnVldmVudC50cmlnZ2VyKCdyZW5kZXJDb21wbGV0ZScpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAnbGluZSc6XHJcbiAgICAgIHRoaXMuYW5pbWF0aW9uSW5zdGFuY2UgPSBuZXcgQW5pbWF0aW9uKHtcclxuICAgICAgICB0aW1pbmc6IG9wdHMudGltaW5nLFxyXG4gICAgICAgIGR1cmF0aW9uOiBkdXJhdGlvbixcclxuICAgICAgICBvblByb2Nlc3M6IGZ1bmN0aW9uIG9uUHJvY2Vzcyhwcm9jZXNzKSB7XHJcbiAgICAgICAgICBjb250ZXh0LmNsZWFyUmVjdCgwLCAwLCBvcHRzLndpZHRoLCBvcHRzLmhlaWdodCk7XHJcbiAgICAgICAgICBpZiAob3B0cy5yb3RhdGUpIHtcclxuICAgICAgICAgICAgY29udGV4dFJvdGF0ZShjb250ZXh0LCBvcHRzKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGRyYXdZQXhpc0dyaWQoY2F0ZWdvcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgICAgIGRyYXdYQXhpcyhjYXRlZ29yaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgdmFyIF9kcmF3TGluZURhdGFQb2ludHMgPSBkcmF3TGluZURhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MpLFxyXG4gICAgICAgICAgICB4QXhpc1BvaW50cyA9IF9kcmF3TGluZURhdGFQb2ludHMueEF4aXNQb2ludHMsXHJcbiAgICAgICAgICAgIGNhbFBvaW50cyA9IF9kcmF3TGluZURhdGFQb2ludHMuY2FsUG9pbnRzLFxyXG4gICAgICAgICAgICBlYWNoU3BhY2luZyA9IF9kcmF3TGluZURhdGFQb2ludHMuZWFjaFNwYWNpbmc7XHJcbiAgICAgICAgICBvcHRzLmNoYXJ0RGF0YS54QXhpc1BvaW50cyA9IHhBeGlzUG9pbnRzO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEuY2FsUG9pbnRzID0gY2FsUG9pbnRzO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEuZWFjaFNwYWNpbmcgPSBlYWNoU3BhY2luZztcclxuICAgICAgICAgIGRyYXdZQXhpcyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICBpZiAob3B0cy5lbmFibGVNYXJrTGluZSAhPT0gZmFsc2UgJiYgcHJvY2VzcyA9PT0gMSkge1xyXG4gICAgICAgICAgICBkcmF3TWFya0xpbmUob3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGRyYXdMZWdlbmQob3B0cy5zZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgb3B0cy5jaGFydERhdGEpO1xyXG4gICAgICAgICAgZHJhd1Rvb2xUaXBCcmlkZ2Uob3B0cywgY29uZmlnLCBjb250ZXh0LCBwcm9jZXNzLCBlYWNoU3BhY2luZywgeEF4aXNQb2ludHMpO1xyXG4gICAgICAgICAgZHJhd0NhbnZhcyhvcHRzLCBjb250ZXh0KTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9uQW5pbWF0aW9uRmluaXNoOiBmdW5jdGlvbiBvbkFuaW1hdGlvbkZpbmlzaCgpIHtcclxuICAgICAgICAgIF90aGlzLnVldmVudC50cmlnZ2VyKCdyZW5kZXJDb21wbGV0ZScpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAnc2NhdHRlcic6XHJcbiAgICAgIHRoaXMuYW5pbWF0aW9uSW5zdGFuY2UgPSBuZXcgQW5pbWF0aW9uKHtcclxuICAgICAgICB0aW1pbmc6IG9wdHMudGltaW5nLFxyXG4gICAgICAgIGR1cmF0aW9uOiBkdXJhdGlvbixcclxuICAgICAgICBvblByb2Nlc3M6IGZ1bmN0aW9uIG9uUHJvY2Vzcyhwcm9jZXNzKSB7XHJcbiAgICAgICAgICBjb250ZXh0LmNsZWFyUmVjdCgwLCAwLCBvcHRzLndpZHRoLCBvcHRzLmhlaWdodCk7XHJcbiAgICAgICAgICBpZiAob3B0cy5yb3RhdGUpIHtcclxuICAgICAgICAgICAgY29udGV4dFJvdGF0ZShjb250ZXh0LCBvcHRzKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGRyYXdZQXhpc0dyaWQoY2F0ZWdvcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgICAgIGRyYXdYQXhpcyhjYXRlZ29yaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgdmFyIF9kcmF3U2NhdHRlckRhdGFQb2ludHMgPSBkcmF3U2NhdHRlckRhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MpLFxyXG4gICAgICAgICAgICB4QXhpc1BvaW50cyA9IF9kcmF3U2NhdHRlckRhdGFQb2ludHMueEF4aXNQb2ludHMsXHJcbiAgICAgICAgICAgIGNhbFBvaW50cyA9IF9kcmF3U2NhdHRlckRhdGFQb2ludHMuY2FsUG9pbnRzLFxyXG4gICAgICAgICAgICBlYWNoU3BhY2luZyA9IF9kcmF3U2NhdHRlckRhdGFQb2ludHMuZWFjaFNwYWNpbmc7XHJcbiAgICAgICAgICBvcHRzLmNoYXJ0RGF0YS54QXhpc1BvaW50cyA9IHhBeGlzUG9pbnRzO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEuY2FsUG9pbnRzID0gY2FsUG9pbnRzO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEuZWFjaFNwYWNpbmcgPSBlYWNoU3BhY2luZztcclxuICAgICAgICAgIGRyYXdZQXhpcyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICBpZiAob3B0cy5lbmFibGVNYXJrTGluZSAhPT0gZmFsc2UgJiYgcHJvY2VzcyA9PT0gMSkge1xyXG4gICAgICAgICAgICBkcmF3TWFya0xpbmUob3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGRyYXdMZWdlbmQob3B0cy5zZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgb3B0cy5jaGFydERhdGEpO1xyXG4gICAgICAgICAgZHJhd1Rvb2xUaXBCcmlkZ2Uob3B0cywgY29uZmlnLCBjb250ZXh0LCBwcm9jZXNzLCBlYWNoU3BhY2luZywgeEF4aXNQb2ludHMpO1xyXG4gICAgICAgICAgZHJhd0NhbnZhcyhvcHRzLCBjb250ZXh0KTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9uQW5pbWF0aW9uRmluaXNoOiBmdW5jdGlvbiBvbkFuaW1hdGlvbkZpbmlzaCgpIHtcclxuICAgICAgICAgIF90aGlzLnVldmVudC50cmlnZ2VyKCdyZW5kZXJDb21wbGV0ZScpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAnYnViYmxlJzpcclxuICAgICAgdGhpcy5hbmltYXRpb25JbnN0YW5jZSA9IG5ldyBBbmltYXRpb24oe1xyXG4gICAgICAgIHRpbWluZzogb3B0cy50aW1pbmcsXHJcbiAgICAgICAgZHVyYXRpb246IGR1cmF0aW9uLFxyXG4gICAgICAgIG9uUHJvY2VzczogZnVuY3Rpb24gb25Qcm9jZXNzKHByb2Nlc3MpIHtcclxuICAgICAgICAgIGNvbnRleHQuY2xlYXJSZWN0KDAsIDAsIG9wdHMud2lkdGgsIG9wdHMuaGVpZ2h0KTtcclxuICAgICAgICAgIGlmIChvcHRzLnJvdGF0ZSkge1xyXG4gICAgICAgICAgICBjb250ZXh0Um90YXRlKGNvbnRleHQsIG9wdHMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZHJhd1lBeGlzR3JpZChjYXRlZ29yaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgZHJhd1hBeGlzKGNhdGVnb3JpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICB2YXIgX2RyYXdCdWJibGVEYXRhUG9pbnRzID0gZHJhd0J1YmJsZURhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MpLFxyXG4gICAgICAgICAgICB4QXhpc1BvaW50cyA9IF9kcmF3QnViYmxlRGF0YVBvaW50cy54QXhpc1BvaW50cyxcclxuICAgICAgICAgICAgY2FsUG9pbnRzID0gX2RyYXdCdWJibGVEYXRhUG9pbnRzLmNhbFBvaW50cyxcclxuICAgICAgICAgICAgZWFjaFNwYWNpbmcgPSBfZHJhd0J1YmJsZURhdGFQb2ludHMuZWFjaFNwYWNpbmc7XHJcbiAgICAgICAgICBvcHRzLmNoYXJ0RGF0YS54QXhpc1BvaW50cyA9IHhBeGlzUG9pbnRzO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEuY2FsUG9pbnRzID0gY2FsUG9pbnRzO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEuZWFjaFNwYWNpbmcgPSBlYWNoU3BhY2luZztcclxuICAgICAgICAgIGRyYXdZQXhpcyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICBpZiAob3B0cy5lbmFibGVNYXJrTGluZSAhPT0gZmFsc2UgJiYgcHJvY2VzcyA9PT0gMSkge1xyXG4gICAgICAgICAgICBkcmF3TWFya0xpbmUob3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGRyYXdMZWdlbmQob3B0cy5zZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgb3B0cy5jaGFydERhdGEpO1xyXG4gICAgICAgICAgZHJhd1Rvb2xUaXBCcmlkZ2Uob3B0cywgY29uZmlnLCBjb250ZXh0LCBwcm9jZXNzLCBlYWNoU3BhY2luZywgeEF4aXNQb2ludHMpO1xyXG4gICAgICAgICAgZHJhd0NhbnZhcyhvcHRzLCBjb250ZXh0KTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9uQW5pbWF0aW9uRmluaXNoOiBmdW5jdGlvbiBvbkFuaW1hdGlvbkZpbmlzaCgpIHtcclxuICAgICAgICAgIF90aGlzLnVldmVudC50cmlnZ2VyKCdyZW5kZXJDb21wbGV0ZScpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAnbWl4JzpcclxuICAgICAgdGhpcy5hbmltYXRpb25JbnN0YW5jZSA9IG5ldyBBbmltYXRpb24oe1xyXG4gICAgICAgIHRpbWluZzogb3B0cy50aW1pbmcsXHJcbiAgICAgICAgZHVyYXRpb246IGR1cmF0aW9uLFxyXG4gICAgICAgIG9uUHJvY2VzczogZnVuY3Rpb24gb25Qcm9jZXNzKHByb2Nlc3MpIHtcclxuICAgICAgICAgIGNvbnRleHQuY2xlYXJSZWN0KDAsIDAsIG9wdHMud2lkdGgsIG9wdHMuaGVpZ2h0KTtcclxuICAgICAgICAgIGlmIChvcHRzLnJvdGF0ZSkge1xyXG4gICAgICAgICAgICBjb250ZXh0Um90YXRlKGNvbnRleHQsIG9wdHMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZHJhd1lBeGlzR3JpZChjYXRlZ29yaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgZHJhd1hBeGlzKGNhdGVnb3JpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICB2YXIgX2RyYXdNaXhEYXRhUG9pbnRzID0gZHJhd01peERhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MpLFxyXG4gICAgICAgICAgICB4QXhpc1BvaW50cyA9IF9kcmF3TWl4RGF0YVBvaW50cy54QXhpc1BvaW50cyxcclxuICAgICAgICAgICAgY2FsUG9pbnRzID0gX2RyYXdNaXhEYXRhUG9pbnRzLmNhbFBvaW50cyxcclxuICAgICAgICAgICAgZWFjaFNwYWNpbmcgPSBfZHJhd01peERhdGFQb2ludHMuZWFjaFNwYWNpbmc7XHJcbiAgICAgICAgICBvcHRzLmNoYXJ0RGF0YS54QXhpc1BvaW50cyA9IHhBeGlzUG9pbnRzO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEuY2FsUG9pbnRzID0gY2FsUG9pbnRzO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEuZWFjaFNwYWNpbmcgPSBlYWNoU3BhY2luZztcclxuICAgICAgICAgIGRyYXdZQXhpcyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICBpZiAob3B0cy5lbmFibGVNYXJrTGluZSAhPT0gZmFsc2UgJiYgcHJvY2VzcyA9PT0gMSkge1xyXG4gICAgICAgICAgICBkcmF3TWFya0xpbmUob3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGRyYXdMZWdlbmQob3B0cy5zZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgb3B0cy5jaGFydERhdGEpO1xyXG4gICAgICAgICAgZHJhd1Rvb2xUaXBCcmlkZ2Uob3B0cywgY29uZmlnLCBjb250ZXh0LCBwcm9jZXNzLCBlYWNoU3BhY2luZywgeEF4aXNQb2ludHMpO1xyXG4gICAgICAgICAgZHJhd0NhbnZhcyhvcHRzLCBjb250ZXh0KTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9uQW5pbWF0aW9uRmluaXNoOiBmdW5jdGlvbiBvbkFuaW1hdGlvbkZpbmlzaCgpIHtcclxuICAgICAgICAgIF90aGlzLnVldmVudC50cmlnZ2VyKCdyZW5kZXJDb21wbGV0ZScpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAnY29sdW1uJzpcclxuICAgICAgdGhpcy5hbmltYXRpb25JbnN0YW5jZSA9IG5ldyBBbmltYXRpb24oe1xyXG4gICAgICAgIHRpbWluZzogb3B0cy50aW1pbmcsXHJcbiAgICAgICAgZHVyYXRpb246IGR1cmF0aW9uLFxyXG4gICAgICAgIG9uUHJvY2VzczogZnVuY3Rpb24gb25Qcm9jZXNzKHByb2Nlc3MpIHtcclxuICAgICAgICAgIGNvbnRleHQuY2xlYXJSZWN0KDAsIDAsIG9wdHMud2lkdGgsIG9wdHMuaGVpZ2h0KTtcclxuICAgICAgICAgIGlmIChvcHRzLnJvdGF0ZSkge1xyXG4gICAgICAgICAgICBjb250ZXh0Um90YXRlKGNvbnRleHQsIG9wdHMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZHJhd1lBeGlzR3JpZChjYXRlZ29yaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgZHJhd1hBeGlzKGNhdGVnb3JpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICB2YXIgX2RyYXdDb2x1bW5EYXRhUG9pbnRzID0gZHJhd0NvbHVtbkRhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MpLFxyXG4gICAgICAgICAgICB4QXhpc1BvaW50cyA9IF9kcmF3Q29sdW1uRGF0YVBvaW50cy54QXhpc1BvaW50cyxcclxuICAgICAgICAgICAgY2FsUG9pbnRzID0gX2RyYXdDb2x1bW5EYXRhUG9pbnRzLmNhbFBvaW50cyxcclxuICAgICAgICAgICAgZWFjaFNwYWNpbmcgPSBfZHJhd0NvbHVtbkRhdGFQb2ludHMuZWFjaFNwYWNpbmc7XHJcbiAgICAgICAgICBvcHRzLmNoYXJ0RGF0YS54QXhpc1BvaW50cyA9IHhBeGlzUG9pbnRzO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEuY2FsUG9pbnRzID0gY2FsUG9pbnRzO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEuZWFjaFNwYWNpbmcgPSBlYWNoU3BhY2luZztcclxuICAgICAgICAgIGRyYXdZQXhpcyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICBpZiAob3B0cy5lbmFibGVNYXJrTGluZSAhPT0gZmFsc2UgJiYgcHJvY2VzcyA9PT0gMSkge1xyXG4gICAgICAgICAgICBkcmF3TWFya0xpbmUob3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGRyYXdMZWdlbmQob3B0cy5zZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgb3B0cy5jaGFydERhdGEpO1xyXG4gICAgICAgICAgZHJhd1Rvb2xUaXBCcmlkZ2Uob3B0cywgY29uZmlnLCBjb250ZXh0LCBwcm9jZXNzLCBlYWNoU3BhY2luZywgeEF4aXNQb2ludHMpO1xyXG4gICAgICAgICAgZHJhd0NhbnZhcyhvcHRzLCBjb250ZXh0KTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9uQW5pbWF0aW9uRmluaXNoOiBmdW5jdGlvbiBvbkFuaW1hdGlvbkZpbmlzaCgpIHtcclxuICAgICAgICAgIF90aGlzLnVldmVudC50cmlnZ2VyKCdyZW5kZXJDb21wbGV0ZScpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAnYmFyJzpcclxuICAgICAgdGhpcy5hbmltYXRpb25JbnN0YW5jZSA9IG5ldyBBbmltYXRpb24oe1xyXG4gICAgICAgIHRpbWluZzogb3B0cy50aW1pbmcsXHJcbiAgICAgICAgZHVyYXRpb246IGR1cmF0aW9uLFxyXG4gICAgICAgIG9uUHJvY2VzczogZnVuY3Rpb24gb25Qcm9jZXNzKHByb2Nlc3MpIHtcclxuICAgICAgICAgIGNvbnRleHQuY2xlYXJSZWN0KDAsIDAsIG9wdHMud2lkdGgsIG9wdHMuaGVpZ2h0KTtcclxuICAgICAgICAgIGlmIChvcHRzLnJvdGF0ZSkge1xyXG4gICAgICAgICAgICBjb250ZXh0Um90YXRlKGNvbnRleHQsIG9wdHMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZHJhd1hBeGlzKGNhdGVnb3JpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICB2YXIgX2RyYXdCYXJEYXRhUG9pbnRzID0gZHJhd0JhckRhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MpLFxyXG4gICAgICAgICAgICB5QXhpc1BvaW50cyA9IF9kcmF3QmFyRGF0YVBvaW50cy55QXhpc1BvaW50cyxcclxuICAgICAgICAgICAgY2FsUG9pbnRzID0gX2RyYXdCYXJEYXRhUG9pbnRzLmNhbFBvaW50cyxcclxuICAgICAgICAgICAgZWFjaFNwYWNpbmcgPSBfZHJhd0JhckRhdGFQb2ludHMuZWFjaFNwYWNpbmc7XHJcbiAgICAgICAgICBvcHRzLmNoYXJ0RGF0YS55QXhpc1BvaW50cyA9IHlBeGlzUG9pbnRzO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEueEF4aXNQb2ludHMgPSBvcHRzLmNoYXJ0RGF0YS54QXhpc0RhdGEueEF4aXNQb2ludHM7XHJcbiAgICAgICAgICBvcHRzLmNoYXJ0RGF0YS5jYWxQb2ludHMgPSBjYWxQb2ludHM7XHJcbiAgICAgICAgICBvcHRzLmNoYXJ0RGF0YS5lYWNoU3BhY2luZyA9IGVhY2hTcGFjaW5nO1xyXG4gICAgICAgICAgZHJhd1lBeGlzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgICAgIGlmIChvcHRzLmVuYWJsZU1hcmtMaW5lICE9PSBmYWxzZSAmJiBwcm9jZXNzID09PSAxKSB7XHJcbiAgICAgICAgICAgIGRyYXdNYXJrTGluZShvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZHJhd0xlZ2VuZChvcHRzLnNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0LCBvcHRzLmNoYXJ0RGF0YSk7XHJcbiAgICAgICAgICBkcmF3VG9vbFRpcEJyaWRnZShvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MsIGVhY2hTcGFjaW5nLCB5QXhpc1BvaW50cyk7XHJcbiAgICAgICAgICBkcmF3Q2FudmFzKG9wdHMsIGNvbnRleHQpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgb25BbmltYXRpb25GaW5pc2g6IGZ1bmN0aW9uIG9uQW5pbWF0aW9uRmluaXNoKCkge1xyXG4gICAgICAgICAgX3RoaXMudWV2ZW50LnRyaWdnZXIoJ3JlbmRlckNvbXBsZXRlJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgYnJlYWs7XHJcbiAgICBjYXNlICdhcmVhJzpcclxuICAgICAgdGhpcy5hbmltYXRpb25JbnN0YW5jZSA9IG5ldyBBbmltYXRpb24oe1xyXG4gICAgICAgIHRpbWluZzogb3B0cy50aW1pbmcsXHJcbiAgICAgICAgZHVyYXRpb246IGR1cmF0aW9uLFxyXG4gICAgICAgIG9uUHJvY2VzczogZnVuY3Rpb24gb25Qcm9jZXNzKHByb2Nlc3MpIHtcclxuICAgICAgICAgIGNvbnRleHQuY2xlYXJSZWN0KDAsIDAsIG9wdHMud2lkdGgsIG9wdHMuaGVpZ2h0KTtcclxuICAgICAgICAgIGlmIChvcHRzLnJvdGF0ZSkge1xyXG4gICAgICAgICAgICBjb250ZXh0Um90YXRlKGNvbnRleHQsIG9wdHMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZHJhd1lBeGlzR3JpZChjYXRlZ29yaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgZHJhd1hBeGlzKGNhdGVnb3JpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICB2YXIgX2RyYXdBcmVhRGF0YVBvaW50cyA9IGRyYXdBcmVhRGF0YVBvaW50cyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgcHJvY2VzcyksXHJcbiAgICAgICAgICAgIHhBeGlzUG9pbnRzID0gX2RyYXdBcmVhRGF0YVBvaW50cy54QXhpc1BvaW50cyxcclxuICAgICAgICAgICAgY2FsUG9pbnRzID0gX2RyYXdBcmVhRGF0YVBvaW50cy5jYWxQb2ludHMsXHJcbiAgICAgICAgICAgIGVhY2hTcGFjaW5nID0gX2RyYXdBcmVhRGF0YVBvaW50cy5lYWNoU3BhY2luZztcclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLnhBeGlzUG9pbnRzID0geEF4aXNQb2ludHM7XHJcbiAgICAgICAgICBvcHRzLmNoYXJ0RGF0YS5jYWxQb2ludHMgPSBjYWxQb2ludHM7XHJcbiAgICAgICAgICBvcHRzLmNoYXJ0RGF0YS5lYWNoU3BhY2luZyA9IGVhY2hTcGFjaW5nO1xyXG4gICAgICAgICAgZHJhd1lBeGlzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgICAgIGlmIChvcHRzLmVuYWJsZU1hcmtMaW5lICE9PSBmYWxzZSAmJiBwcm9jZXNzID09PSAxKSB7XHJcbiAgICAgICAgICAgIGRyYXdNYXJrTGluZShvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZHJhd0xlZ2VuZChvcHRzLnNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0LCBvcHRzLmNoYXJ0RGF0YSk7XHJcbiAgICAgICAgICBkcmF3VG9vbFRpcEJyaWRnZShvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MsIGVhY2hTcGFjaW5nLCB4QXhpc1BvaW50cyk7XHJcbiAgICAgICAgICBkcmF3Q2FudmFzKG9wdHMsIGNvbnRleHQpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgb25BbmltYXRpb25GaW5pc2g6IGZ1bmN0aW9uIG9uQW5pbWF0aW9uRmluaXNoKCkge1xyXG4gICAgICAgICAgX3RoaXMudWV2ZW50LnRyaWdnZXIoJ3JlbmRlckNvbXBsZXRlJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgYnJlYWs7XHJcbiAgICBjYXNlICdyaW5nJzpcclxuICAgIGNhc2UgJ3BpZSc6XHJcbiAgICAgIHRoaXMuYW5pbWF0aW9uSW5zdGFuY2UgPSBuZXcgQW5pbWF0aW9uKHtcclxuICAgICAgICB0aW1pbmc6IG9wdHMudGltaW5nLFxyXG4gICAgICAgIGR1cmF0aW9uOiBkdXJhdGlvbixcclxuICAgICAgICBvblByb2Nlc3M6IGZ1bmN0aW9uIG9uUHJvY2Vzcyhwcm9jZXNzKSB7XHJcbiAgICAgICAgICBjb250ZXh0LmNsZWFyUmVjdCgwLCAwLCBvcHRzLndpZHRoLCBvcHRzLmhlaWdodCk7XHJcbiAgICAgICAgICBpZiAob3B0cy5yb3RhdGUpIHtcclxuICAgICAgICAgICAgY29udGV4dFJvdGF0ZShjb250ZXh0LCBvcHRzKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLnBpZURhdGEgPSBkcmF3UGllRGF0YVBvaW50cyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgcHJvY2Vzcyk7XHJcbiAgICAgICAgICBkcmF3TGVnZW5kKG9wdHMuc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIG9wdHMuY2hhcnREYXRhKTtcclxuICAgICAgICAgIGRyYXdUb29sVGlwQnJpZGdlKG9wdHMsIGNvbmZpZywgY29udGV4dCwgcHJvY2Vzcyk7XHJcbiAgICAgICAgICBkcmF3Q2FudmFzKG9wdHMsIGNvbnRleHQpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgb25BbmltYXRpb25GaW5pc2g6IGZ1bmN0aW9uIG9uQW5pbWF0aW9uRmluaXNoKCkge1xyXG4gICAgICAgICAgX3RoaXMudWV2ZW50LnRyaWdnZXIoJ3JlbmRlckNvbXBsZXRlJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgYnJlYWs7XHJcbiAgICBjYXNlICdyb3NlJzpcclxuICAgICAgdGhpcy5hbmltYXRpb25JbnN0YW5jZSA9IG5ldyBBbmltYXRpb24oe1xyXG4gICAgICAgIHRpbWluZzogb3B0cy50aW1pbmcsXHJcbiAgICAgICAgZHVyYXRpb246IGR1cmF0aW9uLFxyXG4gICAgICAgIG9uUHJvY2VzczogZnVuY3Rpb24gb25Qcm9jZXNzKHByb2Nlc3MpIHtcclxuICAgICAgICAgIGNvbnRleHQuY2xlYXJSZWN0KDAsIDAsIG9wdHMud2lkdGgsIG9wdHMuaGVpZ2h0KTtcclxuICAgICAgICAgIGlmIChvcHRzLnJvdGF0ZSkge1xyXG4gICAgICAgICAgICBjb250ZXh0Um90YXRlKGNvbnRleHQsIG9wdHMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEucGllRGF0YSA9IGRyYXdSb3NlRGF0YVBvaW50cyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgcHJvY2Vzcyk7XHJcbiAgICAgICAgICBkcmF3TGVnZW5kKG9wdHMuc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIG9wdHMuY2hhcnREYXRhKTtcclxuICAgICAgICAgIGRyYXdUb29sVGlwQnJpZGdlKG9wdHMsIGNvbmZpZywgY29udGV4dCwgcHJvY2Vzcyk7XHJcbiAgICAgICAgICBkcmF3Q2FudmFzKG9wdHMsIGNvbnRleHQpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgb25BbmltYXRpb25GaW5pc2g6IGZ1bmN0aW9uIG9uQW5pbWF0aW9uRmluaXNoKCkge1xyXG4gICAgICAgICAgX3RoaXMudWV2ZW50LnRyaWdnZXIoJ3JlbmRlckNvbXBsZXRlJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgYnJlYWs7XHJcbiAgICBjYXNlICdyYWRhcic6XHJcbiAgICAgIHRoaXMuYW5pbWF0aW9uSW5zdGFuY2UgPSBuZXcgQW5pbWF0aW9uKHtcclxuICAgICAgICB0aW1pbmc6IG9wdHMudGltaW5nLFxyXG4gICAgICAgIGR1cmF0aW9uOiBkdXJhdGlvbixcclxuICAgICAgICBvblByb2Nlc3M6IGZ1bmN0aW9uIG9uUHJvY2Vzcyhwcm9jZXNzKSB7XHJcbiAgICAgICAgICBjb250ZXh0LmNsZWFyUmVjdCgwLCAwLCBvcHRzLndpZHRoLCBvcHRzLmhlaWdodCk7XHJcbiAgICAgICAgICBpZiAob3B0cy5yb3RhdGUpIHtcclxuICAgICAgICAgICAgY29udGV4dFJvdGF0ZShjb250ZXh0LCBvcHRzKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLnJhZGFyRGF0YSA9IGRyYXdSYWRhckRhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MpO1xyXG4gICAgICAgICAgZHJhd0xlZ2VuZChvcHRzLnNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0LCBvcHRzLmNoYXJ0RGF0YSk7XHJcbiAgICAgICAgICBkcmF3VG9vbFRpcEJyaWRnZShvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MpO1xyXG4gICAgICAgICAgZHJhd0NhbnZhcyhvcHRzLCBjb250ZXh0KTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9uQW5pbWF0aW9uRmluaXNoOiBmdW5jdGlvbiBvbkFuaW1hdGlvbkZpbmlzaCgpIHtcclxuICAgICAgICAgIF90aGlzLnVldmVudC50cmlnZ2VyKCdyZW5kZXJDb21wbGV0ZScpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAnYXJjYmFyJzpcclxuICAgICAgdGhpcy5hbmltYXRpb25JbnN0YW5jZSA9IG5ldyBBbmltYXRpb24oe1xyXG4gICAgICAgIHRpbWluZzogb3B0cy50aW1pbmcsXHJcbiAgICAgICAgZHVyYXRpb246IGR1cmF0aW9uLFxyXG4gICAgICAgIG9uUHJvY2VzczogZnVuY3Rpb24gb25Qcm9jZXNzKHByb2Nlc3MpIHtcclxuICAgICAgICAgIGNvbnRleHQuY2xlYXJSZWN0KDAsIDAsIG9wdHMud2lkdGgsIG9wdHMuaGVpZ2h0KTtcclxuICAgICAgICAgIGlmIChvcHRzLnJvdGF0ZSkge1xyXG4gICAgICAgICAgICBjb250ZXh0Um90YXRlKGNvbnRleHQsIG9wdHMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEuYXJjYmFyRGF0YSA9IGRyYXdBcmNiYXJEYXRhUG9pbnRzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0LCBwcm9jZXNzKTtcclxuICAgICAgICAgIGRyYXdDYW52YXMob3B0cywgY29udGV4dCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBvbkFuaW1hdGlvbkZpbmlzaDogZnVuY3Rpb24gb25BbmltYXRpb25GaW5pc2goKSB7XHJcbiAgICAgICAgICBfdGhpcy51ZXZlbnQudHJpZ2dlcigncmVuZGVyQ29tcGxldGUnKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBicmVhaztcclxuICAgIGNhc2UgJ2dhdWdlJzpcclxuICAgICAgdGhpcy5hbmltYXRpb25JbnN0YW5jZSA9IG5ldyBBbmltYXRpb24oe1xyXG4gICAgICAgIHRpbWluZzogb3B0cy50aW1pbmcsXHJcbiAgICAgICAgZHVyYXRpb246IGR1cmF0aW9uLFxyXG4gICAgICAgIG9uUHJvY2VzczogZnVuY3Rpb24gb25Qcm9jZXNzKHByb2Nlc3MpIHtcclxuICAgICAgICAgIGNvbnRleHQuY2xlYXJSZWN0KDAsIDAsIG9wdHMud2lkdGgsIG9wdHMuaGVpZ2h0KTtcclxuICAgICAgICAgIGlmIChvcHRzLnJvdGF0ZSkge1xyXG4gICAgICAgICAgICBjb250ZXh0Um90YXRlKGNvbnRleHQsIG9wdHMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEuZ2F1Z2VEYXRhID0gZHJhd0dhdWdlRGF0YVBvaW50cyhjYXRlZ29yaWVzLCBzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgcHJvY2Vzcyk7XHJcbiAgICAgICAgICBkcmF3Q2FudmFzKG9wdHMsIGNvbnRleHQpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgb25BbmltYXRpb25GaW5pc2g6IGZ1bmN0aW9uIG9uQW5pbWF0aW9uRmluaXNoKCkge1xyXG4gICAgICAgICAgX3RoaXMudWV2ZW50LnRyaWdnZXIoJ3JlbmRlckNvbXBsZXRlJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgYnJlYWs7XHJcbiAgICBjYXNlICdjYW5kbGUnOlxyXG4gICAgICB0aGlzLmFuaW1hdGlvbkluc3RhbmNlID0gbmV3IEFuaW1hdGlvbih7XHJcbiAgICAgICAgdGltaW5nOiBvcHRzLnRpbWluZyxcclxuICAgICAgICBkdXJhdGlvbjogZHVyYXRpb24sXHJcbiAgICAgICAgb25Qcm9jZXNzOiBmdW5jdGlvbiBvblByb2Nlc3MocHJvY2Vzcykge1xyXG4gICAgICAgICAgY29udGV4dC5jbGVhclJlY3QoMCwgMCwgb3B0cy53aWR0aCwgb3B0cy5oZWlnaHQpO1xyXG4gICAgICAgICAgaWYgKG9wdHMucm90YXRlKSB7XHJcbiAgICAgICAgICAgIGNvbnRleHRSb3RhdGUoY29udGV4dCwgb3B0cyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBkcmF3WUF4aXNHcmlkKGNhdGVnb3JpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICBkcmF3WEF4aXMoY2F0ZWdvcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgICAgIHZhciBfZHJhd0NhbmRsZURhdGFQb2ludHMgPSBkcmF3Q2FuZGxlRGF0YVBvaW50cyhzZXJpZXMsIHNlcmllc01BLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MpLFxyXG4gICAgICAgICAgICB4QXhpc1BvaW50cyA9IF9kcmF3Q2FuZGxlRGF0YVBvaW50cy54QXhpc1BvaW50cyxcclxuICAgICAgICAgICAgY2FsUG9pbnRzID0gX2RyYXdDYW5kbGVEYXRhUG9pbnRzLmNhbFBvaW50cyxcclxuICAgICAgICAgICAgZWFjaFNwYWNpbmcgPSBfZHJhd0NhbmRsZURhdGFQb2ludHMuZWFjaFNwYWNpbmc7XHJcbiAgICAgICAgICBvcHRzLmNoYXJ0RGF0YS54QXhpc1BvaW50cyA9IHhBeGlzUG9pbnRzO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEuY2FsUG9pbnRzID0gY2FsUG9pbnRzO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEuZWFjaFNwYWNpbmcgPSBlYWNoU3BhY2luZztcclxuICAgICAgICAgIGRyYXdZQXhpcyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICBpZiAob3B0cy5lbmFibGVNYXJrTGluZSAhPT0gZmFsc2UgJiYgcHJvY2VzcyA9PT0gMSkge1xyXG4gICAgICAgICAgICBkcmF3TWFya0xpbmUob3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChzZXJpZXNNQSkge1xyXG4gICAgICAgICAgICBkcmF3TGVnZW5kKHNlcmllc01BLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIG9wdHMuY2hhcnREYXRhKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGRyYXdMZWdlbmQob3B0cy5zZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgb3B0cy5jaGFydERhdGEpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZHJhd1Rvb2xUaXBCcmlkZ2Uob3B0cywgY29uZmlnLCBjb250ZXh0LCBwcm9jZXNzLCBlYWNoU3BhY2luZywgeEF4aXNQb2ludHMpO1xyXG4gICAgICAgICAgZHJhd0NhbnZhcyhvcHRzLCBjb250ZXh0KTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9uQW5pbWF0aW9uRmluaXNoOiBmdW5jdGlvbiBvbkFuaW1hdGlvbkZpbmlzaCgpIHtcclxuICAgICAgICAgIF90aGlzLnVldmVudC50cmlnZ2VyKCdyZW5kZXJDb21wbGV0ZScpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGJyZWFrO1xyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gdUNoYXJ0c0V2ZW50KCkge1xyXG4gIHRoaXMuZXZlbnRzID0ge307XHJcbn1cclxuXHJcbnVDaGFydHNFdmVudC5wcm90b3R5cGUuYWRkRXZlbnRMaXN0ZW5lciA9IGZ1bmN0aW9uKHR5cGUsIGxpc3RlbmVyKSB7XHJcbiAgdGhpcy5ldmVudHNbdHlwZV0gPSB0aGlzLmV2ZW50c1t0eXBlXSB8fCBbXTtcclxuICB0aGlzLmV2ZW50c1t0eXBlXS5wdXNoKGxpc3RlbmVyKTtcclxufTtcclxuXHJcbnVDaGFydHNFdmVudC5wcm90b3R5cGUuZGVsRXZlbnRMaXN0ZW5lciA9IGZ1bmN0aW9uKHR5cGUpIHtcclxuICB0aGlzLmV2ZW50c1t0eXBlXSA9IFtdO1xyXG59O1xyXG5cclxudUNoYXJ0c0V2ZW50LnByb3RvdHlwZS50cmlnZ2VyID0gZnVuY3Rpb24oKSB7XHJcbiAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBBcnJheShfbGVuKSwgX2tleSA9IDA7IF9rZXkgPCBfbGVuOyBfa2V5KyspIHtcclxuICAgIGFyZ3NbX2tleV0gPSBhcmd1bWVudHNbX2tleV07XHJcbiAgfVxyXG4gIHZhciB0eXBlID0gYXJnc1swXTtcclxuICB2YXIgcGFyYW1zID0gYXJncy5zbGljZSgxKTtcclxuICBpZiAoISF0aGlzLmV2ZW50c1t0eXBlXSkge1xyXG4gICAgdGhpcy5ldmVudHNbdHlwZV0uZm9yRWFjaChmdW5jdGlvbihsaXN0ZW5lcikge1xyXG4gICAgICB0cnkge1xyXG4gICAgICAgIGxpc3RlbmVyLmFwcGx5KG51bGwsIHBhcmFtcyk7XHJcbiAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgIC8vY29uc29sZS5sb2coJ1t1Q2hhcnRzXSAnK2UpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbn07XHJcblxyXG52YXIgdUNoYXJ0cyA9IGZ1bmN0aW9uIHVDaGFydHMob3B0cykge1xyXG4gIG9wdHMucGl4ID0gb3B0cy5waXhlbFJhdGlvID8gb3B0cy5waXhlbFJhdGlvIDogMTtcclxuICBvcHRzLmZvbnRTaXplID0gb3B0cy5mb250U2l6ZSA/IG9wdHMuZm9udFNpemUgOiAxMztcclxuICBvcHRzLmZvbnRDb2xvciA9IG9wdHMuZm9udENvbG9yID8gb3B0cy5mb250Q29sb3IgOiBjb25maWcuZm9udENvbG9yO1xyXG4gIGlmIChvcHRzLmJhY2tncm91bmQgPT0gXCJcIiB8fCBvcHRzLmJhY2tncm91bmQgPT0gXCJub25lXCIpIHtcclxuICAgIG9wdHMuYmFja2dyb3VuZCA9IFwiI0ZGRkZGRlwiXHJcbiAgfVxyXG4gIG9wdHMudGl0bGUgPSBhc3NpZ24oe30sIG9wdHMudGl0bGUpO1xyXG4gIG9wdHMuc3VidGl0bGUgPSBhc3NpZ24oe30sIG9wdHMuc3VidGl0bGUpO1xyXG4gIG9wdHMuZHVyYXRpb24gPSBvcHRzLmR1cmF0aW9uID8gb3B0cy5kdXJhdGlvbiA6IDEwMDA7XHJcbiAgb3B0cy55QXhpcyA9IGFzc2lnbih7fSwge1xyXG4gICAgZGF0YTogW10sXHJcbiAgICBzaG93VGl0bGU6IGZhbHNlLFxyXG4gICAgZGlzYWJsZWQ6IGZhbHNlLFxyXG4gICAgZGlzYWJsZUdyaWQ6IGZhbHNlLFxyXG4gICAgc3BsaXROdW1iZXI6IDUsXHJcbiAgICBncmlkVHlwZTogJ3NvbGlkJyxcclxuICAgIGRhc2hMZW5ndGg6IDQgKiBvcHRzLnBpeCxcclxuICAgIGdyaWRDb2xvcjogJyNjY2NjY2MnLFxyXG4gICAgcGFkZGluZzogMTAsXHJcbiAgICBmb250Q29sb3I6ICcjNjY2NjY2J1xyXG4gIH0sIG9wdHMueUF4aXMpO1xyXG4gIG9wdHMueEF4aXMgPSBhc3NpZ24oe30sIHtcclxuICAgIHJvdGF0ZUxhYmVsOiBmYWxzZSxcclxuICAgIGRpc2FibGVkOiBmYWxzZSxcclxuICAgIGRpc2FibGVHcmlkOiBmYWxzZSxcclxuICAgIHNwbGl0TnVtYmVyOiA1LFxyXG4gICAgY2FsaWJyYXRpb246ZmFsc2UsXHJcbiAgICBncmlkVHlwZTogJ3NvbGlkJyxcclxuICAgIGRhc2hMZW5ndGg6IDQsXHJcbiAgICBzY3JvbGxBbGlnbjogJ2xlZnQnLFxyXG4gICAgYm91bmRhcnlHYXA6ICdjZW50ZXInLFxyXG4gICAgYXhpc0xpbmU6IHRydWUsXHJcbiAgICBheGlzTGluZUNvbG9yOiAnI2NjY2NjYydcclxuICB9LCBvcHRzLnhBeGlzKTtcclxuICBvcHRzLnhBeGlzLnNjcm9sbFBvc2l0aW9uID0gb3B0cy54QXhpcy5zY3JvbGxBbGlnbjtcclxuICBvcHRzLmxlZ2VuZCA9IGFzc2lnbih7fSwge1xyXG4gICAgc2hvdzogdHJ1ZSxcclxuICAgIHBvc2l0aW9uOiAnYm90dG9tJyxcclxuICAgIGZsb2F0OiAnY2VudGVyJyxcclxuICAgIGJhY2tncm91bmRDb2xvcjogJ3JnYmEoMCwwLDAsMCknLFxyXG4gICAgYm9yZGVyQ29sb3I6ICdyZ2JhKDAsMCwwLDApJyxcclxuICAgIGJvcmRlcldpZHRoOiAwLFxyXG4gICAgcGFkZGluZzogNSxcclxuICAgIG1hcmdpbjogNSxcclxuICAgIGl0ZW1HYXA6IDEwLFxyXG4gICAgZm9udFNpemU6IG9wdHMuZm9udFNpemUsXHJcbiAgICBsaW5lSGVpZ2h0OiBvcHRzLmZvbnRTaXplLFxyXG4gICAgZm9udENvbG9yOiBvcHRzLmZvbnRDb2xvcixcclxuICAgIGZvcm1hdHRlcjoge30sXHJcbiAgICBoaWRkZW5Db2xvcjogJyNDRUNFQ0UnXHJcbiAgfSwgb3B0cy5sZWdlbmQpO1xyXG4gIG9wdHMuZXh0cmEgPSBhc3NpZ24oe30sIG9wdHMuZXh0cmEpO1xyXG4gIG9wdHMucm90YXRlID0gb3B0cy5yb3RhdGUgPyB0cnVlIDogZmFsc2U7XHJcbiAgb3B0cy5hbmltYXRpb24gPSBvcHRzLmFuaW1hdGlvbiA/IHRydWUgOiBmYWxzZTtcclxuICBvcHRzLnJvdGF0ZSA9IG9wdHMucm90YXRlID8gdHJ1ZSA6IGZhbHNlO1xyXG4gIG9wdHMuY2FudmFzMmQgPSBvcHRzLmNhbnZhczJkID8gdHJ1ZSA6IGZhbHNlO1xyXG4gIFxyXG4gIGxldCBjb25maWckJDEgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGNvbmZpZykpO1xyXG4gIGNvbmZpZyQkMS5jb2xvciA9IG9wdHMuY29sb3IgPyBvcHRzLmNvbG9yIDogY29uZmlnJCQxLmNvbG9yO1xyXG4gIGNvbmZpZyQkMS55QXhpc1RpdGxlV2lkdGggPSBvcHRzLnlBeGlzLmRpc2FibGVkICE9PSB0cnVlICYmIG9wdHMueUF4aXMudGl0bGUgPyBjb25maWckJDEueUF4aXNUaXRsZVdpZHRoIDogMDtcclxuICBpZiAob3B0cy50eXBlID09ICdwaWUnKSB7XHJcbiAgICBjb25maWckJDEucGllQ2hhcnRMaW5lUGFkZGluZyA9IG9wdHMuZGF0YUxhYmVsID09PSBmYWxzZSA/IDAgOiBvcHRzLmV4dHJhLnBpZS5sYWJlbFdpZHRoICogb3B0cy5waXggfHwgY29uZmlnJCQxLnBpZUNoYXJ0TGluZVBhZGRpbmcgKiBvcHRzLnBpeDtcclxuICB9XHJcbiAgaWYgKG9wdHMudHlwZSA9PSAncmluZycpIHtcclxuICAgIGNvbmZpZyQkMS5waWVDaGFydExpbmVQYWRkaW5nID0gb3B0cy5kYXRhTGFiZWwgPT09IGZhbHNlID8gMCA6IG9wdHMuZXh0cmEucmluZy5sYWJlbFdpZHRoICogb3B0cy5waXggfHwgY29uZmlnJCQxLnBpZUNoYXJ0TGluZVBhZGRpbmcgKiBvcHRzLnBpeDtcclxuICB9XHJcbiAgaWYgKG9wdHMudHlwZSA9PSAncm9zZScpIHtcclxuICAgIGNvbmZpZyQkMS5waWVDaGFydExpbmVQYWRkaW5nID0gb3B0cy5kYXRhTGFiZWwgPT09IGZhbHNlID8gMCA6IG9wdHMuZXh0cmEucm9zZS5sYWJlbFdpZHRoICogb3B0cy5waXggfHwgY29uZmlnJCQxLnBpZUNoYXJ0TGluZVBhZGRpbmcgKiBvcHRzLnBpeDtcclxuICB9XHJcbiAgY29uZmlnJCQxLnBpZUNoYXJ0VGV4dFBhZGRpbmcgPSBvcHRzLmRhdGFMYWJlbCA9PT0gZmFsc2UgPyAwIDogY29uZmlnJCQxLnBpZUNoYXJ0VGV4dFBhZGRpbmcgKiBvcHRzLnBpeDtcclxuICBjb25maWckJDEueUF4aXNTcGxpdCA9IG9wdHMueUF4aXMuc3BsaXROdW1iZXIgPyBvcHRzLnlBeGlzLnNwbGl0TnVtYmVyIDogY29uZmlnLnlBeGlzU3BsaXQ7XHJcblxyXG4gIC8v5bGP5bmV5peL6L2sXHJcbiAgY29uZmlnJCQxLnJvdGF0ZSA9IG9wdHMucm90YXRlO1xyXG4gIGlmIChvcHRzLnJvdGF0ZSkge1xyXG4gICAgbGV0IHRlbXBXaWR0aCA9IG9wdHMud2lkdGg7XHJcbiAgICBsZXQgdGVtcEhlaWdodCA9IG9wdHMuaGVpZ2h0O1xyXG4gICAgb3B0cy53aWR0aCA9IHRlbXBIZWlnaHQ7XHJcbiAgICBvcHRzLmhlaWdodCA9IHRlbXBXaWR0aDtcclxuICB9XHJcblxyXG4gIC8v6YCC6YWN6auY5YiG5bGPXHJcbiAgb3B0cy5wYWRkaW5nID0gb3B0cy5wYWRkaW5nID8gb3B0cy5wYWRkaW5nIDogY29uZmlnJCQxLnBhZGRpbmc7XHJcbiAgY29uZmlnJCQxLnlBeGlzV2lkdGggPSBjb25maWcueUF4aXNXaWR0aCAqIG9wdHMucGl4O1xyXG4gIGNvbmZpZyQkMS54QXhpc0hlaWdodCA9IGNvbmZpZy54QXhpc0hlaWdodCAqIG9wdHMucGl4O1xyXG4gIGlmIChvcHRzLmVuYWJsZVNjcm9sbCAmJiBvcHRzLnhBeGlzLnNjcm9sbFNob3cpIHtcclxuICAgIGNvbmZpZyQkMS54QXhpc0hlaWdodCArPSA2ICogb3B0cy5waXg7XHJcbiAgfVxyXG4gIGNvbmZpZyQkMS54QXhpc0xpbmVIZWlnaHQgPSBjb25maWcueEF4aXNMaW5lSGVpZ2h0ICogb3B0cy5waXg7XHJcbiAgY29uZmlnJCQxLmZvbnRTaXplID0gb3B0cy5mb250U2l6ZSAqIG9wdHMucGl4O1xyXG4gIGNvbmZpZyQkMS50aXRsZUZvbnRTaXplID0gY29uZmlnLnRpdGxlRm9udFNpemUgKiBvcHRzLnBpeDtcclxuICBjb25maWckJDEuc3VidGl0bGVGb250U2l6ZSA9IGNvbmZpZy5zdWJ0aXRsZUZvbnRTaXplICogb3B0cy5waXg7XHJcbiAgY29uZmlnJCQxLnRvb2xUaXBQYWRkaW5nID0gY29uZmlnLnRvb2xUaXBQYWRkaW5nICogb3B0cy5waXg7XHJcbiAgY29uZmlnJCQxLnRvb2xUaXBMaW5lSGVpZ2h0ID0gY29uZmlnLnRvb2xUaXBMaW5lSGVpZ2h0ICogb3B0cy5waXg7XHJcbiAgY29uZmlnJCQxLmNvbHVtZVBhZGRpbmcgPSBjb25maWcuY29sdW1lUGFkZGluZyAqIG9wdHMucGl4O1xyXG4gIC8vdGhpcy5jb250ZXh0ID0gb3B0cy5jb250ZXh0ID8gb3B0cy5jb250ZXh0IDogdW5pLmNyZWF0ZUNhbnZhc0NvbnRleHQob3B0cy5jYW52YXNJZCwgb3B0cy4kdGhpcyk7XHJcbiAgLy92Mi4w54mI5pys5ZCO6ZyA6KaB6Ieq6KGM6I635Y+WY29udGV4dOW5tuS8oOWFpW9wdHPov5vooYzliJ3lp4vljJbvvIzov5nkuYjlgZrmmK/kuLrkuobnoa7kv511Q2hhcnRz5Y+v5Lul6Leo5pu05aSa56uv5L2/55So77yM5bm25L+d6K+B5LqG6Ieq5a6a5LmJ57uE5Lu2dGhpc+WunuS+i+S4jeiiq+W+queOr+W1jOWll+OAguWmguaenOaCqOinieW+l+S4jeS+v+ivt+WPlua2iOS4iumdouazqOmHiu+8jOmHh+eUqHYxLjDniYjmnKznmoTmlrnlvI/kvb/nlKjvvIzlr7nmraTnu5nmgqjluKbmnaXnmoTkuI3kvr/mlazor7fosIXop6PvvIFcclxuICBpZighb3B0cy5jb250ZXh0KXtcclxuICAgIHRocm93IG5ldyBFcnJvcignW3VDaGFydHNdIOacquiOt+WPluWIsGNvbnRleHTvvIHms6jmhI/vvJp2Mi4w54mI5pys5ZCO77yM6ZyA6KaB6Ieq6KGM6I635Y+WY2FudmFz55qE57uY5Zu+5LiK5LiL5paH5bm25Lyg5YWlb3B0cy5jb250ZXh077yBJyk7XHJcbiAgfVxyXG4gIHRoaXMuY29udGV4dCA9IG9wdHMuY29udGV4dDtcclxuICBpZiAoIXRoaXMuY29udGV4dC5zZXRUZXh0QWxpZ24pIHtcclxuICAgIHRoaXMuY29udGV4dC5zZXRTdHJva2VTdHlsZSA9IGZ1bmN0aW9uKGUpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuc3Ryb2tlU3R5bGUgPSBlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jb250ZXh0LnNldExpbmVXaWR0aCA9IGZ1bmN0aW9uKGUpIHtcclxuICAgICAgcmV0dXJuIHRoaXMubGluZVdpZHRoID0gZTtcclxuICAgIH1cclxuICAgIHRoaXMuY29udGV4dC5zZXRMaW5lQ2FwID0gZnVuY3Rpb24oZSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5saW5lQ2FwID0gZTtcclxuICAgIH1cclxuICAgIHRoaXMuY29udGV4dC5zZXRGb250U2l6ZSA9IGZ1bmN0aW9uKGUpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZm9udCA9IGUgKyBcInB4IHNhbnMtc2VyaWZcIjtcclxuICAgIH1cclxuICAgIHRoaXMuY29udGV4dC5zZXRGaWxsU3R5bGUgPSBmdW5jdGlvbihlKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmZpbGxTdHlsZSA9IGU7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNvbnRleHQuc2V0VGV4dEFsaWduID0gZnVuY3Rpb24oZSkge1xyXG4gICAgICByZXR1cm4gdGhpcy50ZXh0QWxpZ24gPSBlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jb250ZXh0LmRyYXcgPSBmdW5jdGlvbigpIHt9XHJcbiAgfVxyXG4gIC8v5YW85a65TlZVRXNldExpbmVEYXNoXHJcbiAgaWYoIXRoaXMuY29udGV4dC5zZXRMaW5lRGFzaCl7XHJcbiAgICB0aGlzLmNvbnRleHQuc2V0TGluZURhc2ggPSBmdW5jdGlvbihlKSB7fVxyXG4gIH1cclxuICBvcHRzLmNoYXJ0RGF0YSA9IHt9O1xyXG4gIHRoaXMudWV2ZW50ID0gbmV3IHVDaGFydHNFdmVudCgpO1xyXG4gIHRoaXMuc2Nyb2xsT3B0aW9uID0ge1xyXG4gICAgY3VycmVudE9mZnNldDogMCxcclxuICAgIHN0YXJ0VG91Y2hYOiAwLFxyXG4gICAgZGlzdGFuY2U6IDAsXHJcbiAgICBsYXN0TW92ZVRpbWU6IDBcclxuICB9O1xyXG4gIHRoaXMub3B0cyA9IG9wdHM7XHJcbiAgdGhpcy5jb25maWcgPSBjb25maWckJDE7XHJcbiAgZHJhd0NoYXJ0cy5jYWxsKHRoaXMsIG9wdHMudHlwZSwgb3B0cywgY29uZmlnJCQxLCB0aGlzLmNvbnRleHQpO1xyXG59O1xyXG5cclxudUNoYXJ0cy5wcm90b3R5cGUudXBkYXRlRGF0YSA9IGZ1bmN0aW9uKCkge1xyXG4gIGxldCBkYXRhID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiB7fTtcclxuICB0aGlzLm9wdHMgPSBhc3NpZ24oe30sIHRoaXMub3B0cywgZGF0YSk7XHJcbiAgdGhpcy5vcHRzLnVwZGF0ZURhdGEgPSB0cnVlO1xyXG4gIGxldCBzY3JvbGxQb3NpdGlvbiA9IGRhdGEuc2Nyb2xsUG9zaXRpb24gfHwgJ2N1cnJlbnQnO1xyXG4gIHN3aXRjaCAoc2Nyb2xsUG9zaXRpb24pIHtcclxuICAgIGNhc2UgJ2N1cnJlbnQnOlxyXG4gICAgICAvL3RoaXMub3B0cy5fc2Nyb2xsRGlzdGFuY2VfID0gdGhpcy5zY3JvbGxPcHRpb24uY3VycmVudE9mZnNldDtcclxuICAgICAgYnJlYWs7XHJcbiAgICBjYXNlICdsZWZ0JzpcclxuICAgICAgdGhpcy5vcHRzLl9zY3JvbGxEaXN0YW5jZV8gPSAwO1xyXG4gICAgICB0aGlzLnNjcm9sbE9wdGlvbiA9IHtcclxuICAgICAgICBjdXJyZW50T2Zmc2V0OiAwLFxyXG4gICAgICAgIHN0YXJ0VG91Y2hYOiAwLFxyXG4gICAgICAgIGRpc3RhbmNlOiAwLFxyXG4gICAgICAgIGxhc3RNb3ZlVGltZTogMFxyXG4gICAgICB9O1xyXG4gICAgICBicmVhaztcclxuICAgIGNhc2UgJ3JpZ2h0JzpcclxuICAgICAgbGV0IF9jYWxZQXhpc0RhdGEgPSBjYWxZQXhpc0RhdGEodGhpcy5vcHRzLnNlcmllcywgdGhpcy5vcHRzLCB0aGlzLmNvbmZpZywgdGhpcy5jb250ZXh0KSwgeUF4aXNXaWR0aCA9IF9jYWxZQXhpc0RhdGEueUF4aXNXaWR0aDtcclxuICAgICAgdGhpcy5jb25maWcueUF4aXNXaWR0aCA9IHlBeGlzV2lkdGg7XHJcbiAgICAgIGxldCBvZmZzZXRMZWZ0ID0gMDtcclxuICAgICAgbGV0IF9nZXRYQXhpc1BvaW50czAgPSBnZXRYQXhpc1BvaW50cyh0aGlzLm9wdHMuY2F0ZWdvcmllcywgdGhpcy5vcHRzLCB0aGlzLmNvbmZpZyksIHhBeGlzUG9pbnRzID0gX2dldFhBeGlzUG9pbnRzMC54QXhpc1BvaW50cyxcclxuICAgICAgICBzdGFydFggPSBfZ2V0WEF4aXNQb2ludHMwLnN0YXJ0WCxcclxuICAgICAgICBlbmRYID0gX2dldFhBeGlzUG9pbnRzMC5lbmRYLFxyXG4gICAgICAgIGVhY2hTcGFjaW5nID0gX2dldFhBeGlzUG9pbnRzMC5lYWNoU3BhY2luZztcclxuICAgICAgbGV0IHRvdGFsV2lkdGggPSBlYWNoU3BhY2luZyAqICh4QXhpc1BvaW50cy5sZW5ndGggLSAxKTtcclxuICAgICAgbGV0IHNjcmVlbldpZHRoID0gZW5kWCAtIHN0YXJ0WDtcclxuICAgICAgb2Zmc2V0TGVmdCA9IHNjcmVlbldpZHRoIC0gdG90YWxXaWR0aDtcclxuICAgICAgdGhpcy5zY3JvbGxPcHRpb24gPSB7XHJcbiAgICAgICAgY3VycmVudE9mZnNldDogb2Zmc2V0TGVmdCxcclxuICAgICAgICBzdGFydFRvdWNoWDogb2Zmc2V0TGVmdCxcclxuICAgICAgICBkaXN0YW5jZTogMCxcclxuICAgICAgICBsYXN0TW92ZVRpbWU6IDBcclxuICAgICAgfTtcclxuICAgICAgdGhpcy5vcHRzLl9zY3JvbGxEaXN0YW5jZV8gPSBvZmZzZXRMZWZ0O1xyXG4gICAgICBicmVhaztcclxuICB9XHJcbiAgZHJhd0NoYXJ0cy5jYWxsKHRoaXMsIHRoaXMub3B0cy50eXBlLCB0aGlzLm9wdHMsIHRoaXMuY29uZmlnLCB0aGlzLmNvbnRleHQpO1xyXG59O1xyXG5cclxudUNoYXJ0cy5wcm90b3R5cGUuem9vbSA9IGZ1bmN0aW9uKCkge1xyXG4gIHZhciB2YWwgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IHRoaXMub3B0cy54QXhpcy5pdGVtQ291bnQ7XHJcbiAgaWYgKHRoaXMub3B0cy5lbmFibGVTY3JvbGwgIT09IHRydWUpIHtcclxuICAgIGNvbnNvbGUubG9nKCdbdUNoYXJ0c10g6K+35ZCv55So5rua5Yqo5p2h5ZCO5L2/55SoJylcclxuICAgIHJldHVybjtcclxuICB9XHJcbiAgLy/lvZPliY3lsY/luZXkuK3pl7TngrlcclxuICBsZXQgY2VudGVyUG9pbnQgPSBNYXRoLnJvdW5kKE1hdGguYWJzKHRoaXMuc2Nyb2xsT3B0aW9uLmN1cnJlbnRPZmZzZXQpIC8gdGhpcy5vcHRzLmNoYXJ0RGF0YS5lYWNoU3BhY2luZykgKyBNYXRoLnJvdW5kKHRoaXMub3B0cy54QXhpcy5pdGVtQ291bnQgLyAyKTtcclxuICB0aGlzLm9wdHMuYW5pbWF0aW9uID0gZmFsc2U7XHJcbiAgdGhpcy5vcHRzLnhBeGlzLml0ZW1Db3VudCA9IHZhbC5pdGVtQ291bnQ7XHJcbiAgLy/ph43mlrDorqHnrpd46L205YGP56e76Led56a7XHJcbiAgbGV0IF9jYWxZQXhpc0RhdGEgPSBjYWxZQXhpc0RhdGEodGhpcy5vcHRzLnNlcmllcywgdGhpcy5vcHRzLCB0aGlzLmNvbmZpZywgdGhpcy5jb250ZXh0KSxcclxuICAgIHlBeGlzV2lkdGggPSBfY2FsWUF4aXNEYXRhLnlBeGlzV2lkdGg7XHJcbiAgdGhpcy5jb25maWcueUF4aXNXaWR0aCA9IHlBeGlzV2lkdGg7XHJcbiAgbGV0IG9mZnNldExlZnQgPSAwO1xyXG4gIGxldCBfZ2V0WEF4aXNQb2ludHMwID0gZ2V0WEF4aXNQb2ludHModGhpcy5vcHRzLmNhdGVnb3JpZXMsIHRoaXMub3B0cywgdGhpcy5jb25maWcpLFxyXG4gICAgeEF4aXNQb2ludHMgPSBfZ2V0WEF4aXNQb2ludHMwLnhBeGlzUG9pbnRzLFxyXG4gICAgc3RhcnRYID0gX2dldFhBeGlzUG9pbnRzMC5zdGFydFgsXHJcbiAgICBlbmRYID0gX2dldFhBeGlzUG9pbnRzMC5lbmRYLFxyXG4gICAgZWFjaFNwYWNpbmcgPSBfZ2V0WEF4aXNQb2ludHMwLmVhY2hTcGFjaW5nO1xyXG4gIGxldCBjZW50ZXJMZWZ0ID0gZWFjaFNwYWNpbmcgKiBjZW50ZXJQb2ludDtcclxuICBsZXQgc2NyZWVuV2lkdGggPSBlbmRYIC0gc3RhcnRYO1xyXG4gIGxldCBNYXhMZWZ0ID0gc2NyZWVuV2lkdGggLSBlYWNoU3BhY2luZyAqICh4QXhpc1BvaW50cy5sZW5ndGggLSAxKTtcclxuICBvZmZzZXRMZWZ0ID0gc2NyZWVuV2lkdGggLyAyIC0gY2VudGVyTGVmdDtcclxuICBpZiAob2Zmc2V0TGVmdCA+IDApIHtcclxuICAgIG9mZnNldExlZnQgPSAwO1xyXG4gIH1cclxuICBpZiAob2Zmc2V0TGVmdCA8IE1heExlZnQpIHtcclxuICAgIG9mZnNldExlZnQgPSBNYXhMZWZ0O1xyXG4gIH1cclxuICB0aGlzLnNjcm9sbE9wdGlvbiA9IHtcclxuICAgIGN1cnJlbnRPZmZzZXQ6IG9mZnNldExlZnQsXHJcbiAgICBzdGFydFRvdWNoWDogb2Zmc2V0TGVmdCxcclxuICAgIGRpc3RhbmNlOiAwLFxyXG4gICAgbGFzdE1vdmVUaW1lOiAwXHJcbiAgfTtcclxuICB0aGlzLm9wdHMuX3Njcm9sbERpc3RhbmNlXyA9IG9mZnNldExlZnQ7XHJcbiAgZHJhd0NoYXJ0cy5jYWxsKHRoaXMsIHRoaXMub3B0cy50eXBlLCB0aGlzLm9wdHMsIHRoaXMuY29uZmlnLCB0aGlzLmNvbnRleHQpO1xyXG59O1xyXG5cclxudUNoYXJ0cy5wcm90b3R5cGUuc3RvcEFuaW1hdGlvbiA9IGZ1bmN0aW9uKCkge1xyXG4gIHRoaXMuYW5pbWF0aW9uSW5zdGFuY2UgJiYgdGhpcy5hbmltYXRpb25JbnN0YW5jZS5zdG9wKCk7XHJcbn07XHJcblxyXG51Q2hhcnRzLnByb3RvdHlwZS5hZGRFdmVudExpc3RlbmVyID0gZnVuY3Rpb24odHlwZSwgbGlzdGVuZXIpIHtcclxuICB0aGlzLnVldmVudC5hZGRFdmVudExpc3RlbmVyKHR5cGUsIGxpc3RlbmVyKTtcclxufTtcclxuXHJcbnVDaGFydHMucHJvdG90eXBlLmRlbEV2ZW50TGlzdGVuZXIgPSBmdW5jdGlvbih0eXBlKSB7XHJcbiAgdGhpcy51ZXZlbnQuZGVsRXZlbnRMaXN0ZW5lcih0eXBlKTtcclxufTtcclxuXHJcbnVDaGFydHMucHJvdG90eXBlLmdldEN1cnJlbnREYXRhSW5kZXggPSBmdW5jdGlvbihlKSB7XHJcbiAgdmFyIHRvdWNoZXMgPSBudWxsO1xyXG4gIGlmIChlLmNoYW5nZWRUb3VjaGVzKSB7XHJcbiAgICB0b3VjaGVzID0gZS5jaGFuZ2VkVG91Y2hlc1swXTtcclxuICB9IGVsc2Uge1xyXG4gICAgdG91Y2hlcyA9IGUubXAuY2hhbmdlZFRvdWNoZXNbMF07XHJcbiAgfVxyXG4gIGlmICh0b3VjaGVzKSB7XHJcbiAgICBsZXQgX3RvdWNoZXMkID0gZ2V0VG91Y2hlcyh0b3VjaGVzLCB0aGlzLm9wdHMsIGUpO1xyXG4gICAgaWYgKHRoaXMub3B0cy50eXBlID09PSAncGllJyB8fCB0aGlzLm9wdHMudHlwZSA9PT0gJ3JpbmcnKSB7XHJcbiAgICAgIHJldHVybiBmaW5kUGllQ2hhcnRDdXJyZW50SW5kZXgoe1xyXG4gICAgICAgIHg6IF90b3VjaGVzJC54LFxyXG4gICAgICAgIHk6IF90b3VjaGVzJC55XHJcbiAgICAgIH0sIHRoaXMub3B0cy5jaGFydERhdGEucGllRGF0YSwgdGhpcy5vcHRzKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5vcHRzLnR5cGUgPT09ICdyb3NlJykge1xyXG4gICAgICByZXR1cm4gZmluZFJvc2VDaGFydEN1cnJlbnRJbmRleCh7XHJcbiAgICAgICAgeDogX3RvdWNoZXMkLngsXHJcbiAgICAgICAgeTogX3RvdWNoZXMkLnlcclxuICAgICAgfSwgdGhpcy5vcHRzLmNoYXJ0RGF0YS5waWVEYXRhLCB0aGlzLm9wdHMpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLm9wdHMudHlwZSA9PT0gJ3JhZGFyJykge1xyXG4gICAgICByZXR1cm4gZmluZFJhZGFyQ2hhcnRDdXJyZW50SW5kZXgoe1xyXG4gICAgICAgIHg6IF90b3VjaGVzJC54LFxyXG4gICAgICAgIHk6IF90b3VjaGVzJC55XHJcbiAgICAgIH0sIHRoaXMub3B0cy5jaGFydERhdGEucmFkYXJEYXRhLCB0aGlzLm9wdHMuY2F0ZWdvcmllcy5sZW5ndGgpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLm9wdHMudHlwZSA9PT0gJ2Z1bm5lbCcpIHtcclxuICAgICAgcmV0dXJuIGZpbmRGdW5uZWxDaGFydEN1cnJlbnRJbmRleCh7XHJcbiAgICAgICAgeDogX3RvdWNoZXMkLngsXHJcbiAgICAgICAgeTogX3RvdWNoZXMkLnlcclxuICAgICAgfSwgdGhpcy5vcHRzLmNoYXJ0RGF0YS5mdW5uZWxEYXRhKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5vcHRzLnR5cGUgPT09ICdtYXAnKSB7XHJcbiAgICAgIHJldHVybiBmaW5kTWFwQ2hhcnRDdXJyZW50SW5kZXgoe1xyXG4gICAgICAgIHg6IF90b3VjaGVzJC54LFxyXG4gICAgICAgIHk6IF90b3VjaGVzJC55XHJcbiAgICAgIH0sIHRoaXMub3B0cyk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMub3B0cy50eXBlID09PSAnd29yZCcpIHtcclxuICAgICAgcmV0dXJuIGZpbmRXb3JkQ2hhcnRDdXJyZW50SW5kZXgoe1xyXG4gICAgICAgIHg6IF90b3VjaGVzJC54LFxyXG4gICAgICAgIHk6IF90b3VjaGVzJC55XHJcbiAgICAgIH0sIHRoaXMub3B0cy5jaGFydERhdGEud29yZENsb3VkRGF0YSk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMub3B0cy50eXBlID09PSAnYmFyJykge1xyXG4gICAgICByZXR1cm4gZmluZEJhckNoYXJ0Q3VycmVudEluZGV4KHtcclxuICAgICAgICB4OiBfdG91Y2hlcyQueCxcclxuICAgICAgICB5OiBfdG91Y2hlcyQueVxyXG4gICAgICB9LCB0aGlzLm9wdHMuY2hhcnREYXRhLmNhbFBvaW50cywgdGhpcy5vcHRzLCB0aGlzLmNvbmZpZywgTWF0aC5hYnModGhpcy5zY3JvbGxPcHRpb24uY3VycmVudE9mZnNldCkpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGZpbmRDdXJyZW50SW5kZXgoe1xyXG4gICAgICAgIHg6IF90b3VjaGVzJC54LFxyXG4gICAgICAgIHk6IF90b3VjaGVzJC55XHJcbiAgICAgIH0sIHRoaXMub3B0cy5jaGFydERhdGEuY2FsUG9pbnRzLCB0aGlzLm9wdHMsIHRoaXMuY29uZmlnLCBNYXRoLmFicyh0aGlzLnNjcm9sbE9wdGlvbi5jdXJyZW50T2Zmc2V0KSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiAtMTtcclxufTtcclxuXHJcbnVDaGFydHMucHJvdG90eXBlLmdldExlZ2VuZERhdGFJbmRleCA9IGZ1bmN0aW9uKGUpIHtcclxuICB2YXIgdG91Y2hlcyA9IG51bGw7XHJcbiAgaWYgKGUuY2hhbmdlZFRvdWNoZXMpIHtcclxuICAgIHRvdWNoZXMgPSBlLmNoYW5nZWRUb3VjaGVzWzBdO1xyXG4gIH0gZWxzZSB7XHJcbiAgICB0b3VjaGVzID0gZS5tcC5jaGFuZ2VkVG91Y2hlc1swXTtcclxuICB9XHJcbiAgaWYgKHRvdWNoZXMpIHtcclxuICAgIGxldCBfdG91Y2hlcyQgPSBnZXRUb3VjaGVzKHRvdWNoZXMsIHRoaXMub3B0cywgZSk7XHJcbiAgICByZXR1cm4gZmluZExlZ2VuZEluZGV4KHtcclxuICAgICAgeDogX3RvdWNoZXMkLngsXHJcbiAgICAgIHk6IF90b3VjaGVzJC55XHJcbiAgICB9LCB0aGlzLm9wdHMuY2hhcnREYXRhLmxlZ2VuZERhdGEpO1xyXG4gIH1cclxuICByZXR1cm4gLTE7XHJcbn07XHJcblxyXG51Q2hhcnRzLnByb3RvdHlwZS50b3VjaExlZ2VuZCA9IGZ1bmN0aW9uKGUpIHtcclxuICB2YXIgb3B0aW9uID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiB7fTtcclxuICB2YXIgdG91Y2hlcyA9IG51bGw7XHJcbiAgaWYgKGUuY2hhbmdlZFRvdWNoZXMpIHtcclxuICAgIHRvdWNoZXMgPSBlLmNoYW5nZWRUb3VjaGVzWzBdO1xyXG4gIH0gZWxzZSB7XHJcbiAgICB0b3VjaGVzID0gZS5tcC5jaGFuZ2VkVG91Y2hlc1swXTtcclxuICB9XHJcbiAgaWYgKHRvdWNoZXMpIHtcclxuICAgIHZhciBfdG91Y2hlcyQgPSBnZXRUb3VjaGVzKHRvdWNoZXMsIHRoaXMub3B0cywgZSk7XHJcbiAgICB2YXIgaW5kZXggPSB0aGlzLmdldExlZ2VuZERhdGFJbmRleChlKTtcclxuICAgIGlmIChpbmRleCA+PSAwKSB7XHJcbiAgICAgIGlmICh0aGlzLm9wdHMudHlwZSA9PSAnY2FuZGxlJykge1xyXG4gICAgICAgIHRoaXMub3B0cy5zZXJpZXNNQVtpbmRleF0uc2hvdyA9ICF0aGlzLm9wdHMuc2VyaWVzTUFbaW5kZXhdLnNob3c7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5vcHRzLnNlcmllc1tpbmRleF0uc2hvdyA9ICF0aGlzLm9wdHMuc2VyaWVzW2luZGV4XS5zaG93O1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMub3B0cy5hbmltYXRpb24gPSBvcHRpb24uYW5pbWF0aW9uID8gdHJ1ZSA6IGZhbHNlO1xyXG4gICAgICB0aGlzLm9wdHMuX3Njcm9sbERpc3RhbmNlXyA9IHRoaXMuc2Nyb2xsT3B0aW9uLmN1cnJlbnRPZmZzZXQ7XHJcbiAgICAgIGRyYXdDaGFydHMuY2FsbCh0aGlzLCB0aGlzLm9wdHMudHlwZSwgdGhpcy5vcHRzLCB0aGlzLmNvbmZpZywgdGhpcy5jb250ZXh0KTtcclxuICAgIH1cclxuICB9XHJcblxyXG59O1xyXG5cclxudUNoYXJ0cy5wcm90b3R5cGUuc2hvd1Rvb2xUaXAgPSBmdW5jdGlvbihlKSB7XHJcbiAgdmFyIG9wdGlvbiA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDoge307XHJcbiAgdmFyIHRvdWNoZXMgPSBudWxsO1xyXG4gIGlmIChlLmNoYW5nZWRUb3VjaGVzKSB7XHJcbiAgICB0b3VjaGVzID0gZS5jaGFuZ2VkVG91Y2hlc1swXTtcclxuICB9IGVsc2Uge1xyXG4gICAgdG91Y2hlcyA9IGUubXAuY2hhbmdlZFRvdWNoZXNbMF07XHJcbiAgfVxyXG4gIGlmICghdG91Y2hlcykge1xyXG4gICAgY29uc29sZS5sb2coXCJbdUNoYXJ0c10g5pyq6I635Y+W5YiwZXZlbnTlnZDmoIfkv6Hmga9cIik7XHJcbiAgfVxyXG4gIHZhciBfdG91Y2hlcyQgPSBnZXRUb3VjaGVzKHRvdWNoZXMsIHRoaXMub3B0cywgZSk7XHJcbiAgdmFyIGN1cnJlbnRPZmZzZXQgPSB0aGlzLnNjcm9sbE9wdGlvbi5jdXJyZW50T2Zmc2V0O1xyXG4gIHZhciBvcHRzID0gYXNzaWduKHt9LCB0aGlzLm9wdHMsIHtcclxuICAgIF9zY3JvbGxEaXN0YW5jZV86IGN1cnJlbnRPZmZzZXQsXHJcbiAgICBhbmltYXRpb246IGZhbHNlXHJcbiAgfSk7XHJcbiAgaWYgKHRoaXMub3B0cy50eXBlID09PSAnbGluZScgfHwgdGhpcy5vcHRzLnR5cGUgPT09ICdhcmVhJyB8fCB0aGlzLm9wdHMudHlwZSA9PT0gJ2NvbHVtbicgfHwgdGhpcy5vcHRzLnR5cGUgPT09ICdzY2F0dGVyJyB8fCB0aGlzLm9wdHMudHlwZSA9PT0gJ2J1YmJsZScpIHtcclxuICAgIHZhciBjdXJyZW50ID0gdGhpcy5nZXRDdXJyZW50RGF0YUluZGV4KGUpO1xyXG4gICAgdmFyIGluZGV4ID0gb3B0aW9uLmluZGV4ID09IHVuZGVmaW5lZCA/IGN1cnJlbnQuaW5kZXggOiBvcHRpb24uaW5kZXg7XHJcbiAgICBpZiAoaW5kZXggPiAtMSB8fCBpbmRleC5sZW5ndGg+MCkge1xyXG4gICAgICB2YXIgc2VyaWVzRGF0YSA9IGdldFNlcmllc0RhdGFJdGVtKHRoaXMub3B0cy5zZXJpZXMsIGluZGV4LCBjdXJyZW50Lmdyb3VwKTtcclxuICAgICAgaWYgKHNlcmllc0RhdGEubGVuZ3RoICE9PSAwKSB7XHJcbiAgICAgICAgdmFyIF9nZXRUb29sVGlwRGF0YSA9IGdldFRvb2xUaXBEYXRhKHNlcmllc0RhdGEsIHRoaXMub3B0cywgaW5kZXgsIGN1cnJlbnQuZ3JvdXAsIHRoaXMub3B0cy5jYXRlZ29yaWVzLCBvcHRpb24pLFxyXG4gICAgICAgICAgdGV4dExpc3QgPSBfZ2V0VG9vbFRpcERhdGEudGV4dExpc3QsXHJcbiAgICAgICAgICBvZmZzZXQgPSBfZ2V0VG9vbFRpcERhdGEub2Zmc2V0O1xyXG4gICAgICAgIG9mZnNldC55ID0gX3RvdWNoZXMkLnk7XHJcbiAgICAgICAgb3B0cy50b29sdGlwID0ge1xyXG4gICAgICAgICAgdGV4dExpc3Q6IG9wdGlvbi50ZXh0TGlzdCAhPT0gdW5kZWZpbmVkID8gb3B0aW9uLnRleHRMaXN0IDogdGV4dExpc3QsXHJcbiAgICAgICAgICBvZmZzZXQ6IG9wdGlvbi5vZmZzZXQgIT09IHVuZGVmaW5lZCA/IG9wdGlvbi5vZmZzZXQgOiBvZmZzZXQsXHJcbiAgICAgICAgICBvcHRpb246IG9wdGlvbixcclxuICAgICAgICAgIGluZGV4OiBpbmRleFxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGRyYXdDaGFydHMuY2FsbCh0aGlzLCBvcHRzLnR5cGUsIG9wdHMsIHRoaXMuY29uZmlnLCB0aGlzLmNvbnRleHQpO1xyXG4gIH1cclxuICBpZiAodGhpcy5vcHRzLnR5cGUgPT09ICdiYXInKSB7XHJcbiAgICB2YXIgY3VycmVudCA9IHRoaXMuZ2V0Q3VycmVudERhdGFJbmRleChlKTtcclxuICAgIHZhciBpbmRleCA9IG9wdGlvbi5pbmRleCA9PSB1bmRlZmluZWQgPyBjdXJyZW50LmluZGV4IDogb3B0aW9uLmluZGV4O1xyXG4gICAgaWYgKGluZGV4ID4gLTEgfHwgaW5kZXgubGVuZ3RoPjApIHtcclxuICAgICAgdmFyIHNlcmllc0RhdGEgPSBnZXRTZXJpZXNEYXRhSXRlbSh0aGlzLm9wdHMuc2VyaWVzLCBpbmRleCwgY3VycmVudC5ncm91cCk7XHJcbiAgICAgIGlmIChzZXJpZXNEYXRhLmxlbmd0aCAhPT0gMCkge1xyXG4gICAgICAgIHZhciBfZ2V0VG9vbFRpcERhdGEgPSBnZXRUb29sVGlwRGF0YShzZXJpZXNEYXRhLCB0aGlzLm9wdHMsIGluZGV4LCBjdXJyZW50Lmdyb3VwLCB0aGlzLm9wdHMuY2F0ZWdvcmllcywgb3B0aW9uKSxcclxuICAgICAgICAgIHRleHRMaXN0ID0gX2dldFRvb2xUaXBEYXRhLnRleHRMaXN0LFxyXG4gICAgICAgICAgb2Zmc2V0ID0gX2dldFRvb2xUaXBEYXRhLm9mZnNldDtcclxuICAgICAgICBvZmZzZXQueCA9IF90b3VjaGVzJC54O1xyXG4gICAgICAgIG9wdHMudG9vbHRpcCA9IHtcclxuICAgICAgICAgIHRleHRMaXN0OiBvcHRpb24udGV4dExpc3QgIT09IHVuZGVmaW5lZCA/IG9wdGlvbi50ZXh0TGlzdCA6IHRleHRMaXN0LFxyXG4gICAgICAgICAgb2Zmc2V0OiBvcHRpb24ub2Zmc2V0ICE9PSB1bmRlZmluZWQgPyBvcHRpb24ub2Zmc2V0IDogb2Zmc2V0LFxyXG4gICAgICAgICAgb3B0aW9uOiBvcHRpb24sXHJcbiAgICAgICAgICBpbmRleDogaW5kZXhcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBkcmF3Q2hhcnRzLmNhbGwodGhpcywgb3B0cy50eXBlLCBvcHRzLCB0aGlzLmNvbmZpZywgdGhpcy5jb250ZXh0KTtcclxuICB9XHJcbiAgaWYgKHRoaXMub3B0cy50eXBlID09PSAnbWl4Jykge1xyXG4gICAgdmFyIGN1cnJlbnQgPSB0aGlzLmdldEN1cnJlbnREYXRhSW5kZXgoZSk7XHJcbiAgICB2YXIgaW5kZXggPSBvcHRpb24uaW5kZXggPT0gdW5kZWZpbmVkID8gY3VycmVudC5pbmRleCA6IG9wdGlvbi5pbmRleDtcclxuICAgIGlmIChpbmRleCA+IC0xKSB7XHJcbiAgICAgIHZhciBjdXJyZW50T2Zmc2V0ID0gdGhpcy5zY3JvbGxPcHRpb24uY3VycmVudE9mZnNldDtcclxuICAgICAgdmFyIG9wdHMgPSBhc3NpZ24oe30sIHRoaXMub3B0cywge1xyXG4gICAgICAgIF9zY3JvbGxEaXN0YW5jZV86IGN1cnJlbnRPZmZzZXQsXHJcbiAgICAgICAgYW5pbWF0aW9uOiBmYWxzZVxyXG4gICAgICB9KTtcclxuICAgICAgdmFyIHNlcmllc0RhdGEgPSBnZXRTZXJpZXNEYXRhSXRlbSh0aGlzLm9wdHMuc2VyaWVzLCBpbmRleCk7XHJcbiAgICAgIGlmIChzZXJpZXNEYXRhLmxlbmd0aCAhPT0gMCkge1xyXG4gICAgICAgIHZhciBfZ2V0TWl4VG9vbFRpcERhdGEgPSBnZXRNaXhUb29sVGlwRGF0YShzZXJpZXNEYXRhLCB0aGlzLm9wdHMsIGluZGV4LCB0aGlzLm9wdHMuY2F0ZWdvcmllcywgb3B0aW9uKSxcclxuICAgICAgICAgIHRleHRMaXN0ID0gX2dldE1peFRvb2xUaXBEYXRhLnRleHRMaXN0LFxyXG4gICAgICAgICAgb2Zmc2V0ID0gX2dldE1peFRvb2xUaXBEYXRhLm9mZnNldDtcclxuICAgICAgICBvZmZzZXQueSA9IF90b3VjaGVzJC55O1xyXG4gICAgICAgIG9wdHMudG9vbHRpcCA9IHtcclxuICAgICAgICAgIHRleHRMaXN0OiBvcHRpb24udGV4dExpc3QgPyBvcHRpb24udGV4dExpc3QgOiB0ZXh0TGlzdCxcclxuICAgICAgICAgIG9mZnNldDogb3B0aW9uLm9mZnNldCAhPT0gdW5kZWZpbmVkID8gb3B0aW9uLm9mZnNldCA6IG9mZnNldCxcclxuICAgICAgICAgIG9wdGlvbjogb3B0aW9uLFxyXG4gICAgICAgICAgaW5kZXg6IGluZGV4XHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgZHJhd0NoYXJ0cy5jYWxsKHRoaXMsIG9wdHMudHlwZSwgb3B0cywgdGhpcy5jb25maWcsIHRoaXMuY29udGV4dCk7XHJcbiAgfVxyXG4gIGlmICh0aGlzLm9wdHMudHlwZSA9PT0gJ2NhbmRsZScpIHtcclxuICAgIHZhciBjdXJyZW50ID0gdGhpcy5nZXRDdXJyZW50RGF0YUluZGV4KGUpO1xyXG4gICAgdmFyIGluZGV4ID0gb3B0aW9uLmluZGV4ID09IHVuZGVmaW5lZCA/IGN1cnJlbnQuaW5kZXggOiBvcHRpb24uaW5kZXg7XHJcbiAgICBpZiAoaW5kZXggPiAtMSkge1xyXG4gICAgICB2YXIgY3VycmVudE9mZnNldCA9IHRoaXMuc2Nyb2xsT3B0aW9uLmN1cnJlbnRPZmZzZXQ7XHJcbiAgICAgIHZhciBvcHRzID0gYXNzaWduKHt9LCB0aGlzLm9wdHMsIHtcclxuICAgICAgICBfc2Nyb2xsRGlzdGFuY2VfOiBjdXJyZW50T2Zmc2V0LFxyXG4gICAgICAgIGFuaW1hdGlvbjogZmFsc2VcclxuICAgICAgfSk7XHJcbiAgICAgIHZhciBzZXJpZXNEYXRhID0gZ2V0U2VyaWVzRGF0YUl0ZW0odGhpcy5vcHRzLnNlcmllcywgaW5kZXgpO1xyXG4gICAgICBpZiAoc2VyaWVzRGF0YS5sZW5ndGggIT09IDApIHtcclxuICAgICAgICB2YXIgX2dldFRvb2xUaXBEYXRhID0gZ2V0Q2FuZGxlVG9vbFRpcERhdGEodGhpcy5vcHRzLnNlcmllc1swXS5kYXRhLCBzZXJpZXNEYXRhLCB0aGlzLm9wdHMsIGluZGV4LCB0aGlzLm9wdHMuY2F0ZWdvcmllcywgdGhpcy5vcHRzLmV4dHJhLmNhbmRsZSwgb3B0aW9uKSxcclxuICAgICAgICAgIHRleHRMaXN0ID0gX2dldFRvb2xUaXBEYXRhLnRleHRMaXN0LFxyXG4gICAgICAgICAgb2Zmc2V0ID0gX2dldFRvb2xUaXBEYXRhLm9mZnNldDtcclxuICAgICAgICBvZmZzZXQueSA9IF90b3VjaGVzJC55O1xyXG4gICAgICAgIG9wdHMudG9vbHRpcCA9IHtcclxuICAgICAgICAgIHRleHRMaXN0OiBvcHRpb24udGV4dExpc3QgPyBvcHRpb24udGV4dExpc3QgOiB0ZXh0TGlzdCxcclxuICAgICAgICAgIG9mZnNldDogb3B0aW9uLm9mZnNldCAhPT0gdW5kZWZpbmVkID8gb3B0aW9uLm9mZnNldCA6IG9mZnNldCxcclxuICAgICAgICAgIG9wdGlvbjogb3B0aW9uLFxyXG4gICAgICAgICAgaW5kZXg6IGluZGV4XHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgZHJhd0NoYXJ0cy5jYWxsKHRoaXMsIG9wdHMudHlwZSwgb3B0cywgdGhpcy5jb25maWcsIHRoaXMuY29udGV4dCk7XHJcbiAgfVxyXG4gIGlmICh0aGlzLm9wdHMudHlwZSA9PT0gJ3BpZScgfHwgdGhpcy5vcHRzLnR5cGUgPT09ICdyaW5nJyB8fCB0aGlzLm9wdHMudHlwZSA9PT0gJ3Jvc2UnIHx8IHRoaXMub3B0cy50eXBlID09PSAnZnVubmVsJykge1xyXG4gICAgdmFyIGluZGV4ID0gb3B0aW9uLmluZGV4ID09IHVuZGVmaW5lZCA/IHRoaXMuZ2V0Q3VycmVudERhdGFJbmRleChlKSA6IG9wdGlvbi5pbmRleDtcclxuICAgIGlmIChpbmRleCA+IC0xKSB7XHJcbiAgICAgIHZhciBvcHRzID0gYXNzaWduKHt9LCB0aGlzLm9wdHMsIHthbmltYXRpb246IGZhbHNlfSk7XHJcbiAgICAgIHZhciBzZXJpZXNEYXRhID0gYXNzaWduKHt9LCBvcHRzLl9zZXJpZXNfW2luZGV4XSk7XHJcbiAgICAgIHZhciB0ZXh0TGlzdCA9IFt7XHJcbiAgICAgICAgdGV4dDogb3B0aW9uLmZvcm1hdHRlciA/IG9wdGlvbi5mb3JtYXR0ZXIoc2VyaWVzRGF0YSwgdW5kZWZpbmVkLCBpbmRleCwgb3B0cykgOiBzZXJpZXNEYXRhLm5hbWUgKyAnOiAnICsgc2VyaWVzRGF0YS5kYXRhLFxyXG4gICAgICAgIGNvbG9yOiBzZXJpZXNEYXRhLmNvbG9yXHJcbiAgICAgIH1dO1xyXG4gICAgICB2YXIgb2Zmc2V0ID0ge1xyXG4gICAgICAgIHg6IF90b3VjaGVzJC54LFxyXG4gICAgICAgIHk6IF90b3VjaGVzJC55XHJcbiAgICAgIH07XHJcbiAgICAgIG9wdHMudG9vbHRpcCA9IHtcclxuICAgICAgICB0ZXh0TGlzdDogb3B0aW9uLnRleHRMaXN0ID8gb3B0aW9uLnRleHRMaXN0IDogdGV4dExpc3QsXHJcbiAgICAgICAgb2Zmc2V0OiBvcHRpb24ub2Zmc2V0ICE9PSB1bmRlZmluZWQgPyBvcHRpb24ub2Zmc2V0IDogb2Zmc2V0LFxyXG4gICAgICAgIG9wdGlvbjogb3B0aW9uLFxyXG4gICAgICAgIGluZGV4OiBpbmRleFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgZHJhd0NoYXJ0cy5jYWxsKHRoaXMsIG9wdHMudHlwZSwgb3B0cywgdGhpcy5jb25maWcsIHRoaXMuY29udGV4dCk7XHJcbiAgfVxyXG4gIGlmICh0aGlzLm9wdHMudHlwZSA9PT0gJ21hcCcpIHtcclxuICAgIHZhciBpbmRleCA9IG9wdGlvbi5pbmRleCA9PSB1bmRlZmluZWQgPyB0aGlzLmdldEN1cnJlbnREYXRhSW5kZXgoZSkgOiBvcHRpb24uaW5kZXg7XHJcbiAgICBpZiAoaW5kZXggPiAtMSkge1xyXG4gICAgICB2YXIgb3B0cyA9IGFzc2lnbih7fSwgdGhpcy5vcHRzLCB7YW5pbWF0aW9uOiBmYWxzZX0pO1xyXG4gICAgICB2YXIgc2VyaWVzRGF0YSA9IGFzc2lnbih7fSwgdGhpcy5vcHRzLnNlcmllc1tpbmRleF0pO1xyXG4gICAgICBzZXJpZXNEYXRhLm5hbWUgPSBzZXJpZXNEYXRhLnByb3BlcnRpZXMubmFtZVxyXG4gICAgICB2YXIgdGV4dExpc3QgPSBbe1xyXG4gICAgICAgIHRleHQ6IG9wdGlvbi5mb3JtYXR0ZXIgPyBvcHRpb24uZm9ybWF0dGVyKHNlcmllc0RhdGEsIHVuZGVmaW5lZCwgaW5kZXgsIHRoaXMub3B0cykgOiBzZXJpZXNEYXRhLm5hbWUsXHJcbiAgICAgICAgY29sb3I6IHNlcmllc0RhdGEuY29sb3JcclxuICAgICAgfV07XHJcbiAgICAgIHZhciBvZmZzZXQgPSB7XHJcbiAgICAgICAgeDogX3RvdWNoZXMkLngsXHJcbiAgICAgICAgeTogX3RvdWNoZXMkLnlcclxuICAgICAgfTtcclxuICAgICAgb3B0cy50b29sdGlwID0ge1xyXG4gICAgICAgIHRleHRMaXN0OiBvcHRpb24udGV4dExpc3QgPyBvcHRpb24udGV4dExpc3QgOiB0ZXh0TGlzdCxcclxuICAgICAgICBvZmZzZXQ6IG9wdGlvbi5vZmZzZXQgIT09IHVuZGVmaW5lZCA/IG9wdGlvbi5vZmZzZXQgOiBvZmZzZXQsXHJcbiAgICAgICAgb3B0aW9uOiBvcHRpb24sXHJcbiAgICAgICAgaW5kZXg6IGluZGV4XHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBvcHRzLnVwZGF0ZURhdGEgPSBmYWxzZTtcclxuICAgIGRyYXdDaGFydHMuY2FsbCh0aGlzLCBvcHRzLnR5cGUsIG9wdHMsIHRoaXMuY29uZmlnLCB0aGlzLmNvbnRleHQpO1xyXG4gIH1cclxuICBpZiAodGhpcy5vcHRzLnR5cGUgPT09ICd3b3JkJykge1xyXG4gICAgdmFyIGluZGV4ID0gb3B0aW9uLmluZGV4ID09IHVuZGVmaW5lZCA/IHRoaXMuZ2V0Q3VycmVudERhdGFJbmRleChlKSA6IG9wdGlvbi5pbmRleDtcclxuICAgIGlmIChpbmRleCA+IC0xKSB7XHJcbiAgICAgIHZhciBvcHRzID0gYXNzaWduKHt9LCB0aGlzLm9wdHMsIHthbmltYXRpb246IGZhbHNlfSk7XHJcbiAgICAgIHZhciBzZXJpZXNEYXRhID0gYXNzaWduKHt9LCB0aGlzLm9wdHMuc2VyaWVzW2luZGV4XSk7XHJcbiAgICAgIHZhciB0ZXh0TGlzdCA9IFt7XHJcbiAgICAgICAgdGV4dDogb3B0aW9uLmZvcm1hdHRlciA/IG9wdGlvbi5mb3JtYXR0ZXIoc2VyaWVzRGF0YSwgdW5kZWZpbmVkLCBpbmRleCwgdGhpcy5vcHRzKSA6IHNlcmllc0RhdGEubmFtZSxcclxuICAgICAgICBjb2xvcjogc2VyaWVzRGF0YS5jb2xvclxyXG4gICAgICB9XTtcclxuICAgICAgdmFyIG9mZnNldCA9IHtcclxuICAgICAgICB4OiBfdG91Y2hlcyQueCxcclxuICAgICAgICB5OiBfdG91Y2hlcyQueVxyXG4gICAgICB9O1xyXG4gICAgICBvcHRzLnRvb2x0aXAgPSB7XHJcbiAgICAgICAgdGV4dExpc3Q6IG9wdGlvbi50ZXh0TGlzdCA/IG9wdGlvbi50ZXh0TGlzdCA6IHRleHRMaXN0LFxyXG4gICAgICAgIG9mZnNldDogb3B0aW9uLm9mZnNldCAhPT0gdW5kZWZpbmVkID8gb3B0aW9uLm9mZnNldCA6IG9mZnNldCxcclxuICAgICAgICBvcHRpb246IG9wdGlvbixcclxuICAgICAgICBpbmRleDogaW5kZXhcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIG9wdHMudXBkYXRlRGF0YSA9IGZhbHNlO1xyXG4gICAgZHJhd0NoYXJ0cy5jYWxsKHRoaXMsIG9wdHMudHlwZSwgb3B0cywgdGhpcy5jb25maWcsIHRoaXMuY29udGV4dCk7XHJcbiAgfVxyXG4gIGlmICh0aGlzLm9wdHMudHlwZSA9PT0gJ3JhZGFyJykge1xyXG4gICAgdmFyIGluZGV4ID0gb3B0aW9uLmluZGV4ID09IHVuZGVmaW5lZCA/IHRoaXMuZ2V0Q3VycmVudERhdGFJbmRleChlKSA6IG9wdGlvbi5pbmRleDtcclxuICAgIGlmIChpbmRleCA+IC0xKSB7XHJcbiAgICAgIHZhciBvcHRzID0gYXNzaWduKHt9LCB0aGlzLm9wdHMsIHthbmltYXRpb246IGZhbHNlfSk7XHJcbiAgICAgIHZhciBzZXJpZXNEYXRhID0gZ2V0U2VyaWVzRGF0YUl0ZW0odGhpcy5vcHRzLnNlcmllcywgaW5kZXgpO1xyXG4gICAgICBpZiAoc2VyaWVzRGF0YS5sZW5ndGggIT09IDApIHtcclxuICAgICAgICB2YXIgdGV4dExpc3QgPSBzZXJpZXNEYXRhLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgdGV4dDogb3B0aW9uLmZvcm1hdHRlciA/IG9wdGlvbi5mb3JtYXR0ZXIoaXRlbSwgdGhpcy5vcHRzLmNhdGVnb3JpZXNbaW5kZXhdLCBpbmRleCwgdGhpcy5vcHRzKSA6IGl0ZW0ubmFtZSArICc6ICcgKyBpdGVtLmRhdGEsXHJcbiAgICAgICAgICAgIGNvbG9yOiBpdGVtLmNvbG9yXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHZhciBvZmZzZXQgPSB7XHJcbiAgICAgICAgICB4OiBfdG91Y2hlcyQueCxcclxuICAgICAgICAgIHk6IF90b3VjaGVzJC55XHJcbiAgICAgICAgfTtcclxuICAgICAgICBvcHRzLnRvb2x0aXAgPSB7XHJcbiAgICAgICAgICB0ZXh0TGlzdDogb3B0aW9uLnRleHRMaXN0ID8gb3B0aW9uLnRleHRMaXN0IDogdGV4dExpc3QsXHJcbiAgICAgICAgICBvZmZzZXQ6IG9wdGlvbi5vZmZzZXQgIT09IHVuZGVmaW5lZCA/IG9wdGlvbi5vZmZzZXQgOiBvZmZzZXQsXHJcbiAgICAgICAgICBvcHRpb246IG9wdGlvbixcclxuICAgICAgICAgIGluZGV4OiBpbmRleFxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGRyYXdDaGFydHMuY2FsbCh0aGlzLCBvcHRzLnR5cGUsIG9wdHMsIHRoaXMuY29uZmlnLCB0aGlzLmNvbnRleHQpO1xyXG4gIH1cclxufTtcclxuXHJcbnVDaGFydHMucHJvdG90eXBlLnRyYW5zbGF0ZSA9IGZ1bmN0aW9uKGRpc3RhbmNlKSB7XHJcbiAgdGhpcy5zY3JvbGxPcHRpb24gPSB7XHJcbiAgICBjdXJyZW50T2Zmc2V0OiBkaXN0YW5jZSxcclxuICAgIHN0YXJ0VG91Y2hYOiBkaXN0YW5jZSxcclxuICAgIGRpc3RhbmNlOiAwLFxyXG4gICAgbGFzdE1vdmVUaW1lOiAwXHJcbiAgfTtcclxuICBsZXQgb3B0cyA9IGFzc2lnbih7fSwgdGhpcy5vcHRzLCB7XHJcbiAgICBfc2Nyb2xsRGlzdGFuY2VfOiBkaXN0YW5jZSxcclxuICAgIGFuaW1hdGlvbjogZmFsc2VcclxuICB9KTtcclxuICBkcmF3Q2hhcnRzLmNhbGwodGhpcywgdGhpcy5vcHRzLnR5cGUsIG9wdHMsIHRoaXMuY29uZmlnLCB0aGlzLmNvbnRleHQpO1xyXG59O1xyXG5cclxudUNoYXJ0cy5wcm90b3R5cGUuc2Nyb2xsU3RhcnQgPSBmdW5jdGlvbihlKSB7XHJcbiAgdmFyIHRvdWNoZXMgPSBudWxsO1xyXG4gIGlmIChlLmNoYW5nZWRUb3VjaGVzKSB7XHJcbiAgICB0b3VjaGVzID0gZS5jaGFuZ2VkVG91Y2hlc1swXTtcclxuICB9IGVsc2Uge1xyXG4gICAgdG91Y2hlcyA9IGUubXAuY2hhbmdlZFRvdWNoZXNbMF07XHJcbiAgfVxyXG4gIHZhciBfdG91Y2hlcyQgPSBnZXRUb3VjaGVzKHRvdWNoZXMsIHRoaXMub3B0cywgZSk7XHJcbiAgaWYgKHRvdWNoZXMgJiYgdGhpcy5vcHRzLmVuYWJsZVNjcm9sbCA9PT0gdHJ1ZSkge1xyXG4gICAgdGhpcy5zY3JvbGxPcHRpb24uc3RhcnRUb3VjaFggPSBfdG91Y2hlcyQueDtcclxuICB9XHJcbn07XHJcblxyXG51Q2hhcnRzLnByb3RvdHlwZS5zY3JvbGwgPSBmdW5jdGlvbihlKSB7XHJcbiAgaWYgKHRoaXMuc2Nyb2xsT3B0aW9uLmxhc3RNb3ZlVGltZSA9PT0gMCkge1xyXG4gICAgdGhpcy5zY3JvbGxPcHRpb24ubGFzdE1vdmVUaW1lID0gRGF0ZS5ub3coKTtcclxuICB9XHJcbiAgbGV0IExpbWl0ID0gdGhpcy5vcHRzLnRvdWNoTW92ZUxpbWl0IHx8IDYwO1xyXG4gIGxldCBjdXJyTW92ZVRpbWUgPSBEYXRlLm5vdygpO1xyXG4gIGxldCBkdXJhdGlvbiA9IGN1cnJNb3ZlVGltZSAtIHRoaXMuc2Nyb2xsT3B0aW9uLmxhc3RNb3ZlVGltZTtcclxuICBpZiAoZHVyYXRpb24gPCBNYXRoLmZsb29yKDEwMDAgLyBMaW1pdCkpIHJldHVybjtcclxuICB0aGlzLnNjcm9sbE9wdGlvbi5sYXN0TW92ZVRpbWUgPSBjdXJyTW92ZVRpbWU7XHJcbiAgdmFyIHRvdWNoZXMgPSBudWxsO1xyXG4gIGlmIChlLmNoYW5nZWRUb3VjaGVzKSB7XHJcbiAgICB0b3VjaGVzID0gZS5jaGFuZ2VkVG91Y2hlc1swXTtcclxuICB9IGVsc2Uge1xyXG4gICAgdG91Y2hlcyA9IGUubXAuY2hhbmdlZFRvdWNoZXNbMF07XHJcbiAgfVxyXG4gIGlmICh0b3VjaGVzICYmIHRoaXMub3B0cy5lbmFibGVTY3JvbGwgPT09IHRydWUpIHtcclxuICAgIHZhciBfdG91Y2hlcyQgPSBnZXRUb3VjaGVzKHRvdWNoZXMsIHRoaXMub3B0cywgZSk7XHJcbiAgICB2YXIgX2Rpc3RhbmNlO1xyXG4gICAgX2Rpc3RhbmNlID0gX3RvdWNoZXMkLnggLSB0aGlzLnNjcm9sbE9wdGlvbi5zdGFydFRvdWNoWDtcclxuICAgIHZhciBjdXJyZW50T2Zmc2V0ID0gdGhpcy5zY3JvbGxPcHRpb24uY3VycmVudE9mZnNldDtcclxuICAgIHZhciB2YWxpZERpc3RhbmNlID0gY2FsVmFsaWREaXN0YW5jZSh0aGlzLCBjdXJyZW50T2Zmc2V0ICsgX2Rpc3RhbmNlLCB0aGlzLm9wdHMuY2hhcnREYXRhLCB0aGlzLmNvbmZpZywgdGhpcy5vcHRzKTtcclxuICAgIHRoaXMuc2Nyb2xsT3B0aW9uLmRpc3RhbmNlID0gX2Rpc3RhbmNlID0gdmFsaWREaXN0YW5jZSAtIGN1cnJlbnRPZmZzZXQ7XHJcbiAgICB2YXIgb3B0cyA9IGFzc2lnbih7fSwgdGhpcy5vcHRzLCB7XHJcbiAgICAgIF9zY3JvbGxEaXN0YW5jZV86IGN1cnJlbnRPZmZzZXQgKyBfZGlzdGFuY2UsXHJcbiAgICAgIGFuaW1hdGlvbjogZmFsc2VcclxuICAgIH0pO1xyXG5cdFx0dGhpcy5vcHRzID0gb3B0cztcclxuICAgIGRyYXdDaGFydHMuY2FsbCh0aGlzLCBvcHRzLnR5cGUsIG9wdHMsIHRoaXMuY29uZmlnLCB0aGlzLmNvbnRleHQpO1xyXG4gICAgcmV0dXJuIGN1cnJlbnRPZmZzZXQgKyBfZGlzdGFuY2U7XHJcbiAgfVxyXG59O1xyXG5cclxudUNoYXJ0cy5wcm90b3R5cGUuc2Nyb2xsRW5kID0gZnVuY3Rpb24oZSkge1xyXG4gIGlmICh0aGlzLm9wdHMuZW5hYmxlU2Nyb2xsID09PSB0cnVlKSB7XHJcbiAgICB2YXIgX3Njcm9sbE9wdGlvbiA9IHRoaXMuc2Nyb2xsT3B0aW9uLFxyXG4gICAgICBjdXJyZW50T2Zmc2V0ID0gX3Njcm9sbE9wdGlvbi5jdXJyZW50T2Zmc2V0LFxyXG4gICAgICBkaXN0YW5jZSA9IF9zY3JvbGxPcHRpb24uZGlzdGFuY2U7XHJcbiAgICB0aGlzLnNjcm9sbE9wdGlvbi5jdXJyZW50T2Zmc2V0ID0gY3VycmVudE9mZnNldCArIGRpc3RhbmNlO1xyXG4gICAgdGhpcy5zY3JvbGxPcHRpb24uZGlzdGFuY2UgPSAwO1xyXG4gIH1cclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IHVDaGFydHM7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///73\n");
+eval("/* WEBPACK VAR INJECTION */(function(__f__) {/*\r\n * uCharts (R)\r\n * 楂樻�ц兘璺ㄥ钩鍙板浘琛ㄥ簱锛屾敮鎸丠5銆丄PP銆佸皬绋嬪簭锛堝井淇�/鏀粯瀹�/鐧惧害/澶存潯/QQ/360/蹇墜锛夈�乂ue銆乀aro绛夋敮鎸乧anvas鐨勬鏋跺钩鍙癨r\n * Copyright (C) 2018-2022 QIUN (R) 绉嬩簯 https://www.ucharts.cn All rights reserved.\r\n * Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )\r\n * 澶嶅埗浣跨敤璇蜂繚鐣欐湰娈垫敞閲婏紝鎰熻阿鏀寔寮�婧愶紒\r\n * \r\n * uCharts (R) 瀹樻柟缃戠珯\r\n * https://www.uCharts.cn\r\n * \r\n * 寮�婧愬湴鍧�:\r\n * https://gitee.com/uCharts/uCharts\r\n * \r\n * uni-app鎻掍欢甯傚満鍦板潃锛歕r\n * http://ext.dcloud.net.cn/plugin?id=271\r\n * \r\n */\n\nObject.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0;function _slicedToArray(arr, i) {return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();}function _nonIterableRest() {throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");}function _unsupportedIterableToArray(o, minLen) {if (!o) return;if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);var n = Object.prototype.toString.call(o).slice(8, -1);if (n === \"Object\" && o.constructor) n = o.constructor.name;if (n === \"Map\" || n === \"Set\") return Array.from(o);if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);}function _arrayLikeToArray(arr, len) {if (len == null || len > arr.length) len = arr.length;for (var i = 0, arr2 = new Array(len); i < len; i++) {arr2[i] = arr[i];}return arr2;}function _iterableToArrayLimit(arr, i) {if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;var _arr = [];var _n = true;var _d = false;var _e = undefined;try {for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {_arr.push(_s.value);if (i && _arr.length === i) break;}} catch (err) {_d = true;_e = err;} finally {try {if (!_n && _i[\"return\"] != null) _i[\"return\"]();} finally {if (_d) throw _e;}}return _arr;}function _arrayWithHoles(arr) {if (Array.isArray(arr)) return arr;}\n\nvar config = {\n  version: 'v2.4.4-20221102',\n  yAxisWidth: 15,\n  xAxisHeight: 22,\n  xAxisTextPadding: 3,\n  padding: [10, 10, 10, 10],\n  pixelRatio: 1,\n  rotate: false,\n  fontSize: 13,\n  fontColor: '#666666',\n  dataPointShape: ['circle', 'circle', 'circle', 'circle'],\n  color: ['#1890FF', '#91CB74', '#FAC858', '#EE6666', '#73C0DE', '#3CA272', '#FC8452', '#9A60B4', '#ea7ccc'],\n  linearColor: ['#0EE2F8', '#2BDCA8', '#FA7D8D', '#EB88E2', '#2AE3A0', '#0EE2F8', '#EB88E2', '#6773E3', '#F78A85'],\n  pieChartLinePadding: 15,\n  pieChartTextPadding: 5,\n  titleFontSize: 20,\n  subtitleFontSize: 15,\n  toolTipPadding: 3,\n  toolTipBackground: '#000000',\n  toolTipOpacity: 0.7,\n  toolTipLineHeight: 20,\n  radarLabelTextMargin: 13 };\n\n\nvar assign = function assign(target) {for (var _len2 = arguments.length, varArgs = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {varArgs[_key2 - 1] = arguments[_key2];}\n  if (target == null) {\n    throw new TypeError('[uCharts] Cannot convert undefined or null to object');\n  }\n  if (!varArgs || varArgs.length <= 0) {\n    return target;\n  }\n  // 娣卞害鍚堝苟瀵硅薄\n  function deepAssign(obj1, obj2) {\n    for (var key in obj2) {\n      obj1[key] = obj1[key] && obj1[key].toString() === \"[object Object]\" ?\n      deepAssign(obj1[key], obj2[key]) : obj1[key] = obj2[key];\n    }\n    return obj1;\n  }\n  varArgs.forEach(function (val) {\n    target = deepAssign(target, val);\n  });\n  return target;\n};\n\nvar util = {\n  toFixed: function toFixed(num, limit) {\n    limit = limit || 2;\n    if (this.isFloat(num)) {\n      num = num.toFixed(limit);\n    }\n    return num;\n  },\n  isFloat: function isFloat(num) {\n    return num % 1 !== 0;\n  },\n  approximatelyEqual: function approximatelyEqual(num1, num2) {\n    return Math.abs(num1 - num2) < 1e-10;\n  },\n  isSameSign: function isSameSign(num1, num2) {\n    return Math.abs(num1) === num1 && Math.abs(num2) === num2 || Math.abs(num1) !== num1 && Math.abs(num2) !== num2;\n  },\n  isSameXCoordinateArea: function isSameXCoordinateArea(p1, p2) {\n    return this.isSameSign(p1.x, p2.x);\n  },\n  isCollision: function isCollision(obj1, obj2) {\n    obj1.end = {};\n    obj1.end.x = obj1.start.x + obj1.width;\n    obj1.end.y = obj1.start.y - obj1.height;\n    obj2.end = {};\n    obj2.end.x = obj2.start.x + obj2.width;\n    obj2.end.y = obj2.start.y - obj2.height;\n    var flag = obj2.start.x > obj1.end.x || obj2.end.x < obj1.start.x || obj2.end.y > obj1.start.y || obj2.start.y < obj1.end.y;\n    return !flag;\n  } };\n\n\n//鍏煎H5鐐瑰嚮浜嬩欢\nfunction getH5Offset(e) {\n  e.mp = {\n    changedTouches: [] };\n\n  e.mp.changedTouches.push({\n    x: e.offsetX,\n    y: e.offsetY });\n\n  return e;\n}\n\n// hex 杞� rgba\nfunction hexToRgb(hexValue, opc) {\n  var rgx = /^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i;\n  var hex = hexValue.replace(rgx, function (m, r, g, b) {\n    return r + r + g + g + b + b;\n  });\n  var rgb = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n  var r = parseInt(rgb[1], 16);\n  var g = parseInt(rgb[2], 16);\n  var b = parseInt(rgb[3], 16);\n  return 'rgba(' + r + ',' + g + ',' + b + ',' + opc + ')';\n}\n\nfunction findRange(num, type, limit) {\n  if (isNaN(num)) {\n    throw new Error('[uCharts] series鏁版嵁闇�涓篘umber鏍煎紡');\n  }\n  limit = limit || 10;\n  type = type ? type : 'upper';\n  var multiple = 1;\n  while (limit < 1) {\n    limit *= 10;\n    multiple *= 10;\n  }\n  if (type === 'upper') {\n    num = Math.ceil(num * multiple);\n  } else {\n    num = Math.floor(num * multiple);\n  }\n  while (num % limit !== 0) {\n    if (type === 'upper') {\n      if (num == num + 1) {//淇鏁版嵁鍊艰繃澶um++鏃犳晥鐨刡ug by 鍚戞棩钁� @xrk_jy\n        break;\n      }\n      num++;\n    } else {\n      num--;\n    }\n  }\n  return num / multiple;\n}\n\nfunction calCandleMA(dayArr, nameArr, colorArr, kdata) {\n  var seriesTemp = [];\n  for (var k = 0; k < dayArr.length; k++) {\n    var seriesItem = {\n      data: [],\n      name: nameArr[k],\n      color: colorArr[k] };\n\n    for (var i = 0, len = kdata.length; i < len; i++) {\n      if (i < dayArr[k]) {\n        seriesItem.data.push(null);\n        continue;\n      }\n      var sum = 0;\n      for (var j = 0; j < dayArr[k]; j++) {\n        sum += kdata[i - j][1];\n      }\n      seriesItem.data.push(+(sum / dayArr[k]).toFixed(3));\n    }\n    seriesTemp.push(seriesItem);\n  }\n  return seriesTemp;\n}\n\nfunction calValidDistance(self, distance, chartData, config, opts) {\n  var dataChartAreaWidth = opts.width - opts.area[1] - opts.area[3];\n  var dataChartWidth = chartData.eachSpacing * (opts.chartData.xAxisData.xAxisPoints.length - 1);\n  if (opts.type == 'mount' && opts.extra && opts.extra.mount && opts.extra.mount.widthRatio && opts.extra.mount.widthRatio > 1) {\n    if (opts.extra.mount.widthRatio > 2) opts.extra.mount.widthRatio = 2;\n    dataChartWidth += (opts.extra.mount.widthRatio - 1) * chartData.eachSpacing;\n  }\n  var validDistance = distance;\n  if (distance >= 0) {\n    validDistance = 0;\n    self.uevent.trigger('scrollLeft');\n    self.scrollOption.position = 'left';\n    opts.xAxis.scrollPosition = 'left';\n  } else if (Math.abs(distance) >= dataChartWidth - dataChartAreaWidth) {\n    validDistance = dataChartAreaWidth - dataChartWidth;\n    self.uevent.trigger('scrollRight');\n    self.scrollOption.position = 'right';\n    opts.xAxis.scrollPosition = 'right';\n  } else {\n    self.scrollOption.position = distance;\n    opts.xAxis.scrollPosition = distance;\n  }\n  return validDistance;\n}\n\nfunction isInAngleRange(angle, startAngle, endAngle) {\n  function adjust(angle) {\n    while (angle < 0) {\n      angle += 2 * Math.PI;\n    }\n    while (angle > 2 * Math.PI) {\n      angle -= 2 * Math.PI;\n    }\n    return angle;\n  }\n  angle = adjust(angle);\n  startAngle = adjust(startAngle);\n  endAngle = adjust(endAngle);\n  if (startAngle > endAngle) {\n    endAngle += 2 * Math.PI;\n    if (angle < startAngle) {\n      angle += 2 * Math.PI;\n    }\n  }\n  return angle >= startAngle && angle <= endAngle;\n}\n\nfunction createCurveControlPoints(points, i) {\n  function isNotMiddlePoint(points, i) {\n    if (points[i - 1] && points[i + 1]) {\n      return points[i].y >= Math.max(points[i - 1].y, points[i + 1].y) || points[i].y <= Math.min(points[i - 1].y,\n      points[i + 1].y);\n    } else {\n      return false;\n    }\n  }\n  function isNotMiddlePointX(points, i) {\n    if (points[i - 1] && points[i + 1]) {\n      return points[i].x >= Math.max(points[i - 1].x, points[i + 1].x) || points[i].x <= Math.min(points[i - 1].x,\n      points[i + 1].x);\n    } else {\n      return false;\n    }\n  }\n  var a = 0.2;\n  var b = 0.2;\n  var pAx = null;\n  var pAy = null;\n  var pBx = null;\n  var pBy = null;\n  if (i < 1) {\n    pAx = points[0].x + (points[1].x - points[0].x) * a;\n    pAy = points[0].y + (points[1].y - points[0].y) * a;\n  } else {\n    pAx = points[i].x + (points[i + 1].x - points[i - 1].x) * a;\n    pAy = points[i].y + (points[i + 1].y - points[i - 1].y) * a;\n  }\n\n  if (i > points.length - 3) {\n    var last = points.length - 1;\n    pBx = points[last].x - (points[last].x - points[last - 1].x) * b;\n    pBy = points[last].y - (points[last].y - points[last - 1].y) * b;\n  } else {\n    pBx = points[i + 1].x - (points[i + 2].x - points[i].x) * b;\n    pBy = points[i + 1].y - (points[i + 2].y - points[i].y) * b;\n  }\n  if (isNotMiddlePoint(points, i + 1)) {\n    pBy = points[i + 1].y;\n  }\n  if (isNotMiddlePoint(points, i)) {\n    pAy = points[i].y;\n  }\n  if (isNotMiddlePointX(points, i + 1)) {\n    pBx = points[i + 1].x;\n  }\n  if (isNotMiddlePointX(points, i)) {\n    pAx = points[i].x;\n  }\n  if (pAy >= Math.max(points[i].y, points[i + 1].y) || pAy <= Math.min(points[i].y, points[i + 1].y)) {\n    pAy = points[i].y;\n  }\n  if (pBy >= Math.max(points[i].y, points[i + 1].y) || pBy <= Math.min(points[i].y, points[i + 1].y)) {\n    pBy = points[i + 1].y;\n  }\n  if (pAx >= Math.max(points[i].x, points[i + 1].x) || pAx <= Math.min(points[i].x, points[i + 1].x)) {\n    pAx = points[i].x;\n  }\n  if (pBx >= Math.max(points[i].x, points[i + 1].x) || pBx <= Math.min(points[i].x, points[i + 1].x)) {\n    pBx = points[i + 1].x;\n  }\n  return {\n    ctrA: {\n      x: pAx,\n      y: pAy },\n\n    ctrB: {\n      x: pBx,\n      y: pBy } };\n\n\n}\n\n\nfunction convertCoordinateOrigin(x, y, center) {\n  return {\n    x: center.x + x,\n    y: center.y - y };\n\n}\n\nfunction avoidCollision(obj, target) {\n  if (target) {\n    // is collision test\n    while (util.isCollision(obj, target)) {\n      if (obj.start.x > 0) {\n        obj.start.y--;\n      } else if (obj.start.x < 0) {\n        obj.start.y++;\n      } else {\n        if (obj.start.y > 0) {\n          obj.start.y++;\n        } else {\n          obj.start.y--;\n        }\n      }\n    }\n  }\n  return obj;\n}\n\nfunction fixPieSeries(series, opts, config) {\n  var pieSeriesArr = [];\n  if (series.length > 0 && series[0].data.constructor.toString().indexOf('Array') > -1) {\n    opts._pieSeries_ = series;\n    var oldseries = series[0].data;\n    for (var i = 0; i < oldseries.length; i++) {\n      oldseries[i].formatter = series[0].formatter;\n      oldseries[i].data = oldseries[i].value;\n      pieSeriesArr.push(oldseries[i]);\n    }\n    opts.series = pieSeriesArr;\n  } else {\n    pieSeriesArr = series;\n  }\n  return pieSeriesArr;\n}\n\nfunction fillSeries(series, opts, config) {\n  var index = 0;\n  for (var i = 0; i < series.length; i++) {\n    var item = series[i];\n    if (!item.color) {\n      item.color = config.color[index];\n      index = (index + 1) % config.color.length;\n    }\n    if (!item.linearIndex) {\n      item.linearIndex = i;\n    }\n    if (!item.index) {\n      item.index = 0;\n    }\n    if (!item.type) {\n      item.type = opts.type;\n    }\n    if (typeof item.show == \"undefined\") {\n      item.show = true;\n    }\n    if (!item.type) {\n      item.type = opts.type;\n    }\n    if (!item.pointShape) {\n      item.pointShape = \"circle\";\n    }\n    if (!item.legendShape) {\n      switch (item.type) {\n        case 'line':\n          item.legendShape = \"line\";\n          break;\n        case 'column':\n        case 'bar':\n          item.legendShape = \"rect\";\n          break;\n        case 'area':\n        case 'mount':\n          item.legendShape = \"triangle\";\n          break;\n        default:\n          item.legendShape = \"circle\";}\n\n    }\n  }\n  return series;\n}\n\nfunction fillCustomColor(linearType, customColor, series, config) {\n  var newcolor = customColor || [];\n  if (linearType == 'custom' && newcolor.length == 0) {\n    newcolor = config.linearColor;\n  }\n  if (linearType == 'custom' && newcolor.length < series.length) {\n    var chazhi = series.length - newcolor.length;\n    for (var i = 0; i < chazhi; i++) {\n      newcolor.push(config.linearColor[(i + 1) % config.linearColor.length]);\n    }\n  }\n  return newcolor;\n}\n\nfunction getDataRange(minData, maxData) {\n  var limit = 0;\n  var range = maxData - minData;\n  if (range >= 10000) {\n    limit = 1000;\n  } else if (range >= 1000) {\n    limit = 100;\n  } else if (range >= 100) {\n    limit = 10;\n  } else if (range >= 10) {\n    limit = 5;\n  } else if (range >= 1) {\n    limit = 1;\n  } else if (range >= 0.1) {\n    limit = 0.1;\n  } else if (range >= 0.01) {\n    limit = 0.01;\n  } else if (range >= 0.001) {\n    limit = 0.001;\n  } else if (range >= 0.0001) {\n    limit = 0.0001;\n  } else if (range >= 0.00001) {\n    limit = 0.00001;\n  } else {\n    limit = 0.000001;\n  }\n  return {\n    minRange: findRange(minData, 'lower', limit),\n    maxRange: findRange(maxData, 'upper', limit) };\n\n}\n\nfunction measureText(text, fontSize, context) {\n  var width = 0;\n  text = String(text);\n\n\n\n  if (context !== false && context !== undefined && context.setFontSize && context.measureText) {\n    context.setFontSize(fontSize);\n    return context.measureText(text).width;\n  } else {\n    var text = text.split('');\n    for (var i = 0; i < text.length; i++) {\n      var item = text[i];\n      if (/[a-zA-Z]/.test(item)) {\n        width += 7;\n      } else if (/[0-9]/.test(item)) {\n        width += 5.5;\n      } else if (/\\./.test(item)) {\n        width += 2.7;\n      } else if (/-/.test(item)) {\n        width += 3.25;\n      } else if (/:/.test(item)) {\n        width += 2.5;\n      } else if (/[\\u4e00-\\u9fa5]/.test(item)) {\n        width += 10;\n      } else if (/\\(|\\)/.test(item)) {\n        width += 3.73;\n      } else if (/\\s/.test(item)) {\n        width += 2.5;\n      } else if (/%/.test(item)) {\n        width += 8;\n      } else {\n        width += 10;\n      }\n    }\n    return width * fontSize / 10;\n  }\n}\n\nfunction dataCombine(series) {\n  return series.reduce(function (a, b) {\n    return (a.data ? a.data : a).concat(b.data);\n  }, []);\n}\n\nfunction dataCombineStack(series, len) {\n  var sum = new Array(len);\n  for (var j = 0; j < sum.length; j++) {\n    sum[j] = 0;\n  }\n  for (var i = 0; i < series.length; i++) {\n    for (var j = 0; j < sum.length; j++) {\n      sum[j] += series[i].data[j];\n    }\n  }\n  return series.reduce(function (a, b) {\n    return (a.data ? a.data : a).concat(b.data).concat(sum);\n  }, []);\n}\n\nfunction getTouches(touches, opts, e) {\n  var x, y;\n  if (touches.clientX) {\n    if (opts.rotate) {\n      y = opts.height - touches.clientX * opts.pix;\n      x = (touches.pageY - e.currentTarget.offsetTop - opts.height / opts.pix / 2 * (opts.pix - 1)) * opts.pix;\n    } else {\n      x = touches.clientX * opts.pix;\n      y = (touches.pageY - e.currentTarget.offsetTop - opts.height / opts.pix / 2 * (opts.pix - 1)) * opts.pix;\n    }\n  } else {\n    if (opts.rotate) {\n      y = opts.height - touches.x * opts.pix;\n      x = touches.y * opts.pix;\n    } else {\n      x = touches.x * opts.pix;\n      y = touches.y * opts.pix;\n    }\n  }\n  return {\n    x: x,\n    y: y };\n\n}\n\nfunction getSeriesDataItem(series, index, group) {\n  var data = [];\n  var newSeries = [];\n  var indexIsArr = index.constructor.toString().indexOf('Array') > -1;\n  if (indexIsArr) {\n    var tempSeries = filterSeries(series);\n    for (var i = 0; i < group.length; i++) {\n      newSeries.push(tempSeries[group[i]]);\n    }\n  } else {\n    newSeries = series;\n  };\n  for (var _i = 0; _i < newSeries.length; _i++) {\n    var item = newSeries[_i];\n    var tmpindex = -1;\n    if (indexIsArr) {\n      tmpindex = index[_i];\n    } else {\n      tmpindex = index;\n    }\n    if (item.data[tmpindex] !== null && typeof item.data[tmpindex] !== 'undefined' && item.show) {\n      var seriesItem = {};\n      seriesItem.color = item.color;\n      seriesItem.type = item.type;\n      seriesItem.style = item.style;\n      seriesItem.pointShape = item.pointShape;\n      seriesItem.disableLegend = item.disableLegend;\n      seriesItem.name = item.name;\n      seriesItem.show = item.show;\n      seriesItem.data = item.formatter ? item.formatter(item.data[tmpindex]) : item.data[tmpindex];\n      data.push(seriesItem);\n    }\n  }\n  return data;\n}\n\nfunction getMaxTextListLength(list, fontSize, context) {\n  var lengthList = list.map(function (item) {\n    return measureText(item, fontSize, context);\n  });\n  return Math.max.apply(null, lengthList);\n}\n\nfunction getRadarCoordinateSeries(length) {\n  var eachAngle = 2 * Math.PI / length;\n  var CoordinateSeries = [];\n  for (var i = 0; i < length; i++) {\n    CoordinateSeries.push(eachAngle * i);\n  }\n  return CoordinateSeries.map(function (item) {\n    return -1 * item + Math.PI / 2;\n  });\n}\n\nfunction getToolTipData(seriesData, opts, index, group, categories) {\n  var option = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n  var calPoints = opts.chartData.calPoints ? opts.chartData.calPoints : [];\n  var points = {};\n  if (group.length > 0) {\n    var filterPoints = [];\n    for (var i = 0; i < group.length; i++) {\n      filterPoints.push(calPoints[group[i]]);\n    }\n    points = filterPoints[0][index[0]];\n  } else {\n    for (var _i2 = 0; _i2 < calPoints.length; _i2++) {\n      if (calPoints[_i2][index]) {\n        points = calPoints[_i2][index];\n        break;\n      }\n    }\n  };\n  var textList = seriesData.map(function (item) {\n    var titleText = null;\n    if (opts.categories && opts.categories.length > 0) {\n      titleText = categories[index];\n    };\n    return {\n      text: option.formatter ? option.formatter(item, titleText, index, opts) : item.name + ': ' + item.data,\n      color: item.color };\n\n  });\n  var offset = {\n    x: Math.round(points.x),\n    y: Math.round(points.y) };\n\n  return {\n    textList: textList,\n    offset: offset };\n\n}\n\nfunction getMixToolTipData(seriesData, opts, index, categories) {\n  var option = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};\n  var points = opts.chartData.xAxisPoints[index] + opts.chartData.eachSpacing / 2;\n  var textList = seriesData.map(function (item) {\n    return {\n      text: option.formatter ? option.formatter(item, categories[index], index, opts) : item.name + ': ' + item.data,\n      color: item.color,\n      disableLegend: item.disableLegend ? true : false };\n\n  });\n  textList = textList.filter(function (item) {\n    if (item.disableLegend !== true) {\n      return item;\n    }\n  });\n  var offset = {\n    x: Math.round(points),\n    y: 0 };\n\n  return {\n    textList: textList,\n    offset: offset };\n\n}\n\nfunction getCandleToolTipData(series, seriesData, opts, index, categories, extra) {\n  var option = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : {};\n  var calPoints = opts.chartData.calPoints;\n  var upColor = extra.color.upFill;\n  var downColor = extra.color.downFill;\n  //棰滆壊椤哄簭涓哄紑鐩橈紝鏀剁洏锛屾渶浣庯紝鏈�楂榎n  var color = [upColor, upColor, downColor, upColor];\n  var textList = [];\n  seriesData.map(function (item) {\n    if (index == 0) {\n      if (item.data[1] - item.data[0] < 0) {\n        color[1] = downColor;\n      } else {\n        color[1] = upColor;\n      }\n    } else {\n      if (item.data[0] < series[index - 1][1]) {\n        color[0] = downColor;\n      }\n      if (item.data[1] < item.data[0]) {\n        color[1] = downColor;\n      }\n      if (item.data[2] > series[index - 1][1]) {\n        color[2] = upColor;\n      }\n      if (item.data[3] < series[index - 1][1]) {\n        color[3] = downColor;\n      }\n    }\n    var text1 = {\n      text: '寮�鐩橈細' + item.data[0],\n      color: color[0] };\n\n    var text2 = {\n      text: '鏀剁洏锛�' + item.data[1],\n      color: color[1] };\n\n    var text3 = {\n      text: '鏈�浣庯細' + item.data[2],\n      color: color[2] };\n\n    var text4 = {\n      text: '鏈�楂橈細' + item.data[3],\n      color: color[3] };\n\n    textList.push(text1, text2, text3, text4);\n  });\n  var validCalPoints = [];\n  var offset = {\n    x: 0,\n    y: 0 };\n\n  for (var i = 0; i < calPoints.length; i++) {\n    var points = calPoints[i];\n    if (typeof points[index] !== 'undefined' && points[index] !== null) {\n      validCalPoints.push(points[index]);\n    }\n  }\n  offset.x = Math.round(validCalPoints[0][0].x);\n  return {\n    textList: textList,\n    offset: offset };\n\n}\n\nfunction filterSeries(series) {\n  var tempSeries = [];\n  for (var i = 0; i < series.length; i++) {\n    if (series[i].show == true) {\n      tempSeries.push(series[i]);\n    }\n  }\n  return tempSeries;\n}\n\nfunction findCurrentIndex(currentPoints, calPoints, opts, config) {\n  var offset = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;\n  var current = { index: -1, group: [] };\n  var spacing = opts.chartData.eachSpacing / 2;\n  var xAxisPoints = [];\n  if (calPoints && calPoints.length > 0) {\n    if (!opts.categories) {\n      spacing = 0;\n    } else {\n      for (var i = 1; i < opts.chartData.xAxisPoints.length; i++) {\n        xAxisPoints.push(opts.chartData.xAxisPoints[i] - spacing);\n      }\n      if ((opts.type == 'line' || opts.type == 'area') && opts.xAxis.boundaryGap == 'justify') {\n        xAxisPoints = opts.chartData.xAxisPoints;\n      }\n    }\n    if (isInExactChartArea(currentPoints, opts, config)) {\n      if (!opts.categories) {\n        var timePoints = Array(calPoints.length);\n        for (var _i3 = 0; _i3 < calPoints.length; _i3++) {\n          timePoints[_i3] = Array(calPoints[_i3].length);\n          for (var j = 0; j < calPoints[_i3].length; j++) {\n            timePoints[_i3][j] = Math.abs(calPoints[_i3][j].x - currentPoints.x);\n          }\n        };\n        var pointValue = Array(timePoints.length);\n        var pointIndex = Array(timePoints.length);\n        for (var _i4 = 0; _i4 < timePoints.length; _i4++) {\n          pointValue[_i4] = Math.min.apply(null, timePoints[_i4]);\n          pointIndex[_i4] = timePoints[_i4].indexOf(pointValue[_i4]);\n        }\n        var minValue = Math.min.apply(null, pointValue);\n        current.index = [];\n        for (var _i5 = 0; _i5 < pointValue.length; _i5++) {\n          if (pointValue[_i5] == minValue) {\n            current.group.push(_i5);\n            current.index.push(pointIndex[_i5]);\n          }\n        };\n      } else {\n        xAxisPoints.forEach(function (item, index) {\n          if (currentPoints.x + offset + spacing > item) {\n            current.index = index;\n          }\n        });\n      }\n    }\n  }\n  return current;\n}\n\nfunction findBarChartCurrentIndex(currentPoints, calPoints, opts, config) {\n  var offset = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;\n  var current = { index: -1, group: [] };\n  var spacing = opts.chartData.eachSpacing / 2;\n  var yAxisPoints = opts.chartData.yAxisPoints;\n  if (calPoints && calPoints.length > 0) {\n    if (isInExactChartArea(currentPoints, opts, config)) {\n      yAxisPoints.forEach(function (item, index) {\n        if (currentPoints.y + offset + spacing > item) {\n          current.index = index;\n        }\n      });\n    }\n  }\n  return current;\n}\n\nfunction findLegendIndex(currentPoints, legendData, opts) {\n  var currentIndex = -1;\n  var gap = 0;\n  if (isInExactLegendArea(currentPoints, legendData.area)) {\n    var points = legendData.points;\n    var index = -1;\n    for (var i = 0, len = points.length; i < len; i++) {\n      var item = points[i];\n      for (var j = 0; j < item.length; j++) {\n        index += 1;\n        var area = item[j]['area'];\n        if (area && currentPoints.x > area[0] - gap && currentPoints.x < area[2] + gap && currentPoints.y > area[1] - gap && currentPoints.y < area[3] + gap) {\n          currentIndex = index;\n          break;\n        }\n      }\n    }\n    return currentIndex;\n  }\n  return currentIndex;\n}\n\nfunction isInExactLegendArea(currentPoints, area) {\n  return currentPoints.x > area.start.x && currentPoints.x < area.end.x && currentPoints.y > area.start.y && currentPoints.y < area.end.y;\n}\n\nfunction isInExactChartArea(currentPoints, opts, config) {\n  return currentPoints.x <= opts.width - opts.area[1] + 10 && currentPoints.x >= opts.area[3] - 10 && currentPoints.y >= opts.area[0] && currentPoints.y <= opts.height - opts.area[2];\n}\n\nfunction findRadarChartCurrentIndex(currentPoints, radarData, count) {\n  var eachAngleArea = 2 * Math.PI / count;\n  var currentIndex = -1;\n  if (isInExactPieChartArea(currentPoints, radarData.center, radarData.radius)) {\n    var fixAngle = function fixAngle(angle) {\n      if (angle < 0) {\n        angle += 2 * Math.PI;\n      }\n      if (angle > 2 * Math.PI) {\n        angle -= 2 * Math.PI;\n      }\n      return angle;\n    };\n    var angle = Math.atan2(radarData.center.y - currentPoints.y, currentPoints.x - radarData.center.x);\n    angle = -1 * angle;\n    if (angle < 0) {\n      angle += 2 * Math.PI;\n    }\n    var angleList = radarData.angleList.map(function (item) {\n      item = fixAngle(-1 * item);\n      return item;\n    });\n    angleList.forEach(function (item, index) {\n      var rangeStart = fixAngle(item - eachAngleArea / 2);\n      var rangeEnd = fixAngle(item + eachAngleArea / 2);\n      if (rangeEnd < rangeStart) {\n        rangeEnd += 2 * Math.PI;\n      }\n      if (angle >= rangeStart && angle <= rangeEnd || angle + 2 * Math.PI >= rangeStart && angle + 2 * Math.PI <= rangeEnd) {\n        currentIndex = index;\n      }\n    });\n  }\n  return currentIndex;\n}\n\nfunction findFunnelChartCurrentIndex(currentPoints, funnelData) {\n  var currentIndex = -1;\n  for (var i = 0, len = funnelData.series.length; i < len; i++) {\n    var item = funnelData.series[i];\n    if (currentPoints.x > item.funnelArea[0] && currentPoints.x < item.funnelArea[2] && currentPoints.y > item.funnelArea[1] && currentPoints.y < item.funnelArea[3]) {\n      currentIndex = i;\n      break;\n    }\n  }\n  return currentIndex;\n}\n\nfunction findWordChartCurrentIndex(currentPoints, wordData) {\n  var currentIndex = -1;\n  for (var i = 0, len = wordData.length; i < len; i++) {\n    var item = wordData[i];\n    if (currentPoints.x > item.area[0] && currentPoints.x < item.area[2] && currentPoints.y > item.area[1] && currentPoints.y < item.area[3]) {\n      currentIndex = i;\n      break;\n    }\n  }\n  return currentIndex;\n}\n\nfunction findMapChartCurrentIndex(currentPoints, opts) {\n  var currentIndex = -1;\n  var cData = opts.chartData.mapData;\n  var data = opts.series;\n  var tmp = pointToCoordinate(currentPoints.y, currentPoints.x, cData.bounds, cData.scale, cData.xoffset, cData.yoffset);\n  var poi = [tmp.x, tmp.y];\n  for (var i = 0, len = data.length; i < len; i++) {\n    var item = data[i].geometry.coordinates;\n    if (isPoiWithinPoly(poi, item, opts.chartData.mapData.mercator)) {\n      currentIndex = i;\n      break;\n    }\n  }\n  return currentIndex;\n}\n\nfunction findRoseChartCurrentIndex(currentPoints, pieData, opts) {\n  var currentIndex = -1;\n  var series = getRoseDataPoints(opts._series_, opts.extra.rose.type, pieData.radius, pieData.radius);\n  if (pieData && pieData.center && isInExactPieChartArea(currentPoints, pieData.center, pieData.radius)) {\n    var angle = Math.atan2(pieData.center.y - currentPoints.y, currentPoints.x - pieData.center.x);\n    angle = -angle;\n    if (opts.extra.rose && opts.extra.rose.offsetAngle) {\n      angle = angle - opts.extra.rose.offsetAngle * Math.PI / 180;\n    }\n    for (var i = 0, len = series.length; i < len; i++) {\n      if (isInAngleRange(angle, series[i]._start_, series[i]._start_ + series[i]._rose_proportion_ * 2 * Math.PI)) {\n        currentIndex = i;\n        break;\n      }\n    }\n  }\n  return currentIndex;\n}\n\nfunction findPieChartCurrentIndex(currentPoints, pieData, opts) {\n  var currentIndex = -1;\n  var series = getPieDataPoints(pieData.series);\n  if (pieData && pieData.center && isInExactPieChartArea(currentPoints, pieData.center, pieData.radius)) {\n    var angle = Math.atan2(pieData.center.y - currentPoints.y, currentPoints.x - pieData.center.x);\n    angle = -angle;\n    if (opts.extra.pie && opts.extra.pie.offsetAngle) {\n      angle = angle - opts.extra.pie.offsetAngle * Math.PI / 180;\n    }\n    if (opts.extra.ring && opts.extra.ring.offsetAngle) {\n      angle = angle - opts.extra.ring.offsetAngle * Math.PI / 180;\n    }\n    for (var i = 0, len = series.length; i < len; i++) {\n      if (isInAngleRange(angle, series[i]._start_, series[i]._start_ + series[i]._proportion_ * 2 * Math.PI)) {\n        currentIndex = i;\n        break;\n      }\n    }\n  }\n  return currentIndex;\n}\n\nfunction isInExactPieChartArea(currentPoints, center, radius) {\n  return Math.pow(currentPoints.x - center.x, 2) + Math.pow(currentPoints.y - center.y, 2) <= Math.pow(radius, 2);\n}\n\n\nfunction splitPoints(points, eachSeries) {\n  var newPoints = [];\n  var items = [];\n  points.forEach(function (item, index) {\n    if (eachSeries.connectNulls) {\n      if (item !== null) {\n        items.push(item);\n      }\n    } else {\n      if (item !== null) {\n        items.push(item);\n      } else {\n        if (items.length) {\n          newPoints.push(items);\n        }\n        items = [];\n      }\n    }\n\n  });\n  if (items.length) {\n    newPoints.push(items);\n  }\n  return newPoints;\n}\n\n\nfunction calLegendData(series, opts, config, chartData, context) {\n  var legendData = {\n    area: {\n      start: {\n        x: 0,\n        y: 0 },\n\n      end: {\n        x: 0,\n        y: 0 },\n\n      width: 0,\n      height: 0,\n      wholeWidth: 0,\n      wholeHeight: 0 },\n\n    points: [],\n    widthArr: [],\n    heightArr: [] };\n\n  if (opts.legend.show === false) {\n    chartData.legendData = legendData;\n    return legendData;\n  }\n  var padding = opts.legend.padding * opts.pix;\n  var margin = opts.legend.margin * opts.pix;\n  var fontSize = opts.legend.fontSize ? opts.legend.fontSize * opts.pix : config.fontSize;\n  var shapeWidth = 15 * opts.pix;\n  var shapeRight = 5 * opts.pix;\n  var lineHeight = Math.max(opts.legend.lineHeight * opts.pix, fontSize);\n  if (opts.legend.position == 'top' || opts.legend.position == 'bottom') {\n    var legendList = [];\n    var widthCount = 0;\n    var widthCountArr = [];\n    var currentRow = [];\n    for (var i = 0; i < series.length; i++) {\n      var item = series[i];\n      var legendText = item.legendText ? item.legendText : item.name;\n      var itemWidth = shapeWidth + shapeRight + measureText(legendText || 'undefined', fontSize, context) + opts.legend.itemGap * opts.pix;\n      if (widthCount + itemWidth > opts.width - opts.area[1] - opts.area[3]) {\n        legendList.push(currentRow);\n        widthCountArr.push(widthCount - opts.legend.itemGap * opts.pix);\n        widthCount = itemWidth;\n        currentRow = [item];\n      } else {\n        widthCount += itemWidth;\n        currentRow.push(item);\n      }\n    }\n    if (currentRow.length) {\n      legendList.push(currentRow);\n      widthCountArr.push(widthCount - opts.legend.itemGap * opts.pix);\n      legendData.widthArr = widthCountArr;\n      var legendWidth = Math.max.apply(null, widthCountArr);\n      switch (opts.legend.float) {\n        case 'left':\n          legendData.area.start.x = opts.area[3];\n          legendData.area.end.x = opts.area[3] + legendWidth + 2 * padding;\n          break;\n        case 'right':\n          legendData.area.start.x = opts.width - opts.area[1] - legendWidth - 2 * padding;\n          legendData.area.end.x = opts.width - opts.area[1];\n          break;\n        default:\n          legendData.area.start.x = (opts.width - legendWidth) / 2 - padding;\n          legendData.area.end.x = (opts.width + legendWidth) / 2 + padding;}\n\n      legendData.area.width = legendWidth + 2 * padding;\n      legendData.area.wholeWidth = legendWidth + 2 * padding;\n      legendData.area.height = legendList.length * lineHeight + 2 * padding;\n      legendData.area.wholeHeight = legendList.length * lineHeight + 2 * padding + 2 * margin;\n      legendData.points = legendList;\n    }\n  } else {\n    var len = series.length;\n    var maxHeight = opts.height - opts.area[0] - opts.area[2] - 2 * margin - 2 * padding;\n    var maxLength = Math.min(Math.floor(maxHeight / lineHeight), len);\n    legendData.area.height = maxLength * lineHeight + padding * 2;\n    legendData.area.wholeHeight = maxLength * lineHeight + padding * 2;\n    switch (opts.legend.float) {\n      case 'top':\n        legendData.area.start.y = opts.area[0] + margin;\n        legendData.area.end.y = opts.area[0] + margin + legendData.area.height;\n        break;\n      case 'bottom':\n        legendData.area.start.y = opts.height - opts.area[2] - margin - legendData.area.height;\n        legendData.area.end.y = opts.height - opts.area[2] - margin;\n        break;\n      default:\n        legendData.area.start.y = (opts.height - legendData.area.height) / 2;\n        legendData.area.end.y = (opts.height + legendData.area.height) / 2;}\n\n    var lineNum = len % maxLength === 0 ? len / maxLength : Math.floor(len / maxLength + 1);\n    var _currentRow = [];\n    for (var _i6 = 0; _i6 < lineNum; _i6++) {\n      var temp = series.slice(_i6 * maxLength, _i6 * maxLength + maxLength);\n      _currentRow.push(temp);\n    }\n    legendData.points = _currentRow;\n    if (_currentRow.length) {\n      for (var _i7 = 0; _i7 < _currentRow.length; _i7++) {\n        var _item = _currentRow[_i7];\n        var maxWidth = 0;\n        for (var j = 0; j < _item.length; j++) {\n          var _itemWidth = shapeWidth + shapeRight + measureText(_item[j].name || 'undefined', fontSize, context) + opts.legend.itemGap * opts.pix;\n          if (_itemWidth > maxWidth) {\n            maxWidth = _itemWidth;\n          }\n        }\n        legendData.widthArr.push(maxWidth);\n        legendData.heightArr.push(_item.length * lineHeight + padding * 2);\n      }\n      var _legendWidth = 0;\n      for (var _i8 = 0; _i8 < legendData.widthArr.length; _i8++) {\n        _legendWidth += legendData.widthArr[_i8];\n      }\n      legendData.area.width = _legendWidth - opts.legend.itemGap * opts.pix + 2 * padding;\n      legendData.area.wholeWidth = legendData.area.width + padding;\n    }\n  }\n  switch (opts.legend.position) {\n    case 'top':\n      legendData.area.start.y = opts.area[0] + margin;\n      legendData.area.end.y = opts.area[0] + margin + legendData.area.height;\n      break;\n    case 'bottom':\n      legendData.area.start.y = opts.height - opts.area[2] - legendData.area.height - margin;\n      legendData.area.end.y = opts.height - opts.area[2] - margin;\n      break;\n    case 'left':\n      legendData.area.start.x = opts.area[3];\n      legendData.area.end.x = opts.area[3] + legendData.area.width;\n      break;\n    case 'right':\n      legendData.area.start.x = opts.width - opts.area[1] - legendData.area.width;\n      legendData.area.end.x = opts.width - opts.area[1];\n      break;}\n\n  chartData.legendData = legendData;\n  return legendData;\n}\n\nfunction calCategoriesData(categories, opts, config, eachSpacing, context) {\n  var result = {\n    angle: 0,\n    xAxisHeight: config.xAxisHeight };\n\n  var fontSize = opts.xAxis.fontSize * opts.pix || config.fontSize;\n  var categoriesTextLenth = categories.map(function (item, index) {\n    var xitem = opts.xAxis.formatter ? opts.xAxis.formatter(item, index, opts) : item;\n    return measureText(String(xitem), fontSize, context);\n  });\n\n  var maxTextLength = Math.max.apply(this, categoriesTextLenth);\n  if (opts.xAxis.rotateLabel == true) {\n    result.angle = opts.xAxis.rotateAngle * Math.PI / 180;\n    var tempHeight = 2 * config.xAxisTextPadding + Math.abs(maxTextLength * Math.sin(result.angle));\n    tempHeight = tempHeight < fontSize + 2 * config.xAxisTextPadding ? tempHeight + 2 * config.xAxisTextPadding : tempHeight;\n    if (opts.enableScroll == true && opts.xAxis.scrollShow == true) {\n      tempHeight += 12 * opts.pix;\n    }\n    result.xAxisHeight = tempHeight;\n  }\n  if (opts.xAxis.disabled) {\n    result.xAxisHeight = 0;\n  }\n  return result;\n}\n\nfunction getXAxisTextList(series, opts, config, stack) {\n  var index = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : -1;\n  var data;\n  if (stack == 'stack') {\n    data = dataCombineStack(series, opts.categories.length);\n  } else {\n    data = dataCombine(series);\n  }\n  var sorted = [];\n  // remove null from data\n  data = data.filter(function (item) {\n    //return item !== null;\n    if (typeof item === 'object' && item !== null) {\n      if (item.constructor.toString().indexOf('Array') > -1) {\n        return item !== null;\n      } else {\n        return item.value !== null;\n      }\n    } else {\n      return item !== null;\n    }\n  });\n  data.map(function (item) {\n    if (typeof item === 'object') {\n      if (item.constructor.toString().indexOf('Array') > -1) {\n        if (opts.type == 'candle') {\n          item.map(function (subitem) {\n            sorted.push(subitem);\n          });\n        } else {\n          sorted.push(item[0]);\n        }\n      } else {\n        sorted.push(item.value);\n      }\n    } else {\n      sorted.push(item);\n    }\n  });\n\n  var minData = 0;\n  var maxData = 0;\n  if (sorted.length > 0) {\n    minData = Math.min.apply(this, sorted);\n    maxData = Math.max.apply(this, sorted);\n  }\n  //涓轰簡鍏煎v1.9.0涔嬪墠鐨勯」鐩甛n  if (index > -1) {\n    if (typeof opts.xAxis.data[index].min === 'number') {\n      minData = Math.min(opts.xAxis.data[index].min, minData);\n    }\n    if (typeof opts.xAxis.data[index].max === 'number') {\n      maxData = Math.max(opts.xAxis.data[index].max, maxData);\n    }\n  } else {\n    if (typeof opts.xAxis.min === 'number') {\n      minData = Math.min(opts.xAxis.min, minData);\n    }\n    if (typeof opts.xAxis.max === 'number') {\n      maxData = Math.max(opts.xAxis.max, maxData);\n    }\n  }\n  if (minData === maxData) {\n    var rangeSpan = maxData || 10;\n    maxData += rangeSpan;\n  }\n  //var dataRange = getDataRange(minData, maxData);\n  var minRange = minData;\n  var maxRange = maxData;\n  var range = [];\n  var eachRange = (maxRange - minRange) / opts.xAxis.splitNumber;\n  for (var i = 0; i <= opts.xAxis.splitNumber; i++) {\n    range.push(minRange + eachRange * i);\n  }\n  return range;\n}\n\nfunction calXAxisData(series, opts, config, context) {\n  //鍫嗗彔鍥鹃噸绠梇杞碶n  var columnstyle = assign({}, {\n    type: \"\" },\n  opts.extra.bar);\n  var result = {\n    angle: 0,\n    xAxisHeight: config.xAxisHeight };\n\n  result.ranges = getXAxisTextList(series, opts, config, columnstyle.type);\n  result.rangesFormat = result.ranges.map(function (item) {\n    //item = opts.xAxis.formatter ? opts.xAxis.formatter(item) : util.toFixed(item, 2);\n    item = util.toFixed(item, 2);\n    return item;\n  });\n  var xAxisScaleValues = result.ranges.map(function (item) {\n    // 濡傛灉鍒诲害鍊兼槸娴偣鏁�,鍒欎繚鐣欎袱浣嶅皬鏁癨n    item = util.toFixed(item, 2);\n    // 鑻ユ湁鑷畾涔夋牸寮忓垯璋冪敤鑷畾涔夌殑鏍煎紡鍖栧嚱鏁癨n    //item = opts.xAxis.formatter ? opts.xAxis.formatter(Number(item)) : item;\n    return item;\n  });\n  result = Object.assign(result, getXAxisPoints(xAxisScaleValues, opts, config));\n  // 璁$畻X杞村埢搴︾殑灞炴�ц濡傛瘡涓埢搴︾殑闂撮殧,鍒诲害鐨勮捣濮嬬偣\\缁撴潫鐐逛互鍙婃�婚暱\n  var eachSpacing = result.eachSpacing;\n  var textLength = xAxisScaleValues.map(function (item) {\n    return measureText(item, opts.xAxis.fontSize * opts.pix || config.fontSize, context);\n  });\n  // get max length of categories text\n  var maxTextLength = Math.max.apply(this, textLength);\n  // 濡傛灉鍒诲害鍊兼枃鏈唴瀹硅繃闀�,鍒欏皢鍏堕�嗘椂閽堟棆杞�45掳\n  if (maxTextLength + 2 * config.xAxisTextPadding > eachSpacing) {\n    result.angle = 45 * Math.PI / 180;\n    result.xAxisHeight = 2 * config.xAxisTextPadding + maxTextLength * Math.sin(result.angle);\n  }\n  if (opts.xAxis.disabled === true) {\n    result.xAxisHeight = 0;\n  }\n  return result;\n}\n\nfunction getRadarDataPoints(angleList, center, radius, series, opts) {\n  var process = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 1;\n  var radarOption = opts.extra.radar || {};\n  radarOption.max = radarOption.max || 0;\n  var maxData = Math.max(radarOption.max, Math.max.apply(null, dataCombine(series)));\n  var data = [];var _loop2 = function _loop2(\n  i) {\n    var each = series[i];\n    var listItem = {};\n    listItem.color = each.color;\n    listItem.legendShape = each.legendShape;\n    listItem.pointShape = each.pointShape;\n    listItem.data = [];\n    each.data.forEach(function (item, index) {\n      var tmp = {};\n      tmp.angle = angleList[index];\n      tmp.proportion = item / maxData;\n      tmp.value = item;\n      tmp.position = convertCoordinateOrigin(radius * tmp.proportion * process * Math.cos(tmp.angle), radius * tmp.proportion * process * Math.sin(tmp.angle), center);\n      listItem.data.push(tmp);\n    });\n    data.push(listItem);};for (var i = 0; i < series.length; i++) {_loop2(i);\n  }\n  return data;\n}\n\nfunction getPieDataPoints(series, radius) {\n  var process = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n  var count = 0;\n  var _start_ = 0;\n  for (var i = 0; i < series.length; i++) {\n    var item = series[i];\n    item.data = item.data === null ? 0 : item.data;\n    count += item.data;\n  }\n  for (var _i9 = 0; _i9 < series.length; _i9++) {\n    var _item2 = series[_i9];\n    _item2.data = _item2.data === null ? 0 : _item2.data;\n    if (count === 0) {\n      _item2._proportion_ = 1 / series.length * process;\n    } else {\n      _item2._proportion_ = _item2.data / count * process;\n    }\n    _item2._radius_ = radius;\n  }\n  for (var _i10 = 0; _i10 < series.length; _i10++) {\n    var _item3 = series[_i10];\n    _item3._start_ = _start_;\n    _start_ += 2 * _item3._proportion_ * Math.PI;\n  }\n  return series;\n}\n\nfunction getFunnelDataPoints(series, radius, option, eachSpacing) {\n  var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n  for (var i = 0; i < series.length; i++) {\n    if (option.type == 'funnel') {\n      series[i].radius = series[i].data / series[0].data * radius * process;\n    } else {\n      series[i].radius = eachSpacing * (series.length - i) / (eachSpacing * series.length) * radius * process;\n    }\n    series[i]._proportion_ = series[i].data / series[0].data;\n  }\n  // if(option.type !== 'pyramid'){\n  //   series.reverse();\n  // }\n  return series;\n}\n\nfunction getRoseDataPoints(series, type, minRadius, radius) {\n  var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n  var count = 0;\n  var _start_ = 0;\n  var dataArr = [];\n  for (var i = 0; i < series.length; i++) {\n    var item = series[i];\n    item.data = item.data === null ? 0 : item.data;\n    count += item.data;\n    dataArr.push(item.data);\n  }\n  var minData = Math.min.apply(null, dataArr);\n  var maxData = Math.max.apply(null, dataArr);\n  var radiusLength = radius - minRadius;\n  for (var _i11 = 0; _i11 < series.length; _i11++) {\n    var _item4 = series[_i11];\n    _item4.data = _item4.data === null ? 0 : _item4.data;\n    if (count === 0) {\n      _item4._proportion_ = 1 / series.length * process;\n      _item4._rose_proportion_ = 1 / series.length * process;\n    } else {\n      _item4._proportion_ = _item4.data / count * process;\n      if (type == 'area') {\n        _item4._rose_proportion_ = 1 / series.length * process;\n      } else {\n        _item4._rose_proportion_ = _item4.data / count * process;\n      }\n    }\n    _item4._radius_ = minRadius + radiusLength * ((_item4.data - minData) / (maxData - minData)) || radius;\n  }\n  for (var _i12 = 0; _i12 < series.length; _i12++) {\n    var _item5 = series[_i12];\n    _item5._start_ = _start_;\n    _start_ += 2 * _item5._rose_proportion_ * Math.PI;\n  }\n  return series;\n}\n\nfunction getArcbarDataPoints(series, arcbarOption) {\n  var process = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n  if (process == 1) {\n    process = 0.999999;\n  }\n  for (var i = 0; i < series.length; i++) {\n    var item = series[i];\n    item.data = item.data === null ? 0 : item.data;\n    var totalAngle = void 0;\n    if (arcbarOption.type == 'circle') {\n      totalAngle = 2;\n    } else {\n      if (arcbarOption.direction == 'ccw') {\n        if (arcbarOption.startAngle < arcbarOption.endAngle) {\n          totalAngle = 2 + arcbarOption.startAngle - arcbarOption.endAngle;\n        } else {\n          totalAngle = arcbarOption.startAngle - arcbarOption.endAngle;\n        }\n      } else {\n        if (arcbarOption.endAngle < arcbarOption.startAngle) {\n          totalAngle = 2 + arcbarOption.endAngle - arcbarOption.startAngle;\n        } else {\n          totalAngle = arcbarOption.startAngle - arcbarOption.endAngle;\n        }\n      }\n    }\n    item._proportion_ = totalAngle * item.data * process + arcbarOption.startAngle;\n    if (arcbarOption.direction == 'ccw') {\n      item._proportion_ = arcbarOption.startAngle - totalAngle * item.data * process;\n    }\n    if (item._proportion_ >= 2) {\n      item._proportion_ = item._proportion_ % 2;\n    }\n  }\n  return series;\n}\n\nfunction getGaugeArcbarDataPoints(series, arcbarOption) {\n  var process = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n  if (process == 1) {\n    process = 0.999999;\n  }\n  for (var i = 0; i < series.length; i++) {\n    var item = series[i];\n    item.data = item.data === null ? 0 : item.data;\n    var totalAngle = void 0;\n    if (arcbarOption.type == 'circle') {\n      totalAngle = 2;\n    } else {\n      if (arcbarOption.endAngle < arcbarOption.startAngle) {\n        totalAngle = 2 + arcbarOption.endAngle - arcbarOption.startAngle;\n      } else {\n        totalAngle = arcbarOption.startAngle - arcbarOption.endAngle;\n      }\n    }\n    item._proportion_ = totalAngle * item.data * process + arcbarOption.startAngle;\n    if (item._proportion_ >= 2) {\n      item._proportion_ = item._proportion_ % 2;\n    }\n  }\n  return series;\n}\n\nfunction getGaugeAxisPoints(categories, startAngle, endAngle) {\n  var totalAngle = startAngle - endAngle + 1;\n  var tempStartAngle = startAngle;\n  for (var i = 0; i < categories.length; i++) {\n    categories[i].value = categories[i].value === null ? 0 : categories[i].value;\n    categories[i]._startAngle_ = tempStartAngle;\n    categories[i]._endAngle_ = totalAngle * categories[i].value + startAngle;\n    if (categories[i]._endAngle_ >= 2) {\n      categories[i]._endAngle_ = categories[i]._endAngle_ % 2;\n    }\n    tempStartAngle = categories[i]._endAngle_;\n  }\n  return categories;\n}\n\nfunction getGaugeDataPoints(series, categories, gaugeOption) {\n  var process = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;\n  for (var i = 0; i < series.length; i++) {\n    var item = series[i];\n    item.data = item.data === null ? 0 : item.data;\n    if (gaugeOption.pointer.color == 'auto') {\n      for (var _i13 = 0; _i13 < categories.length; _i13++) {\n        if (item.data <= categories[_i13].value) {\n          item.color = categories[_i13].color;\n          break;\n        }\n      }\n    } else {\n      item.color = gaugeOption.pointer.color;\n    }\n    var totalAngle = gaugeOption.startAngle - gaugeOption.endAngle + 1;\n    item._endAngle_ = totalAngle * item.data + gaugeOption.startAngle;\n    item._oldAngle_ = gaugeOption.oldAngle;\n    if (gaugeOption.oldAngle < gaugeOption.endAngle) {\n      item._oldAngle_ += 2;\n    }\n    if (item.data >= gaugeOption.oldData) {\n      item._proportion_ = (item._endAngle_ - item._oldAngle_) * process + gaugeOption.oldAngle;\n    } else {\n      item._proportion_ = item._oldAngle_ - (item._oldAngle_ - item._endAngle_) * process;\n    }\n    if (item._proportion_ >= 2) {\n      item._proportion_ = item._proportion_ % 2;\n    }\n  }\n  return series;\n}\n\nfunction getPieTextMaxLength(series, config, context, opts) {\n  series = getPieDataPoints(series);\n  var maxLength = 0;\n  for (var i = 0; i < series.length; i++) {\n    var item = series[i];\n    var text = item.formatter ? item.formatter(+item._proportion_.toFixed(2)) : util.toFixed(item._proportion_ * 100) + '%';\n    maxLength = Math.max(maxLength, measureText(text, item.textSize * opts.pix || config.fontSize, context));\n  }\n  return maxLength;\n}\n\nfunction fixColumeData(points, eachSpacing, columnLen, index, config, opts) {\n  return points.map(function (item) {\n    if (item === null) {\n      return null;\n    }\n    var seriesGap = 0;\n    var categoryGap = 0;\n    if (opts.type == 'mix') {\n      seriesGap = opts.extra.mix.column.seriesGap * opts.pix || 0;\n      categoryGap = opts.extra.mix.column.categoryGap * opts.pix || 0;\n    } else {\n      seriesGap = opts.extra.column.seriesGap * opts.pix || 0;\n      categoryGap = opts.extra.column.categoryGap * opts.pix || 0;\n    }\n    seriesGap = Math.min(seriesGap, eachSpacing / columnLen);\n    categoryGap = Math.min(categoryGap, eachSpacing / columnLen);\n    item.width = Math.ceil((eachSpacing - 2 * categoryGap - seriesGap * (columnLen - 1)) / columnLen);\n    if (opts.extra.mix && opts.extra.mix.column.width && +opts.extra.mix.column.width > 0) {\n      item.width = Math.min(item.width, +opts.extra.mix.column.width * opts.pix);\n    }\n    if (opts.extra.column && opts.extra.column.width && +opts.extra.column.width > 0) {\n      item.width = Math.min(item.width, +opts.extra.column.width * opts.pix);\n    }\n    if (item.width <= 0) {\n      item.width = 1;\n    }\n    item.x += (index + 0.5 - columnLen / 2) * (item.width + seriesGap);\n    return item;\n  });\n}\n\nfunction fixBarData(points, eachSpacing, columnLen, index, config, opts) {\n  return points.map(function (item) {\n    if (item === null) {\n      return null;\n    }\n    var seriesGap = 0;\n    var categoryGap = 0;\n    seriesGap = opts.extra.bar.seriesGap * opts.pix || 0;\n    categoryGap = opts.extra.bar.categoryGap * opts.pix || 0;\n    seriesGap = Math.min(seriesGap, eachSpacing / columnLen);\n    categoryGap = Math.min(categoryGap, eachSpacing / columnLen);\n    item.width = Math.ceil((eachSpacing - 2 * categoryGap - seriesGap * (columnLen - 1)) / columnLen);\n    if (opts.extra.bar && opts.extra.bar.width && +opts.extra.bar.width > 0) {\n      item.width = Math.min(item.width, +opts.extra.bar.width * opts.pix);\n    }\n    if (item.width <= 0) {\n      item.width = 1;\n    }\n    item.y += (index + 0.5 - columnLen / 2) * (item.width + seriesGap);\n    return item;\n  });\n}\n\nfunction fixColumeMeterData(points, eachSpacing, columnLen, index, config, opts, border) {\n  var categoryGap = opts.extra.column.categoryGap * opts.pix || 0;\n  return points.map(function (item) {\n    if (item === null) {\n      return null;\n    }\n    item.width = eachSpacing - 2 * categoryGap;\n    if (opts.extra.column && opts.extra.column.width && +opts.extra.column.width > 0) {\n      item.width = Math.min(item.width, +opts.extra.column.width * opts.pix);\n    }\n    if (index > 0) {\n      item.width -= border;\n    }\n    return item;\n  });\n}\n\nfunction fixColumeStackData(points, eachSpacing, columnLen, index, config, opts, series) {\n  var categoryGap = opts.extra.column.categoryGap * opts.pix || 0;\n  return points.map(function (item, indexn) {\n    if (item === null) {\n      return null;\n    }\n    item.width = Math.ceil(eachSpacing - 2 * categoryGap);\n    if (opts.extra.column && opts.extra.column.width && +opts.extra.column.width > 0) {\n      item.width = Math.min(item.width, +opts.extra.column.width * opts.pix);\n    }\n    if (item.width <= 0) {\n      item.width = 1;\n    }\n    return item;\n  });\n}\n\nfunction fixBarStackData(points, eachSpacing, columnLen, index, config, opts, series) {\n  var categoryGap = opts.extra.bar.categoryGap * opts.pix || 0;\n  return points.map(function (item, indexn) {\n    if (item === null) {\n      return null;\n    }\n    item.width = Math.ceil(eachSpacing - 2 * categoryGap);\n    if (opts.extra.bar && opts.extra.bar.width && +opts.extra.bar.width > 0) {\n      item.width = Math.min(item.width, +opts.extra.bar.width * opts.pix);\n    }\n    if (item.width <= 0) {\n      item.width = 1;\n    }\n    return item;\n  });\n}\n\nfunction getXAxisPoints(categories, opts, config) {\n  var spacingValid = opts.width - opts.area[1] - opts.area[3];\n  var dataCount = opts.enableScroll ? Math.min(opts.xAxis.itemCount, categories.length) : categories.length;\n  if ((opts.type == 'line' || opts.type == 'area' || opts.type == 'scatter' || opts.type == 'bubble' || opts.type == 'bar') && dataCount > 1 && opts.xAxis.boundaryGap == 'justify') {\n    dataCount -= 1;\n  }\n  var widthRatio = 0;\n  if (opts.type == 'mount' && opts.extra && opts.extra.mount && opts.extra.mount.widthRatio && opts.extra.mount.widthRatio > 1) {\n    if (opts.extra.mount.widthRatio > 2) opts.extra.mount.widthRatio = 2;\n    widthRatio = opts.extra.mount.widthRatio - 1;\n    dataCount += widthRatio;\n  }\n  var eachSpacing = spacingValid / dataCount;\n  var xAxisPoints = [];\n  var startX = opts.area[3];\n  var endX = opts.width - opts.area[1];\n  categories.forEach(function (item, index) {\n    xAxisPoints.push(startX + widthRatio / 2 * eachSpacing + index * eachSpacing);\n  });\n  if (opts.xAxis.boundaryGap !== 'justify') {\n    if (opts.enableScroll === true) {\n      xAxisPoints.push(startX + widthRatio * eachSpacing + categories.length * eachSpacing);\n    } else {\n      xAxisPoints.push(endX);\n    }\n  }\n  return {\n    xAxisPoints: xAxisPoints,\n    startX: startX,\n    endX: endX,\n    eachSpacing: eachSpacing };\n\n}\n\nfunction getCandleDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config) {\n  var process = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : 1;\n  var points = [];\n  var validHeight = opts.height - opts.area[0] - opts.area[2];\n  data.forEach(function (item, index) {\n    if (item === null) {\n      points.push(null);\n    } else {\n      var cPoints = [];\n      item.forEach(function (items, indexs) {\n        var point = {};\n        point.x = xAxisPoints[index] + Math.round(eachSpacing / 2);\n        var value = items.value || items;\n        var height = validHeight * (value - minRange) / (maxRange - minRange);\n        height *= process;\n        point.y = opts.height - Math.round(height) - opts.area[2];\n        cPoints.push(point);\n      });\n      points.push(cPoints);\n    }\n  });\n  return points;\n}\n\nfunction getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config) {\n  var process = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : 1;\n  var boundaryGap = 'center';\n  if (opts.type == 'line' || opts.type == 'area' || opts.type == 'scatter' || opts.type == 'bubble') {\n    boundaryGap = opts.xAxis.boundaryGap;\n  }\n  var points = [];\n  var validHeight = opts.height - opts.area[0] - opts.area[2];\n  var validWidth = opts.width - opts.area[1] - opts.area[3];\n  data.forEach(function (item, index) {\n    if (item === null) {\n      points.push(null);\n    } else {\n      var point = {};\n      point.color = item.color;\n      point.x = xAxisPoints[index];\n      var value = item;\n      if (typeof item === 'object' && item !== null) {\n        if (item.constructor.toString().indexOf('Array') > -1) {\n          var xranges, xminRange, xmaxRange;\n          xranges = [].concat(opts.chartData.xAxisData.ranges);\n          xminRange = xranges.shift();\n          xmaxRange = xranges.pop();\n          value = item[1];\n          point.x = opts.area[3] + validWidth * (item[0] - xminRange) / (xmaxRange - xminRange);\n          if (opts.type == 'bubble') {\n            point.r = item[2];\n            point.t = item[3];\n          }\n        } else {\n          value = item.value;\n        }\n      }\n      if (boundaryGap == 'center') {\n        point.x += eachSpacing / 2;\n      }\n      var height = validHeight * (value - minRange) / (maxRange - minRange);\n      height *= process;\n      point.y = opts.height - height - opts.area[2];\n      points.push(point);\n    }\n  });\n  return points;\n}\n\nfunction getMountDataPoints(series, minRange, maxRange, xAxisPoints, eachSpacing, opts, mountOption) {\n  var process = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : 1;\n  var points = [];\n  var validHeight = opts.height - opts.area[0] - opts.area[2];\n  var validWidth = opts.width - opts.area[1] - opts.area[3];\n  var mountWidth = eachSpacing * mountOption.widthRatio;\n  series.forEach(function (item, index) {\n    if (item === null) {\n      points.push(null);\n    } else {\n      var point = {};\n      point.color = item.color;\n      point.x = xAxisPoints[index];\n      point.x += eachSpacing / 2;\n      var value = item.data;\n      var height = validHeight * (value - minRange) / (maxRange - minRange);\n      height *= process;\n      point.y = opts.height - height - opts.area[2];\n      point.value = value;\n      point.width = mountWidth;\n      points.push(point);\n    }\n  });\n  return points;\n}\n\nfunction getBarDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config) {\n  var process = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : 1;\n  var points = [];\n  var validHeight = opts.height - opts.area[0] - opts.area[2];\n  var validWidth = opts.width - opts.area[1] - opts.area[3];\n  data.forEach(function (item, index) {\n    if (item === null) {\n      points.push(null);\n    } else {\n      var point = {};\n      point.color = item.color;\n      point.y = yAxisPoints[index];\n      var value = item;\n      if (typeof item === 'object' && item !== null) {\n        value = item.value;\n      }\n      var height = validWidth * (value - minRange) / (maxRange - minRange);\n      height *= process;\n      point.height = height;\n      point.value = value;\n      point.x = height + opts.area[3];\n      points.push(point);\n    }\n  });\n  return points;\n}\n\nfunction getStackDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, seriesIndex, stackSeries) {\n  var process = arguments.length > 9 && arguments[9] !== undefined ? arguments[9] : 1;\n  var points = [];\n  var validHeight = opts.height - opts.area[0] - opts.area[2];\n  data.forEach(function (item, index) {\n    if (item === null) {\n      points.push(null);\n    } else {\n      var point = {};\n      point.color = item.color;\n      point.x = xAxisPoints[index] + Math.round(eachSpacing / 2);\n\n      if (seriesIndex > 0) {\n        var value = 0;\n        for (var i = 0; i <= seriesIndex; i++) {\n          value += stackSeries[i].data[index];\n        }\n        var value0 = value - item;\n        var height = validHeight * (value - minRange) / (maxRange - minRange);\n        var height0 = validHeight * (value0 - minRange) / (maxRange - minRange);\n      } else {\n        var value = item;\n        if (typeof item === 'object' && item !== null) {\n          value = item.value;\n        }\n        var height = validHeight * (value - minRange) / (maxRange - minRange);\n        var height0 = 0;\n      }\n      var heightc = height0;\n      height *= process;\n      heightc *= process;\n      point.y = opts.height - Math.round(height) - opts.area[2];\n      point.y0 = opts.height - Math.round(heightc) - opts.area[2];\n      points.push(point);\n    }\n  });\n  return points;\n}\n\nfunction getBarStackDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config, seriesIndex, stackSeries) {\n  var process = arguments.length > 9 && arguments[9] !== undefined ? arguments[9] : 1;\n  var points = [];\n  var validHeight = opts.width - opts.area[1] - opts.area[3];\n  data.forEach(function (item, index) {\n    if (item === null) {\n      points.push(null);\n    } else {\n      var point = {};\n      point.color = item.color;\n      point.y = yAxisPoints[index];\n      if (seriesIndex > 0) {\n        var value = 0;\n        for (var i = 0; i <= seriesIndex; i++) {\n          value += stackSeries[i].data[index];\n        }\n        var value0 = value - item;\n        var height = validHeight * (value - minRange) / (maxRange - minRange);\n        var height0 = validHeight * (value0 - minRange) / (maxRange - minRange);\n      } else {\n        var value = item;\n        if (typeof item === 'object' && item !== null) {\n          value = item.value;\n        }\n        var height = validHeight * (value - minRange) / (maxRange - minRange);\n        var height0 = 0;\n      }\n      var heightc = height0;\n      height *= process;\n      heightc *= process;\n      point.height = height - heightc;\n      point.x = opts.area[3] + height;\n      point.x0 = opts.area[3] + heightc;\n      points.push(point);\n    }\n  });\n  return points;\n}\n\nfunction getYAxisTextList(series, opts, config, stack, yData) {\n  var index = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : -1;\n  var data;\n  if (stack == 'stack') {\n    data = dataCombineStack(series, opts.categories.length);\n  } else {\n    data = dataCombine(series);\n  }\n  var sorted = [];\n  // remove null from data\n  data = data.filter(function (item) {\n    //return item !== null;\n    if (typeof item === 'object' && item !== null) {\n      if (item.constructor.toString().indexOf('Array') > -1) {\n        return item !== null;\n      } else {\n        return item.value !== null;\n      }\n    } else {\n      return item !== null;\n    }\n  });\n  data.map(function (item) {\n    if (typeof item === 'object') {\n      if (item.constructor.toString().indexOf('Array') > -1) {\n        if (opts.type == 'candle') {\n          item.map(function (subitem) {\n            sorted.push(subitem);\n          });\n        } else {\n          sorted.push(item[1]);\n        }\n      } else {\n        sorted.push(item.value);\n      }\n    } else {\n      sorted.push(item);\n    }\n  });\n  var minData = yData.min || 0;\n  var maxData = yData.max || 0;\n  if (sorted.length > 0) {\n    minData = Math.min.apply(this, sorted);\n    maxData = Math.max.apply(this, sorted);\n  }\n  if (minData === maxData) {\n    if (maxData == 0) {\n      maxData = 10;\n    } else {\n      minData = 0;\n    }\n  }\n  var dataRange = getDataRange(minData, maxData);\n  var minRange = yData.min === undefined || yData.min === null ? dataRange.minRange : yData.min;\n  var maxRange = yData.max === undefined || yData.max === null ? dataRange.maxRange : yData.max;\n  var eachRange = (maxRange - minRange) / opts.yAxis.splitNumber;\n  var range = [];\n  for (var i = 0; i <= opts.yAxis.splitNumber; i++) {\n    range.push(minRange + eachRange * i);\n  }\n  return range.reverse();\n}\n\nfunction calYAxisData(series, opts, config, context) {\n  //鍫嗗彔鍥鹃噸绠梇杞碶n  var columnstyle = assign({}, {\n    type: \"\" },\n  opts.extra.column);\n  //濡傛灉鏄Y杞达紝閲嶆柊璁$畻\n  var YLength = opts.yAxis.data.length;\n  var newSeries = new Array(YLength);\n  if (YLength > 0) {\n    for (var i = 0; i < YLength; i++) {\n      newSeries[i] = [];\n      for (var j = 0; j < series.length; j++) {\n        if (series[j].index == i) {\n          newSeries[i].push(series[j]);\n        }\n      }\n    }\n    var rangesArr = new Array(YLength);\n    var rangesFormatArr = new Array(YLength);\n    var yAxisWidthArr = new Array(YLength);var _loop3 = function _loop3(\n\n    _i14) {\n      var yData = opts.yAxis.data[_i14];\n      //濡傛灉鎬诲紑鍏充笉鏄剧ず锛屽己鍒舵瘡涓猋杞翠负涓嶆樉绀篭n      if (opts.yAxis.disabled == true) {\n        yData.disabled = true;\n      }\n      if (yData.type === 'categories') {\n        if (!yData.formatter) {\n          yData.formatter = function (val, index, opts) {return val + (yData.unit || '');};\n        }\n        yData.categories = yData.categories || opts.categories;\n        rangesArr[_i14] = yData.categories;\n      } else {\n        if (!yData.formatter) {\n          yData.formatter = function (val, index, opts) {return util.toFixed(val, yData.tofix || 0) + (yData.unit || '');};\n        }\n        rangesArr[_i14] = getYAxisTextList(newSeries[_i14], opts, config, columnstyle.type, yData, _i14);\n      }\n      var yAxisFontSizes = yData.fontSize * opts.pix || config.fontSize;\n      yAxisWidthArr[_i14] = {\n        position: yData.position ? yData.position : 'left',\n        width: 0 };\n\n      rangesFormatArr[_i14] = rangesArr[_i14].map(function (items, index) {\n        items = yData.formatter(items, index, opts);\n        yAxisWidthArr[_i14].width = Math.max(yAxisWidthArr[_i14].width, measureText(items, yAxisFontSizes, context) + 5);\n        return items;\n      });\n      var calibration = yData.calibration ? 4 * opts.pix : 0;\n      yAxisWidthArr[_i14].width += calibration + 3 * opts.pix;\n      if (yData.disabled === true) {\n        yAxisWidthArr[_i14].width = 0;\n      }};for (var _i14 = 0; _i14 < YLength; _i14++) {_loop3(_i14);\n    }\n  } else {\n    var rangesArr = new Array(1);\n    var rangesFormatArr = new Array(1);\n    var yAxisWidthArr = new Array(1);\n    if (opts.type === 'bar') {\n      rangesArr[0] = opts.categories;\n    } else {\n      rangesArr[0] = getYAxisTextList(series, opts, config, columnstyle.type, {});\n    }\n    yAxisWidthArr[0] = {\n      position: 'left',\n      width: 0 };\n\n\n    if (opts.yAxis.disabled === true) {\n      yAxisWidthArr[0] = {\n        position: 'left',\n        width: 0 };\n\n      opts.yAxis.data[0] = {\n        disabled: true };\n\n    } else {\n      opts.yAxis.data[0] = {\n        disabled: false,\n        position: 'left',\n        max: opts.yAxis.max,\n        min: opts.yAxis.min,\n        formatter: function formatter(val, index, opts) {return val;} };\n\n      if (opts.type === 'bar') {\n        opts.yAxis.data[0].categories = opts.categories;\n        opts.yAxis.data[0].type = 'categories';\n      }\n    }\n    var yAxisFontSize = opts.yAxis.fontSize * opts.pix || config.fontSize;\n    rangesFormatArr[0] = rangesArr[0].map(function (item, index) {\n      item = opts.yAxis.data[0].formatter(item, index, opts);\n      yAxisWidthArr[0].width = Math.max(yAxisWidthArr[0].width, measureText(item, yAxisFontSize, context) + 5);\n      return item;\n    });\n    yAxisWidthArr[0].width += 3 * opts.pix;\n  }\n  return {\n    rangesFormat: rangesFormatArr,\n    ranges: rangesArr,\n    yAxisWidth: yAxisWidthArr };\n\n}\n\nfunction calTooltipYAxisData(point, series, opts, config, eachSpacing) {\n  var ranges = [].concat(opts.chartData.yAxisData.ranges);\n  var spacingValid = opts.height - opts.area[0] - opts.area[2];\n  var minAxis = opts.area[0];\n  var items = [];\n  for (var i = 0; i < ranges.length; i++) {\n    var maxVal = Math.max.apply(this, ranges[i]);\n    var minVal = Math.min.apply(this, ranges[i]);\n    var item = maxVal - (maxVal - minVal) * (point - minAxis) / spacingValid;\n    item = opts.yAxis.data && opts.yAxis.data[i].formatter ? opts.yAxis.data[i].formatter(item, i, opts) : item.toFixed(0);\n    items.push(String(item));\n  }\n  return items;\n}\n\nfunction calMarkLineData(points, opts) {\n  var minRange, maxRange;\n  var spacingValid = opts.height - opts.area[0] - opts.area[2];\n  for (var i = 0; i < points.length; i++) {\n    points[i].yAxisIndex = points[i].yAxisIndex ? points[i].yAxisIndex : 0;\n    var range = [].concat(opts.chartData.yAxisData.ranges[points[i].yAxisIndex]);\n    minRange = range.pop();\n    maxRange = range.shift();\n    var height = spacingValid * (points[i].value - minRange) / (maxRange - minRange);\n    points[i].y = opts.height - Math.round(height) - opts.area[2];\n  }\n  return points;\n}\n\nfunction contextRotate(context, opts) {\n  if (opts.rotateLock !== true) {\n    context.translate(opts.height, 0);\n    context.rotate(90 * Math.PI / 180);\n  } else if (opts._rotate_ !== true) {\n    context.translate(opts.height, 0);\n    context.rotate(90 * Math.PI / 180);\n    opts._rotate_ = true;\n  }\n}\n\nfunction drawPointShape(points, color, shape, context, opts) {\n  context.beginPath();\n  if (opts.dataPointShapeType == 'hollow') {\n    context.setStrokeStyle(color);\n    context.setFillStyle(opts.background);\n    context.setLineWidth(2 * opts.pix);\n  } else {\n    context.setStrokeStyle(\"#ffffff\");\n    context.setFillStyle(color);\n    context.setLineWidth(1 * opts.pix);\n  }\n  if (shape === 'diamond') {\n    points.forEach(function (item, index) {\n      if (item !== null) {\n        context.moveTo(item.x, item.y - 4.5);\n        context.lineTo(item.x - 4.5, item.y);\n        context.lineTo(item.x, item.y + 4.5);\n        context.lineTo(item.x + 4.5, item.y);\n        context.lineTo(item.x, item.y - 4.5);\n      }\n    });\n  } else if (shape === 'circle') {\n    points.forEach(function (item, index) {\n      if (item !== null) {\n        context.moveTo(item.x + 2.5 * opts.pix, item.y);\n        context.arc(item.x, item.y, 3 * opts.pix, 0, 2 * Math.PI, false);\n      }\n    });\n  } else if (shape === 'square') {\n    points.forEach(function (item, index) {\n      if (item !== null) {\n        context.moveTo(item.x - 3.5, item.y - 3.5);\n        context.rect(item.x - 3.5, item.y - 3.5, 7, 7);\n      }\n    });\n  } else if (shape === 'triangle') {\n    points.forEach(function (item, index) {\n      if (item !== null) {\n        context.moveTo(item.x, item.y - 4.5);\n        context.lineTo(item.x - 4.5, item.y + 4.5);\n        context.lineTo(item.x + 4.5, item.y + 4.5);\n        context.lineTo(item.x, item.y - 4.5);\n      }\n    });\n  } else if (shape === 'none') {\n    return;\n  }\n  context.closePath();\n  context.fill();\n  context.stroke();\n}\n\nfunction drawRingTitle(opts, config, context, center) {\n  var titlefontSize = opts.title.fontSize || config.titleFontSize;\n  var subtitlefontSize = opts.subtitle.fontSize || config.subtitleFontSize;\n  var title = opts.title.name || '';\n  var subtitle = opts.subtitle.name || '';\n  var titleFontColor = opts.title.color || opts.fontColor;\n  var subtitleFontColor = opts.subtitle.color || opts.fontColor;\n  var titleHeight = title ? titlefontSize : 0;\n  var subtitleHeight = subtitle ? subtitlefontSize : 0;\n  var margin = 5;\n  if (subtitle) {\n    var textWidth = measureText(subtitle, subtitlefontSize * opts.pix, context);\n    var startX = center.x - textWidth / 2 + (opts.subtitle.offsetX || 0) * opts.pix;\n    var startY = center.y + subtitlefontSize * opts.pix / 2 + (opts.subtitle.offsetY || 0) * opts.pix;\n    if (title) {\n      startY += (titleHeight * opts.pix + margin) / 2;\n    }\n    context.beginPath();\n    context.setFontSize(subtitlefontSize * opts.pix);\n    context.setFillStyle(subtitleFontColor);\n    context.fillText(subtitle, startX, startY);\n    context.closePath();\n    context.stroke();\n  }\n  if (title) {\n    var _textWidth = measureText(title, titlefontSize * opts.pix, context);\n    var _startX = center.x - _textWidth / 2 + (opts.title.offsetX || 0);\n    var _startY = center.y + titlefontSize * opts.pix / 2 + (opts.title.offsetY || 0) * opts.pix;\n    if (subtitle) {\n      _startY -= (subtitleHeight * opts.pix + margin) / 2;\n    }\n    context.beginPath();\n    context.setFontSize(titlefontSize * opts.pix);\n    context.setFillStyle(titleFontColor);\n    context.fillText(title, _startX, _startY);\n    context.closePath();\n    context.stroke();\n  }\n}\n\nfunction drawPointText(points, series, config, context, opts) {\n  // 缁樺埗鏁版嵁鏂囨\n  var data = series.data;\n  var textOffset = series.textOffset ? series.textOffset : 0;\n  points.forEach(function (item, index) {\n    if (item !== null) {\n      context.beginPath();\n      var fontSize = series.textSize ? series.textSize * opts.pix : config.fontSize;\n      context.setFontSize(fontSize);\n      context.setFillStyle(series.textColor || opts.fontColor);\n      var value = data[index];\n      if (typeof data[index] === 'object' && data[index] !== null) {\n        if (data[index].constructor.toString().indexOf('Array') > -1) {\n          value = data[index][1];\n        } else {\n          value = data[index].value;\n        }\n      }\n      var formatVal = series.formatter ? series.formatter(value, index, series, opts) : value;\n      context.setTextAlign('center');\n      context.fillText(String(formatVal), item.x, item.y - 4 + textOffset * opts.pix);\n      context.closePath();\n      context.stroke();\n      context.setTextAlign('left');\n    }\n  });\n}\n\nfunction drawMountPointText(points, series, config, context, opts) {\n  // 缁樺埗鏁版嵁鏂囨\n  var data = series.data;\n  var textOffset = series.textOffset ? series.textOffset : 0;\n  points.forEach(function (item, index) {\n    if (item !== null) {\n      context.beginPath();\n      var fontSize = series[index].textSize ? series[index].textSize * opts.pix : config.fontSize;\n      context.setFontSize(fontSize);\n      context.setFillStyle(series[index].textColor || opts.fontColor);\n      var value = item.value;\n      var formatVal = series[index].formatter ? series[index].formatter(value, index, series, opts) : value;\n      context.setTextAlign('center');\n      context.fillText(String(formatVal), item.x, item.y - 4 + textOffset * opts.pix);\n      context.closePath();\n      context.stroke();\n      context.setTextAlign('left');\n    }\n  });\n}\n\nfunction drawBarPointText(points, series, config, context, opts) {\n  // 缁樺埗鏁版嵁鏂囨\n  var data = series.data;\n  var textOffset = series.textOffset ? series.textOffset : 0;\n  points.forEach(function (item, index) {\n    if (item !== null) {\n      context.beginPath();\n      var fontSize = series.textSize ? series.textSize * opts.pix : config.fontSize;\n      context.setFontSize(fontSize);\n      context.setFillStyle(series.textColor || opts.fontColor);\n      var value = data[index];\n      if (typeof data[index] === 'object' && data[index] !== null) {\n        value = data[index].value;\n      }\n      var formatVal = series.formatter ? series.formatter(value, index, series, opts) : value;\n      context.setTextAlign('left');\n      context.fillText(String(formatVal), item.x + 4 * opts.pix, item.y + fontSize / 2 - 3);\n      context.closePath();\n      context.stroke();\n    }\n  });\n}\n\nfunction drawGaugeLabel(gaugeOption, radius, centerPosition, opts, config, context) {\n  radius -= gaugeOption.width / 2 + gaugeOption.labelOffset * opts.pix;\n  radius = radius < 10 ? 10 : radius;\n  var totalAngle = gaugeOption.startAngle - gaugeOption.endAngle + 1;\n  var splitAngle = totalAngle / gaugeOption.splitLine.splitNumber;\n  var totalNumber = gaugeOption.endNumber - gaugeOption.startNumber;\n  var splitNumber = totalNumber / gaugeOption.splitLine.splitNumber;\n  var nowAngle = gaugeOption.startAngle;\n  var nowNumber = gaugeOption.startNumber;\n  for (var i = 0; i < gaugeOption.splitLine.splitNumber + 1; i++) {\n    var pos = {\n      x: radius * Math.cos(nowAngle * Math.PI),\n      y: radius * Math.sin(nowAngle * Math.PI) };\n\n    var labelText = gaugeOption.formatter ? gaugeOption.formatter(nowNumber, i, opts) : nowNumber;\n    pos.x += centerPosition.x - measureText(labelText, config.fontSize, context) / 2;\n    pos.y += centerPosition.y;\n    var startX = pos.x;\n    var startY = pos.y;\n    context.beginPath();\n    context.setFontSize(config.fontSize);\n    context.setFillStyle(gaugeOption.labelColor || opts.fontColor);\n    context.fillText(labelText, startX, startY + config.fontSize / 2);\n    context.closePath();\n    context.stroke();\n    nowAngle += splitAngle;\n    if (nowAngle >= 2) {\n      nowAngle = nowAngle % 2;\n    }\n    nowNumber += splitNumber;\n  }\n}\n\nfunction drawRadarLabel(angleList, radius, centerPosition, opts, config, context) {\n  var radarOption = opts.extra.radar || {};\n  angleList.forEach(function (angle, index) {\n    if (radarOption.labelPointShow === true && opts.categories[index] !== '') {\n      var posPoint = {\n        x: radius * Math.cos(angle),\n        y: radius * Math.sin(angle) };\n\n      var posPointAxis = convertCoordinateOrigin(posPoint.x, posPoint.y, centerPosition);\n      context.setFillStyle(radarOption.labelPointColor);\n      context.beginPath();\n      context.arc(posPointAxis.x, posPointAxis.y, radarOption.labelPointRadius * opts.pix, 0, 2 * Math.PI, false);\n      context.closePath();\n      context.fill();\n    }\n    var pos = {\n      x: (radius + config.radarLabelTextMargin * opts.pix) * Math.cos(angle),\n      y: (radius + config.radarLabelTextMargin * opts.pix) * Math.sin(angle) };\n\n    var posRelativeCanvas = convertCoordinateOrigin(pos.x, pos.y, centerPosition);\n    var startX = posRelativeCanvas.x;\n    var startY = posRelativeCanvas.y;\n    if (util.approximatelyEqual(pos.x, 0)) {\n      startX -= measureText(opts.categories[index] || '', config.fontSize, context) / 2;\n    } else if (pos.x < 0) {\n      startX -= measureText(opts.categories[index] || '', config.fontSize, context);\n    }\n    context.beginPath();\n    context.setFontSize(config.fontSize);\n    context.setFillStyle(radarOption.labelColor || opts.fontColor);\n    context.fillText(opts.categories[index] || '', startX, startY + config.fontSize / 2);\n    context.closePath();\n    context.stroke();\n  });\n\n}\n\nfunction drawPieText(series, opts, config, context, radius, center) {\n  var lineRadius = config.pieChartLinePadding;\n  var textObjectCollection = [];\n  var lastTextObject = null;\n  var seriesConvert = series.map(function (item, index) {\n    var text = item.formatter ? item.formatter(item, index, series, opts) : util.toFixed(item._proportion_.toFixed(4) * 100) + '%';\n    text = item.labelText ? item.labelText : text;\n    var arc = 2 * Math.PI - (item._start_ + 2 * Math.PI * item._proportion_ / 2);\n    if (item._rose_proportion_) {\n      arc = 2 * Math.PI - (item._start_ + 2 * Math.PI * item._rose_proportion_ / 2);\n    }\n    var color = item.color;\n    var radius = item._radius_;\n    return {\n      arc: arc,\n      text: text,\n      color: color,\n      radius: radius,\n      textColor: item.textColor,\n      textSize: item.textSize,\n      labelShow: item.labelShow };\n\n  });\n  for (var i = 0; i < seriesConvert.length; i++) {\n    var item = seriesConvert[i];\n    // line end\n    var orginX1 = Math.cos(item.arc) * (item.radius + lineRadius);\n    var orginY1 = Math.sin(item.arc) * (item.radius + lineRadius);\n    // line start\n    var orginX2 = Math.cos(item.arc) * item.radius;\n    var orginY2 = Math.sin(item.arc) * item.radius;\n    // text start\n    var orginX3 = orginX1 >= 0 ? orginX1 + config.pieChartTextPadding : orginX1 - config.pieChartTextPadding;\n    var orginY3 = orginY1;\n    var textWidth = measureText(item.text, item.textSize * opts.pix || config.fontSize, context);\n    var startY = orginY3;\n    if (lastTextObject && util.isSameXCoordinateArea(lastTextObject.start, {\n      x: orginX3 }))\n    {\n      if (orginX3 > 0) {\n        startY = Math.min(orginY3, lastTextObject.start.y);\n      } else if (orginX1 < 0) {\n        startY = Math.max(orginY3, lastTextObject.start.y);\n      } else {\n        if (orginY3 > 0) {\n          startY = Math.max(orginY3, lastTextObject.start.y);\n        } else {\n          startY = Math.min(orginY3, lastTextObject.start.y);\n        }\n      }\n    }\n    if (orginX3 < 0) {\n      orginX3 -= textWidth;\n    }\n    var textObject = {\n      lineStart: {\n        x: orginX2,\n        y: orginY2 },\n\n      lineEnd: {\n        x: orginX1,\n        y: orginY1 },\n\n      start: {\n        x: orginX3,\n        y: startY },\n\n      width: textWidth,\n      height: config.fontSize,\n      text: item.text,\n      color: item.color,\n      textColor: item.textColor,\n      textSize: item.textSize };\n\n    lastTextObject = avoidCollision(textObject, lastTextObject);\n    textObjectCollection.push(lastTextObject);\n  }\n  for (var _i15 = 0; _i15 < textObjectCollection.length; _i15++) {\n    if (seriesConvert[_i15].labelShow === false) {\n      continue;\n    }\n    var _item6 = textObjectCollection[_i15];\n    var lineStartPoistion = convertCoordinateOrigin(_item6.lineStart.x, _item6.lineStart.y, center);\n    var lineEndPoistion = convertCoordinateOrigin(_item6.lineEnd.x, _item6.lineEnd.y, center);\n    var textPosition = convertCoordinateOrigin(_item6.start.x, _item6.start.y, center);\n    context.setLineWidth(1 * opts.pix);\n    context.setFontSize(_item6.textSize * opts.pix || config.fontSize);\n    context.beginPath();\n    context.setStrokeStyle(_item6.color);\n    context.setFillStyle(_item6.color);\n    context.moveTo(lineStartPoistion.x, lineStartPoistion.y);\n    var curveStartX = _item6.start.x < 0 ? textPosition.x + _item6.width : textPosition.x;\n    var textStartX = _item6.start.x < 0 ? textPosition.x - 5 : textPosition.x + 5;\n    context.quadraticCurveTo(lineEndPoistion.x, lineEndPoistion.y, curveStartX, textPosition.y);\n    context.moveTo(lineStartPoistion.x, lineStartPoistion.y);\n    context.stroke();\n    context.closePath();\n    context.beginPath();\n    context.moveTo(textPosition.x + _item6.width, textPosition.y);\n    context.arc(curveStartX, textPosition.y, 2 * opts.pix, 0, 2 * Math.PI);\n    context.closePath();\n    context.fill();\n    context.beginPath();\n    context.setFontSize(_item6.textSize * opts.pix || config.fontSize);\n    context.setFillStyle(_item6.textColor || opts.fontColor);\n    context.fillText(_item6.text, textStartX, textPosition.y + 3);\n    context.closePath();\n    context.stroke();\n    context.closePath();\n  }\n}\n\nfunction drawToolTipSplitLine(offsetX, opts, config, context) {\n  var toolTipOption = opts.extra.tooltip || {};\n  toolTipOption.gridType = toolTipOption.gridType == undefined ? 'solid' : toolTipOption.gridType;\n  toolTipOption.dashLength = toolTipOption.dashLength == undefined ? 4 : toolTipOption.dashLength;\n  var startY = opts.area[0];\n  var endY = opts.height - opts.area[2];\n  if (toolTipOption.gridType == 'dash') {\n    context.setLineDash([toolTipOption.dashLength, toolTipOption.dashLength]);\n  }\n  context.setStrokeStyle(toolTipOption.gridColor || '#cccccc');\n  context.setLineWidth(1 * opts.pix);\n  context.beginPath();\n  context.moveTo(offsetX, startY);\n  context.lineTo(offsetX, endY);\n  context.stroke();\n  context.setLineDash([]);\n  if (toolTipOption.xAxisLabel) {\n    var labelText = opts.categories[opts.tooltip.index];\n    context.setFontSize(config.fontSize);\n    var textWidth = measureText(labelText, config.fontSize, context);\n    var textX = offsetX - 0.5 * textWidth;\n    var textY = endY + 2 * opts.pix;\n    context.beginPath();\n    context.setFillStyle(hexToRgb(toolTipOption.labelBgColor || config.toolTipBackground, toolTipOption.labelBgOpacity || config.toolTipOpacity));\n    context.setStrokeStyle(toolTipOption.labelBgColor || config.toolTipBackground);\n    context.setLineWidth(1 * opts.pix);\n    context.rect(textX - config.toolTipPadding, textY, textWidth + 2 * config.toolTipPadding, config.fontSize + 2 * config.toolTipPadding);\n    context.closePath();\n    context.stroke();\n    context.fill();\n    context.beginPath();\n    context.setFontSize(config.fontSize);\n    context.setFillStyle(toolTipOption.labelFontColor || opts.fontColor);\n    context.fillText(String(labelText), textX, textY + config.toolTipPadding + config.fontSize);\n    context.closePath();\n    context.stroke();\n  }\n}\n\nfunction drawMarkLine(opts, config, context) {\n  var markLineOption = assign({}, {\n    type: 'solid',\n    dashLength: 4,\n    data: [] },\n  opts.extra.markLine);\n  var startX = opts.area[3];\n  var endX = opts.width - opts.area[1];\n  var points = calMarkLineData(markLineOption.data, opts);\n  for (var i = 0; i < points.length; i++) {\n    var item = assign({}, {\n      lineColor: '#DE4A42',\n      showLabel: false,\n      labelFontColor: '#666666',\n      labelBgColor: '#DFE8FF',\n      labelBgOpacity: 0.8,\n      labelAlign: 'left',\n      labelOffsetX: 0,\n      labelOffsetY: 0 },\n    points[i]);\n    if (markLineOption.type == 'dash') {\n      context.setLineDash([markLineOption.dashLength, markLineOption.dashLength]);\n    }\n    context.setStrokeStyle(item.lineColor);\n    context.setLineWidth(1 * opts.pix);\n    context.beginPath();\n    context.moveTo(startX, item.y);\n    context.lineTo(endX, item.y);\n    context.stroke();\n    context.setLineDash([]);\n    if (item.showLabel) {\n      var labelText = item.labelText ? item.labelText : item.value;\n      context.setFontSize(config.fontSize);\n      var textWidth = measureText(labelText, config.fontSize, context);\n      var bgWidth = textWidth + config.toolTipPadding * 2;\n      var bgStartX = item.labelAlign == 'left' ? opts.area[3] - bgWidth : opts.width - opts.area[1];\n      bgStartX += item.labelOffsetX;\n      var bgStartY = item.y - 0.5 * config.fontSize - config.toolTipPadding;\n      bgStartY += item.labelOffsetY;\n      var textX = bgStartX + config.toolTipPadding;\n      var textY = item.y;\n      context.setFillStyle(hexToRgb(item.labelBgColor, item.labelBgOpacity));\n      context.setStrokeStyle(item.labelBgColor);\n      context.setLineWidth(1 * opts.pix);\n      context.beginPath();\n      context.rect(bgStartX, bgStartY, bgWidth, config.fontSize + 2 * config.toolTipPadding);\n      context.closePath();\n      context.stroke();\n      context.fill();\n      context.setFontSize(config.fontSize);\n      context.setTextAlign('left');\n      context.setFillStyle(item.labelFontColor);\n      context.fillText(String(labelText), textX, bgStartY + config.fontSize + config.toolTipPadding / 2);\n      context.stroke();\n      context.setTextAlign('left');\n    }\n  }\n}\n\nfunction drawToolTipHorizentalLine(opts, config, context, eachSpacing, xAxisPoints) {\n  var toolTipOption = assign({}, {\n    gridType: 'solid',\n    dashLength: 4 },\n  opts.extra.tooltip);\n  var startX = opts.area[3];\n  var endX = opts.width - opts.area[1];\n  if (toolTipOption.gridType == 'dash') {\n    context.setLineDash([toolTipOption.dashLength, toolTipOption.dashLength]);\n  }\n  context.setStrokeStyle(toolTipOption.gridColor || '#cccccc');\n  context.setLineWidth(1 * opts.pix);\n  context.beginPath();\n  context.moveTo(startX, opts.tooltip.offset.y);\n  context.lineTo(endX, opts.tooltip.offset.y);\n  context.stroke();\n  context.setLineDash([]);\n  if (toolTipOption.yAxisLabel) {\n    var labelText = calTooltipYAxisData(opts.tooltip.offset.y, opts.series, opts, config, eachSpacing);\n    var widthArr = opts.chartData.yAxisData.yAxisWidth;\n    var tStartLeft = opts.area[3];\n    var tStartRight = opts.width - opts.area[1];\n    for (var i = 0; i < labelText.length; i++) {\n      context.setFontSize(config.fontSize);\n      var textWidth = measureText(labelText[i], config.fontSize, context);\n      var bgStartX = void 0,bgEndX = void 0,bgWidth = void 0;\n      if (widthArr[i].position == 'left') {\n        bgStartX = tStartLeft - (textWidth + config.toolTipPadding * 2) - 2 * opts.pix;\n        bgEndX = Math.max(bgStartX, bgStartX + textWidth + config.toolTipPadding * 2);\n      } else {\n        bgStartX = tStartRight + 2 * opts.pix;\n        bgEndX = Math.max(bgStartX + widthArr[i].width, bgStartX + textWidth + config.toolTipPadding * 2);\n      }\n      bgWidth = bgEndX - bgStartX;\n      var textX = bgStartX + (bgWidth - textWidth) / 2;\n      var textY = opts.tooltip.offset.y;\n      context.beginPath();\n      context.setFillStyle(hexToRgb(toolTipOption.labelBgColor || config.toolTipBackground, toolTipOption.labelBgOpacity || config.toolTipOpacity));\n      context.setStrokeStyle(toolTipOption.labelBgColor || config.toolTipBackground);\n      context.setLineWidth(1 * opts.pix);\n      context.rect(bgStartX, textY - 0.5 * config.fontSize - config.toolTipPadding, bgWidth, config.fontSize + 2 * config.toolTipPadding);\n      context.closePath();\n      context.stroke();\n      context.fill();\n      context.beginPath();\n      context.setFontSize(config.fontSize);\n      context.setFillStyle(toolTipOption.labelFontColor || opts.fontColor);\n      context.fillText(labelText[i], textX, textY + 0.5 * config.fontSize);\n      context.closePath();\n      context.stroke();\n      if (widthArr[i].position == 'left') {\n        tStartLeft -= widthArr[i].width + opts.yAxis.padding * opts.pix;\n      } else {\n        tStartRight += widthArr[i].width + opts.yAxis.padding * opts.pix;\n      }\n    }\n  }\n}\n\nfunction drawToolTipSplitArea(offsetX, opts, config, context, eachSpacing) {\n  var toolTipOption = assign({}, {\n    activeBgColor: '#000000',\n    activeBgOpacity: 0.08,\n    activeWidth: eachSpacing },\n  opts.extra.column);\n  toolTipOption.activeWidth = toolTipOption.activeWidth > eachSpacing ? eachSpacing : toolTipOption.activeWidth;\n  var startY = opts.area[0];\n  var endY = opts.height - opts.area[2];\n  context.beginPath();\n  context.setFillStyle(hexToRgb(toolTipOption.activeBgColor, toolTipOption.activeBgOpacity));\n  context.rect(offsetX - toolTipOption.activeWidth / 2, startY, toolTipOption.activeWidth, endY - startY);\n  context.closePath();\n  context.fill();\n  context.setFillStyle(\"#FFFFFF\");\n}\n\nfunction drawBarToolTipSplitArea(offsetX, opts, config, context, eachSpacing) {\n  var toolTipOption = assign({}, {\n    activeBgColor: '#000000',\n    activeBgOpacity: 0.08 },\n  opts.extra.bar);\n  var startX = opts.area[3];\n  var endX = opts.width - opts.area[1];\n  context.beginPath();\n  context.setFillStyle(hexToRgb(toolTipOption.activeBgColor, toolTipOption.activeBgOpacity));\n  context.rect(startX, offsetX - eachSpacing / 2, endX - startX, eachSpacing);\n  context.closePath();\n  context.fill();\n  context.setFillStyle(\"#FFFFFF\");\n}\n\n\nfunction drawToolTip(textList, offset, opts, config, context, eachSpacing, xAxisPoints) {\n  var toolTipOption = assign({}, {\n    showBox: true,\n    showArrow: true,\n    showCategory: false,\n    bgColor: '#000000',\n    bgOpacity: 0.7,\n    borderColor: '#000000',\n    borderWidth: 0,\n    borderRadius: 0,\n    borderOpacity: 0.7,\n    fontColor: '#FFFFFF',\n    splitLine: true },\n  opts.extra.tooltip);\n  if (toolTipOption.showCategory == true && opts.categories) {\n    textList.unshift({ text: opts.categories[opts.tooltip.index], color: null });\n  }\n  var legendWidth = 4 * opts.pix;\n  var legendMarginRight = 5 * opts.pix;\n  var arrowWidth = toolTipOption.showArrow ? 8 * opts.pix : 0;\n  var isOverRightBorder = false;\n  if (opts.type == 'line' || opts.type == 'mount' || opts.type == 'area' || opts.type == 'candle' || opts.type == 'mix') {\n    if (toolTipOption.splitLine == true) {\n      drawToolTipSplitLine(opts.tooltip.offset.x, opts, config, context);\n    }\n  }\n  offset = assign({\n    x: 0,\n    y: 0 },\n  offset);\n  offset.y -= 8 * opts.pix;\n  var textWidth = textList.map(function (item) {\n    return measureText(item.text, config.fontSize, context);\n  });\n  var toolTipWidth = legendWidth + legendMarginRight + 4 * config.toolTipPadding + Math.max.apply(null, textWidth);\n  var toolTipHeight = 2 * config.toolTipPadding + textList.length * config.toolTipLineHeight;\n  if (toolTipOption.showBox == false) {\n    return;\n  }\n  // if beyond the right border\n  if (offset.x - Math.abs(opts._scrollDistance_ || 0) + arrowWidth + toolTipWidth > opts.width) {\n    isOverRightBorder = true;\n  }\n  if (toolTipHeight + offset.y > opts.height) {\n    offset.y = opts.height - toolTipHeight;\n  }\n  // draw background rect\n  context.beginPath();\n  context.setFillStyle(hexToRgb(toolTipOption.bgColor || config.toolTipBackground, toolTipOption.bgOpacity || config.toolTipOpacity));\n  context.setLineWidth(toolTipOption.borderWidth * opts.pix);\n  context.setStrokeStyle(hexToRgb(toolTipOption.borderColor, toolTipOption.borderOpacity));\n  var radius = toolTipOption.borderRadius;\n  if (isOverRightBorder) {\n    // 澧炲姞宸︿晶浠嶇劧瓒呭嚭鐨勫垽鏂璡n    if (toolTipWidth + arrowWidth > opts.width) {\n      offset.x = opts.width + Math.abs(opts._scrollDistance_ || 0) + arrowWidth + (toolTipWidth - opts.width);\n    }\n    if (toolTipOption.showArrow) {\n      context.moveTo(offset.x, offset.y + 10 * opts.pix);\n      context.lineTo(offset.x - arrowWidth, offset.y + 10 * opts.pix + 5 * opts.pix);\n    }\n    context.arc(offset.x - arrowWidth - radius, offset.y + toolTipHeight - radius, radius, 0, Math.PI / 2, false);\n    context.arc(offset.x - arrowWidth - Math.round(toolTipWidth) + radius, offset.y + toolTipHeight - radius, radius,\n    Math.PI / 2, Math.PI, false);\n    context.arc(offset.x - arrowWidth - Math.round(toolTipWidth) + radius, offset.y + radius, radius, -Math.PI, -Math.PI / 2, false);\n    context.arc(offset.x - arrowWidth - radius, offset.y + radius, radius, -Math.PI / 2, 0, false);\n    if (toolTipOption.showArrow) {\n      context.lineTo(offset.x - arrowWidth, offset.y + 10 * opts.pix - 5 * opts.pix);\n      context.lineTo(offset.x, offset.y + 10 * opts.pix);\n    }\n  } else {\n    if (toolTipOption.showArrow) {\n      context.moveTo(offset.x, offset.y + 10 * opts.pix);\n      context.lineTo(offset.x + arrowWidth, offset.y + 10 * opts.pix - 5 * opts.pix);\n    }\n    context.arc(offset.x + arrowWidth + radius, offset.y + radius, radius, -Math.PI, -Math.PI / 2, false);\n    context.arc(offset.x + arrowWidth + Math.round(toolTipWidth) - radius, offset.y + radius, radius, -Math.PI / 2, 0,\n    false);\n    context.arc(offset.x + arrowWidth + Math.round(toolTipWidth) - radius, offset.y + toolTipHeight - radius, radius, 0,\n    Math.PI / 2, false);\n    context.arc(offset.x + arrowWidth + radius, offset.y + toolTipHeight - radius, radius, Math.PI / 2, Math.PI, false);\n    if (toolTipOption.showArrow) {\n      context.lineTo(offset.x + arrowWidth, offset.y + 10 * opts.pix + 5 * opts.pix);\n      context.lineTo(offset.x, offset.y + 10 * opts.pix);\n    }\n  }\n  context.closePath();\n  context.fill();\n  if (toolTipOption.borderWidth > 0) {\n    context.stroke();\n  }\n  // draw legend\n  textList.forEach(function (item, index) {\n    if (item.color !== null) {\n      context.beginPath();\n      context.setFillStyle(item.color);\n      var startX = offset.x + arrowWidth + 2 * config.toolTipPadding;\n      var startY = offset.y + (config.toolTipLineHeight - config.fontSize) / 2 + config.toolTipLineHeight * index + config.toolTipPadding + 1;\n      if (isOverRightBorder) {\n        startX = offset.x - toolTipWidth - arrowWidth + 2 * config.toolTipPadding;\n      }\n      context.fillRect(startX, startY, legendWidth, config.fontSize);\n      // 鍦嗗舰鍥句緥璇锋敞閲婁笂琛岋紝骞舵妸涓嬭鍙栨秷娉ㄩ噴\n      // context.arc(startX + legendWidth / 2 , startY + opts.fontSize / 2, 4 * opts.pix, 0, 2 * Math.PI);\n      context.closePath();\n      context.fill();\n    }\n  });\n  // draw text list\n  textList.forEach(function (item, index) {\n    var startX = offset.x + arrowWidth + 2 * config.toolTipPadding + legendWidth + legendMarginRight;\n    if (isOverRightBorder) {\n      startX = offset.x - toolTipWidth - arrowWidth + 2 * config.toolTipPadding + +legendWidth + legendMarginRight;\n    }\n    var startY = offset.y + (config.toolTipLineHeight - config.fontSize) / 2 + config.toolTipLineHeight * index + config.toolTipPadding;\n    context.beginPath();\n    context.setFontSize(config.fontSize);\n    context.setFillStyle(toolTipOption.fontColor);\n    context.fillText(item.text, startX, startY + config.fontSize);\n    context.closePath();\n    context.stroke();\n  });\n}\n\nfunction drawColumnDataPoints(series, opts, config, context) {\n  var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n  var xAxisData = opts.chartData.xAxisData,\n  xAxisPoints = xAxisData.xAxisPoints,\n  eachSpacing = xAxisData.eachSpacing;\n  var columnOption = assign({}, {\n    type: 'group',\n    width: eachSpacing / 2,\n    meterBorder: 4,\n    meterFillColor: '#FFFFFF',\n    barBorderCircle: false,\n    barBorderRadius: [],\n    seriesGap: 2,\n    linearType: 'none',\n    linearOpacity: 1,\n    customColor: [],\n    colorStop: 0 },\n  opts.extra.column);\n  var calPoints = [];\n  context.save();\n  var leftNum = -2;\n  var rightNum = xAxisPoints.length + 2;\n  if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {\n    context.translate(opts._scrollDistance_, 0);\n    leftNum = Math.floor(-opts._scrollDistance_ / eachSpacing) - 2;\n    rightNum = leftNum + opts.xAxis.itemCount + 4;\n  }\n  if (opts.tooltip && opts.tooltip.textList && opts.tooltip.textList.length && process === 1) {\n    drawToolTipSplitArea(opts.tooltip.offset.x, opts, config, context, eachSpacing);\n  }\n  columnOption.customColor = fillCustomColor(columnOption.linearType, columnOption.customColor, series, config);\n  series.forEach(function (eachSeries, seriesIndex) {\n    var ranges, minRange, maxRange;\n    ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n    minRange = ranges.pop();\n    maxRange = ranges.shift();\n    var data = eachSeries.data;\n    switch (columnOption.type) {\n      case 'group':\n        var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n        var tooltipPoints = getStackDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, seriesIndex, series, process);\n        calPoints.push(tooltipPoints);\n        points = fixColumeData(points, eachSpacing, series.length, seriesIndex, config, opts);\n        for (var i = 0; i < points.length; i++) {\n          var item = points[i];\n          //fix issues/I27B1N yyoinge & Joeshu\n          if (item !== null && i > leftNum && i < rightNum) {\n            var startX = item.x - item.width / 2;\n            var height = opts.height - item.y - opts.area[2];\n            context.beginPath();\n            var fillColor = item.color || eachSeries.color;\n            var strokeColor = item.color || eachSeries.color;\n            if (columnOption.linearType !== 'none') {\n              var grd = context.createLinearGradient(startX, item.y, startX, opts.height - opts.area[2]);\n              //閫忔槑娓愬彉\n              if (columnOption.linearType == 'opacity') {\n                grd.addColorStop(0, hexToRgb(fillColor, columnOption.linearOpacity));\n                grd.addColorStop(1, hexToRgb(fillColor, 1));\n              } else {\n                grd.addColorStop(0, hexToRgb(columnOption.customColor[eachSeries.linearIndex], columnOption.linearOpacity));\n                grd.addColorStop(columnOption.colorStop, hexToRgb(columnOption.customColor[eachSeries.linearIndex], columnOption.linearOpacity));\n                grd.addColorStop(1, hexToRgb(fillColor, 1));\n              }\n              fillColor = grd;\n            }\n            // 鍦嗚杈规\n            if (columnOption.barBorderRadius && columnOption.barBorderRadius.length === 4 || columnOption.barBorderCircle === true) {\n              var left = startX;\n              var top = item.y;\n              var width = item.width;\n              var _height = opts.height - opts.area[2] - item.y;\n              if (columnOption.barBorderCircle) {\n                columnOption.barBorderRadius = [width / 2, width / 2, 0, 0];\n              }var _columnOption$barBord = _slicedToArray(\n              columnOption.barBorderRadius, 4),r0 = _columnOption$barBord[0],r1 = _columnOption$barBord[1],r2 = _columnOption$barBord[2],r3 = _columnOption$barBord[3];\n              var minRadius = Math.min(width / 2, _height / 2);\n              r0 = r0 > minRadius ? minRadius : r0;\n              r1 = r1 > minRadius ? minRadius : r1;\n              r2 = r2 > minRadius ? minRadius : r2;\n              r3 = r3 > minRadius ? minRadius : r3;\n              r0 = r0 < 0 ? 0 : r0;\n              r1 = r1 < 0 ? 0 : r1;\n              r2 = r2 < 0 ? 0 : r2;\n              r3 = r3 < 0 ? 0 : r3;\n              context.arc(left + r0, top + r0, r0, -Math.PI, -Math.PI / 2);\n              context.arc(left + width - r1, top + r1, r1, -Math.PI / 2, 0);\n              context.arc(left + width - r2, top + _height - r2, r2, 0, Math.PI / 2);\n              context.arc(left + r3, top + _height - r3, r3, Math.PI / 2, Math.PI);\n            } else {\n              context.moveTo(startX, item.y);\n              context.lineTo(startX + item.width, item.y);\n              context.lineTo(startX + item.width, opts.height - opts.area[2]);\n              context.lineTo(startX, opts.height - opts.area[2]);\n              context.lineTo(startX, item.y);\n              context.setLineWidth(1);\n              context.setStrokeStyle(strokeColor);\n            }\n            context.setFillStyle(fillColor);\n            context.closePath();\n            //context.stroke();\n            context.fill();\n          }\n        };\n        break;\n      case 'stack':\n        // 缁樺埗鍫嗗彔鏁版嵁鍥綷n        var points = getStackDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, seriesIndex, series, process);\n        calPoints.push(points);\n        points = fixColumeStackData(points, eachSpacing, series.length, seriesIndex, config, opts, series);\n        for (var _i16 = 0; _i16 < points.length; _i16++) {\n          var _item7 = points[_i16];\n          if (_item7 !== null && _i16 > leftNum && _i16 < rightNum) {\n            context.beginPath();\n            var fillColor = _item7.color || eachSeries.color;\n            var startX = _item7.x - _item7.width / 2 + 1;\n            var height = opts.height - _item7.y - opts.area[2];\n            var height0 = opts.height - _item7.y0 - opts.area[2];\n            if (seriesIndex > 0) {\n              height -= height0;\n            }\n            context.setFillStyle(fillColor);\n            context.moveTo(startX, _item7.y);\n            context.fillRect(startX, _item7.y, _item7.width, height);\n            context.closePath();\n            context.fill();\n          }\n        };\n        break;\n      case 'meter':\n        // 缁樺埗娓╁害璁℃暟鎹浘\n        var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n        calPoints.push(points);\n        points = fixColumeMeterData(points, eachSpacing, series.length, seriesIndex, config, opts, columnOption.meterBorder);\n        for (var _i17 = 0; _i17 < points.length; _i17++) {\n          var _item8 = points[_i17];\n          if (_item8 !== null && _i17 > leftNum && _i17 < rightNum) {\n            //鐢昏儗鏅鑹瞈n            context.beginPath();\n            if (seriesIndex == 0 && columnOption.meterBorder > 0) {\n              context.setStrokeStyle(eachSeries.color);\n              context.setLineWidth(columnOption.meterBorder * opts.pix);\n            }\n            if (seriesIndex == 0) {\n              context.setFillStyle(columnOption.meterFillColor);\n            } else {\n              context.setFillStyle(_item8.color || eachSeries.color);\n            }\n            var startX = _item8.x - _item8.width / 2;\n            var height = opts.height - _item8.y - opts.area[2];\n            if (columnOption.barBorderRadius && columnOption.barBorderRadius.length === 4 || columnOption.barBorderCircle === true) {\n              var _left = startX;\n              var _top = _item8.y;\n              var _width = _item8.width;\n              var _height2 = opts.height - opts.area[2] - _item8.y;\n              if (columnOption.barBorderCircle) {\n                columnOption.barBorderRadius = [_width / 2, _width / 2, 0, 0];\n              }var _columnOption$barBord2 = _slicedToArray(\n              columnOption.barBorderRadius, 4),_r = _columnOption$barBord2[0],_r2 = _columnOption$barBord2[1],_r3 = _columnOption$barBord2[2],_r4 = _columnOption$barBord2[3];\n              var _minRadius = Math.min(_width / 2, _height2 / 2);\n              _r = _r > _minRadius ? _minRadius : _r;\n              _r2 = _r2 > _minRadius ? _minRadius : _r2;\n              _r3 = _r3 > _minRadius ? _minRadius : _r3;\n              _r4 = _r4 > _minRadius ? _minRadius : _r4;\n              _r = _r < 0 ? 0 : _r;\n              _r2 = _r2 < 0 ? 0 : _r2;\n              _r3 = _r3 < 0 ? 0 : _r3;\n              _r4 = _r4 < 0 ? 0 : _r4;\n              context.arc(_left + _r, _top + _r, _r, -Math.PI, -Math.PI / 2);\n              context.arc(_left + _width - _r2, _top + _r2, _r2, -Math.PI / 2, 0);\n              context.arc(_left + _width - _r3, _top + _height2 - _r3, _r3, 0, Math.PI / 2);\n              context.arc(_left + _r4, _top + _height2 - _r4, _r4, Math.PI / 2, Math.PI);\n              context.fill();\n            } else {\n              context.moveTo(startX, _item8.y);\n              context.lineTo(startX + _item8.width, _item8.y);\n              context.lineTo(startX + _item8.width, opts.height - opts.area[2]);\n              context.lineTo(startX, opts.height - opts.area[2]);\n              context.lineTo(startX, _item8.y);\n              context.fill();\n            }\n            if (seriesIndex == 0 && columnOption.meterBorder > 0) {\n              context.closePath();\n              context.stroke();\n            }\n          }\n        }\n        break;}\n\n  });\n\n  if (opts.dataLabel !== false && process === 1) {\n    series.forEach(function (eachSeries, seriesIndex) {\n      var ranges, minRange, maxRange;\n      ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n      minRange = ranges.pop();\n      maxRange = ranges.shift();\n      var data = eachSeries.data;\n      switch (columnOption.type) {\n        case 'group':\n          var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n          points = fixColumeData(points, eachSpacing, series.length, seriesIndex, config, opts);\n          drawPointText(points, eachSeries, config, context, opts);\n          break;\n        case 'stack':\n          var points = getStackDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, seriesIndex, series, process);\n          drawPointText(points, eachSeries, config, context, opts);\n          break;\n        case 'meter':\n          var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n          drawPointText(points, eachSeries, config, context, opts);\n          break;}\n\n    });\n  }\n  context.restore();\n  return {\n    xAxisPoints: xAxisPoints,\n    calPoints: calPoints,\n    eachSpacing: eachSpacing };\n\n}\n\nfunction drawMountDataPoints(series, opts, config, context) {\n  var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n  var xAxisData = opts.chartData.xAxisData,\n  xAxisPoints = xAxisData.xAxisPoints,\n  eachSpacing = xAxisData.eachSpacing;\n  var mountOption = assign({}, {\n    type: 'mount',\n    widthRatio: 1,\n    borderWidth: 1,\n    barBorderCircle: false,\n    barBorderRadius: [],\n    linearType: 'none',\n    linearOpacity: 1,\n    customColor: [],\n    colorStop: 0 },\n  opts.extra.mount);\n  mountOption.widthRatio = mountOption.widthRatio <= 0 ? 0 : mountOption.widthRatio;\n  mountOption.widthRatio = mountOption.widthRatio >= 2 ? 2 : mountOption.widthRatio;\n  var calPoints = [];\n  context.save();\n  var leftNum = -2;\n  var rightNum = xAxisPoints.length + 2;\n  if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {\n    context.translate(opts._scrollDistance_, 0);\n    leftNum = Math.floor(-opts._scrollDistance_ / eachSpacing) - 2;\n    rightNum = leftNum + opts.xAxis.itemCount + 4;\n  }\n  mountOption.customColor = fillCustomColor(mountOption.linearType, mountOption.customColor, series, config);\n  var ranges, minRange, maxRange;\n  ranges = [].concat(opts.chartData.yAxisData.ranges[0]);\n  minRange = ranges.pop();\n  maxRange = ranges.shift();\n  var points = getMountDataPoints(series, minRange, maxRange, xAxisPoints, eachSpacing, opts, mountOption, process);\n  switch (mountOption.type) {\n    case 'bar':\n      for (var i = 0; i < points.length; i++) {\n        var item = points[i];\n        if (item !== null && i > leftNum && i < rightNum) {\n          var startX = item.x - eachSpacing * mountOption.widthRatio / 2;\n          var height = opts.height - item.y - opts.area[2];\n          context.beginPath();\n          var fillColor = item.color || series[i].color;\n          var strokeColor = item.color || series[i].color;\n          if (mountOption.linearType !== 'none') {\n            var grd = context.createLinearGradient(startX, item.y, startX, opts.height - opts.area[2]);\n            //閫忔槑娓愬彉\n            if (mountOption.linearType == 'opacity') {\n              grd.addColorStop(0, hexToRgb(fillColor, mountOption.linearOpacity));\n              grd.addColorStop(1, hexToRgb(fillColor, 1));\n            } else {\n              grd.addColorStop(0, hexToRgb(mountOption.customColor[series[i].linearIndex], mountOption.linearOpacity));\n              grd.addColorStop(mountOption.colorStop, hexToRgb(mountOption.customColor[series[i].linearIndex], mountOption.linearOpacity));\n              grd.addColorStop(1, hexToRgb(fillColor, 1));\n            }\n            fillColor = grd;\n          }\n          // 鍦嗚杈规\n          if (mountOption.barBorderRadius && mountOption.barBorderRadius.length === 4 || mountOption.barBorderCircle === true) {\n            var left = startX;\n            var top = item.y;\n            var width = item.width;\n            var _height3 = opts.height - opts.area[2] - item.y - mountOption.borderWidth * opts.pix / 2;\n            if (mountOption.barBorderCircle) {\n              mountOption.barBorderRadius = [width / 2, width / 2, 0, 0];\n            }var _mountOption$barBorde = _slicedToArray(\n            mountOption.barBorderRadius, 4),r0 = _mountOption$barBorde[0],r1 = _mountOption$barBorde[1],r2 = _mountOption$barBorde[2],r3 = _mountOption$barBorde[3];\n            var minRadius = Math.min(width / 2, _height3 / 2);\n            r0 = r0 > minRadius ? minRadius : r0;\n            r1 = r1 > minRadius ? minRadius : r1;\n            r2 = r2 > minRadius ? minRadius : r2;\n            r3 = r3 > minRadius ? minRadius : r3;\n            r0 = r0 < 0 ? 0 : r0;\n            r1 = r1 < 0 ? 0 : r1;\n            r2 = r2 < 0 ? 0 : r2;\n            r3 = r3 < 0 ? 0 : r3;\n            context.arc(left + r0, top + r0, r0, -Math.PI, -Math.PI / 2);\n            context.arc(left + width - r1, top + r1, r1, -Math.PI / 2, 0);\n            context.arc(left + width - r2, top + _height3 - r2, r2, 0, Math.PI / 2);\n            context.arc(left + r3, top + _height3 - r3, r3, Math.PI / 2, Math.PI);\n          } else {\n            context.moveTo(startX, item.y);\n            context.lineTo(startX + item.width, item.y);\n            context.lineTo(startX + item.width, opts.height - opts.area[2]);\n            context.lineTo(startX, opts.height - opts.area[2]);\n            context.lineTo(startX, item.y);\n          }\n          context.setStrokeStyle(strokeColor);\n          context.setFillStyle(fillColor);\n          if (mountOption.borderWidth > 0) {\n            context.setLineWidth(mountOption.borderWidth * opts.pix);\n            context.closePath();\n            context.stroke();\n          }\n          context.fill();\n        }\n      };\n      break;\n    case 'triangle':\n      for (var _i18 = 0; _i18 < points.length; _i18++) {\n        var _item9 = points[_i18];\n        if (_item9 !== null && _i18 > leftNum && _i18 < rightNum) {\n          var startX = _item9.x - eachSpacing * mountOption.widthRatio / 2;\n          var height = opts.height - _item9.y - opts.area[2];\n          context.beginPath();\n          var fillColor = _item9.color || series[_i18].color;\n          var strokeColor = _item9.color || series[_i18].color;\n          if (mountOption.linearType !== 'none') {\n            var grd = context.createLinearGradient(startX, _item9.y, startX, opts.height - opts.area[2]);\n            //閫忔槑娓愬彉\n            if (mountOption.linearType == 'opacity') {\n              grd.addColorStop(0, hexToRgb(fillColor, mountOption.linearOpacity));\n              grd.addColorStop(1, hexToRgb(fillColor, 1));\n            } else {\n              grd.addColorStop(0, hexToRgb(mountOption.customColor[series[_i18].linearIndex], mountOption.linearOpacity));\n              grd.addColorStop(mountOption.colorStop, hexToRgb(mountOption.customColor[series[_i18].linearIndex], mountOption.linearOpacity));\n              grd.addColorStop(1, hexToRgb(fillColor, 1));\n            }\n            fillColor = grd;\n          }\n          context.moveTo(startX, opts.height - opts.area[2]);\n          context.lineTo(_item9.x, _item9.y);\n          context.lineTo(startX + _item9.width, opts.height - opts.area[2]);\n          context.setStrokeStyle(strokeColor);\n          context.setFillStyle(fillColor);\n          if (mountOption.borderWidth > 0) {\n            context.setLineWidth(mountOption.borderWidth * opts.pix);\n            context.stroke();\n          }\n          context.fill();\n        }\n      };\n      break;\n    case 'mount':\n      for (var _i19 = 0; _i19 < points.length; _i19++) {\n        var _item10 = points[_i19];\n        if (_item10 !== null && _i19 > leftNum && _i19 < rightNum) {\n          var startX = _item10.x - eachSpacing * mountOption.widthRatio / 2;\n          var height = opts.height - _item10.y - opts.area[2];\n          context.beginPath();\n          var fillColor = _item10.color || series[_i19].color;\n          var strokeColor = _item10.color || series[_i19].color;\n          if (mountOption.linearType !== 'none') {\n            var grd = context.createLinearGradient(startX, _item10.y, startX, opts.height - opts.area[2]);\n            //閫忔槑娓愬彉\n            if (mountOption.linearType == 'opacity') {\n              grd.addColorStop(0, hexToRgb(fillColor, mountOption.linearOpacity));\n              grd.addColorStop(1, hexToRgb(fillColor, 1));\n            } else {\n              grd.addColorStop(0, hexToRgb(mountOption.customColor[series[_i19].linearIndex], mountOption.linearOpacity));\n              grd.addColorStop(mountOption.colorStop, hexToRgb(mountOption.customColor[series[_i19].linearIndex], mountOption.linearOpacity));\n              grd.addColorStop(1, hexToRgb(fillColor, 1));\n            }\n            fillColor = grd;\n          }\n          context.moveTo(startX, opts.height - opts.area[2]);\n          context.bezierCurveTo(_item10.x - _item10.width / 4, opts.height - opts.area[2], _item10.x - _item10.width / 4, _item10.y, _item10.x, _item10.y);\n          context.bezierCurveTo(_item10.x + _item10.width / 4, _item10.y, _item10.x + _item10.width / 4, opts.height - opts.area[2], startX + _item10.width, opts.height - opts.area[2]);\n          context.setStrokeStyle(strokeColor);\n          context.setFillStyle(fillColor);\n          if (mountOption.borderWidth > 0) {\n            context.setLineWidth(mountOption.borderWidth * opts.pix);\n            context.stroke();\n          }\n          context.fill();\n        }\n      };\n      break;\n    case 'sharp':\n      for (var _i20 = 0; _i20 < points.length; _i20++) {\n        var _item11 = points[_i20];\n        if (_item11 !== null && _i20 > leftNum && _i20 < rightNum) {\n          var startX = _item11.x - eachSpacing * mountOption.widthRatio / 2;\n          var height = opts.height - _item11.y - opts.area[2];\n          context.beginPath();\n          var fillColor = _item11.color || series[_i20].color;\n          var strokeColor = _item11.color || series[_i20].color;\n          if (mountOption.linearType !== 'none') {\n            var grd = context.createLinearGradient(startX, _item11.y, startX, opts.height - opts.area[2]);\n            //閫忔槑娓愬彉\n            if (mountOption.linearType == 'opacity') {\n              grd.addColorStop(0, hexToRgb(fillColor, mountOption.linearOpacity));\n              grd.addColorStop(1, hexToRgb(fillColor, 1));\n            } else {\n              grd.addColorStop(0, hexToRgb(mountOption.customColor[series[_i20].linearIndex], mountOption.linearOpacity));\n              grd.addColorStop(mountOption.colorStop, hexToRgb(mountOption.customColor[series[_i20].linearIndex], mountOption.linearOpacity));\n              grd.addColorStop(1, hexToRgb(fillColor, 1));\n            }\n            fillColor = grd;\n          }\n          context.moveTo(startX, opts.height - opts.area[2]);\n          context.quadraticCurveTo(_item11.x - 0, opts.height - opts.area[2] - height / 4, _item11.x, _item11.y);\n          context.quadraticCurveTo(_item11.x + 0, opts.height - opts.area[2] - height / 4, startX + _item11.width, opts.height - opts.area[2]);\n          context.setStrokeStyle(strokeColor);\n          context.setFillStyle(fillColor);\n          if (mountOption.borderWidth > 0) {\n            context.setLineWidth(mountOption.borderWidth * opts.pix);\n            context.stroke();\n          }\n          context.fill();\n        }\n      };\n      break;}\n\n\n  if (opts.dataLabel !== false && process === 1) {\n    var _ranges, _minRange, _maxRange;\n    _ranges = [].concat(opts.chartData.yAxisData.ranges[0]);\n    _minRange = _ranges.pop();\n    _maxRange = _ranges.shift();\n    var points = getMountDataPoints(series, _minRange, _maxRange, xAxisPoints, eachSpacing, opts, mountOption, process);\n    drawMountPointText(points, series, config, context, opts);\n  }\n  context.restore();\n  return {\n    xAxisPoints: xAxisPoints,\n    calPoints: points,\n    eachSpacing: eachSpacing };\n\n}\n\nfunction drawBarDataPoints(series, opts, config, context) {\n  var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n  var yAxisPoints = [];\n  var eachSpacing = (opts.height - opts.area[0] - opts.area[2]) / opts.categories.length;\n  for (var i = 0; i < opts.categories.length; i++) {\n    yAxisPoints.push(opts.area[0] + eachSpacing / 2 + eachSpacing * i);\n  }\n  var columnOption = assign({}, {\n    type: 'group',\n    width: eachSpacing / 2,\n    meterBorder: 4,\n    meterFillColor: '#FFFFFF',\n    barBorderCircle: false,\n    barBorderRadius: [],\n    seriesGap: 2,\n    linearType: 'none',\n    linearOpacity: 1,\n    customColor: [],\n    colorStop: 0 },\n  opts.extra.bar);\n  var calPoints = [];\n  context.save();\n  var leftNum = -2;\n  var rightNum = yAxisPoints.length + 2;\n  if (opts.tooltip && opts.tooltip.textList && opts.tooltip.textList.length && process === 1) {\n    drawBarToolTipSplitArea(opts.tooltip.offset.y, opts, config, context, eachSpacing);\n  }\n  columnOption.customColor = fillCustomColor(columnOption.linearType, columnOption.customColor, series, config);\n  series.forEach(function (eachSeries, seriesIndex) {\n    var ranges, minRange, maxRange;\n    ranges = [].concat(opts.chartData.xAxisData.ranges);\n    maxRange = ranges.pop();\n    minRange = ranges.shift();\n    var data = eachSeries.data;\n    switch (columnOption.type) {\n      case 'group':\n        var points = getBarDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config, process);\n        var tooltipPoints = getBarStackDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config, seriesIndex, series, process);\n        calPoints.push(tooltipPoints);\n        points = fixBarData(points, eachSpacing, series.length, seriesIndex, config, opts);\n        for (var _i21 = 0; _i21 < points.length; _i21++) {\n          var item = points[_i21];\n          //fix issues/I27B1N yyoinge & Joeshu\n          if (item !== null && _i21 > leftNum && _i21 < rightNum) {\n            //var startX = item.x - item.width / 2;\n            var startX = opts.area[3];\n            var startY = item.y - item.width / 2;\n            var height = item.height;\n            context.beginPath();\n            var fillColor = item.color || eachSeries.color;\n            var strokeColor = item.color || eachSeries.color;\n            if (columnOption.linearType !== 'none') {\n              var grd = context.createLinearGradient(startX, item.y, item.x, item.y);\n              //閫忔槑娓愬彉\n              if (columnOption.linearType == 'opacity') {\n                grd.addColorStop(0, hexToRgb(fillColor, columnOption.linearOpacity));\n                grd.addColorStop(1, hexToRgb(fillColor, 1));\n              } else {\n                grd.addColorStop(0, hexToRgb(columnOption.customColor[eachSeries.linearIndex], columnOption.linearOpacity));\n                grd.addColorStop(columnOption.colorStop, hexToRgb(columnOption.customColor[eachSeries.linearIndex], columnOption.linearOpacity));\n                grd.addColorStop(1, hexToRgb(fillColor, 1));\n              }\n              fillColor = grd;\n            }\n            // 鍦嗚杈规\n            if (columnOption.barBorderRadius && columnOption.barBorderRadius.length === 4 || columnOption.barBorderCircle === true) {\n              var left = startX;\n              var width = item.width;\n              var top = item.y - item.width / 2;\n              var _height4 = item.height;\n              if (columnOption.barBorderCircle) {\n                columnOption.barBorderRadius = [width / 2, width / 2, 0, 0];\n              }var _columnOption$barBord3 = _slicedToArray(\n              columnOption.barBorderRadius, 4),r0 = _columnOption$barBord3[0],r1 = _columnOption$barBord3[1],r2 = _columnOption$barBord3[2],r3 = _columnOption$barBord3[3];\n              var minRadius = Math.min(width / 2, _height4 / 2);\n              r0 = r0 > minRadius ? minRadius : r0;\n              r1 = r1 > minRadius ? minRadius : r1;\n              r2 = r2 > minRadius ? minRadius : r2;\n              r3 = r3 > minRadius ? minRadius : r3;\n              r0 = r0 < 0 ? 0 : r0;\n              r1 = r1 < 0 ? 0 : r1;\n              r2 = r2 < 0 ? 0 : r2;\n              r3 = r3 < 0 ? 0 : r3;\n\n              context.arc(left + r3, top + r3, r3, -Math.PI, -Math.PI / 2);\n              context.arc(item.x - r0, top + r0, r0, -Math.PI / 2, 0);\n              context.arc(item.x - r1, top + width - r1, r1, 0, Math.PI / 2);\n              context.arc(left + r2, top + width - r2, r2, Math.PI / 2, Math.PI);\n            } else {\n              context.moveTo(startX, startY);\n              context.lineTo(item.x, startY);\n              context.lineTo(item.x, startY + item.width);\n              context.lineTo(startX, startY + item.width);\n              context.lineTo(startX, startY);\n              context.setLineWidth(1);\n              context.setStrokeStyle(strokeColor);\n            }\n            context.setFillStyle(fillColor);\n            context.closePath();\n            //context.stroke();\n            context.fill();\n          }\n        };\n        break;\n      case 'stack':\n        // 缁樺埗鍫嗗彔鏁版嵁鍥綷n        var points = getBarStackDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config, seriesIndex, series, process);\n        calPoints.push(points);\n        points = fixBarStackData(points, eachSpacing, series.length, seriesIndex, config, opts, series);\n        for (var _i22 = 0; _i22 < points.length; _i22++) {\n          var _item12 = points[_i22];\n          if (_item12 !== null && _i22 > leftNum && _i22 < rightNum) {\n            context.beginPath();\n            var fillColor = _item12.color || eachSeries.color;\n            var startX = _item12.x0;\n            context.setFillStyle(fillColor);\n            context.moveTo(startX, _item12.y - _item12.width / 2);\n            context.fillRect(startX, _item12.y - _item12.width / 2, _item12.height, _item12.width);\n            context.closePath();\n            context.fill();\n          }\n        };\n        break;}\n\n  });\n\n  if (opts.dataLabel !== false && process === 1) {\n    series.forEach(function (eachSeries, seriesIndex) {\n      var ranges, minRange, maxRange;\n      ranges = [].concat(opts.chartData.xAxisData.ranges);\n      maxRange = ranges.pop();\n      minRange = ranges.shift();\n      var data = eachSeries.data;\n      switch (columnOption.type) {\n        case 'group':\n          var points = getBarDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config, process);\n          points = fixBarData(points, eachSpacing, series.length, seriesIndex, config, opts);\n          drawBarPointText(points, eachSeries, config, context, opts);\n          break;\n        case 'stack':\n          var points = getBarStackDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config, seriesIndex, series, process);\n          drawBarPointText(points, eachSeries, config, context, opts);\n          break;}\n\n    });\n  }\n  return {\n    yAxisPoints: yAxisPoints,\n    calPoints: calPoints,\n    eachSpacing: eachSpacing };\n\n}\n\nfunction drawCandleDataPoints(series, seriesMA, opts, config, context) {\n  var process = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 1;\n  var candleOption = assign({}, {\n    color: {},\n    average: {} },\n  opts.extra.candle);\n  candleOption.color = assign({}, {\n    upLine: '#f04864',\n    upFill: '#f04864',\n    downLine: '#2fc25b',\n    downFill: '#2fc25b' },\n  candleOption.color);\n  candleOption.average = assign({}, {\n    show: false,\n    name: [],\n    day: [],\n    color: config.color },\n  candleOption.average);\n  opts.extra.candle = candleOption;\n  var xAxisData = opts.chartData.xAxisData,\n  xAxisPoints = xAxisData.xAxisPoints,\n  eachSpacing = xAxisData.eachSpacing;\n  var calPoints = [];\n  context.save();\n  var leftNum = -2;\n  var rightNum = xAxisPoints.length + 2;\n  var leftSpace = 0;\n  var rightSpace = opts.width + eachSpacing;\n  if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {\n    context.translate(opts._scrollDistance_, 0);\n    leftNum = Math.floor(-opts._scrollDistance_ / eachSpacing) - 2;\n    rightNum = leftNum + opts.xAxis.itemCount + 4;\n    leftSpace = -opts._scrollDistance_ - eachSpacing * 2 + opts.area[3];\n    rightSpace = leftSpace + (opts.xAxis.itemCount + 4) * eachSpacing;\n  }\n  //鐢诲潎绾縗n  if (candleOption.average.show || seriesMA) {//Merge pull request !12 from 閭辫吹缈擻n    seriesMA.forEach(function (eachSeries, seriesIndex) {\n      var ranges, minRange, maxRange;\n      ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n      minRange = ranges.pop();\n      maxRange = ranges.shift();\n      var data = eachSeries.data;\n      var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n      var splitPointList = splitPoints(points, eachSeries);\n      for (var i = 0; i < splitPointList.length; i++) {\n        var _points = splitPointList[i];\n        context.beginPath();\n        context.setStrokeStyle(eachSeries.color);\n        context.setLineWidth(1);\n        if (_points.length === 1) {\n          context.moveTo(_points[0].x, _points[0].y);\n          context.arc(_points[0].x, _points[0].y, 1, 0, 2 * Math.PI);\n        } else {\n          context.moveTo(_points[0].x, _points[0].y);\n          var startPoint = 0;\n          for (var j = 0; j < _points.length; j++) {\n            var item = _points[j];\n            if (startPoint == 0 && item.x > leftSpace) {\n              context.moveTo(item.x, item.y);\n              startPoint = 1;\n            }\n            if (j > 0 && item.x > leftSpace && item.x < rightSpace) {\n              var ctrlPoint = createCurveControlPoints(_points, j - 1);\n              context.bezierCurveTo(ctrlPoint.ctrA.x, ctrlPoint.ctrA.y, ctrlPoint.ctrB.x, ctrlPoint.ctrB.y, item.x,\n              item.y);\n            }\n          }\n          context.moveTo(_points[0].x, _points[0].y);\n        }\n        context.closePath();\n        context.stroke();\n      }\n    });\n  }\n  //鐢籏绾縗n  series.forEach(function (eachSeries, seriesIndex) {\n    var ranges, minRange, maxRange;\n    ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n    minRange = ranges.pop();\n    maxRange = ranges.shift();\n    var data = eachSeries.data;\n    var points = getCandleDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n    calPoints.push(points);\n    var splitPointList = splitPoints(points, eachSeries);\n    for (var i = 0; i < splitPointList[0].length; i++) {\n      if (i > leftNum && i < rightNum) {\n        var item = splitPointList[0][i];\n        context.beginPath();\n        //濡傛灉涓婃定\n        if (data[i][1] - data[i][0] > 0) {\n          context.setStrokeStyle(candleOption.color.upLine);\n          context.setFillStyle(candleOption.color.upFill);\n          context.setLineWidth(1 * opts.pix);\n          context.moveTo(item[3].x, item[3].y); //椤剁偣\n          context.lineTo(item[1].x, item[1].y); //鏀剁洏涓棿鐐筡n          context.lineTo(item[1].x - eachSpacing / 4, item[1].y); //鏀剁洏宸︿晶鐐筡n          context.lineTo(item[0].x - eachSpacing / 4, item[0].y); //寮�鐩樺乏渚х偣\n          context.lineTo(item[0].x, item[0].y); //寮�鐩樹腑闂寸偣\n          context.lineTo(item[2].x, item[2].y); //搴曠偣\n          context.lineTo(item[0].x, item[0].y); //寮�鐩樹腑闂寸偣\n          context.lineTo(item[0].x + eachSpacing / 4, item[0].y); //寮�鐩樺彸渚х偣\n          context.lineTo(item[1].x + eachSpacing / 4, item[1].y); //鏀剁洏鍙充晶鐐筡n          context.lineTo(item[1].x, item[1].y); //鏀剁洏涓棿鐐筡n          context.moveTo(item[3].x, item[3].y); //椤剁偣\n        } else {\n          context.setStrokeStyle(candleOption.color.downLine);\n          context.setFillStyle(candleOption.color.downFill);\n          context.setLineWidth(1 * opts.pix);\n          context.moveTo(item[3].x, item[3].y); //椤剁偣\n          context.lineTo(item[0].x, item[0].y); //寮�鐩樹腑闂寸偣\n          context.lineTo(item[0].x - eachSpacing / 4, item[0].y); //寮�鐩樺乏渚х偣\n          context.lineTo(item[1].x - eachSpacing / 4, item[1].y); //鏀剁洏宸︿晶鐐筡n          context.lineTo(item[1].x, item[1].y); //鏀剁洏涓棿鐐筡n          context.lineTo(item[2].x, item[2].y); //搴曠偣\n          context.lineTo(item[1].x, item[1].y); //鏀剁洏涓棿鐐筡n          context.lineTo(item[1].x + eachSpacing / 4, item[1].y); //鏀剁洏鍙充晶鐐筡n          context.lineTo(item[0].x + eachSpacing / 4, item[0].y); //寮�鐩樺彸渚х偣\n          context.lineTo(item[0].x, item[0].y); //寮�鐩樹腑闂寸偣\n          context.moveTo(item[3].x, item[3].y); //椤剁偣\n        }\n        context.closePath();\n        context.fill();\n        context.stroke();\n      }\n    }\n  });\n  context.restore();\n  return {\n    xAxisPoints: xAxisPoints,\n    calPoints: calPoints,\n    eachSpacing: eachSpacing };\n\n}\n\nfunction drawAreaDataPoints(series, opts, config, context) {\n  var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n  var areaOption = assign({}, {\n    type: 'straight',\n    opacity: 0.2,\n    addLine: false,\n    width: 2,\n    gradient: false },\n  opts.extra.area);\n  var xAxisData = opts.chartData.xAxisData,\n  xAxisPoints = xAxisData.xAxisPoints,\n  eachSpacing = xAxisData.eachSpacing;\n  var endY = opts.height - opts.area[2];\n  var calPoints = [];\n  context.save();\n  var leftSpace = 0;\n  var rightSpace = opts.width + eachSpacing;\n  if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {\n    context.translate(opts._scrollDistance_, 0);\n    leftSpace = -opts._scrollDistance_ - eachSpacing * 2 + opts.area[3];\n    rightSpace = leftSpace + (opts.xAxis.itemCount + 4) * eachSpacing;\n  }\n  series.forEach(function (eachSeries, seriesIndex) {\n    var ranges, minRange, maxRange;\n    ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n    minRange = ranges.pop();\n    maxRange = ranges.shift();\n    var data = eachSeries.data;\n    var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n    calPoints.push(points);\n    var splitPointList = splitPoints(points, eachSeries);\n    for (var i = 0; i < splitPointList.length; i++) {\n      var _points2 = splitPointList[i];\n      // 缁樺埗鍖哄煙鏁癨n      context.beginPath();\n      context.setStrokeStyle(hexToRgb(eachSeries.color, areaOption.opacity));\n      if (areaOption.gradient) {\n        var gradient = context.createLinearGradient(0, opts.area[0], 0, opts.height - opts.area[2]);\n        gradient.addColorStop('0', hexToRgb(eachSeries.color, areaOption.opacity));\n        gradient.addColorStop('1.0', hexToRgb(\"#FFFFFF\", 0.1));\n        context.setFillStyle(gradient);\n      } else {\n        context.setFillStyle(hexToRgb(eachSeries.color, areaOption.opacity));\n      }\n      context.setLineWidth(areaOption.width * opts.pix);\n      if (_points2.length > 1) {\n        var firstPoint = _points2[0];\n        var lastPoint = _points2[_points2.length - 1];\n        context.moveTo(firstPoint.x, firstPoint.y);\n        var startPoint = 0;\n        if (areaOption.type === 'curve') {\n          for (var j = 0; j < _points2.length; j++) {\n            var item = _points2[j];\n            if (startPoint == 0 && item.x > leftSpace) {\n              context.moveTo(item.x, item.y);\n              startPoint = 1;\n            }\n            if (j > 0 && item.x > leftSpace && item.x < rightSpace) {\n              var ctrlPoint = createCurveControlPoints(_points2, j - 1);\n              context.bezierCurveTo(ctrlPoint.ctrA.x, ctrlPoint.ctrA.y, ctrlPoint.ctrB.x, ctrlPoint.ctrB.y, item.x, item.y);\n            }\n          };\n        }\n        if (areaOption.type === 'straight') {\n          for (var _j = 0; _j < _points2.length; _j++) {\n            var _item13 = _points2[_j];\n            if (startPoint == 0 && _item13.x > leftSpace) {\n              context.moveTo(_item13.x, _item13.y);\n              startPoint = 1;\n            }\n            if (_j > 0 && _item13.x > leftSpace && _item13.x < rightSpace) {\n              context.lineTo(_item13.x, _item13.y);\n            }\n          };\n        }\n        if (areaOption.type === 'step') {\n          for (var _j2 = 0; _j2 < _points2.length; _j2++) {\n            var _item14 = _points2[_j2];\n            if (startPoint == 0 && _item14.x > leftSpace) {\n              context.moveTo(_item14.x, _item14.y);\n              startPoint = 1;\n            }\n            if (_j2 > 0 && _item14.x > leftSpace && _item14.x < rightSpace) {\n              context.lineTo(_item14.x, _points2[_j2 - 1].y);\n              context.lineTo(_item14.x, _item14.y);\n            }\n          };\n        }\n        context.lineTo(lastPoint.x, endY);\n        context.lineTo(firstPoint.x, endY);\n        context.lineTo(firstPoint.x, firstPoint.y);\n      } else {\n        var _item15 = _points2[0];\n        context.moveTo(_item15.x - eachSpacing / 2, _item15.y);\n        context.lineTo(_item15.x + eachSpacing / 2, _item15.y);\n        context.lineTo(_item15.x + eachSpacing / 2, endY);\n        context.lineTo(_item15.x - eachSpacing / 2, endY);\n        context.moveTo(_item15.x - eachSpacing / 2, _item15.y);\n      }\n      context.closePath();\n      context.fill();\n      //鐢昏繛绾縗n      if (areaOption.addLine) {\n        if (eachSeries.lineType == 'dash') {\n          var dashLength = eachSeries.dashLength ? eachSeries.dashLength : 8;\n          dashLength *= opts.pix;\n          context.setLineDash([dashLength, dashLength]);\n        }\n        context.beginPath();\n        context.setStrokeStyle(eachSeries.color);\n        context.setLineWidth(areaOption.width * opts.pix);\n        if (_points2.length === 1) {\n          context.moveTo(_points2[0].x, _points2[0].y);\n          context.arc(_points2[0].x, _points2[0].y, 1, 0, 2 * Math.PI);\n        } else {\n          context.moveTo(_points2[0].x, _points2[0].y);\n          var _startPoint = 0;\n          if (areaOption.type === 'curve') {\n            for (var _j3 = 0; _j3 < _points2.length; _j3++) {\n              var _item16 = _points2[_j3];\n              if (_startPoint == 0 && _item16.x > leftSpace) {\n                context.moveTo(_item16.x, _item16.y);\n                _startPoint = 1;\n              }\n              if (_j3 > 0 && _item16.x > leftSpace && _item16.x < rightSpace) {\n                var _ctrlPoint = createCurveControlPoints(_points2, _j3 - 1);\n                context.bezierCurveTo(_ctrlPoint.ctrA.x, _ctrlPoint.ctrA.y, _ctrlPoint.ctrB.x, _ctrlPoint.ctrB.y, _item16.x, _item16.y);\n              }\n            };\n          }\n          if (areaOption.type === 'straight') {\n            for (var _j4 = 0; _j4 < _points2.length; _j4++) {\n              var _item17 = _points2[_j4];\n              if (_startPoint == 0 && _item17.x > leftSpace) {\n                context.moveTo(_item17.x, _item17.y);\n                _startPoint = 1;\n              }\n              if (_j4 > 0 && _item17.x > leftSpace && _item17.x < rightSpace) {\n                context.lineTo(_item17.x, _item17.y);\n              }\n            };\n          }\n          if (areaOption.type === 'step') {\n            for (var _j5 = 0; _j5 < _points2.length; _j5++) {\n              var _item18 = _points2[_j5];\n              if (_startPoint == 0 && _item18.x > leftSpace) {\n                context.moveTo(_item18.x, _item18.y);\n                _startPoint = 1;\n              }\n              if (_j5 > 0 && _item18.x > leftSpace && _item18.x < rightSpace) {\n                context.lineTo(_item18.x, _points2[_j5 - 1].y);\n                context.lineTo(_item18.x, _item18.y);\n              }\n            };\n          }\n          context.moveTo(_points2[0].x, _points2[0].y);\n        }\n        context.stroke();\n        context.setLineDash([]);\n      }\n    }\n    //鐢荤偣\n    if (opts.dataPointShape !== false) {\n      drawPointShape(points, eachSeries.color, eachSeries.pointShape, context, opts);\n    }\n  });\n\n  if (opts.dataLabel !== false && process === 1) {\n    series.forEach(function (eachSeries, seriesIndex) {\n      var ranges, minRange, maxRange;\n      ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n      minRange = ranges.pop();\n      maxRange = ranges.shift();\n      var data = eachSeries.data;\n      var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n      drawPointText(points, eachSeries, config, context, opts);\n    });\n  }\n  context.restore();\n  return {\n    xAxisPoints: xAxisPoints,\n    calPoints: calPoints,\n    eachSpacing: eachSpacing };\n\n}\n\nfunction drawScatterDataPoints(series, opts, config, context) {\n  var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n  var scatterOption = assign({}, {\n    type: 'circle' },\n  opts.extra.scatter);\n  var xAxisData = opts.chartData.xAxisData,\n  xAxisPoints = xAxisData.xAxisPoints,\n  eachSpacing = xAxisData.eachSpacing;\n  var calPoints = [];\n  context.save();\n  var leftSpace = 0;\n  var rightSpace = opts.width + eachSpacing;\n  if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {\n    context.translate(opts._scrollDistance_, 0);\n    leftSpace = -opts._scrollDistance_ - eachSpacing * 2 + opts.area[3];\n    rightSpace = leftSpace + (opts.xAxis.itemCount + 4) * eachSpacing;\n  }\n  series.forEach(function (eachSeries, seriesIndex) {\n    var ranges, minRange, maxRange;\n    ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n    minRange = ranges.pop();\n    maxRange = ranges.shift();\n    var data = eachSeries.data;\n    var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n    context.beginPath();\n    context.setStrokeStyle(eachSeries.color);\n    context.setFillStyle(eachSeries.color);\n    context.setLineWidth(1 * opts.pix);\n    var shape = eachSeries.pointShape;\n    if (shape === 'diamond') {\n      points.forEach(function (item, index) {\n        if (item !== null) {\n          context.moveTo(item.x, item.y - 4.5);\n          context.lineTo(item.x - 4.5, item.y);\n          context.lineTo(item.x, item.y + 4.5);\n          context.lineTo(item.x + 4.5, item.y);\n          context.lineTo(item.x, item.y - 4.5);\n        }\n      });\n    } else if (shape === 'circle') {\n      points.forEach(function (item, index) {\n        if (item !== null) {\n          context.moveTo(item.x + 2.5 * opts.pix, item.y);\n          context.arc(item.x, item.y, 3 * opts.pix, 0, 2 * Math.PI, false);\n        }\n      });\n    } else if (shape === 'square') {\n      points.forEach(function (item, index) {\n        if (item !== null) {\n          context.moveTo(item.x - 3.5, item.y - 3.5);\n          context.rect(item.x - 3.5, item.y - 3.5, 7, 7);\n        }\n      });\n    } else if (shape === 'triangle') {\n      points.forEach(function (item, index) {\n        if (item !== null) {\n          context.moveTo(item.x, item.y - 4.5);\n          context.lineTo(item.x - 4.5, item.y + 4.5);\n          context.lineTo(item.x + 4.5, item.y + 4.5);\n          context.lineTo(item.x, item.y - 4.5);\n        }\n      });\n    } else if (shape === 'triangle') {\n      return;\n    }\n    context.closePath();\n    context.fill();\n    context.stroke();\n  });\n  if (opts.dataLabel !== false && process === 1) {\n    series.forEach(function (eachSeries, seriesIndex) {\n      var ranges, minRange, maxRange;\n      ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n      minRange = ranges.pop();\n      maxRange = ranges.shift();\n      var data = eachSeries.data;\n      var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n      drawPointText(points, eachSeries, config, context, opts);\n    });\n  }\n  context.restore();\n  return {\n    xAxisPoints: xAxisPoints,\n    calPoints: calPoints,\n    eachSpacing: eachSpacing };\n\n}\n\nfunction drawBubbleDataPoints(series, opts, config, context) {\n  var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n  var bubbleOption = assign({}, {\n    opacity: 1,\n    border: 2 },\n  opts.extra.bubble);\n  var xAxisData = opts.chartData.xAxisData,\n  xAxisPoints = xAxisData.xAxisPoints,\n  eachSpacing = xAxisData.eachSpacing;\n  var calPoints = [];\n  context.save();\n  var leftSpace = 0;\n  var rightSpace = opts.width + eachSpacing;\n  if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {\n    context.translate(opts._scrollDistance_, 0);\n    leftSpace = -opts._scrollDistance_ - eachSpacing * 2 + opts.area[3];\n    rightSpace = leftSpace + (opts.xAxis.itemCount + 4) * eachSpacing;\n  }\n  series.forEach(function (eachSeries, seriesIndex) {\n    var ranges, minRange, maxRange;\n    ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n    minRange = ranges.pop();\n    maxRange = ranges.shift();\n    var data = eachSeries.data;\n    var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n    context.beginPath();\n    context.setStrokeStyle(eachSeries.color);\n    context.setLineWidth(bubbleOption.border * opts.pix);\n    context.setFillStyle(hexToRgb(eachSeries.color, bubbleOption.opacity));\n    points.forEach(function (item, index) {\n      context.moveTo(item.x + item.r, item.y);\n      context.arc(item.x, item.y, item.r * opts.pix, 0, 2 * Math.PI, false);\n    });\n    context.closePath();\n    context.fill();\n    context.stroke();\n\n    if (opts.dataLabel !== false && process === 1) {\n      points.forEach(function (item, index) {\n        context.beginPath();\n        var fontSize = eachSeries.textSize * opts.pix || config.fontSize;\n        context.setFontSize(fontSize);\n        context.setFillStyle(eachSeries.textColor || \"#FFFFFF\");\n        context.setTextAlign('center');\n        context.fillText(String(item.t), item.x, item.y + fontSize / 2);\n        context.closePath();\n        context.stroke();\n        context.setTextAlign('left');\n      });\n    }\n  });\n  context.restore();\n  return {\n    xAxisPoints: xAxisPoints,\n    calPoints: calPoints,\n    eachSpacing: eachSpacing };\n\n}\n\nfunction drawLineDataPoints(series, opts, config, context) {\n  var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n  var lineOption = assign({}, {\n    type: 'straight',\n    width: 2 },\n  opts.extra.line);\n  lineOption.width *= opts.pix;\n  var xAxisData = opts.chartData.xAxisData,\n  xAxisPoints = xAxisData.xAxisPoints,\n  eachSpacing = xAxisData.eachSpacing;\n  var calPoints = [];\n  context.save();\n  var leftSpace = 0;\n  var rightSpace = opts.width + eachSpacing;\n  if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {\n    context.translate(opts._scrollDistance_, 0);\n    leftSpace = -opts._scrollDistance_ - eachSpacing * 2 + opts.area[3];\n    rightSpace = leftSpace + (opts.xAxis.itemCount + 4) * eachSpacing;\n  }\n  series.forEach(function (eachSeries, seriesIndex) {\n    var ranges, minRange, maxRange;\n    ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n    minRange = ranges.pop();\n    maxRange = ranges.shift();\n    var data = eachSeries.data;\n    var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n    calPoints.push(points);\n    var splitPointList = splitPoints(points, eachSeries);\n    if (eachSeries.lineType == 'dash') {\n      var dashLength = eachSeries.dashLength ? eachSeries.dashLength : 8;\n      dashLength *= opts.pix;\n      context.setLineDash([dashLength, dashLength]);\n    }\n    context.beginPath();\n    context.setStrokeStyle(eachSeries.color);\n    context.setLineWidth(lineOption.width);\n    splitPointList.forEach(function (points, index) {\n      if (points.length === 1) {\n        context.moveTo(points[0].x, points[0].y);\n        context.arc(points[0].x, points[0].y, 1, 0, 2 * Math.PI);\n      } else {\n        context.moveTo(points[0].x, points[0].y);\n        var startPoint = 0;\n        if (lineOption.type === 'curve') {\n          for (var j = 0; j < points.length; j++) {\n            var item = points[j];\n            if (startPoint == 0 && item.x > leftSpace) {\n              context.moveTo(item.x, item.y);\n              startPoint = 1;\n            }\n            if (j > 0 && item.x > leftSpace && item.x < rightSpace) {\n              var ctrlPoint = createCurveControlPoints(points, j - 1);\n              context.bezierCurveTo(ctrlPoint.ctrA.x, ctrlPoint.ctrA.y, ctrlPoint.ctrB.x, ctrlPoint.ctrB.y, item.x, item.y);\n            }\n          };\n        }\n        if (lineOption.type === 'straight') {\n          for (var _j6 = 0; _j6 < points.length; _j6++) {\n            var _item19 = points[_j6];\n            if (startPoint == 0 && _item19.x > leftSpace) {\n              context.moveTo(_item19.x, _item19.y);\n              startPoint = 1;\n            }\n            if (_j6 > 0 && _item19.x > leftSpace && _item19.x < rightSpace) {\n              context.lineTo(_item19.x, _item19.y);\n            }\n          };\n        }\n        if (lineOption.type === 'step') {\n          for (var _j7 = 0; _j7 < points.length; _j7++) {\n            var _item20 = points[_j7];\n            if (startPoint == 0 && _item20.x > leftSpace) {\n              context.moveTo(_item20.x, _item20.y);\n              startPoint = 1;\n            }\n            if (_j7 > 0 && _item20.x > leftSpace && _item20.x < rightSpace) {\n              context.lineTo(_item20.x, points[_j7 - 1].y);\n              context.lineTo(_item20.x, _item20.y);\n            }\n          };\n        }\n        context.moveTo(points[0].x, points[0].y);\n      }\n    });\n    context.stroke();\n    context.setLineDash([]);\n    if (opts.dataPointShape !== false) {\n      drawPointShape(points, eachSeries.color, eachSeries.pointShape, context, opts);\n    }\n  });\n  if (opts.dataLabel !== false && process === 1) {\n    series.forEach(function (eachSeries, seriesIndex) {\n      var ranges, minRange, maxRange;\n      ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n      minRange = ranges.pop();\n      maxRange = ranges.shift();\n      var data = eachSeries.data;\n      var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n      drawPointText(points, eachSeries, config, context, opts);\n    });\n  }\n  context.restore();\n  return {\n    xAxisPoints: xAxisPoints,\n    calPoints: calPoints,\n    eachSpacing: eachSpacing };\n\n}\n\nfunction drawMixDataPoints(series, opts, config, context) {\n  var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n  var xAxisData = opts.chartData.xAxisData,\n  xAxisPoints = xAxisData.xAxisPoints,\n  eachSpacing = xAxisData.eachSpacing;\n  var columnOption = assign({}, {\n    width: eachSpacing / 2,\n    barBorderCircle: false,\n    barBorderRadius: [],\n    seriesGap: 2,\n    linearType: 'none',\n    linearOpacity: 1,\n    customColor: [],\n    colorStop: 0 },\n  opts.extra.mix.column);\n  var areaOption = assign({}, {\n    opacity: 0.2,\n    gradient: false },\n  opts.extra.mix.area);\n  var lineOption = assign({}, {\n    width: 2 },\n  opts.extra.mix.line);\n  var endY = opts.height - opts.area[2];\n  var calPoints = [];\n  var columnIndex = 0;\n  var columnLength = 0;\n  series.forEach(function (eachSeries, seriesIndex) {\n    if (eachSeries.type == 'column') {\n      columnLength += 1;\n    }\n  });\n  context.save();\n  var leftNum = -2;\n  var rightNum = xAxisPoints.length + 2;\n  var leftSpace = 0;\n  var rightSpace = opts.width + eachSpacing;\n  if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {\n    context.translate(opts._scrollDistance_, 0);\n    leftNum = Math.floor(-opts._scrollDistance_ / eachSpacing) - 2;\n    rightNum = leftNum + opts.xAxis.itemCount + 4;\n    leftSpace = -opts._scrollDistance_ - eachSpacing * 2 + opts.area[3];\n    rightSpace = leftSpace + (opts.xAxis.itemCount + 4) * eachSpacing;\n  }\n  columnOption.customColor = fillCustomColor(columnOption.linearType, columnOption.customColor, series, config);\n  series.forEach(function (eachSeries, seriesIndex) {\n    var ranges, minRange, maxRange;\n    ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n    minRange = ranges.pop();\n    maxRange = ranges.shift();\n    var data = eachSeries.data;\n    var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n    calPoints.push(points);\n    // 缁樺埗鏌辩姸鏁版嵁鍥綷n    if (eachSeries.type == 'column') {\n      points = fixColumeData(points, eachSpacing, columnLength, columnIndex, config, opts);\n      for (var i = 0; i < points.length; i++) {\n        var item = points[i];\n        if (item !== null && i > leftNum && i < rightNum) {\n          var startX = item.x - item.width / 2;\n          var height = opts.height - item.y - opts.area[2];\n          context.beginPath();\n          var fillColor = item.color || eachSeries.color;\n          var strokeColor = item.color || eachSeries.color;\n          if (columnOption.linearType !== 'none') {\n            var grd = context.createLinearGradient(startX, item.y, startX, opts.height - opts.area[2]);\n            //閫忔槑娓愬彉\n            if (columnOption.linearType == 'opacity') {\n              grd.addColorStop(0, hexToRgb(fillColor, columnOption.linearOpacity));\n              grd.addColorStop(1, hexToRgb(fillColor, 1));\n            } else {\n              grd.addColorStop(0, hexToRgb(columnOption.customColor[eachSeries.linearIndex], columnOption.linearOpacity));\n              grd.addColorStop(columnOption.colorStop, hexToRgb(columnOption.customColor[eachSeries.linearIndex], columnOption.linearOpacity));\n              grd.addColorStop(1, hexToRgb(fillColor, 1));\n            }\n            fillColor = grd;\n          }\n          // 鍦嗚杈规\n          if (columnOption.barBorderRadius && columnOption.barBorderRadius.length === 4 || columnOption.barBorderCircle) {\n            var left = startX;\n            var top = item.y;\n            var width = item.width;\n            var _height5 = opts.height - opts.area[2] - item.y;\n            if (columnOption.barBorderCircle) {\n              columnOption.barBorderRadius = [width / 2, width / 2, 0, 0];\n            }var _columnOption$barBord4 = _slicedToArray(\n            columnOption.barBorderRadius, 4),r0 = _columnOption$barBord4[0],r1 = _columnOption$barBord4[1],r2 = _columnOption$barBord4[2],r3 = _columnOption$barBord4[3];\n            var minRadius = Math.min(width / 2, _height5 / 2);\n            r0 = r0 > minRadius ? minRadius : r0;\n            r1 = r1 > minRadius ? minRadius : r1;\n            r2 = r2 > minRadius ? minRadius : r2;\n            r3 = r3 > minRadius ? minRadius : r3;\n            r0 = r0 < 0 ? 0 : r0;\n            r1 = r1 < 0 ? 0 : r1;\n            r2 = r2 < 0 ? 0 : r2;\n            r3 = r3 < 0 ? 0 : r3;\n            context.arc(left + r0, top + r0, r0, -Math.PI, -Math.PI / 2);\n            context.arc(left + width - r1, top + r1, r1, -Math.PI / 2, 0);\n            context.arc(left + width - r2, top + _height5 - r2, r2, 0, Math.PI / 2);\n            context.arc(left + r3, top + _height5 - r3, r3, Math.PI / 2, Math.PI);\n          } else {\n            context.moveTo(startX, item.y);\n            context.lineTo(startX + item.width, item.y);\n            context.lineTo(startX + item.width, opts.height - opts.area[2]);\n            context.lineTo(startX, opts.height - opts.area[2]);\n            context.lineTo(startX, item.y);\n            context.setLineWidth(1);\n            context.setStrokeStyle(strokeColor);\n          }\n          context.setFillStyle(fillColor);\n          context.closePath();\n          context.fill();\n        }\n      }\n      columnIndex += 1;\n    }\n    //缁樺埗鍖哄煙鍥炬暟鎹甛n    if (eachSeries.type == 'area') {\n      var _splitPointList = splitPoints(points, eachSeries);\n      for (var _i23 = 0; _i23 < _splitPointList.length; _i23++) {\n        var _points3 = _splitPointList[_i23];\n        // 缁樺埗鍖哄煙鏁版嵁\n        context.beginPath();\n        context.setStrokeStyle(eachSeries.color);\n        context.setStrokeStyle(hexToRgb(eachSeries.color, areaOption.opacity));\n        if (areaOption.gradient) {\n          var gradient = context.createLinearGradient(0, opts.area[0], 0, opts.height - opts.area[2]);\n          gradient.addColorStop('0', hexToRgb(eachSeries.color, areaOption.opacity));\n          gradient.addColorStop('1.0', hexToRgb(\"#FFFFFF\", 0.1));\n          context.setFillStyle(gradient);\n        } else {\n          context.setFillStyle(hexToRgb(eachSeries.color, areaOption.opacity));\n        }\n        context.setLineWidth(2 * opts.pix);\n        if (_points3.length > 1) {\n          var firstPoint = _points3[0];\n          var lastPoint = _points3[_points3.length - 1];\n          context.moveTo(firstPoint.x, firstPoint.y);\n          var startPoint = 0;\n          if (eachSeries.style === 'curve') {\n            for (var j = 0; j < _points3.length; j++) {\n              var _item21 = _points3[j];\n              if (startPoint == 0 && _item21.x > leftSpace) {\n                context.moveTo(_item21.x, _item21.y);\n                startPoint = 1;\n              }\n              if (j > 0 && _item21.x > leftSpace && _item21.x < rightSpace) {\n                var ctrlPoint = createCurveControlPoints(_points3, j - 1);\n                context.bezierCurveTo(ctrlPoint.ctrA.x, ctrlPoint.ctrA.y, ctrlPoint.ctrB.x, ctrlPoint.ctrB.y, _item21.x, _item21.y);\n              }\n            };\n          } else {\n            for (var _j8 = 0; _j8 < _points3.length; _j8++) {\n              var _item22 = _points3[_j8];\n              if (startPoint == 0 && _item22.x > leftSpace) {\n                context.moveTo(_item22.x, _item22.y);\n                startPoint = 1;\n              }\n              if (_j8 > 0 && _item22.x > leftSpace && _item22.x < rightSpace) {\n                context.lineTo(_item22.x, _item22.y);\n              }\n            };\n          }\n          context.lineTo(lastPoint.x, endY);\n          context.lineTo(firstPoint.x, endY);\n          context.lineTo(firstPoint.x, firstPoint.y);\n        } else {\n          var _item23 = _points3[0];\n          context.moveTo(_item23.x - eachSpacing / 2, _item23.y);\n          context.lineTo(_item23.x + eachSpacing / 2, _item23.y);\n          context.lineTo(_item23.x + eachSpacing / 2, endY);\n          context.lineTo(_item23.x - eachSpacing / 2, endY);\n          context.moveTo(_item23.x - eachSpacing / 2, _item23.y);\n        }\n        context.closePath();\n        context.fill();\n      }\n    }\n    // 缁樺埗鎶樼嚎鏁版嵁鍥綷n    if (eachSeries.type == 'line') {\n      var splitPointList = splitPoints(points, eachSeries);\n      splitPointList.forEach(function (points, index) {\n        if (eachSeries.lineType == 'dash') {\n          var dashLength = eachSeries.dashLength ? eachSeries.dashLength : 8;\n          dashLength *= opts.pix;\n          context.setLineDash([dashLength, dashLength]);\n        }\n        context.beginPath();\n        context.setStrokeStyle(eachSeries.color);\n        context.setLineWidth(lineOption.width * opts.pix);\n        if (points.length === 1) {\n          context.moveTo(points[0].x, points[0].y);\n          context.arc(points[0].x, points[0].y, 1, 0, 2 * Math.PI);\n        } else {\n          context.moveTo(points[0].x, points[0].y);\n          var _startPoint2 = 0;\n          if (eachSeries.style == 'curve') {\n            for (var _j9 = 0; _j9 < points.length; _j9++) {\n              var _item24 = points[_j9];\n              if (_startPoint2 == 0 && _item24.x > leftSpace) {\n                context.moveTo(_item24.x, _item24.y);\n                _startPoint2 = 1;\n              }\n              if (_j9 > 0 && _item24.x > leftSpace && _item24.x < rightSpace) {\n                var ctrlPoint = createCurveControlPoints(points, _j9 - 1);\n                context.bezierCurveTo(ctrlPoint.ctrA.x, ctrlPoint.ctrA.y, ctrlPoint.ctrB.x, ctrlPoint.ctrB.y,\n                _item24.x, _item24.y);\n              }\n            }\n          } else {\n            for (var _j10 = 0; _j10 < points.length; _j10++) {\n              var _item25 = points[_j10];\n              if (_startPoint2 == 0 && _item25.x > leftSpace) {\n                context.moveTo(_item25.x, _item25.y);\n                _startPoint2 = 1;\n              }\n              if (_j10 > 0 && _item25.x > leftSpace && _item25.x < rightSpace) {\n                context.lineTo(_item25.x, _item25.y);\n              }\n            }\n          }\n          context.moveTo(points[0].x, points[0].y);\n        }\n        context.stroke();\n        context.setLineDash([]);\n      });\n    }\n    // 缁樺埗鐐规暟鎹浘\n    if (eachSeries.type == 'point') {\n      eachSeries.addPoint = true;\n    }\n    if (eachSeries.addPoint == true && eachSeries.type !== 'column') {\n      drawPointShape(points, eachSeries.color, eachSeries.pointShape, context, opts);\n    }\n  });\n  if (opts.dataLabel !== false && process === 1) {\n    var columnIndex = 0;\n    series.forEach(function (eachSeries, seriesIndex) {\n      var ranges, minRange, maxRange;\n      ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n      minRange = ranges.pop();\n      maxRange = ranges.shift();\n      var data = eachSeries.data;\n      var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n      if (eachSeries.type !== 'column') {\n        drawPointText(points, eachSeries, config, context, opts);\n      } else {\n        points = fixColumeData(points, eachSpacing, columnLength, columnIndex, config, opts);\n        drawPointText(points, eachSeries, config, context, opts);\n        columnIndex += 1;\n      }\n    });\n  }\n  context.restore();\n  return {\n    xAxisPoints: xAxisPoints,\n    calPoints: calPoints,\n    eachSpacing: eachSpacing };\n\n}\n\n\nfunction drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints) {\n  var toolTipOption = opts.extra.tooltip || {};\n  if (toolTipOption.horizentalLine && opts.tooltip && process === 1 && (opts.type == 'line' || opts.type == 'area' || opts.type == 'column' || opts.type == 'mount' || opts.type == 'candle' || opts.type == 'mix')) {\n    drawToolTipHorizentalLine(opts, config, context, eachSpacing, xAxisPoints);\n  }\n  context.save();\n  if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {\n    context.translate(opts._scrollDistance_, 0);\n  }\n  if (opts.tooltip && opts.tooltip.textList && opts.tooltip.textList.length && process === 1) {\n    drawToolTip(opts.tooltip.textList, opts.tooltip.offset, opts, config, context, eachSpacing, xAxisPoints);\n  }\n  context.restore();\n\n}\n\nfunction drawXAxis(categories, opts, config, context) {\n\n  var xAxisData = opts.chartData.xAxisData,\n  xAxisPoints = xAxisData.xAxisPoints,\n  startX = xAxisData.startX,\n  endX = xAxisData.endX,\n  eachSpacing = xAxisData.eachSpacing;\n  var boundaryGap = 'center';\n  if (opts.type == 'bar' || opts.type == 'line' || opts.type == 'area' || opts.type == 'scatter' || opts.type == 'bubble') {\n    boundaryGap = opts.xAxis.boundaryGap;\n  }\n  var startY = opts.height - opts.area[2];\n  var endY = opts.area[0];\n\n  //缁樺埗婊氬姩鏉n  if (opts.enableScroll && opts.xAxis.scrollShow) {\n    var scrollY = opts.height - opts.area[2] + config.xAxisHeight;\n    var scrollScreenWidth = endX - startX;\n    var scrollTotalWidth = eachSpacing * (xAxisPoints.length - 1);\n    if (opts.type == 'mount' && opts.extra && opts.extra.mount && opts.extra.mount.widthRatio && opts.extra.mount.widthRatio > 1) {\n      if (opts.extra.mount.widthRatio > 2) opts.extra.mount.widthRatio = 2;\n      scrollTotalWidth += (opts.extra.mount.widthRatio - 1) * eachSpacing;\n    }\n    var scrollWidth = scrollScreenWidth * scrollScreenWidth / scrollTotalWidth;\n    var scrollLeft = 0;\n    if (opts._scrollDistance_) {\n      scrollLeft = -opts._scrollDistance_ * scrollScreenWidth / scrollTotalWidth;\n    }\n    context.beginPath();\n    context.setLineCap('round');\n    context.setLineWidth(6 * opts.pix);\n    context.setStrokeStyle(opts.xAxis.scrollBackgroundColor || \"#EFEBEF\");\n    context.moveTo(startX, scrollY);\n    context.lineTo(endX, scrollY);\n    context.stroke();\n    context.closePath();\n    context.beginPath();\n    context.setLineCap('round');\n    context.setLineWidth(6 * opts.pix);\n    context.setStrokeStyle(opts.xAxis.scrollColor || \"#A6A6A6\");\n    context.moveTo(startX + scrollLeft, scrollY);\n    context.lineTo(startX + scrollLeft + scrollWidth, scrollY);\n    context.stroke();\n    context.closePath();\n    context.setLineCap('butt');\n  }\n  context.save();\n  if (opts._scrollDistance_ && opts._scrollDistance_ !== 0) {\n    context.translate(opts._scrollDistance_, 0);\n  }\n  //缁樺埗X杞村埢搴︾嚎\n  if (opts.xAxis.calibration === true) {\n    context.setStrokeStyle(opts.xAxis.gridColor || \"#cccccc\");\n    context.setLineCap('butt');\n    context.setLineWidth(1 * opts.pix);\n    xAxisPoints.forEach(function (item, index) {\n      if (index > 0) {\n        context.beginPath();\n        context.moveTo(item - eachSpacing / 2, startY);\n        context.lineTo(item - eachSpacing / 2, startY + 3 * opts.pix);\n        context.closePath();\n        context.stroke();\n      }\n    });\n  }\n  //缁樺埗X杞寸綉鏍糪n  if (opts.xAxis.disableGrid !== true) {\n    context.setStrokeStyle(opts.xAxis.gridColor || \"#cccccc\");\n    context.setLineCap('butt');\n    context.setLineWidth(1 * opts.pix);\n    if (opts.xAxis.gridType == 'dash') {\n      context.setLineDash([opts.xAxis.dashLength * opts.pix, opts.xAxis.dashLength * opts.pix]);\n    }\n    opts.xAxis.gridEval = opts.xAxis.gridEval || 1;\n    xAxisPoints.forEach(function (item, index) {\n      if (index % opts.xAxis.gridEval == 0) {\n        context.beginPath();\n        context.moveTo(item, startY);\n        context.lineTo(item, endY);\n        context.stroke();\n      }\n    });\n    context.setLineDash([]);\n  }\n  //缁樺埗X杞存枃妗圽n  if (opts.xAxis.disabled !== true) {\n    // 瀵筙杞村垪琛ㄥ仛鎶界█澶勭悊\n    //榛樿鍏ㄩ儴鏄剧ずX杞存爣绛綷n    var maxXAxisListLength = categories.length;\n    //濡傛灉璁剧疆浜哫杞村崟灞忔暟閲廫n    if (opts.xAxis.labelCount) {\n      //濡傛灉璁剧疆X杞村瘑搴n      if (opts.xAxis.itemCount) {\n        maxXAxisListLength = Math.ceil(categories.length / opts.xAxis.itemCount * opts.xAxis.labelCount);\n      } else {\n        maxXAxisListLength = opts.xAxis.labelCount;\n      }\n      maxXAxisListLength -= 1;\n    }\n\n    var ratio = Math.ceil(categories.length / maxXAxisListLength);\n\n    var newCategories = [];\n    var cgLength = categories.length;\n    for (var i = 0; i < cgLength; i++) {\n      if (i % ratio !== 0) {\n        newCategories.push(\"\");\n      } else {\n        newCategories.push(categories[i]);\n      }\n    }\n    newCategories[cgLength - 1] = categories[cgLength - 1];\n    var xAxisFontSize = opts.xAxis.fontSize * opts.pix || config.fontSize;\n    if (config._xAxisTextAngle_ === 0) {\n      newCategories.forEach(function (item, index) {\n        var xitem = opts.xAxis.formatter ? opts.xAxis.formatter(item, index, opts) : item;\n        var offset = -measureText(String(xitem), xAxisFontSize, context) / 2;\n        if (boundaryGap == 'center') {\n          offset += eachSpacing / 2;\n        }\n        var scrollHeight = 0;\n        if (opts.xAxis.scrollShow) {\n          scrollHeight = 6 * opts.pix;\n        }\n        // 濡傛灉鍦ㄤ富瑙嗗浘鍖哄煙鍐匼n        var _scrollDistance_ = opts._scrollDistance_ || 0;\n        var truePoints = boundaryGap == 'center' ? xAxisPoints[index] + eachSpacing / 2 : xAxisPoints[index];\n        if (truePoints - Math.abs(_scrollDistance_) >= opts.area[3] && truePoints - Math.abs(_scrollDistance_) <= opts.width - opts.area[1]) {\n          context.beginPath();\n          context.setFontSize(xAxisFontSize);\n          context.setFillStyle(opts.xAxis.fontColor || opts.fontColor);\n          context.fillText(String(xitem), xAxisPoints[index] + offset, startY + xAxisFontSize + (config.xAxisHeight - scrollHeight - xAxisFontSize) / 2);\n          context.closePath();\n          context.stroke();\n        }\n      });\n    } else {\n      newCategories.forEach(function (item, index) {\n        var xitem = opts.xAxis.formatter ? opts.xAxis.formatter(item) : item;\n        // 濡傛灉鍦ㄤ富瑙嗗浘鍖哄煙鍐匼n        var _scrollDistance_ = opts._scrollDistance_ || 0;\n        var truePoints = boundaryGap == 'center' ? xAxisPoints[index] + eachSpacing / 2 : xAxisPoints[index];\n        if (truePoints - Math.abs(_scrollDistance_) >= opts.area[3] && truePoints - Math.abs(_scrollDistance_) <= opts.width - opts.area[1]) {\n          context.save();\n          context.beginPath();\n          context.setFontSize(xAxisFontSize);\n          context.setFillStyle(opts.xAxis.fontColor || opts.fontColor);\n          var textWidth = measureText(String(xitem), xAxisFontSize, context);\n          var offsetX = xAxisPoints[index];\n          if (boundaryGap == 'center') {\n            offsetX = xAxisPoints[index] + eachSpacing / 2;\n          }\n          var scrollHeight = 0;\n          if (opts.xAxis.scrollShow) {\n            scrollHeight = 6 * opts.pix;\n          }\n          var offsetY = startY + 6 * opts.pix + xAxisFontSize - xAxisFontSize * Math.abs(Math.sin(config._xAxisTextAngle_));\n          if (opts.xAxis.rotateAngle < 0) {\n            offsetX -= xAxisFontSize / 2;\n            textWidth = 0;\n          } else {\n            offsetX += xAxisFontSize / 2;\n            textWidth = -textWidth;\n          }\n          context.translate(offsetX, offsetY);\n          context.rotate(-1 * config._xAxisTextAngle_);\n          context.fillText(String(xitem), textWidth, 0);\n          context.closePath();\n          context.stroke();\n          context.restore();\n        }\n      });\n    }\n  }\n  context.restore();\n  //缁樺埗X杞磋酱绾縗n  if (opts.xAxis.axisLine) {\n    context.beginPath();\n    context.setStrokeStyle(opts.xAxis.axisLineColor);\n    context.setLineWidth(1 * opts.pix);\n    context.moveTo(startX, opts.height - opts.area[2]);\n    context.lineTo(endX, opts.height - opts.area[2]);\n    context.stroke();\n  }\n}\n\nfunction drawYAxisGrid(categories, opts, config, context) {\n  if (opts.yAxis.disableGrid === true) {\n    return;\n  }\n  var spacingValid = opts.height - opts.area[0] - opts.area[2];\n  var eachSpacing = spacingValid / opts.yAxis.splitNumber;\n  var startX = opts.area[3];\n  var xAxisPoints = opts.chartData.xAxisData.xAxisPoints,\n  xAxiseachSpacing = opts.chartData.xAxisData.eachSpacing;\n  var TotalWidth = xAxiseachSpacing * (xAxisPoints.length - 1);\n  if (opts.type == 'mount' && opts.extra && opts.extra.mount && opts.extra.mount.widthRatio && opts.extra.mount.widthRatio > 1) {\n    if (opts.extra.mount.widthRatio > 2) opts.extra.mount.widthRatio = 2;\n    TotalWidth += (opts.extra.mount.widthRatio - 1) * xAxiseachSpacing;\n  }\n  var endX = startX + TotalWidth;\n  var points = [];\n  var startY = 1;\n  if (opts.xAxis.axisLine === false) {\n    startY = 0;\n  }\n  for (var i = startY; i < opts.yAxis.splitNumber + 1; i++) {\n    points.push(opts.height - opts.area[2] - eachSpacing * i);\n  }\n  context.save();\n  if (opts._scrollDistance_ && opts._scrollDistance_ !== 0) {\n    context.translate(opts._scrollDistance_, 0);\n  }\n  if (opts.yAxis.gridType == 'dash') {\n    context.setLineDash([opts.yAxis.dashLength * opts.pix, opts.yAxis.dashLength * opts.pix]);\n  }\n  context.setStrokeStyle(opts.yAxis.gridColor);\n  context.setLineWidth(1 * opts.pix);\n  points.forEach(function (item, index) {\n    context.beginPath();\n    context.moveTo(startX, item);\n    context.lineTo(endX, item);\n    context.stroke();\n  });\n  context.setLineDash([]);\n  context.restore();\n}\n\nfunction drawYAxis(series, opts, config, context) {\n  if (opts.yAxis.disabled === true) {\n    return;\n  }\n  var spacingValid = opts.height - opts.area[0] - opts.area[2];\n  var eachSpacing = spacingValid / opts.yAxis.splitNumber;\n  var startX = opts.area[3];\n  var endX = opts.width - opts.area[1];\n  var endY = opts.height - opts.area[2];\n  // set YAxis background\n  context.beginPath();\n  context.setFillStyle(opts.background);\n  if (opts.enableScroll == true && opts.xAxis.scrollPosition && opts.xAxis.scrollPosition !== 'left') {\n    context.fillRect(0, 0, startX, endY + 2 * opts.pix);\n  }\n  if (opts.enableScroll == true && opts.xAxis.scrollPosition && opts.xAxis.scrollPosition !== 'right') {\n    context.fillRect(endX, 0, opts.width, endY + 2 * opts.pix);\n  }\n  context.closePath();\n  context.stroke();\n\n  var tStartLeft = opts.area[3];\n  var tStartRight = opts.width - opts.area[1];\n  var tStartCenter = opts.area[3] + (opts.width - opts.area[1] - opts.area[3]) / 2;\n  if (opts.yAxis.data) {var _loop4 = function _loop4(\n    i) {\n      var yData = opts.yAxis.data[i];\n      points = [];\n      if (yData.type === 'categories') {\n        for (var _i24 = 0; _i24 <= yData.categories.length; _i24++) {\n          points.push(opts.area[0] + spacingValid / yData.categories.length / 2 + spacingValid / yData.categories.length * _i24);\n        }\n      } else {\n        for (var _i25 = 0; _i25 <= opts.yAxis.splitNumber; _i25++) {\n          points.push(opts.area[0] + eachSpacing * _i25);\n        }\n      }\n      if (yData.disabled !== true) {\n        var rangesFormat = opts.chartData.yAxisData.rangesFormat[i];\n        var yAxisFontSize = yData.fontSize ? yData.fontSize * opts.pix : config.fontSize;\n        var yAxisWidth = opts.chartData.yAxisData.yAxisWidth[i];\n        var textAlign = yData.textAlign || \"right\";\n        //鐢籝杞村埢搴﹀強鏂囨\n        rangesFormat.forEach(function (item, index) {\n          var pos = points[index];\n          context.beginPath();\n          context.setFontSize(yAxisFontSize);\n          context.setLineWidth(1 * opts.pix);\n          context.setStrokeStyle(yData.axisLineColor || '#cccccc');\n          context.setFillStyle(yData.fontColor || opts.fontColor);\n          var tmpstrat = 0;\n          var gapwidth = 4 * opts.pix;\n          if (yAxisWidth.position == 'left') {\n            //鐢诲埢搴︾嚎\n            if (yData.calibration == true) {\n              context.moveTo(tStartLeft, pos);\n              context.lineTo(tStartLeft - 3 * opts.pix, pos);\n              gapwidth += 3 * opts.pix;\n            }\n            //鐢绘枃瀛梊n            switch (textAlign) {\n              case \"left\":\n                context.setTextAlign('left');\n                tmpstrat = tStartLeft - yAxisWidth.width;\n                break;\n              case \"right\":\n                context.setTextAlign('right');\n                tmpstrat = tStartLeft - gapwidth;\n                break;\n              default:\n                context.setTextAlign('center');\n                tmpstrat = tStartLeft - yAxisWidth.width / 2;}\n\n            context.fillText(String(item), tmpstrat, pos + yAxisFontSize / 2 - 3 * opts.pix);\n\n          } else if (yAxisWidth.position == 'right') {\n            //鐢诲埢搴︾嚎\n            if (yData.calibration == true) {\n              context.moveTo(tStartRight, pos);\n              context.lineTo(tStartRight + 3 * opts.pix, pos);\n              gapwidth += 3 * opts.pix;\n            }\n            switch (textAlign) {\n              case \"left\":\n                context.setTextAlign('left');\n                tmpstrat = tStartRight + gapwidth;\n                break;\n              case \"right\":\n                context.setTextAlign('right');\n                tmpstrat = tStartRight + yAxisWidth.width;\n                break;\n              default:\n                context.setTextAlign('center');\n                tmpstrat = tStartRight + yAxisWidth.width / 2;}\n\n            context.fillText(String(item), tmpstrat, pos + yAxisFontSize / 2 - 3 * opts.pix);\n          } else if (yAxisWidth.position == 'center') {\n            //鐢诲埢搴︾嚎\n            if (yData.calibration == true) {\n              context.moveTo(tStartCenter, pos);\n              context.lineTo(tStartCenter - 3 * opts.pix, pos);\n              gapwidth += 3 * opts.pix;\n            }\n            //鐢绘枃瀛梊n            switch (textAlign) {\n              case \"left\":\n                context.setTextAlign('left');\n                tmpstrat = tStartCenter - yAxisWidth.width;\n                break;\n              case \"right\":\n                context.setTextAlign('right');\n                tmpstrat = tStartCenter - gapwidth;\n                break;\n              default:\n                context.setTextAlign('center');\n                tmpstrat = tStartCenter - yAxisWidth.width / 2;}\n\n            context.fillText(String(item), tmpstrat, pos + yAxisFontSize / 2 - 3 * opts.pix);\n          }\n          context.closePath();\n          context.stroke();\n          context.setTextAlign('left');\n        });\n        //鐢籝杞磋酱绾縗n        if (yData.axisLine !== false) {\n          context.beginPath();\n          context.setStrokeStyle(yData.axisLineColor || '#cccccc');\n          context.setLineWidth(1 * opts.pix);\n          if (yAxisWidth.position == 'left') {\n            context.moveTo(tStartLeft, opts.height - opts.area[2]);\n            context.lineTo(tStartLeft, opts.area[0]);\n          } else if (yAxisWidth.position == 'right') {\n            context.moveTo(tStartRight, opts.height - opts.area[2]);\n            context.lineTo(tStartRight, opts.area[0]);\n          } else if (yAxisWidth.position == 'center') {\n            context.moveTo(tStartCenter, opts.height - opts.area[2]);\n            context.lineTo(tStartCenter, opts.area[0]);\n          }\n          context.stroke();\n        }\n        //鐢籝杞存爣棰榎n        if (opts.yAxis.showTitle) {\n          var titleFontSize = yData.titleFontSize * opts.pix || config.fontSize;\n          var title = yData.title;\n          context.beginPath();\n          context.setFontSize(titleFontSize);\n          context.setFillStyle(yData.titleFontColor || opts.fontColor);\n          if (yAxisWidth.position == 'left') {\n            context.fillText(title, tStartLeft - measureText(title, titleFontSize, context) / 2 + (yData.titleOffsetX || 0), opts.area[0] - (10 - (yData.titleOffsetY || 0)) * opts.pix);\n          } else if (yAxisWidth.position == 'right') {\n            context.fillText(title, tStartRight - measureText(title, titleFontSize, context) / 2 + (yData.titleOffsetX || 0), opts.area[0] - (10 - (yData.titleOffsetY || 0)) * opts.pix);\n          } else if (yAxisWidth.position == 'center') {\n            context.fillText(title, tStartCenter - measureText(title, titleFontSize, context) / 2 + (yData.titleOffsetX || 0), opts.area[0] - (10 - (yData.titleOffsetY || 0)) * opts.pix);\n          }\n          context.closePath();\n          context.stroke();\n        }\n        if (yAxisWidth.position == 'left') {\n          tStartLeft -= yAxisWidth.width + opts.yAxis.padding * opts.pix;\n        } else {\n          tStartRight += yAxisWidth.width + opts.yAxis.padding * opts.pix;\n        }\n      }};for (var i = 0; i < opts.yAxis.data.length; i++) {var points;_loop4(i);\n    }\n  }\n\n}\n\nfunction drawLegend(series, opts, config, context, chartData) {\n  if (opts.legend.show === false) {\n    return;\n  }\n  var legendData = chartData.legendData;\n  var legendList = legendData.points;\n  var legendArea = legendData.area;\n  var padding = opts.legend.padding * opts.pix;\n  var fontSize = opts.legend.fontSize * opts.pix;\n  var shapeWidth = 15 * opts.pix;\n  var shapeRight = 5 * opts.pix;\n  var itemGap = opts.legend.itemGap * opts.pix;\n  var lineHeight = Math.max(opts.legend.lineHeight * opts.pix, fontSize);\n  //鐢昏儗鏅強杈规\n  context.beginPath();\n  context.setLineWidth(opts.legend.borderWidth * opts.pix);\n  context.setStrokeStyle(opts.legend.borderColor);\n  context.setFillStyle(opts.legend.backgroundColor);\n  context.moveTo(legendArea.start.x, legendArea.start.y);\n  context.rect(legendArea.start.x, legendArea.start.y, legendArea.width, legendArea.height);\n  context.closePath();\n  context.fill();\n  context.stroke();\n  legendList.forEach(function (itemList, listIndex) {\n    var width = 0;\n    var height = 0;\n    width = legendData.widthArr[listIndex];\n    height = legendData.heightArr[listIndex];\n    var startX = 0;\n    var startY = 0;\n    if (opts.legend.position == 'top' || opts.legend.position == 'bottom') {\n      switch (opts.legend.float) {\n        case 'left':\n          startX = legendArea.start.x + padding;\n          break;\n        case 'right':\n          startX = legendArea.start.x + legendArea.width - width;\n          break;\n        default:\n          startX = legendArea.start.x + (legendArea.width - width) / 2;}\n\n      startY = legendArea.start.y + padding + listIndex * lineHeight;\n    } else {\n      if (listIndex == 0) {\n        width = 0;\n      } else {\n        width = legendData.widthArr[listIndex - 1];\n      }\n      startX = legendArea.start.x + padding + width;\n      startY = legendArea.start.y + padding + (legendArea.height - height) / 2;\n    }\n    context.setFontSize(config.fontSize);\n    for (var i = 0; i < itemList.length; i++) {\n      var item = itemList[i];\n      item.area = [0, 0, 0, 0];\n      item.area[0] = startX;\n      item.area[1] = startY;\n      item.area[3] = startY + lineHeight;\n      context.beginPath();\n      context.setLineWidth(1 * opts.pix);\n      context.setStrokeStyle(item.show ? item.color : opts.legend.hiddenColor);\n      context.setFillStyle(item.show ? item.color : opts.legend.hiddenColor);\n      switch (item.legendShape) {\n        case 'line':\n          context.moveTo(startX, startY + 0.5 * lineHeight - 2 * opts.pix);\n          context.fillRect(startX, startY + 0.5 * lineHeight - 2 * opts.pix, 15 * opts.pix, 4 * opts.pix);\n          break;\n        case 'triangle':\n          context.moveTo(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight - 5 * opts.pix);\n          context.lineTo(startX + 2.5 * opts.pix, startY + 0.5 * lineHeight + 5 * opts.pix);\n          context.lineTo(startX + 12.5 * opts.pix, startY + 0.5 * lineHeight + 5 * opts.pix);\n          context.lineTo(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight - 5 * opts.pix);\n          break;\n        case 'diamond':\n          context.moveTo(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight - 5 * opts.pix);\n          context.lineTo(startX + 2.5 * opts.pix, startY + 0.5 * lineHeight);\n          context.lineTo(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight + 5 * opts.pix);\n          context.lineTo(startX + 12.5 * opts.pix, startY + 0.5 * lineHeight);\n          context.lineTo(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight - 5 * opts.pix);\n          break;\n        case 'circle':\n          context.moveTo(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight);\n          context.arc(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight, 5 * opts.pix, 0, 2 * Math.PI);\n          break;\n        case 'rect':\n          context.moveTo(startX, startY + 0.5 * lineHeight - 5 * opts.pix);\n          context.fillRect(startX, startY + 0.5 * lineHeight - 5 * opts.pix, 15 * opts.pix, 10 * opts.pix);\n          break;\n        case 'square':\n          context.moveTo(startX + 5 * opts.pix, startY + 0.5 * lineHeight - 5 * opts.pix);\n          context.fillRect(startX + 5 * opts.pix, startY + 0.5 * lineHeight - 5 * opts.pix, 10 * opts.pix, 10 * opts.pix);\n          break;\n        case 'none':\n          break;\n        default:\n          context.moveTo(startX, startY + 0.5 * lineHeight - 5 * opts.pix);\n          context.fillRect(startX, startY + 0.5 * lineHeight - 5 * opts.pix, 15 * opts.pix, 10 * opts.pix);}\n\n      context.closePath();\n      context.fill();\n      context.stroke();\n      startX += shapeWidth + shapeRight;\n      var fontTrans = 0.5 * lineHeight + 0.5 * fontSize - 2;\n      var legendText = item.legendText ? item.legendText : item.name;\n      context.beginPath();\n      context.setFontSize(fontSize);\n      context.setFillStyle(item.show ? opts.legend.fontColor : opts.legend.hiddenColor);\n      context.fillText(legendText, startX, startY + fontTrans);\n      context.closePath();\n      context.stroke();\n      if (opts.legend.position == 'top' || opts.legend.position == 'bottom') {\n        startX += measureText(legendText, fontSize, context) + itemGap;\n        item.area[2] = startX;\n      } else {\n        item.area[2] = startX + measureText(legendText, fontSize, context) + itemGap;;\n        startX -= shapeWidth + shapeRight;\n        startY += lineHeight;\n      }\n    }\n  });\n}\n\nfunction drawPieDataPoints(series, opts, config, context) {\n  var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n  var pieOption = assign({}, {\n    activeOpacity: 0.5,\n    activeRadius: 10,\n    offsetAngle: 0,\n    labelWidth: 15,\n    ringWidth: 30,\n    customRadius: 0,\n    border: false,\n    borderWidth: 2,\n    borderColor: '#FFFFFF',\n    centerColor: '#FFFFFF',\n    linearType: 'none',\n    customColor: [] },\n  opts.type == \"pie\" ? opts.extra.pie : opts.extra.ring);\n  var centerPosition = {\n    x: opts.area[3] + (opts.width - opts.area[1] - opts.area[3]) / 2,\n    y: opts.area[0] + (opts.height - opts.area[0] - opts.area[2]) / 2 };\n\n  if (config.pieChartLinePadding == 0) {\n    config.pieChartLinePadding = pieOption.activeRadius * opts.pix;\n  }\n\n  var radius = Math.min((opts.width - opts.area[1] - opts.area[3]) / 2 - config.pieChartLinePadding - config.pieChartTextPadding - config._pieTextMaxLength_, (opts.height - opts.area[0] - opts.area[2]) / 2 - config.pieChartLinePadding - config.pieChartTextPadding);\n  radius = radius < 10 ? 10 : radius;\n  if (pieOption.customRadius > 0) {\n    radius = pieOption.customRadius * opts.pix;\n  }\n  series = getPieDataPoints(series, radius, process);\n  var activeRadius = pieOption.activeRadius * opts.pix;\n  pieOption.customColor = fillCustomColor(pieOption.linearType, pieOption.customColor, series, config);\n  series = series.map(function (eachSeries) {\n    eachSeries._start_ += pieOption.offsetAngle * Math.PI / 180;\n    return eachSeries;\n  });\n  series.forEach(function (eachSeries, seriesIndex) {\n    if (opts.tooltip) {\n      if (opts.tooltip.index == seriesIndex) {\n        context.beginPath();\n        context.setFillStyle(hexToRgb(eachSeries.color, pieOption.activeOpacity || 0.5));\n        context.moveTo(centerPosition.x, centerPosition.y);\n        context.arc(centerPosition.x, centerPosition.y, eachSeries._radius_ + activeRadius, eachSeries._start_, eachSeries._start_ + 2 * eachSeries._proportion_ * Math.PI);\n        context.closePath();\n        context.fill();\n      }\n    }\n    context.beginPath();\n    context.setLineWidth(pieOption.borderWidth * opts.pix);\n    context.lineJoin = \"round\";\n    context.setStrokeStyle(pieOption.borderColor);\n    var fillcolor = eachSeries.color;\n    if (pieOption.linearType == 'custom') {\n      var grd;\n      if (context.createCircularGradient) {\n        grd = context.createCircularGradient(centerPosition.x, centerPosition.y, eachSeries._radius_);\n      } else {\n        grd = context.createRadialGradient(centerPosition.x, centerPosition.y, 0, centerPosition.x, centerPosition.y, eachSeries._radius_);\n      }\n      grd.addColorStop(0, hexToRgb(pieOption.customColor[eachSeries.linearIndex], 1));\n      grd.addColorStop(1, hexToRgb(eachSeries.color, 1));\n      fillcolor = grd;\n    }\n    context.setFillStyle(fillcolor);\n    context.moveTo(centerPosition.x, centerPosition.y);\n    context.arc(centerPosition.x, centerPosition.y, eachSeries._radius_, eachSeries._start_, eachSeries._start_ + 2 * eachSeries._proportion_ * Math.PI);\n    context.closePath();\n    context.fill();\n    if (pieOption.border == true) {\n      context.stroke();\n    }\n  });\n  if (opts.type === 'ring') {\n    var innerPieWidth = radius * 0.6;\n    if (typeof pieOption.ringWidth === 'number' && pieOption.ringWidth > 0) {\n      innerPieWidth = Math.max(0, radius - pieOption.ringWidth * opts.pix);\n    }\n    context.beginPath();\n    context.setFillStyle(pieOption.centerColor);\n    context.moveTo(centerPosition.x, centerPosition.y);\n    context.arc(centerPosition.x, centerPosition.y, innerPieWidth, 0, 2 * Math.PI);\n    context.closePath();\n    context.fill();\n  }\n  if (opts.dataLabel !== false && process === 1) {\n    drawPieText(series, opts, config, context, radius, centerPosition);\n  }\n  if (process === 1 && opts.type === 'ring') {\n    drawRingTitle(opts, config, context, centerPosition);\n  }\n  return {\n    center: centerPosition,\n    radius: radius,\n    series: series };\n\n}\n\nfunction drawRoseDataPoints(series, opts, config, context) {\n  var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n  var roseOption = assign({}, {\n    type: 'area',\n    activeOpacity: 0.5,\n    activeRadius: 10,\n    offsetAngle: 0,\n    labelWidth: 15,\n    border: false,\n    borderWidth: 2,\n    borderColor: '#FFFFFF',\n    linearType: 'none',\n    customColor: [] },\n  opts.extra.rose);\n  if (config.pieChartLinePadding == 0) {\n    config.pieChartLinePadding = roseOption.activeRadius * opts.pix;\n  }\n  var centerPosition = {\n    x: opts.area[3] + (opts.width - opts.area[1] - opts.area[3]) / 2,\n    y: opts.area[0] + (opts.height - opts.area[0] - opts.area[2]) / 2 };\n\n  var radius = Math.min((opts.width - opts.area[1] - opts.area[3]) / 2 - config.pieChartLinePadding - config.pieChartTextPadding - config._pieTextMaxLength_, (opts.height - opts.area[0] - opts.area[2]) / 2 - config.pieChartLinePadding - config.pieChartTextPadding);\n  radius = radius < 10 ? 10 : radius;\n  var minRadius = roseOption.minRadius || radius * 0.5;\n  series = getRoseDataPoints(series, roseOption.type, minRadius, radius, process);\n  var activeRadius = roseOption.activeRadius * opts.pix;\n  roseOption.customColor = fillCustomColor(roseOption.linearType, roseOption.customColor, series, config);\n  series = series.map(function (eachSeries) {\n    eachSeries._start_ += (roseOption.offsetAngle || 0) * Math.PI / 180;\n    return eachSeries;\n  });\n  series.forEach(function (eachSeries, seriesIndex) {\n    if (opts.tooltip) {\n      if (opts.tooltip.index == seriesIndex) {\n        context.beginPath();\n        context.setFillStyle(hexToRgb(eachSeries.color, roseOption.activeOpacity || 0.5));\n        context.moveTo(centerPosition.x, centerPosition.y);\n        context.arc(centerPosition.x, centerPosition.y, activeRadius + eachSeries._radius_, eachSeries._start_, eachSeries._start_ + 2 * eachSeries._rose_proportion_ * Math.PI);\n        context.closePath();\n        context.fill();\n      }\n    }\n    context.beginPath();\n    context.setLineWidth(roseOption.borderWidth * opts.pix);\n    context.lineJoin = \"round\";\n    context.setStrokeStyle(roseOption.borderColor);\n    var fillcolor = eachSeries.color;\n    if (roseOption.linearType == 'custom') {\n      var grd;\n      if (context.createCircularGradient) {\n        grd = context.createCircularGradient(centerPosition.x, centerPosition.y, eachSeries._radius_);\n      } else {\n        grd = context.createRadialGradient(centerPosition.x, centerPosition.y, 0, centerPosition.x, centerPosition.y, eachSeries._radius_);\n      }\n      grd.addColorStop(0, hexToRgb(roseOption.customColor[eachSeries.linearIndex], 1));\n      grd.addColorStop(1, hexToRgb(eachSeries.color, 1));\n      fillcolor = grd;\n    }\n    context.setFillStyle(fillcolor);\n    context.moveTo(centerPosition.x, centerPosition.y);\n    context.arc(centerPosition.x, centerPosition.y, eachSeries._radius_, eachSeries._start_, eachSeries._start_ + 2 * eachSeries._rose_proportion_ * Math.PI);\n    context.closePath();\n    context.fill();\n    if (roseOption.border == true) {\n      context.stroke();\n    }\n  });\n\n  if (opts.dataLabel !== false && process === 1) {\n    drawPieText(series, opts, config, context, radius, centerPosition);\n  }\n  return {\n    center: centerPosition,\n    radius: radius,\n    series: series };\n\n}\n\nfunction drawArcbarDataPoints(series, opts, config, context) {\n  var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n  var arcbarOption = assign({}, {\n    startAngle: 0.75,\n    endAngle: 0.25,\n    type: 'default',\n    direction: 'cw',\n    lineCap: 'round',\n    width: 12,\n    gap: 2,\n    linearType: 'none',\n    customColor: [] },\n  opts.extra.arcbar);\n  series = getArcbarDataPoints(series, arcbarOption, process);\n  var centerPosition;\n  if (arcbarOption.centerX || arcbarOption.centerY) {\n    centerPosition = {\n      x: arcbarOption.centerX ? arcbarOption.centerX : opts.width / 2,\n      y: arcbarOption.centerY ? arcbarOption.centerY : opts.height / 2 };\n\n  } else {\n    centerPosition = {\n      x: opts.width / 2,\n      y: opts.height / 2 };\n\n  }\n  var radius;\n  if (arcbarOption.radius) {\n    radius = arcbarOption.radius;\n  } else {\n    radius = Math.min(centerPosition.x, centerPosition.y);\n    radius -= 5 * opts.pix;\n    radius -= arcbarOption.width / 2;\n  }\n  radius = radius < 10 ? 10 : radius;\n  arcbarOption.customColor = fillCustomColor(arcbarOption.linearType, arcbarOption.customColor, series, config);\n\n  for (var i = 0; i < series.length; i++) {\n    var eachSeries = series[i];\n    //鑳屾櫙棰滆壊\n    context.setLineWidth(arcbarOption.width * opts.pix);\n    context.setStrokeStyle(arcbarOption.backgroundColor || '#E9E9E9');\n    context.setLineCap(arcbarOption.lineCap);\n    context.beginPath();\n    if (arcbarOption.type == 'default') {\n      context.arc(centerPosition.x, centerPosition.y, radius - (arcbarOption.width * opts.pix + arcbarOption.gap * opts.pix) * i, arcbarOption.startAngle * Math.PI, arcbarOption.endAngle * Math.PI, arcbarOption.direction == 'ccw');\n    } else {\n      context.arc(centerPosition.x, centerPosition.y, radius - (arcbarOption.width * opts.pix + arcbarOption.gap * opts.pix) * i, 0, 2 * Math.PI, arcbarOption.direction == 'ccw');\n    }\n    context.stroke();\n    //杩涘害鏉n    var fillColor = eachSeries.color;\n    if (arcbarOption.linearType == 'custom') {\n      var grd = context.createLinearGradient(centerPosition.x - radius, centerPosition.y, centerPosition.x + radius, centerPosition.y);\n      grd.addColorStop(1, hexToRgb(arcbarOption.customColor[eachSeries.linearIndex], 1));\n      grd.addColorStop(0, hexToRgb(eachSeries.color, 1));\n      fillColor = grd;\n    }\n    context.setLineWidth(arcbarOption.width * opts.pix);\n    context.setStrokeStyle(fillColor);\n    context.setLineCap(arcbarOption.lineCap);\n    context.beginPath();\n    context.arc(centerPosition.x, centerPosition.y, radius - (arcbarOption.width * opts.pix + arcbarOption.gap * opts.pix) * i, arcbarOption.startAngle * Math.PI, eachSeries._proportion_ * Math.PI, arcbarOption.direction == 'ccw');\n    context.stroke();\n  }\n  drawRingTitle(opts, config, context, centerPosition);\n  return {\n    center: centerPosition,\n    radius: radius,\n    series: series };\n\n}\n\nfunction drawGaugeDataPoints(categories, series, opts, config, context) {\n  var process = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 1;\n  var gaugeOption = assign({}, {\n    type: 'default',\n    startAngle: 0.75,\n    endAngle: 0.25,\n    width: 15,\n    labelOffset: 13,\n    splitLine: {\n      fixRadius: 0,\n      splitNumber: 10,\n      width: 15,\n      color: '#FFFFFF',\n      childNumber: 5,\n      childWidth: 5 },\n\n    pointer: {\n      width: 15,\n      color: 'auto' } },\n\n  opts.extra.gauge);\n  if (gaugeOption.oldAngle == undefined) {\n    gaugeOption.oldAngle = gaugeOption.startAngle;\n  }\n  if (gaugeOption.oldData == undefined) {\n    gaugeOption.oldData = 0;\n  }\n  categories = getGaugeAxisPoints(categories, gaugeOption.startAngle, gaugeOption.endAngle);\n  var centerPosition = {\n    x: opts.width / 2,\n    y: opts.height / 2 };\n\n  var radius = Math.min(centerPosition.x, centerPosition.y);\n  radius -= 5 * opts.pix;\n  radius -= gaugeOption.width / 2;\n  radius = radius < 10 ? 10 : radius;\n  var innerRadius = radius - gaugeOption.width;\n  var totalAngle = 0;\n  //鍒ゆ柇浠〃鐩樼殑鏍峰紡锛歞efault鐧惧害鏍峰紡锛宲rogress鏂版牱寮廫n  if (gaugeOption.type == 'progress') {\n    //## 绗竴姝ョ敾涓績鍦嗗舰鑳屾櫙鍜岃繘搴︽潯鑳屾櫙\n    //涓績鍦嗗舰鑳屾櫙\n    var pieRadius = radius - gaugeOption.width * 3;\n    context.beginPath();\n    var gradient = context.createLinearGradient(centerPosition.x, centerPosition.y - pieRadius, centerPosition.x, centerPosition.y + pieRadius);\n    //閰嶇疆娓愬彉濉厖锛堣捣鐐癸細涓績鐐瑰悜涓婂噺鍗婂緞锛涚粨鏉熺偣涓績鐐瑰悜涓嬪姞鍗婂緞锛塡n    gradient.addColorStop('0', hexToRgb(series[0].color, 0.3));\n    gradient.addColorStop('1.0', hexToRgb(\"#FFFFFF\", 0.1));\n    context.setFillStyle(gradient);\n    context.arc(centerPosition.x, centerPosition.y, pieRadius, 0, 2 * Math.PI, false);\n    context.fill();\n    //鐢昏繘搴︽潯鑳屾櫙\n    context.setLineWidth(gaugeOption.width);\n    context.setStrokeStyle(hexToRgb(series[0].color, 0.3));\n    context.setLineCap('round');\n    context.beginPath();\n    context.arc(centerPosition.x, centerPosition.y, innerRadius, gaugeOption.startAngle * Math.PI, gaugeOption.endAngle * Math.PI, false);\n    context.stroke();\n    //## 绗簩姝ョ敾鍒诲害绾縗n    totalAngle = gaugeOption.startAngle - gaugeOption.endAngle + 1;\n    var splitAngle = totalAngle / gaugeOption.splitLine.splitNumber;\n    var childAngle = totalAngle / gaugeOption.splitLine.splitNumber / gaugeOption.splitLine.childNumber;\n    var startX = -radius - gaugeOption.width * 0.5 - gaugeOption.splitLine.fixRadius;\n    var endX = -radius - gaugeOption.width - gaugeOption.splitLine.fixRadius + gaugeOption.splitLine.width;\n    context.save();\n    context.translate(centerPosition.x, centerPosition.y);\n    context.rotate((gaugeOption.startAngle - 1) * Math.PI);\n    var len = gaugeOption.splitLine.splitNumber * gaugeOption.splitLine.childNumber + 1;\n    var proc = series[0].data * process;\n    for (var i = 0; i < len; i++) {\n      context.beginPath();\n      //鍒诲害绾块殢杩涘害鍙樿壊\n      if (proc > i / len) {\n        context.setStrokeStyle(hexToRgb(series[0].color, 1));\n      } else {\n        context.setStrokeStyle(hexToRgb(series[0].color, 0.3));\n      }\n      context.setLineWidth(3 * opts.pix);\n      context.moveTo(startX, 0);\n      context.lineTo(endX, 0);\n      context.stroke();\n      context.rotate(childAngle * Math.PI);\n    }\n    context.restore();\n    //## 绗笁姝ョ敾杩涘害鏉n    series = getGaugeArcbarDataPoints(series, gaugeOption, process);\n    context.setLineWidth(gaugeOption.width);\n    context.setStrokeStyle(series[0].color);\n    context.setLineCap('round');\n    context.beginPath();\n    context.arc(centerPosition.x, centerPosition.y, innerRadius, gaugeOption.startAngle * Math.PI, series[0]._proportion_ * Math.PI, false);\n    context.stroke();\n    //## 绗洓姝ョ敾鎸囬拡\n    var pointerRadius = radius - gaugeOption.width * 2.5;\n    context.save();\n    context.translate(centerPosition.x, centerPosition.y);\n    context.rotate((series[0]._proportion_ - 1) * Math.PI);\n    context.beginPath();\n    context.setLineWidth(gaugeOption.width / 3);\n    var gradient3 = context.createLinearGradient(0, -pointerRadius * 0.6, 0, pointerRadius * 0.6);\n    gradient3.addColorStop('0', hexToRgb('#FFFFFF', 0));\n    gradient3.addColorStop('0.5', hexToRgb(series[0].color, 1));\n    gradient3.addColorStop('1.0', hexToRgb('#FFFFFF', 0));\n    context.setStrokeStyle(gradient3);\n    context.arc(0, 0, pointerRadius, 0.85 * Math.PI, 1.15 * Math.PI, false);\n    context.stroke();\n    context.beginPath();\n    context.setLineWidth(1);\n    context.setStrokeStyle(series[0].color);\n    context.setFillStyle(series[0].color);\n    context.moveTo(-pointerRadius - gaugeOption.width / 3 / 2, -4);\n    context.lineTo(-pointerRadius - gaugeOption.width / 3 / 2 - 4, 0);\n    context.lineTo(-pointerRadius - gaugeOption.width / 3 / 2, 4);\n    context.lineTo(-pointerRadius - gaugeOption.width / 3 / 2, -4);\n    context.stroke();\n    context.fill();\n    context.restore();\n    //default鐧惧害鏍峰紡\n  } else {\n    //鐢昏儗鏅痋n    context.setLineWidth(gaugeOption.width);\n    context.setLineCap('butt');\n    for (var _i26 = 0; _i26 < categories.length; _i26++) {\n      var eachCategories = categories[_i26];\n      context.beginPath();\n      context.setStrokeStyle(eachCategories.color);\n      context.arc(centerPosition.x, centerPosition.y, radius, eachCategories._startAngle_ * Math.PI, eachCategories._endAngle_ * Math.PI, false);\n      context.stroke();\n    }\n    context.save();\n    //鐢诲埢搴︾嚎\n    totalAngle = gaugeOption.startAngle - gaugeOption.endAngle + 1;\n    var _splitAngle = totalAngle / gaugeOption.splitLine.splitNumber;\n    var _childAngle = totalAngle / gaugeOption.splitLine.splitNumber / gaugeOption.splitLine.childNumber;\n    var _startX2 = -radius - gaugeOption.width * 0.5 - gaugeOption.splitLine.fixRadius;\n    var _endX = -radius - gaugeOption.width * 0.5 - gaugeOption.splitLine.fixRadius + gaugeOption.splitLine.width;\n    var childendX = -radius - gaugeOption.width * 0.5 - gaugeOption.splitLine.fixRadius + gaugeOption.splitLine.childWidth;\n    context.translate(centerPosition.x, centerPosition.y);\n    context.rotate((gaugeOption.startAngle - 1) * Math.PI);\n    for (var _i27 = 0; _i27 < gaugeOption.splitLine.splitNumber + 1; _i27++) {\n      context.beginPath();\n      context.setStrokeStyle(gaugeOption.splitLine.color);\n      context.setLineWidth(2 * opts.pix);\n      context.moveTo(_startX2, 0);\n      context.lineTo(_endX, 0);\n      context.stroke();\n      context.rotate(_splitAngle * Math.PI);\n    }\n    context.restore();\n    context.save();\n    context.translate(centerPosition.x, centerPosition.y);\n    context.rotate((gaugeOption.startAngle - 1) * Math.PI);\n    for (var _i28 = 0; _i28 < gaugeOption.splitLine.splitNumber * gaugeOption.splitLine.childNumber + 1; _i28++) {\n      context.beginPath();\n      context.setStrokeStyle(gaugeOption.splitLine.color);\n      context.setLineWidth(1 * opts.pix);\n      context.moveTo(_startX2, 0);\n      context.lineTo(childendX, 0);\n      context.stroke();\n      context.rotate(_childAngle * Math.PI);\n    }\n    context.restore();\n    //鐢绘寚閽圽n    series = getGaugeDataPoints(series, categories, gaugeOption, process);\n    for (var _i29 = 0; _i29 < series.length; _i29++) {\n      var eachSeries = series[_i29];\n      context.save();\n      context.translate(centerPosition.x, centerPosition.y);\n      context.rotate((eachSeries._proportion_ - 1) * Math.PI);\n      context.beginPath();\n      context.setFillStyle(eachSeries.color);\n      context.moveTo(gaugeOption.pointer.width, 0);\n      context.lineTo(0, -gaugeOption.pointer.width / 2);\n      context.lineTo(-innerRadius, 0);\n      context.lineTo(0, gaugeOption.pointer.width / 2);\n      context.lineTo(gaugeOption.pointer.width, 0);\n      context.closePath();\n      context.fill();\n      context.beginPath();\n      context.setFillStyle('#FFFFFF');\n      context.arc(0, 0, gaugeOption.pointer.width / 6, 0, 2 * Math.PI, false);\n      context.fill();\n      context.restore();\n    }\n    if (opts.dataLabel !== false) {\n      drawGaugeLabel(gaugeOption, radius, centerPosition, opts, config, context);\n    }\n  }\n  //鐢讳华琛ㄧ洏鏍囬锛屽壇鏍囬\n  drawRingTitle(opts, config, context, centerPosition);\n  if (process === 1 && opts.type === 'gauge') {\n    opts.extra.gauge.oldAngle = series[0]._proportion_;\n    opts.extra.gauge.oldData = series[0].data;\n  }\n  return {\n    center: centerPosition,\n    radius: radius,\n    innerRadius: innerRadius,\n    categories: categories,\n    totalAngle: totalAngle };\n\n}\n\nfunction drawRadarDataPoints(series, opts, config, context) {\n  var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n  var radarOption = assign({}, {\n    gridColor: '#cccccc',\n    gridType: 'radar',\n    gridEval: 1,\n    axisLabel: false,\n    axisLabelTofix: 0,\n    labelColor: '#666666',\n    labelPointShow: false,\n    labelPointRadius: 3,\n    labelPointColor: '#cccccc',\n    opacity: 0.2,\n    gridCount: 3,\n    border: false,\n    borderWidth: 2,\n    linearType: 'none',\n    customColor: [] },\n  opts.extra.radar);\n  var coordinateAngle = getRadarCoordinateSeries(opts.categories.length);\n  var centerPosition = {\n    x: opts.area[3] + (opts.width - opts.area[1] - opts.area[3]) / 2,\n    y: opts.area[0] + (opts.height - opts.area[0] - opts.area[2]) / 2 };\n\n  var xr = (opts.width - opts.area[1] - opts.area[3]) / 2;\n  var yr = (opts.height - opts.area[0] - opts.area[2]) / 2;\n  var radius = Math.min(xr - (getMaxTextListLength(opts.categories, config.fontSize, context) + config.radarLabelTextMargin), yr - config.radarLabelTextMargin);\n  radius -= config.radarLabelTextMargin * opts.pix;\n  radius = radius < 10 ? 10 : radius;\n  // 鐢诲垎鍓茬嚎\n  context.beginPath();\n  context.setLineWidth(1 * opts.pix);\n  context.setStrokeStyle(radarOption.gridColor);\n  coordinateAngle.forEach(function (angle, index) {\n    var pos = convertCoordinateOrigin(radius * Math.cos(angle), radius * Math.sin(angle), centerPosition);\n    context.moveTo(centerPosition.x, centerPosition.y);\n    if (index % radarOption.gridEval == 0) {\n      context.lineTo(pos.x, pos.y);\n    }\n  });\n  context.stroke();\n  context.closePath();\n\n  // 鐢昏儗鏅綉鏍糪n  var _loop = function _loop(i) {\n    var startPos = {};\n    context.beginPath();\n    context.setLineWidth(1 * opts.pix);\n    context.setStrokeStyle(radarOption.gridColor);\n    if (radarOption.gridType == 'radar') {\n      coordinateAngle.forEach(function (angle, index) {\n        var pos = convertCoordinateOrigin(radius / radarOption.gridCount * i * Math.cos(angle), radius /\n        radarOption.gridCount * i * Math.sin(angle), centerPosition);\n        if (index === 0) {\n          startPos = pos;\n          context.moveTo(pos.x, pos.y);\n        } else {\n          context.lineTo(pos.x, pos.y);\n        }\n      });\n      context.lineTo(startPos.x, startPos.y);\n    } else {\n      var pos = convertCoordinateOrigin(radius / radarOption.gridCount * i * Math.cos(1.5), radius / radarOption.gridCount * i * Math.sin(1.5), centerPosition);\n      context.arc(centerPosition.x, centerPosition.y, centerPosition.y - pos.y, 0, 2 * Math.PI, false);\n    }\n    context.stroke();\n    context.closePath();\n  };\n  for (var i = 1; i <= radarOption.gridCount; i++) {\n    _loop(i);\n  }\n  radarOption.customColor = fillCustomColor(radarOption.linearType, radarOption.customColor, series, config);\n  var radarDataPoints = getRadarDataPoints(coordinateAngle, centerPosition, radius, series, opts, process);\n  radarDataPoints.forEach(function (eachSeries, seriesIndex) {\n    // 缁樺埗鍖哄煙鏁版嵁\n    context.beginPath();\n    context.setLineWidth(radarOption.borderWidth * opts.pix);\n    context.setStrokeStyle(eachSeries.color);\n\n    var fillcolor = hexToRgb(eachSeries.color, radarOption.opacity);\n    if (radarOption.linearType == 'custom') {\n      var grd;\n      if (context.createCircularGradient) {\n        grd = context.createCircularGradient(centerPosition.x, centerPosition.y, radius);\n      } else {\n        grd = context.createRadialGradient(centerPosition.x, centerPosition.y, 0, centerPosition.x, centerPosition.y, radius);\n      }\n      grd.addColorStop(0, hexToRgb(radarOption.customColor[series[seriesIndex].linearIndex], radarOption.opacity));\n      grd.addColorStop(1, hexToRgb(eachSeries.color, radarOption.opacity));\n      fillcolor = grd;\n    }\n\n    context.setFillStyle(fillcolor);\n    eachSeries.data.forEach(function (item, index) {\n      if (index === 0) {\n        context.moveTo(item.position.x, item.position.y);\n      } else {\n        context.lineTo(item.position.x, item.position.y);\n      }\n    });\n    context.closePath();\n    context.fill();\n    if (radarOption.border === true) {\n      context.stroke();\n    }\n    context.closePath();\n    if (opts.dataPointShape !== false) {\n      var points = eachSeries.data.map(function (item) {\n        return item.position;\n      });\n      drawPointShape(points, eachSeries.color, eachSeries.pointShape, context, opts);\n    }\n  });\n  // 鐢诲埢搴﹀�糪n  if (radarOption.axisLabel === true) {\n    var maxData = Math.max(radarOption.max, Math.max.apply(null, dataCombine(series)));\n    var stepLength = radius / radarOption.gridCount;\n    var fontSize = opts.fontSize * opts.pix;\n    context.setFontSize(fontSize);\n    context.setFillStyle(opts.fontColor);\n    context.setTextAlign('left');\n    for (var i = 0; i < radarOption.gridCount + 1; i++) {\n      var label = i * maxData / radarOption.gridCount;\n      label = label.toFixed(radarOption.axisLabelTofix);\n      context.fillText(String(label), centerPosition.x + 3 * opts.pix, centerPosition.y - i * stepLength + fontSize / 2);\n    }\n  }\n\n  // draw label text\n  drawRadarLabel(coordinateAngle, radius, centerPosition, opts, config, context);\n\n  // draw dataLabel\n  if (opts.dataLabel !== false && process === 1) {\n    radarDataPoints.forEach(function (eachSeries, seriesIndex) {\n      context.beginPath();\n      var fontSize = eachSeries.textSize * opts.pix || config.fontSize;\n      context.setFontSize(fontSize);\n      context.setFillStyle(eachSeries.textColor || opts.fontColor);\n      eachSeries.data.forEach(function (item, index) {\n        //濡傛灉鏄腑蹇冪偣鍨傜洿鐨勪笂涓嬬偣浣峔n        if (Math.abs(item.position.x - centerPosition.x) < 2) {\n          //濡傛灉鍦ㄤ笂闈n          if (item.position.y < centerPosition.y) {\n            context.setTextAlign('center');\n            context.fillText(item.value, item.position.x, item.position.y - 4);\n          } else {\n            context.setTextAlign('center');\n            context.fillText(item.value, item.position.x, item.position.y + fontSize + 2);\n          }\n        } else {\n          //濡傛灉鍦ㄥ乏渚n          if (item.position.x < centerPosition.x) {\n            context.setTextAlign('right');\n            context.fillText(item.value, item.position.x - 4, item.position.y + fontSize / 2 - 2);\n          } else {\n            context.setTextAlign('left');\n            context.fillText(item.value, item.position.x + 4, item.position.y + fontSize / 2 - 2);\n          }\n        }\n      });\n      context.closePath();\n      context.stroke();\n    });\n    context.setTextAlign('left');\n  }\n\n  return {\n    center: centerPosition,\n    radius: radius,\n    angleList: coordinateAngle };\n\n}\n\n// 缁忕含搴﹁浆澧ㄥ崱鎵榎nfunction lonlat2mercator(longitude, latitude) {\n  var mercator = Array(2);\n  var x = longitude * 20037508.34 / 180;\n  var y = Math.log(Math.tan((90 + latitude) * Math.PI / 360)) / (Math.PI / 180);\n  y = y * 20037508.34 / 180;\n  mercator[0] = x;\n  mercator[1] = y;\n  return mercator;\n}\n\n// 澧ㄥ崱鎵樿浆缁忕含搴nfunction mercator2lonlat(longitude, latitude) {\n  var lonlat = Array(2);\n  var x = longitude / 20037508.34 * 180;\n  var y = latitude / 20037508.34 * 180;\n  y = 180 / Math.PI * (2 * Math.atan(Math.exp(y * Math.PI / 180)) - Math.PI / 2);\n  lonlat[0] = x;\n  lonlat[1] = y;\n  return lonlat;\n}\n\nfunction getBoundingBox(data) {\n  var bounds = {},coords;\n  bounds.xMin = 180;\n  bounds.xMax = 0;\n  bounds.yMin = 90;\n  bounds.yMax = 0;\n  for (var i = 0; i < data.length; i++) {\n    var coorda = data[i].geometry.coordinates;\n    for (var k = 0; k < coorda.length; k++) {\n      coords = coorda[k];\n      if (coords.length == 1) {\n        coords = coords[0];\n      }\n      for (var j = 0; j < coords.length; j++) {\n        var longitude = coords[j][0];\n        var latitude = coords[j][1];\n        var point = {\n          x: longitude,\n          y: latitude };\n\n        bounds.xMin = bounds.xMin < point.x ? bounds.xMin : point.x;\n        bounds.xMax = bounds.xMax > point.x ? bounds.xMax : point.x;\n        bounds.yMin = bounds.yMin < point.y ? bounds.yMin : point.y;\n        bounds.yMax = bounds.yMax > point.y ? bounds.yMax : point.y;\n      }\n    }\n  }\n  return bounds;\n}\n\nfunction coordinateToPoint(latitude, longitude, bounds, scale, xoffset, yoffset) {\n  return {\n    x: (longitude - bounds.xMin) * scale + xoffset,\n    y: (bounds.yMax - latitude) * scale + yoffset };\n\n}\n\nfunction pointToCoordinate(pointY, pointX, bounds, scale, xoffset, yoffset) {\n  return {\n    x: (pointX - xoffset) / scale + bounds.xMin,\n    y: bounds.yMax - (pointY - yoffset) / scale };\n\n}\n\nfunction isRayIntersectsSegment(poi, s_poi, e_poi) {\n  if (s_poi[1] == e_poi[1]) {\n    return false;\n  }\n  if (s_poi[1] > poi[1] && e_poi[1] > poi[1]) {\n    return false;\n  }\n  if (s_poi[1] < poi[1] && e_poi[1] < poi[1]) {\n    return false;\n  }\n  if (s_poi[1] == poi[1] && e_poi[1] > poi[1]) {\n    return false;\n  }\n  if (e_poi[1] == poi[1] && s_poi[1] > poi[1]) {\n    return false;\n  }\n  if (s_poi[0] < poi[0] && e_poi[1] < poi[1]) {\n    return false;\n  }\n  var xseg = e_poi[0] - (e_poi[0] - s_poi[0]) * (e_poi[1] - poi[1]) / (e_poi[1] - s_poi[1]);\n  if (xseg < poi[0]) {\n    return false;\n  } else {\n    return true;\n  }\n}\n\nfunction isPoiWithinPoly(poi, poly, mercator) {\n  var sinsc = 0;\n  for (var i = 0; i < poly.length; i++) {\n    var epoly = poly[i][0];\n    if (poly.length == 1) {\n      epoly = poly[i][0];\n    }\n    for (var j = 0; j < epoly.length - 1; j++) {\n      var s_poi = epoly[j];\n      var e_poi = epoly[j + 1];\n      if (mercator) {\n        s_poi = lonlat2mercator(epoly[j][0], epoly[j][1]);\n        e_poi = lonlat2mercator(epoly[j + 1][0], epoly[j + 1][1]);\n      }\n      if (isRayIntersectsSegment(poi, s_poi, e_poi)) {\n        sinsc += 1;\n      }\n    }\n  }\n  if (sinsc % 2 == 1) {\n    return true;\n  } else {\n    return false;\n  }\n}\n\nfunction drawMapDataPoints(series, opts, config, context) {\n  var mapOption = assign({}, {\n    border: true,\n    mercator: false,\n    borderWidth: 1,\n    active: true,\n    borderColor: '#666666',\n    fillOpacity: 0.6,\n    activeBorderColor: '#f04864',\n    activeFillColor: '#facc14',\n    activeFillOpacity: 1 },\n  opts.extra.map);\n  var coords, point;\n  var data = series;\n  var bounds = getBoundingBox(data);\n  if (mapOption.mercator) {\n    var max = lonlat2mercator(bounds.xMax, bounds.yMax);\n    var min = lonlat2mercator(bounds.xMin, bounds.yMin);\n    bounds.xMax = max[0];\n    bounds.yMax = max[1];\n    bounds.xMin = min[0];\n    bounds.yMin = min[1];\n  }\n  var xScale = opts.width / Math.abs(bounds.xMax - bounds.xMin);\n  var yScale = opts.height / Math.abs(bounds.yMax - bounds.yMin);\n  var scale = xScale < yScale ? xScale : yScale;\n  var xoffset = opts.width / 2 - Math.abs(bounds.xMax - bounds.xMin) / 2 * scale;\n  var yoffset = opts.height / 2 - Math.abs(bounds.yMax - bounds.yMin) / 2 * scale;\n  for (var i = 0; i < data.length; i++) {\n    context.beginPath();\n    context.setLineWidth(mapOption.borderWidth * opts.pix);\n    context.setStrokeStyle(mapOption.borderColor);\n    context.setFillStyle(hexToRgb(series[i].color, series[i].fillOpacity || mapOption.fillOpacity));\n    if (mapOption.active == true && opts.tooltip) {\n      if (opts.tooltip.index == i) {\n        context.setStrokeStyle(mapOption.activeBorderColor);\n        context.setFillStyle(hexToRgb(mapOption.activeFillColor, mapOption.activeFillOpacity));\n      }\n    }\n    var coorda = data[i].geometry.coordinates;\n    for (var k = 0; k < coorda.length; k++) {\n      coords = coorda[k];\n      if (coords.length == 1) {\n        coords = coords[0];\n      }\n      for (var j = 0; j < coords.length; j++) {\n        var gaosi = Array(2);\n        if (mapOption.mercator) {\n          gaosi = lonlat2mercator(coords[j][0], coords[j][1]);\n        } else {\n          gaosi = coords[j];\n        }\n        point = coordinateToPoint(gaosi[1], gaosi[0], bounds, scale, xoffset, yoffset);\n        if (j === 0) {\n          context.beginPath();\n          context.moveTo(point.x, point.y);\n        } else {\n          context.lineTo(point.x, point.y);\n        }\n      }\n      context.fill();\n      if (mapOption.border == true) {\n        context.stroke();\n      }\n    }\n  }\n  if (opts.dataLabel == true) {\n    for (var i = 0; i < data.length; i++) {\n      var centerPoint = data[i].properties.centroid;\n      if (centerPoint) {\n        if (mapOption.mercator) {\n          centerPoint = lonlat2mercator(data[i].properties.centroid[0], data[i].properties.centroid[1]);\n        }\n        point = coordinateToPoint(centerPoint[1], centerPoint[0], bounds, scale, xoffset, yoffset);\n        var fontSize = data[i].textSize * opts.pix || config.fontSize;\n        var fontColor = data[i].textColor || opts.fontColor;\n        if (mapOption.active && mapOption.activeTextColor && opts.tooltip && opts.tooltip.index == i) {\n          fontColor = mapOption.activeTextColor;\n        }\n        var text = data[i].properties.name;\n        context.beginPath();\n        context.setFontSize(fontSize);\n        context.setFillStyle(fontColor);\n        context.fillText(text, point.x - measureText(text, fontSize, context) / 2, point.y + fontSize / 2);\n        context.closePath();\n        context.stroke();\n      }\n    }\n  }\n  opts.chartData.mapData = {\n    bounds: bounds,\n    scale: scale,\n    xoffset: xoffset,\n    yoffset: yoffset,\n    mercator: mapOption.mercator };\n\n  drawToolTipBridge(opts, config, context, 1);\n  context.draw();\n}\n\nfunction normalInt(min, max, iter) {\n  iter = iter == 0 ? 1 : iter;\n  var arr = [];\n  for (var i = 0; i < iter; i++) {\n    arr[i] = Math.random();\n  };\n  return Math.floor(arr.reduce(function (i, j) {\n    return i + j;\n  }) / iter * (max - min)) + min;\n};\n\nfunction collisionNew(area, points, width, height) {\n  var isIn = false;\n  for (var i = 0; i < points.length; i++) {\n    if (points[i].area) {\n      if (area[3] < points[i].area[1] || area[0] > points[i].area[2] || area[1] > points[i].area[3] || area[2] < points[i].area[0]) {\n        if (area[0] < 0 || area[1] < 0 || area[2] > width || area[3] > height) {\n          isIn = true;\n          break;\n        } else {\n          isIn = false;\n        }\n      } else {\n        isIn = true;\n        break;\n      }\n    }\n  }\n  return isIn;\n};\n\nfunction getWordCloudPoint(opts, type, context) {\n  var points = opts.series;\n  switch (type) {\n    case 'normal':\n      for (var i = 0; i < points.length; i++) {\n        var text = points[i].name;\n        var tHeight = points[i].textSize * opts.pix;\n        var tWidth = measureText(text, tHeight, context);\n        var x = void 0,y = void 0;\n        var area = void 0;\n        var breaknum = 0;\n        while (true) {\n          breaknum++;\n          x = normalInt(-opts.width / 2, opts.width / 2, 5) - tWidth / 2;\n          y = normalInt(-opts.height / 2, opts.height / 2, 5) + tHeight / 2;\n          area = [x - 5 + opts.width / 2, y - 5 - tHeight + opts.height / 2, x + tWidth + 5 + opts.width / 2, y + 5 +\n          opts.height / 2];\n\n          var isCollision = collisionNew(area, points, opts.width, opts.height);\n          if (!isCollision) break;\n          if (breaknum == 1000) {\n            area = [-100, -100, -100, -100];\n            break;\n          }\n        };\n        points[i].area = area;\n      }\n      break;\n    case 'vertical':var\n      Spin = function Spin() {\n        //鑾峰彇鍧囧寑闅忔満鍊硷紝鏄惁鏃嬭浆锛屾棆杞殑姒傜巼涓猴紙1-0.5锛塡n        if (Math.random() > 0.7) {\n          return true;\n        } else {\n          return false;\n        };\n      };;\n      for (var _i30 = 0; _i30 < points.length; _i30++) {\n        var _text = points[_i30].name;\n        var _tHeight = points[_i30].textSize * opts.pix;\n        var _tWidth = measureText(_text, _tHeight, context);\n        var isSpin = Spin();\n        var _x = void 0,_y = void 0,_area = void 0,areav = void 0;\n        var _breaknum = 0;\n        while (true) {\n          _breaknum++;\n          var _isCollision = void 0;\n          if (isSpin) {\n            _x = normalInt(-opts.width / 2, opts.width / 2, 5) - _tWidth / 2;\n            _y = normalInt(-opts.height / 2, opts.height / 2, 5) + _tHeight / 2;\n            _area = [_y - 5 - _tWidth + opts.width / 2, -_x - 5 + opts.height / 2, _y + 5 + opts.width / 2, -_x + _tHeight + 5 + opts.height / 2];\n            areav = [opts.width - (opts.width / 2 - opts.height / 2) - (-_x + _tHeight + 5 + opts.height / 2) - 5, opts.height / 2 - opts.width / 2 + (_y - 5 - _tWidth + opts.width / 2) - 5, opts.width - (opts.width / 2 - opts.height / 2) - (-_x + _tHeight + 5 + opts.height / 2) + _tHeight, opts.height / 2 - opts.width / 2 + (_y - 5 - _tWidth + opts.width / 2) + _tWidth + 5];\n            _isCollision = collisionNew(areav, points, opts.height, opts.width);\n          } else {\n            _x = normalInt(-opts.width / 2, opts.width / 2, 5) - _tWidth / 2;\n            _y = normalInt(-opts.height / 2, opts.height / 2, 5) + _tHeight / 2;\n            _area = [_x - 5 + opts.width / 2, _y - 5 - _tHeight + opts.height / 2, _x + _tWidth + 5 + opts.width / 2, _y + 5 + opts.height / 2];\n            _isCollision = collisionNew(_area, points, opts.width, opts.height);\n          }\n          if (!_isCollision) break;\n          if (_breaknum == 1000) {\n            _area = [-1000, -1000, -1000, -1000];\n            break;\n          }\n        };\n        if (isSpin) {\n          points[_i30].area = areav;\n          points[_i30].areav = _area;\n        } else {\n          points[_i30].area = _area;\n        }\n        points[_i30].rotate = isSpin;\n      };\n      break;}\n\n  return points;\n}\n\nfunction drawWordCloudDataPoints(series, opts, config, context) {\n  var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n  var wordOption = assign({}, {\n    type: 'normal',\n    autoColors: true },\n  opts.extra.word);\n  if (!opts.chartData.wordCloudData) {\n    opts.chartData.wordCloudData = getWordCloudPoint(opts, wordOption.type, context);\n  }\n  context.beginPath();\n  context.setFillStyle(opts.background);\n  context.rect(0, 0, opts.width, opts.height);\n  context.fill();\n  context.save();\n  var points = opts.chartData.wordCloudData;\n  context.translate(opts.width / 2, opts.height / 2);\n  for (var i = 0; i < points.length; i++) {\n    context.save();\n    if (points[i].rotate) {\n      context.rotate(90 * Math.PI / 180);\n    }\n    var text = points[i].name;\n    var tHeight = points[i].textSize * opts.pix;\n    var tWidth = measureText(text, tHeight, context);\n    context.beginPath();\n    context.setStrokeStyle(points[i].color);\n    context.setFillStyle(points[i].color);\n    context.setFontSize(tHeight);\n    if (points[i].rotate) {\n      if (points[i].areav[0] > 0) {\n        if (opts.tooltip) {\n          if (opts.tooltip.index == i) {\n            context.strokeText(text, (points[i].areav[0] + 5 - opts.width / 2) * process - tWidth * (1 - process) / 2, (points[i].areav[1] + 5 + tHeight - opts.height / 2) * process);\n          } else {\n            context.fillText(text, (points[i].areav[0] + 5 - opts.width / 2) * process - tWidth * (1 - process) / 2, (points[i].areav[1] + 5 + tHeight - opts.height / 2) * process);\n          }\n        } else {\n          context.fillText(text, (points[i].areav[0] + 5 - opts.width / 2) * process - tWidth * (1 - process) / 2, (points[i].areav[1] + 5 + tHeight - opts.height / 2) * process);\n        }\n      }\n    } else {\n      if (points[i].area[0] > 0) {\n        if (opts.tooltip) {\n          if (opts.tooltip.index == i) {\n            context.strokeText(text, (points[i].area[0] + 5 - opts.width / 2) * process - tWidth * (1 - process) / 2, (points[i].area[1] + 5 + tHeight - opts.height / 2) * process);\n          } else {\n            context.fillText(text, (points[i].area[0] + 5 - opts.width / 2) * process - tWidth * (1 - process) / 2, (points[i].area[1] + 5 + tHeight - opts.height / 2) * process);\n          }\n        } else {\n          context.fillText(text, (points[i].area[0] + 5 - opts.width / 2) * process - tWidth * (1 - process) / 2, (points[i].area[1] + 5 + tHeight - opts.height / 2) * process);\n        }\n      }\n    }\n    context.stroke();\n    context.restore();\n  }\n  context.restore();\n}\n\nfunction drawFunnelDataPoints(series, opts, config, context) {\n  var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n  var funnelOption = assign({}, {\n    type: 'funnel',\n    activeWidth: 10,\n    activeOpacity: 0.3,\n    border: false,\n    borderWidth: 2,\n    borderColor: '#FFFFFF',\n    fillOpacity: 1,\n    minSize: 0,\n    labelAlign: 'right',\n    linearType: 'none',\n    customColor: [] },\n  opts.extra.funnel);\n  var eachSpacing = (opts.height - opts.area[0] - opts.area[2]) / series.length;\n  var centerPosition = {\n    x: opts.area[3] + (opts.width - opts.area[1] - opts.area[3]) / 2,\n    y: opts.height - opts.area[2] };\n\n  var activeWidth = funnelOption.activeWidth * opts.pix;\n  var radius = Math.min((opts.width - opts.area[1] - opts.area[3]) / 2 - activeWidth, (opts.height - opts.area[0] - opts.area[2]) / 2 - activeWidth);\n  var seriesNew = getFunnelDataPoints(series, radius, funnelOption, eachSpacing, process);\n  context.save();\n  context.translate(centerPosition.x, centerPosition.y);\n  funnelOption.customColor = fillCustomColor(funnelOption.linearType, funnelOption.customColor, series, config);\n  if (funnelOption.type == 'pyramid') {\n    for (var i = 0; i < seriesNew.length; i++) {\n      if (i == seriesNew.length - 1) {\n        if (opts.tooltip) {\n          if (opts.tooltip.index == i) {\n            context.beginPath();\n            context.setFillStyle(hexToRgb(seriesNew[i].color, funnelOption.activeOpacity));\n            context.moveTo(-activeWidth, -eachSpacing);\n            context.lineTo(-seriesNew[i].radius - activeWidth, 0);\n            context.lineTo(seriesNew[i].radius + activeWidth, 0);\n            context.lineTo(activeWidth, -eachSpacing);\n            context.lineTo(-activeWidth, -eachSpacing);\n            context.closePath();\n            context.fill();\n          }\n        }\n        seriesNew[i].funnelArea = [centerPosition.x - seriesNew[i].radius, centerPosition.y - eachSpacing * (i + 1), centerPosition.x + seriesNew[i].radius, centerPosition.y - eachSpacing * i];\n        context.beginPath();\n        context.setLineWidth(funnelOption.borderWidth * opts.pix);\n        context.setStrokeStyle(funnelOption.borderColor);\n        var fillColor = hexToRgb(seriesNew[i].color, funnelOption.fillOpacity);\n        if (funnelOption.linearType == 'custom') {\n          var grd = context.createLinearGradient(seriesNew[i].radius, -eachSpacing, -seriesNew[i].radius, -eachSpacing);\n          grd.addColorStop(0, hexToRgb(seriesNew[i].color, funnelOption.fillOpacity));\n          grd.addColorStop(0.5, hexToRgb(funnelOption.customColor[seriesNew[i].linearIndex], funnelOption.fillOpacity));\n          grd.addColorStop(1, hexToRgb(seriesNew[i].color, funnelOption.fillOpacity));\n          fillColor = grd;\n        }\n        context.setFillStyle(fillColor);\n        context.moveTo(0, -eachSpacing);\n        context.lineTo(-seriesNew[i].radius, 0);\n        context.lineTo(seriesNew[i].radius, 0);\n        context.lineTo(0, -eachSpacing);\n        context.closePath();\n        context.fill();\n        if (funnelOption.border == true) {\n          context.stroke();\n        }\n      } else {\n        if (opts.tooltip) {\n          if (opts.tooltip.index == i) {\n            context.beginPath();\n            context.setFillStyle(hexToRgb(seriesNew[i].color, funnelOption.activeOpacity));\n            context.moveTo(0, 0);\n            context.lineTo(-seriesNew[i].radius - activeWidth, 0);\n            context.lineTo(-seriesNew[i + 1].radius - activeWidth, -eachSpacing);\n            context.lineTo(seriesNew[i + 1].radius + activeWidth, -eachSpacing);\n            context.lineTo(seriesNew[i].radius + activeWidth, 0);\n            context.lineTo(0, 0);\n            context.closePath();\n            context.fill();\n          }\n        }\n        seriesNew[i].funnelArea = [centerPosition.x - seriesNew[i].radius, centerPosition.y - eachSpacing * (i + 1), centerPosition.x + seriesNew[i].radius, centerPosition.y - eachSpacing * i];\n        context.beginPath();\n        context.setLineWidth(funnelOption.borderWidth * opts.pix);\n        context.setStrokeStyle(funnelOption.borderColor);\n        var fillColor = hexToRgb(seriesNew[i].color, funnelOption.fillOpacity);\n        if (funnelOption.linearType == 'custom') {\n          var grd = context.createLinearGradient(seriesNew[i].radius, -eachSpacing, -seriesNew[i].radius, -eachSpacing);\n          grd.addColorStop(0, hexToRgb(seriesNew[i].color, funnelOption.fillOpacity));\n          grd.addColorStop(0.5, hexToRgb(funnelOption.customColor[seriesNew[i].linearIndex], funnelOption.fillOpacity));\n          grd.addColorStop(1, hexToRgb(seriesNew[i].color, funnelOption.fillOpacity));\n          fillColor = grd;\n        }\n        context.setFillStyle(fillColor);\n        context.moveTo(0, 0);\n        context.lineTo(-seriesNew[i].radius, 0);\n        context.lineTo(-seriesNew[i + 1].radius, -eachSpacing);\n        context.lineTo(seriesNew[i + 1].radius, -eachSpacing);\n        context.lineTo(seriesNew[i].radius, 0);\n        context.lineTo(0, 0);\n        context.closePath();\n        context.fill();\n        if (funnelOption.border == true) {\n          context.stroke();\n        }\n      }\n      context.translate(0, -eachSpacing);\n    }\n  } else {\n    context.translate(0, -(seriesNew.length - 1) * eachSpacing);\n    for (var _i31 = 0; _i31 < seriesNew.length; _i31++) {\n      if (_i31 == seriesNew.length - 1) {\n        if (opts.tooltip) {\n          if (opts.tooltip.index == _i31) {\n            context.beginPath();\n            context.setFillStyle(hexToRgb(seriesNew[_i31].color, funnelOption.activeOpacity));\n            context.moveTo(-activeWidth - funnelOption.minSize / 2, 0);\n            context.lineTo(-seriesNew[_i31].radius - activeWidth, -eachSpacing);\n            context.lineTo(seriesNew[_i31].radius + activeWidth, -eachSpacing);\n            context.lineTo(activeWidth + funnelOption.minSize / 2, 0);\n            context.lineTo(-activeWidth - funnelOption.minSize / 2, 0);\n            context.closePath();\n            context.fill();\n          }\n        }\n        seriesNew[_i31].funnelArea = [centerPosition.x - seriesNew[_i31].radius, centerPosition.y - eachSpacing, centerPosition.x + seriesNew[_i31].radius, centerPosition.y];\n        context.beginPath();\n        context.setLineWidth(funnelOption.borderWidth * opts.pix);\n        context.setStrokeStyle(funnelOption.borderColor);\n        var fillColor = hexToRgb(seriesNew[_i31].color, funnelOption.fillOpacity);\n        if (funnelOption.linearType == 'custom') {\n          var grd = context.createLinearGradient(seriesNew[_i31].radius, -eachSpacing, -seriesNew[_i31].radius, -eachSpacing);\n          grd.addColorStop(0, hexToRgb(seriesNew[_i31].color, funnelOption.fillOpacity));\n          grd.addColorStop(0.5, hexToRgb(funnelOption.customColor[seriesNew[_i31].linearIndex], funnelOption.fillOpacity));\n          grd.addColorStop(1, hexToRgb(seriesNew[_i31].color, funnelOption.fillOpacity));\n          fillColor = grd;\n        }\n        context.setFillStyle(fillColor);\n        context.moveTo(0, 0);\n        context.lineTo(-funnelOption.minSize / 2, 0);\n        context.lineTo(-seriesNew[_i31].radius, -eachSpacing);\n        context.lineTo(seriesNew[_i31].radius, -eachSpacing);\n        context.lineTo(funnelOption.minSize / 2, 0);\n        context.lineTo(0, 0);\n        context.closePath();\n        context.fill();\n        if (funnelOption.border == true) {\n          context.stroke();\n        }\n      } else {\n        if (opts.tooltip) {\n          if (opts.tooltip.index == _i31) {\n            context.beginPath();\n            context.setFillStyle(hexToRgb(seriesNew[_i31].color, funnelOption.activeOpacity));\n            context.moveTo(0, 0);\n            context.lineTo(-seriesNew[_i31 + 1].radius - activeWidth, 0);\n            context.lineTo(-seriesNew[_i31].radius - activeWidth, -eachSpacing);\n            context.lineTo(seriesNew[_i31].radius + activeWidth, -eachSpacing);\n            context.lineTo(seriesNew[_i31 + 1].radius + activeWidth, 0);\n            context.lineTo(0, 0);\n            context.closePath();\n            context.fill();\n          }\n        }\n        seriesNew[_i31].funnelArea = [centerPosition.x - seriesNew[_i31].radius, centerPosition.y - eachSpacing * (seriesNew.length - _i31), centerPosition.x + seriesNew[_i31].radius, centerPosition.y - eachSpacing * (seriesNew.length - _i31 - 1)];\n        context.beginPath();\n        context.setLineWidth(funnelOption.borderWidth * opts.pix);\n        context.setStrokeStyle(funnelOption.borderColor);\n        var fillColor = hexToRgb(seriesNew[_i31].color, funnelOption.fillOpacity);\n        if (funnelOption.linearType == 'custom') {\n          var grd = context.createLinearGradient(seriesNew[_i31].radius, -eachSpacing, -seriesNew[_i31].radius, -eachSpacing);\n          grd.addColorStop(0, hexToRgb(seriesNew[_i31].color, funnelOption.fillOpacity));\n          grd.addColorStop(0.5, hexToRgb(funnelOption.customColor[seriesNew[_i31].linearIndex], funnelOption.fillOpacity));\n          grd.addColorStop(1, hexToRgb(seriesNew[_i31].color, funnelOption.fillOpacity));\n          fillColor = grd;\n        }\n        context.setFillStyle(fillColor);\n        context.moveTo(0, 0);\n        context.lineTo(-seriesNew[_i31 + 1].radius, 0);\n        context.lineTo(-seriesNew[_i31].radius, -eachSpacing);\n        context.lineTo(seriesNew[_i31].radius, -eachSpacing);\n        context.lineTo(seriesNew[_i31 + 1].radius, 0);\n        context.lineTo(0, 0);\n        context.closePath();\n        context.fill();\n        if (funnelOption.border == true) {\n          context.stroke();\n        }\n      }\n      context.translate(0, eachSpacing);\n    }\n  }\n\n  context.restore();\n  if (opts.dataLabel !== false && process === 1) {\n    drawFunnelText(seriesNew, opts, context, eachSpacing, funnelOption.labelAlign, activeWidth, centerPosition);\n  }\n  if (process === 1) {\n    drawFunnelCenterText(seriesNew, opts, context, eachSpacing, funnelOption.labelAlign, activeWidth, centerPosition);\n  }\n  return {\n    center: centerPosition,\n    radius: radius,\n    series: seriesNew };\n\n}\n\nfunction drawFunnelText(series, opts, context, eachSpacing, labelAlign, activeWidth, centerPosition) {\n  for (var i = 0; i < series.length; i++) {\n    var item = series[i];\n    if (item.labelShow === false) {\n      continue;\n    }\n    var startX = void 0,endX = void 0,startY = void 0,fontSize = void 0;\n    var text = item.formatter ? item.formatter(item, i, series, opts) : util.toFixed(item._proportion_ * 100) + '%';\n    text = item.labelText ? item.labelText : text;\n    if (labelAlign == 'right') {\n      if (i == series.length - 1) {\n        startX = (item.funnelArea[2] + centerPosition.x) / 2;\n      } else {\n        startX = (item.funnelArea[2] + series[i + 1].funnelArea[2]) / 2;\n      }\n      endX = startX + activeWidth * 2;\n      startY = item.funnelArea[1] + eachSpacing / 2;\n      fontSize = item.textSize * opts.pix || opts.fontSize * opts.pix;\n      context.setLineWidth(1 * opts.pix);\n      context.setStrokeStyle(item.color);\n      context.setFillStyle(item.color);\n      context.beginPath();\n      context.moveTo(startX, startY);\n      context.lineTo(endX, startY);\n      context.stroke();\n      context.closePath();\n      context.beginPath();\n      context.moveTo(endX, startY);\n      context.arc(endX, startY, 2 * opts.pix, 0, 2 * Math.PI);\n      context.closePath();\n      context.fill();\n      context.beginPath();\n      context.setFontSize(fontSize);\n      context.setFillStyle(item.textColor || opts.fontColor);\n      context.fillText(text, endX + 5, startY + fontSize / 2 - 2);\n      context.closePath();\n      context.stroke();\n      context.closePath();\n    }\n    if (labelAlign == 'left') {\n      if (i == series.length - 1) {\n        startX = (item.funnelArea[0] + centerPosition.x) / 2;\n      } else {\n        startX = (item.funnelArea[0] + series[i + 1].funnelArea[0]) / 2;\n      }\n      endX = startX - activeWidth * 2;\n      startY = item.funnelArea[1] + eachSpacing / 2;\n      fontSize = item.textSize * opts.pix || opts.fontSize * opts.pix;\n      context.setLineWidth(1 * opts.pix);\n      context.setStrokeStyle(item.color);\n      context.setFillStyle(item.color);\n      context.beginPath();\n      context.moveTo(startX, startY);\n      context.lineTo(endX, startY);\n      context.stroke();\n      context.closePath();\n      context.beginPath();\n      context.moveTo(endX, startY);\n      context.arc(endX, startY, 2, 0, 2 * Math.PI);\n      context.closePath();\n      context.fill();\n      context.beginPath();\n      context.setFontSize(fontSize);\n      context.setFillStyle(item.textColor || opts.fontColor);\n      context.fillText(text, endX - 5 - measureText(text, fontSize, context), startY + fontSize / 2 - 2);\n      context.closePath();\n      context.stroke();\n      context.closePath();\n    }\n  }\n}\n\nfunction drawFunnelCenterText(series, opts, context, eachSpacing, labelAlign, activeWidth, centerPosition) {\n  for (var i = 0; i < series.length; i++) {\n    var item = series[i];\n    var startY = void 0,fontSize = void 0;\n    if (item.centerText) {\n      startY = item.funnelArea[1] + eachSpacing / 2;\n      fontSize = item.centerTextSize * opts.pix || opts.fontSize * opts.pix;\n      context.beginPath();\n      context.setFontSize(fontSize);\n      context.setFillStyle(item.centerTextColor || \"#FFFFFF\");\n      context.fillText(item.centerText, centerPosition.x - measureText(item.centerText, fontSize, context) / 2, startY + fontSize / 2 - 2);\n      context.closePath();\n      context.stroke();\n      context.closePath();\n    }\n  }\n}\n\n\nfunction drawCanvas(opts, context) {\n  context.draw();\n}\n\nvar Timing = {\n  easeIn: function easeIn(pos) {\n    return Math.pow(pos, 3);\n  },\n  easeOut: function easeOut(pos) {\n    return Math.pow(pos - 1, 3) + 1;\n  },\n  easeInOut: function easeInOut(pos) {\n    if ((pos /= 0.5) < 1) {\n      return 0.5 * Math.pow(pos, 3);\n    } else {\n      return 0.5 * (Math.pow(pos - 2, 3) + 2);\n    }\n  },\n  linear: function linear(pos) {\n    return pos;\n  } };\n\n\nfunction Animation(opts) {\n  this.isStop = false;\n  opts.duration = typeof opts.duration === 'undefined' ? 1000 : opts.duration;\n  opts.timing = opts.timing || 'easeInOut';\n  var delay = 17;\n  function createAnimationFrame() {\n    if (typeof setTimeout !== 'undefined') {\n      return function (step, delay) {\n        setTimeout(function () {\n          var timeStamp = +new Date();\n          step(timeStamp);\n        }, delay);\n      };\n    } else if (typeof requestAnimationFrame !== 'undefined') {\n      return requestAnimationFrame;\n    } else {\n      return function (step) {\n        step(null);\n      };\n    }\n  };\n  var animationFrame = createAnimationFrame();\n  var startTimeStamp = null;\n  var _step = function step(timestamp) {\n    if (timestamp === null || this.isStop === true) {\n      opts.onProcess && opts.onProcess(1);\n      opts.onAnimationFinish && opts.onAnimationFinish();\n      return;\n    }\n    if (startTimeStamp === null) {\n      startTimeStamp = timestamp;\n    }\n    if (timestamp - startTimeStamp < opts.duration) {\n      var process = (timestamp - startTimeStamp) / opts.duration;\n      var timingFunction = Timing[opts.timing];\n      process = timingFunction(process);\n      opts.onProcess && opts.onProcess(process);\n      animationFrame(_step, delay);\n    } else {\n      opts.onProcess && opts.onProcess(1);\n      opts.onAnimationFinish && opts.onAnimationFinish();\n    }\n  };\n  _step = _step.bind(this);\n  animationFrame(_step, delay);\n}\n\nAnimation.prototype.stop = function () {\n  this.isStop = true;\n};\n\nfunction drawCharts(type, opts, config, context) {var _this2 = this;\n  var _this = this;\n  var series = opts.series;\n  //鍏煎ECharts楗煎浘绫绘暟鎹牸寮廫n  if (type === 'pie' || type === 'ring' || type === 'mount' || type === 'rose' || type === 'funnel') {\n    series = fixPieSeries(series, opts, config);\n  }\n  var categories = opts.categories;\n  if (type === 'mount') {\n    categories = [];\n    for (var j = 0; j < series.length; j++) {\n      if (series[j].show !== false) categories.push(series[j].name);\n    }\n    opts.categories = categories;\n  }\n  series = fillSeries(series, opts, config);\n  var duration = opts.animation ? opts.duration : 0;\n  _this.animationInstance && _this.animationInstance.stop();\n  var seriesMA = null;\n  if (type == 'candle') {\n    var average = assign({}, opts.extra.candle.average);\n    if (average.show) {\n      seriesMA = calCandleMA(average.day, average.name, average.color, series[0].data);\n      seriesMA = fillSeries(seriesMA, opts, config);\n      opts.seriesMA = seriesMA;\n    } else if (opts.seriesMA) {\n      seriesMA = opts.seriesMA = fillSeries(opts.seriesMA, opts, config);\n    } else {\n      seriesMA = series;\n    }\n  } else {\n    seriesMA = series;\n  }\n  /* 杩囨护鎺塻how=false鐨剆eries */\n  opts._series_ = series = filterSeries(series);\n  //閲嶆柊璁$畻鍥捐〃鍖哄煙\n  opts.area = new Array(4);\n  //澶嶄綅缁樺浘鍖哄煙\n  for (var _j11 = 0; _j11 < 4; _j11++) {\n    opts.area[_j11] = opts.padding[_j11] * opts.pix;\n  }\n  //閫氳繃璁$畻涓夊ぇ鍖哄煙锛氬浘渚嬨�乆杞淬�乊杞寸殑澶у皬锛岀‘瀹氱粯鍥惧尯鍩焅n  var _calLegendData = calLegendData(seriesMA, opts, config, opts.chartData, context),\n  legendHeight = _calLegendData.area.wholeHeight,\n  legendWidth = _calLegendData.area.wholeWidth;\n\n  switch (opts.legend.position) {\n    case 'top':\n      opts.area[0] += legendHeight;\n      break;\n    case 'bottom':\n      opts.area[2] += legendHeight;\n      break;\n    case 'left':\n      opts.area[3] += legendWidth;\n      break;\n    case 'right':\n      opts.area[1] += legendWidth;\n      break;}\n\n\n  var _calYAxisData = {},\n  yAxisWidth = 0;\n  if (opts.type === 'line' || opts.type === 'column' || opts.type === 'mount' || opts.type === 'area' || opts.type === 'mix' || opts.type === 'candle' || opts.type === 'scatter' || opts.type === 'bubble' || opts.type === 'bar') {\n    _calYAxisData = calYAxisData(series, opts, config, context);\n    yAxisWidth = _calYAxisData.yAxisWidth;\n    //濡傛灉鏄剧ずY杞存爣棰榎n    if (opts.yAxis.showTitle) {\n      var maxTitleHeight = 0;\n      for (var i = 0; i < opts.yAxis.data.length; i++) {\n        maxTitleHeight = Math.max(maxTitleHeight, opts.yAxis.data[i].titleFontSize ? opts.yAxis.data[i].titleFontSize * opts.pix : config.fontSize);\n      }\n      opts.area[0] += maxTitleHeight;\n    }\n    var rightIndex = 0,\n    leftIndex = 0;\n    //璁$畻涓荤粯鍥惧尯鍩熷乏鍙充綅缃甛n    for (var _i32 = 0; _i32 < yAxisWidth.length; _i32++) {\n      if (yAxisWidth[_i32].position == 'left') {\n        if (leftIndex > 0) {\n          opts.area[3] += yAxisWidth[_i32].width + opts.yAxis.padding * opts.pix;\n        } else {\n          opts.area[3] += yAxisWidth[_i32].width;\n        }\n        leftIndex += 1;\n      } else if (yAxisWidth[_i32].position == 'right') {\n        if (rightIndex > 0) {\n          opts.area[1] += yAxisWidth[_i32].width + opts.yAxis.padding * opts.pix;\n        } else {\n          opts.area[1] += yAxisWidth[_i32].width;\n        }\n        rightIndex += 1;\n      }\n    }\n  } else {\n    config.yAxisWidth = yAxisWidth;\n  }\n  opts.chartData.yAxisData = _calYAxisData;\n\n  if (opts.categories && opts.categories.length && opts.type !== 'radar' && opts.type !== 'gauge' && opts.type !== 'bar') {\n    opts.chartData.xAxisData = getXAxisPoints(opts.categories, opts, config);\n    var _calCategoriesData = calCategoriesData(opts.categories, opts, config, opts.chartData.xAxisData.eachSpacing, context),\n    xAxisHeight = _calCategoriesData.xAxisHeight,\n    angle = _calCategoriesData.angle;\n    config.xAxisHeight = xAxisHeight;\n    config._xAxisTextAngle_ = angle;\n    opts.area[2] += xAxisHeight;\n    opts.chartData.categoriesData = _calCategoriesData;\n  } else {\n    if (opts.type === 'line' || opts.type === 'area' || opts.type === 'scatter' || opts.type === 'bubble' || opts.type === 'bar') {\n      opts.chartData.xAxisData = calXAxisData(series, opts, config, context);\n      categories = opts.chartData.xAxisData.rangesFormat;\n      var _calCategoriesData2 = calCategoriesData(categories, opts, config, opts.chartData.xAxisData.eachSpacing, context),\n      _xAxisHeight = _calCategoriesData2.xAxisHeight,\n      _angle = _calCategoriesData2.angle;\n      config.xAxisHeight = _xAxisHeight;\n      config._xAxisTextAngle_ = _angle;\n      opts.area[2] += _xAxisHeight;\n      opts.chartData.categoriesData = _calCategoriesData2;\n    } else {\n      opts.chartData.xAxisData = {\n        xAxisPoints: [] };\n\n    }\n  }\n\n  //璁$畻鍙冲榻愬亸绉昏窛绂籠n  if (opts.enableScroll && opts.xAxis.scrollAlign == 'right' && opts._scrollDistance_ === undefined) {\n    var offsetLeft = 0,\n    xAxisPoints = opts.chartData.xAxisData.xAxisPoints,\n    startX = opts.chartData.xAxisData.startX,\n    endX = opts.chartData.xAxisData.endX,\n    eachSpacing = opts.chartData.xAxisData.eachSpacing;\n    var totalWidth = eachSpacing * (xAxisPoints.length - 1);\n    var screenWidth = endX - startX;\n    offsetLeft = screenWidth - totalWidth;\n    _this.scrollOption.currentOffset = offsetLeft;\n    _this.scrollOption.startTouchX = offsetLeft;\n    _this.scrollOption.distance = 0;\n    _this.scrollOption.lastMoveTime = 0;\n    opts._scrollDistance_ = offsetLeft;\n  }\n\n  if (type === 'pie' || type === 'ring' || type === 'rose') {\n    config._pieTextMaxLength_ = opts.dataLabel === false ? 0 : getPieTextMaxLength(seriesMA, config, context, opts);\n  }\n\n  switch (type) {\n    case 'word':\n      this.animationInstance = new Animation({\n        timing: opts.timing,\n        duration: duration,\n        onProcess: function onProcess(process) {\n          context.clearRect(0, 0, opts.width, opts.height);\n          if (opts.rotate) {\n            contextRotate(context, opts);\n          }\n          drawWordCloudDataPoints(series, opts, config, context, process);\n          drawCanvas(opts, context);\n        },\n        onAnimationFinish: function onAnimationFinish() {\n          _this.uevent.trigger('renderComplete');\n        } });\n\n      break;\n    case 'map':\n      context.clearRect(0, 0, opts.width, opts.height);\n      drawMapDataPoints(series, opts, config, context);\n      setTimeout(function () {\n        _this2.uevent.trigger('renderComplete');\n      }, 50);\n      break;\n    case 'funnel':\n      this.animationInstance = new Animation({\n        timing: opts.timing,\n        duration: duration,\n        onProcess: function onProcess(process) {\n          context.clearRect(0, 0, opts.width, opts.height);\n          if (opts.rotate) {\n            contextRotate(context, opts);\n          }\n          opts.chartData.funnelData = drawFunnelDataPoints(series, opts, config, context, process);\n          drawLegend(opts.series, opts, config, context, opts.chartData);\n          drawToolTipBridge(opts, config, context, process);\n          drawCanvas(opts, context);\n        },\n        onAnimationFinish: function onAnimationFinish() {\n          _this.uevent.trigger('renderComplete');\n        } });\n\n      break;\n    case 'line':\n      this.animationInstance = new Animation({\n        timing: opts.timing,\n        duration: duration,\n        onProcess: function onProcess(process) {\n          context.clearRect(0, 0, opts.width, opts.height);\n          if (opts.rotate) {\n            contextRotate(context, opts);\n          }\n          drawYAxisGrid(categories, opts, config, context);\n          drawXAxis(categories, opts, config, context);\n          var _drawLineDataPoints = drawLineDataPoints(series, opts, config, context, process),\n          xAxisPoints = _drawLineDataPoints.xAxisPoints,\n          calPoints = _drawLineDataPoints.calPoints,\n          eachSpacing = _drawLineDataPoints.eachSpacing;\n          opts.chartData.xAxisPoints = xAxisPoints;\n          opts.chartData.calPoints = calPoints;\n          opts.chartData.eachSpacing = eachSpacing;\n          drawYAxis(series, opts, config, context);\n          if (opts.enableMarkLine !== false && process === 1) {\n            drawMarkLine(opts, config, context);\n          }\n          drawLegend(opts.series, opts, config, context, opts.chartData);\n          drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);\n          drawCanvas(opts, context);\n        },\n        onAnimationFinish: function onAnimationFinish() {\n          _this.uevent.trigger('renderComplete');\n        } });\n\n      break;\n    case 'scatter':\n      this.animationInstance = new Animation({\n        timing: opts.timing,\n        duration: duration,\n        onProcess: function onProcess(process) {\n          context.clearRect(0, 0, opts.width, opts.height);\n          if (opts.rotate) {\n            contextRotate(context, opts);\n          }\n          drawYAxisGrid(categories, opts, config, context);\n          drawXAxis(categories, opts, config, context);\n          var _drawScatterDataPoints = drawScatterDataPoints(series, opts, config, context, process),\n          xAxisPoints = _drawScatterDataPoints.xAxisPoints,\n          calPoints = _drawScatterDataPoints.calPoints,\n          eachSpacing = _drawScatterDataPoints.eachSpacing;\n          opts.chartData.xAxisPoints = xAxisPoints;\n          opts.chartData.calPoints = calPoints;\n          opts.chartData.eachSpacing = eachSpacing;\n          drawYAxis(series, opts, config, context);\n          if (opts.enableMarkLine !== false && process === 1) {\n            drawMarkLine(opts, config, context);\n          }\n          drawLegend(opts.series, opts, config, context, opts.chartData);\n          drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);\n          drawCanvas(opts, context);\n        },\n        onAnimationFinish: function onAnimationFinish() {\n          _this.uevent.trigger('renderComplete');\n        } });\n\n      break;\n    case 'bubble':\n      this.animationInstance = new Animation({\n        timing: opts.timing,\n        duration: duration,\n        onProcess: function onProcess(process) {\n          context.clearRect(0, 0, opts.width, opts.height);\n          if (opts.rotate) {\n            contextRotate(context, opts);\n          }\n          drawYAxisGrid(categories, opts, config, context);\n          drawXAxis(categories, opts, config, context);\n          var _drawBubbleDataPoints = drawBubbleDataPoints(series, opts, config, context, process),\n          xAxisPoints = _drawBubbleDataPoints.xAxisPoints,\n          calPoints = _drawBubbleDataPoints.calPoints,\n          eachSpacing = _drawBubbleDataPoints.eachSpacing;\n          opts.chartData.xAxisPoints = xAxisPoints;\n          opts.chartData.calPoints = calPoints;\n          opts.chartData.eachSpacing = eachSpacing;\n          drawYAxis(series, opts, config, context);\n          if (opts.enableMarkLine !== false && process === 1) {\n            drawMarkLine(opts, config, context);\n          }\n          drawLegend(opts.series, opts, config, context, opts.chartData);\n          drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);\n          drawCanvas(opts, context);\n        },\n        onAnimationFinish: function onAnimationFinish() {\n          _this.uevent.trigger('renderComplete');\n        } });\n\n      break;\n    case 'mix':\n      this.animationInstance = new Animation({\n        timing: opts.timing,\n        duration: duration,\n        onProcess: function onProcess(process) {\n          context.clearRect(0, 0, opts.width, opts.height);\n          if (opts.rotate) {\n            contextRotate(context, opts);\n          }\n          drawYAxisGrid(categories, opts, config, context);\n          drawXAxis(categories, opts, config, context);\n          var _drawMixDataPoints = drawMixDataPoints(series, opts, config, context, process),\n          xAxisPoints = _drawMixDataPoints.xAxisPoints,\n          calPoints = _drawMixDataPoints.calPoints,\n          eachSpacing = _drawMixDataPoints.eachSpacing;\n          opts.chartData.xAxisPoints = xAxisPoints;\n          opts.chartData.calPoints = calPoints;\n          opts.chartData.eachSpacing = eachSpacing;\n          drawYAxis(series, opts, config, context);\n          if (opts.enableMarkLine !== false && process === 1) {\n            drawMarkLine(opts, config, context);\n          }\n          drawLegend(opts.series, opts, config, context, opts.chartData);\n          drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);\n          drawCanvas(opts, context);\n        },\n        onAnimationFinish: function onAnimationFinish() {\n          _this.uevent.trigger('renderComplete');\n        } });\n\n      break;\n    case 'column':\n      this.animationInstance = new Animation({\n        timing: opts.timing,\n        duration: duration,\n        onProcess: function onProcess(process) {\n          context.clearRect(0, 0, opts.width, opts.height);\n          if (opts.rotate) {\n            contextRotate(context, opts);\n          }\n          drawYAxisGrid(categories, opts, config, context);\n          drawXAxis(categories, opts, config, context);\n          var _drawColumnDataPoints = drawColumnDataPoints(series, opts, config, context, process),\n          xAxisPoints = _drawColumnDataPoints.xAxisPoints,\n          calPoints = _drawColumnDataPoints.calPoints,\n          eachSpacing = _drawColumnDataPoints.eachSpacing;\n          opts.chartData.xAxisPoints = xAxisPoints;\n          opts.chartData.calPoints = calPoints;\n          opts.chartData.eachSpacing = eachSpacing;\n          drawYAxis(series, opts, config, context);\n          if (opts.enableMarkLine !== false && process === 1) {\n            drawMarkLine(opts, config, context);\n          }\n          drawLegend(opts.series, opts, config, context, opts.chartData);\n          drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);\n          drawCanvas(opts, context);\n        },\n        onAnimationFinish: function onAnimationFinish() {\n          _this.uevent.trigger('renderComplete');\n        } });\n\n      break;\n    case 'mount':\n      this.animationInstance = new Animation({\n        timing: opts.timing,\n        duration: duration,\n        onProcess: function onProcess(process) {\n          context.clearRect(0, 0, opts.width, opts.height);\n          if (opts.rotate) {\n            contextRotate(context, opts);\n          }\n          drawYAxisGrid(categories, opts, config, context);\n          drawXAxis(categories, opts, config, context);\n          var _drawMountDataPoints = drawMountDataPoints(series, opts, config, context, process),\n          xAxisPoints = _drawMountDataPoints.xAxisPoints,\n          calPoints = _drawMountDataPoints.calPoints,\n          eachSpacing = _drawMountDataPoints.eachSpacing;\n          opts.chartData.xAxisPoints = xAxisPoints;\n          opts.chartData.calPoints = calPoints;\n          opts.chartData.eachSpacing = eachSpacing;\n          drawYAxis(series, opts, config, context);\n          if (opts.enableMarkLine !== false && process === 1) {\n            drawMarkLine(opts, config, context);\n          }\n          drawLegend(opts.series, opts, config, context, opts.chartData);\n          drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);\n          drawCanvas(opts, context);\n        },\n        onAnimationFinish: function onAnimationFinish() {\n          _this.uevent.trigger('renderComplete');\n        } });\n\n      break;\n    case 'bar':\n      this.animationInstance = new Animation({\n        timing: opts.timing,\n        duration: duration,\n        onProcess: function onProcess(process) {\n          context.clearRect(0, 0, opts.width, opts.height);\n          if (opts.rotate) {\n            contextRotate(context, opts);\n          }\n          drawXAxis(categories, opts, config, context);\n          var _drawBarDataPoints = drawBarDataPoints(series, opts, config, context, process),\n          yAxisPoints = _drawBarDataPoints.yAxisPoints,\n          calPoints = _drawBarDataPoints.calPoints,\n          eachSpacing = _drawBarDataPoints.eachSpacing;\n          opts.chartData.yAxisPoints = yAxisPoints;\n          opts.chartData.xAxisPoints = opts.chartData.xAxisData.xAxisPoints;\n          opts.chartData.calPoints = calPoints;\n          opts.chartData.eachSpacing = eachSpacing;\n          drawYAxis(series, opts, config, context);\n          if (opts.enableMarkLine !== false && process === 1) {\n            drawMarkLine(opts, config, context);\n          }\n          drawLegend(opts.series, opts, config, context, opts.chartData);\n          drawToolTipBridge(opts, config, context, process, eachSpacing, yAxisPoints);\n          drawCanvas(opts, context);\n        },\n        onAnimationFinish: function onAnimationFinish() {\n          _this.uevent.trigger('renderComplete');\n        } });\n\n      break;\n    case 'area':\n      this.animationInstance = new Animation({\n        timing: opts.timing,\n        duration: duration,\n        onProcess: function onProcess(process) {\n          context.clearRect(0, 0, opts.width, opts.height);\n          if (opts.rotate) {\n            contextRotate(context, opts);\n          }\n          drawYAxisGrid(categories, opts, config, context);\n          drawXAxis(categories, opts, config, context);\n          var _drawAreaDataPoints = drawAreaDataPoints(series, opts, config, context, process),\n          xAxisPoints = _drawAreaDataPoints.xAxisPoints,\n          calPoints = _drawAreaDataPoints.calPoints,\n          eachSpacing = _drawAreaDataPoints.eachSpacing;\n          opts.chartData.xAxisPoints = xAxisPoints;\n          opts.chartData.calPoints = calPoints;\n          opts.chartData.eachSpacing = eachSpacing;\n          drawYAxis(series, opts, config, context);\n          if (opts.enableMarkLine !== false && process === 1) {\n            drawMarkLine(opts, config, context);\n          }\n          drawLegend(opts.series, opts, config, context, opts.chartData);\n          drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);\n          drawCanvas(opts, context);\n        },\n        onAnimationFinish: function onAnimationFinish() {\n          _this.uevent.trigger('renderComplete');\n        } });\n\n      break;\n    case 'ring':\n      this.animationInstance = new Animation({\n        timing: opts.timing,\n        duration: duration,\n        onProcess: function onProcess(process) {\n          context.clearRect(0, 0, opts.width, opts.height);\n          if (opts.rotate) {\n            contextRotate(context, opts);\n          }\n          opts.chartData.pieData = drawPieDataPoints(series, opts, config, context, process);\n          drawLegend(opts.series, opts, config, context, opts.chartData);\n          drawToolTipBridge(opts, config, context, process);\n          drawCanvas(opts, context);\n        },\n        onAnimationFinish: function onAnimationFinish() {\n          _this.uevent.trigger('renderComplete');\n        } });\n\n      break;\n    case 'pie':\n      this.animationInstance = new Animation({\n        timing: opts.timing,\n        duration: duration,\n        onProcess: function onProcess(process) {\n          context.clearRect(0, 0, opts.width, opts.height);\n          if (opts.rotate) {\n            contextRotate(context, opts);\n          }\n          opts.chartData.pieData = drawPieDataPoints(series, opts, config, context, process);\n          drawLegend(opts.series, opts, config, context, opts.chartData);\n          drawToolTipBridge(opts, config, context, process);\n          drawCanvas(opts, context);\n        },\n        onAnimationFinish: function onAnimationFinish() {\n          _this.uevent.trigger('renderComplete');\n        } });\n\n      break;\n    case 'rose':\n      this.animationInstance = new Animation({\n        timing: opts.timing,\n        duration: duration,\n        onProcess: function onProcess(process) {\n          context.clearRect(0, 0, opts.width, opts.height);\n          if (opts.rotate) {\n            contextRotate(context, opts);\n          }\n          opts.chartData.pieData = drawRoseDataPoints(series, opts, config, context, process);\n          drawLegend(opts.series, opts, config, context, opts.chartData);\n          drawToolTipBridge(opts, config, context, process);\n          drawCanvas(opts, context);\n        },\n        onAnimationFinish: function onAnimationFinish() {\n          _this.uevent.trigger('renderComplete');\n        } });\n\n      break;\n    case 'radar':\n      this.animationInstance = new Animation({\n        timing: opts.timing,\n        duration: duration,\n        onProcess: function onProcess(process) {\n          context.clearRect(0, 0, opts.width, opts.height);\n          if (opts.rotate) {\n            contextRotate(context, opts);\n          }\n          opts.chartData.radarData = drawRadarDataPoints(series, opts, config, context, process);\n          drawLegend(opts.series, opts, config, context, opts.chartData);\n          drawToolTipBridge(opts, config, context, process);\n          drawCanvas(opts, context);\n        },\n        onAnimationFinish: function onAnimationFinish() {\n          _this.uevent.trigger('renderComplete');\n        } });\n\n      break;\n    case 'arcbar':\n      this.animationInstance = new Animation({\n        timing: opts.timing,\n        duration: duration,\n        onProcess: function onProcess(process) {\n          context.clearRect(0, 0, opts.width, opts.height);\n          if (opts.rotate) {\n            contextRotate(context, opts);\n          }\n          opts.chartData.arcbarData = drawArcbarDataPoints(series, opts, config, context, process);\n          drawCanvas(opts, context);\n        },\n        onAnimationFinish: function onAnimationFinish() {\n          _this.uevent.trigger('renderComplete');\n        } });\n\n      break;\n    case 'gauge':\n      this.animationInstance = new Animation({\n        timing: opts.timing,\n        duration: duration,\n        onProcess: function onProcess(process) {\n          context.clearRect(0, 0, opts.width, opts.height);\n          if (opts.rotate) {\n            contextRotate(context, opts);\n          }\n          opts.chartData.gaugeData = drawGaugeDataPoints(categories, series, opts, config, context, process);\n          drawCanvas(opts, context);\n        },\n        onAnimationFinish: function onAnimationFinish() {\n          _this.uevent.trigger('renderComplete');\n        } });\n\n      break;\n    case 'candle':\n      this.animationInstance = new Animation({\n        timing: opts.timing,\n        duration: duration,\n        onProcess: function onProcess(process) {\n          context.clearRect(0, 0, opts.width, opts.height);\n          if (opts.rotate) {\n            contextRotate(context, opts);\n          }\n          drawYAxisGrid(categories, opts, config, context);\n          drawXAxis(categories, opts, config, context);\n          var _drawCandleDataPoints = drawCandleDataPoints(series, seriesMA, opts, config, context, process),\n          xAxisPoints = _drawCandleDataPoints.xAxisPoints,\n          calPoints = _drawCandleDataPoints.calPoints,\n          eachSpacing = _drawCandleDataPoints.eachSpacing;\n          opts.chartData.xAxisPoints = xAxisPoints;\n          opts.chartData.calPoints = calPoints;\n          opts.chartData.eachSpacing = eachSpacing;\n          drawYAxis(series, opts, config, context);\n          if (opts.enableMarkLine !== false && process === 1) {\n            drawMarkLine(opts, config, context);\n          }\n          if (seriesMA) {\n            drawLegend(seriesMA, opts, config, context, opts.chartData);\n          } else {\n            drawLegend(opts.series, opts, config, context, opts.chartData);\n          }\n          drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);\n          drawCanvas(opts, context);\n        },\n        onAnimationFinish: function onAnimationFinish() {\n          _this.uevent.trigger('renderComplete');\n        } });\n\n      break;}\n\n}\n\nfunction uChartsEvent() {\n  this.events = {};\n}\n\nuChartsEvent.prototype.addEventListener = function (type, listener) {\n  this.events[type] = this.events[type] || [];\n  this.events[type].push(listener);\n};\n\nuChartsEvent.prototype.delEventListener = function (type) {\n  this.events[type] = [];\n};\n\nuChartsEvent.prototype.trigger = function () {\n  for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n    args[_key] = arguments[_key];\n  }\n  var type = args[0];\n  var params = args.slice(1);\n  if (!!this.events[type]) {\n    this.events[type].forEach(function (listener) {\n      try {\n        listener.apply(null, params);\n      } catch (e) {\n        //console.log('[uCharts] '+e);\n      }\n    });\n  }\n};\n\nvar uCharts = function uCharts(opts) {\n  opts.pix = opts.pixelRatio ? opts.pixelRatio : 1;\n  opts.fontSize = opts.fontSize ? opts.fontSize : 13;\n  opts.fontColor = opts.fontColor ? opts.fontColor : config.fontColor;\n  if (opts.background == \"\" || opts.background == \"none\") {\n    opts.background = \"#FFFFFF\";\n  }\n  opts.title = assign({}, opts.title);\n  opts.subtitle = assign({}, opts.subtitle);\n  opts.duration = opts.duration ? opts.duration : 1000;\n  opts.yAxis = assign({}, {\n    data: [],\n    showTitle: false,\n    disabled: false,\n    disableGrid: false,\n    gridSet: 'number',\n    splitNumber: 5,\n    gridType: 'solid',\n    dashLength: 4 * opts.pix,\n    gridColor: '#cccccc',\n    padding: 10,\n    fontColor: '#666666' },\n  opts.yAxis);\n  opts.xAxis = assign({}, {\n    rotateLabel: false,\n    rotateAngle: 45,\n    disabled: false,\n    disableGrid: false,\n    splitNumber: 5,\n    calibration: false,\n    gridType: 'solid',\n    dashLength: 4,\n    scrollAlign: 'left',\n    boundaryGap: 'center',\n    axisLine: true,\n    axisLineColor: '#cccccc' },\n  opts.xAxis);\n  opts.xAxis.scrollPosition = opts.xAxis.scrollAlign;\n  opts.legend = assign({}, {\n    show: true,\n    position: 'bottom',\n    float: 'center',\n    backgroundColor: 'rgba(0,0,0,0)',\n    borderColor: 'rgba(0,0,0,0)',\n    borderWidth: 0,\n    padding: 5,\n    margin: 5,\n    itemGap: 10,\n    fontSize: opts.fontSize,\n    lineHeight: opts.fontSize,\n    fontColor: opts.fontColor,\n    formatter: {},\n    hiddenColor: '#CECECE' },\n  opts.legend);\n  opts.extra = assign({}, opts.extra);\n  opts.rotate = opts.rotate ? true : false;\n  opts.animation = opts.animation ? true : false;\n  opts.rotate = opts.rotate ? true : false;\n  opts.canvas2d = opts.canvas2d ? true : false;\n\n  var config$$1 = assign({}, config);\n  config$$1.color = opts.color ? opts.color : config$$1.color;\n  if (opts.type == 'pie') {\n    config$$1.pieChartLinePadding = opts.dataLabel === false ? 0 : opts.extra.pie.labelWidth * opts.pix || config$$1.pieChartLinePadding * opts.pix;\n  }\n  if (opts.type == 'ring') {\n    config$$1.pieChartLinePadding = opts.dataLabel === false ? 0 : opts.extra.ring.labelWidth * opts.pix || config$$1.pieChartLinePadding * opts.pix;\n  }\n  if (opts.type == 'rose') {\n    config$$1.pieChartLinePadding = opts.dataLabel === false ? 0 : opts.extra.rose.labelWidth * opts.pix || config$$1.pieChartLinePadding * opts.pix;\n  }\n  config$$1.pieChartTextPadding = opts.dataLabel === false ? 0 : config$$1.pieChartTextPadding * opts.pix;\n\n  //灞忓箷鏃嬭浆\n  config$$1.rotate = opts.rotate;\n  if (opts.rotate) {\n    var tempWidth = opts.width;\n    var tempHeight = opts.height;\n    opts.width = tempHeight;\n    opts.height = tempWidth;\n  }\n\n  //閫傞厤楂樺垎灞廫n  opts.padding = opts.padding ? opts.padding : config$$1.padding;\n  config$$1.yAxisWidth = config.yAxisWidth * opts.pix;\n  config$$1.xAxisHeight = config.xAxisHeight * opts.pix;\n  if (opts.enableScroll && opts.xAxis.scrollShow) {\n    config$$1.xAxisHeight += 6 * opts.pix;\n  }\n  config$$1.fontSize = opts.fontSize * opts.pix;\n  config$$1.titleFontSize = config.titleFontSize * opts.pix;\n  config$$1.subtitleFontSize = config.subtitleFontSize * opts.pix;\n  config$$1.toolTipPadding = config.toolTipPadding * opts.pix;\n  config$$1.toolTipLineHeight = config.toolTipLineHeight * opts.pix;\n  if (!opts.context) {\n    throw new Error('[uCharts] 鏈幏鍙栧埌context锛佹敞鎰忥細v2.0鐗堟湰鍚庯紝闇�瑕佽嚜琛岃幏鍙朿anvas鐨勭粯鍥句笂涓嬫枃骞朵紶鍏pts.context锛�');\n  }\n  this.context = opts.context;\n  if (!this.context.setTextAlign) {\n    this.context.setStrokeStyle = function (e) {\n      return this.strokeStyle = e;\n    };\n    this.context.setLineWidth = function (e) {\n      return this.lineWidth = e;\n    };\n    this.context.setLineCap = function (e) {\n      return this.lineCap = e;\n    };\n    this.context.setFontSize = function (e) {\n      return this.font = e + \"px sans-serif\";\n    };\n    this.context.setFillStyle = function (e) {\n      return this.fillStyle = e;\n    };\n    this.context.setTextAlign = function (e) {\n      return this.textAlign = e;\n    };\n    this.context.draw = function () {};\n  }\n  //鍏煎NVUEsetLineDash\n  if (!this.context.setLineDash) {\n    this.context.setLineDash = function (e) {};\n  }\n  opts.chartData = {};\n  this.uevent = new uChartsEvent();\n  this.scrollOption = {\n    currentOffset: 0,\n    startTouchX: 0,\n    distance: 0,\n    lastMoveTime: 0 };\n\n  this.opts = opts;\n  this.config = config$$1;\n  drawCharts.call(this, opts.type, opts, config$$1, this.context);\n};\n\nuCharts.prototype.updateData = function () {\n  var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  this.opts = assign({}, this.opts, data);\n  this.opts.updateData = true;\n  var scrollPosition = data.scrollPosition || 'current';\n  switch (scrollPosition) {\n    case 'current':\n      this.opts._scrollDistance_ = this.scrollOption.currentOffset;\n      break;\n    case 'left':\n      this.opts._scrollDistance_ = 0;\n      this.scrollOption = {\n        currentOffset: 0,\n        startTouchX: 0,\n        distance: 0,\n        lastMoveTime: 0 };\n\n      break;\n    case 'right':\n      var _calYAxisData = calYAxisData(this.opts.series, this.opts, this.config, this.context),yAxisWidth = _calYAxisData.yAxisWidth;\n      this.config.yAxisWidth = yAxisWidth;\n      var offsetLeft = 0;\n      var _getXAxisPoints0 = getXAxisPoints(this.opts.categories, this.opts, this.config),xAxisPoints = _getXAxisPoints0.xAxisPoints,\n      startX = _getXAxisPoints0.startX,\n      endX = _getXAxisPoints0.endX,\n      eachSpacing = _getXAxisPoints0.eachSpacing;\n      var totalWidth = eachSpacing * (xAxisPoints.length - 1);\n      var screenWidth = endX - startX;\n      offsetLeft = screenWidth - totalWidth;\n      this.scrollOption = {\n        currentOffset: offsetLeft,\n        startTouchX: offsetLeft,\n        distance: 0,\n        lastMoveTime: 0 };\n\n      this.opts._scrollDistance_ = offsetLeft;\n      break;}\n\n  drawCharts.call(this, this.opts.type, this.opts, this.config, this.context);\n};\n\nuCharts.prototype.zoom = function () {\n  var val = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.opts.xAxis.itemCount;\n  if (this.opts.enableScroll !== true) {\n    __f__(\"log\", '[uCharts] 璇峰惎鐢ㄦ粴鍔ㄦ潯鍚庝娇鐢�', \" at uni_modules/qiun-data-charts/js_sdk/u-charts/u-charts.js:6828\");\n    return;\n  }\n  //褰撳墠灞忓箷涓棿鐐筡n  var centerPoint = Math.round(Math.abs(this.scrollOption.currentOffset) / this.opts.chartData.eachSpacing) + Math.round(this.opts.xAxis.itemCount / 2);\n  this.opts.animation = false;\n  this.opts.xAxis.itemCount = val.itemCount;\n  //閲嶆柊璁$畻x杞村亸绉昏窛绂籠n  var _calYAxisData = calYAxisData(this.opts.series, this.opts, this.config, this.context),\n  yAxisWidth = _calYAxisData.yAxisWidth;\n  this.config.yAxisWidth = yAxisWidth;\n  var offsetLeft = 0;\n  var _getXAxisPoints0 = getXAxisPoints(this.opts.categories, this.opts, this.config),\n  xAxisPoints = _getXAxisPoints0.xAxisPoints,\n  startX = _getXAxisPoints0.startX,\n  endX = _getXAxisPoints0.endX,\n  eachSpacing = _getXAxisPoints0.eachSpacing;\n  var centerLeft = eachSpacing * centerPoint;\n  var screenWidth = endX - startX;\n  var MaxLeft = screenWidth - eachSpacing * (xAxisPoints.length - 1);\n  offsetLeft = screenWidth / 2 - centerLeft;\n  if (offsetLeft > 0) {\n    offsetLeft = 0;\n  }\n  if (offsetLeft < MaxLeft) {\n    offsetLeft = MaxLeft;\n  }\n  this.scrollOption = {\n    currentOffset: offsetLeft,\n    startTouchX: 0,\n    distance: 0,\n    lastMoveTime: 0 };\n\n  calValidDistance(this, offsetLeft, this.opts.chartData, this.config, this.opts);\n  this.opts._scrollDistance_ = offsetLeft;\n  drawCharts.call(this, this.opts.type, this.opts, this.config, this.context);\n};\n\nuCharts.prototype.dobuleZoom = function (e) {\n  if (this.opts.enableScroll !== true) {\n    __f__(\"log\", '[uCharts] 璇峰惎鐢ㄦ粴鍔ㄦ潯鍚庝娇鐢�', \" at uni_modules/qiun-data-charts/js_sdk/u-charts/u-charts.js:6868\");\n    return;\n  }\n  var tcs = e.changedTouches;\n  if (tcs.length < 2) {\n    return;\n  }\n  for (var i = 0; i < tcs.length; i++) {\n    tcs[i].x = tcs[i].x ? tcs[i].x : tcs[i].clientX;\n    tcs[i].y = tcs[i].y ? tcs[i].y : tcs[i].clientY;\n  }\n  var ntcs = [getTouches(tcs[0], this.opts, e), getTouches(tcs[1], this.opts, e)];\n  var xlength = Math.abs(ntcs[0].x - ntcs[1].x);\n  // 璁板綍鍒濆鐨勪袱鎸囦箣闂寸殑鏁版嵁\n  if (!this.scrollOption.moveCount) {\n    var cts0 = { changedTouches: [{ x: tcs[0].x, y: this.opts.area[0] / this.opts.pix + 2 }] };\n    var cts1 = { changedTouches: [{ x: tcs[1].x, y: this.opts.area[0] / this.opts.pix + 2 }] };\n    if (this.opts.rotate) {\n      cts0 = { changedTouches: [{ x: this.opts.height / this.opts.pix - this.opts.area[0] / this.opts.pix - 2, y: tcs[0].y }] };\n      cts1 = { changedTouches: [{ x: this.opts.height / this.opts.pix - this.opts.area[0] / this.opts.pix - 2, y: tcs[1].y }] };\n    }\n    var moveCurrent1 = this.getCurrentDataIndex(cts0).index;\n    var moveCurrent2 = this.getCurrentDataIndex(cts1).index;\n    var moveCount = Math.abs(moveCurrent1 - moveCurrent2);\n    this.scrollOption.moveCount = moveCount;\n    this.scrollOption.moveCurrent1 = Math.min(moveCurrent1, moveCurrent2);\n    this.scrollOption.moveCurrent2 = Math.max(moveCurrent1, moveCurrent2);\n    return;\n  }\n\n  var currentEachSpacing = xlength / this.scrollOption.moveCount;\n  var itemCount = (this.opts.width - this.opts.area[1] - this.opts.area[3]) / currentEachSpacing;\n  itemCount = itemCount <= 2 ? 2 : itemCount;\n  itemCount = itemCount >= this.opts.categories.length ? this.opts.categories.length : itemCount;\n  this.opts.animation = false;\n  this.opts.xAxis.itemCount = itemCount;\n  // 閲嶆柊璁$畻婊氬姩鏉″亸绉昏窛绂籠n  var offsetLeft = 0;\n  var _getXAxisPoints0 = getXAxisPoints(this.opts.categories, this.opts, this.config),\n  xAxisPoints = _getXAxisPoints0.xAxisPoints,\n  startX = _getXAxisPoints0.startX,\n  endX = _getXAxisPoints0.endX,\n  eachSpacing = _getXAxisPoints0.eachSpacing;\n  var currentLeft = eachSpacing * this.scrollOption.moveCurrent1;\n  var screenWidth = endX - startX;\n  var MaxLeft = screenWidth - eachSpacing * (xAxisPoints.length - 1);\n  offsetLeft = -currentLeft + Math.min(ntcs[0].x, ntcs[1].x) - this.opts.area[3] - eachSpacing;\n  if (offsetLeft > 0) {\n    offsetLeft = 0;\n  }\n  if (offsetLeft < MaxLeft) {\n    offsetLeft = MaxLeft;\n  }\n  this.scrollOption.currentOffset = offsetLeft;\n  this.scrollOption.startTouchX = 0;\n  this.scrollOption.distance = 0;\n  calValidDistance(this, offsetLeft, this.opts.chartData, this.config, this.opts);\n  this.opts._scrollDistance_ = offsetLeft;\n  drawCharts.call(this, this.opts.type, this.opts, this.config, this.context);\n};\n\nuCharts.prototype.stopAnimation = function () {\n  this.animationInstance && this.animationInstance.stop();\n};\n\nuCharts.prototype.addEventListener = function (type, listener) {\n  this.uevent.addEventListener(type, listener);\n};\n\nuCharts.prototype.delEventListener = function (type) {\n  this.uevent.delEventListener(type);\n};\n\nuCharts.prototype.getCurrentDataIndex = function (e) {\n  var touches = null;\n  if (e.changedTouches) {\n    touches = e.changedTouches[0];\n  } else {\n    touches = e.mp.changedTouches[0];\n  }\n  if (touches) {\n    var _touches$ = getTouches(touches, this.opts, e);\n    if (this.opts.type === 'pie' || this.opts.type === 'ring') {\n      return findPieChartCurrentIndex({\n        x: _touches$.x,\n        y: _touches$.y },\n      this.opts.chartData.pieData, this.opts);\n    } else if (this.opts.type === 'rose') {\n      return findRoseChartCurrentIndex({\n        x: _touches$.x,\n        y: _touches$.y },\n      this.opts.chartData.pieData, this.opts);\n    } else if (this.opts.type === 'radar') {\n      return findRadarChartCurrentIndex({\n        x: _touches$.x,\n        y: _touches$.y },\n      this.opts.chartData.radarData, this.opts.categories.length);\n    } else if (this.opts.type === 'funnel') {\n      return findFunnelChartCurrentIndex({\n        x: _touches$.x,\n        y: _touches$.y },\n      this.opts.chartData.funnelData);\n    } else if (this.opts.type === 'map') {\n      return findMapChartCurrentIndex({\n        x: _touches$.x,\n        y: _touches$.y },\n      this.opts);\n    } else if (this.opts.type === 'word') {\n      return findWordChartCurrentIndex({\n        x: _touches$.x,\n        y: _touches$.y },\n      this.opts.chartData.wordCloudData);\n    } else if (this.opts.type === 'bar') {\n      return findBarChartCurrentIndex({\n        x: _touches$.x,\n        y: _touches$.y },\n      this.opts.chartData.calPoints, this.opts, this.config, Math.abs(this.scrollOption.currentOffset));\n    } else {\n      return findCurrentIndex({\n        x: _touches$.x,\n        y: _touches$.y },\n      this.opts.chartData.calPoints, this.opts, this.config, Math.abs(this.scrollOption.currentOffset));\n    }\n  }\n  return -1;\n};\n\nuCharts.prototype.getLegendDataIndex = function (e) {\n  var touches = null;\n  if (e.changedTouches) {\n    touches = e.changedTouches[0];\n  } else {\n    touches = e.mp.changedTouches[0];\n  }\n  if (touches) {\n    var _touches$ = getTouches(touches, this.opts, e);\n    return findLegendIndex({\n      x: _touches$.x,\n      y: _touches$.y },\n    this.opts.chartData.legendData);\n  }\n  return -1;\n};\n\nuCharts.prototype.touchLegend = function (e) {\n  var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  var touches = null;\n  if (e.changedTouches) {\n    touches = e.changedTouches[0];\n  } else {\n    touches = e.mp.changedTouches[0];\n  }\n  if (touches) {\n    var _touches$ = getTouches(touches, this.opts, e);\n    var index = this.getLegendDataIndex(e);\n    if (index >= 0) {\n      if (this.opts.type == 'candle') {\n        this.opts.seriesMA[index].show = !this.opts.seriesMA[index].show;\n      } else {\n        this.opts.series[index].show = !this.opts.series[index].show;\n      }\n      this.opts.animation = option.animation ? true : false;\n      this.opts._scrollDistance_ = this.scrollOption.currentOffset;\n      drawCharts.call(this, this.opts.type, this.opts, this.config, this.context);\n    }\n  }\n\n};\n\nuCharts.prototype.showToolTip = function (e) {var _this3 = this;\n  var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  var touches = null;\n  if (e.changedTouches) {\n    touches = e.changedTouches[0];\n  } else {\n    touches = e.mp.changedTouches[0];\n  }\n  if (!touches) {\n    __f__(\"log\", \"[uCharts] 鏈幏鍙栧埌event鍧愭爣淇℃伅\", \" at uni_modules/qiun-data-charts/js_sdk/u-charts/u-charts.js:7046\");\n  }\n  var _touches$ = getTouches(touches, this.opts, e);\n  var currentOffset = this.scrollOption.currentOffset;\n  var opts = assign({}, this.opts, {\n    _scrollDistance_: currentOffset,\n    animation: false });\n\n  if (this.opts.type === 'line' || this.opts.type === 'area' || this.opts.type === 'column' || this.opts.type === 'scatter' || this.opts.type === 'bubble') {\n    var current = this.getCurrentDataIndex(e);\n    var index = option.index == undefined ? current.index : option.index;\n    if (index > -1 || index.length > 0) {\n      var seriesData = getSeriesDataItem(this.opts.series, index, current.group);\n      if (seriesData.length !== 0) {\n        var _getToolTipData = getToolTipData(seriesData, this.opts, index, current.group, this.opts.categories, option),\n        textList = _getToolTipData.textList,\n        offset = _getToolTipData.offset;\n        offset.y = _touches$.y;\n        opts.tooltip = {\n          textList: option.textList !== undefined ? option.textList : textList,\n          offset: option.offset !== undefined ? option.offset : offset,\n          option: option,\n          index: index };\n\n      }\n    }\n    drawCharts.call(this, opts.type, opts, this.config, this.context);\n  }\n  if (this.opts.type === 'mount') {\n    var index = option.index == undefined ? this.getCurrentDataIndex(e).index : option.index;\n    if (index > -1) {\n      var opts = assign({}, this.opts, { animation: false });\n      var seriesData = assign({}, opts._series_[index]);\n      var textList = [{\n        text: option.formatter ? option.formatter(seriesData, undefined, index, opts) : seriesData.name + ': ' + seriesData.data,\n        color: seriesData.color }];\n\n      var offset = {\n        x: opts.chartData.calPoints[index].x,\n        y: _touches$.y };\n\n      opts.tooltip = {\n        textList: option.textList ? option.textList : textList,\n        offset: option.offset !== undefined ? option.offset : offset,\n        option: option,\n        index: index };\n\n    }\n\n    drawCharts.call(this, opts.type, opts, this.config, this.context);\n  }\n  if (this.opts.type === 'bar') {\n    var current = this.getCurrentDataIndex(e);\n    var index = option.index == undefined ? current.index : option.index;\n    if (index > -1 || index.length > 0) {\n      var seriesData = getSeriesDataItem(this.opts.series, index, current.group);\n      if (seriesData.length !== 0) {\n        var _getToolTipData = getToolTipData(seriesData, this.opts, index, current.group, this.opts.categories, option),\n        textList = _getToolTipData.textList,\n        offset = _getToolTipData.offset;\n        offset.x = _touches$.x;\n        opts.tooltip = {\n          textList: option.textList !== undefined ? option.textList : textList,\n          offset: option.offset !== undefined ? option.offset : offset,\n          option: option,\n          index: index };\n\n      }\n    }\n    drawCharts.call(this, opts.type, opts, this.config, this.context);\n  }\n  if (this.opts.type === 'mix') {\n    var current = this.getCurrentDataIndex(e);\n    var index = option.index == undefined ? current.index : option.index;\n    if (index > -1) {\n      var currentOffset = this.scrollOption.currentOffset;\n      var opts = assign({}, this.opts, {\n        _scrollDistance_: currentOffset,\n        animation: false });\n\n      var seriesData = getSeriesDataItem(this.opts.series, index);\n      if (seriesData.length !== 0) {\n        var _getMixToolTipData = getMixToolTipData(seriesData, this.opts, index, this.opts.categories, option),\n        textList = _getMixToolTipData.textList,\n        offset = _getMixToolTipData.offset;\n        offset.y = _touches$.y;\n        opts.tooltip = {\n          textList: option.textList ? option.textList : textList,\n          offset: option.offset !== undefined ? option.offset : offset,\n          option: option,\n          index: index };\n\n      }\n    }\n    drawCharts.call(this, opts.type, opts, this.config, this.context);\n  }\n  if (this.opts.type === 'candle') {\n    var current = this.getCurrentDataIndex(e);\n    var index = option.index == undefined ? current.index : option.index;\n    if (index > -1) {\n      var currentOffset = this.scrollOption.currentOffset;\n      var opts = assign({}, this.opts, {\n        _scrollDistance_: currentOffset,\n        animation: false });\n\n      var seriesData = getSeriesDataItem(this.opts.series, index);\n      if (seriesData.length !== 0) {\n        var _getToolTipData = getCandleToolTipData(this.opts.series[0].data, seriesData, this.opts, index, this.opts.categories, this.opts.extra.candle, option),\n        textList = _getToolTipData.textList,\n        offset = _getToolTipData.offset;\n        offset.y = _touches$.y;\n        opts.tooltip = {\n          textList: option.textList ? option.textList : textList,\n          offset: option.offset !== undefined ? option.offset : offset,\n          option: option,\n          index: index };\n\n      }\n    }\n    drawCharts.call(this, opts.type, opts, this.config, this.context);\n  }\n  if (this.opts.type === 'pie' || this.opts.type === 'ring' || this.opts.type === 'rose' || this.opts.type === 'funnel') {\n    var index = option.index == undefined ? this.getCurrentDataIndex(e) : option.index;\n    if (index > -1) {\n      var opts = assign({}, this.opts, { animation: false });\n      var seriesData = assign({}, opts._series_[index]);\n      var textList = [{\n        text: option.formatter ? option.formatter(seriesData, undefined, index, opts) : seriesData.name + ': ' + seriesData.data,\n        color: seriesData.color }];\n\n      var offset = {\n        x: _touches$.x,\n        y: _touches$.y };\n\n      opts.tooltip = {\n        textList: option.textList ? option.textList : textList,\n        offset: option.offset !== undefined ? option.offset : offset,\n        option: option,\n        index: index };\n\n    }\n    drawCharts.call(this, opts.type, opts, this.config, this.context);\n  }\n  if (this.opts.type === 'map') {\n    var index = option.index == undefined ? this.getCurrentDataIndex(e) : option.index;\n    if (index > -1) {\n      var opts = assign({}, this.opts, { animation: false });\n      var seriesData = assign({}, this.opts.series[index]);\n      seriesData.name = seriesData.properties.name;\n      var textList = [{\n        text: option.formatter ? option.formatter(seriesData, undefined, index, this.opts) : seriesData.name,\n        color: seriesData.color }];\n\n      var offset = {\n        x: _touches$.x,\n        y: _touches$.y };\n\n      opts.tooltip = {\n        textList: option.textList ? option.textList : textList,\n        offset: option.offset !== undefined ? option.offset : offset,\n        option: option,\n        index: index };\n\n    }\n    opts.updateData = false;\n    drawCharts.call(this, opts.type, opts, this.config, this.context);\n  }\n  if (this.opts.type === 'word') {\n    var index = option.index == undefined ? this.getCurrentDataIndex(e) : option.index;\n    if (index > -1) {\n      var opts = assign({}, this.opts, { animation: false });\n      var seriesData = assign({}, this.opts.series[index]);\n      var textList = [{\n        text: option.formatter ? option.formatter(seriesData, undefined, index, this.opts) : seriesData.name,\n        color: seriesData.color }];\n\n      var offset = {\n        x: _touches$.x,\n        y: _touches$.y };\n\n      opts.tooltip = {\n        textList: option.textList ? option.textList : textList,\n        offset: option.offset !== undefined ? option.offset : offset,\n        option: option,\n        index: index };\n\n    }\n    opts.updateData = false;\n    drawCharts.call(this, opts.type, opts, this.config, this.context);\n  }\n  if (this.opts.type === 'radar') {\n    var index = option.index == undefined ? this.getCurrentDataIndex(e) : option.index;\n    if (index > -1) {\n      var opts = assign({}, this.opts, { animation: false });\n      var seriesData = getSeriesDataItem(this.opts.series, index);\n      if (seriesData.length !== 0) {\n        var textList = seriesData.map(function (item) {\n          return {\n            text: option.formatter ? option.formatter(item, _this3.opts.categories[index], index, _this3.opts) : item.name + ': ' + item.data,\n            color: item.color };\n\n        });\n        var offset = {\n          x: _touches$.x,\n          y: _touches$.y };\n\n        opts.tooltip = {\n          textList: option.textList ? option.textList : textList,\n          offset: option.offset !== undefined ? option.offset : offset,\n          option: option,\n          index: index };\n\n      }\n    }\n    drawCharts.call(this, opts.type, opts, this.config, this.context);\n  }\n};\n\nuCharts.prototype.translate = function (distance) {\n  this.scrollOption = {\n    currentOffset: distance,\n    startTouchX: distance,\n    distance: 0,\n    lastMoveTime: 0 };\n\n  var opts = assign({}, this.opts, {\n    _scrollDistance_: distance,\n    animation: false });\n\n  drawCharts.call(this, this.opts.type, opts, this.config, this.context);\n};\n\nuCharts.prototype.scrollStart = function (e) {\n  var touches = null;\n  if (e.changedTouches) {\n    touches = e.changedTouches[0];\n  } else {\n    touches = e.mp.changedTouches[0];\n  }\n  var _touches$ = getTouches(touches, this.opts, e);\n  if (touches && this.opts.enableScroll === true) {\n    this.scrollOption.startTouchX = _touches$.x;\n  }\n};\n\nuCharts.prototype.scroll = function (e) {\n  if (this.scrollOption.lastMoveTime === 0) {\n    this.scrollOption.lastMoveTime = Date.now();\n  }\n  var Limit = this.opts.touchMoveLimit || 60;\n  var currMoveTime = Date.now();\n  var duration = currMoveTime - this.scrollOption.lastMoveTime;\n  if (duration < Math.floor(1000 / Limit)) return;\n  if (this.scrollOption.startTouchX == 0) return;\n  this.scrollOption.lastMoveTime = currMoveTime;\n  var touches = null;\n  if (e.changedTouches) {\n    touches = e.changedTouches[0];\n  } else {\n    touches = e.mp.changedTouches[0];\n  }\n  if (touches && this.opts.enableScroll === true) {\n    var _touches$ = getTouches(touches, this.opts, e);\n    var _distance;\n    _distance = _touches$.x - this.scrollOption.startTouchX;\n    var currentOffset = this.scrollOption.currentOffset;\n    var validDistance = calValidDistance(this, currentOffset + _distance, this.opts.chartData, this.config, this.opts);\n    this.scrollOption.distance = _distance = validDistance - currentOffset;\n    var opts = assign({}, this.opts, {\n      _scrollDistance_: currentOffset + _distance,\n      animation: false });\n\n    this.opts = opts;\n    drawCharts.call(this, opts.type, opts, this.config, this.context);\n    return currentOffset + _distance;\n  }\n};\n\nuCharts.prototype.scrollEnd = function (e) {\n  if (this.opts.enableScroll === true) {\n    var _scrollOption = this.scrollOption,\n    currentOffset = _scrollOption.currentOffset,\n    distance = _scrollOption.distance;\n    this.scrollOption.currentOffset = currentOffset + distance;\n    this.scrollOption.distance = 0;\n    this.scrollOption.moveCount = 0;\n  }\n};var _default =\n\nuCharts;exports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 10)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9qc19zZGsvdS1jaGFydHMvdS1jaGFydHMuanMiXSwibmFtZXMiOlsiY29uZmlnIiwidmVyc2lvbiIsInlBeGlzV2lkdGgiLCJ4QXhpc0hlaWdodCIsInhBeGlzVGV4dFBhZGRpbmciLCJwYWRkaW5nIiwicGl4ZWxSYXRpbyIsInJvdGF0ZSIsImZvbnRTaXplIiwiZm9udENvbG9yIiwiZGF0YVBvaW50U2hhcGUiLCJjb2xvciIsImxpbmVhckNvbG9yIiwicGllQ2hhcnRMaW5lUGFkZGluZyIsInBpZUNoYXJ0VGV4dFBhZGRpbmciLCJ0aXRsZUZvbnRTaXplIiwic3VidGl0bGVGb250U2l6ZSIsInRvb2xUaXBQYWRkaW5nIiwidG9vbFRpcEJhY2tncm91bmQiLCJ0b29sVGlwT3BhY2l0eSIsInRvb2xUaXBMaW5lSGVpZ2h0IiwicmFkYXJMYWJlbFRleHRNYXJnaW4iLCJhc3NpZ24iLCJ0YXJnZXQiLCJ2YXJBcmdzIiwiVHlwZUVycm9yIiwibGVuZ3RoIiwiZGVlcEFzc2lnbiIsIm9iajEiLCJvYmoyIiwia2V5IiwidG9TdHJpbmciLCJmb3JFYWNoIiwidmFsIiwidXRpbCIsInRvRml4ZWQiLCJudW0iLCJsaW1pdCIsImlzRmxvYXQiLCJhcHByb3hpbWF0ZWx5RXF1YWwiLCJudW0xIiwibnVtMiIsIk1hdGgiLCJhYnMiLCJpc1NhbWVTaWduIiwiaXNTYW1lWENvb3JkaW5hdGVBcmVhIiwicDEiLCJwMiIsIngiLCJpc0NvbGxpc2lvbiIsImVuZCIsInN0YXJ0Iiwid2lkdGgiLCJ5IiwiaGVpZ2h0IiwiZmxhZyIsImdldEg1T2Zmc2V0IiwiZSIsIm1wIiwiY2hhbmdlZFRvdWNoZXMiLCJwdXNoIiwib2Zmc2V0WCIsIm9mZnNldFkiLCJoZXhUb1JnYiIsImhleFZhbHVlIiwib3BjIiwicmd4IiwiaGV4IiwicmVwbGFjZSIsIm0iLCJyIiwiZyIsImIiLCJyZ2IiLCJleGVjIiwicGFyc2VJbnQiLCJmaW5kUmFuZ2UiLCJ0eXBlIiwiaXNOYU4iLCJFcnJvciIsIm11bHRpcGxlIiwiY2VpbCIsImZsb29yIiwiY2FsQ2FuZGxlTUEiLCJkYXlBcnIiLCJuYW1lQXJyIiwiY29sb3JBcnIiLCJrZGF0YSIsInNlcmllc1RlbXAiLCJrIiwic2VyaWVzSXRlbSIsImRhdGEiLCJuYW1lIiwiaSIsImxlbiIsInN1bSIsImoiLCJjYWxWYWxpZERpc3RhbmNlIiwic2VsZiIsImRpc3RhbmNlIiwiY2hhcnREYXRhIiwib3B0cyIsImRhdGFDaGFydEFyZWFXaWR0aCIsImFyZWEiLCJkYXRhQ2hhcnRXaWR0aCIsImVhY2hTcGFjaW5nIiwieEF4aXNEYXRhIiwieEF4aXNQb2ludHMiLCJleHRyYSIsIm1vdW50Iiwid2lkdGhSYXRpbyIsInZhbGlkRGlzdGFuY2UiLCJ1ZXZlbnQiLCJ0cmlnZ2VyIiwic2Nyb2xsT3B0aW9uIiwicG9zaXRpb24iLCJ4QXhpcyIsInNjcm9sbFBvc2l0aW9uIiwiaXNJbkFuZ2xlUmFuZ2UiLCJhbmdsZSIsInN0YXJ0QW5nbGUiLCJlbmRBbmdsZSIsImFkanVzdCIsIlBJIiwiY3JlYXRlQ3VydmVDb250cm9sUG9pbnRzIiwicG9pbnRzIiwiaXNOb3RNaWRkbGVQb2ludCIsIm1heCIsIm1pbiIsImlzTm90TWlkZGxlUG9pbnRYIiwiYSIsInBBeCIsInBBeSIsInBCeCIsInBCeSIsImxhc3QiLCJjdHJBIiwiY3RyQiIsImNvbnZlcnRDb29yZGluYXRlT3JpZ2luIiwiY2VudGVyIiwiYXZvaWRDb2xsaXNpb24iLCJvYmoiLCJmaXhQaWVTZXJpZXMiLCJzZXJpZXMiLCJwaWVTZXJpZXNBcnIiLCJjb25zdHJ1Y3RvciIsImluZGV4T2YiLCJfcGllU2VyaWVzXyIsIm9sZHNlcmllcyIsImZvcm1hdHRlciIsInZhbHVlIiwiZmlsbFNlcmllcyIsImluZGV4IiwiaXRlbSIsImxpbmVhckluZGV4Iiwic2hvdyIsInBvaW50U2hhcGUiLCJsZWdlbmRTaGFwZSIsImZpbGxDdXN0b21Db2xvciIsImxpbmVhclR5cGUiLCJjdXN0b21Db2xvciIsIm5ld2NvbG9yIiwiY2hhemhpIiwiZ2V0RGF0YVJhbmdlIiwibWluRGF0YSIsIm1heERhdGEiLCJyYW5nZSIsIm1pblJhbmdlIiwibWF4UmFuZ2UiLCJtZWFzdXJlVGV4dCIsInRleHQiLCJjb250ZXh0IiwiU3RyaW5nIiwidW5kZWZpbmVkIiwic2V0Rm9udFNpemUiLCJzcGxpdCIsInRlc3QiLCJkYXRhQ29tYmluZSIsInJlZHVjZSIsImNvbmNhdCIsImRhdGFDb21iaW5lU3RhY2siLCJBcnJheSIsImdldFRvdWNoZXMiLCJ0b3VjaGVzIiwiY2xpZW50WCIsInBpeCIsInBhZ2VZIiwiY3VycmVudFRhcmdldCIsIm9mZnNldFRvcCIsImdldFNlcmllc0RhdGFJdGVtIiwiZ3JvdXAiLCJuZXdTZXJpZXMiLCJpbmRleElzQXJyIiwidGVtcFNlcmllcyIsImZpbHRlclNlcmllcyIsInRtcGluZGV4Iiwic3R5bGUiLCJkaXNhYmxlTGVnZW5kIiwiZ2V0TWF4VGV4dExpc3RMZW5ndGgiLCJsaXN0IiwibGVuZ3RoTGlzdCIsIm1hcCIsImFwcGx5IiwiZ2V0UmFkYXJDb29yZGluYXRlU2VyaWVzIiwiZWFjaEFuZ2xlIiwiQ29vcmRpbmF0ZVNlcmllcyIsImdldFRvb2xUaXBEYXRhIiwic2VyaWVzRGF0YSIsImNhdGVnb3JpZXMiLCJvcHRpb24iLCJhcmd1bWVudHMiLCJjYWxQb2ludHMiLCJmaWx0ZXJQb2ludHMiLCJ0ZXh0TGlzdCIsInRpdGxlVGV4dCIsIm9mZnNldCIsInJvdW5kIiwiZ2V0TWl4VG9vbFRpcERhdGEiLCJmaWx0ZXIiLCJnZXRDYW5kbGVUb29sVGlwRGF0YSIsInVwQ29sb3IiLCJ1cEZpbGwiLCJkb3duQ29sb3IiLCJkb3duRmlsbCIsInRleHQxIiwidGV4dDIiLCJ0ZXh0MyIsInRleHQ0IiwidmFsaWRDYWxQb2ludHMiLCJmaW5kQ3VycmVudEluZGV4IiwiY3VycmVudFBvaW50cyIsImN1cnJlbnQiLCJzcGFjaW5nIiwiYm91bmRhcnlHYXAiLCJpc0luRXhhY3RDaGFydEFyZWEiLCJ0aW1lUG9pbnRzIiwicG9pbnRWYWx1ZSIsInBvaW50SW5kZXgiLCJtaW5WYWx1ZSIsImZpbmRCYXJDaGFydEN1cnJlbnRJbmRleCIsInlBeGlzUG9pbnRzIiwiZmluZExlZ2VuZEluZGV4IiwibGVnZW5kRGF0YSIsImN1cnJlbnRJbmRleCIsImdhcCIsImlzSW5FeGFjdExlZ2VuZEFyZWEiLCJmaW5kUmFkYXJDaGFydEN1cnJlbnRJbmRleCIsInJhZGFyRGF0YSIsImNvdW50IiwiZWFjaEFuZ2xlQXJlYSIsImlzSW5FeGFjdFBpZUNoYXJ0QXJlYSIsInJhZGl1cyIsImZpeEFuZ2xlIiwiYXRhbjIiLCJhbmdsZUxpc3QiLCJyYW5nZVN0YXJ0IiwicmFuZ2VFbmQiLCJmaW5kRnVubmVsQ2hhcnRDdXJyZW50SW5kZXgiLCJmdW5uZWxEYXRhIiwiZnVubmVsQXJlYSIsImZpbmRXb3JkQ2hhcnRDdXJyZW50SW5kZXgiLCJ3b3JkRGF0YSIsImZpbmRNYXBDaGFydEN1cnJlbnRJbmRleCIsImNEYXRhIiwibWFwRGF0YSIsInRtcCIsInBvaW50VG9Db29yZGluYXRlIiwiYm91bmRzIiwic2NhbGUiLCJ4b2Zmc2V0IiwieW9mZnNldCIsInBvaSIsImdlb21ldHJ5IiwiY29vcmRpbmF0ZXMiLCJpc1BvaVdpdGhpblBvbHkiLCJtZXJjYXRvciIsImZpbmRSb3NlQ2hhcnRDdXJyZW50SW5kZXgiLCJwaWVEYXRhIiwiZ2V0Um9zZURhdGFQb2ludHMiLCJfc2VyaWVzXyIsInJvc2UiLCJvZmZzZXRBbmdsZSIsIl9zdGFydF8iLCJfcm9zZV9wcm9wb3J0aW9uXyIsImZpbmRQaWVDaGFydEN1cnJlbnRJbmRleCIsImdldFBpZURhdGFQb2ludHMiLCJwaWUiLCJyaW5nIiwiX3Byb3BvcnRpb25fIiwicG93Iiwic3BsaXRQb2ludHMiLCJlYWNoU2VyaWVzIiwibmV3UG9pbnRzIiwiaXRlbXMiLCJjb25uZWN0TnVsbHMiLCJjYWxMZWdlbmREYXRhIiwid2hvbGVXaWR0aCIsIndob2xlSGVpZ2h0Iiwid2lkdGhBcnIiLCJoZWlnaHRBcnIiLCJsZWdlbmQiLCJtYXJnaW4iLCJzaGFwZVdpZHRoIiwic2hhcGVSaWdodCIsImxpbmVIZWlnaHQiLCJsZWdlbmRMaXN0Iiwid2lkdGhDb3VudCIsIndpZHRoQ291bnRBcnIiLCJjdXJyZW50Um93IiwibGVnZW5kVGV4dCIsIml0ZW1XaWR0aCIsIml0ZW1HYXAiLCJsZWdlbmRXaWR0aCIsImZsb2F0IiwibWF4SGVpZ2h0IiwibWF4TGVuZ3RoIiwibGluZU51bSIsInRlbXAiLCJzbGljZSIsIm1heFdpZHRoIiwiY2FsQ2F0ZWdvcmllc0RhdGEiLCJyZXN1bHQiLCJjYXRlZ29yaWVzVGV4dExlbnRoIiwieGl0ZW0iLCJtYXhUZXh0TGVuZ3RoIiwicm90YXRlTGFiZWwiLCJyb3RhdGVBbmdsZSIsInRlbXBIZWlnaHQiLCJzaW4iLCJlbmFibGVTY3JvbGwiLCJzY3JvbGxTaG93IiwiZGlzYWJsZWQiLCJnZXRYQXhpc1RleHRMaXN0Iiwic3RhY2siLCJzb3J0ZWQiLCJzdWJpdGVtIiwicmFuZ2VTcGFuIiwiZWFjaFJhbmdlIiwic3BsaXROdW1iZXIiLCJjYWxYQXhpc0RhdGEiLCJjb2x1bW5zdHlsZSIsImJhciIsInJhbmdlcyIsInJhbmdlc0Zvcm1hdCIsInhBeGlzU2NhbGVWYWx1ZXMiLCJPYmplY3QiLCJnZXRYQXhpc1BvaW50cyIsInRleHRMZW5ndGgiLCJnZXRSYWRhckRhdGFQb2ludHMiLCJwcm9jZXNzIiwicmFkYXJPcHRpb24iLCJyYWRhciIsImVhY2giLCJsaXN0SXRlbSIsInByb3BvcnRpb24iLCJjb3MiLCJfcmFkaXVzXyIsImdldEZ1bm5lbERhdGFQb2ludHMiLCJtaW5SYWRpdXMiLCJkYXRhQXJyIiwicmFkaXVzTGVuZ3RoIiwiZ2V0QXJjYmFyRGF0YVBvaW50cyIsImFyY2Jhck9wdGlvbiIsInRvdGFsQW5nbGUiLCJkaXJlY3Rpb24iLCJnZXRHYXVnZUFyY2JhckRhdGFQb2ludHMiLCJnZXRHYXVnZUF4aXNQb2ludHMiLCJ0ZW1wU3RhcnRBbmdsZSIsIl9zdGFydEFuZ2xlXyIsIl9lbmRBbmdsZV8iLCJnZXRHYXVnZURhdGFQb2ludHMiLCJnYXVnZU9wdGlvbiIsInBvaW50ZXIiLCJfb2xkQW5nbGVfIiwib2xkQW5nbGUiLCJvbGREYXRhIiwiZ2V0UGllVGV4dE1heExlbmd0aCIsInRleHRTaXplIiwiZml4Q29sdW1lRGF0YSIsImNvbHVtbkxlbiIsInNlcmllc0dhcCIsImNhdGVnb3J5R2FwIiwibWl4IiwiY29sdW1uIiwiZml4QmFyRGF0YSIsImZpeENvbHVtZU1ldGVyRGF0YSIsImJvcmRlciIsImZpeENvbHVtZVN0YWNrRGF0YSIsImluZGV4biIsImZpeEJhclN0YWNrRGF0YSIsInNwYWNpbmdWYWxpZCIsImRhdGFDb3VudCIsIml0ZW1Db3VudCIsInN0YXJ0WCIsImVuZFgiLCJnZXRDYW5kbGVEYXRhUG9pbnRzIiwidmFsaWRIZWlnaHQiLCJjUG9pbnRzIiwiaW5kZXhzIiwicG9pbnQiLCJnZXREYXRhUG9pbnRzIiwidmFsaWRXaWR0aCIsInhyYW5nZXMiLCJ4bWluUmFuZ2UiLCJ4bWF4UmFuZ2UiLCJzaGlmdCIsInBvcCIsInQiLCJnZXRNb3VudERhdGFQb2ludHMiLCJtb3VudE9wdGlvbiIsIm1vdW50V2lkdGgiLCJnZXRCYXJEYXRhUG9pbnRzIiwiZ2V0U3RhY2tEYXRhUG9pbnRzIiwic2VyaWVzSW5kZXgiLCJzdGFja1NlcmllcyIsInZhbHVlMCIsImhlaWdodDAiLCJoZWlnaHRjIiwieTAiLCJnZXRCYXJTdGFja0RhdGFQb2ludHMiLCJ4MCIsImdldFlBeGlzVGV4dExpc3QiLCJ5RGF0YSIsImRhdGFSYW5nZSIsInlBeGlzIiwicmV2ZXJzZSIsImNhbFlBeGlzRGF0YSIsIllMZW5ndGgiLCJyYW5nZXNBcnIiLCJyYW5nZXNGb3JtYXRBcnIiLCJ5QXhpc1dpZHRoQXJyIiwidW5pdCIsInRvZml4IiwieUF4aXNGb250U2l6ZXMiLCJjYWxpYnJhdGlvbiIsInlBeGlzRm9udFNpemUiLCJjYWxUb29sdGlwWUF4aXNEYXRhIiwieUF4aXNEYXRhIiwibWluQXhpcyIsIm1heFZhbCIsIm1pblZhbCIsImNhbE1hcmtMaW5lRGF0YSIsInlBeGlzSW5kZXgiLCJjb250ZXh0Um90YXRlIiwicm90YXRlTG9jayIsInRyYW5zbGF0ZSIsIl9yb3RhdGVfIiwiZHJhd1BvaW50U2hhcGUiLCJzaGFwZSIsImJlZ2luUGF0aCIsImRhdGFQb2ludFNoYXBlVHlwZSIsInNldFN0cm9rZVN0eWxlIiwic2V0RmlsbFN0eWxlIiwiYmFja2dyb3VuZCIsInNldExpbmVXaWR0aCIsIm1vdmVUbyIsImxpbmVUbyIsImFyYyIsInJlY3QiLCJjbG9zZVBhdGgiLCJmaWxsIiwic3Ryb2tlIiwiZHJhd1JpbmdUaXRsZSIsInRpdGxlZm9udFNpemUiLCJ0aXRsZSIsInN1YnRpdGxlZm9udFNpemUiLCJzdWJ0aXRsZSIsInRpdGxlRm9udENvbG9yIiwic3VidGl0bGVGb250Q29sb3IiLCJ0aXRsZUhlaWdodCIsInN1YnRpdGxlSGVpZ2h0IiwidGV4dFdpZHRoIiwic3RhcnRZIiwiZmlsbFRleHQiLCJfdGV4dFdpZHRoIiwiX3N0YXJ0WCIsIl9zdGFydFkiLCJkcmF3UG9pbnRUZXh0IiwidGV4dE9mZnNldCIsInRleHRDb2xvciIsImZvcm1hdFZhbCIsInNldFRleHRBbGlnbiIsImRyYXdNb3VudFBvaW50VGV4dCIsImRyYXdCYXJQb2ludFRleHQiLCJkcmF3R2F1Z2VMYWJlbCIsImNlbnRlclBvc2l0aW9uIiwibGFiZWxPZmZzZXQiLCJzcGxpdEFuZ2xlIiwic3BsaXRMaW5lIiwidG90YWxOdW1iZXIiLCJlbmROdW1iZXIiLCJzdGFydE51bWJlciIsIm5vd0FuZ2xlIiwibm93TnVtYmVyIiwicG9zIiwibGFiZWxUZXh0IiwibGFiZWxDb2xvciIsImRyYXdSYWRhckxhYmVsIiwibGFiZWxQb2ludFNob3ciLCJwb3NQb2ludCIsInBvc1BvaW50QXhpcyIsImxhYmVsUG9pbnRDb2xvciIsImxhYmVsUG9pbnRSYWRpdXMiLCJwb3NSZWxhdGl2ZUNhbnZhcyIsImRyYXdQaWVUZXh0IiwibGluZVJhZGl1cyIsInRleHRPYmplY3RDb2xsZWN0aW9uIiwibGFzdFRleHRPYmplY3QiLCJzZXJpZXNDb252ZXJ0IiwibGFiZWxTaG93Iiwib3JnaW5YMSIsIm9yZ2luWTEiLCJvcmdpblgyIiwib3JnaW5ZMiIsIm9yZ2luWDMiLCJvcmdpblkzIiwidGV4dE9iamVjdCIsImxpbmVTdGFydCIsImxpbmVFbmQiLCJsaW5lU3RhcnRQb2lzdGlvbiIsImxpbmVFbmRQb2lzdGlvbiIsInRleHRQb3NpdGlvbiIsImN1cnZlU3RhcnRYIiwidGV4dFN0YXJ0WCIsInF1YWRyYXRpY0N1cnZlVG8iLCJkcmF3VG9vbFRpcFNwbGl0TGluZSIsInRvb2xUaXBPcHRpb24iLCJ0b29sdGlwIiwiZ3JpZFR5cGUiLCJkYXNoTGVuZ3RoIiwiZW5kWSIsInNldExpbmVEYXNoIiwiZ3JpZENvbG9yIiwieEF4aXNMYWJlbCIsInRleHRYIiwidGV4dFkiLCJsYWJlbEJnQ29sb3IiLCJsYWJlbEJnT3BhY2l0eSIsImxhYmVsRm9udENvbG9yIiwiZHJhd01hcmtMaW5lIiwibWFya0xpbmVPcHRpb24iLCJtYXJrTGluZSIsImxpbmVDb2xvciIsInNob3dMYWJlbCIsImxhYmVsQWxpZ24iLCJsYWJlbE9mZnNldFgiLCJsYWJlbE9mZnNldFkiLCJiZ1dpZHRoIiwiYmdTdGFydFgiLCJiZ1N0YXJ0WSIsImRyYXdUb29sVGlwSG9yaXplbnRhbExpbmUiLCJ5QXhpc0xhYmVsIiwidFN0YXJ0TGVmdCIsInRTdGFydFJpZ2h0IiwiYmdFbmRYIiwiZHJhd1Rvb2xUaXBTcGxpdEFyZWEiLCJhY3RpdmVCZ0NvbG9yIiwiYWN0aXZlQmdPcGFjaXR5IiwiYWN0aXZlV2lkdGgiLCJkcmF3QmFyVG9vbFRpcFNwbGl0QXJlYSIsImRyYXdUb29sVGlwIiwic2hvd0JveCIsInNob3dBcnJvdyIsInNob3dDYXRlZ29yeSIsImJnQ29sb3IiLCJiZ09wYWNpdHkiLCJib3JkZXJDb2xvciIsImJvcmRlcldpZHRoIiwiYm9yZGVyUmFkaXVzIiwiYm9yZGVyT3BhY2l0eSIsInVuc2hpZnQiLCJsZWdlbmRNYXJnaW5SaWdodCIsImFycm93V2lkdGgiLCJpc092ZXJSaWdodEJvcmRlciIsInRvb2xUaXBXaWR0aCIsInRvb2xUaXBIZWlnaHQiLCJfc2Nyb2xsRGlzdGFuY2VfIiwiZmlsbFJlY3QiLCJkcmF3Q29sdW1uRGF0YVBvaW50cyIsImNvbHVtbk9wdGlvbiIsIm1ldGVyQm9yZGVyIiwibWV0ZXJGaWxsQ29sb3IiLCJiYXJCb3JkZXJDaXJjbGUiLCJiYXJCb3JkZXJSYWRpdXMiLCJsaW5lYXJPcGFjaXR5IiwiY29sb3JTdG9wIiwic2F2ZSIsImxlZnROdW0iLCJyaWdodE51bSIsInRvb2x0aXBQb2ludHMiLCJmaWxsQ29sb3IiLCJzdHJva2VDb2xvciIsImdyZCIsImNyZWF0ZUxpbmVhckdyYWRpZW50IiwiYWRkQ29sb3JTdG9wIiwibGVmdCIsInRvcCIsInIwIiwicjEiLCJyMiIsInIzIiwiZGF0YUxhYmVsIiwicmVzdG9yZSIsImRyYXdNb3VudERhdGFQb2ludHMiLCJiZXppZXJDdXJ2ZVRvIiwiZHJhd0JhckRhdGFQb2ludHMiLCJkcmF3Q2FuZGxlRGF0YVBvaW50cyIsInNlcmllc01BIiwiY2FuZGxlT3B0aW9uIiwiYXZlcmFnZSIsImNhbmRsZSIsInVwTGluZSIsImRvd25MaW5lIiwiZGF5IiwibGVmdFNwYWNlIiwicmlnaHRTcGFjZSIsInNwbGl0UG9pbnRMaXN0Iiwic3RhcnRQb2ludCIsImN0cmxQb2ludCIsImRyYXdBcmVhRGF0YVBvaW50cyIsImFyZWFPcHRpb24iLCJvcGFjaXR5IiwiYWRkTGluZSIsImdyYWRpZW50IiwiZmlyc3RQb2ludCIsImxhc3RQb2ludCIsImxpbmVUeXBlIiwiZHJhd1NjYXR0ZXJEYXRhUG9pbnRzIiwic2NhdHRlck9wdGlvbiIsInNjYXR0ZXIiLCJkcmF3QnViYmxlRGF0YVBvaW50cyIsImJ1YmJsZU9wdGlvbiIsImJ1YmJsZSIsImRyYXdMaW5lRGF0YVBvaW50cyIsImxpbmVPcHRpb24iLCJsaW5lIiwiZHJhd01peERhdGFQb2ludHMiLCJjb2x1bW5JbmRleCIsImNvbHVtbkxlbmd0aCIsImFkZFBvaW50IiwiZHJhd1Rvb2xUaXBCcmlkZ2UiLCJob3JpemVudGFsTGluZSIsImRyYXdYQXhpcyIsInNjcm9sbFkiLCJzY3JvbGxTY3JlZW5XaWR0aCIsInNjcm9sbFRvdGFsV2lkdGgiLCJzY3JvbGxXaWR0aCIsInNjcm9sbExlZnQiLCJzZXRMaW5lQ2FwIiwic2Nyb2xsQmFja2dyb3VuZENvbG9yIiwic2Nyb2xsQ29sb3IiLCJkaXNhYmxlR3JpZCIsImdyaWRFdmFsIiwibWF4WEF4aXNMaXN0TGVuZ3RoIiwibGFiZWxDb3VudCIsInJhdGlvIiwibmV3Q2F0ZWdvcmllcyIsImNnTGVuZ3RoIiwieEF4aXNGb250U2l6ZSIsIl94QXhpc1RleHRBbmdsZV8iLCJzY3JvbGxIZWlnaHQiLCJ0cnVlUG9pbnRzIiwiYXhpc0xpbmUiLCJheGlzTGluZUNvbG9yIiwiZHJhd1lBeGlzR3JpZCIsInhBeGlzZWFjaFNwYWNpbmciLCJUb3RhbFdpZHRoIiwiZHJhd1lBeGlzIiwidFN0YXJ0Q2VudGVyIiwidGV4dEFsaWduIiwidG1wc3RyYXQiLCJnYXB3aWR0aCIsInNob3dUaXRsZSIsInRpdGxlT2Zmc2V0WCIsInRpdGxlT2Zmc2V0WSIsImRyYXdMZWdlbmQiLCJsZWdlbmRBcmVhIiwiYmFja2dyb3VuZENvbG9yIiwiaXRlbUxpc3QiLCJsaXN0SW5kZXgiLCJoaWRkZW5Db2xvciIsImZvbnRUcmFucyIsImRyYXdQaWVEYXRhUG9pbnRzIiwicGllT3B0aW9uIiwiYWN0aXZlT3BhY2l0eSIsImFjdGl2ZVJhZGl1cyIsImxhYmVsV2lkdGgiLCJyaW5nV2lkdGgiLCJjdXN0b21SYWRpdXMiLCJjZW50ZXJDb2xvciIsIl9waWVUZXh0TWF4TGVuZ3RoXyIsImxpbmVKb2luIiwiZmlsbGNvbG9yIiwiY3JlYXRlQ2lyY3VsYXJHcmFkaWVudCIsImNyZWF0ZVJhZGlhbEdyYWRpZW50IiwiaW5uZXJQaWVXaWR0aCIsImRyYXdSb3NlRGF0YVBvaW50cyIsInJvc2VPcHRpb24iLCJkcmF3QXJjYmFyRGF0YVBvaW50cyIsImxpbmVDYXAiLCJhcmNiYXIiLCJjZW50ZXJYIiwiY2VudGVyWSIsImRyYXdHYXVnZURhdGFQb2ludHMiLCJmaXhSYWRpdXMiLCJjaGlsZE51bWJlciIsImNoaWxkV2lkdGgiLCJnYXVnZSIsImlubmVyUmFkaXVzIiwicGllUmFkaXVzIiwiY2hpbGRBbmdsZSIsInByb2MiLCJwb2ludGVyUmFkaXVzIiwiZ3JhZGllbnQzIiwiZWFjaENhdGVnb3JpZXMiLCJjaGlsZGVuZFgiLCJkcmF3UmFkYXJEYXRhUG9pbnRzIiwiYXhpc0xhYmVsIiwiYXhpc0xhYmVsVG9maXgiLCJncmlkQ291bnQiLCJjb29yZGluYXRlQW5nbGUiLCJ4ciIsInlyIiwiX2xvb3AiLCJzdGFydFBvcyIsInJhZGFyRGF0YVBvaW50cyIsInN0ZXBMZW5ndGgiLCJsYWJlbCIsImxvbmxhdDJtZXJjYXRvciIsImxvbmdpdHVkZSIsImxhdGl0dWRlIiwibG9nIiwidGFuIiwibWVyY2F0b3IybG9ubGF0IiwibG9ubGF0IiwiYXRhbiIsImV4cCIsImdldEJvdW5kaW5nQm94IiwiY29vcmRzIiwieE1pbiIsInhNYXgiLCJ5TWluIiwieU1heCIsImNvb3JkYSIsImNvb3JkaW5hdGVUb1BvaW50IiwicG9pbnRZIiwicG9pbnRYIiwiaXNSYXlJbnRlcnNlY3RzU2VnbWVudCIsInNfcG9pIiwiZV9wb2kiLCJ4c2VnIiwicG9seSIsInNpbnNjIiwiZXBvbHkiLCJkcmF3TWFwRGF0YVBvaW50cyIsIm1hcE9wdGlvbiIsImFjdGl2ZSIsImZpbGxPcGFjaXR5IiwiYWN0aXZlQm9yZGVyQ29sb3IiLCJhY3RpdmVGaWxsQ29sb3IiLCJhY3RpdmVGaWxsT3BhY2l0eSIsInhTY2FsZSIsInlTY2FsZSIsImdhb3NpIiwiY2VudGVyUG9pbnQiLCJwcm9wZXJ0aWVzIiwiY2VudHJvaWQiLCJhY3RpdmVUZXh0Q29sb3IiLCJkcmF3Iiwibm9ybWFsSW50IiwiaXRlciIsImFyciIsInJhbmRvbSIsImNvbGxpc2lvbk5ldyIsImlzSW4iLCJnZXRXb3JkQ2xvdWRQb2ludCIsInRIZWlnaHQiLCJ0V2lkdGgiLCJicmVha251bSIsIlNwaW4iLCJpc1NwaW4iLCJhcmVhdiIsImRyYXdXb3JkQ2xvdWREYXRhUG9pbnRzIiwid29yZE9wdGlvbiIsImF1dG9Db2xvcnMiLCJ3b3JkIiwid29yZENsb3VkRGF0YSIsInN0cm9rZVRleHQiLCJkcmF3RnVubmVsRGF0YVBvaW50cyIsImZ1bm5lbE9wdGlvbiIsIm1pblNpemUiLCJmdW5uZWwiLCJzZXJpZXNOZXciLCJkcmF3RnVubmVsVGV4dCIsImRyYXdGdW5uZWxDZW50ZXJUZXh0IiwiY2VudGVyVGV4dCIsImNlbnRlclRleHRTaXplIiwiY2VudGVyVGV4dENvbG9yIiwiZHJhd0NhbnZhcyIsIlRpbWluZyIsImVhc2VJbiIsImVhc2VPdXQiLCJlYXNlSW5PdXQiLCJsaW5lYXIiLCJBbmltYXRpb24iLCJpc1N0b3AiLCJkdXJhdGlvbiIsInRpbWluZyIsImRlbGF5IiwiY3JlYXRlQW5pbWF0aW9uRnJhbWUiLCJzZXRUaW1lb3V0Iiwic3RlcCIsInRpbWVTdGFtcCIsIkRhdGUiLCJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLCJhbmltYXRpb25GcmFtZSIsInN0YXJ0VGltZVN0YW1wIiwiX3N0ZXAiLCJ0aW1lc3RhbXAiLCJvblByb2Nlc3MiLCJvbkFuaW1hdGlvbkZpbmlzaCIsInRpbWluZ0Z1bmN0aW9uIiwiYmluZCIsInByb3RvdHlwZSIsInN0b3AiLCJkcmF3Q2hhcnRzIiwiX3RoaXMiLCJhbmltYXRpb24iLCJhbmltYXRpb25JbnN0YW5jZSIsIl9jYWxMZWdlbmREYXRhIiwibGVnZW5kSGVpZ2h0IiwiX2NhbFlBeGlzRGF0YSIsIm1heFRpdGxlSGVpZ2h0IiwicmlnaHRJbmRleCIsImxlZnRJbmRleCIsIl9jYWxDYXRlZ29yaWVzRGF0YSIsImNhdGVnb3JpZXNEYXRhIiwic2Nyb2xsQWxpZ24iLCJvZmZzZXRMZWZ0IiwidG90YWxXaWR0aCIsInNjcmVlbldpZHRoIiwiY3VycmVudE9mZnNldCIsInN0YXJ0VG91Y2hYIiwibGFzdE1vdmVUaW1lIiwiY2xlYXJSZWN0IiwiX2RyYXdMaW5lRGF0YVBvaW50cyIsImVuYWJsZU1hcmtMaW5lIiwiX2RyYXdTY2F0dGVyRGF0YVBvaW50cyIsIl9kcmF3QnViYmxlRGF0YVBvaW50cyIsIl9kcmF3TWl4RGF0YVBvaW50cyIsIl9kcmF3Q29sdW1uRGF0YVBvaW50cyIsIl9kcmF3TW91bnREYXRhUG9pbnRzIiwiX2RyYXdCYXJEYXRhUG9pbnRzIiwiX2RyYXdBcmVhRGF0YVBvaW50cyIsImFyY2JhckRhdGEiLCJnYXVnZURhdGEiLCJfZHJhd0NhbmRsZURhdGFQb2ludHMiLCJ1Q2hhcnRzRXZlbnQiLCJldmVudHMiLCJhZGRFdmVudExpc3RlbmVyIiwibGlzdGVuZXIiLCJkZWxFdmVudExpc3RlbmVyIiwiX2xlbiIsImFyZ3MiLCJfa2V5IiwicGFyYW1zIiwidUNoYXJ0cyIsImdyaWRTZXQiLCJjYW52YXMyZCIsImNvbmZpZyQkMSIsInRlbXBXaWR0aCIsInN0cm9rZVN0eWxlIiwibGluZVdpZHRoIiwiZm9udCIsImZpbGxTdHlsZSIsImNhbGwiLCJ1cGRhdGVEYXRhIiwiX2dldFhBeGlzUG9pbnRzMCIsInpvb20iLCJjZW50ZXJMZWZ0IiwiTWF4TGVmdCIsImRvYnVsZVpvb20iLCJ0Y3MiLCJjbGllbnRZIiwibnRjcyIsInhsZW5ndGgiLCJtb3ZlQ291bnQiLCJjdHMwIiwiY3RzMSIsIm1vdmVDdXJyZW50MSIsImdldEN1cnJlbnREYXRhSW5kZXgiLCJtb3ZlQ3VycmVudDIiLCJjdXJyZW50RWFjaFNwYWNpbmciLCJjdXJyZW50TGVmdCIsInN0b3BBbmltYXRpb24iLCJfdG91Y2hlcyQiLCJnZXRMZWdlbmREYXRhSW5kZXgiLCJ0b3VjaExlZ2VuZCIsInNob3dUb29sVGlwIiwiX2dldFRvb2xUaXBEYXRhIiwiX2dldE1peFRvb2xUaXBEYXRhIiwic2Nyb2xsU3RhcnQiLCJzY3JvbGwiLCJub3ciLCJMaW1pdCIsInRvdWNoTW92ZUxpbWl0IiwiY3Vyck1vdmVUaW1lIiwiX2Rpc3RhbmNlIiwic2Nyb2xsRW5kIiwiX3Njcm9sbE9wdGlvbiJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBb0JBLElBQUlBLE1BQU0sR0FBRztBQUNYQyxTQUFPLEVBQUUsaUJBREU7QUFFWEMsWUFBVSxFQUFFLEVBRkQ7QUFHWEMsYUFBVyxFQUFFLEVBSEY7QUFJWEMsa0JBQWdCLEVBQUUsQ0FKUDtBQUtYQyxTQUFPLEVBQUUsQ0FBQyxFQUFELEVBQUssRUFBTCxFQUFTLEVBQVQsRUFBYSxFQUFiLENBTEU7QUFNWEMsWUFBVSxFQUFFLENBTkQ7QUFPWEMsUUFBTSxFQUFFLEtBUEc7QUFRWEMsVUFBUSxFQUFFLEVBUkM7QUFTWEMsV0FBUyxFQUFFLFNBVEE7QUFVWEMsZ0JBQWMsRUFBRSxDQUFDLFFBQUQsRUFBVyxRQUFYLEVBQXFCLFFBQXJCLEVBQStCLFFBQS9CLENBVkw7QUFXWEMsT0FBSyxFQUFFLENBQUMsU0FBRCxFQUFZLFNBQVosRUFBdUIsU0FBdkIsRUFBa0MsU0FBbEMsRUFBNkMsU0FBN0MsRUFBd0QsU0FBeEQsRUFBbUUsU0FBbkUsRUFBOEUsU0FBOUUsRUFBeUYsU0FBekYsQ0FYSTtBQVlYQyxhQUFXLEVBQUUsQ0FBQyxTQUFELEVBQVksU0FBWixFQUF1QixTQUF2QixFQUFrQyxTQUFsQyxFQUE2QyxTQUE3QyxFQUF3RCxTQUF4RCxFQUFtRSxTQUFuRSxFQUE4RSxTQUE5RSxFQUF5RixTQUF6RixDQVpGO0FBYVhDLHFCQUFtQixFQUFFLEVBYlY7QUFjWEMscUJBQW1CLEVBQUUsQ0FkVjtBQWVYQyxlQUFhLEVBQUUsRUFmSjtBQWdCWEMsa0JBQWdCLEVBQUUsRUFoQlA7QUFpQlhDLGdCQUFjLEVBQUUsQ0FqQkw7QUFrQlhDLG1CQUFpQixFQUFFLFNBbEJSO0FBbUJYQyxnQkFBYyxFQUFFLEdBbkJMO0FBb0JYQyxtQkFBaUIsRUFBRSxFQXBCUjtBQXFCWEMsc0JBQW9CLEVBQUUsRUFyQlgsRUFBYjs7O0FBd0JBLElB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QUNFdXRCLGlCQUFhLEdBQUdvRSxhQUFhLENBQUNwRSxhQURoQztBQUVFdHVCLFlBQVEsR0FBRzB5QixhQUFhLENBQUMxeUIsUUFGM0I7QUFHQSxTQUFLZSxZQUFMLENBQWtCdXRCLGFBQWxCLEdBQWtDQSxhQUFhLEdBQUd0dUIsUUFBbEQ7QUFDQSxTQUFLZSxZQUFMLENBQWtCZixRQUFsQixHQUE2QixDQUE3QjtBQUNBLFNBQUtlLFlBQUwsQ0FBa0Jvd0IsU0FBbEIsR0FBOEIsQ0FBOUI7QUFDRDtBQUNGLENBVEQsQzs7QUFXZXBCLE8iLCJmaWxlIjoiNjguanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiB1Q2hhcnRzIChSKVxyXG4gKiDpq5jmgKfog73ot6jlubPlj7Dlm77ooajlupPvvIzmlK/mjIFINeOAgUFQUOOAgeWwj+eoi+W6j++8iOW+ruS/oS/mlK/ku5jlrp0v55m+5bqmL+WktOadoS9RUS8zNjAv5b+r5omL77yJ44CBVnVl44CBVGFyb+etieaUr+aMgWNhbnZhc+eahOahhuaetuW5s+WPsFxyXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTgtMjAyMiBRSVVOIChSKSDnp4vkupEgaHR0cHM6Ly93d3cudWNoYXJ0cy5jbiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG4gKiBMaWNlbnNlZCAoIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMCApXHJcbiAqIOWkjeWItuS9v+eUqOivt+S/neeVmeacrOauteazqOmHiu+8jOaEn+iwouaUr+aMgeW8gOa6kO+8gVxyXG4gKiBcclxuICogdUNoYXJ0cyAoUikg5a6Y5pa5572R56uZXHJcbiAqIGh0dHBzOi8vd3d3LnVDaGFydHMuY25cclxuICogXHJcbiAqIOW8gOa6kOWcsOWdgDpcclxuICogaHR0cHM6Ly9naXRlZS5jb20vdUNoYXJ0cy91Q2hhcnRzXHJcbiAqIFxyXG4gKiB1bmktYXBw5o+S5Lu25biC5Zy65Zyw5Z2A77yaXHJcbiAqIGh0dHA6Ly9leHQuZGNsb3VkLm5ldC5jbi9wbHVnaW4/aWQ9MjcxXHJcbiAqIFxyXG4gKi9cclxuXHJcbid1c2Ugc3RyaWN0JztcclxuXHJcbnZhciBjb25maWcgPSB7XHJcbiAgdmVyc2lvbjogJ3YyLjQuNC0yMDIyMTEwMicsXHJcbiAgeUF4aXNXaWR0aDogMTUsXHJcbiAgeEF4aXNIZWlnaHQ6IDIyLFxyXG4gIHhBeGlzVGV4dFBhZGRpbmc6IDMsXHJcbiAgcGFkZGluZzogWzEwLCAxMCwgMTAsIDEwXSxcclxuICBwaXhlbFJhdGlvOiAxLFxyXG4gIHJvdGF0ZTogZmFsc2UsXHJcbiAgZm9udFNpemU6IDEzLFxyXG4gIGZvbnRDb2xvcjogJyM2NjY2NjYnLFxyXG4gIGRhdGFQb2ludFNoYXBlOiBbJ2NpcmNsZScsICdjaXJjbGUnLCAnY2lyY2xlJywgJ2NpcmNsZSddLFxyXG4gIGNvbG9yOiBbJyMxODkwRkYnLCAnIzkxQ0I3NCcsICcjRkFDODU4JywgJyNFRTY2NjYnLCAnIzczQzBERScsICcjM0NBMjcyJywgJyNGQzg0NTInLCAnIzlBNjBCNCcsICcjZWE3Y2NjJ10sXHJcbiAgbGluZWFyQ29sb3I6IFsnIzBFRTJGOCcsICcjMkJEQ0E4JywgJyNGQTdEOEQnLCAnI0VCODhFMicsICcjMkFFM0EwJywgJyMwRUUyRjgnLCAnI0VCODhFMicsICcjNjc3M0UzJywgJyNGNzhBODUnXSxcclxuICBwaWVDaGFydExpbmVQYWRkaW5nOiAxNSxcclxuICBwaWVDaGFydFRleHRQYWRkaW5nOiA1LFxyXG4gIHRpdGxlRm9udFNpemU6IDIwLFxyXG4gIHN1YnRpdGxlRm9udFNpemU6IDE1LFxyXG4gIHRvb2xUaXBQYWRkaW5nOiAzLFxyXG4gIHRvb2xUaXBCYWNrZ3JvdW5kOiAnIzAwMDAwMCcsXHJcbiAgdG9vbFRpcE9wYWNpdHk6IDAuNyxcclxuICB0b29sVGlwTGluZUhlaWdodDogMjAsXHJcbiAgcmFkYXJMYWJlbFRleHRNYXJnaW46IDEzLFxyXG59O1xyXG5cclxudmFyIGFzc2lnbiA9IGZ1bmN0aW9uKHRhcmdldCwgLi4udmFyQXJncykge1xyXG4gIGlmICh0YXJnZXQgPT0gbnVsbCkge1xyXG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignW3VDaGFydHNdIENhbm5vdCBjb252ZXJ0IHVuZGVmaW5lZCBvciBudWxsIHRvIG9iamVjdCcpO1xyXG4gIH1cclxuICBpZiAoIXZhckFyZ3MgfHwgdmFyQXJncy5sZW5ndGggPD0gMCkge1xyXG4gICAgcmV0dXJuIHRhcmdldDtcclxuICB9XHJcbiAgLy8g5rex5bqm5ZCI5bm25a+56LGhXHJcbiAgZnVuY3Rpb24gZGVlcEFzc2lnbihvYmoxLCBvYmoyKSB7XHJcbiAgICBmb3IgKGxldCBrZXkgaW4gb2JqMikge1xyXG4gICAgICBvYmoxW2tleV0gPSBvYmoxW2tleV0gJiYgb2JqMVtrZXldLnRvU3RyaW5nKCkgPT09IFwiW29iamVjdCBPYmplY3RdXCIgP1xyXG4gICAgICAgIGRlZXBBc3NpZ24ob2JqMVtrZXldLCBvYmoyW2tleV0pIDogb2JqMVtrZXldID0gb2JqMltrZXldO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG9iajE7XHJcbiAgfVxyXG4gIHZhckFyZ3MuZm9yRWFjaCh2YWwgPT4ge1xyXG4gICAgdGFyZ2V0ID0gZGVlcEFzc2lnbih0YXJnZXQsIHZhbCk7XHJcbiAgfSk7XHJcbiAgcmV0dXJuIHRhcmdldDtcclxufTtcclxuXHJcbnZhciB1dGlsID0ge1xyXG4gIHRvRml4ZWQ6IGZ1bmN0aW9uIHRvRml4ZWQobnVtLCBsaW1pdCkge1xyXG4gICAgbGltaXQgPSBsaW1pdCB8fCAyO1xyXG4gICAgaWYgKHRoaXMuaXNGbG9hdChudW0pKSB7XHJcbiAgICAgIG51bSA9IG51bS50b0ZpeGVkKGxpbWl0KTtcclxuICAgIH1cclxuICAgIHJldHVybiBudW07XHJcbiAgfSxcclxuICBpc0Zsb2F0OiBmdW5jdGlvbiBpc0Zsb2F0KG51bSkge1xyXG4gICAgcmV0dXJuIG51bSAlIDEgIT09IDA7XHJcbiAgfSxcclxuICBhcHByb3hpbWF0ZWx5RXF1YWw6IGZ1bmN0aW9uIGFwcHJveGltYXRlbHlFcXVhbChudW0xLCBudW0yKSB7XHJcbiAgICByZXR1cm4gTWF0aC5hYnMobnVtMSAtIG51bTIpIDwgMWUtMTA7XHJcbiAgfSxcclxuICBpc1NhbWVTaWduOiBmdW5jdGlvbiBpc1NhbWVTaWduKG51bTEsIG51bTIpIHtcclxuICAgIHJldHVybiBNYXRoLmFicyhudW0xKSA9PT0gbnVtMSAmJiBNYXRoLmFicyhudW0yKSA9PT0gbnVtMiB8fCBNYXRoLmFicyhudW0xKSAhPT0gbnVtMSAmJiBNYXRoLmFicyhudW0yKSAhPT0gbnVtMjtcclxuICB9LFxyXG4gIGlzU2FtZVhDb29yZGluYXRlQXJlYTogZnVuY3Rpb24gaXNTYW1lWENvb3JkaW5hdGVBcmVhKHAxLCBwMikge1xyXG4gICAgcmV0dXJuIHRoaXMuaXNTYW1lU2lnbihwMS54LCBwMi54KTtcclxuICB9LFxyXG4gIGlzQ29sbGlzaW9uOiBmdW5jdGlvbiBpc0NvbGxpc2lvbihvYmoxLCBvYmoyKSB7XHJcbiAgICBvYmoxLmVuZCA9IHt9O1xyXG4gICAgb2JqMS5lbmQueCA9IG9iajEuc3RhcnQueCArIG9iajEud2lkdGg7XHJcbiAgICBvYmoxLmVuZC55ID0gb2JqMS5zdGFydC55IC0gb2JqMS5oZWlnaHQ7XHJcbiAgICBvYmoyLmVuZCA9IHt9O1xyXG4gICAgb2JqMi5lbmQueCA9IG9iajIuc3RhcnQueCArIG9iajIud2lkdGg7XHJcbiAgICBvYmoyLmVuZC55ID0gb2JqMi5zdGFydC55IC0gb2JqMi5oZWlnaHQ7XHJcbiAgICB2YXIgZmxhZyA9IG9iajIuc3RhcnQueCA+IG9iajEuZW5kLnggfHwgb2JqMi5lbmQueCA8IG9iajEuc3RhcnQueCB8fCBvYmoyLmVuZC55ID4gb2JqMS5zdGFydC55IHx8IG9iajIuc3RhcnQueSA8IG9iajEuZW5kLnk7XHJcbiAgICByZXR1cm4gIWZsYWc7XHJcbiAgfVxyXG59O1xyXG5cclxuLy/lhbzlrrlINeeCueWHu+S6i+S7tlxyXG5mdW5jdGlvbiBnZXRINU9mZnNldChlKSB7XHJcbiAgZS5tcCA9IHtcclxuICAgIGNoYW5nZWRUb3VjaGVzOiBbXVxyXG4gIH07XHJcbiAgZS5tcC5jaGFuZ2VkVG91Y2hlcy5wdXNoKHtcclxuICAgIHg6IGUub2Zmc2V0WCxcclxuICAgIHk6IGUub2Zmc2V0WVxyXG4gIH0pO1xyXG4gIHJldHVybiBlO1xyXG59XHJcblxyXG4vLyBoZXgg6L2sIHJnYmFcclxuZnVuY3Rpb24gaGV4VG9SZ2IoaGV4VmFsdWUsIG9wYykge1xyXG4gIHZhciByZ3ggPSAvXiM/KFthLWZcXGRdKShbYS1mXFxkXSkoW2EtZlxcZF0pJC9pO1xyXG4gIHZhciBoZXggPSBoZXhWYWx1ZS5yZXBsYWNlKHJneCwgZnVuY3Rpb24obSwgciwgZywgYikge1xyXG4gICAgcmV0dXJuIHIgKyByICsgZyArIGcgKyBiICsgYjtcclxuICB9KTtcclxuICB2YXIgcmdiID0gL14jPyhbYS1mXFxkXXsyfSkoW2EtZlxcZF17Mn0pKFthLWZcXGRdezJ9KSQvaS5leGVjKGhleCk7XHJcbiAgdmFyIHIgPSBwYXJzZUludChyZ2JbMV0sIDE2KTtcclxuICB2YXIgZyA9IHBhcnNlSW50KHJnYlsyXSwgMTYpO1xyXG4gIHZhciBiID0gcGFyc2VJbnQocmdiWzNdLCAxNik7XHJcbiAgcmV0dXJuICdyZ2JhKCcgKyByICsgJywnICsgZyArICcsJyArIGIgKyAnLCcgKyBvcGMgKyAnKSc7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZpbmRSYW5nZShudW0sIHR5cGUsIGxpbWl0KSB7XHJcbiAgaWYgKGlzTmFOKG51bSkpIHtcclxuICAgIHRocm93IG5ldyBFcnJvcignW3VDaGFydHNdIHNlcmllc+aVsOaNrumcgOS4uk51bWJlcuagvOW8jycpO1xyXG4gIH1cclxuICBsaW1pdCA9IGxpbWl0IHx8IDEwO1xyXG4gIHR5cGUgPSB0eXBlID8gdHlwZSA6ICd1cHBlcic7XHJcbiAgdmFyIG11bHRpcGxlID0gMTtcclxuICB3aGlsZSAobGltaXQgPCAxKSB7XHJcbiAgICBsaW1pdCAqPSAxMDtcclxuICAgIG11bHRpcGxlICo9IDEwO1xyXG4gIH1cclxuICBpZiAodHlwZSA9PT0gJ3VwcGVyJykge1xyXG4gICAgbnVtID0gTWF0aC5jZWlsKG51bSAqIG11bHRpcGxlKTtcclxuICB9IGVsc2Uge1xyXG4gICAgbnVtID0gTWF0aC5mbG9vcihudW0gKiBtdWx0aXBsZSk7XHJcbiAgfVxyXG4gIHdoaWxlIChudW0gJSBsaW1pdCAhPT0gMCkge1xyXG4gICAgaWYgKHR5cGUgPT09ICd1cHBlcicpIHtcclxuICAgICAgaWYgKG51bSA9PSBudW0gKyAxKSB7IC8v5L+u5aSN5pWw5o2u5YC86L+H5aSnbnVtKyvml6DmlYjnmoRidWcgYnkg5ZCR5pel6JG1IEB4cmtfanlcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBudW0rKztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIG51bS0tO1xyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gbnVtIC8gbXVsdGlwbGU7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNhbENhbmRsZU1BKGRheUFyciwgbmFtZUFyciwgY29sb3JBcnIsIGtkYXRhKSB7XHJcbiAgbGV0IHNlcmllc1RlbXAgPSBbXTtcclxuICBmb3IgKGxldCBrID0gMDsgayA8IGRheUFyci5sZW5ndGg7IGsrKykge1xyXG4gICAgbGV0IHNlcmllc0l0ZW0gPSB7XHJcbiAgICAgIGRhdGE6IFtdLFxyXG4gICAgICBuYW1lOiBuYW1lQXJyW2tdLFxyXG4gICAgICBjb2xvcjogY29sb3JBcnJba11cclxuICAgIH07XHJcbiAgICBmb3IgKGxldCBpID0gMCwgbGVuID0ga2RhdGEubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcclxuICAgICAgaWYgKGkgPCBkYXlBcnJba10pIHtcclxuICAgICAgICBzZXJpZXNJdGVtLmRhdGEucHVzaChudWxsKTtcclxuICAgICAgICBjb250aW51ZTtcclxuICAgICAgfVxyXG4gICAgICBsZXQgc3VtID0gMDtcclxuICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBkYXlBcnJba107IGorKykge1xyXG4gICAgICAgIHN1bSArPSBrZGF0YVtpIC0gal1bMV07XHJcbiAgICAgIH1cclxuICAgICAgc2VyaWVzSXRlbS5kYXRhLnB1c2goKyhzdW0gLyBkYXlBcnJba10pLnRvRml4ZWQoMykpO1xyXG4gICAgfVxyXG4gICAgc2VyaWVzVGVtcC5wdXNoKHNlcmllc0l0ZW0pO1xyXG4gIH1cclxuICByZXR1cm4gc2VyaWVzVGVtcDtcclxufVxyXG5cclxuZnVuY3Rpb24gY2FsVmFsaWREaXN0YW5jZShzZWxmLCBkaXN0YW5jZSwgY2hhcnREYXRhLCBjb25maWcsIG9wdHMpIHtcclxuICB2YXIgZGF0YUNoYXJ0QXJlYVdpZHRoID0gb3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXSAtIG9wdHMuYXJlYVszXTtcclxuICB2YXIgZGF0YUNoYXJ0V2lkdGggPSBjaGFydERhdGEuZWFjaFNwYWNpbmcgKiAob3B0cy5jaGFydERhdGEueEF4aXNEYXRhLnhBeGlzUG9pbnRzLmxlbmd0aCAtIDEpO1xyXG4gIGlmKG9wdHMudHlwZSA9PSAnbW91bnQnICYmIG9wdHMuZXh0cmEgJiYgb3B0cy5leHRyYS5tb3VudCAmJiBvcHRzLmV4dHJhLm1vdW50LndpZHRoUmF0aW8gJiYgb3B0cy5leHRyYS5tb3VudC53aWR0aFJhdGlvID4gMSl7XHJcbiAgICBpZihvcHRzLmV4dHJhLm1vdW50LndpZHRoUmF0aW8+Mikgb3B0cy5leHRyYS5tb3VudC53aWR0aFJhdGlvID0gMlxyXG4gICAgZGF0YUNoYXJ0V2lkdGggKz0gKG9wdHMuZXh0cmEubW91bnQud2lkdGhSYXRpbyAtIDEpKmNoYXJ0RGF0YS5lYWNoU3BhY2luZztcclxuICB9XHJcbiAgdmFyIHZhbGlkRGlzdGFuY2UgPSBkaXN0YW5jZTtcclxuICBpZiAoZGlzdGFuY2UgPj0gMCkge1xyXG4gICAgdmFsaWREaXN0YW5jZSA9IDA7XHJcbiAgICBzZWxmLnVldmVudC50cmlnZ2VyKCdzY3JvbGxMZWZ0Jyk7XHJcbiAgICBzZWxmLnNjcm9sbE9wdGlvbi5wb3NpdGlvbiA9ICdsZWZ0J1xyXG4gICAgb3B0cy54QXhpcy5zY3JvbGxQb3NpdGlvbiA9ICdsZWZ0JztcclxuICB9IGVsc2UgaWYgKE1hdGguYWJzKGRpc3RhbmNlKSA+PSBkYXRhQ2hhcnRXaWR0aCAtIGRhdGFDaGFydEFyZWFXaWR0aCkge1xyXG4gICAgdmFsaWREaXN0YW5jZSA9IGRhdGFDaGFydEFyZWFXaWR0aCAtIGRhdGFDaGFydFdpZHRoO1xyXG4gICAgc2VsZi51ZXZlbnQudHJpZ2dlcignc2Nyb2xsUmlnaHQnKTtcclxuICAgIHNlbGYuc2Nyb2xsT3B0aW9uLnBvc2l0aW9uID0gJ3JpZ2h0J1xyXG4gICAgb3B0cy54QXhpcy5zY3JvbGxQb3NpdGlvbiA9ICdyaWdodCc7XHJcbiAgfSBlbHNlIHtcclxuICAgIHNlbGYuc2Nyb2xsT3B0aW9uLnBvc2l0aW9uID0gZGlzdGFuY2VcclxuICAgIG9wdHMueEF4aXMuc2Nyb2xsUG9zaXRpb24gPSBkaXN0YW5jZTtcclxuICB9XHJcbiAgcmV0dXJuIHZhbGlkRGlzdGFuY2U7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzSW5BbmdsZVJhbmdlKGFuZ2xlLCBzdGFydEFuZ2xlLCBlbmRBbmdsZSkge1xyXG4gIGZ1bmN0aW9uIGFkanVzdChhbmdsZSkge1xyXG4gICAgd2hpbGUgKGFuZ2xlIDwgMCkge1xyXG4gICAgICBhbmdsZSArPSAyICogTWF0aC5QSTtcclxuICAgIH1cclxuICAgIHdoaWxlIChhbmdsZSA+IDIgKiBNYXRoLlBJKSB7XHJcbiAgICAgIGFuZ2xlIC09IDIgKiBNYXRoLlBJO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGFuZ2xlO1xyXG4gIH1cclxuICBhbmdsZSA9IGFkanVzdChhbmdsZSk7XHJcbiAgc3RhcnRBbmdsZSA9IGFkanVzdChzdGFydEFuZ2xlKTtcclxuICBlbmRBbmdsZSA9IGFkanVzdChlbmRBbmdsZSk7XHJcbiAgaWYgKHN0YXJ0QW5nbGUgPiBlbmRBbmdsZSkge1xyXG4gICAgZW5kQW5nbGUgKz0gMiAqIE1hdGguUEk7XHJcbiAgICBpZiAoYW5nbGUgPCBzdGFydEFuZ2xlKSB7XHJcbiAgICAgIGFuZ2xlICs9IDIgKiBNYXRoLlBJO1xyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gYW5nbGUgPj0gc3RhcnRBbmdsZSAmJiBhbmdsZSA8PSBlbmRBbmdsZTtcclxufVxyXG5cclxuZnVuY3Rpb24gY3JlYXRlQ3VydmVDb250cm9sUG9pbnRzKHBvaW50cywgaSkge1xyXG4gIGZ1bmN0aW9uIGlzTm90TWlkZGxlUG9pbnQocG9pbnRzLCBpKSB7XHJcbiAgICBpZiAocG9pbnRzW2kgLSAxXSAmJiBwb2ludHNbaSArIDFdKSB7XHJcbiAgICAgIHJldHVybiBwb2ludHNbaV0ueSA+PSBNYXRoLm1heChwb2ludHNbaSAtIDFdLnksIHBvaW50c1tpICsgMV0ueSkgfHwgcG9pbnRzW2ldLnkgPD0gTWF0aC5taW4ocG9pbnRzW2kgLSAxXS55LFxyXG4gICAgICAgIHBvaW50c1tpICsgMV0ueSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGZ1bmN0aW9uIGlzTm90TWlkZGxlUG9pbnRYKHBvaW50cywgaSkge1xyXG4gICAgaWYgKHBvaW50c1tpIC0gMV0gJiYgcG9pbnRzW2kgKyAxXSkge1xyXG4gICAgICByZXR1cm4gcG9pbnRzW2ldLnggPj0gTWF0aC5tYXgocG9pbnRzW2kgLSAxXS54LCBwb2ludHNbaSArIDFdLngpIHx8IHBvaW50c1tpXS54IDw9IE1hdGgubWluKHBvaW50c1tpIC0gMV0ueCxcclxuICAgICAgICBwb2ludHNbaSArIDFdLngpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuICB2YXIgYSA9IDAuMjtcclxuICB2YXIgYiA9IDAuMjtcclxuICB2YXIgcEF4ID0gbnVsbDtcclxuICB2YXIgcEF5ID0gbnVsbDtcclxuICB2YXIgcEJ4ID0gbnVsbDtcclxuICB2YXIgcEJ5ID0gbnVsbDtcclxuICBpZiAoaSA8IDEpIHtcclxuICAgIHBBeCA9IHBvaW50c1swXS54ICsgKHBvaW50c1sxXS54IC0gcG9pbnRzWzBdLngpICogYTtcclxuICAgIHBBeSA9IHBvaW50c1swXS55ICsgKHBvaW50c1sxXS55IC0gcG9pbnRzWzBdLnkpICogYTtcclxuICB9IGVsc2Uge1xyXG4gICAgcEF4ID0gcG9pbnRzW2ldLnggKyAocG9pbnRzW2kgKyAxXS54IC0gcG9pbnRzW2kgLSAxXS54KSAqIGE7XHJcbiAgICBwQXkgPSBwb2ludHNbaV0ueSArIChwb2ludHNbaSArIDFdLnkgLSBwb2ludHNbaSAtIDFdLnkpICogYTtcclxuICB9XHJcblxyXG4gIGlmIChpID4gcG9pbnRzLmxlbmd0aCAtIDMpIHtcclxuICAgIHZhciBsYXN0ID0gcG9pbnRzLmxlbmd0aCAtIDE7XHJcbiAgICBwQnggPSBwb2ludHNbbGFzdF0ueCAtIChwb2ludHNbbGFzdF0ueCAtIHBvaW50c1tsYXN0IC0gMV0ueCkgKiBiO1xyXG4gICAgcEJ5ID0gcG9pbnRzW2xhc3RdLnkgLSAocG9pbnRzW2xhc3RdLnkgLSBwb2ludHNbbGFzdCAtIDFdLnkpICogYjtcclxuICB9IGVsc2Uge1xyXG4gICAgcEJ4ID0gcG9pbnRzW2kgKyAxXS54IC0gKHBvaW50c1tpICsgMl0ueCAtIHBvaW50c1tpXS54KSAqIGI7XHJcbiAgICBwQnkgPSBwb2ludHNbaSArIDFdLnkgLSAocG9pbnRzW2kgKyAyXS55IC0gcG9pbnRzW2ldLnkpICogYjtcclxuICB9XHJcbiAgaWYgKGlzTm90TWlkZGxlUG9pbnQocG9pbnRzLCBpICsgMSkpIHtcclxuICAgIHBCeSA9IHBvaW50c1tpICsgMV0ueTtcclxuICB9XHJcbiAgaWYgKGlzTm90TWlkZGxlUG9pbnQocG9pbnRzLCBpKSkge1xyXG4gICAgcEF5ID0gcG9pbnRzW2ldLnk7XHJcbiAgfVxyXG4gIGlmIChpc05vdE1pZGRsZVBvaW50WChwb2ludHMsIGkgKyAxKSkge1xyXG4gICAgcEJ4ID0gcG9pbnRzW2kgKyAxXS54O1xyXG4gIH1cclxuICBpZiAoaXNOb3RNaWRkbGVQb2ludFgocG9pbnRzLCBpKSkge1xyXG4gICAgcEF4ID0gcG9pbnRzW2ldLng7XHJcbiAgfVxyXG4gIGlmIChwQXkgPj0gTWF0aC5tYXgocG9pbnRzW2ldLnksIHBvaW50c1tpICsgMV0ueSkgfHwgcEF5IDw9IE1hdGgubWluKHBvaW50c1tpXS55LCBwb2ludHNbaSArIDFdLnkpKSB7XHJcbiAgICBwQXkgPSBwb2ludHNbaV0ueTtcclxuICB9XHJcbiAgaWYgKHBCeSA+PSBNYXRoLm1heChwb2ludHNbaV0ueSwgcG9pbnRzW2kgKyAxXS55KSB8fCBwQnkgPD0gTWF0aC5taW4ocG9pbnRzW2ldLnksIHBvaW50c1tpICsgMV0ueSkpIHtcclxuICAgIHBCeSA9IHBvaW50c1tpICsgMV0ueTtcclxuICB9XHJcbiAgaWYgKHBBeCA+PSBNYXRoLm1heChwb2ludHNbaV0ueCwgcG9pbnRzW2kgKyAxXS54KSB8fCBwQXggPD0gTWF0aC5taW4ocG9pbnRzW2ldLngsIHBvaW50c1tpICsgMV0ueCkpIHtcclxuICAgIHBBeCA9IHBvaW50c1tpXS54O1xyXG4gIH1cclxuICBpZiAocEJ4ID49IE1hdGgubWF4KHBvaW50c1tpXS54LCBwb2ludHNbaSArIDFdLngpIHx8IHBCeCA8PSBNYXRoLm1pbihwb2ludHNbaV0ueCwgcG9pbnRzW2kgKyAxXS54KSkge1xyXG4gICAgcEJ4ID0gcG9pbnRzW2kgKyAxXS54O1xyXG4gIH1cclxuICByZXR1cm4ge1xyXG4gICAgY3RyQToge1xyXG4gICAgICB4OiBwQXgsXHJcbiAgICAgIHk6IHBBeVxyXG4gICAgfSxcclxuICAgIGN0ckI6IHtcclxuICAgICAgeDogcEJ4LFxyXG4gICAgICB5OiBwQnlcclxuICAgIH1cclxuICB9O1xyXG59XHJcblxyXG5cclxuZnVuY3Rpb24gY29udmVydENvb3JkaW5hdGVPcmlnaW4oeCwgeSwgY2VudGVyKSB7XHJcbiAgcmV0dXJuIHtcclxuICAgIHg6IGNlbnRlci54ICsgeCxcclxuICAgIHk6IGNlbnRlci55IC0geVxyXG4gIH07XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGF2b2lkQ29sbGlzaW9uKG9iaiwgdGFyZ2V0KSB7XHJcbiAgaWYgKHRhcmdldCkge1xyXG4gICAgLy8gaXMgY29sbGlzaW9uIHRlc3RcclxuICAgIHdoaWxlICh1dGlsLmlzQ29sbGlzaW9uKG9iaiwgdGFyZ2V0KSkge1xyXG4gICAgICBpZiAob2JqLnN0YXJ0LnggPiAwKSB7XHJcbiAgICAgICAgb2JqLnN0YXJ0LnktLTtcclxuICAgICAgfSBlbHNlIGlmIChvYmouc3RhcnQueCA8IDApIHtcclxuICAgICAgICBvYmouc3RhcnQueSsrO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmIChvYmouc3RhcnQueSA+IDApIHtcclxuICAgICAgICAgIG9iai5zdGFydC55Kys7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIG9iai5zdGFydC55LS07XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBvYmo7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZpeFBpZVNlcmllcyhzZXJpZXMsIG9wdHMsIGNvbmZpZyl7XHJcbiAgbGV0IHBpZVNlcmllc0FyciA9IFtdO1xyXG4gIGlmKHNlcmllcy5sZW5ndGg+MCAmJiBzZXJpZXNbMF0uZGF0YS5jb25zdHJ1Y3Rvci50b1N0cmluZygpLmluZGV4T2YoJ0FycmF5JykgPiAtMSl7XHJcbiAgICBvcHRzLl9waWVTZXJpZXNfID0gc2VyaWVzO1xyXG4gICAgbGV0IG9sZHNlcmllcyA9IHNlcmllc1swXS5kYXRhO1xyXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBvbGRzZXJpZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgb2xkc2VyaWVzW2ldLmZvcm1hdHRlciA9IHNlcmllc1swXS5mb3JtYXR0ZXI7XHJcbiAgICAgIG9sZHNlcmllc1tpXS5kYXRhID0gb2xkc2VyaWVzW2ldLnZhbHVlO1xyXG4gICAgICBwaWVTZXJpZXNBcnIucHVzaChvbGRzZXJpZXNbaV0pO1xyXG4gICAgfVxyXG4gICAgb3B0cy5zZXJpZXMgPSBwaWVTZXJpZXNBcnI7XHJcbiAgfWVsc2V7XHJcbiAgICBwaWVTZXJpZXNBcnIgPSBzZXJpZXM7XHJcbiAgfVxyXG4gIHJldHVybiBwaWVTZXJpZXNBcnI7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZpbGxTZXJpZXMoc2VyaWVzLCBvcHRzLCBjb25maWcpIHtcclxuICB2YXIgaW5kZXggPSAwO1xyXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgc2VyaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBsZXQgaXRlbSA9IHNlcmllc1tpXTtcclxuICAgIGlmICghaXRlbS5jb2xvcikge1xyXG4gICAgICBpdGVtLmNvbG9yID0gY29uZmlnLmNvbG9yW2luZGV4XTtcclxuICAgICAgaW5kZXggPSAoaW5kZXggKyAxKSAlIGNvbmZpZy5jb2xvci5sZW5ndGg7XHJcbiAgICB9XHJcbiAgICBpZiAoIWl0ZW0ubGluZWFySW5kZXgpIHtcclxuICAgICAgaXRlbS5saW5lYXJJbmRleCA9IGk7XHJcbiAgICB9XHJcbiAgICBpZiAoIWl0ZW0uaW5kZXgpIHtcclxuICAgICAgaXRlbS5pbmRleCA9IDA7XHJcbiAgICB9XHJcbiAgICBpZiAoIWl0ZW0udHlwZSkge1xyXG4gICAgICBpdGVtLnR5cGUgPSBvcHRzLnR5cGU7XHJcbiAgICB9XHJcbiAgICBpZiAodHlwZW9mIGl0ZW0uc2hvdyA9PSBcInVuZGVmaW5lZFwiKSB7XHJcbiAgICAgIGl0ZW0uc2hvdyA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBpZiAoIWl0ZW0udHlwZSkge1xyXG4gICAgICBpdGVtLnR5cGUgPSBvcHRzLnR5cGU7XHJcbiAgICB9XHJcbiAgICBpZiAoIWl0ZW0ucG9pbnRTaGFwZSkge1xyXG4gICAgICBpdGVtLnBvaW50U2hhcGUgPSBcImNpcmNsZVwiO1xyXG4gICAgfVxyXG4gICAgaWYgKCFpdGVtLmxlZ2VuZFNoYXBlKSB7XHJcbiAgICAgIHN3aXRjaCAoaXRlbS50eXBlKSB7XHJcbiAgICAgICAgY2FzZSAnbGluZSc6XHJcbiAgICAgICAgICBpdGVtLmxlZ2VuZFNoYXBlID0gXCJsaW5lXCI7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdjb2x1bW4nOlxyXG4gICAgICAgIGNhc2UgJ2Jhcic6XHJcbiAgICAgICAgICBpdGVtLmxlZ2VuZFNoYXBlID0gXCJyZWN0XCI7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdhcmVhJzpcclxuICAgICAgICBjYXNlICdtb3VudCc6XHJcbiAgICAgICAgICBpdGVtLmxlZ2VuZFNoYXBlID0gXCJ0cmlhbmdsZVwiO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIGl0ZW0ubGVnZW5kU2hhcGUgPSBcImNpcmNsZVwiO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBzZXJpZXM7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZpbGxDdXN0b21Db2xvcihsaW5lYXJUeXBlLCBjdXN0b21Db2xvciwgc2VyaWVzLCBjb25maWcpIHtcclxuICB2YXIgbmV3Y29sb3IgPSBjdXN0b21Db2xvciB8fCBbXTtcclxuICBpZiAobGluZWFyVHlwZSA9PSAnY3VzdG9tJyAmJiBuZXdjb2xvci5sZW5ndGggPT0gMCApIHtcclxuICAgIG5ld2NvbG9yID0gY29uZmlnLmxpbmVhckNvbG9yO1xyXG4gIH1cclxuICBpZiAobGluZWFyVHlwZSA9PSAnY3VzdG9tJyAmJiBuZXdjb2xvci5sZW5ndGggPCBzZXJpZXMubGVuZ3RoKSB7XHJcbiAgICBsZXQgY2hhemhpID0gc2VyaWVzLmxlbmd0aCAtIG5ld2NvbG9yLmxlbmd0aDtcclxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hhemhpOyBpKyspIHtcclxuICAgICAgbmV3Y29sb3IucHVzaChjb25maWcubGluZWFyQ29sb3JbKGkgKyAxKSAlIGNvbmZpZy5saW5lYXJDb2xvci5sZW5ndGhdKTtcclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIG5ld2NvbG9yO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXREYXRhUmFuZ2UobWluRGF0YSwgbWF4RGF0YSkge1xyXG4gIHZhciBsaW1pdCA9IDA7XHJcbiAgdmFyIHJhbmdlID0gbWF4RGF0YSAtIG1pbkRhdGE7XHJcbiAgaWYgKHJhbmdlID49IDEwMDAwKSB7XHJcbiAgICBsaW1pdCA9IDEwMDA7XHJcbiAgfSBlbHNlIGlmIChyYW5nZSA+PSAxMDAwKSB7XHJcbiAgICBsaW1pdCA9IDEwMDtcclxuICB9IGVsc2UgaWYgKHJhbmdlID49IDEwMCkge1xyXG4gICAgbGltaXQgPSAxMDtcclxuICB9IGVsc2UgaWYgKHJhbmdlID49IDEwKSB7XHJcbiAgICBsaW1pdCA9IDU7XHJcbiAgfSBlbHNlIGlmIChyYW5nZSA+PSAxKSB7XHJcbiAgICBsaW1pdCA9IDE7XHJcbiAgfSBlbHNlIGlmIChyYW5nZSA+PSAwLjEpIHtcclxuICAgIGxpbWl0ID0gMC4xO1xyXG4gIH0gZWxzZSBpZiAocmFuZ2UgPj0gMC4wMSkge1xyXG4gICAgbGltaXQgPSAwLjAxO1xyXG4gIH0gZWxzZSBpZiAocmFuZ2UgPj0gMC4wMDEpIHtcclxuICAgIGxpbWl0ID0gMC4wMDE7XHJcbiAgfSBlbHNlIGlmIChyYW5nZSA+PSAwLjAwMDEpIHtcclxuICAgIGxpbWl0ID0gMC4wMDAxO1xyXG4gIH0gZWxzZSBpZiAocmFuZ2UgPj0gMC4wMDAwMSkge1xyXG4gICAgbGltaXQgPSAwLjAwMDAxO1xyXG4gIH0gZWxzZSB7XHJcbiAgICBsaW1pdCA9IDAuMDAwMDAxO1xyXG4gIH1cclxuICByZXR1cm4ge1xyXG4gICAgbWluUmFuZ2U6IGZpbmRSYW5nZShtaW5EYXRhLCAnbG93ZXInLCBsaW1pdCksXHJcbiAgICBtYXhSYW5nZTogZmluZFJhbmdlKG1heERhdGEsICd1cHBlcicsIGxpbWl0KVxyXG4gIH07XHJcbn1cclxuXHJcbmZ1bmN0aW9uIG1lYXN1cmVUZXh0KHRleHQsIGZvbnRTaXplLCBjb250ZXh0KSB7XHJcbiAgdmFyIHdpZHRoID0gMDtcclxuICB0ZXh0ID0gU3RyaW5nKHRleHQpO1xyXG5cclxuXHJcblxyXG4gIGlmIChjb250ZXh0ICE9PSBmYWxzZSAmJiBjb250ZXh0ICE9PSB1bmRlZmluZWQgJiYgY29udGV4dC5zZXRGb250U2l6ZSAmJiBjb250ZXh0Lm1lYXN1cmVUZXh0KSB7XHJcbiAgICBjb250ZXh0LnNldEZvbnRTaXplKGZvbnRTaXplKTtcclxuICAgIHJldHVybiBjb250ZXh0Lm1lYXN1cmVUZXh0KHRleHQpLndpZHRoO1xyXG4gIH0gZWxzZSB7XHJcbiAgICB2YXIgdGV4dCA9IHRleHQuc3BsaXQoJycpO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0ZXh0Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGxldCBpdGVtID0gdGV4dFtpXTtcclxuICAgICAgaWYgKC9bYS16QS1aXS8udGVzdChpdGVtKSkge1xyXG4gICAgICAgIHdpZHRoICs9IDc7XHJcbiAgICAgIH0gZWxzZSBpZiAoL1swLTldLy50ZXN0KGl0ZW0pKSB7XHJcbiAgICAgICAgd2lkdGggKz0gNS41O1xyXG4gICAgICB9IGVsc2UgaWYgKC9cXC4vLnRlc3QoaXRlbSkpIHtcclxuICAgICAgICB3aWR0aCArPSAyLjc7XHJcbiAgICAgIH0gZWxzZSBpZiAoLy0vLnRlc3QoaXRlbSkpIHtcclxuICAgICAgICB3aWR0aCArPSAzLjI1O1xyXG4gICAgICB9IGVsc2UgaWYgKC86Ly50ZXN0KGl0ZW0pKSB7XHJcbiAgICAgICAgd2lkdGggKz0gMi41O1xyXG4gICAgICB9IGVsc2UgaWYgKC9bXFx1NGUwMC1cXHU5ZmE1XS8udGVzdChpdGVtKSkge1xyXG4gICAgICAgIHdpZHRoICs9IDEwO1xyXG4gICAgICB9IGVsc2UgaWYgKC9cXCh8XFwpLy50ZXN0KGl0ZW0pKSB7XHJcbiAgICAgICAgd2lkdGggKz0gMy43MztcclxuICAgICAgfSBlbHNlIGlmICgvXFxzLy50ZXN0KGl0ZW0pKSB7XHJcbiAgICAgICAgd2lkdGggKz0gMi41O1xyXG4gICAgICB9IGVsc2UgaWYgKC8lLy50ZXN0KGl0ZW0pKSB7XHJcbiAgICAgICAgd2lkdGggKz0gODtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB3aWR0aCArPSAxMDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHdpZHRoICogZm9udFNpemUgLyAxMDtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRhdGFDb21iaW5lKHNlcmllcykge1xyXG4gIHJldHVybiBzZXJpZXMucmVkdWNlKGZ1bmN0aW9uKGEsIGIpIHtcclxuICAgIHJldHVybiAoYS5kYXRhID8gYS5kYXRhIDogYSkuY29uY2F0KGIuZGF0YSk7XHJcbiAgfSwgW10pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBkYXRhQ29tYmluZVN0YWNrKHNlcmllcywgbGVuKSB7XHJcbiAgdmFyIHN1bSA9IG5ldyBBcnJheShsZW4pO1xyXG4gIGZvciAodmFyIGogPSAwOyBqIDwgc3VtLmxlbmd0aDsgaisrKSB7XHJcbiAgICBzdW1bal0gPSAwO1xyXG4gIH1cclxuICBmb3IgKHZhciBpID0gMDsgaSA8IHNlcmllcy5sZW5ndGg7IGkrKykge1xyXG4gICAgZm9yICh2YXIgaiA9IDA7IGogPCBzdW0ubGVuZ3RoOyBqKyspIHtcclxuICAgICAgc3VtW2pdICs9IHNlcmllc1tpXS5kYXRhW2pdO1xyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gc2VyaWVzLnJlZHVjZShmdW5jdGlvbihhLCBiKSB7XHJcbiAgICByZXR1cm4gKGEuZGF0YSA/IGEuZGF0YSA6IGEpLmNvbmNhdChiLmRhdGEpLmNvbmNhdChzdW0pO1xyXG4gIH0sIFtdKTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0VG91Y2hlcyh0b3VjaGVzLCBvcHRzLCBlKSB7XHJcbiAgbGV0IHgsIHk7XHJcbiAgaWYgKHRvdWNoZXMuY2xpZW50WCkge1xyXG4gICAgaWYgKG9wdHMucm90YXRlKSB7XHJcbiAgICAgIHkgPSBvcHRzLmhlaWdodCAtIHRvdWNoZXMuY2xpZW50WCAqIG9wdHMucGl4O1xyXG4gICAgICB4ID0gKHRvdWNoZXMucGFnZVkgLSBlLmN1cnJlbnRUYXJnZXQub2Zmc2V0VG9wIC0gKG9wdHMuaGVpZ2h0IC8gb3B0cy5waXggLyAyKSAqIChvcHRzLnBpeCAtIDEpKSAqIG9wdHMucGl4O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgeCA9IHRvdWNoZXMuY2xpZW50WCAqIG9wdHMucGl4O1xyXG4gICAgICB5ID0gKHRvdWNoZXMucGFnZVkgLSBlLmN1cnJlbnRUYXJnZXQub2Zmc2V0VG9wIC0gKG9wdHMuaGVpZ2h0IC8gb3B0cy5waXggLyAyKSAqIChvcHRzLnBpeCAtIDEpKSAqIG9wdHMucGl4O1xyXG4gICAgfVxyXG4gIH0gZWxzZSB7XHJcbiAgICBpZiAob3B0cy5yb3RhdGUpIHtcclxuICAgICAgeSA9IG9wdHMuaGVpZ2h0IC0gdG91Y2hlcy54ICogb3B0cy5waXg7XHJcbiAgICAgIHggPSB0b3VjaGVzLnkgKiBvcHRzLnBpeDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHggPSB0b3VjaGVzLnggKiBvcHRzLnBpeDtcclxuICAgICAgeSA9IHRvdWNoZXMueSAqIG9wdHMucGl4O1xyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4ge1xyXG4gICAgeDogeCxcclxuICAgIHk6IHlcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldFNlcmllc0RhdGFJdGVtKHNlcmllcywgaW5kZXgsIGdyb3VwKSB7XHJcbiAgdmFyIGRhdGEgPSBbXTtcclxuICB2YXIgbmV3U2VyaWVzID0gW107XHJcbiAgdmFyIGluZGV4SXNBcnIgPSBpbmRleC5jb25zdHJ1Y3Rvci50b1N0cmluZygpLmluZGV4T2YoJ0FycmF5JykgPiAtMTtcclxuICBpZihpbmRleElzQXJyKXtcclxuICAgIGxldCB0ZW1wU2VyaWVzID0gZmlsdGVyU2VyaWVzKHNlcmllcyk7XHJcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGdyb3VwLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIG5ld1Nlcmllcy5wdXNoKHRlbXBTZXJpZXNbZ3JvdXBbaV1dKTtcclxuICAgIH1cclxuICB9ZWxzZXtcclxuICAgIG5ld1NlcmllcyA9IHNlcmllcztcclxuICB9O1xyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbmV3U2VyaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBsZXQgaXRlbSA9IG5ld1Nlcmllc1tpXTtcclxuICAgIGxldCB0bXBpbmRleCA9IC0xO1xyXG4gICAgaWYoaW5kZXhJc0Fycil7XHJcbiAgICAgIHRtcGluZGV4ID0gaW5kZXhbaV07XHJcbiAgICB9ZWxzZXtcclxuICAgICAgdG1waW5kZXggPSBpbmRleDtcclxuICAgIH1cclxuICAgIGlmIChpdGVtLmRhdGFbdG1waW5kZXhdICE9PSBudWxsICYmIHR5cGVvZiBpdGVtLmRhdGFbdG1waW5kZXhdICE9PSAndW5kZWZpbmVkJyAmJiBpdGVtLnNob3cpIHtcclxuICAgICAgbGV0IHNlcmllc0l0ZW0gPSB7fTtcclxuICAgICAgc2VyaWVzSXRlbS5jb2xvciA9IGl0ZW0uY29sb3I7XHJcbiAgICAgIHNlcmllc0l0ZW0udHlwZSA9IGl0ZW0udHlwZTtcclxuICAgICAgc2VyaWVzSXRlbS5zdHlsZSA9IGl0ZW0uc3R5bGU7XHJcbiAgICAgIHNlcmllc0l0ZW0ucG9pbnRTaGFwZSA9IGl0ZW0ucG9pbnRTaGFwZTtcclxuICAgICAgc2VyaWVzSXRlbS5kaXNhYmxlTGVnZW5kID0gaXRlbS5kaXNhYmxlTGVnZW5kO1xyXG4gICAgICBzZXJpZXNJdGVtLm5hbWUgPSBpdGVtLm5hbWU7XHJcbiAgICAgIHNlcmllc0l0ZW0uc2hvdyA9IGl0ZW0uc2hvdztcclxuICAgICAgc2VyaWVzSXRlbS5kYXRhID0gaXRlbS5mb3JtYXR0ZXIgPyBpdGVtLmZvcm1hdHRlcihpdGVtLmRhdGFbdG1waW5kZXhdKSA6IGl0ZW0uZGF0YVt0bXBpbmRleF07XHJcbiAgICAgIGRhdGEucHVzaChzZXJpZXNJdGVtKTtcclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIGRhdGE7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldE1heFRleHRMaXN0TGVuZ3RoKGxpc3QsIGZvbnRTaXplLCBjb250ZXh0KSB7XHJcbiAgdmFyIGxlbmd0aExpc3QgPSBsaXN0Lm1hcChmdW5jdGlvbihpdGVtKSB7XHJcbiAgICByZXR1cm4gbWVhc3VyZVRleHQoaXRlbSwgZm9udFNpemUsIGNvbnRleHQpO1xyXG4gIH0pO1xyXG4gIHJldHVybiBNYXRoLm1heC5hcHBseShudWxsLCBsZW5ndGhMaXN0KTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0UmFkYXJDb29yZGluYXRlU2VyaWVzKGxlbmd0aCkge1xyXG4gIHZhciBlYWNoQW5nbGUgPSAyICogTWF0aC5QSSAvIGxlbmd0aDtcclxuICB2YXIgQ29vcmRpbmF0ZVNlcmllcyA9IFtdO1xyXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcclxuICAgIENvb3JkaW5hdGVTZXJpZXMucHVzaChlYWNoQW5nbGUgKiBpKTtcclxuICB9XHJcbiAgcmV0dXJuIENvb3JkaW5hdGVTZXJpZXMubWFwKGZ1bmN0aW9uKGl0ZW0pIHtcclxuICAgIHJldHVybiAtMSAqIGl0ZW0gKyBNYXRoLlBJIC8gMjtcclxuICB9KTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0VG9vbFRpcERhdGEoc2VyaWVzRGF0YSwgb3B0cywgaW5kZXgsIGdyb3VwLCBjYXRlZ29yaWVzKSB7XHJcbiAgdmFyIG9wdGlvbiA9IGFyZ3VtZW50cy5sZW5ndGggPiA1ICYmIGFyZ3VtZW50c1s1XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzVdIDoge307XHJcbiAgdmFyIGNhbFBvaW50cyA9IG9wdHMuY2hhcnREYXRhLmNhbFBvaW50cz9vcHRzLmNoYXJ0RGF0YS5jYWxQb2ludHM6W107XHJcbiAgbGV0IHBvaW50cyA9IHt9O1xyXG4gIGlmKGdyb3VwLmxlbmd0aCA+IDApe1xyXG4gICAgbGV0IGZpbHRlclBvaW50cyA9IFtdO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBncm91cC5sZW5ndGg7IGkrKykge1xyXG4gICAgICBmaWx0ZXJQb2ludHMucHVzaChjYWxQb2ludHNbZ3JvdXBbaV1dKVxyXG4gICAgfVxyXG4gICAgcG9pbnRzID0gZmlsdGVyUG9pbnRzWzBdW2luZGV4WzBdXTtcclxuICB9ZWxzZXtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2FsUG9pbnRzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGlmKGNhbFBvaW50c1tpXVtpbmRleF0pe1xyXG4gICAgICAgIHBvaW50cyA9IGNhbFBvaW50c1tpXVtpbmRleF07XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9O1xyXG4gIHZhciB0ZXh0TGlzdCA9IHNlcmllc0RhdGEubWFwKGZ1bmN0aW9uKGl0ZW0pIHtcclxuICAgIGxldCB0aXRsZVRleHQgPSBudWxsO1xyXG4gICAgaWYgKG9wdHMuY2F0ZWdvcmllcyAmJiBvcHRzLmNhdGVnb3JpZXMubGVuZ3RoPjApIHtcclxuICAgICAgdGl0bGVUZXh0ID0gY2F0ZWdvcmllc1tpbmRleF07XHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgdGV4dDogb3B0aW9uLmZvcm1hdHRlciA/IG9wdGlvbi5mb3JtYXR0ZXIoaXRlbSwgdGl0bGVUZXh0LCBpbmRleCwgb3B0cykgOiBpdGVtLm5hbWUgKyAnOiAnICsgaXRlbS5kYXRhLFxyXG4gICAgICBjb2xvcjogaXRlbS5jb2xvclxyXG4gICAgfTtcclxuICB9KTtcclxuICB2YXIgb2Zmc2V0ID0ge1xyXG4gICAgeDogTWF0aC5yb3VuZChwb2ludHMueCksXHJcbiAgICB5OiBNYXRoLnJvdW5kKHBvaW50cy55KVxyXG4gIH07XHJcbiAgcmV0dXJuIHtcclxuICAgIHRleHRMaXN0OiB0ZXh0TGlzdCxcclxuICAgIG9mZnNldDogb2Zmc2V0XHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0TWl4VG9vbFRpcERhdGEoc2VyaWVzRGF0YSwgb3B0cywgaW5kZXgsIGNhdGVnb3JpZXMpIHtcclxuICB2YXIgb3B0aW9uID0gYXJndW1lbnRzLmxlbmd0aCA+IDQgJiYgYXJndW1lbnRzWzRdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbNF0gOiB7fTtcclxuICB2YXIgcG9pbnRzID0gb3B0cy5jaGFydERhdGEueEF4aXNQb2ludHNbaW5kZXhdICsgb3B0cy5jaGFydERhdGEuZWFjaFNwYWNpbmcgLyAyO1xyXG4gIHZhciB0ZXh0TGlzdCA9IHNlcmllc0RhdGEubWFwKGZ1bmN0aW9uKGl0ZW0pIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHRleHQ6IG9wdGlvbi5mb3JtYXR0ZXIgPyBvcHRpb24uZm9ybWF0dGVyKGl0ZW0sIGNhdGVnb3JpZXNbaW5kZXhdLCBpbmRleCwgb3B0cykgOiBpdGVtLm5hbWUgKyAnOiAnICsgaXRlbS5kYXRhLFxyXG4gICAgICBjb2xvcjogaXRlbS5jb2xvcixcclxuICAgICAgZGlzYWJsZUxlZ2VuZDogaXRlbS5kaXNhYmxlTGVnZW5kID8gdHJ1ZSA6IGZhbHNlXHJcbiAgICB9O1xyXG4gIH0pO1xyXG4gIHRleHRMaXN0ID0gdGV4dExpc3QuZmlsdGVyKGZ1bmN0aW9uKGl0ZW0pIHtcclxuICAgIGlmIChpdGVtLmRpc2FibGVMZWdlbmQgIT09IHRydWUpIHtcclxuICAgICAgcmV0dXJuIGl0ZW07XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgdmFyIG9mZnNldCA9IHtcclxuICAgIHg6IE1hdGgucm91bmQocG9pbnRzKSxcclxuICAgIHk6IDBcclxuICB9O1xyXG4gIHJldHVybiB7XHJcbiAgICB0ZXh0TGlzdDogdGV4dExpc3QsXHJcbiAgICBvZmZzZXQ6IG9mZnNldFxyXG4gIH07XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldENhbmRsZVRvb2xUaXBEYXRhKHNlcmllcywgc2VyaWVzRGF0YSwgb3B0cywgaW5kZXgsIGNhdGVnb3JpZXMsIGV4dHJhKSB7XHJcbiAgdmFyIG9wdGlvbiA9IGFyZ3VtZW50cy5sZW5ndGggPiA2ICYmIGFyZ3VtZW50c1s2XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzZdIDoge307XHJcbiAgdmFyIGNhbFBvaW50cyA9IG9wdHMuY2hhcnREYXRhLmNhbFBvaW50cztcclxuICBsZXQgdXBDb2xvciA9IGV4dHJhLmNvbG9yLnVwRmlsbDtcclxuICBsZXQgZG93bkNvbG9yID0gZXh0cmEuY29sb3IuZG93bkZpbGw7XHJcbiAgLy/popzoibLpobrluo/kuLrlvIDnm5jvvIzmlLbnm5jvvIzmnIDkvY7vvIzmnIDpq5hcclxuICBsZXQgY29sb3IgPSBbdXBDb2xvciwgdXBDb2xvciwgZG93bkNvbG9yLCB1cENvbG9yXTtcclxuICB2YXIgdGV4dExpc3QgPSBbXTtcclxuICBzZXJpZXNEYXRhLm1hcChmdW5jdGlvbihpdGVtKSB7XHJcbiAgICBpZiAoaW5kZXggPT0gMCkge1xyXG4gICAgICBpZiAoaXRlbS5kYXRhWzFdIC0gaXRlbS5kYXRhWzBdIDwgMCkge1xyXG4gICAgICAgIGNvbG9yWzFdID0gZG93bkNvbG9yO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbG9yWzFdID0gdXBDb2xvcjtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKGl0ZW0uZGF0YVswXSA8IHNlcmllc1tpbmRleCAtIDFdWzFdKSB7XHJcbiAgICAgICAgY29sb3JbMF0gPSBkb3duQ29sb3I7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGl0ZW0uZGF0YVsxXSA8IGl0ZW0uZGF0YVswXSkge1xyXG4gICAgICAgIGNvbG9yWzFdID0gZG93bkNvbG9yO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChpdGVtLmRhdGFbMl0gPiBzZXJpZXNbaW5kZXggLSAxXVsxXSkge1xyXG4gICAgICAgIGNvbG9yWzJdID0gdXBDb2xvcjtcclxuICAgICAgfVxyXG4gICAgICBpZiAoaXRlbS5kYXRhWzNdIDwgc2VyaWVzW2luZGV4IC0gMV1bMV0pIHtcclxuICAgICAgICBjb2xvclszXSA9IGRvd25Db2xvcjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgbGV0IHRleHQxID0ge1xyXG4gICAgICB0ZXh0OiAn5byA55uY77yaJyArIGl0ZW0uZGF0YVswXSxcclxuICAgICAgY29sb3I6IGNvbG9yWzBdXHJcbiAgICB9O1xyXG4gICAgbGV0IHRleHQyID0ge1xyXG4gICAgICB0ZXh0OiAn5pS255uY77yaJyArIGl0ZW0uZGF0YVsxXSxcclxuICAgICAgY29sb3I6IGNvbG9yWzFdXHJcbiAgICB9O1xyXG4gICAgbGV0IHRleHQzID0ge1xyXG4gICAgICB0ZXh0OiAn5pyA5L2O77yaJyArIGl0ZW0uZGF0YVsyXSxcclxuICAgICAgY29sb3I6IGNvbG9yWzJdXHJcbiAgICB9O1xyXG4gICAgbGV0IHRleHQ0ID0ge1xyXG4gICAgICB0ZXh0OiAn5pyA6auY77yaJyArIGl0ZW0uZGF0YVszXSxcclxuICAgICAgY29sb3I6IGNvbG9yWzNdXHJcbiAgICB9O1xyXG4gICAgdGV4dExpc3QucHVzaCh0ZXh0MSwgdGV4dDIsIHRleHQzLCB0ZXh0NCk7XHJcbiAgfSk7XHJcbiAgdmFyIHZhbGlkQ2FsUG9pbnRzID0gW107XHJcbiAgdmFyIG9mZnNldCA9IHtcclxuICAgIHg6IDAsXHJcbiAgICB5OiAwXHJcbiAgfTtcclxuICBmb3IgKGxldCBpID0gMDsgaSA8IGNhbFBvaW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgbGV0IHBvaW50cyA9IGNhbFBvaW50c1tpXTtcclxuICAgIGlmICh0eXBlb2YgcG9pbnRzW2luZGV4XSAhPT0gJ3VuZGVmaW5lZCcgJiYgcG9pbnRzW2luZGV4XSAhPT0gbnVsbCkge1xyXG4gICAgICB2YWxpZENhbFBvaW50cy5wdXNoKHBvaW50c1tpbmRleF0pO1xyXG4gICAgfVxyXG4gIH1cclxuICBvZmZzZXQueCA9IE1hdGgucm91bmQodmFsaWRDYWxQb2ludHNbMF1bMF0ueCk7XHJcbiAgcmV0dXJuIHtcclxuICAgIHRleHRMaXN0OiB0ZXh0TGlzdCxcclxuICAgIG9mZnNldDogb2Zmc2V0XHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gZmlsdGVyU2VyaWVzKHNlcmllcykge1xyXG4gIGxldCB0ZW1wU2VyaWVzID0gW107XHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXJpZXMubGVuZ3RoOyBpKyspIHtcclxuICAgIGlmIChzZXJpZXNbaV0uc2hvdyA9PSB0cnVlKSB7XHJcbiAgICAgIHRlbXBTZXJpZXMucHVzaChzZXJpZXNbaV0pXHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiB0ZW1wU2VyaWVzO1xyXG59XHJcblxyXG5mdW5jdGlvbiBmaW5kQ3VycmVudEluZGV4KGN1cnJlbnRQb2ludHMsIGNhbFBvaW50cywgb3B0cywgY29uZmlnKSB7XHJcbiAgdmFyIG9mZnNldCA9IGFyZ3VtZW50cy5sZW5ndGggPiA0ICYmIGFyZ3VtZW50c1s0XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzRdIDogMDtcclxuICB2YXIgY3VycmVudD17IGluZGV4Oi0xLCBncm91cDpbXSB9O1xyXG4gIHZhciBzcGFjaW5nID0gb3B0cy5jaGFydERhdGEuZWFjaFNwYWNpbmcgLyAyO1xyXG4gIGxldCB4QXhpc1BvaW50cyA9IFtdO1xyXG4gIGlmIChjYWxQb2ludHMgJiYgY2FsUG9pbnRzLmxlbmd0aCA+IDApIHtcclxuICAgIGlmICghb3B0cy5jYXRlZ29yaWVzKSB7XHJcbiAgICAgIHNwYWNpbmcgPSAwO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIGZvciAobGV0IGkgPSAxOyBpIDwgb3B0cy5jaGFydERhdGEueEF4aXNQb2ludHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICB4QXhpc1BvaW50cy5wdXNoKG9wdHMuY2hhcnREYXRhLnhBeGlzUG9pbnRzW2ldIC0gc3BhY2luZyk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKChvcHRzLnR5cGUgPT0gJ2xpbmUnIHx8IG9wdHMudHlwZSA9PSAnYXJlYScpICYmIG9wdHMueEF4aXMuYm91bmRhcnlHYXAgPT0gJ2p1c3RpZnknKSB7XHJcbiAgICAgICAgeEF4aXNQb2ludHMgPSBvcHRzLmNoYXJ0RGF0YS54QXhpc1BvaW50cztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKGlzSW5FeGFjdENoYXJ0QXJlYShjdXJyZW50UG9pbnRzLCBvcHRzLCBjb25maWcpKSB7XHJcbiAgICAgIGlmICghb3B0cy5jYXRlZ29yaWVzKSB7XHJcbiAgICAgICAgbGV0IHRpbWVQb2ludHMgPSBBcnJheShjYWxQb2ludHMubGVuZ3RoKTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNhbFBvaW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgdGltZVBvaW50c1tpXSA9IEFycmF5KGNhbFBvaW50c1tpXS5sZW5ndGgpXHJcbiAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGNhbFBvaW50c1tpXS5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICB0aW1lUG9pbnRzW2ldW2pdID0gKE1hdGguYWJzKGNhbFBvaW50c1tpXVtqXS54IC0gY3VycmVudFBvaW50cy54KSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICBsZXQgcG9pbnRWYWx1ZSA9ICBBcnJheSh0aW1lUG9pbnRzLmxlbmd0aCk7XHJcbiAgICAgICAgbGV0IHBvaW50SW5kZXggPSAgQXJyYXkodGltZVBvaW50cy5sZW5ndGgpO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGltZVBvaW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgcG9pbnRWYWx1ZVtpXSA9IE1hdGgubWluLmFwcGx5KG51bGwsIHRpbWVQb2ludHNbaV0pO1xyXG4gICAgICAgICAgcG9pbnRJbmRleFtpXSA9IHRpbWVQb2ludHNbaV0uaW5kZXhPZihwb2ludFZhbHVlW2ldKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IG1pblZhbHVlID0gTWF0aC5taW4uYXBwbHkobnVsbCwgcG9pbnRWYWx1ZSk7XHJcbiAgICAgICAgY3VycmVudC5pbmRleCA9IFtdO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcG9pbnRWYWx1ZS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgaWYocG9pbnRWYWx1ZVtpXSA9PSBtaW5WYWx1ZSl7XHJcbiAgICAgICAgICAgIGN1cnJlbnQuZ3JvdXAucHVzaChpKTtcclxuICAgICAgICAgICAgY3VycmVudC5pbmRleC5wdXNoKHBvaW50SW5kZXhbaV0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIHhBeGlzUG9pbnRzLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgICAgICAgIGlmIChjdXJyZW50UG9pbnRzLnggKyBvZmZzZXQgKyBzcGFjaW5nID4gaXRlbSkge1xyXG4gICAgICAgICAgICBjdXJyZW50LmluZGV4ID0gaW5kZXg7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIGN1cnJlbnQ7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZpbmRCYXJDaGFydEN1cnJlbnRJbmRleChjdXJyZW50UG9pbnRzLCBjYWxQb2ludHMsIG9wdHMsIGNvbmZpZykge1xyXG4gIHZhciBvZmZzZXQgPSBhcmd1bWVudHMubGVuZ3RoID4gNCAmJiBhcmd1bWVudHNbNF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s0XSA6IDA7XHJcbiAgdmFyIGN1cnJlbnQ9eyBpbmRleDotMSwgZ3JvdXA6W10gfTtcclxuICB2YXIgc3BhY2luZyA9IG9wdHMuY2hhcnREYXRhLmVhY2hTcGFjaW5nIC8gMjtcclxuICBsZXQgeUF4aXNQb2ludHMgPSBvcHRzLmNoYXJ0RGF0YS55QXhpc1BvaW50cztcclxuICBpZiAoY2FsUG9pbnRzICYmIGNhbFBvaW50cy5sZW5ndGggPiAwKSB7XHJcbiAgICBpZiAoaXNJbkV4YWN0Q2hhcnRBcmVhKGN1cnJlbnRQb2ludHMsIG9wdHMsIGNvbmZpZykpIHtcclxuICAgICAgeUF4aXNQb2ludHMuZm9yRWFjaChmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgICAgIGlmIChjdXJyZW50UG9pbnRzLnkgKyBvZmZzZXQgKyBzcGFjaW5nID4gaXRlbSkge1xyXG4gICAgICAgICAgY3VycmVudC5pbmRleCA9IGluZGV4O1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBjdXJyZW50O1xyXG59XHJcblxyXG5mdW5jdGlvbiBmaW5kTGVnZW5kSW5kZXgoY3VycmVudFBvaW50cywgbGVnZW5kRGF0YSwgb3B0cykge1xyXG4gIGxldCBjdXJyZW50SW5kZXggPSAtMTtcclxuICBsZXQgZ2FwID0gMDtcclxuICBpZiAoaXNJbkV4YWN0TGVnZW5kQXJlYShjdXJyZW50UG9pbnRzLCBsZWdlbmREYXRhLmFyZWEpKSB7XHJcbiAgICBsZXQgcG9pbnRzID0gbGVnZW5kRGF0YS5wb2ludHM7XHJcbiAgICBsZXQgaW5kZXggPSAtMTtcclxuICAgIGZvciAobGV0IGkgPSAwLCBsZW4gPSBwb2ludHMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcclxuICAgICAgbGV0IGl0ZW0gPSBwb2ludHNbaV07XHJcbiAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgaXRlbS5sZW5ndGg7IGorKykge1xyXG4gICAgICAgIGluZGV4ICs9IDE7XHJcbiAgICAgICAgbGV0IGFyZWEgPSBpdGVtW2pdWydhcmVhJ107XHJcbiAgICAgICAgaWYgKGFyZWEgJiYgY3VycmVudFBvaW50cy54ID4gYXJlYVswXSAtIGdhcCAmJiBjdXJyZW50UG9pbnRzLnggPCBhcmVhWzJdICsgZ2FwICYmIGN1cnJlbnRQb2ludHMueSA+IGFyZWFbMV0gLSBnYXAgJiYgY3VycmVudFBvaW50cy55IDwgYXJlYVszXSArIGdhcCkge1xyXG4gICAgICAgICAgY3VycmVudEluZGV4ID0gaW5kZXg7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBjdXJyZW50SW5kZXg7XHJcbiAgfVxyXG4gIHJldHVybiBjdXJyZW50SW5kZXg7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzSW5FeGFjdExlZ2VuZEFyZWEoY3VycmVudFBvaW50cywgYXJlYSkge1xyXG4gIHJldHVybiBjdXJyZW50UG9pbnRzLnggPiBhcmVhLnN0YXJ0LnggJiYgY3VycmVudFBvaW50cy54IDwgYXJlYS5lbmQueCAmJiBjdXJyZW50UG9pbnRzLnkgPiBhcmVhLnN0YXJ0LnkgJiYgY3VycmVudFBvaW50cy55IDwgYXJlYS5lbmQueTtcclxufVxyXG5cclxuZnVuY3Rpb24gaXNJbkV4YWN0Q2hhcnRBcmVhKGN1cnJlbnRQb2ludHMsIG9wdHMsIGNvbmZpZykge1xyXG4gIHJldHVybiBjdXJyZW50UG9pbnRzLnggPD0gb3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXSArIDEwICYmIGN1cnJlbnRQb2ludHMueCA+PSBvcHRzLmFyZWFbM10gLSAxMCAmJiBjdXJyZW50UG9pbnRzLnkgPj0gb3B0cy5hcmVhWzBdICYmIGN1cnJlbnRQb2ludHMueSA8PSBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXTtcclxufVxyXG5cclxuZnVuY3Rpb24gZmluZFJhZGFyQ2hhcnRDdXJyZW50SW5kZXgoY3VycmVudFBvaW50cywgcmFkYXJEYXRhLCBjb3VudCkge1xyXG4gIHZhciBlYWNoQW5nbGVBcmVhID0gMiAqIE1hdGguUEkgLyBjb3VudDtcclxuICB2YXIgY3VycmVudEluZGV4ID0gLTE7XHJcbiAgaWYgKGlzSW5FeGFjdFBpZUNoYXJ0QXJlYShjdXJyZW50UG9pbnRzLCByYWRhckRhdGEuY2VudGVyLCByYWRhckRhdGEucmFkaXVzKSkge1xyXG4gICAgdmFyIGZpeEFuZ2xlID0gZnVuY3Rpb24gZml4QW5nbGUoYW5nbGUpIHtcclxuICAgICAgaWYgKGFuZ2xlIDwgMCkge1xyXG4gICAgICAgIGFuZ2xlICs9IDIgKiBNYXRoLlBJO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChhbmdsZSA+IDIgKiBNYXRoLlBJKSB7XHJcbiAgICAgICAgYW5nbGUgLT0gMiAqIE1hdGguUEk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIGFuZ2xlO1xyXG4gICAgfTtcclxuICAgIHZhciBhbmdsZSA9IE1hdGguYXRhbjIocmFkYXJEYXRhLmNlbnRlci55IC0gY3VycmVudFBvaW50cy55LCBjdXJyZW50UG9pbnRzLnggLSByYWRhckRhdGEuY2VudGVyLngpO1xyXG4gICAgYW5nbGUgPSAtMSAqIGFuZ2xlO1xyXG4gICAgaWYgKGFuZ2xlIDwgMCkge1xyXG4gICAgICBhbmdsZSArPSAyICogTWF0aC5QSTtcclxuICAgIH1cclxuICAgIHZhciBhbmdsZUxpc3QgPSByYWRhckRhdGEuYW5nbGVMaXN0Lm1hcChmdW5jdGlvbihpdGVtKSB7XHJcbiAgICAgIGl0ZW0gPSBmaXhBbmdsZSgtMSAqIGl0ZW0pO1xyXG4gICAgICByZXR1cm4gaXRlbTtcclxuICAgIH0pO1xyXG4gICAgYW5nbGVMaXN0LmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgICAgdmFyIHJhbmdlU3RhcnQgPSBmaXhBbmdsZShpdGVtIC0gZWFjaEFuZ2xlQXJlYSAvIDIpO1xyXG4gICAgICB2YXIgcmFuZ2VFbmQgPSBmaXhBbmdsZShpdGVtICsgZWFjaEFuZ2xlQXJlYSAvIDIpO1xyXG4gICAgICBpZiAocmFuZ2VFbmQgPCByYW5nZVN0YXJ0KSB7XHJcbiAgICAgICAgcmFuZ2VFbmQgKz0gMiAqIE1hdGguUEk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGFuZ2xlID49IHJhbmdlU3RhcnQgJiYgYW5nbGUgPD0gcmFuZ2VFbmQgfHwgYW5nbGUgKyAyICogTWF0aC5QSSA+PSByYW5nZVN0YXJ0ICYmIGFuZ2xlICsgMiAqIE1hdGguUEkgPD0gcmFuZ2VFbmQpIHtcclxuICAgICAgICBjdXJyZW50SW5kZXggPSBpbmRleDtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHJldHVybiBjdXJyZW50SW5kZXg7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZpbmRGdW5uZWxDaGFydEN1cnJlbnRJbmRleChjdXJyZW50UG9pbnRzLCBmdW5uZWxEYXRhKSB7XHJcbiAgdmFyIGN1cnJlbnRJbmRleCA9IC0xO1xyXG4gIGZvciAodmFyIGkgPSAwLCBsZW4gPSBmdW5uZWxEYXRhLnNlcmllcy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xyXG4gICAgdmFyIGl0ZW0gPSBmdW5uZWxEYXRhLnNlcmllc1tpXTtcclxuICAgIGlmIChjdXJyZW50UG9pbnRzLnggPiBpdGVtLmZ1bm5lbEFyZWFbMF0gJiYgY3VycmVudFBvaW50cy54IDwgaXRlbS5mdW5uZWxBcmVhWzJdICYmIGN1cnJlbnRQb2ludHMueSA+IGl0ZW0uZnVubmVsQXJlYVsxXSAmJiBjdXJyZW50UG9pbnRzLnkgPCBpdGVtLmZ1bm5lbEFyZWFbM10pIHtcclxuICAgICAgY3VycmVudEluZGV4ID0gaTtcclxuICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBjdXJyZW50SW5kZXg7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZpbmRXb3JkQ2hhcnRDdXJyZW50SW5kZXgoY3VycmVudFBvaW50cywgd29yZERhdGEpIHtcclxuICB2YXIgY3VycmVudEluZGV4ID0gLTE7XHJcbiAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IHdvcmREYXRhLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XHJcbiAgICB2YXIgaXRlbSA9IHdvcmREYXRhW2ldO1xyXG4gICAgaWYgKGN1cnJlbnRQb2ludHMueCA+IGl0ZW0uYXJlYVswXSAmJiBjdXJyZW50UG9pbnRzLnggPCBpdGVtLmFyZWFbMl0gJiYgY3VycmVudFBvaW50cy55ID4gaXRlbS5hcmVhWzFdICYmIGN1cnJlbnRQb2ludHMueSA8IGl0ZW0uYXJlYVszXSkge1xyXG4gICAgICBjdXJyZW50SW5kZXggPSBpO1xyXG4gICAgICBicmVhaztcclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIGN1cnJlbnRJbmRleDtcclxufVxyXG5cclxuZnVuY3Rpb24gZmluZE1hcENoYXJ0Q3VycmVudEluZGV4KGN1cnJlbnRQb2ludHMsIG9wdHMpIHtcclxuICB2YXIgY3VycmVudEluZGV4ID0gLTE7XHJcbiAgdmFyIGNEYXRhID0gb3B0cy5jaGFydERhdGEubWFwRGF0YTtcclxuICB2YXIgZGF0YSA9IG9wdHMuc2VyaWVzO1xyXG4gIHZhciB0bXAgPSBwb2ludFRvQ29vcmRpbmF0ZShjdXJyZW50UG9pbnRzLnksIGN1cnJlbnRQb2ludHMueCwgY0RhdGEuYm91bmRzLCBjRGF0YS5zY2FsZSwgY0RhdGEueG9mZnNldCwgY0RhdGEueW9mZnNldCk7XHJcbiAgdmFyIHBvaSA9IFt0bXAueCwgdG1wLnldO1xyXG4gIGZvciAodmFyIGkgPSAwLCBsZW4gPSBkYXRhLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XHJcbiAgICB2YXIgaXRlbSA9IGRhdGFbaV0uZ2VvbWV0cnkuY29vcmRpbmF0ZXM7XHJcbiAgICBpZiAoaXNQb2lXaXRoaW5Qb2x5KHBvaSwgaXRlbSwgb3B0cy5jaGFydERhdGEubWFwRGF0YS5tZXJjYXRvcikpIHtcclxuICAgICAgY3VycmVudEluZGV4ID0gaTtcclxuICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBjdXJyZW50SW5kZXg7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZpbmRSb3NlQ2hhcnRDdXJyZW50SW5kZXgoY3VycmVudFBvaW50cywgcGllRGF0YSwgb3B0cykge1xyXG4gIHZhciBjdXJyZW50SW5kZXggPSAtMTtcclxuICB2YXIgc2VyaWVzID0gZ2V0Um9zZURhdGFQb2ludHMob3B0cy5fc2VyaWVzXywgb3B0cy5leHRyYS5yb3NlLnR5cGUsIHBpZURhdGEucmFkaXVzLCBwaWVEYXRhLnJhZGl1cyk7XHJcbiAgaWYgKHBpZURhdGEgJiYgcGllRGF0YS5jZW50ZXIgJiYgaXNJbkV4YWN0UGllQ2hhcnRBcmVhKGN1cnJlbnRQb2ludHMsIHBpZURhdGEuY2VudGVyLCBwaWVEYXRhLnJhZGl1cykpIHtcclxuICAgIHZhciBhbmdsZSA9IE1hdGguYXRhbjIocGllRGF0YS5jZW50ZXIueSAtIGN1cnJlbnRQb2ludHMueSwgY3VycmVudFBvaW50cy54IC0gcGllRGF0YS5jZW50ZXIueCk7XHJcbiAgICBhbmdsZSA9IC1hbmdsZTtcclxuICAgIGlmKG9wdHMuZXh0cmEucm9zZSAmJiBvcHRzLmV4dHJhLnJvc2Uub2Zmc2V0QW5nbGUpe1xyXG4gICAgICBhbmdsZSA9IGFuZ2xlIC0gb3B0cy5leHRyYS5yb3NlLm9mZnNldEFuZ2xlICogTWF0aC5QSSAvIDE4MDtcclxuICAgIH1cclxuICAgIGZvciAodmFyIGkgPSAwLCBsZW4gPSBzZXJpZXMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcclxuICAgICAgaWYgKGlzSW5BbmdsZVJhbmdlKGFuZ2xlLCBzZXJpZXNbaV0uX3N0YXJ0Xywgc2VyaWVzW2ldLl9zdGFydF8gKyBzZXJpZXNbaV0uX3Jvc2VfcHJvcG9ydGlvbl8gKiAyICogTWF0aC5QSSkpIHtcclxuICAgICAgICBjdXJyZW50SW5kZXggPSBpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBjdXJyZW50SW5kZXg7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZpbmRQaWVDaGFydEN1cnJlbnRJbmRleChjdXJyZW50UG9pbnRzLCBwaWVEYXRhLCBvcHRzKSB7XHJcbiAgdmFyIGN1cnJlbnRJbmRleCA9IC0xO1xyXG4gIHZhciBzZXJpZXMgPSBnZXRQaWVEYXRhUG9pbnRzKHBpZURhdGEuc2VyaWVzKTtcclxuICBpZiAocGllRGF0YSAmJiBwaWVEYXRhLmNlbnRlciAmJiBpc0luRXhhY3RQaWVDaGFydEFyZWEoY3VycmVudFBvaW50cywgcGllRGF0YS5jZW50ZXIsIHBpZURhdGEucmFkaXVzKSkge1xyXG4gICAgdmFyIGFuZ2xlID0gTWF0aC5hdGFuMihwaWVEYXRhLmNlbnRlci55IC0gY3VycmVudFBvaW50cy55LCBjdXJyZW50UG9pbnRzLnggLSBwaWVEYXRhLmNlbnRlci54KTtcclxuICAgIGFuZ2xlID0gLWFuZ2xlO1xyXG4gICAgaWYob3B0cy5leHRyYS5waWUgJiYgb3B0cy5leHRyYS5waWUub2Zmc2V0QW5nbGUpe1xyXG4gICAgICBhbmdsZSA9IGFuZ2xlIC0gb3B0cy5leHRyYS5waWUub2Zmc2V0QW5nbGUgKiBNYXRoLlBJIC8gMTgwO1xyXG4gICAgfVxyXG4gICAgaWYob3B0cy5leHRyYS5yaW5nICYmIG9wdHMuZXh0cmEucmluZy5vZmZzZXRBbmdsZSl7XHJcbiAgICAgIGFuZ2xlID0gYW5nbGUgLSBvcHRzLmV4dHJhLnJpbmcub2Zmc2V0QW5nbGUgKiBNYXRoLlBJIC8gMTgwO1xyXG4gICAgfVxyXG4gICAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IHNlcmllcy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xyXG4gICAgICBpZiAoaXNJbkFuZ2xlUmFuZ2UoYW5nbGUsIHNlcmllc1tpXS5fc3RhcnRfLCBzZXJpZXNbaV0uX3N0YXJ0XyArIHNlcmllc1tpXS5fcHJvcG9ydGlvbl8gKiAyICogTWF0aC5QSSkpIHtcclxuICAgICAgICBjdXJyZW50SW5kZXggPSBpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBjdXJyZW50SW5kZXg7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzSW5FeGFjdFBpZUNoYXJ0QXJlYShjdXJyZW50UG9pbnRzLCBjZW50ZXIsIHJhZGl1cykge1xyXG4gIHJldHVybiBNYXRoLnBvdyhjdXJyZW50UG9pbnRzLnggLSBjZW50ZXIueCwgMikgKyBNYXRoLnBvdyhjdXJyZW50UG9pbnRzLnkgLSBjZW50ZXIueSwgMikgPD0gTWF0aC5wb3cocmFkaXVzLCAyKTtcclxufVxyXG5cclxuXHJcbmZ1bmN0aW9uIHNwbGl0UG9pbnRzKHBvaW50cyxlYWNoU2VyaWVzKSB7XHJcbiAgdmFyIG5ld1BvaW50cyA9IFtdO1xyXG4gIHZhciBpdGVtcyA9IFtdO1xyXG4gIHBvaW50cy5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICBpZihlYWNoU2VyaWVzLmNvbm5lY3ROdWxscyl7XHJcbiAgICAgIGlmIChpdGVtICE9PSBudWxsKSB7XHJcbiAgICAgICAgaXRlbXMucHVzaChpdGVtKTtcclxuICAgICAgfVxyXG4gICAgfWVsc2V7XHJcbiAgICAgIGlmIChpdGVtICE9PSBudWxsKSB7XHJcbiAgICAgICAgaXRlbXMucHVzaChpdGVtKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAoaXRlbXMubGVuZ3RoKSB7XHJcbiAgICAgICAgICBuZXdQb2ludHMucHVzaChpdGVtcyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGl0ZW1zID0gW107XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIFxyXG4gIH0pO1xyXG4gIGlmIChpdGVtcy5sZW5ndGgpIHtcclxuICAgIG5ld1BvaW50cy5wdXNoKGl0ZW1zKTtcclxuICB9XHJcbiAgcmV0dXJuIG5ld1BvaW50cztcclxufVxyXG5cclxuXHJcbmZ1bmN0aW9uIGNhbExlZ2VuZERhdGEoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNoYXJ0RGF0YSwgY29udGV4dCkge1xyXG4gIGxldCBsZWdlbmREYXRhID0ge1xyXG4gICAgYXJlYToge1xyXG4gICAgICBzdGFydDoge1xyXG4gICAgICAgIHg6IDAsXHJcbiAgICAgICAgeTogMFxyXG4gICAgICB9LFxyXG4gICAgICBlbmQ6IHtcclxuICAgICAgICB4OiAwLFxyXG4gICAgICAgIHk6IDBcclxuICAgICAgfSxcclxuICAgICAgd2lkdGg6IDAsXHJcbiAgICAgIGhlaWdodDogMCxcclxuICAgICAgd2hvbGVXaWR0aDogMCxcclxuICAgICAgd2hvbGVIZWlnaHQ6IDBcclxuICAgIH0sXHJcbiAgICBwb2ludHM6IFtdLFxyXG4gICAgd2lkdGhBcnI6IFtdLFxyXG4gICAgaGVpZ2h0QXJyOiBbXVxyXG4gIH07XHJcbiAgaWYgKG9wdHMubGVnZW5kLnNob3cgPT09IGZhbHNlKSB7XHJcbiAgICBjaGFydERhdGEubGVnZW5kRGF0YSA9IGxlZ2VuZERhdGE7XHJcbiAgICByZXR1cm4gbGVnZW5kRGF0YTtcclxuICB9XHJcbiAgbGV0IHBhZGRpbmcgPSBvcHRzLmxlZ2VuZC5wYWRkaW5nICogb3B0cy5waXg7XHJcbiAgbGV0IG1hcmdpbiA9IG9wdHMubGVnZW5kLm1hcmdpbiAqIG9wdHMucGl4O1xyXG4gIGxldCBmb250U2l6ZSA9IG9wdHMubGVnZW5kLmZvbnRTaXplID8gb3B0cy5sZWdlbmQuZm9udFNpemUgKiBvcHRzLnBpeCA6IGNvbmZpZy5mb250U2l6ZTtcclxuICBsZXQgc2hhcGVXaWR0aCA9IDE1ICogb3B0cy5waXg7XHJcbiAgbGV0IHNoYXBlUmlnaHQgPSA1ICogb3B0cy5waXg7XHJcbiAgbGV0IGxpbmVIZWlnaHQgPSBNYXRoLm1heChvcHRzLmxlZ2VuZC5saW5lSGVpZ2h0ICogb3B0cy5waXgsIGZvbnRTaXplKTtcclxuICBpZiAob3B0cy5sZWdlbmQucG9zaXRpb24gPT0gJ3RvcCcgfHwgb3B0cy5sZWdlbmQucG9zaXRpb24gPT0gJ2JvdHRvbScpIHtcclxuICAgIGxldCBsZWdlbmRMaXN0ID0gW107XHJcbiAgICBsZXQgd2lkdGhDb3VudCA9IDA7XHJcbiAgICBsZXQgd2lkdGhDb3VudEFyciA9IFtdO1xyXG4gICAgbGV0IGN1cnJlbnRSb3cgPSBbXTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2VyaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGxldCBpdGVtID0gc2VyaWVzW2ldO1xyXG4gICAgICBjb25zdCBsZWdlbmRUZXh0ID0gaXRlbS5sZWdlbmRUZXh0ID8gaXRlbS5sZWdlbmRUZXh0IDogaXRlbS5uYW1lO1xyXG4gICAgICBsZXQgaXRlbVdpZHRoID0gc2hhcGVXaWR0aCArIHNoYXBlUmlnaHQgKyBtZWFzdXJlVGV4dChsZWdlbmRUZXh0IHx8ICd1bmRlZmluZWQnLCBmb250U2l6ZSwgY29udGV4dCkgKyBvcHRzLmxlZ2VuZC5pdGVtR2FwICogb3B0cy5waXg7XHJcbiAgICAgIGlmICh3aWR0aENvdW50ICsgaXRlbVdpZHRoID4gb3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXSAtIG9wdHMuYXJlYVszXSkge1xyXG4gICAgICAgIGxlZ2VuZExpc3QucHVzaChjdXJyZW50Um93KTtcclxuICAgICAgICB3aWR0aENvdW50QXJyLnB1c2god2lkdGhDb3VudCAtIG9wdHMubGVnZW5kLml0ZW1HYXAgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgd2lkdGhDb3VudCA9IGl0ZW1XaWR0aDtcclxuICAgICAgICBjdXJyZW50Um93ID0gW2l0ZW1dO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHdpZHRoQ291bnQgKz0gaXRlbVdpZHRoO1xyXG4gICAgICAgIGN1cnJlbnRSb3cucHVzaChpdGVtKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKGN1cnJlbnRSb3cubGVuZ3RoKSB7XHJcbiAgICAgIGxlZ2VuZExpc3QucHVzaChjdXJyZW50Um93KTtcclxuICAgICAgd2lkdGhDb3VudEFyci5wdXNoKHdpZHRoQ291bnQgLSBvcHRzLmxlZ2VuZC5pdGVtR2FwICogb3B0cy5waXgpO1xyXG4gICAgICBsZWdlbmREYXRhLndpZHRoQXJyID0gd2lkdGhDb3VudEFycjtcclxuICAgICAgbGV0IGxlZ2VuZFdpZHRoID0gTWF0aC5tYXguYXBwbHkobnVsbCwgd2lkdGhDb3VudEFycik7XHJcbiAgICAgIHN3aXRjaCAob3B0cy5sZWdlbmQuZmxvYXQpIHtcclxuICAgICAgICBjYXNlICdsZWZ0JzpcclxuICAgICAgICAgIGxlZ2VuZERhdGEuYXJlYS5zdGFydC54ID0gb3B0cy5hcmVhWzNdO1xyXG4gICAgICAgICAgbGVnZW5kRGF0YS5hcmVhLmVuZC54ID0gb3B0cy5hcmVhWzNdICsgbGVnZW5kV2lkdGggKyAyICogcGFkZGluZztcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ3JpZ2h0JzpcclxuICAgICAgICAgIGxlZ2VuZERhdGEuYXJlYS5zdGFydC54ID0gb3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXSAtIGxlZ2VuZFdpZHRoIC0gMiAqIHBhZGRpbmc7XHJcbiAgICAgICAgICBsZWdlbmREYXRhLmFyZWEuZW5kLnggPSBvcHRzLndpZHRoIC0gb3B0cy5hcmVhWzFdO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIGxlZ2VuZERhdGEuYXJlYS5zdGFydC54ID0gKG9wdHMud2lkdGggLSBsZWdlbmRXaWR0aCkgLyAyIC0gcGFkZGluZztcclxuICAgICAgICAgIGxlZ2VuZERhdGEuYXJlYS5lbmQueCA9IChvcHRzLndpZHRoICsgbGVnZW5kV2lkdGgpIC8gMiArIHBhZGRpbmc7XHJcbiAgICAgIH1cclxuICAgICAgbGVnZW5kRGF0YS5hcmVhLndpZHRoID0gbGVnZW5kV2lkdGggKyAyICogcGFkZGluZztcclxuICAgICAgbGVnZW5kRGF0YS5hcmVhLndob2xlV2lkdGggPSBsZWdlbmRXaWR0aCArIDIgKiBwYWRkaW5nO1xyXG4gICAgICBsZWdlbmREYXRhLmFyZWEuaGVpZ2h0ID0gbGVnZW5kTGlzdC5sZW5ndGggKiBsaW5lSGVpZ2h0ICsgMiAqIHBhZGRpbmc7XHJcbiAgICAgIGxlZ2VuZERhdGEuYXJlYS53aG9sZUhlaWdodCA9IGxlZ2VuZExpc3QubGVuZ3RoICogbGluZUhlaWdodCArIDIgKiBwYWRkaW5nICsgMiAqIG1hcmdpbjtcclxuICAgICAgbGVnZW5kRGF0YS5wb2ludHMgPSBsZWdlbmRMaXN0O1xyXG4gICAgfVxyXG4gIH0gZWxzZSB7XHJcbiAgICBsZXQgbGVuID0gc2VyaWVzLmxlbmd0aDtcclxuICAgIGxldCBtYXhIZWlnaHQgPSBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVswXSAtIG9wdHMuYXJlYVsyXSAtIDIgKiBtYXJnaW4gLSAyICogcGFkZGluZztcclxuICAgIGxldCBtYXhMZW5ndGggPSBNYXRoLm1pbihNYXRoLmZsb29yKG1heEhlaWdodCAvIGxpbmVIZWlnaHQpLCBsZW4pO1xyXG4gICAgbGVnZW5kRGF0YS5hcmVhLmhlaWdodCA9IG1heExlbmd0aCAqIGxpbmVIZWlnaHQgKyBwYWRkaW5nICogMjtcclxuICAgIGxlZ2VuZERhdGEuYXJlYS53aG9sZUhlaWdodCA9IG1heExlbmd0aCAqIGxpbmVIZWlnaHQgKyBwYWRkaW5nICogMjtcclxuICAgIHN3aXRjaCAob3B0cy5sZWdlbmQuZmxvYXQpIHtcclxuICAgICAgY2FzZSAndG9wJzpcclxuICAgICAgICBsZWdlbmREYXRhLmFyZWEuc3RhcnQueSA9IG9wdHMuYXJlYVswXSArIG1hcmdpbjtcclxuICAgICAgICBsZWdlbmREYXRhLmFyZWEuZW5kLnkgPSBvcHRzLmFyZWFbMF0gKyBtYXJnaW4gKyBsZWdlbmREYXRhLmFyZWEuaGVpZ2h0O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdib3R0b20nOlxyXG4gICAgICAgIGxlZ2VuZERhdGEuYXJlYS5zdGFydC55ID0gb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0gLSBtYXJnaW4gLSBsZWdlbmREYXRhLmFyZWEuaGVpZ2h0O1xyXG4gICAgICAgIGxlZ2VuZERhdGEuYXJlYS5lbmQueSA9IG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdIC0gbWFyZ2luO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIGxlZ2VuZERhdGEuYXJlYS5zdGFydC55ID0gKG9wdHMuaGVpZ2h0IC0gbGVnZW5kRGF0YS5hcmVhLmhlaWdodCkgLyAyO1xyXG4gICAgICAgIGxlZ2VuZERhdGEuYXJlYS5lbmQueSA9IChvcHRzLmhlaWdodCArIGxlZ2VuZERhdGEuYXJlYS5oZWlnaHQpIC8gMjtcclxuICAgIH1cclxuICAgIGxldCBsaW5lTnVtID0gbGVuICUgbWF4TGVuZ3RoID09PSAwID8gbGVuIC8gbWF4TGVuZ3RoIDogTWF0aC5mbG9vcigobGVuIC8gbWF4TGVuZ3RoKSArIDEpO1xyXG4gICAgbGV0IGN1cnJlbnRSb3cgPSBbXTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGluZU51bTsgaSsrKSB7XHJcbiAgICAgIGxldCB0ZW1wID0gc2VyaWVzLnNsaWNlKGkgKiBtYXhMZW5ndGgsIGkgKiBtYXhMZW5ndGggKyBtYXhMZW5ndGgpO1xyXG4gICAgICBjdXJyZW50Um93LnB1c2godGVtcCk7XHJcbiAgICB9XHJcbiAgICBsZWdlbmREYXRhLnBvaW50cyA9IGN1cnJlbnRSb3c7XHJcbiAgICBpZiAoY3VycmVudFJvdy5sZW5ndGgpIHtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjdXJyZW50Um93Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgbGV0IGl0ZW0gPSBjdXJyZW50Um93W2ldO1xyXG4gICAgICAgIGxldCBtYXhXaWR0aCA9IDA7XHJcbiAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBpdGVtLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICBsZXQgaXRlbVdpZHRoID0gc2hhcGVXaWR0aCArIHNoYXBlUmlnaHQgKyBtZWFzdXJlVGV4dChpdGVtW2pdLm5hbWUgfHwgJ3VuZGVmaW5lZCcsIGZvbnRTaXplLCBjb250ZXh0KSArIG9wdHMubGVnZW5kLml0ZW1HYXAgKiBvcHRzLnBpeDtcclxuICAgICAgICAgIGlmIChpdGVtV2lkdGggPiBtYXhXaWR0aCkge1xyXG4gICAgICAgICAgICBtYXhXaWR0aCA9IGl0ZW1XaWR0aDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgbGVnZW5kRGF0YS53aWR0aEFyci5wdXNoKG1heFdpZHRoKTtcclxuICAgICAgICBsZWdlbmREYXRhLmhlaWdodEFyci5wdXNoKGl0ZW0ubGVuZ3RoICogbGluZUhlaWdodCArIHBhZGRpbmcgKiAyKTtcclxuICAgICAgfVxyXG4gICAgICBsZXQgbGVnZW5kV2lkdGggPSAwXHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVnZW5kRGF0YS53aWR0aEFyci5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGxlZ2VuZFdpZHRoICs9IGxlZ2VuZERhdGEud2lkdGhBcnJbaV07XHJcbiAgICAgIH1cclxuICAgICAgbGVnZW5kRGF0YS5hcmVhLndpZHRoID0gbGVnZW5kV2lkdGggLSBvcHRzLmxlZ2VuZC5pdGVtR2FwICogb3B0cy5waXggKyAyICogcGFkZGluZztcclxuICAgICAgbGVnZW5kRGF0YS5hcmVhLndob2xlV2lkdGggPSBsZWdlbmREYXRhLmFyZWEud2lkdGggKyBwYWRkaW5nO1xyXG4gICAgfVxyXG4gIH1cclxuICBzd2l0Y2ggKG9wdHMubGVnZW5kLnBvc2l0aW9uKSB7XHJcbiAgICBjYXNlICd0b3AnOlxyXG4gICAgICBsZWdlbmREYXRhLmFyZWEuc3RhcnQueSA9IG9wdHMuYXJlYVswXSArIG1hcmdpbjtcclxuICAgICAgbGVnZW5kRGF0YS5hcmVhLmVuZC55ID0gb3B0cy5hcmVhWzBdICsgbWFyZ2luICsgbGVnZW5kRGF0YS5hcmVhLmhlaWdodDtcclxuICAgICAgYnJlYWs7XHJcbiAgICBjYXNlICdib3R0b20nOlxyXG4gICAgICBsZWdlbmREYXRhLmFyZWEuc3RhcnQueSA9IG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdIC0gbGVnZW5kRGF0YS5hcmVhLmhlaWdodCAtIG1hcmdpbjtcclxuICAgICAgbGVnZW5kRGF0YS5hcmVhLmVuZC55ID0gb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0gLSBtYXJnaW47XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAnbGVmdCc6XHJcbiAgICAgIGxlZ2VuZERhdGEuYXJlYS5zdGFydC54ID0gb3B0cy5hcmVhWzNdO1xyXG4gICAgICBsZWdlbmREYXRhLmFyZWEuZW5kLnggPSBvcHRzLmFyZWFbM10gKyBsZWdlbmREYXRhLmFyZWEud2lkdGg7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAncmlnaHQnOlxyXG4gICAgICBsZWdlbmREYXRhLmFyZWEuc3RhcnQueCA9IG9wdHMud2lkdGggLSBvcHRzLmFyZWFbMV0gLSBsZWdlbmREYXRhLmFyZWEud2lkdGg7XHJcbiAgICAgIGxlZ2VuZERhdGEuYXJlYS5lbmQueCA9IG9wdHMud2lkdGggLSBvcHRzLmFyZWFbMV07XHJcbiAgICAgIGJyZWFrO1xyXG4gIH1cclxuICBjaGFydERhdGEubGVnZW5kRGF0YSA9IGxlZ2VuZERhdGE7XHJcbiAgcmV0dXJuIGxlZ2VuZERhdGE7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNhbENhdGVnb3JpZXNEYXRhKGNhdGVnb3JpZXMsIG9wdHMsIGNvbmZpZywgZWFjaFNwYWNpbmcsIGNvbnRleHQpIHtcclxuICB2YXIgcmVzdWx0ID0ge1xyXG4gICAgYW5nbGU6IDAsXHJcbiAgICB4QXhpc0hlaWdodDogY29uZmlnLnhBeGlzSGVpZ2h0XHJcbiAgfTtcclxuICB2YXIgZm9udFNpemUgPSBvcHRzLnhBeGlzLmZvbnRTaXplICogb3B0cy5waXggfHwgY29uZmlnLmZvbnRTaXplO1xyXG4gIHZhciBjYXRlZ29yaWVzVGV4dExlbnRoID0gY2F0ZWdvcmllcy5tYXAoZnVuY3Rpb24oaXRlbSxpbmRleCkge1xyXG4gICAgdmFyIHhpdGVtID0gb3B0cy54QXhpcy5mb3JtYXR0ZXIgPyBvcHRzLnhBeGlzLmZvcm1hdHRlcihpdGVtLGluZGV4LG9wdHMpIDogaXRlbTtcclxuICAgIHJldHVybiBtZWFzdXJlVGV4dChTdHJpbmcoeGl0ZW0pLCBmb250U2l6ZSwgY29udGV4dCk7XHJcbiAgfSk7XHJcbiAgXHJcbiAgdmFyIG1heFRleHRMZW5ndGggPSBNYXRoLm1heC5hcHBseSh0aGlzLCBjYXRlZ29yaWVzVGV4dExlbnRoKTtcclxuICBpZiAob3B0cy54QXhpcy5yb3RhdGVMYWJlbCA9PSB0cnVlKSB7XHJcbiAgICByZXN1bHQuYW5nbGUgPSBvcHRzLnhBeGlzLnJvdGF0ZUFuZ2xlICogTWF0aC5QSSAvIDE4MDtcclxuICAgIGxldCB0ZW1wSGVpZ2h0ID0gMiAqIGNvbmZpZy54QXhpc1RleHRQYWRkaW5nICsgIE1hdGguYWJzKG1heFRleHRMZW5ndGggKiBNYXRoLnNpbihyZXN1bHQuYW5nbGUpKVxyXG4gICAgdGVtcEhlaWdodCA9IHRlbXBIZWlnaHQgPCBmb250U2l6ZSArIDIgKiBjb25maWcueEF4aXNUZXh0UGFkZGluZyA/IHRlbXBIZWlnaHQgKyAyICogY29uZmlnLnhBeGlzVGV4dFBhZGRpbmcgOiB0ZW1wSGVpZ2h0O1xyXG4gICAgaWYob3B0cy5lbmFibGVTY3JvbGwgPT0gdHJ1ZSAmJiBvcHRzLnhBeGlzLnNjcm9sbFNob3cgPT0gdHJ1ZSl7XHJcbiAgICAgIHRlbXBIZWlnaHQgKz0gMTIgKiBvcHRzLnBpeDtcclxuICAgIH1cclxuICAgIHJlc3VsdC54QXhpc0hlaWdodCA9IHRlbXBIZWlnaHQ7XHJcbiAgfVxyXG4gIGlmIChvcHRzLnhBeGlzLmRpc2FibGVkKXtcclxuICAgIHJlc3VsdC54QXhpc0hlaWdodCA9IDA7XHJcbiAgfVxyXG4gIHJldHVybiByZXN1bHQ7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldFhBeGlzVGV4dExpc3Qoc2VyaWVzLCBvcHRzLCBjb25maWcsIHN0YWNrKSB7XHJcbiAgdmFyIGluZGV4ID0gYXJndW1lbnRzLmxlbmd0aCA+IDQgJiYgYXJndW1lbnRzWzRdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbNF0gOiAtMTtcclxuICB2YXIgZGF0YTtcclxuICBpZiAoc3RhY2sgPT0gJ3N0YWNrJykge1xyXG4gICAgZGF0YSA9IGRhdGFDb21iaW5lU3RhY2soc2VyaWVzLCBvcHRzLmNhdGVnb3JpZXMubGVuZ3RoKTtcclxuICB9IGVsc2Uge1xyXG4gICAgZGF0YSA9IGRhdGFDb21iaW5lKHNlcmllcyk7XHJcbiAgfVxyXG4gIHZhciBzb3J0ZWQgPSBbXTtcclxuICAvLyByZW1vdmUgbnVsbCBmcm9tIGRhdGFcclxuICBkYXRhID0gZGF0YS5maWx0ZXIoZnVuY3Rpb24oaXRlbSkge1xyXG4gICAgLy9yZXR1cm4gaXRlbSAhPT0gbnVsbDtcclxuICAgIGlmICh0eXBlb2YgaXRlbSA9PT0gJ29iamVjdCcgJiYgaXRlbSAhPT0gbnVsbCkge1xyXG4gICAgICBpZiAoaXRlbS5jb25zdHJ1Y3Rvci50b1N0cmluZygpLmluZGV4T2YoJ0FycmF5JykgPiAtMSkge1xyXG4gICAgICAgIHJldHVybiBpdGVtICE9PSBudWxsO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiBpdGVtLnZhbHVlICE9PSBudWxsO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gaXRlbSAhPT0gbnVsbDtcclxuICAgIH1cclxuICB9KTtcclxuICBkYXRhLm1hcChmdW5jdGlvbihpdGVtKSB7XHJcbiAgICBpZiAodHlwZW9mIGl0ZW0gPT09ICdvYmplY3QnKSB7XHJcbiAgICAgIGlmIChpdGVtLmNvbnN0cnVjdG9yLnRvU3RyaW5nKCkuaW5kZXhPZignQXJyYXknKSA+IC0xKSB7XHJcbiAgICAgICAgaWYgKG9wdHMudHlwZSA9PSAnY2FuZGxlJykge1xyXG4gICAgICAgICAgaXRlbS5tYXAoZnVuY3Rpb24oc3ViaXRlbSkge1xyXG4gICAgICAgICAgICBzb3J0ZWQucHVzaChzdWJpdGVtKTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHNvcnRlZC5wdXNoKGl0ZW1bMF0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBzb3J0ZWQucHVzaChpdGVtLnZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgc29ydGVkLnB1c2goaXRlbSk7XHJcbiAgICB9XHJcbiAgfSlcclxuXHJcbiAgdmFyIG1pbkRhdGEgPSAwO1xyXG4gIHZhciBtYXhEYXRhID0gMDtcclxuICBpZiAoc29ydGVkLmxlbmd0aCA+IDApIHtcclxuICAgIG1pbkRhdGEgPSBNYXRoLm1pbi5hcHBseSh0aGlzLCBzb3J0ZWQpO1xyXG4gICAgbWF4RGF0YSA9IE1hdGgubWF4LmFwcGx5KHRoaXMsIHNvcnRlZCk7XHJcbiAgfVxyXG4gIC8v5Li65LqG5YW85a65djEuOS4w5LmL5YmN55qE6aG555uuXHJcbiAgaWYgKGluZGV4ID4gLTEpIHtcclxuICAgIGlmICh0eXBlb2Ygb3B0cy54QXhpcy5kYXRhW2luZGV4XS5taW4gPT09ICdudW1iZXInKSB7XHJcbiAgICAgIG1pbkRhdGEgPSBNYXRoLm1pbihvcHRzLnhBeGlzLmRhdGFbaW5kZXhdLm1pbiwgbWluRGF0YSk7XHJcbiAgICB9XHJcbiAgICBpZiAodHlwZW9mIG9wdHMueEF4aXMuZGF0YVtpbmRleF0ubWF4ID09PSAnbnVtYmVyJykge1xyXG4gICAgICBtYXhEYXRhID0gTWF0aC5tYXgob3B0cy54QXhpcy5kYXRhW2luZGV4XS5tYXgsIG1heERhdGEpO1xyXG4gICAgfVxyXG4gIH0gZWxzZSB7XHJcbiAgICBpZiAodHlwZW9mIG9wdHMueEF4aXMubWluID09PSAnbnVtYmVyJykge1xyXG4gICAgICBtaW5EYXRhID0gTWF0aC5taW4ob3B0cy54QXhpcy5taW4sIG1pbkRhdGEpO1xyXG4gICAgfVxyXG4gICAgaWYgKHR5cGVvZiBvcHRzLnhBeGlzLm1heCA9PT0gJ251bWJlcicpIHtcclxuICAgICAgbWF4RGF0YSA9IE1hdGgubWF4KG9wdHMueEF4aXMubWF4LCBtYXhEYXRhKTtcclxuICAgIH1cclxuICB9XHJcbiAgaWYgKG1pbkRhdGEgPT09IG1heERhdGEpIHtcclxuICAgIHZhciByYW5nZVNwYW4gPSBtYXhEYXRhIHx8IDEwO1xyXG4gICAgbWF4RGF0YSArPSByYW5nZVNwYW47XHJcbiAgfVxyXG4gIC8vdmFyIGRhdGFSYW5nZSA9IGdldERhdGFSYW5nZShtaW5EYXRhLCBtYXhEYXRhKTtcclxuICB2YXIgbWluUmFuZ2UgPSBtaW5EYXRhO1xyXG4gIHZhciBtYXhSYW5nZSA9IG1heERhdGE7XHJcbiAgdmFyIHJhbmdlID0gW107XHJcbiAgdmFyIGVhY2hSYW5nZSA9IChtYXhSYW5nZSAtIG1pblJhbmdlKSAvIG9wdHMueEF4aXMuc3BsaXROdW1iZXI7XHJcbiAgZm9yICh2YXIgaSA9IDA7IGkgPD0gb3B0cy54QXhpcy5zcGxpdE51bWJlcjsgaSsrKSB7XHJcbiAgICByYW5nZS5wdXNoKG1pblJhbmdlICsgZWFjaFJhbmdlICogaSk7XHJcbiAgfVxyXG4gIHJldHVybiByYW5nZTtcclxufVxyXG5cclxuZnVuY3Rpb24gY2FsWEF4aXNEYXRhKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KSB7XHJcbiAgLy/loIblj6Dlm77ph43nrpdZ6L20XHJcbiAgdmFyIGNvbHVtbnN0eWxlID0gYXNzaWduKHt9LCB7XHJcbiAgICB0eXBlOiBcIlwiXHJcbiAgfSwgb3B0cy5leHRyYS5iYXIpO1xyXG4gIHZhciByZXN1bHQgPSB7XHJcbiAgICBhbmdsZTogMCxcclxuICAgIHhBeGlzSGVpZ2h0OiBjb25maWcueEF4aXNIZWlnaHRcclxuICB9O1xyXG4gIHJlc3VsdC5yYW5nZXMgPSBnZXRYQXhpc1RleHRMaXN0KHNlcmllcywgb3B0cywgY29uZmlnLCBjb2x1bW5zdHlsZS50eXBlKTtcclxuICByZXN1bHQucmFuZ2VzRm9ybWF0ID0gcmVzdWx0LnJhbmdlcy5tYXAoZnVuY3Rpb24oaXRlbSkge1xyXG4gICAgLy9pdGVtID0gb3B0cy54QXhpcy5mb3JtYXR0ZXIgPyBvcHRzLnhBeGlzLmZvcm1hdHRlcihpdGVtKSA6IHV0aWwudG9GaXhlZChpdGVtLCAyKTtcclxuICAgIGl0ZW0gPSB1dGlsLnRvRml4ZWQoaXRlbSwgMik7XHJcbiAgICByZXR1cm4gaXRlbTtcclxuICB9KTtcclxuICB2YXIgeEF4aXNTY2FsZVZhbHVlcyA9IHJlc3VsdC5yYW5nZXMubWFwKGZ1bmN0aW9uKGl0ZW0pIHtcclxuICAgIC8vIOWmguaenOWIu+W6puWAvOaYr+a1rueCueaVsCzliJnkv53nlZnkuKTkvY3lsI/mlbBcclxuICAgIGl0ZW0gPSB1dGlsLnRvRml4ZWQoaXRlbSwgMik7XHJcbiAgICAvLyDoi6XmnInoh6rlrprkuYnmoLzlvI/liJnosIPnlKjoh6rlrprkuYnnmoTmoLzlvI/ljJblh73mlbBcclxuICAgIC8vaXRlbSA9IG9wdHMueEF4aXMuZm9ybWF0dGVyID8gb3B0cy54QXhpcy5mb3JtYXR0ZXIoTnVtYmVyKGl0ZW0pKSA6IGl0ZW07XHJcbiAgICByZXR1cm4gaXRlbTtcclxuICB9KTtcclxuICByZXN1bHQgPSBPYmplY3QuYXNzaWduKHJlc3VsdCwgZ2V0WEF4aXNQb2ludHMoeEF4aXNTY2FsZVZhbHVlcywgb3B0cywgY29uZmlnKSk7XHJcbiAgLy8g6K6h566XWOi9tOWIu+W6pueahOWxnuaAp+itrOWmguavj+S4quWIu+W6pueahOmXtOmalCzliLvluqbnmoTotbflp4vngrlcXOe7k+adn+eCueS7peWPiuaAu+mVv1xyXG4gIHZhciBlYWNoU3BhY2luZyA9IHJlc3VsdC5lYWNoU3BhY2luZztcclxuICB2YXIgdGV4dExlbmd0aCA9IHhBeGlzU2NhbGVWYWx1ZXMubWFwKGZ1bmN0aW9uKGl0ZW0pIHtcclxuICAgIHJldHVybiBtZWFzdXJlVGV4dChpdGVtLCBvcHRzLnhBeGlzLmZvbnRTaXplICogb3B0cy5waXggfHwgY29uZmlnLmZvbnRTaXplLCBjb250ZXh0KTtcclxuICB9KTtcclxuICAvLyBnZXQgbWF4IGxlbmd0aCBvZiBjYXRlZ29yaWVzIHRleHRcclxuICB2YXIgbWF4VGV4dExlbmd0aCA9IE1hdGgubWF4LmFwcGx5KHRoaXMsIHRleHRMZW5ndGgpO1xyXG4gIC8vIOWmguaenOWIu+W6puWAvOaWh+acrOWGheWuuei/h+mVvyzliJnlsIblhbbpgIbml7bpkojml4vovaw0NcKwXHJcbiAgaWYgKG1heFRleHRMZW5ndGggKyAyICogY29uZmlnLnhBeGlzVGV4dFBhZGRpbmcgPiBlYWNoU3BhY2luZykge1xyXG4gICAgcmVzdWx0LmFuZ2xlID0gNDUgKiBNYXRoLlBJIC8gMTgwO1xyXG4gICAgcmVzdWx0LnhBeGlzSGVpZ2h0ID0gMiAqIGNvbmZpZy54QXhpc1RleHRQYWRkaW5nICsgbWF4VGV4dExlbmd0aCAqIE1hdGguc2luKHJlc3VsdC5hbmdsZSk7XHJcbiAgfVxyXG4gIGlmIChvcHRzLnhBeGlzLmRpc2FibGVkID09PSB0cnVlKSB7XHJcbiAgICByZXN1bHQueEF4aXNIZWlnaHQgPSAwO1xyXG4gIH1cclxuICByZXR1cm4gcmVzdWx0O1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRSYWRhckRhdGFQb2ludHMoYW5nbGVMaXN0LCBjZW50ZXIsIHJhZGl1cywgc2VyaWVzLCBvcHRzKSB7XHJcbiAgdmFyIHByb2Nlc3MgPSBhcmd1bWVudHMubGVuZ3RoID4gNSAmJiBhcmd1bWVudHNbNV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s1XSA6IDE7XHJcbiAgdmFyIHJhZGFyT3B0aW9uID0gb3B0cy5leHRyYS5yYWRhciB8fCB7fTtcclxuICByYWRhck9wdGlvbi5tYXggPSByYWRhck9wdGlvbi5tYXggfHwgMDtcclxuICB2YXIgbWF4RGF0YSA9IE1hdGgubWF4KHJhZGFyT3B0aW9uLm1heCwgTWF0aC5tYXguYXBwbHkobnVsbCwgZGF0YUNvbWJpbmUoc2VyaWVzKSkpO1xyXG4gIHZhciBkYXRhID0gW107XHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXJpZXMubGVuZ3RoOyBpKyspIHtcclxuICAgIGxldCBlYWNoID0gc2VyaWVzW2ldO1xyXG4gICAgbGV0IGxpc3RJdGVtID0ge307XHJcbiAgICBsaXN0SXRlbS5jb2xvciA9IGVhY2guY29sb3I7XHJcbiAgICBsaXN0SXRlbS5sZWdlbmRTaGFwZSA9IGVhY2gubGVnZW5kU2hhcGU7XHJcbiAgICBsaXN0SXRlbS5wb2ludFNoYXBlID0gZWFjaC5wb2ludFNoYXBlO1xyXG4gICAgbGlzdEl0ZW0uZGF0YSA9IFtdO1xyXG4gICAgZWFjaC5kYXRhLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgICAgbGV0IHRtcCA9IHt9O1xyXG4gICAgICB0bXAuYW5nbGUgPSBhbmdsZUxpc3RbaW5kZXhdO1xyXG4gICAgICB0bXAucHJvcG9ydGlvbiA9IGl0ZW0gLyBtYXhEYXRhO1xyXG4gICAgICB0bXAudmFsdWUgPSBpdGVtO1xyXG4gICAgICB0bXAucG9zaXRpb24gPSBjb252ZXJ0Q29vcmRpbmF0ZU9yaWdpbihyYWRpdXMgKiB0bXAucHJvcG9ydGlvbiAqIHByb2Nlc3MgKiBNYXRoLmNvcyh0bXAuYW5nbGUpLCByYWRpdXMgKiB0bXAucHJvcG9ydGlvbiAqIHByb2Nlc3MgKiBNYXRoLnNpbih0bXAuYW5nbGUpLCBjZW50ZXIpO1xyXG4gICAgICBsaXN0SXRlbS5kYXRhLnB1c2godG1wKTtcclxuICAgIH0pO1xyXG4gICAgZGF0YS5wdXNoKGxpc3RJdGVtKTtcclxuICB9XHJcbiAgcmV0dXJuIGRhdGE7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldFBpZURhdGFQb2ludHMoc2VyaWVzLCByYWRpdXMpIHtcclxuICB2YXIgcHJvY2VzcyA9IGFyZ3VtZW50cy5sZW5ndGggPiAyICYmIGFyZ3VtZW50c1syXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzJdIDogMTtcclxuICB2YXIgY291bnQgPSAwO1xyXG4gIHZhciBfc3RhcnRfID0gMDtcclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHNlcmllcy5sZW5ndGg7IGkrKykge1xyXG4gICAgbGV0IGl0ZW0gPSBzZXJpZXNbaV07XHJcbiAgICBpdGVtLmRhdGEgPSBpdGVtLmRhdGEgPT09IG51bGwgPyAwIDogaXRlbS5kYXRhO1xyXG4gICAgY291bnQgKz0gaXRlbS5kYXRhO1xyXG4gIH1cclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHNlcmllcy5sZW5ndGg7IGkrKykge1xyXG4gICAgbGV0IGl0ZW0gPSBzZXJpZXNbaV07XHJcbiAgICBpdGVtLmRhdGEgPSBpdGVtLmRhdGEgPT09IG51bGwgPyAwIDogaXRlbS5kYXRhO1xyXG4gICAgaWYgKGNvdW50ID09PSAwKSB7XHJcbiAgICAgIGl0ZW0uX3Byb3BvcnRpb25fID0gMSAvIHNlcmllcy5sZW5ndGggKiBwcm9jZXNzO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaXRlbS5fcHJvcG9ydGlvbl8gPSBpdGVtLmRhdGEgLyBjb3VudCAqIHByb2Nlc3M7XHJcbiAgICB9XHJcbiAgICBpdGVtLl9yYWRpdXNfID0gcmFkaXVzO1xyXG4gIH1cclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHNlcmllcy5sZW5ndGg7IGkrKykge1xyXG4gICAgbGV0IGl0ZW0gPSBzZXJpZXNbaV07XHJcbiAgICBpdGVtLl9zdGFydF8gPSBfc3RhcnRfO1xyXG4gICAgX3N0YXJ0XyArPSAyICogaXRlbS5fcHJvcG9ydGlvbl8gKiBNYXRoLlBJO1xyXG4gIH1cclxuICByZXR1cm4gc2VyaWVzO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRGdW5uZWxEYXRhUG9pbnRzKHNlcmllcywgcmFkaXVzLCBvcHRpb24sIGVhY2hTcGFjaW5nKSB7XHJcbiAgdmFyIHByb2Nlc3MgPSBhcmd1bWVudHMubGVuZ3RoID4gNCAmJiBhcmd1bWVudHNbNF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s0XSA6IDE7XHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXJpZXMubGVuZ3RoOyBpKyspIHtcclxuICAgIGlmKG9wdGlvbi50eXBlID09ICdmdW5uZWwnKXtcclxuICAgICAgc2VyaWVzW2ldLnJhZGl1cyA9IHNlcmllc1tpXS5kYXRhIC8gc2VyaWVzWzBdLmRhdGEgKiByYWRpdXMgKiBwcm9jZXNzO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIHNlcmllc1tpXS5yYWRpdXMgPSAgKGVhY2hTcGFjaW5nICogKHNlcmllcy5sZW5ndGggLSBpKSkgLyAoZWFjaFNwYWNpbmcgKiBzZXJpZXMubGVuZ3RoKSAqIHJhZGl1cyAqIHByb2Nlc3M7XHJcbiAgICB9XHJcbiAgICBzZXJpZXNbaV0uX3Byb3BvcnRpb25fID0gc2VyaWVzW2ldLmRhdGEgLyBzZXJpZXNbMF0uZGF0YTtcclxuICB9XHJcbiAgLy8gaWYob3B0aW9uLnR5cGUgIT09ICdweXJhbWlkJyl7XHJcbiAgLy8gICBzZXJpZXMucmV2ZXJzZSgpO1xyXG4gIC8vIH1cclxuICByZXR1cm4gc2VyaWVzO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRSb3NlRGF0YVBvaW50cyhzZXJpZXMsIHR5cGUsIG1pblJhZGl1cywgcmFkaXVzKSB7XHJcbiAgdmFyIHByb2Nlc3MgPSBhcmd1bWVudHMubGVuZ3RoID4gNCAmJiBhcmd1bWVudHNbNF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s0XSA6IDE7XHJcbiAgdmFyIGNvdW50ID0gMDtcclxuICB2YXIgX3N0YXJ0XyA9IDA7XHJcbiAgdmFyIGRhdGFBcnIgPSBbXTtcclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHNlcmllcy5sZW5ndGg7IGkrKykge1xyXG4gICAgbGV0IGl0ZW0gPSBzZXJpZXNbaV07XHJcbiAgICBpdGVtLmRhdGEgPSBpdGVtLmRhdGEgPT09IG51bGwgPyAwIDogaXRlbS5kYXRhO1xyXG4gICAgY291bnQgKz0gaXRlbS5kYXRhO1xyXG4gICAgZGF0YUFyci5wdXNoKGl0ZW0uZGF0YSk7XHJcbiAgfVxyXG4gIHZhciBtaW5EYXRhID0gTWF0aC5taW4uYXBwbHkobnVsbCwgZGF0YUFycik7XHJcbiAgdmFyIG1heERhdGEgPSBNYXRoLm1heC5hcHBseShudWxsLCBkYXRhQXJyKTtcclxuICB2YXIgcmFkaXVzTGVuZ3RoID0gcmFkaXVzIC0gbWluUmFkaXVzO1xyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc2VyaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBsZXQgaXRlbSA9IHNlcmllc1tpXTtcclxuICAgIGl0ZW0uZGF0YSA9IGl0ZW0uZGF0YSA9PT0gbnVsbCA/IDAgOiBpdGVtLmRhdGE7XHJcbiAgICBpZiAoY291bnQgPT09IDApIHtcclxuICAgICAgaXRlbS5fcHJvcG9ydGlvbl8gPSAxIC8gc2VyaWVzLmxlbmd0aCAqIHByb2Nlc3M7XHJcbiAgICAgIGl0ZW0uX3Jvc2VfcHJvcG9ydGlvbl8gPSAxIC8gc2VyaWVzLmxlbmd0aCAqIHByb2Nlc3M7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpdGVtLl9wcm9wb3J0aW9uXyA9IGl0ZW0uZGF0YSAvIGNvdW50ICogcHJvY2VzcztcclxuICAgICAgaWYodHlwZSA9PSAnYXJlYScpe1xyXG4gICAgICAgIGl0ZW0uX3Jvc2VfcHJvcG9ydGlvbl8gPSAxIC8gc2VyaWVzLmxlbmd0aCAqIHByb2Nlc3M7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIGl0ZW0uX3Jvc2VfcHJvcG9ydGlvbl8gPSBpdGVtLmRhdGEgLyBjb3VudCAqIHByb2Nlc3M7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGl0ZW0uX3JhZGl1c18gPSBtaW5SYWRpdXMgKyByYWRpdXNMZW5ndGggKiAoKGl0ZW0uZGF0YSAtIG1pbkRhdGEpIC8gKG1heERhdGEgLSBtaW5EYXRhKSkgfHwgcmFkaXVzO1xyXG4gIH1cclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHNlcmllcy5sZW5ndGg7IGkrKykge1xyXG4gICAgbGV0IGl0ZW0gPSBzZXJpZXNbaV07XHJcbiAgICBpdGVtLl9zdGFydF8gPSBfc3RhcnRfO1xyXG4gICAgX3N0YXJ0XyArPSAyICogaXRlbS5fcm9zZV9wcm9wb3J0aW9uXyAqIE1hdGguUEk7XHJcbiAgfVxyXG4gIHJldHVybiBzZXJpZXM7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldEFyY2JhckRhdGFQb2ludHMoc2VyaWVzLCBhcmNiYXJPcHRpb24pIHtcclxuICB2YXIgcHJvY2VzcyA9IGFyZ3VtZW50cy5sZW5ndGggPiAyICYmIGFyZ3VtZW50c1syXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzJdIDogMTtcclxuICBpZiAocHJvY2VzcyA9PSAxKSB7XHJcbiAgICBwcm9jZXNzID0gMC45OTk5OTk7XHJcbiAgfVxyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc2VyaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBsZXQgaXRlbSA9IHNlcmllc1tpXTtcclxuICAgIGl0ZW0uZGF0YSA9IGl0ZW0uZGF0YSA9PT0gbnVsbCA/IDAgOiBpdGVtLmRhdGE7XHJcbiAgICBsZXQgdG90YWxBbmdsZTtcclxuICAgIGlmIChhcmNiYXJPcHRpb24udHlwZSA9PSAnY2lyY2xlJykge1xyXG4gICAgICB0b3RhbEFuZ2xlID0gMjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmKGFyY2Jhck9wdGlvbi5kaXJlY3Rpb24gPT0gJ2Njdycpe1xyXG4gICAgICAgIGlmIChhcmNiYXJPcHRpb24uc3RhcnRBbmdsZSA8IGFyY2Jhck9wdGlvbi5lbmRBbmdsZSkge1xyXG4gICAgICAgICAgdG90YWxBbmdsZSA9IDIgKyBhcmNiYXJPcHRpb24uc3RhcnRBbmdsZSAtIGFyY2Jhck9wdGlvbi5lbmRBbmdsZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdG90YWxBbmdsZSA9IGFyY2Jhck9wdGlvbi5zdGFydEFuZ2xlIC0gYXJjYmFyT3B0aW9uLmVuZEFuZ2xlO1xyXG4gICAgICAgIH1cclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgaWYgKGFyY2Jhck9wdGlvbi5lbmRBbmdsZSA8IGFyY2Jhck9wdGlvbi5zdGFydEFuZ2xlKSB7XHJcbiAgICAgICAgICB0b3RhbEFuZ2xlID0gMiArIGFyY2Jhck9wdGlvbi5lbmRBbmdsZSAtIGFyY2Jhck9wdGlvbi5zdGFydEFuZ2xlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0b3RhbEFuZ2xlID0gYXJjYmFyT3B0aW9uLnN0YXJ0QW5nbGUgLSBhcmNiYXJPcHRpb24uZW5kQW5nbGU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpdGVtLl9wcm9wb3J0aW9uXyA9IHRvdGFsQW5nbGUgKiBpdGVtLmRhdGEgKiBwcm9jZXNzICsgYXJjYmFyT3B0aW9uLnN0YXJ0QW5nbGU7XHJcbiAgICBpZihhcmNiYXJPcHRpb24uZGlyZWN0aW9uID09ICdjY3cnKXtcclxuICAgICAgaXRlbS5fcHJvcG9ydGlvbl8gPSBhcmNiYXJPcHRpb24uc3RhcnRBbmdsZSAtIHRvdGFsQW5nbGUgKiBpdGVtLmRhdGEgKiBwcm9jZXNzIDtcclxuICAgIH1cclxuICAgIGlmIChpdGVtLl9wcm9wb3J0aW9uXyA+PSAyKSB7XHJcbiAgICAgIGl0ZW0uX3Byb3BvcnRpb25fID0gaXRlbS5fcHJvcG9ydGlvbl8gJSAyO1xyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gc2VyaWVzO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRHYXVnZUFyY2JhckRhdGFQb2ludHMoc2VyaWVzLCBhcmNiYXJPcHRpb24pIHtcclxuICB2YXIgcHJvY2VzcyA9IGFyZ3VtZW50cy5sZW5ndGggPiAyICYmIGFyZ3VtZW50c1syXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzJdIDogMTtcclxuICBpZiAocHJvY2VzcyA9PSAxKSB7XHJcbiAgICBwcm9jZXNzID0gMC45OTk5OTk7XHJcbiAgfVxyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc2VyaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBsZXQgaXRlbSA9IHNlcmllc1tpXTtcclxuICAgIGl0ZW0uZGF0YSA9IGl0ZW0uZGF0YSA9PT0gbnVsbCA/IDAgOiBpdGVtLmRhdGE7XHJcbiAgICBsZXQgdG90YWxBbmdsZTtcclxuICAgIGlmIChhcmNiYXJPcHRpb24udHlwZSA9PSAnY2lyY2xlJykge1xyXG4gICAgICB0b3RhbEFuZ2xlID0gMjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChhcmNiYXJPcHRpb24uZW5kQW5nbGUgPCBhcmNiYXJPcHRpb24uc3RhcnRBbmdsZSkge1xyXG4gICAgICAgIHRvdGFsQW5nbGUgPSAyICsgYXJjYmFyT3B0aW9uLmVuZEFuZ2xlIC0gYXJjYmFyT3B0aW9uLnN0YXJ0QW5nbGU7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdG90YWxBbmdsZSA9IGFyY2Jhck9wdGlvbi5zdGFydEFuZ2xlIC0gYXJjYmFyT3B0aW9uLmVuZEFuZ2xlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpdGVtLl9wcm9wb3J0aW9uXyA9IHRvdGFsQW5nbGUgKiBpdGVtLmRhdGEgKiBwcm9jZXNzICsgYXJjYmFyT3B0aW9uLnN0YXJ0QW5nbGU7XHJcbiAgICBpZiAoaXRlbS5fcHJvcG9ydGlvbl8gPj0gMikge1xyXG4gICAgICBpdGVtLl9wcm9wb3J0aW9uXyA9IGl0ZW0uX3Byb3BvcnRpb25fICUgMjtcclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIHNlcmllcztcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0R2F1Z2VBeGlzUG9pbnRzKGNhdGVnb3JpZXMsIHN0YXJ0QW5nbGUsIGVuZEFuZ2xlKSB7XHJcbiAgbGV0IHRvdGFsQW5nbGUgPSBzdGFydEFuZ2xlIC0gZW5kQW5nbGUgKyAxO1xyXG4gIGxldCB0ZW1wU3RhcnRBbmdsZSA9IHN0YXJ0QW5nbGU7XHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBjYXRlZ29yaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBjYXRlZ29yaWVzW2ldLnZhbHVlID0gY2F0ZWdvcmllc1tpXS52YWx1ZSA9PT0gbnVsbCA/IDAgOiBjYXRlZ29yaWVzW2ldLnZhbHVlO1xyXG4gICAgY2F0ZWdvcmllc1tpXS5fc3RhcnRBbmdsZV8gPSB0ZW1wU3RhcnRBbmdsZTtcclxuICAgIGNhdGVnb3JpZXNbaV0uX2VuZEFuZ2xlXyA9IHRvdGFsQW5nbGUgKiBjYXRlZ29yaWVzW2ldLnZhbHVlICsgc3RhcnRBbmdsZTtcclxuICAgIGlmIChjYXRlZ29yaWVzW2ldLl9lbmRBbmdsZV8gPj0gMikge1xyXG4gICAgICBjYXRlZ29yaWVzW2ldLl9lbmRBbmdsZV8gPSBjYXRlZ29yaWVzW2ldLl9lbmRBbmdsZV8gJSAyO1xyXG4gICAgfVxyXG4gICAgdGVtcFN0YXJ0QW5nbGUgPSBjYXRlZ29yaWVzW2ldLl9lbmRBbmdsZV87XHJcbiAgfVxyXG4gIHJldHVybiBjYXRlZ29yaWVzO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRHYXVnZURhdGFQb2ludHMoc2VyaWVzLCBjYXRlZ29yaWVzLCBnYXVnZU9wdGlvbikge1xyXG4gIGxldCBwcm9jZXNzID0gYXJndW1lbnRzLmxlbmd0aCA+IDMgJiYgYXJndW1lbnRzWzNdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbM10gOiAxO1xyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc2VyaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBsZXQgaXRlbSA9IHNlcmllc1tpXTtcclxuICAgIGl0ZW0uZGF0YSA9IGl0ZW0uZGF0YSA9PT0gbnVsbCA/IDAgOiBpdGVtLmRhdGE7XHJcbiAgICBpZiAoZ2F1Z2VPcHRpb24ucG9pbnRlci5jb2xvciA9PSAnYXV0bycpIHtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjYXRlZ29yaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgaWYgKGl0ZW0uZGF0YSA8PSBjYXRlZ29yaWVzW2ldLnZhbHVlKSB7XHJcbiAgICAgICAgICBpdGVtLmNvbG9yID0gY2F0ZWdvcmllc1tpXS5jb2xvcjtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaXRlbS5jb2xvciA9IGdhdWdlT3B0aW9uLnBvaW50ZXIuY29sb3I7XHJcbiAgICB9XHJcbiAgICBsZXQgdG90YWxBbmdsZSA9IGdhdWdlT3B0aW9uLnN0YXJ0QW5nbGUgLSBnYXVnZU9wdGlvbi5lbmRBbmdsZSArIDE7XHJcbiAgICBpdGVtLl9lbmRBbmdsZV8gPSB0b3RhbEFuZ2xlICogaXRlbS5kYXRhICsgZ2F1Z2VPcHRpb24uc3RhcnRBbmdsZTtcclxuICAgIGl0ZW0uX29sZEFuZ2xlXyA9IGdhdWdlT3B0aW9uLm9sZEFuZ2xlO1xyXG4gICAgaWYgKGdhdWdlT3B0aW9uLm9sZEFuZ2xlIDwgZ2F1Z2VPcHRpb24uZW5kQW5nbGUpIHtcclxuICAgICAgaXRlbS5fb2xkQW5nbGVfICs9IDI7XHJcbiAgICB9XHJcbiAgICBpZiAoaXRlbS5kYXRhID49IGdhdWdlT3B0aW9uLm9sZERhdGEpIHtcclxuICAgICAgaXRlbS5fcHJvcG9ydGlvbl8gPSAoaXRlbS5fZW5kQW5nbGVfIC0gaXRlbS5fb2xkQW5nbGVfKSAqIHByb2Nlc3MgKyBnYXVnZU9wdGlvbi5vbGRBbmdsZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGl0ZW0uX3Byb3BvcnRpb25fID0gaXRlbS5fb2xkQW5nbGVfIC0gKGl0ZW0uX29sZEFuZ2xlXyAtIGl0ZW0uX2VuZEFuZ2xlXykgKiBwcm9jZXNzO1xyXG4gICAgfVxyXG4gICAgaWYgKGl0ZW0uX3Byb3BvcnRpb25fID49IDIpIHtcclxuICAgICAgaXRlbS5fcHJvcG9ydGlvbl8gPSBpdGVtLl9wcm9wb3J0aW9uXyAlIDI7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBzZXJpZXM7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldFBpZVRleHRNYXhMZW5ndGgoc2VyaWVzLCBjb25maWcsIGNvbnRleHQsIG9wdHMpIHtcclxuICBzZXJpZXMgPSBnZXRQaWVEYXRhUG9pbnRzKHNlcmllcyk7XHJcbiAgbGV0IG1heExlbmd0aCA9IDA7XHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXJpZXMubGVuZ3RoOyBpKyspIHtcclxuICAgIGxldCBpdGVtID0gc2VyaWVzW2ldO1xyXG4gICAgbGV0IHRleHQgPSBpdGVtLmZvcm1hdHRlciA/IGl0ZW0uZm9ybWF0dGVyKCtpdGVtLl9wcm9wb3J0aW9uXy50b0ZpeGVkKDIpKSA6IHV0aWwudG9GaXhlZChpdGVtLl9wcm9wb3J0aW9uXyAqIDEwMCkgKyAnJSc7XHJcbiAgICBtYXhMZW5ndGggPSBNYXRoLm1heChtYXhMZW5ndGgsIG1lYXN1cmVUZXh0KHRleHQsIGl0ZW0udGV4dFNpemUgKiBvcHRzLnBpeCB8fCBjb25maWcuZm9udFNpemUsIGNvbnRleHQpKTtcclxuICB9XHJcbiAgcmV0dXJuIG1heExlbmd0aDtcclxufVxyXG5cclxuZnVuY3Rpb24gZml4Q29sdW1lRGF0YShwb2ludHMsIGVhY2hTcGFjaW5nLCBjb2x1bW5MZW4sIGluZGV4LCBjb25maWcsIG9wdHMpIHtcclxuICByZXR1cm4gcG9pbnRzLm1hcChmdW5jdGlvbihpdGVtKSB7XHJcbiAgICBpZiAoaXRlbSA9PT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIHZhciBzZXJpZXNHYXAgPSAwO1xyXG4gICAgdmFyIGNhdGVnb3J5R2FwID0gMDtcclxuICAgIGlmIChvcHRzLnR5cGUgPT0gJ21peCcpIHtcclxuICAgICAgc2VyaWVzR2FwID0gb3B0cy5leHRyYS5taXguY29sdW1uLnNlcmllc0dhcCAqIG9wdHMucGl4IHx8IDA7XHJcbiAgICAgIGNhdGVnb3J5R2FwID0gb3B0cy5leHRyYS5taXguY29sdW1uLmNhdGVnb3J5R2FwICogb3B0cy5waXggfHwgMDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHNlcmllc0dhcCA9IG9wdHMuZXh0cmEuY29sdW1uLnNlcmllc0dhcCAqIG9wdHMucGl4IHx8IDA7XHJcbiAgICAgIGNhdGVnb3J5R2FwID0gb3B0cy5leHRyYS5jb2x1bW4uY2F0ZWdvcnlHYXAgKiBvcHRzLnBpeCB8fCAwO1xyXG4gICAgfVxyXG4gICAgc2VyaWVzR2FwID0gIE1hdGgubWluKHNlcmllc0dhcCwgZWFjaFNwYWNpbmcgLyBjb2x1bW5MZW4pXHJcbiAgICBjYXRlZ29yeUdhcCA9ICBNYXRoLm1pbihjYXRlZ29yeUdhcCwgZWFjaFNwYWNpbmcgLyBjb2x1bW5MZW4pXHJcbiAgICBpdGVtLndpZHRoID0gTWF0aC5jZWlsKChlYWNoU3BhY2luZyAtIDIgKiBjYXRlZ29yeUdhcCAtIHNlcmllc0dhcCAqIChjb2x1bW5MZW4gLSAxKSkgLyBjb2x1bW5MZW4pO1xyXG4gICAgaWYgKG9wdHMuZXh0cmEubWl4ICYmIG9wdHMuZXh0cmEubWl4LmNvbHVtbi53aWR0aCAmJiArb3B0cy5leHRyYS5taXguY29sdW1uLndpZHRoID4gMCkge1xyXG4gICAgICBpdGVtLndpZHRoID0gTWF0aC5taW4oaXRlbS53aWR0aCwgK29wdHMuZXh0cmEubWl4LmNvbHVtbi53aWR0aCAqIG9wdHMucGl4KTtcclxuICAgIH1cclxuICAgIGlmIChvcHRzLmV4dHJhLmNvbHVtbiAmJiBvcHRzLmV4dHJhLmNvbHVtbi53aWR0aCAmJiArb3B0cy5leHRyYS5jb2x1bW4ud2lkdGggPiAwKSB7XHJcbiAgICAgIGl0ZW0ud2lkdGggPSBNYXRoLm1pbihpdGVtLndpZHRoLCArb3B0cy5leHRyYS5jb2x1bW4ud2lkdGggKiBvcHRzLnBpeCk7XHJcbiAgICB9XHJcbiAgICBpZiAoaXRlbS53aWR0aCA8PSAwKSB7XHJcbiAgICAgIGl0ZW0ud2lkdGggPSAxO1xyXG4gICAgfVxyXG4gICAgaXRlbS54ICs9IChpbmRleCArIDAuNSAtIGNvbHVtbkxlbiAvIDIpICogKGl0ZW0ud2lkdGggKyBzZXJpZXNHYXApO1xyXG4gICAgcmV0dXJuIGl0ZW07XHJcbiAgfSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZpeEJhckRhdGEocG9pbnRzLCBlYWNoU3BhY2luZywgY29sdW1uTGVuLCBpbmRleCwgY29uZmlnLCBvcHRzKSB7XHJcbiAgcmV0dXJuIHBvaW50cy5tYXAoZnVuY3Rpb24oaXRlbSkge1xyXG4gICAgaWYgKGl0ZW0gPT09IG51bGwpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICB2YXIgc2VyaWVzR2FwID0gMDtcclxuICAgIHZhciBjYXRlZ29yeUdhcCA9IDA7XHJcbiAgICBzZXJpZXNHYXAgPSBvcHRzLmV4dHJhLmJhci5zZXJpZXNHYXAgKiBvcHRzLnBpeCB8fCAwO1xyXG4gICAgY2F0ZWdvcnlHYXAgPSBvcHRzLmV4dHJhLmJhci5jYXRlZ29yeUdhcCAqIG9wdHMucGl4IHx8IDA7XHJcbiAgICBzZXJpZXNHYXAgPSAgTWF0aC5taW4oc2VyaWVzR2FwLCBlYWNoU3BhY2luZyAvIGNvbHVtbkxlbilcclxuICAgIGNhdGVnb3J5R2FwID0gIE1hdGgubWluKGNhdGVnb3J5R2FwLCBlYWNoU3BhY2luZyAvIGNvbHVtbkxlbilcclxuICAgIGl0ZW0ud2lkdGggPSBNYXRoLmNlaWwoKGVhY2hTcGFjaW5nIC0gMiAqIGNhdGVnb3J5R2FwIC0gc2VyaWVzR2FwICogKGNvbHVtbkxlbiAtIDEpKSAvIGNvbHVtbkxlbik7XHJcbiAgICBpZiAob3B0cy5leHRyYS5iYXIgJiYgb3B0cy5leHRyYS5iYXIud2lkdGggJiYgK29wdHMuZXh0cmEuYmFyLndpZHRoID4gMCkge1xyXG4gICAgICBpdGVtLndpZHRoID0gTWF0aC5taW4oaXRlbS53aWR0aCwgK29wdHMuZXh0cmEuYmFyLndpZHRoICogb3B0cy5waXgpO1xyXG4gICAgfVxyXG4gICAgaWYgKGl0ZW0ud2lkdGggPD0gMCkge1xyXG4gICAgICBpdGVtLndpZHRoID0gMTtcclxuICAgIH1cclxuICAgIGl0ZW0ueSArPSAoaW5kZXggKyAwLjUgLSBjb2x1bW5MZW4gLyAyKSAqIChpdGVtLndpZHRoICsgc2VyaWVzR2FwKTtcclxuICAgIHJldHVybiBpdGVtO1xyXG4gIH0pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBmaXhDb2x1bWVNZXRlckRhdGEocG9pbnRzLCBlYWNoU3BhY2luZywgY29sdW1uTGVuLCBpbmRleCwgY29uZmlnLCBvcHRzLCBib3JkZXIpIHtcclxuICB2YXIgY2F0ZWdvcnlHYXAgPSBvcHRzLmV4dHJhLmNvbHVtbi5jYXRlZ29yeUdhcCAqIG9wdHMucGl4IHx8IDA7XHJcbiAgcmV0dXJuIHBvaW50cy5tYXAoZnVuY3Rpb24oaXRlbSkge1xyXG4gICAgaWYgKGl0ZW0gPT09IG51bGwpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICBpdGVtLndpZHRoID0gZWFjaFNwYWNpbmcgLSAyICogY2F0ZWdvcnlHYXA7XHJcbiAgICBpZiAob3B0cy5leHRyYS5jb2x1bW4gJiYgb3B0cy5leHRyYS5jb2x1bW4ud2lkdGggJiYgK29wdHMuZXh0cmEuY29sdW1uLndpZHRoID4gMCkge1xyXG4gICAgICBpdGVtLndpZHRoID0gTWF0aC5taW4oaXRlbS53aWR0aCwgK29wdHMuZXh0cmEuY29sdW1uLndpZHRoICogb3B0cy5waXgpO1xyXG4gICAgfVxyXG4gICAgaWYgKGluZGV4ID4gMCkge1xyXG4gICAgICBpdGVtLndpZHRoIC09IGJvcmRlcjtcclxuICAgIH1cclxuICAgIHJldHVybiBpdGVtO1xyXG4gIH0pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBmaXhDb2x1bWVTdGFja0RhdGEocG9pbnRzLCBlYWNoU3BhY2luZywgY29sdW1uTGVuLCBpbmRleCwgY29uZmlnLCBvcHRzLCBzZXJpZXMpIHtcclxuICB2YXIgY2F0ZWdvcnlHYXAgPSBvcHRzLmV4dHJhLmNvbHVtbi5jYXRlZ29yeUdhcCAqIG9wdHMucGl4IHx8IDA7XHJcbiAgcmV0dXJuIHBvaW50cy5tYXAoZnVuY3Rpb24oaXRlbSwgaW5kZXhuKSB7XHJcbiAgICBpZiAoaXRlbSA9PT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIGl0ZW0ud2lkdGggPSBNYXRoLmNlaWwoZWFjaFNwYWNpbmcgLSAyICogY2F0ZWdvcnlHYXApO1xyXG4gICAgaWYgKG9wdHMuZXh0cmEuY29sdW1uICYmIG9wdHMuZXh0cmEuY29sdW1uLndpZHRoICYmICtvcHRzLmV4dHJhLmNvbHVtbi53aWR0aCA+IDApIHtcclxuICAgICAgaXRlbS53aWR0aCA9IE1hdGgubWluKGl0ZW0ud2lkdGgsICtvcHRzLmV4dHJhLmNvbHVtbi53aWR0aCAqIG9wdHMucGl4KTtcclxuICAgIH1cclxuICAgIGlmIChpdGVtLndpZHRoIDw9IDApIHtcclxuICAgICAgaXRlbS53aWR0aCA9IDE7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gaXRlbTtcclxuICB9KTtcclxufVxyXG5cclxuZnVuY3Rpb24gZml4QmFyU3RhY2tEYXRhKHBvaW50cywgZWFjaFNwYWNpbmcsIGNvbHVtbkxlbiwgaW5kZXgsIGNvbmZpZywgb3B0cywgc2VyaWVzKSB7XHJcbiAgdmFyIGNhdGVnb3J5R2FwID0gb3B0cy5leHRyYS5iYXIuY2F0ZWdvcnlHYXAgKiBvcHRzLnBpeCB8fCAwO1xyXG4gIHJldHVybiBwb2ludHMubWFwKGZ1bmN0aW9uKGl0ZW0sIGluZGV4bikge1xyXG4gICAgaWYgKGl0ZW0gPT09IG51bGwpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICBpdGVtLndpZHRoID0gTWF0aC5jZWlsKGVhY2hTcGFjaW5nIC0gMiAqIGNhdGVnb3J5R2FwKTtcclxuICAgIGlmIChvcHRzLmV4dHJhLmJhciAmJiBvcHRzLmV4dHJhLmJhci53aWR0aCAmJiArb3B0cy5leHRyYS5iYXIud2lkdGggPiAwKSB7XHJcbiAgICAgIGl0ZW0ud2lkdGggPSBNYXRoLm1pbihpdGVtLndpZHRoLCArb3B0cy5leHRyYS5iYXIud2lkdGggKiBvcHRzLnBpeCk7XHJcbiAgICB9XHJcbiAgICBpZiAoaXRlbS53aWR0aCA8PSAwKSB7XHJcbiAgICAgIGl0ZW0ud2lkdGggPSAxO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGl0ZW07XHJcbiAgfSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldFhBeGlzUG9pbnRzKGNhdGVnb3JpZXMsIG9wdHMsIGNvbmZpZykge1xyXG4gIHZhciBzcGFjaW5nVmFsaWQgPSBvcHRzLndpZHRoIC0gb3B0cy5hcmVhWzFdIC0gb3B0cy5hcmVhWzNdO1xyXG4gIHZhciBkYXRhQ291bnQgPSBvcHRzLmVuYWJsZVNjcm9sbCA/IE1hdGgubWluKG9wdHMueEF4aXMuaXRlbUNvdW50LCBjYXRlZ29yaWVzLmxlbmd0aCkgOiBjYXRlZ29yaWVzLmxlbmd0aDtcclxuICBpZiAoKG9wdHMudHlwZSA9PSAnbGluZScgfHwgb3B0cy50eXBlID09ICdhcmVhJyB8fCBvcHRzLnR5cGUgPT0gJ3NjYXR0ZXInIHx8IG9wdHMudHlwZSA9PSAnYnViYmxlJyB8fCBvcHRzLnR5cGUgPT0gJ2JhcicpICYmIGRhdGFDb3VudCA+IDEgJiYgb3B0cy54QXhpcy5ib3VuZGFyeUdhcCA9PSAnanVzdGlmeScpIHtcclxuICAgIGRhdGFDb3VudCAtPSAxO1xyXG4gIH1cclxuICB2YXIgd2lkdGhSYXRpbyA9IDA7XHJcbiAgaWYob3B0cy50eXBlID09ICdtb3VudCcgJiYgb3B0cy5leHRyYSAmJiBvcHRzLmV4dHJhLm1vdW50ICYmIG9wdHMuZXh0cmEubW91bnQud2lkdGhSYXRpbyAmJiBvcHRzLmV4dHJhLm1vdW50LndpZHRoUmF0aW8gPiAxKXtcclxuICAgIGlmKG9wdHMuZXh0cmEubW91bnQud2lkdGhSYXRpbz4yKSBvcHRzLmV4dHJhLm1vdW50LndpZHRoUmF0aW8gPSAyXHJcbiAgICB3aWR0aFJhdGlvID0gb3B0cy5leHRyYS5tb3VudC53aWR0aFJhdGlvIC0gMTtcclxuICAgIGRhdGFDb3VudCArPSB3aWR0aFJhdGlvO1xyXG4gIH1cclxuICB2YXIgZWFjaFNwYWNpbmcgPSBzcGFjaW5nVmFsaWQgLyBkYXRhQ291bnQ7XHJcbiAgdmFyIHhBeGlzUG9pbnRzID0gW107XHJcbiAgdmFyIHN0YXJ0WCA9IG9wdHMuYXJlYVszXTtcclxuICB2YXIgZW5kWCA9IG9wdHMud2lkdGggLSBvcHRzLmFyZWFbMV07XHJcbiAgY2F0ZWdvcmllcy5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICB4QXhpc1BvaW50cy5wdXNoKHN0YXJ0WCArIHdpZHRoUmF0aW8gLyAyICogZWFjaFNwYWNpbmcgKyBpbmRleCAqIGVhY2hTcGFjaW5nKTtcclxuICB9KTtcclxuICBpZiAob3B0cy54QXhpcy5ib3VuZGFyeUdhcCAhPT0gJ2p1c3RpZnknKSB7XHJcbiAgICBpZiAob3B0cy5lbmFibGVTY3JvbGwgPT09IHRydWUpIHtcclxuICAgICAgeEF4aXNQb2ludHMucHVzaChzdGFydFggKyB3aWR0aFJhdGlvICogZWFjaFNwYWNpbmcgKyBjYXRlZ29yaWVzLmxlbmd0aCAqIGVhY2hTcGFjaW5nKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHhBeGlzUG9pbnRzLnB1c2goZW5kWCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiB7XHJcbiAgICB4QXhpc1BvaW50czogeEF4aXNQb2ludHMsXHJcbiAgICBzdGFydFg6IHN0YXJ0WCxcclxuICAgIGVuZFg6IGVuZFgsXHJcbiAgICBlYWNoU3BhY2luZzogZWFjaFNwYWNpbmdcclxuICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRDYW5kbGVEYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeEF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcpIHtcclxuICB2YXIgcHJvY2VzcyA9IGFyZ3VtZW50cy5sZW5ndGggPiA3ICYmIGFyZ3VtZW50c1s3XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzddIDogMTtcclxuICB2YXIgcG9pbnRzID0gW107XHJcbiAgdmFyIHZhbGlkSGVpZ2h0ID0gb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMF0gLSBvcHRzLmFyZWFbMl07XHJcbiAgZGF0YS5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICBpZiAoaXRlbSA9PT0gbnVsbCkge1xyXG4gICAgICBwb2ludHMucHVzaChudWxsKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHZhciBjUG9pbnRzID0gW107XHJcbiAgICAgIGl0ZW0uZm9yRWFjaChmdW5jdGlvbihpdGVtcywgaW5kZXhzKSB7XHJcbiAgICAgICAgdmFyIHBvaW50ID0ge307XHJcbiAgICAgICAgcG9pbnQueCA9IHhBeGlzUG9pbnRzW2luZGV4XSArIE1hdGgucm91bmQoZWFjaFNwYWNpbmcgLyAyKTtcclxuICAgICAgICB2YXIgdmFsdWUgPSBpdGVtcy52YWx1ZSB8fCBpdGVtcztcclxuICAgICAgICB2YXIgaGVpZ2h0ID0gdmFsaWRIZWlnaHQgKiAodmFsdWUgLSBtaW5SYW5nZSkgLyAobWF4UmFuZ2UgLSBtaW5SYW5nZSk7XHJcbiAgICAgICAgaGVpZ2h0ICo9IHByb2Nlc3M7XHJcbiAgICAgICAgcG9pbnQueSA9IG9wdHMuaGVpZ2h0IC0gTWF0aC5yb3VuZChoZWlnaHQpIC0gb3B0cy5hcmVhWzJdO1xyXG4gICAgICAgIGNQb2ludHMucHVzaChwb2ludCk7XHJcbiAgICAgIH0pO1xyXG4gICAgICBwb2ludHMucHVzaChjUG9pbnRzKTtcclxuICAgIH1cclxuICB9KTtcclxuICByZXR1cm4gcG9pbnRzO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXREYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeEF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcpIHtcclxuICB2YXIgcHJvY2VzcyA9IGFyZ3VtZW50cy5sZW5ndGggPiA3ICYmIGFyZ3VtZW50c1s3XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzddIDogMTtcclxuICB2YXIgYm91bmRhcnlHYXAgPSAnY2VudGVyJztcclxuICBpZiAob3B0cy50eXBlID09ICdsaW5lJyB8fCBvcHRzLnR5cGUgPT0gJ2FyZWEnIHx8IG9wdHMudHlwZSA9PSAnc2NhdHRlcicgfHwgb3B0cy50eXBlID09ICdidWJibGUnICkge1xyXG4gICAgYm91bmRhcnlHYXAgPSBvcHRzLnhBeGlzLmJvdW5kYXJ5R2FwO1xyXG4gIH1cclxuICB2YXIgcG9pbnRzID0gW107XHJcbiAgdmFyIHZhbGlkSGVpZ2h0ID0gb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMF0gLSBvcHRzLmFyZWFbMl07XHJcbiAgdmFyIHZhbGlkV2lkdGggPSBvcHRzLndpZHRoIC0gb3B0cy5hcmVhWzFdIC0gb3B0cy5hcmVhWzNdO1xyXG4gIGRhdGEuZm9yRWFjaChmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgaWYgKGl0ZW0gPT09IG51bGwpIHtcclxuICAgICAgcG9pbnRzLnB1c2gobnVsbCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB2YXIgcG9pbnQgPSB7fTtcclxuICAgICAgcG9pbnQuY29sb3IgPSBpdGVtLmNvbG9yO1xyXG4gICAgICBwb2ludC54ID0geEF4aXNQb2ludHNbaW5kZXhdO1xyXG4gICAgICB2YXIgdmFsdWUgPSBpdGVtO1xyXG4gICAgICBpZiAodHlwZW9mIGl0ZW0gPT09ICdvYmplY3QnICYmIGl0ZW0gIT09IG51bGwpIHtcclxuICAgICAgICBpZiAoaXRlbS5jb25zdHJ1Y3Rvci50b1N0cmluZygpLmluZGV4T2YoJ0FycmF5JykgPiAtMSkge1xyXG4gICAgICAgICAgbGV0IHhyYW5nZXMsIHhtaW5SYW5nZSwgeG1heFJhbmdlO1xyXG4gICAgICAgICAgeHJhbmdlcyA9IFtdLmNvbmNhdChvcHRzLmNoYXJ0RGF0YS54QXhpc0RhdGEucmFuZ2VzKTtcclxuICAgICAgICAgIHhtaW5SYW5nZSA9IHhyYW5nZXMuc2hpZnQoKTtcclxuICAgICAgICAgIHhtYXhSYW5nZSA9IHhyYW5nZXMucG9wKCk7XHJcbiAgICAgICAgICB2YWx1ZSA9IGl0ZW1bMV07XHJcbiAgICAgICAgICBwb2ludC54ID0gb3B0cy5hcmVhWzNdICsgdmFsaWRXaWR0aCAqIChpdGVtWzBdIC0geG1pblJhbmdlKSAvICh4bWF4UmFuZ2UgLSB4bWluUmFuZ2UpO1xyXG4gICAgICAgICAgaWYob3B0cy50eXBlID09ICdidWJibGUnKXtcclxuICAgICAgICAgICAgcG9pbnQuciA9IGl0ZW1bMl07XHJcbiAgICAgICAgICAgIHBvaW50LnQgPSBpdGVtWzNdO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB2YWx1ZSA9IGl0ZW0udmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGlmIChib3VuZGFyeUdhcCA9PSAnY2VudGVyJykge1xyXG4gICAgICAgIHBvaW50LnggKz0gZWFjaFNwYWNpbmcgLyAyO1xyXG4gICAgICB9XHJcbiAgICAgIHZhciBoZWlnaHQgPSB2YWxpZEhlaWdodCAqICh2YWx1ZSAtIG1pblJhbmdlKSAvIChtYXhSYW5nZSAtIG1pblJhbmdlKTtcclxuICAgICAgaGVpZ2h0ICo9IHByb2Nlc3M7XHJcbiAgICAgIHBvaW50LnkgPSBvcHRzLmhlaWdodCAtIGhlaWdodCAtIG9wdHMuYXJlYVsyXTtcclxuICAgICAgcG9pbnRzLnB1c2gocG9pbnQpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG4gIHJldHVybiBwb2ludHM7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldE1vdW50RGF0YVBvaW50cyhzZXJpZXMsIG1pblJhbmdlLCBtYXhSYW5nZSwgeEF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBtb3VudE9wdGlvbikge1xyXG4gIHZhciBwcm9jZXNzID0gYXJndW1lbnRzLmxlbmd0aCA+IDcgJiYgYXJndW1lbnRzWzddICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbN10gOiAxO1xyXG4gIHZhciBwb2ludHMgPSBbXTtcclxuICB2YXIgdmFsaWRIZWlnaHQgPSBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVswXSAtIG9wdHMuYXJlYVsyXTtcclxuICB2YXIgdmFsaWRXaWR0aCA9IG9wdHMud2lkdGggLSBvcHRzLmFyZWFbMV0gLSBvcHRzLmFyZWFbM107XHJcbiAgdmFyIG1vdW50V2lkdGggPSBlYWNoU3BhY2luZyAqIG1vdW50T3B0aW9uLndpZHRoUmF0aW87XHJcbiAgc2VyaWVzLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgIGlmIChpdGVtID09PSBudWxsKSB7XHJcbiAgICAgIHBvaW50cy5wdXNoKG51bGwpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdmFyIHBvaW50ID0ge307XHJcbiAgICAgIHBvaW50LmNvbG9yID0gaXRlbS5jb2xvcjtcclxuICAgICAgcG9pbnQueCA9IHhBeGlzUG9pbnRzW2luZGV4XTtcclxuICAgICAgcG9pbnQueCArPSBlYWNoU3BhY2luZyAvIDI7XHJcbiAgICAgIHZhciB2YWx1ZSA9IGl0ZW0uZGF0YTtcclxuICAgICAgdmFyIGhlaWdodCA9IHZhbGlkSGVpZ2h0ICogKHZhbHVlIC0gbWluUmFuZ2UpIC8gKG1heFJhbmdlIC0gbWluUmFuZ2UpO1xyXG4gICAgICBoZWlnaHQgKj0gcHJvY2VzcztcclxuICAgICAgcG9pbnQueSA9IG9wdHMuaGVpZ2h0IC0gaGVpZ2h0IC0gb3B0cy5hcmVhWzJdO1xyXG4gICAgICBwb2ludC52YWx1ZSA9IHZhbHVlO1xyXG4gICAgICBwb2ludC53aWR0aCA9IG1vdW50V2lkdGg7XHJcbiAgICAgIHBvaW50cy5wdXNoKHBvaW50KTtcclxuICAgIH1cclxuICB9KTtcclxuICByZXR1cm4gcG9pbnRzO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRCYXJEYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeUF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcpIHtcclxuICB2YXIgcHJvY2VzcyA9IGFyZ3VtZW50cy5sZW5ndGggPiA3ICYmIGFyZ3VtZW50c1s3XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzddIDogMTtcclxuICB2YXIgcG9pbnRzID0gW107XHJcbiAgdmFyIHZhbGlkSGVpZ2h0ID0gb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMF0gLSBvcHRzLmFyZWFbMl07XHJcbiAgdmFyIHZhbGlkV2lkdGggPSBvcHRzLndpZHRoIC0gb3B0cy5hcmVhWzFdIC0gb3B0cy5hcmVhWzNdO1xyXG4gIGRhdGEuZm9yRWFjaChmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgaWYgKGl0ZW0gPT09IG51bGwpIHtcclxuICAgICAgcG9pbnRzLnB1c2gobnVsbCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB2YXIgcG9pbnQgPSB7fTtcclxuICAgICAgcG9pbnQuY29sb3IgPSBpdGVtLmNvbG9yO1xyXG4gICAgICBwb2ludC55ID0geUF4aXNQb2ludHNbaW5kZXhdO1xyXG4gICAgICB2YXIgdmFsdWUgPSBpdGVtO1xyXG4gICAgICBpZiAodHlwZW9mIGl0ZW0gPT09ICdvYmplY3QnICYmIGl0ZW0gIT09IG51bGwpIHtcclxuICAgICAgICB2YWx1ZSA9IGl0ZW0udmFsdWU7XHJcbiAgICAgIH1cclxuICAgICAgdmFyIGhlaWdodCA9IHZhbGlkV2lkdGggKiAodmFsdWUgLSBtaW5SYW5nZSkgLyAobWF4UmFuZ2UgLSBtaW5SYW5nZSk7XHJcbiAgICAgIGhlaWdodCAqPSBwcm9jZXNzO1xyXG4gICAgICBwb2ludC5oZWlnaHQgPSBoZWlnaHQ7XHJcbiAgICAgIHBvaW50LnZhbHVlID0gdmFsdWU7XHJcbiAgICAgIHBvaW50LnggPSBoZWlnaHQgKyBvcHRzLmFyZWFbM107XHJcbiAgICAgIHBvaW50cy5wdXNoKHBvaW50KTtcclxuICAgIH1cclxuICB9KTtcclxuICByZXR1cm4gcG9pbnRzO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRTdGFja0RhdGFQb2ludHMoZGF0YSwgbWluUmFuZ2UsIG1heFJhbmdlLCB4QXhpc1BvaW50cywgZWFjaFNwYWNpbmcsIG9wdHMsIGNvbmZpZywgc2VyaWVzSW5kZXgsIHN0YWNrU2VyaWVzKSB7XHJcbiAgdmFyIHByb2Nlc3MgPSBhcmd1bWVudHMubGVuZ3RoID4gOSAmJiBhcmd1bWVudHNbOV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s5XSA6IDE7XHJcbiAgdmFyIHBvaW50cyA9IFtdO1xyXG4gIHZhciB2YWxpZEhlaWdodCA9IG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzBdIC0gb3B0cy5hcmVhWzJdO1xyXG4gIGRhdGEuZm9yRWFjaChmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgaWYgKGl0ZW0gPT09IG51bGwpIHtcclxuICAgICAgcG9pbnRzLnB1c2gobnVsbCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB2YXIgcG9pbnQgPSB7fTtcclxuICAgICAgcG9pbnQuY29sb3IgPSBpdGVtLmNvbG9yO1xyXG4gICAgICBwb2ludC54ID0geEF4aXNQb2ludHNbaW5kZXhdICsgTWF0aC5yb3VuZChlYWNoU3BhY2luZyAvIDIpO1xyXG5cclxuICAgICAgaWYgKHNlcmllc0luZGV4ID4gMCkge1xyXG4gICAgICAgIHZhciB2YWx1ZSA9IDA7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gc2VyaWVzSW5kZXg7IGkrKykge1xyXG4gICAgICAgICAgdmFsdWUgKz0gc3RhY2tTZXJpZXNbaV0uZGF0YVtpbmRleF07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHZhciB2YWx1ZTAgPSB2YWx1ZSAtIGl0ZW07XHJcbiAgICAgICAgdmFyIGhlaWdodCA9IHZhbGlkSGVpZ2h0ICogKHZhbHVlIC0gbWluUmFuZ2UpIC8gKG1heFJhbmdlIC0gbWluUmFuZ2UpO1xyXG4gICAgICAgIHZhciBoZWlnaHQwID0gdmFsaWRIZWlnaHQgKiAodmFsdWUwIC0gbWluUmFuZ2UpIC8gKG1heFJhbmdlIC0gbWluUmFuZ2UpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHZhciB2YWx1ZSA9IGl0ZW07XHJcbiAgICAgICAgaWYgKHR5cGVvZiBpdGVtID09PSAnb2JqZWN0JyAmJiBpdGVtICE9PSBudWxsKSB7XHJcbiAgICAgICAgICB2YWx1ZSA9IGl0ZW0udmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHZhciBoZWlnaHQgPSB2YWxpZEhlaWdodCAqICh2YWx1ZSAtIG1pblJhbmdlKSAvIChtYXhSYW5nZSAtIG1pblJhbmdlKTtcclxuICAgICAgICB2YXIgaGVpZ2h0MCA9IDA7XHJcbiAgICAgIH1cclxuICAgICAgdmFyIGhlaWdodGMgPSBoZWlnaHQwO1xyXG4gICAgICBoZWlnaHQgKj0gcHJvY2VzcztcclxuICAgICAgaGVpZ2h0YyAqPSBwcm9jZXNzO1xyXG4gICAgICBwb2ludC55ID0gb3B0cy5oZWlnaHQgLSBNYXRoLnJvdW5kKGhlaWdodCkgLSBvcHRzLmFyZWFbMl07XHJcbiAgICAgIHBvaW50LnkwID0gb3B0cy5oZWlnaHQgLSBNYXRoLnJvdW5kKGhlaWdodGMpIC0gb3B0cy5hcmVhWzJdO1xyXG4gICAgICBwb2ludHMucHVzaChwb2ludCk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgcmV0dXJuIHBvaW50cztcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0QmFyU3RhY2tEYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeUF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHNlcmllc0luZGV4LCBzdGFja1Nlcmllcykge1xyXG4gIHZhciBwcm9jZXNzID0gYXJndW1lbnRzLmxlbmd0aCA+IDkgJiYgYXJndW1lbnRzWzldICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbOV0gOiAxO1xyXG4gIHZhciBwb2ludHMgPSBbXTtcclxuICB2YXIgdmFsaWRIZWlnaHQgPSBvcHRzLndpZHRoIC0gb3B0cy5hcmVhWzFdIC0gb3B0cy5hcmVhWzNdO1xyXG4gIGRhdGEuZm9yRWFjaChmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgaWYgKGl0ZW0gPT09IG51bGwpIHtcclxuICAgICAgcG9pbnRzLnB1c2gobnVsbCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB2YXIgcG9pbnQgPSB7fTtcclxuICAgICAgcG9pbnQuY29sb3IgPSBpdGVtLmNvbG9yO1xyXG4gICAgICBwb2ludC55ID0geUF4aXNQb2ludHNbaW5kZXhdO1xyXG4gICAgICBpZiAoc2VyaWVzSW5kZXggPiAwKSB7XHJcbiAgICAgICAgdmFyIHZhbHVlID0gMDtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8PSBzZXJpZXNJbmRleDsgaSsrKSB7XHJcbiAgICAgICAgICB2YWx1ZSArPSBzdGFja1Nlcmllc1tpXS5kYXRhW2luZGV4XTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdmFyIHZhbHVlMCA9IHZhbHVlIC0gaXRlbTtcclxuICAgICAgICB2YXIgaGVpZ2h0ID0gdmFsaWRIZWlnaHQgKiAodmFsdWUgLSBtaW5SYW5nZSkgLyAobWF4UmFuZ2UgLSBtaW5SYW5nZSk7XHJcbiAgICAgICAgdmFyIGhlaWdodDAgPSB2YWxpZEhlaWdodCAqICh2YWx1ZTAgLSBtaW5SYW5nZSkgLyAobWF4UmFuZ2UgLSBtaW5SYW5nZSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdmFyIHZhbHVlID0gaXRlbTtcclxuICAgICAgICBpZiAodHlwZW9mIGl0ZW0gPT09ICdvYmplY3QnICYmIGl0ZW0gIT09IG51bGwpIHtcclxuICAgICAgICAgIHZhbHVlID0gaXRlbS52YWx1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdmFyIGhlaWdodCA9IHZhbGlkSGVpZ2h0ICogKHZhbHVlIC0gbWluUmFuZ2UpIC8gKG1heFJhbmdlIC0gbWluUmFuZ2UpO1xyXG4gICAgICAgIHZhciBoZWlnaHQwID0gMDtcclxuICAgICAgfVxyXG4gICAgICB2YXIgaGVpZ2h0YyA9IGhlaWdodDA7XHJcbiAgICAgIGhlaWdodCAqPSBwcm9jZXNzO1xyXG4gICAgICBoZWlnaHRjICo9IHByb2Nlc3M7XHJcbiAgICAgIHBvaW50LmhlaWdodCA9IGhlaWdodCAtIGhlaWdodGM7XHJcbiAgICAgIHBvaW50LnggPSBvcHRzLmFyZWFbM10gKyBoZWlnaHQ7XHJcbiAgICAgIHBvaW50LngwID0gb3B0cy5hcmVhWzNdICsgaGVpZ2h0YztcclxuICAgICAgcG9pbnRzLnB1c2gocG9pbnQpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG4gIHJldHVybiBwb2ludHM7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldFlBeGlzVGV4dExpc3Qoc2VyaWVzLCBvcHRzLCBjb25maWcsIHN0YWNrLCB5RGF0YSkge1xyXG4gIHZhciBpbmRleCA9IGFyZ3VtZW50cy5sZW5ndGggPiA1ICYmIGFyZ3VtZW50c1s1XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzVdIDogLTE7XHJcbiAgdmFyIGRhdGE7XHJcbiAgaWYgKHN0YWNrID09ICdzdGFjaycpIHtcclxuICAgIGRhdGEgPSBkYXRhQ29tYmluZVN0YWNrKHNlcmllcywgb3B0cy5jYXRlZ29yaWVzLmxlbmd0aCk7XHJcbiAgfSBlbHNlIHtcclxuICAgIGRhdGEgPSBkYXRhQ29tYmluZShzZXJpZXMpO1xyXG4gIH1cclxuICB2YXIgc29ydGVkID0gW107XHJcbiAgLy8gcmVtb3ZlIG51bGwgZnJvbSBkYXRhXHJcbiAgZGF0YSA9IGRhdGEuZmlsdGVyKGZ1bmN0aW9uKGl0ZW0pIHtcclxuICAgIC8vcmV0dXJuIGl0ZW0gIT09IG51bGw7XHJcbiAgICBpZiAodHlwZW9mIGl0ZW0gPT09ICdvYmplY3QnICYmIGl0ZW0gIT09IG51bGwpIHtcclxuICAgICAgaWYgKGl0ZW0uY29uc3RydWN0b3IudG9TdHJpbmcoKS5pbmRleE9mKCdBcnJheScpID4gLTEpIHtcclxuICAgICAgICByZXR1cm4gaXRlbSAhPT0gbnVsbDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gaXRlbS52YWx1ZSAhPT0gbnVsbDtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGl0ZW0gIT09IG51bGw7XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgZGF0YS5tYXAoZnVuY3Rpb24oaXRlbSkge1xyXG4gICAgaWYgKHR5cGVvZiBpdGVtID09PSAnb2JqZWN0Jykge1xyXG4gICAgICBpZiAoaXRlbS5jb25zdHJ1Y3Rvci50b1N0cmluZygpLmluZGV4T2YoJ0FycmF5JykgPiAtMSkge1xyXG4gICAgICAgIGlmIChvcHRzLnR5cGUgPT0gJ2NhbmRsZScpIHtcclxuICAgICAgICAgIGl0ZW0ubWFwKGZ1bmN0aW9uKHN1Yml0ZW0pIHtcclxuICAgICAgICAgICAgc29ydGVkLnB1c2goc3ViaXRlbSk7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBzb3J0ZWQucHVzaChpdGVtWzFdKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgc29ydGVkLnB1c2goaXRlbS52YWx1ZSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHNvcnRlZC5wdXNoKGl0ZW0pO1xyXG4gICAgfVxyXG4gIH0pXHJcbiAgdmFyIG1pbkRhdGEgPSB5RGF0YS5taW4gfHwgMDtcclxuICB2YXIgbWF4RGF0YSA9IHlEYXRhLm1heCB8fCAwO1xyXG4gIGlmIChzb3J0ZWQubGVuZ3RoID4gMCkge1xyXG4gICAgbWluRGF0YSA9IE1hdGgubWluLmFwcGx5KHRoaXMsIHNvcnRlZCk7XHJcbiAgICBtYXhEYXRhID0gTWF0aC5tYXguYXBwbHkodGhpcywgc29ydGVkKTtcclxuICB9XHJcbiAgaWYgKG1pbkRhdGEgPT09IG1heERhdGEpIHtcclxuICAgIGlmKG1heERhdGEgPT0gMCl7XHJcbiAgICAgIG1heERhdGEgPSAxMDtcclxuICAgIH1lbHNle1xyXG4gICAgICBtaW5EYXRhID0gMDtcclxuICAgIH1cclxuICB9XHJcbiAgdmFyIGRhdGFSYW5nZSA9IGdldERhdGFSYW5nZShtaW5EYXRhLCBtYXhEYXRhKTtcclxuICB2YXIgbWluUmFuZ2UgPSAoeURhdGEubWluID09PSB1bmRlZmluZWQgfHwgeURhdGEubWluID09PSBudWxsKSA/IGRhdGFSYW5nZS5taW5SYW5nZSA6IHlEYXRhLm1pbjtcclxuICB2YXIgbWF4UmFuZ2UgPSAoeURhdGEubWF4ID09PSB1bmRlZmluZWQgfHwgeURhdGEubWF4ID09PSBudWxsKSA/IGRhdGFSYW5nZS5tYXhSYW5nZSA6IHlEYXRhLm1heDtcclxuICB2YXIgZWFjaFJhbmdlID0gKG1heFJhbmdlIC0gbWluUmFuZ2UpIC8gb3B0cy55QXhpcy5zcGxpdE51bWJlcjtcclxuICB2YXIgcmFuZ2UgPSBbXTtcclxuICBmb3IgKHZhciBpID0gMDsgaSA8PSBvcHRzLnlBeGlzLnNwbGl0TnVtYmVyOyBpKyspIHtcclxuICAgIHJhbmdlLnB1c2gobWluUmFuZ2UgKyBlYWNoUmFuZ2UgKiBpKTtcclxuICB9XHJcbiAgcmV0dXJuIHJhbmdlLnJldmVyc2UoKTtcclxufVxyXG5cclxuZnVuY3Rpb24gY2FsWUF4aXNEYXRhKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KSB7XHJcbiAgLy/loIblj6Dlm77ph43nrpdZ6L20XHJcbiAgdmFyIGNvbHVtbnN0eWxlID0gYXNzaWduKHt9LCB7XHJcbiAgICB0eXBlOiBcIlwiXHJcbiAgfSwgb3B0cy5leHRyYS5jb2x1bW4pO1xyXG4gIC8v5aaC5p6c5piv5aSaWei9tO+8jOmHjeaWsOiuoeeul1xyXG4gIHZhciBZTGVuZ3RoID0gb3B0cy55QXhpcy5kYXRhLmxlbmd0aDtcclxuICB2YXIgbmV3U2VyaWVzID0gbmV3IEFycmF5KFlMZW5ndGgpO1xyXG4gIGlmIChZTGVuZ3RoID4gMCkge1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBZTGVuZ3RoOyBpKyspIHtcclxuICAgICAgbmV3U2VyaWVzW2ldID0gW107XHJcbiAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgc2VyaWVzLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgaWYgKHNlcmllc1tqXS5pbmRleCA9PSBpKSB7XHJcbiAgICAgICAgICBuZXdTZXJpZXNbaV0ucHVzaChzZXJpZXNbal0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdmFyIHJhbmdlc0FyciA9IG5ldyBBcnJheShZTGVuZ3RoKTtcclxuICAgIHZhciByYW5nZXNGb3JtYXRBcnIgPSBuZXcgQXJyYXkoWUxlbmd0aCk7XHJcbiAgICB2YXIgeUF4aXNXaWR0aEFyciA9IG5ldyBBcnJheShZTGVuZ3RoKTtcclxuXHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IFlMZW5ndGg7IGkrKykge1xyXG4gICAgICBsZXQgeURhdGEgPSBvcHRzLnlBeGlzLmRhdGFbaV07XHJcbiAgICAgIC8v5aaC5p6c5oC75byA5YWz5LiN5pi+56S677yM5by65Yi25q+P5LiqWei9tOS4uuS4jeaYvuekulxyXG4gICAgICBpZiAob3B0cy55QXhpcy5kaXNhYmxlZCA9PSB0cnVlKSB7XHJcbiAgICAgICAgeURhdGEuZGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmKHlEYXRhLnR5cGUgPT09ICdjYXRlZ29yaWVzJyl7XHJcbiAgICAgICAgaWYoIXlEYXRhLmZvcm1hdHRlcil7XHJcbiAgICAgICAgICB5RGF0YS5mb3JtYXR0ZXIgPSAodmFsLGluZGV4LG9wdHMpID0+IHtyZXR1cm4gdmFsICsgKHlEYXRhLnVuaXQgfHwgJycpfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgeURhdGEuY2F0ZWdvcmllcyA9IHlEYXRhLmNhdGVnb3JpZXMgfHwgb3B0cy5jYXRlZ29yaWVzO1xyXG4gICAgICAgIHJhbmdlc0FycltpXSA9IHlEYXRhLmNhdGVnb3JpZXM7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIGlmKCF5RGF0YS5mb3JtYXR0ZXIpe1xyXG4gICAgICAgICAgeURhdGEuZm9ybWF0dGVyID0gKHZhbCxpbmRleCxvcHRzKSA9PiB7cmV0dXJuIHV0aWwudG9GaXhlZCh2YWwsIHlEYXRhLnRvZml4IHx8IDApICsgKHlEYXRhLnVuaXQgfHwgJycpfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmFuZ2VzQXJyW2ldID0gZ2V0WUF4aXNUZXh0TGlzdChuZXdTZXJpZXNbaV0sIG9wdHMsIGNvbmZpZywgY29sdW1uc3R5bGUudHlwZSwgeURhdGEsIGkpO1xyXG4gICAgICB9XHJcbiAgICAgIGxldCB5QXhpc0ZvbnRTaXplcyA9IHlEYXRhLmZvbnRTaXplICogb3B0cy5waXggfHwgY29uZmlnLmZvbnRTaXplO1xyXG4gICAgICB5QXhpc1dpZHRoQXJyW2ldID0ge1xyXG4gICAgICAgIHBvc2l0aW9uOiB5RGF0YS5wb3NpdGlvbiA/IHlEYXRhLnBvc2l0aW9uIDogJ2xlZnQnLFxyXG4gICAgICAgIHdpZHRoOiAwXHJcbiAgICAgIH07XHJcbiAgICAgIHJhbmdlc0Zvcm1hdEFycltpXSA9IHJhbmdlc0FycltpXS5tYXAoZnVuY3Rpb24oaXRlbXMsaW5kZXgpIHtcclxuICAgICAgICBpdGVtcyA9IHlEYXRhLmZvcm1hdHRlcihpdGVtcyxpbmRleCxvcHRzKTtcclxuICAgICAgICB5QXhpc1dpZHRoQXJyW2ldLndpZHRoID0gTWF0aC5tYXgoeUF4aXNXaWR0aEFycltpXS53aWR0aCwgbWVhc3VyZVRleHQoaXRlbXMsIHlBeGlzRm9udFNpemVzLCBjb250ZXh0KSArIDUpO1xyXG4gICAgICAgIHJldHVybiBpdGVtcztcclxuICAgICAgfSk7XHJcbiAgICAgIGxldCBjYWxpYnJhdGlvbiA9IHlEYXRhLmNhbGlicmF0aW9uID8gNCAqIG9wdHMucGl4IDogMDtcclxuICAgICAgeUF4aXNXaWR0aEFycltpXS53aWR0aCArPSBjYWxpYnJhdGlvbiArIDMgKiBvcHRzLnBpeDtcclxuICAgICAgaWYgKHlEYXRhLmRpc2FibGVkID09PSB0cnVlKSB7XHJcbiAgICAgICAgeUF4aXNXaWR0aEFycltpXS53aWR0aCA9IDA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9IGVsc2Uge1xyXG4gICAgdmFyIHJhbmdlc0FyciA9IG5ldyBBcnJheSgxKTtcclxuICAgIHZhciByYW5nZXNGb3JtYXRBcnIgPSBuZXcgQXJyYXkoMSk7XHJcbiAgICB2YXIgeUF4aXNXaWR0aEFyciA9IG5ldyBBcnJheSgxKTtcclxuICAgIGlmKG9wdHMudHlwZSA9PT0gJ2Jhcicpe1xyXG4gICAgICByYW5nZXNBcnJbMF0gPSBvcHRzLmNhdGVnb3JpZXM7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgcmFuZ2VzQXJyWzBdID0gZ2V0WUF4aXNUZXh0TGlzdChzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29sdW1uc3R5bGUudHlwZSwge30pO1xyXG4gICAgfVxyXG4gICAgeUF4aXNXaWR0aEFyclswXSA9IHtcclxuICAgICAgcG9zaXRpb246ICdsZWZ0JyxcclxuICAgICAgd2lkdGg6IDBcclxuICAgIH07XHJcbiAgICBcclxuICAgIGlmIChvcHRzLnlBeGlzLmRpc2FibGVkID09PSB0cnVlKSB7XHJcbiAgICAgIHlBeGlzV2lkdGhBcnJbMF0gPSB7XHJcbiAgICAgICAgcG9zaXRpb246ICdsZWZ0JyxcclxuICAgICAgICB3aWR0aDogMFxyXG4gICAgICB9O1xyXG4gICAgICBvcHRzLnlBeGlzLmRhdGFbMF0gPSB7XHJcbiAgICAgICAgZGlzYWJsZWQ6IHRydWVcclxuICAgICAgfTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIG9wdHMueUF4aXMuZGF0YVswXSA9IHtcclxuICAgICAgICBkaXNhYmxlZDogZmFsc2UsXHJcbiAgICAgICAgcG9zaXRpb246ICdsZWZ0JyxcclxuICAgICAgICBtYXg6IG9wdHMueUF4aXMubWF4LFxyXG4gICAgICAgIG1pbjogb3B0cy55QXhpcy5taW4sXHJcbiAgICAgICAgZm9ybWF0dGVyOiAodmFsLGluZGV4LG9wdHMpID0+IHtyZXR1cm4gdmFsfVxyXG4gICAgICB9O1xyXG4gICAgICBpZihvcHRzLnR5cGUgPT09ICdiYXInKXtcclxuICAgICAgICBvcHRzLnlBeGlzLmRhdGFbMF0uY2F0ZWdvcmllcyA9IG9wdHMuY2F0ZWdvcmllcztcclxuICAgICAgICBvcHRzLnlBeGlzLmRhdGFbMF0udHlwZSA9ICdjYXRlZ29yaWVzJztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdmFyIHlBeGlzRm9udFNpemUgPSBvcHRzLnlBeGlzLmZvbnRTaXplICogb3B0cy5waXggfHwgY29uZmlnLmZvbnRTaXplO1xyXG4gICAgcmFuZ2VzRm9ybWF0QXJyWzBdID0gcmFuZ2VzQXJyWzBdLm1hcChmdW5jdGlvbihpdGVtLGluZGV4KSB7XHJcbiAgICAgIGl0ZW0gPSBvcHRzLnlBeGlzLmRhdGFbMF0uZm9ybWF0dGVyKGl0ZW0saW5kZXgsb3B0cyk7XHJcbiAgICAgIHlBeGlzV2lkdGhBcnJbMF0ud2lkdGggPSBNYXRoLm1heCh5QXhpc1dpZHRoQXJyWzBdLndpZHRoLCBtZWFzdXJlVGV4dChpdGVtLCB5QXhpc0ZvbnRTaXplLCBjb250ZXh0KSArIDUpO1xyXG4gICAgICByZXR1cm4gaXRlbTtcclxuICAgIH0pO1xyXG4gICAgeUF4aXNXaWR0aEFyclswXS53aWR0aCArPSAzICogb3B0cy5waXg7XHJcbiAgfVxyXG4gIHJldHVybiB7XHJcbiAgICByYW5nZXNGb3JtYXQ6IHJhbmdlc0Zvcm1hdEFycixcclxuICAgIHJhbmdlczogcmFuZ2VzQXJyLFxyXG4gICAgeUF4aXNXaWR0aDogeUF4aXNXaWR0aEFyclxyXG4gIH07XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNhbFRvb2x0aXBZQXhpc0RhdGEocG9pbnQsIHNlcmllcywgb3B0cywgY29uZmlnLCBlYWNoU3BhY2luZykge1xyXG4gIGxldCByYW5nZXMgPSBbXS5jb25jYXQob3B0cy5jaGFydERhdGEueUF4aXNEYXRhLnJhbmdlcyk7XHJcbiAgbGV0IHNwYWNpbmdWYWxpZCA9IG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzBdIC0gb3B0cy5hcmVhWzJdO1xyXG4gIGxldCBtaW5BeGlzID0gb3B0cy5hcmVhWzBdO1xyXG4gIGxldCBpdGVtcyA9IFtdO1xyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgcmFuZ2VzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBsZXQgbWF4VmFsID0gTWF0aC5tYXguYXBwbHkodGhpcywgcmFuZ2VzW2ldKTtcclxuICAgIGxldCBtaW5WYWwgPSBNYXRoLm1pbi5hcHBseSh0aGlzLCByYW5nZXNbaV0pO1xyXG4gICAgbGV0IGl0ZW0gPSBtYXhWYWwgLSAobWF4VmFsIC0gbWluVmFsKSAqIChwb2ludCAtIG1pbkF4aXMpIC8gc3BhY2luZ1ZhbGlkO1xyXG4gICAgaXRlbSA9IG9wdHMueUF4aXMuZGF0YSAmJiBvcHRzLnlBeGlzLmRhdGFbaV0uZm9ybWF0dGVyID8gb3B0cy55QXhpcy5kYXRhW2ldLmZvcm1hdHRlcihpdGVtLCBpLCBvcHRzKSA6IGl0ZW0udG9GaXhlZCgwKTtcclxuICAgIGl0ZW1zLnB1c2goU3RyaW5nKGl0ZW0pKVxyXG4gIH1cclxuICByZXR1cm4gaXRlbXM7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNhbE1hcmtMaW5lRGF0YShwb2ludHMsIG9wdHMpIHtcclxuICBsZXQgbWluUmFuZ2UsIG1heFJhbmdlO1xyXG4gIGxldCBzcGFjaW5nVmFsaWQgPSBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVswXSAtIG9wdHMuYXJlYVsyXTtcclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHBvaW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgcG9pbnRzW2ldLnlBeGlzSW5kZXggPSBwb2ludHNbaV0ueUF4aXNJbmRleCA/IHBvaW50c1tpXS55QXhpc0luZGV4IDogMDtcclxuICAgIGxldCByYW5nZSA9IFtdLmNvbmNhdChvcHRzLmNoYXJ0RGF0YS55QXhpc0RhdGEucmFuZ2VzW3BvaW50c1tpXS55QXhpc0luZGV4XSk7XHJcbiAgICBtaW5SYW5nZSA9IHJhbmdlLnBvcCgpO1xyXG4gICAgbWF4UmFuZ2UgPSByYW5nZS5zaGlmdCgpO1xyXG4gICAgbGV0IGhlaWdodCA9IHNwYWNpbmdWYWxpZCAqIChwb2ludHNbaV0udmFsdWUgLSBtaW5SYW5nZSkgLyAobWF4UmFuZ2UgLSBtaW5SYW5nZSk7XHJcbiAgICBwb2ludHNbaV0ueSA9IG9wdHMuaGVpZ2h0IC0gTWF0aC5yb3VuZChoZWlnaHQpIC0gb3B0cy5hcmVhWzJdO1xyXG4gIH1cclxuICByZXR1cm4gcG9pbnRzO1xyXG59XHJcblxyXG5mdW5jdGlvbiBjb250ZXh0Um90YXRlKGNvbnRleHQsIG9wdHMpIHtcclxuICBpZiAob3B0cy5yb3RhdGVMb2NrICE9PSB0cnVlKSB7XHJcbiAgICBjb250ZXh0LnRyYW5zbGF0ZShvcHRzLmhlaWdodCwgMCk7XHJcbiAgICBjb250ZXh0LnJvdGF0ZSg5MCAqIE1hdGguUEkgLyAxODApO1xyXG4gIH0gZWxzZSBpZiAob3B0cy5fcm90YXRlXyAhPT0gdHJ1ZSkge1xyXG4gICAgY29udGV4dC50cmFuc2xhdGUob3B0cy5oZWlnaHQsIDApO1xyXG4gICAgY29udGV4dC5yb3RhdGUoOTAgKiBNYXRoLlBJIC8gMTgwKTtcclxuICAgIG9wdHMuX3JvdGF0ZV8gPSB0cnVlO1xyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd1BvaW50U2hhcGUocG9pbnRzLCBjb2xvciwgc2hhcGUsIGNvbnRleHQsIG9wdHMpIHtcclxuICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gIGlmIChvcHRzLmRhdGFQb2ludFNoYXBlVHlwZSA9PSAnaG9sbG93Jykge1xyXG4gICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShjb2xvcik7XHJcbiAgICBjb250ZXh0LnNldEZpbGxTdHlsZShvcHRzLmJhY2tncm91bmQpO1xyXG4gICAgY29udGV4dC5zZXRMaW5lV2lkdGgoMiAqIG9wdHMucGl4KTtcclxuICB9IGVsc2Uge1xyXG4gICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShcIiNmZmZmZmZcIik7XHJcbiAgICBjb250ZXh0LnNldEZpbGxTdHlsZShjb2xvcik7XHJcbiAgICBjb250ZXh0LnNldExpbmVXaWR0aCgxICogb3B0cy5waXgpO1xyXG4gIH1cclxuICBpZiAoc2hhcGUgPT09ICdkaWFtb25kJykge1xyXG4gICAgcG9pbnRzLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgICAgaWYgKGl0ZW0gIT09IG51bGwpIHtcclxuICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtLngsIGl0ZW0ueSAtIDQuNSk7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbS54IC0gNC41LCBpdGVtLnkpO1xyXG4gICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCwgaXRlbS55ICsgNC41KTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLnggKyA0LjUsIGl0ZW0ueSk7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbS54LCBpdGVtLnkgLSA0LjUpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9IGVsc2UgaWYgKHNoYXBlID09PSAnY2lyY2xlJykge1xyXG4gICAgcG9pbnRzLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgICAgaWYgKGl0ZW0gIT09IG51bGwpIHtcclxuICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtLnggKyAyLjUgKiBvcHRzLnBpeCwgaXRlbS55KTtcclxuICAgICAgICBjb250ZXh0LmFyYyhpdGVtLngsIGl0ZW0ueSwgMyAqIG9wdHMucGl4LCAwLCAyICogTWF0aC5QSSwgZmFsc2UpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9IGVsc2UgaWYgKHNoYXBlID09PSAnc3F1YXJlJykge1xyXG4gICAgcG9pbnRzLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgICAgaWYgKGl0ZW0gIT09IG51bGwpIHtcclxuICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtLnggLSAzLjUsIGl0ZW0ueSAtIDMuNSk7XHJcbiAgICAgICAgY29udGV4dC5yZWN0KGl0ZW0ueCAtIDMuNSwgaXRlbS55IC0gMy41LCA3LCA3KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfSBlbHNlIGlmIChzaGFwZSA9PT0gJ3RyaWFuZ2xlJykge1xyXG4gICAgcG9pbnRzLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgICAgaWYgKGl0ZW0gIT09IG51bGwpIHtcclxuICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtLngsIGl0ZW0ueSAtIDQuNSk7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbS54IC0gNC41LCBpdGVtLnkgKyA0LjUpO1xyXG4gICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCArIDQuNSwgaXRlbS55ICsgNC41KTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLngsIGl0ZW0ueSAtIDQuNSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH0gZWxzZSBpZiAoc2hhcGUgPT09ICdub25lJykge1xyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gIGNvbnRleHQuZmlsbCgpO1xyXG4gIGNvbnRleHQuc3Ryb2tlKCk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRyYXdSaW5nVGl0bGUob3B0cywgY29uZmlnLCBjb250ZXh0LCBjZW50ZXIpIHtcclxuICB2YXIgdGl0bGVmb250U2l6ZSA9IG9wdHMudGl0bGUuZm9udFNpemUgfHwgY29uZmlnLnRpdGxlRm9udFNpemU7XHJcbiAgdmFyIHN1YnRpdGxlZm9udFNpemUgPSBvcHRzLnN1YnRpdGxlLmZvbnRTaXplIHx8IGNvbmZpZy5zdWJ0aXRsZUZvbnRTaXplO1xyXG4gIHZhciB0aXRsZSA9IG9wdHMudGl0bGUubmFtZSB8fCAnJztcclxuICB2YXIgc3VidGl0bGUgPSBvcHRzLnN1YnRpdGxlLm5hbWUgfHwgJyc7XHJcbiAgdmFyIHRpdGxlRm9udENvbG9yID0gb3B0cy50aXRsZS5jb2xvciB8fCBvcHRzLmZvbnRDb2xvcjtcclxuICB2YXIgc3VidGl0bGVGb250Q29sb3IgPSBvcHRzLnN1YnRpdGxlLmNvbG9yIHx8IG9wdHMuZm9udENvbG9yO1xyXG4gIHZhciB0aXRsZUhlaWdodCA9IHRpdGxlID8gdGl0bGVmb250U2l6ZSA6IDA7XHJcbiAgdmFyIHN1YnRpdGxlSGVpZ2h0ID0gc3VidGl0bGUgPyBzdWJ0aXRsZWZvbnRTaXplIDogMDtcclxuICB2YXIgbWFyZ2luID0gNTtcclxuICBpZiAoc3VidGl0bGUpIHtcclxuICAgIHZhciB0ZXh0V2lkdGggPSBtZWFzdXJlVGV4dChzdWJ0aXRsZSwgc3VidGl0bGVmb250U2l6ZSAqIG9wdHMucGl4LCBjb250ZXh0KTtcclxuICAgIHZhciBzdGFydFggPSBjZW50ZXIueCAtIHRleHRXaWR0aCAvIDIgKyAob3B0cy5zdWJ0aXRsZS5vZmZzZXRYfHwgMCkgKiBvcHRzLnBpeCA7XHJcbiAgICB2YXIgc3RhcnRZID0gY2VudGVyLnkgKyBzdWJ0aXRsZWZvbnRTaXplICogb3B0cy5waXggLyAyICsgKG9wdHMuc3VidGl0bGUub2Zmc2V0WSB8fCAwKSAqIG9wdHMucGl4O1xyXG4gICAgaWYgKHRpdGxlKSB7XHJcbiAgICAgIHN0YXJ0WSArPSAodGl0bGVIZWlnaHQgKiBvcHRzLnBpeCArIG1hcmdpbikgLyAyO1xyXG4gICAgfVxyXG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgIGNvbnRleHQuc2V0Rm9udFNpemUoc3VidGl0bGVmb250U2l6ZSAqIG9wdHMucGl4KTtcclxuICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKHN1YnRpdGxlRm9udENvbG9yKTtcclxuICAgIGNvbnRleHQuZmlsbFRleHQoc3VidGl0bGUsIHN0YXJ0WCwgc3RhcnRZKTtcclxuICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gIH1cclxuICBpZiAodGl0bGUpIHtcclxuICAgIHZhciBfdGV4dFdpZHRoID0gbWVhc3VyZVRleHQodGl0bGUsIHRpdGxlZm9udFNpemUgKiBvcHRzLnBpeCwgY29udGV4dCk7XHJcbiAgICB2YXIgX3N0YXJ0WCA9IGNlbnRlci54IC0gX3RleHRXaWR0aCAvIDIgKyAob3B0cy50aXRsZS5vZmZzZXRYIHx8IDApO1xyXG4gICAgdmFyIF9zdGFydFkgPSBjZW50ZXIueSArIHRpdGxlZm9udFNpemUgKiBvcHRzLnBpeCAvIDIgKyAob3B0cy50aXRsZS5vZmZzZXRZIHx8IDApICogb3B0cy5waXg7XHJcbiAgICBpZiAoc3VidGl0bGUpIHtcclxuICAgICAgX3N0YXJ0WSAtPSAoc3VidGl0bGVIZWlnaHQgKiBvcHRzLnBpeCArIG1hcmdpbikgLyAyO1xyXG4gICAgfVxyXG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgIGNvbnRleHQuc2V0Rm9udFNpemUodGl0bGVmb250U2l6ZSAqIG9wdHMucGl4KTtcclxuICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKHRpdGxlRm9udENvbG9yKTtcclxuICAgIGNvbnRleHQuZmlsbFRleHQodGl0bGUsIF9zdGFydFgsIF9zdGFydFkpO1xyXG4gICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3UG9pbnRUZXh0KHBvaW50cywgc2VyaWVzLCBjb25maWcsIGNvbnRleHQsIG9wdHMpIHtcclxuICAvLyDnu5jliLbmlbDmja7mlofmoYhcclxuICB2YXIgZGF0YSA9IHNlcmllcy5kYXRhO1xyXG4gIHZhciB0ZXh0T2Zmc2V0ID0gc2VyaWVzLnRleHRPZmZzZXQgPyBzZXJpZXMudGV4dE9mZnNldCA6IDA7XHJcbiAgcG9pbnRzLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgIGlmIChpdGVtICE9PSBudWxsKSB7XHJcbiAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgIHZhciBmb250U2l6ZSA9IHNlcmllcy50ZXh0U2l6ZSA/IHNlcmllcy50ZXh0U2l6ZSAqIG9wdHMucGl4IDogY29uZmlnLmZvbnRTaXplO1xyXG4gICAgICBjb250ZXh0LnNldEZvbnRTaXplKGZvbnRTaXplKTtcclxuICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoc2VyaWVzLnRleHRDb2xvciB8fCBvcHRzLmZvbnRDb2xvcik7XHJcbiAgICAgIHZhciB2YWx1ZSA9IGRhdGFbaW5kZXhdXHJcbiAgICAgIGlmICh0eXBlb2YgZGF0YVtpbmRleF0gPT09ICdvYmplY3QnICYmIGRhdGFbaW5kZXhdICE9PSBudWxsKSB7XHJcbiAgICAgICAgaWYgKGRhdGFbaW5kZXhdLmNvbnN0cnVjdG9yLnRvU3RyaW5nKCkuaW5kZXhPZignQXJyYXknKT4tMSkge1xyXG4gICAgICAgICAgdmFsdWUgPSBkYXRhW2luZGV4XVsxXTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdmFsdWUgPSBkYXRhW2luZGV4XS52YWx1ZVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB2YXIgZm9ybWF0VmFsID0gc2VyaWVzLmZvcm1hdHRlciA/IHNlcmllcy5mb3JtYXR0ZXIodmFsdWUsaW5kZXgsc2VyaWVzLG9wdHMpIDogdmFsdWU7XHJcbiAgICAgIGNvbnRleHQuc2V0VGV4dEFsaWduKCdjZW50ZXInKTtcclxuICAgICAgY29udGV4dC5maWxsVGV4dChTdHJpbmcoZm9ybWF0VmFsKSwgaXRlbS54LCBpdGVtLnkgLSA0ICsgdGV4dE9mZnNldCAqIG9wdHMucGl4KTtcclxuICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgY29udGV4dC5zZXRUZXh0QWxpZ24oJ2xlZnQnKTtcclxuICAgIH1cclxuICB9KTtcclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd01vdW50UG9pbnRUZXh0KHBvaW50cywgc2VyaWVzLCBjb25maWcsIGNvbnRleHQsIG9wdHMpIHtcclxuICAvLyDnu5jliLbmlbDmja7mlofmoYhcclxuICB2YXIgZGF0YSA9IHNlcmllcy5kYXRhO1xyXG4gIHZhciB0ZXh0T2Zmc2V0ID0gc2VyaWVzLnRleHRPZmZzZXQgPyBzZXJpZXMudGV4dE9mZnNldCA6IDA7XHJcbiAgcG9pbnRzLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgIGlmIChpdGVtICE9PSBudWxsKSB7XHJcbiAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgIHZhciBmb250U2l6ZSA9IHNlcmllc1tpbmRleF0udGV4dFNpemUgPyBzZXJpZXNbaW5kZXhdLnRleHRTaXplICogb3B0cy5waXggOiBjb25maWcuZm9udFNpemU7XHJcbiAgICAgIGNvbnRleHQuc2V0Rm9udFNpemUoZm9udFNpemUpO1xyXG4gICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShzZXJpZXNbaW5kZXhdLnRleHRDb2xvciB8fCBvcHRzLmZvbnRDb2xvcik7XHJcbiAgICAgIHZhciB2YWx1ZSA9IGl0ZW0udmFsdWVcclxuICAgICAgdmFyIGZvcm1hdFZhbCA9IHNlcmllc1tpbmRleF0uZm9ybWF0dGVyID8gc2VyaWVzW2luZGV4XS5mb3JtYXR0ZXIodmFsdWUsaW5kZXgsc2VyaWVzLG9wdHMpIDogdmFsdWU7XHJcbiAgICAgIGNvbnRleHQuc2V0VGV4dEFsaWduKCdjZW50ZXInKTtcclxuICAgICAgY29udGV4dC5maWxsVGV4dChTdHJpbmcoZm9ybWF0VmFsKSwgaXRlbS54LCBpdGVtLnkgLSA0ICsgdGV4dE9mZnNldCAqIG9wdHMucGl4KTtcclxuICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgY29udGV4dC5zZXRUZXh0QWxpZ24oJ2xlZnQnKTtcclxuICAgIH1cclxuICB9KTtcclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd0JhclBvaW50VGV4dChwb2ludHMsIHNlcmllcywgY29uZmlnLCBjb250ZXh0LCBvcHRzKSB7XHJcbiAgLy8g57uY5Yi25pWw5o2u5paH5qGIXHJcbiAgdmFyIGRhdGEgPSBzZXJpZXMuZGF0YTtcclxuICB2YXIgdGV4dE9mZnNldCA9IHNlcmllcy50ZXh0T2Zmc2V0ID8gc2VyaWVzLnRleHRPZmZzZXQgOiAwO1xyXG4gIHBvaW50cy5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICBpZiAoaXRlbSAhPT0gbnVsbCkge1xyXG4gICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICB2YXIgZm9udFNpemUgPSBzZXJpZXMudGV4dFNpemUgPyBzZXJpZXMudGV4dFNpemUgKiBvcHRzLnBpeCA6IGNvbmZpZy5mb250U2l6ZTtcclxuICAgICAgY29udGV4dC5zZXRGb250U2l6ZShmb250U2l6ZSk7XHJcbiAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKHNlcmllcy50ZXh0Q29sb3IgfHwgb3B0cy5mb250Q29sb3IpO1xyXG4gICAgICB2YXIgdmFsdWUgPSBkYXRhW2luZGV4XVxyXG4gICAgICBpZiAodHlwZW9mIGRhdGFbaW5kZXhdID09PSAnb2JqZWN0JyAmJiBkYXRhW2luZGV4XSAhPT0gbnVsbCkge1xyXG4gICAgICAgIHZhbHVlID0gZGF0YVtpbmRleF0udmFsdWUgO1xyXG4gICAgICB9XHJcbiAgICAgIHZhciBmb3JtYXRWYWwgPSBzZXJpZXMuZm9ybWF0dGVyID8gc2VyaWVzLmZvcm1hdHRlcih2YWx1ZSxpbmRleCxzZXJpZXMsb3B0cykgOiB2YWx1ZTtcclxuICAgICAgY29udGV4dC5zZXRUZXh0QWxpZ24oJ2xlZnQnKTtcclxuICAgICAgY29udGV4dC5maWxsVGV4dChTdHJpbmcoZm9ybWF0VmFsKSwgaXRlbS54ICsgNCAqIG9wdHMucGl4ICwgaXRlbS55ICsgZm9udFNpemUgLyAyIC0gMyApO1xyXG4gICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3R2F1Z2VMYWJlbChnYXVnZU9wdGlvbiwgcmFkaXVzLCBjZW50ZXJQb3NpdGlvbiwgb3B0cywgY29uZmlnLCBjb250ZXh0KSB7XHJcbiAgcmFkaXVzIC09IGdhdWdlT3B0aW9uLndpZHRoIC8gMiArIGdhdWdlT3B0aW9uLmxhYmVsT2Zmc2V0ICogb3B0cy5waXg7XHJcbiAgcmFkaXVzID0gcmFkaXVzIDwgMTAgPyAxMCA6IHJhZGl1cztcclxuICBsZXQgdG90YWxBbmdsZSA9IGdhdWdlT3B0aW9uLnN0YXJ0QW5nbGUgLSBnYXVnZU9wdGlvbi5lbmRBbmdsZSArIDE7XHJcbiAgbGV0IHNwbGl0QW5nbGUgPSB0b3RhbEFuZ2xlIC8gZ2F1Z2VPcHRpb24uc3BsaXRMaW5lLnNwbGl0TnVtYmVyO1xyXG4gIGxldCB0b3RhbE51bWJlciA9IGdhdWdlT3B0aW9uLmVuZE51bWJlciAtIGdhdWdlT3B0aW9uLnN0YXJ0TnVtYmVyO1xyXG4gIGxldCBzcGxpdE51bWJlciA9IHRvdGFsTnVtYmVyIC8gZ2F1Z2VPcHRpb24uc3BsaXRMaW5lLnNwbGl0TnVtYmVyO1xyXG4gIGxldCBub3dBbmdsZSA9IGdhdWdlT3B0aW9uLnN0YXJ0QW5nbGU7XHJcbiAgbGV0IG5vd051bWJlciA9IGdhdWdlT3B0aW9uLnN0YXJ0TnVtYmVyO1xyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgZ2F1Z2VPcHRpb24uc3BsaXRMaW5lLnNwbGl0TnVtYmVyICsgMTsgaSsrKSB7XHJcbiAgICB2YXIgcG9zID0ge1xyXG4gICAgICB4OiByYWRpdXMgKiBNYXRoLmNvcyhub3dBbmdsZSAqIE1hdGguUEkpLFxyXG4gICAgICB5OiByYWRpdXMgKiBNYXRoLnNpbihub3dBbmdsZSAqIE1hdGguUEkpXHJcbiAgICB9O1xyXG4gICAgdmFyIGxhYmVsVGV4dCA9IGdhdWdlT3B0aW9uLmZvcm1hdHRlciA/IGdhdWdlT3B0aW9uLmZvcm1hdHRlcihub3dOdW1iZXIsaSxvcHRzKSA6IG5vd051bWJlcjtcclxuICAgIHBvcy54ICs9IGNlbnRlclBvc2l0aW9uLnggLSBtZWFzdXJlVGV4dChsYWJlbFRleHQsIGNvbmZpZy5mb250U2l6ZSwgY29udGV4dCkgLyAyO1xyXG4gICAgcG9zLnkgKz0gY2VudGVyUG9zaXRpb24ueTtcclxuICAgIHZhciBzdGFydFggPSBwb3MueDtcclxuICAgIHZhciBzdGFydFkgPSBwb3MueTtcclxuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICBjb250ZXh0LnNldEZvbnRTaXplKGNvbmZpZy5mb250U2l6ZSk7XHJcbiAgICBjb250ZXh0LnNldEZpbGxTdHlsZShnYXVnZU9wdGlvbi5sYWJlbENvbG9yIHx8IG9wdHMuZm9udENvbG9yKTtcclxuICAgIGNvbnRleHQuZmlsbFRleHQobGFiZWxUZXh0LCBzdGFydFgsIHN0YXJ0WSArIGNvbmZpZy5mb250U2l6ZSAvIDIpO1xyXG4gICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICBub3dBbmdsZSArPSBzcGxpdEFuZ2xlO1xyXG4gICAgaWYgKG5vd0FuZ2xlID49IDIpIHtcclxuICAgICAgbm93QW5nbGUgPSBub3dBbmdsZSAlIDI7XHJcbiAgICB9XHJcbiAgICBub3dOdW1iZXIgKz0gc3BsaXROdW1iZXI7XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3UmFkYXJMYWJlbChhbmdsZUxpc3QsIHJhZGl1cywgY2VudGVyUG9zaXRpb24sIG9wdHMsIGNvbmZpZywgY29udGV4dCkge1xyXG4gIHZhciByYWRhck9wdGlvbiA9IG9wdHMuZXh0cmEucmFkYXIgfHwge307XHJcbiAgYW5nbGVMaXN0LmZvckVhY2goZnVuY3Rpb24oYW5nbGUsIGluZGV4KSB7XHJcbiAgICBpZihyYWRhck9wdGlvbi5sYWJlbFBvaW50U2hvdyA9PT0gdHJ1ZSAmJiBvcHRzLmNhdGVnb3JpZXNbaW5kZXhdICE9PSAnJyl7XHJcbiAgICAgIHZhciBwb3NQb2ludCA9IHtcclxuICAgICAgICB4OiByYWRpdXMgKiBNYXRoLmNvcyhhbmdsZSksXHJcbiAgICAgICAgeTogcmFkaXVzICogTWF0aC5zaW4oYW5nbGUpXHJcbiAgICAgIH07XHJcbiAgICAgIHZhciBwb3NQb2ludEF4aXMgPSBjb252ZXJ0Q29vcmRpbmF0ZU9yaWdpbihwb3NQb2ludC54LCBwb3NQb2ludC55LCBjZW50ZXJQb3NpdGlvbik7XHJcbiAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKHJhZGFyT3B0aW9uLmxhYmVsUG9pbnRDb2xvcik7XHJcbiAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgIGNvbnRleHQuYXJjKHBvc1BvaW50QXhpcy54LCBwb3NQb2ludEF4aXMueSwgcmFkYXJPcHRpb24ubGFiZWxQb2ludFJhZGl1cyAqIG9wdHMucGl4LCAwLCAyICogTWF0aC5QSSwgZmFsc2UpO1xyXG4gICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgIH1cclxuICAgIHZhciBwb3MgPSB7XHJcbiAgICAgIHg6IChyYWRpdXMgKyBjb25maWcucmFkYXJMYWJlbFRleHRNYXJnaW4gKiBvcHRzLnBpeCkgKiBNYXRoLmNvcyhhbmdsZSksXHJcbiAgICAgIHk6IChyYWRpdXMgKyBjb25maWcucmFkYXJMYWJlbFRleHRNYXJnaW4gKiBvcHRzLnBpeCkgKiBNYXRoLnNpbihhbmdsZSlcclxuICAgIH07XHJcbiAgICB2YXIgcG9zUmVsYXRpdmVDYW52YXMgPSBjb252ZXJ0Q29vcmRpbmF0ZU9yaWdpbihwb3MueCwgcG9zLnksIGNlbnRlclBvc2l0aW9uKTtcclxuICAgIHZhciBzdGFydFggPSBwb3NSZWxhdGl2ZUNhbnZhcy54O1xyXG4gICAgdmFyIHN0YXJ0WSA9IHBvc1JlbGF0aXZlQ2FudmFzLnk7XHJcbiAgICBpZiAodXRpbC5hcHByb3hpbWF0ZWx5RXF1YWwocG9zLngsIDApKSB7XHJcbiAgICAgIHN0YXJ0WCAtPSBtZWFzdXJlVGV4dChvcHRzLmNhdGVnb3JpZXNbaW5kZXhdIHx8ICcnLCBjb25maWcuZm9udFNpemUsIGNvbnRleHQpIC8gMjtcclxuICAgIH0gZWxzZSBpZiAocG9zLnggPCAwKSB7XHJcbiAgICAgIHN0YXJ0WCAtPSBtZWFzdXJlVGV4dChvcHRzLmNhdGVnb3JpZXNbaW5kZXhdIHx8ICcnLCBjb25maWcuZm9udFNpemUsIGNvbnRleHQpO1xyXG4gICAgfVxyXG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgIGNvbnRleHQuc2V0Rm9udFNpemUoY29uZmlnLmZvbnRTaXplKTtcclxuICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKHJhZGFyT3B0aW9uLmxhYmVsQ29sb3IgfHwgb3B0cy5mb250Q29sb3IpO1xyXG4gICAgY29udGV4dC5maWxsVGV4dChvcHRzLmNhdGVnb3JpZXNbaW5kZXhdIHx8ICcnLCBzdGFydFgsIHN0YXJ0WSArIGNvbmZpZy5mb250U2l6ZSAvIDIpO1xyXG4gICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgfSk7XHJcblxyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3UGllVGV4dChzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgcmFkaXVzLCBjZW50ZXIpIHtcclxuICB2YXIgbGluZVJhZGl1cyA9IGNvbmZpZy5waWVDaGFydExpbmVQYWRkaW5nO1xyXG4gIHZhciB0ZXh0T2JqZWN0Q29sbGVjdGlvbiA9IFtdO1xyXG4gIHZhciBsYXN0VGV4dE9iamVjdCA9IG51bGw7XHJcbiAgdmFyIHNlcmllc0NvbnZlcnQgPSBzZXJpZXMubWFwKGZ1bmN0aW9uKGl0ZW0saW5kZXgpIHtcclxuICAgIHZhciB0ZXh0ID0gaXRlbS5mb3JtYXR0ZXIgPyBpdGVtLmZvcm1hdHRlcihpdGVtLGluZGV4LHNlcmllcyxvcHRzKSA6IHV0aWwudG9GaXhlZChpdGVtLl9wcm9wb3J0aW9uXy50b0ZpeGVkKDQpICogMTAwKSArICclJztcclxuICAgIHRleHQgPSBpdGVtLmxhYmVsVGV4dCA/IGl0ZW0ubGFiZWxUZXh0IDogdGV4dDtcclxuICAgIHZhciBhcmMgPSAyICogTWF0aC5QSSAtIChpdGVtLl9zdGFydF8gKyAyICogTWF0aC5QSSAqIGl0ZW0uX3Byb3BvcnRpb25fIC8gMik7XHJcbiAgICBpZiAoaXRlbS5fcm9zZV9wcm9wb3J0aW9uXykge1xyXG4gICAgICBhcmMgPSAyICogTWF0aC5QSSAtIChpdGVtLl9zdGFydF8gKyAyICogTWF0aC5QSSAqIGl0ZW0uX3Jvc2VfcHJvcG9ydGlvbl8gLyAyKTtcclxuICAgIH1cclxuICAgIHZhciBjb2xvciA9IGl0ZW0uY29sb3I7XHJcbiAgICB2YXIgcmFkaXVzID0gaXRlbS5fcmFkaXVzXztcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGFyYzogYXJjLFxyXG4gICAgICB0ZXh0OiB0ZXh0LFxyXG4gICAgICBjb2xvcjogY29sb3IsXHJcbiAgICAgIHJhZGl1czogcmFkaXVzLFxyXG4gICAgICB0ZXh0Q29sb3I6IGl0ZW0udGV4dENvbG9yLFxyXG4gICAgICB0ZXh0U2l6ZTogaXRlbS50ZXh0U2l6ZSxcclxuICAgICAgbGFiZWxTaG93OiBpdGVtLmxhYmVsU2hvd1xyXG4gICAgfTtcclxuICB9KTtcclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHNlcmllc0NvbnZlcnQubGVuZ3RoOyBpKyspIHtcclxuICAgIGxldCBpdGVtID0gc2VyaWVzQ29udmVydFtpXTtcclxuICAgIC8vIGxpbmUgZW5kXHJcbiAgICBsZXQgb3JnaW5YMSA9IE1hdGguY29zKGl0ZW0uYXJjKSAqIChpdGVtLnJhZGl1cyArIGxpbmVSYWRpdXMpO1xyXG4gICAgbGV0IG9yZ2luWTEgPSBNYXRoLnNpbihpdGVtLmFyYykgKiAoaXRlbS5yYWRpdXMgKyBsaW5lUmFkaXVzKTtcclxuICAgIC8vIGxpbmUgc3RhcnRcclxuICAgIGxldCBvcmdpblgyID0gTWF0aC5jb3MoaXRlbS5hcmMpICogaXRlbS5yYWRpdXM7XHJcbiAgICBsZXQgb3JnaW5ZMiA9IE1hdGguc2luKGl0ZW0uYXJjKSAqIGl0ZW0ucmFkaXVzO1xyXG4gICAgLy8gdGV4dCBzdGFydFxyXG4gICAgbGV0IG9yZ2luWDMgPSBvcmdpblgxID49IDAgPyBvcmdpblgxICsgY29uZmlnLnBpZUNoYXJ0VGV4dFBhZGRpbmcgOiBvcmdpblgxIC0gY29uZmlnLnBpZUNoYXJ0VGV4dFBhZGRpbmc7XHJcbiAgICBsZXQgb3JnaW5ZMyA9IG9yZ2luWTE7XHJcbiAgICBsZXQgdGV4dFdpZHRoID0gbWVhc3VyZVRleHQoaXRlbS50ZXh0LCBpdGVtLnRleHRTaXplICogb3B0cy5waXggfHwgY29uZmlnLmZvbnRTaXplLCBjb250ZXh0KTtcclxuICAgIGxldCBzdGFydFkgPSBvcmdpblkzO1xyXG4gICAgaWYgKGxhc3RUZXh0T2JqZWN0ICYmIHV0aWwuaXNTYW1lWENvb3JkaW5hdGVBcmVhKGxhc3RUZXh0T2JqZWN0LnN0YXJ0LCB7XHJcbiAgICAgICAgeDogb3JnaW5YM1xyXG4gICAgICB9KSkge1xyXG4gICAgICBpZiAob3JnaW5YMyA+IDApIHtcclxuICAgICAgICBzdGFydFkgPSBNYXRoLm1pbihvcmdpblkzLCBsYXN0VGV4dE9iamVjdC5zdGFydC55KTtcclxuICAgICAgfSBlbHNlIGlmIChvcmdpblgxIDwgMCkge1xyXG4gICAgICAgIHN0YXJ0WSA9IE1hdGgubWF4KG9yZ2luWTMsIGxhc3RUZXh0T2JqZWN0LnN0YXJ0LnkpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmIChvcmdpblkzID4gMCkge1xyXG4gICAgICAgICAgc3RhcnRZID0gTWF0aC5tYXgob3JnaW5ZMywgbGFzdFRleHRPYmplY3Quc3RhcnQueSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHN0YXJ0WSA9IE1hdGgubWluKG9yZ2luWTMsIGxhc3RUZXh0T2JqZWN0LnN0YXJ0LnkpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKG9yZ2luWDMgPCAwKSB7XHJcbiAgICAgIG9yZ2luWDMgLT0gdGV4dFdpZHRoO1xyXG4gICAgfVxyXG4gICAgbGV0IHRleHRPYmplY3QgPSB7XHJcbiAgICAgIGxpbmVTdGFydDoge1xyXG4gICAgICAgIHg6IG9yZ2luWDIsXHJcbiAgICAgICAgeTogb3JnaW5ZMlxyXG4gICAgICB9LFxyXG4gICAgICBsaW5lRW5kOiB7XHJcbiAgICAgICAgeDogb3JnaW5YMSxcclxuICAgICAgICB5OiBvcmdpblkxXHJcbiAgICAgIH0sXHJcbiAgICAgIHN0YXJ0OiB7XHJcbiAgICAgICAgeDogb3JnaW5YMyxcclxuICAgICAgICB5OiBzdGFydFlcclxuICAgICAgfSxcclxuICAgICAgd2lkdGg6IHRleHRXaWR0aCxcclxuICAgICAgaGVpZ2h0OiBjb25maWcuZm9udFNpemUsXHJcbiAgICAgIHRleHQ6IGl0ZW0udGV4dCxcclxuICAgICAgY29sb3I6IGl0ZW0uY29sb3IsXHJcbiAgICAgIHRleHRDb2xvcjogaXRlbS50ZXh0Q29sb3IsXHJcbiAgICAgIHRleHRTaXplOiBpdGVtLnRleHRTaXplXHJcbiAgICB9O1xyXG4gICAgbGFzdFRleHRPYmplY3QgPSBhdm9pZENvbGxpc2lvbih0ZXh0T2JqZWN0LCBsYXN0VGV4dE9iamVjdCk7XHJcbiAgICB0ZXh0T2JqZWN0Q29sbGVjdGlvbi5wdXNoKGxhc3RUZXh0T2JqZWN0KTtcclxuICB9XHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCB0ZXh0T2JqZWN0Q29sbGVjdGlvbi5sZW5ndGg7IGkrKykge1xyXG4gICAgaWYoc2VyaWVzQ29udmVydFtpXS5sYWJlbFNob3cgPT09IGZhbHNlKXtcclxuICAgICAgY29udGludWU7XHJcbiAgICB9XHJcbiAgICBsZXQgaXRlbSA9IHRleHRPYmplY3RDb2xsZWN0aW9uW2ldO1xyXG4gICAgbGV0IGxpbmVTdGFydFBvaXN0aW9uID0gY29udmVydENvb3JkaW5hdGVPcmlnaW4oaXRlbS5saW5lU3RhcnQueCwgaXRlbS5saW5lU3RhcnQueSwgY2VudGVyKTtcclxuICAgIGxldCBsaW5lRW5kUG9pc3Rpb24gPSBjb252ZXJ0Q29vcmRpbmF0ZU9yaWdpbihpdGVtLmxpbmVFbmQueCwgaXRlbS5saW5lRW5kLnksIGNlbnRlcik7XHJcbiAgICBsZXQgdGV4dFBvc2l0aW9uID0gY29udmVydENvb3JkaW5hdGVPcmlnaW4oaXRlbS5zdGFydC54LCBpdGVtLnN0YXJ0LnksIGNlbnRlcik7XHJcbiAgICBjb250ZXh0LnNldExpbmVXaWR0aCgxICogb3B0cy5waXgpO1xyXG4gICAgY29udGV4dC5zZXRGb250U2l6ZShpdGVtLnRleHRTaXplICogb3B0cy5waXggfHwgY29uZmlnLmZvbnRTaXplKTtcclxuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKGl0ZW0uY29sb3IpO1xyXG4gICAgY29udGV4dC5zZXRGaWxsU3R5bGUoaXRlbS5jb2xvcik7XHJcbiAgICBjb250ZXh0Lm1vdmVUbyhsaW5lU3RhcnRQb2lzdGlvbi54LCBsaW5lU3RhcnRQb2lzdGlvbi55KTtcclxuICAgIGxldCBjdXJ2ZVN0YXJ0WCA9IGl0ZW0uc3RhcnQueCA8IDAgPyB0ZXh0UG9zaXRpb24ueCArIGl0ZW0ud2lkdGggOiB0ZXh0UG9zaXRpb24ueDtcclxuICAgIGxldCB0ZXh0U3RhcnRYID0gaXRlbS5zdGFydC54IDwgMCA/IHRleHRQb3NpdGlvbi54IC0gNSA6IHRleHRQb3NpdGlvbi54ICsgNTtcclxuICAgIGNvbnRleHQucXVhZHJhdGljQ3VydmVUbyhsaW5lRW5kUG9pc3Rpb24ueCwgbGluZUVuZFBvaXN0aW9uLnksIGN1cnZlU3RhcnRYLCB0ZXh0UG9zaXRpb24ueSk7XHJcbiAgICBjb250ZXh0Lm1vdmVUbyhsaW5lU3RhcnRQb2lzdGlvbi54LCBsaW5lU3RhcnRQb2lzdGlvbi55KTtcclxuICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgIGNvbnRleHQubW92ZVRvKHRleHRQb3NpdGlvbi54ICsgaXRlbS53aWR0aCwgdGV4dFBvc2l0aW9uLnkpO1xyXG4gICAgY29udGV4dC5hcmMoY3VydmVTdGFydFgsIHRleHRQb3NpdGlvbi55LCAyICogb3B0cy5waXgsIDAsIDIgKiBNYXRoLlBJKTtcclxuICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICBjb250ZXh0LnNldEZvbnRTaXplKGl0ZW0udGV4dFNpemUgKiBvcHRzLnBpeCB8fCBjb25maWcuZm9udFNpemUpO1xyXG4gICAgY29udGV4dC5zZXRGaWxsU3R5bGUoaXRlbS50ZXh0Q29sb3IgfHwgb3B0cy5mb250Q29sb3IpO1xyXG4gICAgY29udGV4dC5maWxsVGV4dChpdGVtLnRleHQsIHRleHRTdGFydFgsIHRleHRQb3NpdGlvbi55ICsgMyk7XHJcbiAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3VG9vbFRpcFNwbGl0TGluZShvZmZzZXRYLCBvcHRzLCBjb25maWcsIGNvbnRleHQpIHtcclxuICB2YXIgdG9vbFRpcE9wdGlvbiA9IG9wdHMuZXh0cmEudG9vbHRpcCB8fCB7fTtcclxuICB0b29sVGlwT3B0aW9uLmdyaWRUeXBlID0gdG9vbFRpcE9wdGlvbi5ncmlkVHlwZSA9PSB1bmRlZmluZWQgPyAnc29saWQnIDogdG9vbFRpcE9wdGlvbi5ncmlkVHlwZTtcclxuICB0b29sVGlwT3B0aW9uLmRhc2hMZW5ndGggPSB0b29sVGlwT3B0aW9uLmRhc2hMZW5ndGggPT0gdW5kZWZpbmVkID8gNCA6IHRvb2xUaXBPcHRpb24uZGFzaExlbmd0aDtcclxuICB2YXIgc3RhcnRZID0gb3B0cy5hcmVhWzBdO1xyXG4gIHZhciBlbmRZID0gb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl07XHJcbiAgaWYgKHRvb2xUaXBPcHRpb24uZ3JpZFR5cGUgPT0gJ2Rhc2gnKSB7XHJcbiAgICBjb250ZXh0LnNldExpbmVEYXNoKFt0b29sVGlwT3B0aW9uLmRhc2hMZW5ndGgsIHRvb2xUaXBPcHRpb24uZGFzaExlbmd0aF0pO1xyXG4gIH1cclxuICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKHRvb2xUaXBPcHRpb24uZ3JpZENvbG9yIHx8ICcjY2NjY2NjJyk7XHJcbiAgY29udGV4dC5zZXRMaW5lV2lkdGgoMSAqIG9wdHMucGl4KTtcclxuICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gIGNvbnRleHQubW92ZVRvKG9mZnNldFgsIHN0YXJ0WSk7XHJcbiAgY29udGV4dC5saW5lVG8ob2Zmc2V0WCwgZW5kWSk7XHJcbiAgY29udGV4dC5zdHJva2UoKTtcclxuICBjb250ZXh0LnNldExpbmVEYXNoKFtdKTtcclxuICBpZiAodG9vbFRpcE9wdGlvbi54QXhpc0xhYmVsKSB7XHJcbiAgICBsZXQgbGFiZWxUZXh0ID0gb3B0cy5jYXRlZ29yaWVzW29wdHMudG9vbHRpcC5pbmRleF07XHJcbiAgICBjb250ZXh0LnNldEZvbnRTaXplKGNvbmZpZy5mb250U2l6ZSk7XHJcbiAgICBsZXQgdGV4dFdpZHRoID0gbWVhc3VyZVRleHQobGFiZWxUZXh0LCBjb25maWcuZm9udFNpemUsIGNvbnRleHQpO1xyXG4gICAgbGV0IHRleHRYID0gb2Zmc2V0WCAtIDAuNSAqIHRleHRXaWR0aDtcclxuICAgIGxldCB0ZXh0WSA9IGVuZFkgKyAyICogb3B0cy5waXg7XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5zZXRGaWxsU3R5bGUoaGV4VG9SZ2IodG9vbFRpcE9wdGlvbi5sYWJlbEJnQ29sb3IgfHwgY29uZmlnLnRvb2xUaXBCYWNrZ3JvdW5kLCB0b29sVGlwT3B0aW9uLmxhYmVsQmdPcGFjaXR5IHx8IGNvbmZpZy50b29sVGlwT3BhY2l0eSkpO1xyXG4gICAgY29udGV4dC5zZXRTdHJva2VTdHlsZSh0b29sVGlwT3B0aW9uLmxhYmVsQmdDb2xvciB8fCBjb25maWcudG9vbFRpcEJhY2tncm91bmQpO1xyXG4gICAgY29udGV4dC5zZXRMaW5lV2lkdGgoMSAqIG9wdHMucGl4KTtcclxuICAgIGNvbnRleHQucmVjdCh0ZXh0WCAtIGNvbmZpZy50b29sVGlwUGFkZGluZywgdGV4dFksIHRleHRXaWR0aCArIDIgKiBjb25maWcudG9vbFRpcFBhZGRpbmcsIGNvbmZpZy5mb250U2l6ZSArIDIgKiBjb25maWcudG9vbFRpcFBhZGRpbmcpO1xyXG4gICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICBjb250ZXh0LnNldEZvbnRTaXplKGNvbmZpZy5mb250U2l6ZSk7XHJcbiAgICBjb250ZXh0LnNldEZpbGxTdHlsZSh0b29sVGlwT3B0aW9uLmxhYmVsRm9udENvbG9yIHx8IG9wdHMuZm9udENvbG9yKTtcclxuICAgIGNvbnRleHQuZmlsbFRleHQoU3RyaW5nKGxhYmVsVGV4dCksIHRleHRYLCB0ZXh0WSArIGNvbmZpZy50b29sVGlwUGFkZGluZyArIGNvbmZpZy5mb250U2l6ZSk7XHJcbiAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgY29udGV4dC5zdHJva2UoKTtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRyYXdNYXJrTGluZShvcHRzLCBjb25maWcsIGNvbnRleHQpIHtcclxuICBsZXQgbWFya0xpbmVPcHRpb24gPSBhc3NpZ24oe30sIHtcclxuICAgIHR5cGU6ICdzb2xpZCcsXHJcbiAgICBkYXNoTGVuZ3RoOiA0LFxyXG4gICAgZGF0YTogW11cclxuICB9LCBvcHRzLmV4dHJhLm1hcmtMaW5lKTtcclxuICBsZXQgc3RhcnRYID0gb3B0cy5hcmVhWzNdO1xyXG4gIGxldCBlbmRYID0gb3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXTtcclxuICBsZXQgcG9pbnRzID0gY2FsTWFya0xpbmVEYXRhKG1hcmtMaW5lT3B0aW9uLmRhdGEsIG9wdHMpO1xyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgcG9pbnRzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBsZXQgaXRlbSA9IGFzc2lnbih7fSwge1xyXG4gICAgICBsaW5lQ29sb3I6ICcjREU0QTQyJyxcclxuICAgICAgc2hvd0xhYmVsOiBmYWxzZSxcclxuICAgICAgbGFiZWxGb250Q29sb3I6ICcjNjY2NjY2JyxcclxuICAgICAgbGFiZWxCZ0NvbG9yOiAnI0RGRThGRicsXHJcbiAgICAgIGxhYmVsQmdPcGFjaXR5OiAwLjgsXHJcbiAgICAgIGxhYmVsQWxpZ246ICdsZWZ0JyxcclxuICAgICAgbGFiZWxPZmZzZXRYOiAwLFxyXG4gICAgICBsYWJlbE9mZnNldFk6IDAsXHJcbiAgICB9LCBwb2ludHNbaV0pO1xyXG4gICAgaWYgKG1hcmtMaW5lT3B0aW9uLnR5cGUgPT0gJ2Rhc2gnKSB7XHJcbiAgICAgIGNvbnRleHQuc2V0TGluZURhc2goW21hcmtMaW5lT3B0aW9uLmRhc2hMZW5ndGgsIG1hcmtMaW5lT3B0aW9uLmRhc2hMZW5ndGhdKTtcclxuICAgIH1cclxuICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoaXRlbS5saW5lQ29sb3IpO1xyXG4gICAgY29udGV4dC5zZXRMaW5lV2lkdGgoMSAqIG9wdHMucGl4KTtcclxuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICBjb250ZXh0Lm1vdmVUbyhzdGFydFgsIGl0ZW0ueSk7XHJcbiAgICBjb250ZXh0LmxpbmVUbyhlbmRYLCBpdGVtLnkpO1xyXG4gICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgIGNvbnRleHQuc2V0TGluZURhc2goW10pO1xyXG4gICAgaWYgKGl0ZW0uc2hvd0xhYmVsKSB7XHJcbiAgICAgIGxldCBsYWJlbFRleHQgPSBpdGVtLmxhYmVsVGV4dCA/IGl0ZW0ubGFiZWxUZXh0IDogaXRlbS52YWx1ZTtcclxuICAgICAgY29udGV4dC5zZXRGb250U2l6ZShjb25maWcuZm9udFNpemUpO1xyXG4gICAgICBsZXQgdGV4dFdpZHRoID0gbWVhc3VyZVRleHQobGFiZWxUZXh0LCBjb25maWcuZm9udFNpemUsIGNvbnRleHQpO1xyXG4gICAgICBsZXQgYmdXaWR0aCA9IHRleHRXaWR0aCArIGNvbmZpZy50b29sVGlwUGFkZGluZyAqIDI7XHJcbiAgICAgIGxldCBiZ1N0YXJ0WCA9IGl0ZW0ubGFiZWxBbGlnbiA9PSAnbGVmdCcgPyBvcHRzLmFyZWFbM10gLSBiZ1dpZHRoIDogb3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXTtcclxuICAgICAgYmdTdGFydFggKz0gaXRlbS5sYWJlbE9mZnNldFg7XHJcbiAgICAgIGxldCBiZ1N0YXJ0WSA9IGl0ZW0ueSAtIDAuNSAqIGNvbmZpZy5mb250U2l6ZSAtIGNvbmZpZy50b29sVGlwUGFkZGluZztcclxuICAgICAgYmdTdGFydFkgKz0gaXRlbS5sYWJlbE9mZnNldFk7XHJcbiAgICAgIGxldCB0ZXh0WCA9IGJnU3RhcnRYICsgY29uZmlnLnRvb2xUaXBQYWRkaW5nO1xyXG4gICAgICBsZXQgdGV4dFkgPSBpdGVtLnk7XHJcbiAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGhleFRvUmdiKGl0ZW0ubGFiZWxCZ0NvbG9yLCBpdGVtLmxhYmVsQmdPcGFjaXR5KSk7XHJcbiAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoaXRlbS5sYWJlbEJnQ29sb3IpO1xyXG4gICAgICBjb250ZXh0LnNldExpbmVXaWR0aCgxICogb3B0cy5waXgpO1xyXG4gICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LnJlY3QoYmdTdGFydFgsIGJnU3RhcnRZLCBiZ1dpZHRoLCBjb25maWcuZm9udFNpemUgKyAyICogY29uZmlnLnRvb2xUaXBQYWRkaW5nKTtcclxuICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAgIGNvbnRleHQuc2V0Rm9udFNpemUoY29uZmlnLmZvbnRTaXplKTtcclxuICAgICAgY29udGV4dC5zZXRUZXh0QWxpZ24oJ2xlZnQnKTtcclxuICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoaXRlbS5sYWJlbEZvbnRDb2xvcik7XHJcbiAgICAgIGNvbnRleHQuZmlsbFRleHQoU3RyaW5nKGxhYmVsVGV4dCksIHRleHRYLCBiZ1N0YXJ0WSArIGNvbmZpZy5mb250U2l6ZSArIGNvbmZpZy50b29sVGlwUGFkZGluZy8yKTtcclxuICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgY29udGV4dC5zZXRUZXh0QWxpZ24oJ2xlZnQnKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRyYXdUb29sVGlwSG9yaXplbnRhbExpbmUob3B0cywgY29uZmlnLCBjb250ZXh0LCBlYWNoU3BhY2luZywgeEF4aXNQb2ludHMpIHtcclxuICB2YXIgdG9vbFRpcE9wdGlvbiA9IGFzc2lnbih7fSwge1xyXG4gICAgZ3JpZFR5cGU6ICdzb2xpZCcsXHJcbiAgICBkYXNoTGVuZ3RoOiA0XHJcbiAgfSwgb3B0cy5leHRyYS50b29sdGlwKTtcclxuICB2YXIgc3RhcnRYID0gb3B0cy5hcmVhWzNdO1xyXG4gIHZhciBlbmRYID0gb3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXTtcclxuICBpZiAodG9vbFRpcE9wdGlvbi5ncmlkVHlwZSA9PSAnZGFzaCcpIHtcclxuICAgIGNvbnRleHQuc2V0TGluZURhc2goW3Rvb2xUaXBPcHRpb24uZGFzaExlbmd0aCwgdG9vbFRpcE9wdGlvbi5kYXNoTGVuZ3RoXSk7XHJcbiAgfVxyXG4gIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUodG9vbFRpcE9wdGlvbi5ncmlkQ29sb3IgfHwgJyNjY2NjY2MnKTtcclxuICBjb250ZXh0LnNldExpbmVXaWR0aCgxICogb3B0cy5waXgpO1xyXG4gIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgY29udGV4dC5tb3ZlVG8oc3RhcnRYLCBvcHRzLnRvb2x0aXAub2Zmc2V0LnkpO1xyXG4gIGNvbnRleHQubGluZVRvKGVuZFgsIG9wdHMudG9vbHRpcC5vZmZzZXQueSk7XHJcbiAgY29udGV4dC5zdHJva2UoKTtcclxuICBjb250ZXh0LnNldExpbmVEYXNoKFtdKTtcclxuICBpZiAodG9vbFRpcE9wdGlvbi55QXhpc0xhYmVsKSB7XHJcbiAgICBsZXQgbGFiZWxUZXh0ID0gY2FsVG9vbHRpcFlBeGlzRGF0YShvcHRzLnRvb2x0aXAub2Zmc2V0LnksIG9wdHMuc2VyaWVzLCBvcHRzLCBjb25maWcsIGVhY2hTcGFjaW5nKTtcclxuICAgIGxldCB3aWR0aEFyciA9IG9wdHMuY2hhcnREYXRhLnlBeGlzRGF0YS55QXhpc1dpZHRoO1xyXG4gICAgbGV0IHRTdGFydExlZnQgPSBvcHRzLmFyZWFbM107XHJcbiAgICBsZXQgdFN0YXJ0UmlnaHQgPSBvcHRzLndpZHRoIC0gb3B0cy5hcmVhWzFdO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsYWJlbFRleHQubGVuZ3RoOyBpKyspIHtcclxuICAgICAgY29udGV4dC5zZXRGb250U2l6ZShjb25maWcuZm9udFNpemUpO1xyXG4gICAgICBsZXQgdGV4dFdpZHRoID0gbWVhc3VyZVRleHQobGFiZWxUZXh0W2ldLCBjb25maWcuZm9udFNpemUsIGNvbnRleHQpO1xyXG4gICAgICBsZXQgYmdTdGFydFgsIGJnRW5kWCwgYmdXaWR0aDtcclxuICAgICAgaWYgKHdpZHRoQXJyW2ldLnBvc2l0aW9uID09ICdsZWZ0Jykge1xyXG4gICAgICAgIGJnU3RhcnRYID0gdFN0YXJ0TGVmdCAtICh0ZXh0V2lkdGggKyBjb25maWcudG9vbFRpcFBhZGRpbmcgKiAyKSAtIDIgKiBvcHRzLnBpeDtcclxuICAgICAgICBiZ0VuZFggPSBNYXRoLm1heChiZ1N0YXJ0WCwgYmdTdGFydFggKyB0ZXh0V2lkdGggKyBjb25maWcudG9vbFRpcFBhZGRpbmcgKiAyKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBiZ1N0YXJ0WCA9IHRTdGFydFJpZ2h0ICsgMiAqIG9wdHMucGl4O1xyXG4gICAgICAgIGJnRW5kWCA9IE1hdGgubWF4KGJnU3RhcnRYICsgd2lkdGhBcnJbaV0ud2lkdGgsIGJnU3RhcnRYICsgdGV4dFdpZHRoICsgY29uZmlnLnRvb2xUaXBQYWRkaW5nICogMik7XHJcbiAgICAgIH1cclxuICAgICAgYmdXaWR0aCA9IGJnRW5kWCAtIGJnU3RhcnRYO1xyXG4gICAgICBsZXQgdGV4dFggPSBiZ1N0YXJ0WCArIChiZ1dpZHRoIC0gdGV4dFdpZHRoKSAvIDI7XHJcbiAgICAgIGxldCB0ZXh0WSA9IG9wdHMudG9vbHRpcC5vZmZzZXQueTtcclxuICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoaGV4VG9SZ2IodG9vbFRpcE9wdGlvbi5sYWJlbEJnQ29sb3IgfHwgY29uZmlnLnRvb2xUaXBCYWNrZ3JvdW5kLCB0b29sVGlwT3B0aW9uLmxhYmVsQmdPcGFjaXR5IHx8IGNvbmZpZy50b29sVGlwT3BhY2l0eSkpO1xyXG4gICAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKHRvb2xUaXBPcHRpb24ubGFiZWxCZ0NvbG9yIHx8IGNvbmZpZy50b29sVGlwQmFja2dyb3VuZCk7XHJcbiAgICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKDEgKiBvcHRzLnBpeCk7XHJcbiAgICAgIGNvbnRleHQucmVjdChiZ1N0YXJ0WCwgdGV4dFkgLSAwLjUgKiBjb25maWcuZm9udFNpemUgLSBjb25maWcudG9vbFRpcFBhZGRpbmcsIGJnV2lkdGgsIGNvbmZpZy5mb250U2l6ZSArIDIgKiBjb25maWcudG9vbFRpcFBhZGRpbmcpO1xyXG4gICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgY29udGV4dC5zZXRGb250U2l6ZShjb25maWcuZm9udFNpemUpO1xyXG4gICAgICBjb250ZXh0LnNldEZpbGxTdHlsZSh0b29sVGlwT3B0aW9uLmxhYmVsRm9udENvbG9yIHx8IG9wdHMuZm9udENvbG9yKTtcclxuICAgICAgY29udGV4dC5maWxsVGV4dChsYWJlbFRleHRbaV0sIHRleHRYLCB0ZXh0WSArIDAuNSAqIGNvbmZpZy5mb250U2l6ZSk7XHJcbiAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgIGlmICh3aWR0aEFycltpXS5wb3NpdGlvbiA9PSAnbGVmdCcpIHtcclxuICAgICAgICB0U3RhcnRMZWZ0IC09ICh3aWR0aEFycltpXS53aWR0aCArIG9wdHMueUF4aXMucGFkZGluZyAqIG9wdHMucGl4KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0U3RhcnRSaWdodCArPSB3aWR0aEFycltpXS53aWR0aCArIG9wdHMueUF4aXMucGFkZGluZyAqIG9wdHMucGl4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3VG9vbFRpcFNwbGl0QXJlYShvZmZzZXRYLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIGVhY2hTcGFjaW5nKSB7XHJcbiAgdmFyIHRvb2xUaXBPcHRpb24gPSBhc3NpZ24oe30sIHtcclxuICAgIGFjdGl2ZUJnQ29sb3I6ICcjMDAwMDAwJyxcclxuICAgIGFjdGl2ZUJnT3BhY2l0eTogMC4wOCxcclxuICAgIGFjdGl2ZVdpZHRoOiBlYWNoU3BhY2luZ1xyXG4gIH0sIG9wdHMuZXh0cmEuY29sdW1uKTtcclxuICB0b29sVGlwT3B0aW9uLmFjdGl2ZVdpZHRoID0gdG9vbFRpcE9wdGlvbi5hY3RpdmVXaWR0aCA+IGVhY2hTcGFjaW5nID8gZWFjaFNwYWNpbmcgOiB0b29sVGlwT3B0aW9uLmFjdGl2ZVdpZHRoO1xyXG4gIHZhciBzdGFydFkgPSBvcHRzLmFyZWFbMF07XHJcbiAgdmFyIGVuZFkgPSBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXTtcclxuICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gIGNvbnRleHQuc2V0RmlsbFN0eWxlKGhleFRvUmdiKHRvb2xUaXBPcHRpb24uYWN0aXZlQmdDb2xvciwgdG9vbFRpcE9wdGlvbi5hY3RpdmVCZ09wYWNpdHkpKTtcclxuICBjb250ZXh0LnJlY3Qob2Zmc2V0WCAtIHRvb2xUaXBPcHRpb24uYWN0aXZlV2lkdGggLyAyLCBzdGFydFksIHRvb2xUaXBPcHRpb24uYWN0aXZlV2lkdGgsIGVuZFkgLSBzdGFydFkpO1xyXG4gIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgY29udGV4dC5maWxsKCk7XHJcbiAgY29udGV4dC5zZXRGaWxsU3R5bGUoXCIjRkZGRkZGXCIpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3QmFyVG9vbFRpcFNwbGl0QXJlYShvZmZzZXRYLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIGVhY2hTcGFjaW5nKSB7XHJcbiAgdmFyIHRvb2xUaXBPcHRpb24gPSBhc3NpZ24oe30sIHtcclxuICAgIGFjdGl2ZUJnQ29sb3I6ICcjMDAwMDAwJyxcclxuICAgIGFjdGl2ZUJnT3BhY2l0eTogMC4wOFxyXG4gIH0sIG9wdHMuZXh0cmEuYmFyKTtcclxuICB2YXIgc3RhcnRYID0gb3B0cy5hcmVhWzNdO1xyXG4gIHZhciBlbmRYID0gb3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXTtcclxuICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gIGNvbnRleHQuc2V0RmlsbFN0eWxlKGhleFRvUmdiKHRvb2xUaXBPcHRpb24uYWN0aXZlQmdDb2xvciwgdG9vbFRpcE9wdGlvbi5hY3RpdmVCZ09wYWNpdHkpKTtcclxuICBjb250ZXh0LnJlY3QoIHN0YXJ0WCAsb2Zmc2V0WCAtIGVhY2hTcGFjaW5nIC8gMiAsICBlbmRYIC0gc3RhcnRYLGVhY2hTcGFjaW5nKTtcclxuICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gIGNvbnRleHQuZmlsbCgpO1xyXG4gIGNvbnRleHQuc2V0RmlsbFN0eWxlKFwiI0ZGRkZGRlwiKTtcclxufVxyXG5cclxuXHJcbmZ1bmN0aW9uIGRyYXdUb29sVGlwKHRleHRMaXN0LCBvZmZzZXQsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgZWFjaFNwYWNpbmcsIHhBeGlzUG9pbnRzKSB7XHJcbiAgdmFyIHRvb2xUaXBPcHRpb24gPSBhc3NpZ24oe30sIHtcclxuICAgIHNob3dCb3g6IHRydWUsXHJcbiAgICBzaG93QXJyb3c6IHRydWUsXHJcbiAgICBzaG93Q2F0ZWdvcnk6IGZhbHNlLFxyXG4gICAgYmdDb2xvcjogJyMwMDAwMDAnLFxyXG4gICAgYmdPcGFjaXR5OiAwLjcsXHJcbiAgICBib3JkZXJDb2xvcjogJyMwMDAwMDAnLFxyXG4gICAgYm9yZGVyV2lkdGg6IDAsXHJcbiAgICBib3JkZXJSYWRpdXM6IDAsXHJcbiAgICBib3JkZXJPcGFjaXR5OiAwLjcsXHJcbiAgICBmb250Q29sb3I6ICcjRkZGRkZGJyxcclxuICAgIHNwbGl0TGluZTogdHJ1ZSxcclxuICB9LCBvcHRzLmV4dHJhLnRvb2x0aXApO1xyXG4gIGlmKHRvb2xUaXBPcHRpb24uc2hvd0NhdGVnb3J5PT10cnVlICYmIG9wdHMuY2F0ZWdvcmllcyl7XHJcbiAgICB0ZXh0TGlzdC51bnNoaWZ0KHt0ZXh0Om9wdHMuY2F0ZWdvcmllc1tvcHRzLnRvb2x0aXAuaW5kZXhdLGNvbG9yOm51bGx9KVxyXG4gIH1cclxuICB2YXIgbGVnZW5kV2lkdGggPSA0ICogb3B0cy5waXg7XHJcbiAgdmFyIGxlZ2VuZE1hcmdpblJpZ2h0ID0gNSAqIG9wdHMucGl4O1xyXG4gIHZhciBhcnJvd1dpZHRoID0gdG9vbFRpcE9wdGlvbi5zaG93QXJyb3cgPyA4ICogb3B0cy5waXggOiAwO1xyXG4gIHZhciBpc092ZXJSaWdodEJvcmRlciA9IGZhbHNlO1xyXG4gIGlmIChvcHRzLnR5cGUgPT0gJ2xpbmUnIHx8IG9wdHMudHlwZSA9PSAnbW91bnQnIHx8IG9wdHMudHlwZSA9PSAnYXJlYScgfHwgb3B0cy50eXBlID09ICdjYW5kbGUnIHx8IG9wdHMudHlwZSA9PSAnbWl4Jykge1xyXG4gICAgaWYgKHRvb2xUaXBPcHRpb24uc3BsaXRMaW5lID09IHRydWUpIHtcclxuICAgICAgZHJhd1Rvb2xUaXBTcGxpdExpbmUob3B0cy50b29sdGlwLm9mZnNldC54LCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgfVxyXG4gIH1cclxuICBvZmZzZXQgPSBhc3NpZ24oe1xyXG4gICAgeDogMCxcclxuICAgIHk6IDBcclxuICB9LCBvZmZzZXQpO1xyXG4gIG9mZnNldC55IC09IDggKiBvcHRzLnBpeDtcclxuICB2YXIgdGV4dFdpZHRoID0gdGV4dExpc3QubWFwKGZ1bmN0aW9uKGl0ZW0pIHtcclxuICAgIHJldHVybiBtZWFzdXJlVGV4dChpdGVtLnRleHQsIGNvbmZpZy5mb250U2l6ZSwgY29udGV4dCk7XHJcbiAgfSk7XHJcbiAgdmFyIHRvb2xUaXBXaWR0aCA9IGxlZ2VuZFdpZHRoICsgbGVnZW5kTWFyZ2luUmlnaHQgKyA0ICogY29uZmlnLnRvb2xUaXBQYWRkaW5nICsgTWF0aC5tYXguYXBwbHkobnVsbCwgdGV4dFdpZHRoKTtcclxuICB2YXIgdG9vbFRpcEhlaWdodCA9IDIgKiBjb25maWcudG9vbFRpcFBhZGRpbmcgKyB0ZXh0TGlzdC5sZW5ndGggKiBjb25maWcudG9vbFRpcExpbmVIZWlnaHQ7XHJcbiAgaWYgKHRvb2xUaXBPcHRpb24uc2hvd0JveCA9PSBmYWxzZSkge1xyXG4gICAgcmV0dXJuXHJcbiAgfVxyXG4gIC8vIGlmIGJleW9uZCB0aGUgcmlnaHQgYm9yZGVyXHJcbiAgaWYgKG9mZnNldC54IC0gTWF0aC5hYnMob3B0cy5fc2Nyb2xsRGlzdGFuY2VfIHx8IDApICsgYXJyb3dXaWR0aCArIHRvb2xUaXBXaWR0aCA+IG9wdHMud2lkdGgpIHtcclxuICAgIGlzT3ZlclJpZ2h0Qm9yZGVyID0gdHJ1ZTtcclxuICB9XHJcbiAgaWYgKHRvb2xUaXBIZWlnaHQgKyBvZmZzZXQueSA+IG9wdHMuaGVpZ2h0KSB7XHJcbiAgICBvZmZzZXQueSA9IG9wdHMuaGVpZ2h0IC0gdG9vbFRpcEhlaWdodDtcclxuICB9XHJcbiAgLy8gZHJhdyBiYWNrZ3JvdW5kIHJlY3RcclxuICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gIGNvbnRleHQuc2V0RmlsbFN0eWxlKGhleFRvUmdiKHRvb2xUaXBPcHRpb24uYmdDb2xvciB8fCBjb25maWcudG9vbFRpcEJhY2tncm91bmQsIHRvb2xUaXBPcHRpb24uYmdPcGFjaXR5IHx8IGNvbmZpZy50b29sVGlwT3BhY2l0eSkpO1xyXG4gIGNvbnRleHQuc2V0TGluZVdpZHRoKHRvb2xUaXBPcHRpb24uYm9yZGVyV2lkdGggKiBvcHRzLnBpeCk7XHJcbiAgY29udGV4dC5zZXRTdHJva2VTdHlsZShoZXhUb1JnYih0b29sVGlwT3B0aW9uLmJvcmRlckNvbG9yLCB0b29sVGlwT3B0aW9uLmJvcmRlck9wYWNpdHkpKTtcclxuICB2YXIgcmFkaXVzID0gdG9vbFRpcE9wdGlvbi5ib3JkZXJSYWRpdXM7XHJcbiAgaWYgKGlzT3ZlclJpZ2h0Qm9yZGVyKSB7XHJcbiAgICAvLyDlop7liqDlt6bkvqfku43nhLbotoXlh7rnmoTliKTmlq1cclxuICAgIGlmKHRvb2xUaXBXaWR0aCArIGFycm93V2lkdGggPiBvcHRzLndpZHRoKXtcclxuICAgICAgb2Zmc2V0LnggPSBvcHRzLndpZHRoICsgTWF0aC5hYnMob3B0cy5fc2Nyb2xsRGlzdGFuY2VfIHx8IDApICsgYXJyb3dXaWR0aCArICh0b29sVGlwV2lkdGggLSBvcHRzLndpZHRoKVxyXG4gICAgfVxyXG4gICAgaWYgKHRvb2xUaXBPcHRpb24uc2hvd0Fycm93KSB7XHJcbiAgICAgIGNvbnRleHQubW92ZVRvKG9mZnNldC54LCBvZmZzZXQueSArIDEwICogb3B0cy5waXgpO1xyXG4gICAgICBjb250ZXh0LmxpbmVUbyhvZmZzZXQueCAtIGFycm93V2lkdGgsIG9mZnNldC55ICsgMTAgKiBvcHRzLnBpeCArIDUgKiBvcHRzLnBpeCk7XHJcbiAgICB9XHJcbiAgICBjb250ZXh0LmFyYyhvZmZzZXQueCAtIGFycm93V2lkdGggLSByYWRpdXMsIG9mZnNldC55ICsgdG9vbFRpcEhlaWdodCAtIHJhZGl1cywgcmFkaXVzLCAwLCBNYXRoLlBJIC8gMiwgZmFsc2UpO1xyXG4gICAgY29udGV4dC5hcmMob2Zmc2V0LnggLSBhcnJvd1dpZHRoIC0gTWF0aC5yb3VuZCh0b29sVGlwV2lkdGgpICsgcmFkaXVzLCBvZmZzZXQueSArIHRvb2xUaXBIZWlnaHQgLSByYWRpdXMsIHJhZGl1cyxcclxuICAgICAgTWF0aC5QSSAvIDIsIE1hdGguUEksIGZhbHNlKTtcclxuICAgIGNvbnRleHQuYXJjKG9mZnNldC54IC0gYXJyb3dXaWR0aCAtIE1hdGgucm91bmQodG9vbFRpcFdpZHRoKSArIHJhZGl1cywgb2Zmc2V0LnkgKyByYWRpdXMsIHJhZGl1cywgLU1hdGguUEksIC1NYXRoLlBJIC8gMiwgZmFsc2UpO1xyXG4gICAgY29udGV4dC5hcmMob2Zmc2V0LnggLSBhcnJvd1dpZHRoIC0gcmFkaXVzLCBvZmZzZXQueSArIHJhZGl1cywgcmFkaXVzLCAtTWF0aC5QSSAvIDIsIDAsIGZhbHNlKTtcclxuICAgIGlmICh0b29sVGlwT3B0aW9uLnNob3dBcnJvdykge1xyXG4gICAgICBjb250ZXh0LmxpbmVUbyhvZmZzZXQueCAtIGFycm93V2lkdGgsIG9mZnNldC55ICsgMTAgKiBvcHRzLnBpeCAtIDUgKiBvcHRzLnBpeCk7XHJcbiAgICAgIGNvbnRleHQubGluZVRvKG9mZnNldC54LCBvZmZzZXQueSArIDEwICogb3B0cy5waXgpO1xyXG4gICAgfVxyXG4gIH0gZWxzZSB7XHJcbiAgICBpZiAodG9vbFRpcE9wdGlvbi5zaG93QXJyb3cpIHtcclxuICAgICAgY29udGV4dC5tb3ZlVG8ob2Zmc2V0LngsIG9mZnNldC55ICsgMTAgKiBvcHRzLnBpeCk7XHJcbiAgICAgIGNvbnRleHQubGluZVRvKG9mZnNldC54ICsgYXJyb3dXaWR0aCwgb2Zmc2V0LnkgKyAxMCAqIG9wdHMucGl4IC0gNSAqIG9wdHMucGl4KTtcclxuICAgIH1cclxuICAgIGNvbnRleHQuYXJjKG9mZnNldC54ICsgYXJyb3dXaWR0aCArIHJhZGl1cywgb2Zmc2V0LnkgKyByYWRpdXMsIHJhZGl1cywgLU1hdGguUEksIC1NYXRoLlBJIC8gMiwgZmFsc2UpO1xyXG4gICAgY29udGV4dC5hcmMob2Zmc2V0LnggKyBhcnJvd1dpZHRoICsgTWF0aC5yb3VuZCh0b29sVGlwV2lkdGgpIC0gcmFkaXVzLCBvZmZzZXQueSArIHJhZGl1cywgcmFkaXVzLCAtTWF0aC5QSSAvIDIsIDAsXHJcbiAgICAgIGZhbHNlKTtcclxuICAgIGNvbnRleHQuYXJjKG9mZnNldC54ICsgYXJyb3dXaWR0aCArIE1hdGgucm91bmQodG9vbFRpcFdpZHRoKSAtIHJhZGl1cywgb2Zmc2V0LnkgKyB0b29sVGlwSGVpZ2h0IC0gcmFkaXVzLCByYWRpdXMsIDAsXHJcbiAgICAgIE1hdGguUEkgLyAyLCBmYWxzZSk7XHJcbiAgICBjb250ZXh0LmFyYyhvZmZzZXQueCArIGFycm93V2lkdGggKyByYWRpdXMsIG9mZnNldC55ICsgdG9vbFRpcEhlaWdodCAtIHJhZGl1cywgcmFkaXVzLCBNYXRoLlBJIC8gMiwgTWF0aC5QSSwgZmFsc2UpO1xyXG4gICAgaWYgKHRvb2xUaXBPcHRpb24uc2hvd0Fycm93KSB7XHJcbiAgICAgIGNvbnRleHQubGluZVRvKG9mZnNldC54ICsgYXJyb3dXaWR0aCwgb2Zmc2V0LnkgKyAxMCAqIG9wdHMucGl4ICsgNSAqIG9wdHMucGl4KTtcclxuICAgICAgY29udGV4dC5saW5lVG8ob2Zmc2V0LngsIG9mZnNldC55ICsgMTAgKiBvcHRzLnBpeCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgY29udGV4dC5maWxsKCk7XHJcbiAgaWYgKHRvb2xUaXBPcHRpb24uYm9yZGVyV2lkdGggPiAwKSB7XHJcbiAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gIH1cclxuICAvLyBkcmF3IGxlZ2VuZFxyXG4gIHRleHRMaXN0LmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgIGlmIChpdGVtLmNvbG9yICE9PSBudWxsKSB7XHJcbiAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGl0ZW0uY29sb3IpO1xyXG4gICAgICB2YXIgc3RhcnRYID0gb2Zmc2V0LnggKyBhcnJvd1dpZHRoICsgMiAqIGNvbmZpZy50b29sVGlwUGFkZGluZztcclxuICAgICAgdmFyIHN0YXJ0WSA9IG9mZnNldC55ICsgKGNvbmZpZy50b29sVGlwTGluZUhlaWdodCAtIGNvbmZpZy5mb250U2l6ZSkgLyAyICsgY29uZmlnLnRvb2xUaXBMaW5lSGVpZ2h0ICogaW5kZXggKyBjb25maWcudG9vbFRpcFBhZGRpbmcgKyAxO1xyXG4gICAgICBpZiAoaXNPdmVyUmlnaHRCb3JkZXIpIHtcclxuICAgICAgICBzdGFydFggPSBvZmZzZXQueCAtIHRvb2xUaXBXaWR0aCAtIGFycm93V2lkdGggKyAyICogY29uZmlnLnRvb2xUaXBQYWRkaW5nO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnRleHQuZmlsbFJlY3Qoc3RhcnRYLCBzdGFydFksIGxlZ2VuZFdpZHRoLCBjb25maWcuZm9udFNpemUpO1xyXG4gICAgICAvLyDlnIblvaLlm77kvovor7fms6jph4rkuIrooYzvvIzlubbmiorkuIvooYzlj5bmtojms6jph4pcclxuICAgICAgLy8gY29udGV4dC5hcmMoc3RhcnRYICsgbGVnZW5kV2lkdGggLyAyICwgc3RhcnRZICsgb3B0cy5mb250U2l6ZSAvIDIsIDQgKiBvcHRzLnBpeCwgMCwgMiAqIE1hdGguUEkpO1xyXG4gICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgIH1cclxuICB9KTtcclxuICAvLyBkcmF3IHRleHQgbGlzdFxyXG4gIHRleHRMaXN0LmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgIHZhciBzdGFydFggPSBvZmZzZXQueCArIGFycm93V2lkdGggKyAyICogY29uZmlnLnRvb2xUaXBQYWRkaW5nICsgbGVnZW5kV2lkdGggKyBsZWdlbmRNYXJnaW5SaWdodDtcclxuICAgIGlmIChpc092ZXJSaWdodEJvcmRlcikge1xyXG4gICAgICBzdGFydFggPSBvZmZzZXQueCAtIHRvb2xUaXBXaWR0aCAtIGFycm93V2lkdGggKyAyICogY29uZmlnLnRvb2xUaXBQYWRkaW5nICsgK2xlZ2VuZFdpZHRoICsgbGVnZW5kTWFyZ2luUmlnaHQ7XHJcbiAgICB9XHJcbiAgICB2YXIgc3RhcnRZID0gb2Zmc2V0LnkgKyAoY29uZmlnLnRvb2xUaXBMaW5lSGVpZ2h0IC0gY29uZmlnLmZvbnRTaXplKSAvIDIgKyBjb25maWcudG9vbFRpcExpbmVIZWlnaHQgKiBpbmRleCArIGNvbmZpZy50b29sVGlwUGFkZGluZztcclxuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICBjb250ZXh0LnNldEZvbnRTaXplKGNvbmZpZy5mb250U2l6ZSk7XHJcbiAgICBjb250ZXh0LnNldEZpbGxTdHlsZSh0b29sVGlwT3B0aW9uLmZvbnRDb2xvcik7XHJcbiAgICBjb250ZXh0LmZpbGxUZXh0KGl0ZW0udGV4dCwgc3RhcnRYLCBzdGFydFkgKyBjb25maWcuZm9udFNpemUpO1xyXG4gICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgfSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRyYXdDb2x1bW5EYXRhUG9pbnRzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KSB7XHJcbiAgbGV0IHByb2Nlc3MgPSBhcmd1bWVudHMubGVuZ3RoID4gNCAmJiBhcmd1bWVudHNbNF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s0XSA6IDE7XHJcbiAgbGV0IHhBeGlzRGF0YSA9IG9wdHMuY2hhcnREYXRhLnhBeGlzRGF0YSxcclxuICAgIHhBeGlzUG9pbnRzID0geEF4aXNEYXRhLnhBeGlzUG9pbnRzLFxyXG4gICAgZWFjaFNwYWNpbmcgPSB4QXhpc0RhdGEuZWFjaFNwYWNpbmc7XHJcbiAgbGV0IGNvbHVtbk9wdGlvbiA9IGFzc2lnbih7fSwge1xyXG4gICAgdHlwZTogJ2dyb3VwJyxcclxuICAgIHdpZHRoOiBlYWNoU3BhY2luZyAvIDIsXHJcbiAgICBtZXRlckJvcmRlcjogNCxcclxuICAgIG1ldGVyRmlsbENvbG9yOiAnI0ZGRkZGRicsXHJcbiAgICBiYXJCb3JkZXJDaXJjbGU6IGZhbHNlLFxyXG4gICAgYmFyQm9yZGVyUmFkaXVzOiBbXSxcclxuICAgIHNlcmllc0dhcDogMixcclxuICAgIGxpbmVhclR5cGU6ICdub25lJyxcclxuICAgIGxpbmVhck9wYWNpdHk6IDEsXHJcbiAgICBjdXN0b21Db2xvcjogW10sXHJcbiAgICBjb2xvclN0b3A6IDAsXHJcbiAgfSwgb3B0cy5leHRyYS5jb2x1bW4pO1xyXG4gIGxldCBjYWxQb2ludHMgPSBbXTtcclxuICBjb250ZXh0LnNhdmUoKTtcclxuICBsZXQgbGVmdE51bSA9IC0yO1xyXG4gIGxldCByaWdodE51bSA9IHhBeGlzUG9pbnRzLmxlbmd0aCArIDI7XHJcbiAgaWYgKG9wdHMuX3Njcm9sbERpc3RhbmNlXyAmJiBvcHRzLl9zY3JvbGxEaXN0YW5jZV8gIT09IDAgJiYgb3B0cy5lbmFibGVTY3JvbGwgPT09IHRydWUpIHtcclxuICAgIGNvbnRleHQudHJhbnNsYXRlKG9wdHMuX3Njcm9sbERpc3RhbmNlXywgMCk7XHJcbiAgICBsZWZ0TnVtID0gTWF0aC5mbG9vcigtb3B0cy5fc2Nyb2xsRGlzdGFuY2VfIC8gZWFjaFNwYWNpbmcpIC0gMjtcclxuICAgIHJpZ2h0TnVtID0gbGVmdE51bSArIG9wdHMueEF4aXMuaXRlbUNvdW50ICsgNDtcclxuICB9XHJcbiAgaWYgKG9wdHMudG9vbHRpcCAmJiBvcHRzLnRvb2x0aXAudGV4dExpc3QgJiYgb3B0cy50b29sdGlwLnRleHRMaXN0Lmxlbmd0aCAmJiBwcm9jZXNzID09PSAxKSB7XHJcbiAgICBkcmF3VG9vbFRpcFNwbGl0QXJlYShvcHRzLnRvb2x0aXAub2Zmc2V0LngsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgZWFjaFNwYWNpbmcpO1xyXG4gIH1cclxuICBjb2x1bW5PcHRpb24uY3VzdG9tQ29sb3IgPSBmaWxsQ3VzdG9tQ29sb3IoY29sdW1uT3B0aW9uLmxpbmVhclR5cGUsIGNvbHVtbk9wdGlvbi5jdXN0b21Db2xvciwgc2VyaWVzLCBjb25maWcpO1xyXG4gIHNlcmllcy5mb3JFYWNoKGZ1bmN0aW9uKGVhY2hTZXJpZXMsIHNlcmllc0luZGV4KSB7XHJcbiAgICBsZXQgcmFuZ2VzLCBtaW5SYW5nZSwgbWF4UmFuZ2U7XHJcbiAgICByYW5nZXMgPSBbXS5jb25jYXQob3B0cy5jaGFydERhdGEueUF4aXNEYXRhLnJhbmdlc1tlYWNoU2VyaWVzLmluZGV4XSk7XHJcbiAgICBtaW5SYW5nZSA9IHJhbmdlcy5wb3AoKTtcclxuICAgIG1heFJhbmdlID0gcmFuZ2VzLnNoaWZ0KCk7XHJcbiAgICB2YXIgZGF0YSA9IGVhY2hTZXJpZXMuZGF0YTtcclxuICAgIHN3aXRjaCAoY29sdW1uT3B0aW9uLnR5cGUpIHtcclxuICAgICAgY2FzZSAnZ3JvdXAnOlxyXG4gICAgICAgIHZhciBwb2ludHMgPSBnZXREYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeEF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHByb2Nlc3MpO1xyXG4gICAgICAgIHZhciB0b29sdGlwUG9pbnRzID0gZ2V0U3RhY2tEYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeEF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHNlcmllc0luZGV4LCBzZXJpZXMsIHByb2Nlc3MpO1xyXG4gICAgICAgIGNhbFBvaW50cy5wdXNoKHRvb2x0aXBQb2ludHMpO1xyXG4gICAgICAgIHBvaW50cyA9IGZpeENvbHVtZURhdGEocG9pbnRzLCBlYWNoU3BhY2luZywgc2VyaWVzLmxlbmd0aCwgc2VyaWVzSW5kZXgsIGNvbmZpZywgb3B0cyk7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwb2ludHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgIGxldCBpdGVtID0gcG9pbnRzW2ldO1xyXG4gICAgICAgICAgLy9maXggaXNzdWVzL0kyN0IxTiB5eW9pbmdlICYgSm9lc2h1XHJcbiAgICAgICAgICBpZiAoaXRlbSAhPT0gbnVsbCAmJiBpID4gbGVmdE51bSAmJiBpIDwgcmlnaHROdW0pIHtcclxuICAgICAgICAgICAgdmFyIHN0YXJ0WCA9IGl0ZW0ueCAtIGl0ZW0ud2lkdGggLyAyO1xyXG4gICAgICAgICAgICB2YXIgaGVpZ2h0ID0gb3B0cy5oZWlnaHQgLSBpdGVtLnkgLSBvcHRzLmFyZWFbMl07XHJcbiAgICAgICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgICAgIHZhciBmaWxsQ29sb3IgPSBpdGVtLmNvbG9yIHx8IGVhY2hTZXJpZXMuY29sb3JcclxuICAgICAgICAgICAgdmFyIHN0cm9rZUNvbG9yID0gaXRlbS5jb2xvciB8fCBlYWNoU2VyaWVzLmNvbG9yXHJcbiAgICAgICAgICAgIGlmIChjb2x1bW5PcHRpb24ubGluZWFyVHlwZSAhPT0gJ25vbmUnKSB7XHJcbiAgICAgICAgICAgICAgdmFyIGdyZCA9IGNvbnRleHQuY3JlYXRlTGluZWFyR3JhZGllbnQoc3RhcnRYLCBpdGVtLnksIHN0YXJ0WCwgb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0pO1xyXG4gICAgICAgICAgICAgIC8v6YCP5piO5riQ5Y+YXHJcbiAgICAgICAgICAgICAgaWYgKGNvbHVtbk9wdGlvbi5saW5lYXJUeXBlID09ICdvcGFjaXR5Jykge1xyXG4gICAgICAgICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgwLCBoZXhUb1JnYihmaWxsQ29sb3IsIGNvbHVtbk9wdGlvbi5saW5lYXJPcGFjaXR5KSk7XHJcbiAgICAgICAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDEsIGhleFRvUmdiKGZpbGxDb2xvciwgMSkpO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDAsIGhleFRvUmdiKGNvbHVtbk9wdGlvbi5jdXN0b21Db2xvcltlYWNoU2VyaWVzLmxpbmVhckluZGV4XSwgY29sdW1uT3B0aW9uLmxpbmVhck9wYWNpdHkpKTtcclxuICAgICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoY29sdW1uT3B0aW9uLmNvbG9yU3RvcCwgaGV4VG9SZ2IoY29sdW1uT3B0aW9uLmN1c3RvbUNvbG9yW2VhY2hTZXJpZXMubGluZWFySW5kZXhdLGNvbHVtbk9wdGlvbi5saW5lYXJPcGFjaXR5KSk7XHJcbiAgICAgICAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDEsIGhleFRvUmdiKGZpbGxDb2xvciwgMSkpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBmaWxsQ29sb3IgPSBncmRcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyDlnIbop5LovrnmoYZcclxuICAgICAgICAgICAgaWYgKChjb2x1bW5PcHRpb24uYmFyQm9yZGVyUmFkaXVzICYmIGNvbHVtbk9wdGlvbi5iYXJCb3JkZXJSYWRpdXMubGVuZ3RoID09PSA0KSB8fCBjb2x1bW5PcHRpb24uYmFyQm9yZGVyQ2lyY2xlID09PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgY29uc3QgbGVmdCA9IHN0YXJ0WDtcclxuICAgICAgICAgICAgICBjb25zdCB0b3AgPSBpdGVtLnk7XHJcbiAgICAgICAgICAgICAgY29uc3Qgd2lkdGggPSBpdGVtLndpZHRoO1xyXG4gICAgICAgICAgICAgIGNvbnN0IGhlaWdodCA9IG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdIC0gaXRlbS55O1xyXG4gICAgICAgICAgICAgIGlmIChjb2x1bW5PcHRpb24uYmFyQm9yZGVyQ2lyY2xlKSB7XHJcbiAgICAgICAgICAgICAgICBjb2x1bW5PcHRpb24uYmFyQm9yZGVyUmFkaXVzID0gW3dpZHRoIC8gMiwgd2lkdGggLyAyLCAwLCAwXTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgbGV0IFtyMCwgcjEsIHIyLCByM10gPSBjb2x1bW5PcHRpb24uYmFyQm9yZGVyUmFkaXVzO1xyXG4gICAgICAgICAgICAgIGxldCBtaW5SYWRpdXMgPSBNYXRoLm1pbih3aWR0aC8yLGhlaWdodC8yKTtcclxuICAgICAgICAgICAgICByMCA9IHIwID4gbWluUmFkaXVzID8gbWluUmFkaXVzIDogcjA7XHJcbiAgICAgICAgICAgICAgcjEgPSByMSA+IG1pblJhZGl1cyA/IG1pblJhZGl1cyA6IHIxO1xyXG4gICAgICAgICAgICAgIHIyID0gcjIgPiBtaW5SYWRpdXMgPyBtaW5SYWRpdXMgOiByMjtcclxuICAgICAgICAgICAgICByMyA9IHIzID4gbWluUmFkaXVzID8gbWluUmFkaXVzIDogcjM7XHJcbiAgICAgICAgICAgICAgcjAgPSByMCA8IDAgPyAwIDogcjA7XHJcbiAgICAgICAgICAgICAgcjEgPSByMSA8IDAgPyAwIDogcjE7XHJcbiAgICAgICAgICAgICAgcjIgPSByMiA8IDAgPyAwIDogcjI7XHJcbiAgICAgICAgICAgICAgcjMgPSByMyA8IDAgPyAwIDogcjM7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5hcmMobGVmdCArIHIwLCB0b3AgKyByMCwgcjAsIC1NYXRoLlBJLCAtTWF0aC5QSSAvIDIpO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQuYXJjKGxlZnQgKyB3aWR0aCAtIHIxLCB0b3AgKyByMSwgcjEsIC1NYXRoLlBJIC8gMiwgMCk7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5hcmMobGVmdCArIHdpZHRoIC0gcjIsIHRvcCArIGhlaWdodCAtIHIyLCByMiwgMCwgTWF0aC5QSSAvIDIpO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQuYXJjKGxlZnQgKyByMywgdG9wICsgaGVpZ2h0IC0gcjMsIHIzLCBNYXRoLlBJIC8gMiwgTWF0aC5QSSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5tb3ZlVG8oc3RhcnRYLCBpdGVtLnkpO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHN0YXJ0WCArIGl0ZW0ud2lkdGgsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5saW5lVG8oc3RhcnRYICsgaXRlbS53aWR0aCwgb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0pO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHN0YXJ0WCwgb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0pO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHN0YXJ0WCwgaXRlbS55KTtcclxuICAgICAgICAgICAgICBjb250ZXh0LnNldExpbmVXaWR0aCgxKVxyXG4gICAgICAgICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoc3Ryb2tlQ29sb3IpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGZpbGxDb2xvcik7XHJcbiAgICAgICAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgICAgICAgIC8vY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnc3RhY2snOlxyXG4gICAgICAgIC8vIOe7mOWItuWghuWPoOaVsOaNruWbvlxyXG4gICAgICAgIHZhciBwb2ludHMgPSBnZXRTdGFja0RhdGFQb2ludHMoZGF0YSwgbWluUmFuZ2UsIG1heFJhbmdlLCB4QXhpc1BvaW50cywgZWFjaFNwYWNpbmcsIG9wdHMsIGNvbmZpZywgc2VyaWVzSW5kZXgsIHNlcmllcywgcHJvY2Vzcyk7XHJcbiAgICAgICAgY2FsUG9pbnRzLnB1c2gocG9pbnRzKTtcclxuICAgICAgICBwb2ludHMgPSBmaXhDb2x1bWVTdGFja0RhdGEocG9pbnRzLCBlYWNoU3BhY2luZywgc2VyaWVzLmxlbmd0aCwgc2VyaWVzSW5kZXgsIGNvbmZpZywgb3B0cywgc2VyaWVzKTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBvaW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgbGV0IGl0ZW0gPSBwb2ludHNbaV07XHJcbiAgICAgICAgICBpZiAoaXRlbSAhPT0gbnVsbCAmJiBpID4gbGVmdE51bSAmJiBpIDwgcmlnaHROdW0pIHtcclxuICAgICAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICAgICAgdmFyIGZpbGxDb2xvciA9IGl0ZW0uY29sb3IgfHwgZWFjaFNlcmllcy5jb2xvcjtcclxuICAgICAgICAgICAgdmFyIHN0YXJ0WCA9IGl0ZW0ueCAtIGl0ZW0ud2lkdGggLyAyICsgMTtcclxuICAgICAgICAgICAgdmFyIGhlaWdodCA9IG9wdHMuaGVpZ2h0IC0gaXRlbS55IC0gb3B0cy5hcmVhWzJdO1xyXG4gICAgICAgICAgICB2YXIgaGVpZ2h0MCA9IG9wdHMuaGVpZ2h0IC0gaXRlbS55MCAtIG9wdHMuYXJlYVsyXTtcclxuICAgICAgICAgICAgaWYgKHNlcmllc0luZGV4ID4gMCkge1xyXG4gICAgICAgICAgICAgIGhlaWdodCAtPSBoZWlnaHQwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGZpbGxDb2xvcik7XHJcbiAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKHN0YXJ0WCwgaXRlbS55KTtcclxuICAgICAgICAgICAgY29udGV4dC5maWxsUmVjdChzdGFydFgsIGl0ZW0ueSwgaXRlbS53aWR0aCwgaGVpZ2h0KTtcclxuICAgICAgICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnbWV0ZXInOlxyXG4gICAgICAgIC8vIOe7mOWItua4qeW6puiuoeaVsOaNruWbvlxyXG4gICAgICAgIHZhciBwb2ludHMgPSBnZXREYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeEF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHByb2Nlc3MpO1xyXG4gICAgICAgIGNhbFBvaW50cy5wdXNoKHBvaW50cyk7XHJcbiAgICAgICAgcG9pbnRzID0gZml4Q29sdW1lTWV0ZXJEYXRhKHBvaW50cywgZWFjaFNwYWNpbmcsIHNlcmllcy5sZW5ndGgsIHNlcmllc0luZGV4LCBjb25maWcsIG9wdHMsIGNvbHVtbk9wdGlvbi5tZXRlckJvcmRlcik7XHJcbiAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBvaW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgaXRlbSA9IHBvaW50c1tpXTtcclxuICAgICAgICAgICAgaWYgKGl0ZW0gIT09IG51bGwgJiYgaSA+IGxlZnROdW0gJiYgaSA8IHJpZ2h0TnVtKSB7XHJcbiAgICAgICAgICAgICAgLy/nlLvog4zmma/popzoibJcclxuICAgICAgICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgICAgICAgIGlmIChzZXJpZXNJbmRleCA9PSAwICYmIGNvbHVtbk9wdGlvbi5tZXRlckJvcmRlciA+IDApIHtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoZWFjaFNlcmllcy5jb2xvcik7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LnNldExpbmVXaWR0aChjb2x1bW5PcHRpb24ubWV0ZXJCb3JkZXIgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGlmKHNlcmllc0luZGV4ID09IDApe1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoY29sdW1uT3B0aW9uLm1ldGVyRmlsbENvbG9yKTtcclxuICAgICAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGl0ZW0uY29sb3IgfHwgZWFjaFNlcmllcy5jb2xvcik7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHZhciBzdGFydFggPSBpdGVtLnggLSBpdGVtLndpZHRoIC8gMjtcclxuICAgICAgICAgICAgICB2YXIgaGVpZ2h0ID0gb3B0cy5oZWlnaHQgLSBpdGVtLnkgLSBvcHRzLmFyZWFbMl07XHJcbiAgICAgICAgICAgICAgaWYgKChjb2x1bW5PcHRpb24uYmFyQm9yZGVyUmFkaXVzICYmIGNvbHVtbk9wdGlvbi5iYXJCb3JkZXJSYWRpdXMubGVuZ3RoID09PSA0KSB8fCBjb2x1bW5PcHRpb24uYmFyQm9yZGVyQ2lyY2xlID09PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBsZWZ0ID0gc3RhcnRYO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgdG9wID0gaXRlbS55O1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgd2lkdGggPSBpdGVtLndpZHRoO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgaGVpZ2h0ID0gb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0gLSBpdGVtLnk7XHJcbiAgICAgICAgICAgICAgICBpZiAoY29sdW1uT3B0aW9uLmJhckJvcmRlckNpcmNsZSkge1xyXG4gICAgICAgICAgICAgICAgICBjb2x1bW5PcHRpb24uYmFyQm9yZGVyUmFkaXVzID0gW3dpZHRoIC8gMiwgd2lkdGggLyAyLCAwLCAwXTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGxldCBbcjAsIHIxLCByMiwgcjNdID0gY29sdW1uT3B0aW9uLmJhckJvcmRlclJhZGl1cztcclxuICAgICAgICAgICAgICAgIGxldCBtaW5SYWRpdXMgPSBNYXRoLm1pbih3aWR0aC8yLGhlaWdodC8yKTtcclxuICAgICAgICAgICAgICAgIHIwID0gcjAgPiBtaW5SYWRpdXMgPyBtaW5SYWRpdXMgOiByMDtcclxuICAgICAgICAgICAgICAgIHIxID0gcjEgPiBtaW5SYWRpdXMgPyBtaW5SYWRpdXMgOiByMTtcclxuICAgICAgICAgICAgICAgIHIyID0gcjIgPiBtaW5SYWRpdXMgPyBtaW5SYWRpdXMgOiByMjtcclxuICAgICAgICAgICAgICAgIHIzID0gcjMgPiBtaW5SYWRpdXMgPyBtaW5SYWRpdXMgOiByMztcclxuICAgICAgICAgICAgICAgIHIwID0gcjAgPCAwID8gMCA6IHIwO1xyXG4gICAgICAgICAgICAgICAgcjEgPSByMSA8IDAgPyAwIDogcjE7XHJcbiAgICAgICAgICAgICAgICByMiA9IHIyIDwgMCA/IDAgOiByMjtcclxuICAgICAgICAgICAgICAgIHIzID0gcjMgPCAwID8gMCA6IHIzO1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5hcmMobGVmdCArIHIwLCB0b3AgKyByMCwgcjAsIC1NYXRoLlBJLCAtTWF0aC5QSSAvIDIpO1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5hcmMobGVmdCArIHdpZHRoIC0gcjEsIHRvcCArIHIxLCByMSwgLU1hdGguUEkgLyAyLCAwKTtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQuYXJjKGxlZnQgKyB3aWR0aCAtIHIyLCB0b3AgKyBoZWlnaHQgLSByMiwgcjIsIDAsIE1hdGguUEkgLyAyKTtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQuYXJjKGxlZnQgKyByMywgdG9wICsgaGVpZ2h0IC0gcjMsIHIzLCBNYXRoLlBJIC8gMiwgTWF0aC5QSSk7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgICAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKHN0YXJ0WCwgaXRlbS55KTtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHN0YXJ0WCArIGl0ZW0ud2lkdGgsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhzdGFydFggKyBpdGVtLndpZHRoLCBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXSk7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhzdGFydFgsIG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdKTtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHN0YXJ0WCwgaXRlbS55KTtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBpZiAoc2VyaWVzSW5kZXggPT0gMCAmJiBjb2x1bW5PcHRpb24ubWV0ZXJCb3JkZXIgPiAwKSB7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICB9KTtcclxuXHJcbiAgaWYgKG9wdHMuZGF0YUxhYmVsICE9PSBmYWxzZSAmJiBwcm9jZXNzID09PSAxKSB7XHJcbiAgICBzZXJpZXMuZm9yRWFjaChmdW5jdGlvbihlYWNoU2VyaWVzLCBzZXJpZXNJbmRleCkge1xyXG4gICAgICBsZXQgcmFuZ2VzLCBtaW5SYW5nZSwgbWF4UmFuZ2U7XHJcbiAgICAgIHJhbmdlcyA9IFtdLmNvbmNhdChvcHRzLmNoYXJ0RGF0YS55QXhpc0RhdGEucmFuZ2VzW2VhY2hTZXJpZXMuaW5kZXhdKTtcclxuICAgICAgbWluUmFuZ2UgPSByYW5nZXMucG9wKCk7XHJcbiAgICAgIG1heFJhbmdlID0gcmFuZ2VzLnNoaWZ0KCk7XHJcbiAgICAgIHZhciBkYXRhID0gZWFjaFNlcmllcy5kYXRhO1xyXG4gICAgICBzd2l0Y2ggKGNvbHVtbk9wdGlvbi50eXBlKSB7XHJcbiAgICAgICAgY2FzZSAnZ3JvdXAnOlxyXG4gICAgICAgICAgdmFyIHBvaW50cyA9IGdldERhdGFQb2ludHMoZGF0YSwgbWluUmFuZ2UsIG1heFJhbmdlLCB4QXhpc1BvaW50cywgZWFjaFNwYWNpbmcsIG9wdHMsIGNvbmZpZywgcHJvY2Vzcyk7XHJcbiAgICAgICAgICBwb2ludHMgPSBmaXhDb2x1bWVEYXRhKHBvaW50cywgZWFjaFNwYWNpbmcsIHNlcmllcy5sZW5ndGgsIHNlcmllc0luZGV4LCBjb25maWcsIG9wdHMpO1xyXG4gICAgICAgICAgZHJhd1BvaW50VGV4dChwb2ludHMsIGVhY2hTZXJpZXMsIGNvbmZpZywgY29udGV4dCwgb3B0cyk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdzdGFjayc6XHJcbiAgICAgICAgICB2YXIgcG9pbnRzID0gZ2V0U3RhY2tEYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeEF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHNlcmllc0luZGV4LCBzZXJpZXMsIHByb2Nlc3MpO1xyXG4gICAgICAgICAgZHJhd1BvaW50VGV4dChwb2ludHMsIGVhY2hTZXJpZXMsIGNvbmZpZywgY29udGV4dCwgb3B0cyk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdtZXRlcic6XHJcbiAgICAgICAgICB2YXIgcG9pbnRzID0gZ2V0RGF0YVBvaW50cyhkYXRhLCBtaW5SYW5nZSwgbWF4UmFuZ2UsIHhBeGlzUG9pbnRzLCBlYWNoU3BhY2luZywgb3B0cywgY29uZmlnLCBwcm9jZXNzKTtcclxuICAgICAgICAgIGRyYXdQb2ludFRleHQocG9pbnRzLCBlYWNoU2VyaWVzLCBjb25maWcsIGNvbnRleHQsIG9wdHMpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICBjb250ZXh0LnJlc3RvcmUoKTtcclxuICByZXR1cm4ge1xyXG4gICAgeEF4aXNQb2ludHM6IHhBeGlzUG9pbnRzLFxyXG4gICAgY2FsUG9pbnRzOiBjYWxQb2ludHMsXHJcbiAgICBlYWNoU3BhY2luZzogZWFjaFNwYWNpbmdcclxuICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3TW91bnREYXRhUG9pbnRzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KSB7XHJcbiAgbGV0IHByb2Nlc3MgPSBhcmd1bWVudHMubGVuZ3RoID4gNCAmJiBhcmd1bWVudHNbNF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s0XSA6IDE7XHJcbiAgbGV0IHhBeGlzRGF0YSA9IG9wdHMuY2hhcnREYXRhLnhBeGlzRGF0YSxcclxuICAgIHhBeGlzUG9pbnRzID0geEF4aXNEYXRhLnhBeGlzUG9pbnRzLFxyXG4gICAgZWFjaFNwYWNpbmcgPSB4QXhpc0RhdGEuZWFjaFNwYWNpbmc7XHJcbiAgbGV0IG1vdW50T3B0aW9uID0gYXNzaWduKHt9LCB7XHJcbiAgICB0eXBlOiAnbW91bnQnLFxyXG4gICAgd2lkdGhSYXRpbzogMSxcclxuICAgIGJvcmRlcldpZHRoOiAxLFxyXG4gICAgYmFyQm9yZGVyQ2lyY2xlOiBmYWxzZSxcclxuICAgIGJhckJvcmRlclJhZGl1czogW10sXHJcbiAgICBsaW5lYXJUeXBlOiAnbm9uZScsXHJcbiAgICBsaW5lYXJPcGFjaXR5OiAxLFxyXG4gICAgY3VzdG9tQ29sb3I6IFtdLFxyXG4gICAgY29sb3JTdG9wOiAwLFxyXG4gIH0sIG9wdHMuZXh0cmEubW91bnQpO1xyXG4gIG1vdW50T3B0aW9uLndpZHRoUmF0aW8gPSBtb3VudE9wdGlvbi53aWR0aFJhdGlvIDw9IDAgPyAwIDogbW91bnRPcHRpb24ud2lkdGhSYXRpbztcclxuICBtb3VudE9wdGlvbi53aWR0aFJhdGlvID0gbW91bnRPcHRpb24ud2lkdGhSYXRpbyA+PSAyID8gMiA6IG1vdW50T3B0aW9uLndpZHRoUmF0aW87XHJcbiAgbGV0IGNhbFBvaW50cyA9IFtdO1xyXG4gIGNvbnRleHQuc2F2ZSgpO1xyXG4gIGxldCBsZWZ0TnVtID0gLTI7XHJcbiAgbGV0IHJpZ2h0TnVtID0geEF4aXNQb2ludHMubGVuZ3RoICsgMjtcclxuICBpZiAob3B0cy5fc2Nyb2xsRGlzdGFuY2VfICYmIG9wdHMuX3Njcm9sbERpc3RhbmNlXyAhPT0gMCAmJiBvcHRzLmVuYWJsZVNjcm9sbCA9PT0gdHJ1ZSkge1xyXG4gICAgY29udGV4dC50cmFuc2xhdGUob3B0cy5fc2Nyb2xsRGlzdGFuY2VfLCAwKTtcclxuICAgIGxlZnROdW0gPSBNYXRoLmZsb29yKC1vcHRzLl9zY3JvbGxEaXN0YW5jZV8gLyBlYWNoU3BhY2luZykgLSAyO1xyXG4gICAgcmlnaHROdW0gPSBsZWZ0TnVtICsgb3B0cy54QXhpcy5pdGVtQ291bnQgKyA0O1xyXG4gIH1cclxuICBtb3VudE9wdGlvbi5jdXN0b21Db2xvciA9IGZpbGxDdXN0b21Db2xvcihtb3VudE9wdGlvbi5saW5lYXJUeXBlLCBtb3VudE9wdGlvbi5jdXN0b21Db2xvciwgc2VyaWVzLCBjb25maWcpO1xyXG4gICAgbGV0IHJhbmdlcywgbWluUmFuZ2UsIG1heFJhbmdlO1xyXG4gICAgcmFuZ2VzID0gW10uY29uY2F0KG9wdHMuY2hhcnREYXRhLnlBeGlzRGF0YS5yYW5nZXNbMF0pO1xyXG4gICAgbWluUmFuZ2UgPSByYW5nZXMucG9wKCk7XHJcbiAgICBtYXhSYW5nZSA9IHJhbmdlcy5zaGlmdCgpO1xyXG4gICAgdmFyIHBvaW50cyA9IGdldE1vdW50RGF0YVBvaW50cyhzZXJpZXMsIG1pblJhbmdlLCBtYXhSYW5nZSwgeEF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBtb3VudE9wdGlvbiwgcHJvY2Vzcyk7XHJcbiAgICBzd2l0Y2ggKG1vdW50T3B0aW9uLnR5cGUpIHtcclxuICAgICAgY2FzZSAnYmFyJzpcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBvaW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgbGV0IGl0ZW0gPSBwb2ludHNbaV07XHJcbiAgICAgICAgICBpZiAoaXRlbSAhPT0gbnVsbCAmJiBpID4gbGVmdE51bSAmJiBpIDwgcmlnaHROdW0pIHtcclxuICAgICAgICAgICAgdmFyIHN0YXJ0WCA9IGl0ZW0ueCAtIGVhY2hTcGFjaW5nKm1vdW50T3B0aW9uLndpZHRoUmF0aW8vMjtcclxuICAgICAgICAgICAgdmFyIGhlaWdodCA9IG9wdHMuaGVpZ2h0IC0gaXRlbS55IC0gb3B0cy5hcmVhWzJdO1xyXG4gICAgICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgICAgICB2YXIgZmlsbENvbG9yID0gaXRlbS5jb2xvciB8fCBzZXJpZXNbaV0uY29sb3JcclxuICAgICAgICAgICAgdmFyIHN0cm9rZUNvbG9yID0gaXRlbS5jb2xvciB8fCBzZXJpZXNbaV0uY29sb3JcclxuICAgICAgICAgICAgaWYgKG1vdW50T3B0aW9uLmxpbmVhclR5cGUgIT09ICdub25lJykge1xyXG4gICAgICAgICAgICAgIHZhciBncmQgPSBjb250ZXh0LmNyZWF0ZUxpbmVhckdyYWRpZW50KHN0YXJ0WCwgaXRlbS55LCBzdGFydFgsIG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdKTtcclxuICAgICAgICAgICAgICAvL+mAj+aYjua4kOWPmFxyXG4gICAgICAgICAgICAgIGlmIChtb3VudE9wdGlvbi5saW5lYXJUeXBlID09ICdvcGFjaXR5Jykge1xyXG4gICAgICAgICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgwLCBoZXhUb1JnYihmaWxsQ29sb3IsIG1vdW50T3B0aW9uLmxpbmVhck9wYWNpdHkpKTtcclxuICAgICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMSwgaGV4VG9SZ2IoZmlsbENvbG9yLCAxKSk7XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMCwgaGV4VG9SZ2IobW91bnRPcHRpb24uY3VzdG9tQ29sb3Jbc2VyaWVzW2ldLmxpbmVhckluZGV4XSwgbW91bnRPcHRpb24ubGluZWFyT3BhY2l0eSkpO1xyXG4gICAgICAgICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcChtb3VudE9wdGlvbi5jb2xvclN0b3AsIGhleFRvUmdiKG1vdW50T3B0aW9uLmN1c3RvbUNvbG9yW3Nlcmllc1tpXS5saW5lYXJJbmRleF0sbW91bnRPcHRpb24ubGluZWFyT3BhY2l0eSkpO1xyXG4gICAgICAgICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgxLCBoZXhUb1JnYihmaWxsQ29sb3IsIDEpKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgZmlsbENvbG9yID0gZ3JkXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8g5ZyG6KeS6L655qGGXHJcbiAgICAgICAgICAgIGlmICgobW91bnRPcHRpb24uYmFyQm9yZGVyUmFkaXVzICYmIG1vdW50T3B0aW9uLmJhckJvcmRlclJhZGl1cy5sZW5ndGggPT09IDQpIHx8IG1vdW50T3B0aW9uLmJhckJvcmRlckNpcmNsZSA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGxlZnQgPSBzdGFydFg7XHJcbiAgICAgICAgICAgICAgY29uc3QgdG9wID0gaXRlbS55O1xyXG4gICAgICAgICAgICAgIGNvbnN0IHdpZHRoID0gaXRlbS53aWR0aDtcclxuICAgICAgICAgICAgICBjb25zdCBoZWlnaHQgPSBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXSAtIGl0ZW0ueSAtIG1vdW50T3B0aW9uLmJvcmRlcldpZHRoICogb3B0cy5waXggLyAyOyBcclxuICAgICAgICAgICAgICBpZiAobW91bnRPcHRpb24uYmFyQm9yZGVyQ2lyY2xlKSB7XHJcbiAgICAgICAgICAgICAgICBtb3VudE9wdGlvbi5iYXJCb3JkZXJSYWRpdXMgPSBbd2lkdGggLyAyLCB3aWR0aCAvIDIsIDAsIDBdO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBsZXQgW3IwLCByMSwgcjIsIHIzXSA9IG1vdW50T3B0aW9uLmJhckJvcmRlclJhZGl1cztcclxuICAgICAgICAgICAgICBsZXQgbWluUmFkaXVzID0gTWF0aC5taW4od2lkdGgvMixoZWlnaHQvMik7XHJcbiAgICAgICAgICAgICAgcjAgPSByMCA+IG1pblJhZGl1cyA/IG1pblJhZGl1cyA6IHIwO1xyXG4gICAgICAgICAgICAgIHIxID0gcjEgPiBtaW5SYWRpdXMgPyBtaW5SYWRpdXMgOiByMTtcclxuICAgICAgICAgICAgICByMiA9IHIyID4gbWluUmFkaXVzID8gbWluUmFkaXVzIDogcjI7XHJcbiAgICAgICAgICAgICAgcjMgPSByMyA+IG1pblJhZGl1cyA/IG1pblJhZGl1cyA6IHIzO1xyXG4gICAgICAgICAgICAgIHIwID0gcjAgPCAwID8gMCA6IHIwO1xyXG4gICAgICAgICAgICAgIHIxID0gcjEgPCAwID8gMCA6IHIxO1xyXG4gICAgICAgICAgICAgIHIyID0gcjIgPCAwID8gMCA6IHIyO1xyXG4gICAgICAgICAgICAgIHIzID0gcjMgPCAwID8gMCA6IHIzO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQuYXJjKGxlZnQgKyByMCwgdG9wICsgcjAsIHIwLCAtTWF0aC5QSSwgLU1hdGguUEkgLyAyKTtcclxuICAgICAgICAgICAgICBjb250ZXh0LmFyYyhsZWZ0ICsgd2lkdGggLSByMSwgdG9wICsgcjEsIHIxLCAtTWF0aC5QSSAvIDIsIDApO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQuYXJjKGxlZnQgKyB3aWR0aCAtIHIyLCB0b3AgKyBoZWlnaHQgLSByMiwgcjIsIDAsIE1hdGguUEkgLyAyKTtcclxuICAgICAgICAgICAgICBjb250ZXh0LmFyYyhsZWZ0ICsgcjMsIHRvcCArIGhlaWdodCAtIHIzLCByMywgTWF0aC5QSSAvIDIsIE1hdGguUEkpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKHN0YXJ0WCwgaXRlbS55KTtcclxuICAgICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhzdGFydFggKyBpdGVtLndpZHRoLCBpdGVtLnkpO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHN0YXJ0WCArIGl0ZW0ud2lkdGgsIG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdKTtcclxuICAgICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhzdGFydFgsIG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdKTtcclxuICAgICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhzdGFydFgsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShzdHJva2VDb2xvcik7XHJcbiAgICAgICAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGZpbGxDb2xvcik7XHJcbiAgICAgICAgICAgIGlmKG1vdW50T3B0aW9uLmJvcmRlcldpZHRoID4gMCl7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5zZXRMaW5lV2lkdGgobW91bnRPcHRpb24uYm9yZGVyV2lkdGggKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgICAgICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3RyaWFuZ2xlJzpcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBvaW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgbGV0IGl0ZW0gPSBwb2ludHNbaV07XHJcbiAgICAgICAgICBpZiAoaXRlbSAhPT0gbnVsbCAmJiBpID4gbGVmdE51bSAmJiBpIDwgcmlnaHROdW0pIHtcclxuICAgICAgICAgICAgdmFyIHN0YXJ0WCA9IGl0ZW0ueCAtIGVhY2hTcGFjaW5nKm1vdW50T3B0aW9uLndpZHRoUmF0aW8vMjtcclxuICAgICAgICAgICAgdmFyIGhlaWdodCA9IG9wdHMuaGVpZ2h0IC0gaXRlbS55IC0gb3B0cy5hcmVhWzJdO1xyXG4gICAgICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgICAgICB2YXIgZmlsbENvbG9yID0gaXRlbS5jb2xvciB8fCBzZXJpZXNbaV0uY29sb3JcclxuICAgICAgICAgICAgdmFyIHN0cm9rZUNvbG9yID0gaXRlbS5jb2xvciB8fCBzZXJpZXNbaV0uY29sb3JcclxuICAgICAgICAgICAgaWYgKG1vdW50T3B0aW9uLmxpbmVhclR5cGUgIT09ICdub25lJykge1xyXG4gICAgICAgICAgICAgIHZhciBncmQgPSBjb250ZXh0LmNyZWF0ZUxpbmVhckdyYWRpZW50KHN0YXJ0WCwgaXRlbS55LCBzdGFydFgsIG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdKTtcclxuICAgICAgICAgICAgICAvL+mAj+aYjua4kOWPmFxyXG4gICAgICAgICAgICAgIGlmIChtb3VudE9wdGlvbi5saW5lYXJUeXBlID09ICdvcGFjaXR5Jykge1xyXG4gICAgICAgICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgwLCBoZXhUb1JnYihmaWxsQ29sb3IsIG1vdW50T3B0aW9uLmxpbmVhck9wYWNpdHkpKTtcclxuICAgICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMSwgaGV4VG9SZ2IoZmlsbENvbG9yLCAxKSk7XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMCwgaGV4VG9SZ2IobW91bnRPcHRpb24uY3VzdG9tQ29sb3Jbc2VyaWVzW2ldLmxpbmVhckluZGV4XSwgbW91bnRPcHRpb24ubGluZWFyT3BhY2l0eSkpO1xyXG4gICAgICAgICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcChtb3VudE9wdGlvbi5jb2xvclN0b3AsIGhleFRvUmdiKG1vdW50T3B0aW9uLmN1c3RvbUNvbG9yW3Nlcmllc1tpXS5saW5lYXJJbmRleF0sbW91bnRPcHRpb24ubGluZWFyT3BhY2l0eSkpO1xyXG4gICAgICAgICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgxLCBoZXhUb1JnYihmaWxsQ29sb3IsIDEpKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgZmlsbENvbG9yID0gZ3JkXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29udGV4dC5tb3ZlVG8oc3RhcnRYLCBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXSk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCwgaXRlbS55KTtcclxuICAgICAgICAgICAgY29udGV4dC5saW5lVG8oc3RhcnRYICsgaXRlbS53aWR0aCwgb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0pO1xyXG4gICAgICAgICAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKHN0cm9rZUNvbG9yKTtcclxuICAgICAgICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoZmlsbENvbG9yKTtcclxuICAgICAgICAgICAgaWYobW91bnRPcHRpb24uYm9yZGVyV2lkdGggPiAwKXtcclxuICAgICAgICAgICAgICBjb250ZXh0LnNldExpbmVXaWR0aChtb3VudE9wdGlvbi5ib3JkZXJXaWR0aCAqIG9wdHMucGl4KTtcclxuICAgICAgICAgICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ21vdW50JzpcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBvaW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgbGV0IGl0ZW0gPSBwb2ludHNbaV07XHJcbiAgICAgICAgICBpZiAoaXRlbSAhPT0gbnVsbCAmJiBpID4gbGVmdE51bSAmJiBpIDwgcmlnaHROdW0pIHtcclxuICAgICAgICAgICAgdmFyIHN0YXJ0WCA9IGl0ZW0ueCAtIGVhY2hTcGFjaW5nKm1vdW50T3B0aW9uLndpZHRoUmF0aW8vMjtcclxuICAgICAgICAgICAgdmFyIGhlaWdodCA9IG9wdHMuaGVpZ2h0IC0gaXRlbS55IC0gb3B0cy5hcmVhWzJdO1xyXG4gICAgICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgICAgICB2YXIgZmlsbENvbG9yID0gaXRlbS5jb2xvciB8fCBzZXJpZXNbaV0uY29sb3JcclxuICAgICAgICAgICAgdmFyIHN0cm9rZUNvbG9yID0gaXRlbS5jb2xvciB8fCBzZXJpZXNbaV0uY29sb3JcclxuICAgICAgICAgICAgaWYgKG1vdW50T3B0aW9uLmxpbmVhclR5cGUgIT09ICdub25lJykge1xyXG4gICAgICAgICAgICAgIHZhciBncmQgPSBjb250ZXh0LmNyZWF0ZUxpbmVhckdyYWRpZW50KHN0YXJ0WCwgaXRlbS55LCBzdGFydFgsIG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdKTtcclxuICAgICAgICAgICAgICAvL+mAj+aYjua4kOWPmFxyXG4gICAgICAgICAgICAgIGlmIChtb3VudE9wdGlvbi5saW5lYXJUeXBlID09ICdvcGFjaXR5Jykge1xyXG4gICAgICAgICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgwLCBoZXhUb1JnYihmaWxsQ29sb3IsIG1vdW50T3B0aW9uLmxpbmVhck9wYWNpdHkpKTtcclxuICAgICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMSwgaGV4VG9SZ2IoZmlsbENvbG9yLCAxKSk7XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMCwgaGV4VG9SZ2IobW91bnRPcHRpb24uY3VzdG9tQ29sb3Jbc2VyaWVzW2ldLmxpbmVhckluZGV4XSwgbW91bnRPcHRpb24ubGluZWFyT3BhY2l0eSkpO1xyXG4gICAgICAgICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcChtb3VudE9wdGlvbi5jb2xvclN0b3AsIGhleFRvUmdiKG1vdW50T3B0aW9uLmN1c3RvbUNvbG9yW3Nlcmllc1tpXS5saW5lYXJJbmRleF0sbW91bnRPcHRpb24ubGluZWFyT3BhY2l0eSkpO1xyXG4gICAgICAgICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgxLCBoZXhUb1JnYihmaWxsQ29sb3IsIDEpKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgZmlsbENvbG9yID0gZ3JkXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29udGV4dC5tb3ZlVG8oc3RhcnRYLCBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXSk7XHJcbiAgICAgICAgICAgIGNvbnRleHQuYmV6aWVyQ3VydmVUbyhpdGVtLnggLSBpdGVtLndpZHRoLzQsIG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdLCBpdGVtLnggLSBpdGVtLndpZHRoLzQsIGl0ZW0ueSwgaXRlbS54LCBpdGVtLnkpO1xyXG4gICAgICAgICAgICBjb250ZXh0LmJlemllckN1cnZlVG8oaXRlbS54ICsgaXRlbS53aWR0aC80LCBpdGVtLnksIGl0ZW0ueCArIGl0ZW0ud2lkdGgvNCwgb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0sIHN0YXJ0WCArIGl0ZW0ud2lkdGgsIG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdKTtcclxuICAgICAgICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShzdHJva2VDb2xvcik7XHJcbiAgICAgICAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGZpbGxDb2xvcik7XHJcbiAgICAgICAgICAgIGlmKG1vdW50T3B0aW9uLmJvcmRlcldpZHRoID4gMCl7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5zZXRMaW5lV2lkdGgobW91bnRPcHRpb24uYm9yZGVyV2lkdGggKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdzaGFycCc6XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwb2ludHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgIGxldCBpdGVtID0gcG9pbnRzW2ldO1xyXG4gICAgICAgICAgaWYgKGl0ZW0gIT09IG51bGwgJiYgaSA+IGxlZnROdW0gJiYgaSA8IHJpZ2h0TnVtKSB7XHJcbiAgICAgICAgICAgIHZhciBzdGFydFggPSBpdGVtLnggLSBlYWNoU3BhY2luZyptb3VudE9wdGlvbi53aWR0aFJhdGlvLzI7XHJcbiAgICAgICAgICAgIHZhciBoZWlnaHQgPSBvcHRzLmhlaWdodCAtIGl0ZW0ueSAtIG9wdHMuYXJlYVsyXTtcclxuICAgICAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICAgICAgdmFyIGZpbGxDb2xvciA9IGl0ZW0uY29sb3IgfHwgc2VyaWVzW2ldLmNvbG9yXHJcbiAgICAgICAgICAgIHZhciBzdHJva2VDb2xvciA9IGl0ZW0uY29sb3IgfHwgc2VyaWVzW2ldLmNvbG9yXHJcbiAgICAgICAgICAgIGlmIChtb3VudE9wdGlvbi5saW5lYXJUeXBlICE9PSAnbm9uZScpIHtcclxuICAgICAgICAgICAgICB2YXIgZ3JkID0gY29udGV4dC5jcmVhdGVMaW5lYXJHcmFkaWVudChzdGFydFgsIGl0ZW0ueSwgc3RhcnRYLCBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXSk7XHJcbiAgICAgICAgICAgICAgLy/pgI/mmI7muJDlj5hcclxuICAgICAgICAgICAgICBpZiAobW91bnRPcHRpb24ubGluZWFyVHlwZSA9PSAnb3BhY2l0eScpIHtcclxuICAgICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMCwgaGV4VG9SZ2IoZmlsbENvbG9yLCBtb3VudE9wdGlvbi5saW5lYXJPcGFjaXR5KSk7XHJcbiAgICAgICAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDEsIGhleFRvUmdiKGZpbGxDb2xvciwgMSkpO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDAsIGhleFRvUmdiKG1vdW50T3B0aW9uLmN1c3RvbUNvbG9yW3Nlcmllc1tpXS5saW5lYXJJbmRleF0sIG1vdW50T3B0aW9uLmxpbmVhck9wYWNpdHkpKTtcclxuICAgICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AobW91bnRPcHRpb24uY29sb3JTdG9wLCBoZXhUb1JnYihtb3VudE9wdGlvbi5jdXN0b21Db2xvcltzZXJpZXNbaV0ubGluZWFySW5kZXhdLG1vdW50T3B0aW9uLmxpbmVhck9wYWNpdHkpKTtcclxuICAgICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMSwgaGV4VG9SZ2IoZmlsbENvbG9yLCAxKSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGZpbGxDb2xvciA9IGdyZFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKHN0YXJ0WCwgb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0pO1xyXG4gICAgICAgICAgICBjb250ZXh0LnF1YWRyYXRpY0N1cnZlVG8oaXRlbS54IC0gMCwgb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0gLSBoZWlnaHQvNCwgaXRlbS54LCBpdGVtLnkpO1xyXG4gICAgICAgICAgICBjb250ZXh0LnF1YWRyYXRpY0N1cnZlVG8oaXRlbS54ICsgMCwgb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0gLSBoZWlnaHQvNCwgc3RhcnRYICsgaXRlbS53aWR0aCwgb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0pXHJcbiAgICAgICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoc3Ryb2tlQ29sb3IpO1xyXG4gICAgICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShmaWxsQ29sb3IpO1xyXG4gICAgICAgICAgICBpZihtb3VudE9wdGlvbi5ib3JkZXJXaWR0aCA+IDApe1xyXG4gICAgICAgICAgICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKG1vdW50T3B0aW9uLmJvcmRlcldpZHRoICogb3B0cy5waXgpO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuXHJcbiAgaWYgKG9wdHMuZGF0YUxhYmVsICE9PSBmYWxzZSAmJiBwcm9jZXNzID09PSAxKSB7XHJcbiAgICBsZXQgcmFuZ2VzLCBtaW5SYW5nZSwgbWF4UmFuZ2U7XHJcbiAgICByYW5nZXMgPSBbXS5jb25jYXQob3B0cy5jaGFydERhdGEueUF4aXNEYXRhLnJhbmdlc1swXSk7XHJcbiAgICBtaW5SYW5nZSA9IHJhbmdlcy5wb3AoKTtcclxuICAgIG1heFJhbmdlID0gcmFuZ2VzLnNoaWZ0KCk7XHJcbiAgICB2YXIgcG9pbnRzID0gZ2V0TW91bnREYXRhUG9pbnRzKHNlcmllcywgbWluUmFuZ2UsIG1heFJhbmdlLCB4QXhpc1BvaW50cywgZWFjaFNwYWNpbmcsIG9wdHMsIG1vdW50T3B0aW9uLCBwcm9jZXNzKTtcclxuICAgIGRyYXdNb3VudFBvaW50VGV4dChwb2ludHMsIHNlcmllcywgY29uZmlnLCBjb250ZXh0LCBvcHRzKTtcclxuICB9XHJcbiAgY29udGV4dC5yZXN0b3JlKCk7XHJcbiAgcmV0dXJuIHtcclxuICAgIHhBeGlzUG9pbnRzOiB4QXhpc1BvaW50cyxcclxuICAgIGNhbFBvaW50czogcG9pbnRzLFxyXG4gICAgZWFjaFNwYWNpbmc6IGVhY2hTcGFjaW5nXHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd0JhckRhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpIHtcclxuICBsZXQgcHJvY2VzcyA9IGFyZ3VtZW50cy5sZW5ndGggPiA0ICYmIGFyZ3VtZW50c1s0XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzRdIDogMTtcclxuICBsZXQgeUF4aXNQb2ludHMgPSBbXTtcclxuICBsZXQgZWFjaFNwYWNpbmcgPSAob3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMF0gLSBvcHRzLmFyZWFbMl0pL29wdHMuY2F0ZWdvcmllcy5sZW5ndGg7XHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBvcHRzLmNhdGVnb3JpZXMubGVuZ3RoOyBpKyspIHtcclxuICAgIHlBeGlzUG9pbnRzLnB1c2gob3B0cy5hcmVhWzBdICsgZWFjaFNwYWNpbmcgLyAyICsgZWFjaFNwYWNpbmcgKiBpKTtcclxuICB9XHJcbiAgbGV0IGNvbHVtbk9wdGlvbiA9IGFzc2lnbih7fSwge1xyXG4gICAgdHlwZTogJ2dyb3VwJyxcclxuICAgIHdpZHRoOiBlYWNoU3BhY2luZyAvIDIsXHJcbiAgICBtZXRlckJvcmRlcjogNCxcclxuICAgIG1ldGVyRmlsbENvbG9yOiAnI0ZGRkZGRicsXHJcbiAgICBiYXJCb3JkZXJDaXJjbGU6IGZhbHNlLFxyXG4gICAgYmFyQm9yZGVyUmFkaXVzOiBbXSxcclxuICAgIHNlcmllc0dhcDogMixcclxuICAgIGxpbmVhclR5cGU6ICdub25lJyxcclxuICAgIGxpbmVhck9wYWNpdHk6IDEsXHJcbiAgICBjdXN0b21Db2xvcjogW10sXHJcbiAgICBjb2xvclN0b3A6IDAsXHJcbiAgfSwgb3B0cy5leHRyYS5iYXIpO1xyXG4gIGxldCBjYWxQb2ludHMgPSBbXTtcclxuICBjb250ZXh0LnNhdmUoKTtcclxuICBsZXQgbGVmdE51bSA9IC0yO1xyXG4gIGxldCByaWdodE51bSA9IHlBeGlzUG9pbnRzLmxlbmd0aCArIDI7XHJcbiAgaWYgKG9wdHMudG9vbHRpcCAmJiBvcHRzLnRvb2x0aXAudGV4dExpc3QgJiYgb3B0cy50b29sdGlwLnRleHRMaXN0Lmxlbmd0aCAmJiBwcm9jZXNzID09PSAxKSB7XHJcbiAgICBkcmF3QmFyVG9vbFRpcFNwbGl0QXJlYShvcHRzLnRvb2x0aXAub2Zmc2V0LnksIG9wdHMsIGNvbmZpZywgY29udGV4dCwgZWFjaFNwYWNpbmcpO1xyXG4gIH1cclxuICBjb2x1bW5PcHRpb24uY3VzdG9tQ29sb3IgPSBmaWxsQ3VzdG9tQ29sb3IoY29sdW1uT3B0aW9uLmxpbmVhclR5cGUsIGNvbHVtbk9wdGlvbi5jdXN0b21Db2xvciwgc2VyaWVzLCBjb25maWcpO1xyXG4gIHNlcmllcy5mb3JFYWNoKGZ1bmN0aW9uKGVhY2hTZXJpZXMsIHNlcmllc0luZGV4KSB7XHJcbiAgICBsZXQgcmFuZ2VzLCBtaW5SYW5nZSwgbWF4UmFuZ2U7XHJcbiAgICByYW5nZXMgPSBbXS5jb25jYXQob3B0cy5jaGFydERhdGEueEF4aXNEYXRhLnJhbmdlcyk7XHJcbiAgICBtYXhSYW5nZSA9IHJhbmdlcy5wb3AoKTtcclxuICAgIG1pblJhbmdlID0gcmFuZ2VzLnNoaWZ0KCk7XHJcbiAgICB2YXIgZGF0YSA9IGVhY2hTZXJpZXMuZGF0YTtcclxuICAgIHN3aXRjaCAoY29sdW1uT3B0aW9uLnR5cGUpIHtcclxuICAgICAgY2FzZSAnZ3JvdXAnOlxyXG4gICAgICAgIHZhciBwb2ludHMgPSBnZXRCYXJEYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeUF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHByb2Nlc3MpO1xyXG4gICAgICAgIHZhciB0b29sdGlwUG9pbnRzID0gZ2V0QmFyU3RhY2tEYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeUF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHNlcmllc0luZGV4LCBzZXJpZXMsIHByb2Nlc3MpO1xyXG4gICAgICAgIGNhbFBvaW50cy5wdXNoKHRvb2x0aXBQb2ludHMpO1xyXG4gICAgICAgIHBvaW50cyA9IGZpeEJhckRhdGEocG9pbnRzLCBlYWNoU3BhY2luZywgc2VyaWVzLmxlbmd0aCwgc2VyaWVzSW5kZXgsIGNvbmZpZywgb3B0cyk7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwb2ludHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgIGxldCBpdGVtID0gcG9pbnRzW2ldO1xyXG4gICAgICAgICAgLy9maXggaXNzdWVzL0kyN0IxTiB5eW9pbmdlICYgSm9lc2h1XHJcbiAgICAgICAgICBpZiAoaXRlbSAhPT0gbnVsbCAmJiBpID4gbGVmdE51bSAmJiBpIDwgcmlnaHROdW0pIHtcclxuICAgICAgICAgICAgLy92YXIgc3RhcnRYID0gaXRlbS54IC0gaXRlbS53aWR0aCAvIDI7XHJcbiAgICAgICAgICAgIHZhciBzdGFydFggPSBvcHRzLmFyZWFbM107XHJcbiAgICAgICAgICAgIHZhciBzdGFydFkgPSBpdGVtLnkgLSBpdGVtLndpZHRoIC8gMjtcclxuICAgICAgICAgICAgdmFyIGhlaWdodCA9IGl0ZW0uaGVpZ2h0O1xyXG4gICAgICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgICAgICB2YXIgZmlsbENvbG9yID0gaXRlbS5jb2xvciB8fCBlYWNoU2VyaWVzLmNvbG9yXHJcbiAgICAgICAgICAgIHZhciBzdHJva2VDb2xvciA9IGl0ZW0uY29sb3IgfHwgZWFjaFNlcmllcy5jb2xvclxyXG4gICAgICAgICAgICBpZiAoY29sdW1uT3B0aW9uLmxpbmVhclR5cGUgIT09ICdub25lJykge1xyXG4gICAgICAgICAgICAgIHZhciBncmQgPSBjb250ZXh0LmNyZWF0ZUxpbmVhckdyYWRpZW50KHN0YXJ0WCwgaXRlbS55LCBpdGVtLngsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgICAgLy/pgI/mmI7muJDlj5hcclxuICAgICAgICAgICAgICBpZiAoY29sdW1uT3B0aW9uLmxpbmVhclR5cGUgPT0gJ29wYWNpdHknKSB7XHJcbiAgICAgICAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDAsIGhleFRvUmdiKGZpbGxDb2xvciwgY29sdW1uT3B0aW9uLmxpbmVhck9wYWNpdHkpKTtcclxuICAgICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMSwgaGV4VG9SZ2IoZmlsbENvbG9yLCAxKSk7XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMCwgaGV4VG9SZ2IoY29sdW1uT3B0aW9uLmN1c3RvbUNvbG9yW2VhY2hTZXJpZXMubGluZWFySW5kZXhdLCBjb2x1bW5PcHRpb24ubGluZWFyT3BhY2l0eSkpO1xyXG4gICAgICAgICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcChjb2x1bW5PcHRpb24uY29sb3JTdG9wLCBoZXhUb1JnYihjb2x1bW5PcHRpb24uY3VzdG9tQ29sb3JbZWFjaFNlcmllcy5saW5lYXJJbmRleF0sY29sdW1uT3B0aW9uLmxpbmVhck9wYWNpdHkpKTtcclxuICAgICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMSwgaGV4VG9SZ2IoZmlsbENvbG9yLCAxKSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGZpbGxDb2xvciA9IGdyZFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vIOWchuinkui+ueahhlxyXG4gICAgICAgICAgICBpZiAoKGNvbHVtbk9wdGlvbi5iYXJCb3JkZXJSYWRpdXMgJiYgY29sdW1uT3B0aW9uLmJhckJvcmRlclJhZGl1cy5sZW5ndGggPT09IDQpIHx8IGNvbHVtbk9wdGlvbi5iYXJCb3JkZXJDaXJjbGUgPT09IHRydWUpIHtcclxuICAgICAgICAgICAgICBjb25zdCBsZWZ0ID0gc3RhcnRYO1xyXG4gICAgICAgICAgICAgIGNvbnN0IHdpZHRoID0gaXRlbS53aWR0aDtcclxuICAgICAgICAgICAgICBjb25zdCB0b3AgPSBpdGVtLnkgLSBpdGVtLndpZHRoIC8gMjtcclxuICAgICAgICAgICAgICBjb25zdCBoZWlnaHQgPSBpdGVtLmhlaWdodDtcclxuICAgICAgICAgICAgICBpZiAoY29sdW1uT3B0aW9uLmJhckJvcmRlckNpcmNsZSkge1xyXG4gICAgICAgICAgICAgICAgY29sdW1uT3B0aW9uLmJhckJvcmRlclJhZGl1cyA9IFt3aWR0aCAvIDIsIHdpZHRoIC8gMiwgMCwgMF07XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGxldCBbcjAsIHIxLCByMiwgcjNdID0gY29sdW1uT3B0aW9uLmJhckJvcmRlclJhZGl1cztcclxuICAgICAgICAgICAgICBsZXQgbWluUmFkaXVzID0gTWF0aC5taW4od2lkdGgvMixoZWlnaHQvMik7XHJcbiAgICAgICAgICAgICAgcjAgPSByMCA+IG1pblJhZGl1cyA/IG1pblJhZGl1cyA6IHIwO1xyXG4gICAgICAgICAgICAgIHIxID0gcjEgPiBtaW5SYWRpdXMgPyBtaW5SYWRpdXMgOiByMTtcclxuICAgICAgICAgICAgICByMiA9IHIyID4gbWluUmFkaXVzID8gbWluUmFkaXVzIDogcjI7XHJcbiAgICAgICAgICAgICAgcjMgPSByMyA+IG1pblJhZGl1cyA/IG1pblJhZGl1cyA6IHIzO1xyXG4gICAgICAgICAgICAgIHIwID0gcjAgPCAwID8gMCA6IHIwO1xyXG4gICAgICAgICAgICAgIHIxID0gcjEgPCAwID8gMCA6IHIxO1xyXG4gICAgICAgICAgICAgIHIyID0gcjIgPCAwID8gMCA6IHIyO1xyXG4gICAgICAgICAgICAgIHIzID0gcjMgPCAwID8gMCA6IHIzO1xyXG4gICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgIGNvbnRleHQuYXJjKGxlZnQgKyByMywgdG9wICsgcjMsIHIzLCAtTWF0aC5QSSwgLU1hdGguUEkgLyAyKTtcclxuICAgICAgICAgICAgICBjb250ZXh0LmFyYyhpdGVtLnggLSByMCwgdG9wICsgcjAsIHIwLCAtTWF0aC5QSSAvIDIsIDApO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQuYXJjKGl0ZW0ueCAtIHIxLCB0b3AgKyB3aWR0aCAtIHIxLCByMSwgMCwgTWF0aC5QSSAvIDIpO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQuYXJjKGxlZnQgKyByMiwgdG9wICsgd2lkdGggLSByMiwgcjIsIE1hdGguUEkgLyAyLCBNYXRoLlBJKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhzdGFydFgsIHN0YXJ0WSk7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbS54LCBzdGFydFkpO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCwgc3RhcnRZICsgaXRlbS53aWR0aCk7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5saW5lVG8oc3RhcnRYLCBzdGFydFkgKyBpdGVtLndpZHRoKTtcclxuICAgICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhzdGFydFgsIHN0YXJ0WSk7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5zZXRMaW5lV2lkdGgoMSlcclxuICAgICAgICAgICAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKHN0cm9rZUNvbG9yKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShmaWxsQ29sb3IpO1xyXG4gICAgICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICAgICAgICAvL2NvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3N0YWNrJzpcclxuICAgICAgICAvLyDnu5jliLbloIblj6DmlbDmja7lm75cclxuICAgICAgICB2YXIgcG9pbnRzID0gZ2V0QmFyU3RhY2tEYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeUF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHNlcmllc0luZGV4LCBzZXJpZXMsIHByb2Nlc3MpO1xyXG4gICAgICAgIGNhbFBvaW50cy5wdXNoKHBvaW50cyk7XHJcbiAgICAgICAgcG9pbnRzID0gZml4QmFyU3RhY2tEYXRhKHBvaW50cywgZWFjaFNwYWNpbmcsIHNlcmllcy5sZW5ndGgsIHNlcmllc0luZGV4LCBjb25maWcsIG9wdHMsIHNlcmllcyk7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwb2ludHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgIGxldCBpdGVtID0gcG9pbnRzW2ldO1xyXG4gICAgICAgICAgaWYgKGl0ZW0gIT09IG51bGwgJiYgaSA+IGxlZnROdW0gJiYgaSA8IHJpZ2h0TnVtKSB7XHJcbiAgICAgICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgICAgIHZhciBmaWxsQ29sb3IgPSBpdGVtLmNvbG9yIHx8IGVhY2hTZXJpZXMuY29sb3I7XHJcbiAgICAgICAgICAgIHZhciBzdGFydFggPSBpdGVtLngwO1xyXG4gICAgICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShmaWxsQ29sb3IpO1xyXG4gICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhzdGFydFgsIGl0ZW0ueSAtIGl0ZW0ud2lkdGgvMik7XHJcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbFJlY3Qoc3RhcnRYLCBpdGVtLnkgLSBpdGVtLndpZHRoLzIsIGl0ZW0uaGVpZ2h0ICwgaXRlbS53aWR0aCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfSk7XHJcblxyXG4gIGlmIChvcHRzLmRhdGFMYWJlbCAhPT0gZmFsc2UgJiYgcHJvY2VzcyA9PT0gMSkge1xyXG4gICAgc2VyaWVzLmZvckVhY2goZnVuY3Rpb24oZWFjaFNlcmllcywgc2VyaWVzSW5kZXgpIHtcclxuICAgICAgbGV0IHJhbmdlcywgbWluUmFuZ2UsIG1heFJhbmdlO1xyXG4gICAgICByYW5nZXMgPSBbXS5jb25jYXQob3B0cy5jaGFydERhdGEueEF4aXNEYXRhLnJhbmdlcyk7XHJcbiAgICAgIG1heFJhbmdlID0gcmFuZ2VzLnBvcCgpO1xyXG4gICAgICBtaW5SYW5nZSA9IHJhbmdlcy5zaGlmdCgpO1xyXG4gICAgICB2YXIgZGF0YSA9IGVhY2hTZXJpZXMuZGF0YTtcclxuICAgICAgc3dpdGNoIChjb2x1bW5PcHRpb24udHlwZSkge1xyXG4gICAgICAgIGNhc2UgJ2dyb3VwJzpcclxuICAgICAgICAgIHZhciBwb2ludHMgPSBnZXRCYXJEYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeUF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHByb2Nlc3MpO1xyXG4gICAgICAgICAgcG9pbnRzID0gZml4QmFyRGF0YShwb2ludHMsIGVhY2hTcGFjaW5nLCBzZXJpZXMubGVuZ3RoLCBzZXJpZXNJbmRleCwgY29uZmlnLCBvcHRzKTtcclxuICAgICAgICAgIGRyYXdCYXJQb2ludFRleHQocG9pbnRzLCBlYWNoU2VyaWVzLCBjb25maWcsIGNvbnRleHQsIG9wdHMpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnc3RhY2snOlxyXG4gICAgICAgICAgdmFyIHBvaW50cyA9IGdldEJhclN0YWNrRGF0YVBvaW50cyhkYXRhLCBtaW5SYW5nZSwgbWF4UmFuZ2UsIHlBeGlzUG9pbnRzLCBlYWNoU3BhY2luZywgb3B0cywgY29uZmlnLCBzZXJpZXNJbmRleCwgc2VyaWVzLCBwcm9jZXNzKTtcclxuICAgICAgICAgIGRyYXdCYXJQb2ludFRleHQocG9pbnRzLCBlYWNoU2VyaWVzLCBjb25maWcsIGNvbnRleHQsIG9wdHMpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICByZXR1cm4ge1xyXG4gICAgeUF4aXNQb2ludHM6IHlBeGlzUG9pbnRzLFxyXG4gICAgY2FsUG9pbnRzOiBjYWxQb2ludHMsXHJcbiAgICBlYWNoU3BhY2luZzogZWFjaFNwYWNpbmdcclxuICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3Q2FuZGxlRGF0YVBvaW50cyhzZXJpZXMsIHNlcmllc01BLCBvcHRzLCBjb25maWcsIGNvbnRleHQpIHtcclxuICB2YXIgcHJvY2VzcyA9IGFyZ3VtZW50cy5sZW5ndGggPiA1ICYmIGFyZ3VtZW50c1s1XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzVdIDogMTtcclxuICB2YXIgY2FuZGxlT3B0aW9uID0gYXNzaWduKHt9LCB7XHJcbiAgICBjb2xvcjoge30sXHJcbiAgICBhdmVyYWdlOiB7fVxyXG4gIH0sIG9wdHMuZXh0cmEuY2FuZGxlKTtcclxuICBjYW5kbGVPcHRpb24uY29sb3IgPSBhc3NpZ24oe30sIHtcclxuICAgIHVwTGluZTogJyNmMDQ4NjQnLFxyXG4gICAgdXBGaWxsOiAnI2YwNDg2NCcsXHJcbiAgICBkb3duTGluZTogJyMyZmMyNWInLFxyXG4gICAgZG93bkZpbGw6ICcjMmZjMjViJ1xyXG4gIH0sIGNhbmRsZU9wdGlvbi5jb2xvcik7XHJcbiAgY2FuZGxlT3B0aW9uLmF2ZXJhZ2UgPSBhc3NpZ24oe30sIHtcclxuICAgIHNob3c6IGZhbHNlLFxyXG4gICAgbmFtZTogW10sXHJcbiAgICBkYXk6IFtdLFxyXG4gICAgY29sb3I6IGNvbmZpZy5jb2xvclxyXG4gIH0sIGNhbmRsZU9wdGlvbi5hdmVyYWdlKTtcclxuICBvcHRzLmV4dHJhLmNhbmRsZSA9IGNhbmRsZU9wdGlvbjtcclxuICBsZXQgeEF4aXNEYXRhID0gb3B0cy5jaGFydERhdGEueEF4aXNEYXRhLFxyXG4gICAgeEF4aXNQb2ludHMgPSB4QXhpc0RhdGEueEF4aXNQb2ludHMsXHJcbiAgICBlYWNoU3BhY2luZyA9IHhBeGlzRGF0YS5lYWNoU3BhY2luZztcclxuICBsZXQgY2FsUG9pbnRzID0gW107XHJcbiAgY29udGV4dC5zYXZlKCk7XHJcbiAgbGV0IGxlZnROdW0gPSAtMjtcclxuICBsZXQgcmlnaHROdW0gPSB4QXhpc1BvaW50cy5sZW5ndGggKyAyO1xyXG4gIGxldCBsZWZ0U3BhY2UgPSAwO1xyXG4gIGxldCByaWdodFNwYWNlID0gb3B0cy53aWR0aCArIGVhY2hTcGFjaW5nO1xyXG4gIGlmIChvcHRzLl9zY3JvbGxEaXN0YW5jZV8gJiYgb3B0cy5fc2Nyb2xsRGlzdGFuY2VfICE9PSAwICYmIG9wdHMuZW5hYmxlU2Nyb2xsID09PSB0cnVlKSB7XHJcbiAgICBjb250ZXh0LnRyYW5zbGF0ZShvcHRzLl9zY3JvbGxEaXN0YW5jZV8sIDApO1xyXG4gICAgbGVmdE51bSA9IE1hdGguZmxvb3IoLW9wdHMuX3Njcm9sbERpc3RhbmNlXyAvIGVhY2hTcGFjaW5nKSAtIDI7XHJcbiAgICByaWdodE51bSA9IGxlZnROdW0gKyBvcHRzLnhBeGlzLml0ZW1Db3VudCArIDQ7XHJcbiAgICBsZWZ0U3BhY2UgPSAtb3B0cy5fc2Nyb2xsRGlzdGFuY2VfIC0gZWFjaFNwYWNpbmcgKiAyICsgb3B0cy5hcmVhWzNdO1xyXG4gICAgcmlnaHRTcGFjZSA9IGxlZnRTcGFjZSArIChvcHRzLnhBeGlzLml0ZW1Db3VudCArIDQpICogZWFjaFNwYWNpbmc7XHJcbiAgfVxyXG4gIC8v55S75Z2H57q/XHJcbiAgaWYgKGNhbmRsZU9wdGlvbi5hdmVyYWdlLnNob3cgfHwgc2VyaWVzTUEpIHsgLy9NZXJnZSBwdWxsIHJlcXVlc3QgITEyIGZyb20g6YKx6LS157+UXHJcbiAgICBzZXJpZXNNQS5mb3JFYWNoKGZ1bmN0aW9uKGVhY2hTZXJpZXMsIHNlcmllc0luZGV4KSB7XHJcbiAgICAgIGxldCByYW5nZXMsIG1pblJhbmdlLCBtYXhSYW5nZTtcclxuICAgICAgcmFuZ2VzID0gW10uY29uY2F0KG9wdHMuY2hhcnREYXRhLnlBeGlzRGF0YS5yYW5nZXNbZWFjaFNlcmllcy5pbmRleF0pO1xyXG4gICAgICBtaW5SYW5nZSA9IHJhbmdlcy5wb3AoKTtcclxuICAgICAgbWF4UmFuZ2UgPSByYW5nZXMuc2hpZnQoKTtcclxuICAgICAgdmFyIGRhdGEgPSBlYWNoU2VyaWVzLmRhdGE7XHJcbiAgICAgIHZhciBwb2ludHMgPSBnZXREYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeEF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHByb2Nlc3MpO1xyXG4gICAgICB2YXIgc3BsaXRQb2ludExpc3QgPSBzcGxpdFBvaW50cyhwb2ludHMsZWFjaFNlcmllcyk7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3BsaXRQb2ludExpc3QubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBsZXQgcG9pbnRzID0gc3BsaXRQb2ludExpc3RbaV07XHJcbiAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKGVhY2hTZXJpZXMuY29sb3IpO1xyXG4gICAgICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKDEpO1xyXG4gICAgICAgIGlmIChwb2ludHMubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhwb2ludHNbMF0ueCwgcG9pbnRzWzBdLnkpO1xyXG4gICAgICAgICAgY29udGV4dC5hcmMocG9pbnRzWzBdLngsIHBvaW50c1swXS55LCAxLCAwLCAyICogTWF0aC5QSSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNvbnRleHQubW92ZVRvKHBvaW50c1swXS54LCBwb2ludHNbMF0ueSk7XHJcbiAgICAgICAgICBsZXQgc3RhcnRQb2ludCA9IDA7XHJcbiAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHBvaW50cy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICBsZXQgaXRlbSA9IHBvaW50c1tqXTtcclxuICAgICAgICAgICAgaWYgKHN0YXJ0UG9pbnQgPT0gMCAmJiBpdGVtLnggPiBsZWZ0U3BhY2UpIHtcclxuICAgICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtLngsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgICAgc3RhcnRQb2ludCA9IDE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGogPiAwICYmIGl0ZW0ueCA+IGxlZnRTcGFjZSAmJiBpdGVtLnggPCByaWdodFNwYWNlKSB7XHJcbiAgICAgICAgICAgICAgdmFyIGN0cmxQb2ludCA9IGNyZWF0ZUN1cnZlQ29udHJvbFBvaW50cyhwb2ludHMsIGogLSAxKTtcclxuICAgICAgICAgICAgICBjb250ZXh0LmJlemllckN1cnZlVG8oY3RybFBvaW50LmN0ckEueCwgY3RybFBvaW50LmN0ckEueSwgY3RybFBvaW50LmN0ckIueCwgY3RybFBvaW50LmN0ckIueSwgaXRlbS54LFxyXG4gICAgICAgICAgICAgICAgaXRlbS55KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgY29udGV4dC5tb3ZlVG8ocG9pbnRzWzBdLngsIHBvaW50c1swXS55KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbiAgLy/nlLtL57q/XHJcbiAgc2VyaWVzLmZvckVhY2goZnVuY3Rpb24oZWFjaFNlcmllcywgc2VyaWVzSW5kZXgpIHtcclxuICAgIGxldCByYW5nZXMsIG1pblJhbmdlLCBtYXhSYW5nZTtcclxuICAgIHJhbmdlcyA9IFtdLmNvbmNhdChvcHRzLmNoYXJ0RGF0YS55QXhpc0RhdGEucmFuZ2VzW2VhY2hTZXJpZXMuaW5kZXhdKTtcclxuICAgIG1pblJhbmdlID0gcmFuZ2VzLnBvcCgpO1xyXG4gICAgbWF4UmFuZ2UgPSByYW5nZXMuc2hpZnQoKTtcclxuICAgIHZhciBkYXRhID0gZWFjaFNlcmllcy5kYXRhO1xyXG4gICAgdmFyIHBvaW50cyA9IGdldENhbmRsZURhdGFQb2ludHMoZGF0YSwgbWluUmFuZ2UsIG1heFJhbmdlLCB4QXhpc1BvaW50cywgZWFjaFNwYWNpbmcsIG9wdHMsIGNvbmZpZywgcHJvY2Vzcyk7XHJcbiAgICBjYWxQb2ludHMucHVzaChwb2ludHMpO1xyXG4gICAgdmFyIHNwbGl0UG9pbnRMaXN0ID0gc3BsaXRQb2ludHMocG9pbnRzLGVhY2hTZXJpZXMpO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzcGxpdFBvaW50TGlzdFswXS5sZW5ndGg7IGkrKykge1xyXG4gICAgICBpZiAoaSA+IGxlZnROdW0gJiYgaSA8IHJpZ2h0TnVtKSB7XHJcbiAgICAgICAgbGV0IGl0ZW0gPSBzcGxpdFBvaW50TGlzdFswXVtpXTtcclxuICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgIC8v5aaC5p6c5LiK5raoXHJcbiAgICAgICAgaWYgKGRhdGFbaV1bMV0gLSBkYXRhW2ldWzBdID4gMCkge1xyXG4gICAgICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShjYW5kbGVPcHRpb24uY29sb3IudXBMaW5lKTtcclxuICAgICAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGNhbmRsZU9wdGlvbi5jb2xvci51cEZpbGwpO1xyXG4gICAgICAgICAgY29udGV4dC5zZXRMaW5lV2lkdGgoMSAqIG9wdHMucGl4KTtcclxuICAgICAgICAgIGNvbnRleHQubW92ZVRvKGl0ZW1bM10ueCwgaXRlbVszXS55KTsgLy/pobbngrlcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW1bMV0ueCwgaXRlbVsxXS55KTsgLy/mlLbnm5jkuK3pl7TngrlcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW1bMV0ueCAtIGVhY2hTcGFjaW5nIC8gNCwgaXRlbVsxXS55KTsgLy/mlLbnm5jlt6bkvqfngrlcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW1bMF0ueCAtIGVhY2hTcGFjaW5nIC8gNCwgaXRlbVswXS55KTsgLy/lvIDnm5jlt6bkvqfngrlcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW1bMF0ueCwgaXRlbVswXS55KTsgLy/lvIDnm5jkuK3pl7TngrlcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW1bMl0ueCwgaXRlbVsyXS55KTsgLy/lupXngrlcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW1bMF0ueCwgaXRlbVswXS55KTsgLy/lvIDnm5jkuK3pl7TngrlcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW1bMF0ueCArIGVhY2hTcGFjaW5nIC8gNCwgaXRlbVswXS55KTsgLy/lvIDnm5jlj7PkvqfngrlcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW1bMV0ueCArIGVhY2hTcGFjaW5nIC8gNCwgaXRlbVsxXS55KTsgLy/mlLbnm5jlj7PkvqfngrlcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW1bMV0ueCwgaXRlbVsxXS55KTsgLy/mlLbnm5jkuK3pl7TngrlcclxuICAgICAgICAgIGNvbnRleHQubW92ZVRvKGl0ZW1bM10ueCwgaXRlbVszXS55KTsgLy/pobbngrlcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShjYW5kbGVPcHRpb24uY29sb3IuZG93bkxpbmUpO1xyXG4gICAgICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoY2FuZGxlT3B0aW9uLmNvbG9yLmRvd25GaWxsKTtcclxuICAgICAgICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKDEgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtWzNdLngsIGl0ZW1bM10ueSk7IC8v6aG254K5XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtWzBdLngsIGl0ZW1bMF0ueSk7IC8v5byA55uY5Lit6Ze054K5XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtWzBdLnggLSBlYWNoU3BhY2luZyAvIDQsIGl0ZW1bMF0ueSk7IC8v5byA55uY5bem5L6n54K5XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtWzFdLnggLSBlYWNoU3BhY2luZyAvIDQsIGl0ZW1bMV0ueSk7IC8v5pS255uY5bem5L6n54K5XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtWzFdLngsIGl0ZW1bMV0ueSk7IC8v5pS255uY5Lit6Ze054K5XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtWzJdLngsIGl0ZW1bMl0ueSk7IC8v5bqV54K5XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtWzFdLngsIGl0ZW1bMV0ueSk7IC8v5pS255uY5Lit6Ze054K5XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtWzFdLnggKyBlYWNoU3BhY2luZyAvIDQsIGl0ZW1bMV0ueSk7IC8v5pS255uY5Y+z5L6n54K5XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtWzBdLnggKyBlYWNoU3BhY2luZyAvIDQsIGl0ZW1bMF0ueSk7IC8v5byA55uY5Y+z5L6n54K5XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtWzBdLngsIGl0ZW1bMF0ueSk7IC8v5byA55uY5Lit6Ze054K5XHJcbiAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtWzNdLngsIGl0ZW1bM10ueSk7IC8v6aG254K5XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0pO1xyXG4gIGNvbnRleHQucmVzdG9yZSgpO1xyXG4gIHJldHVybiB7XHJcbiAgICB4QXhpc1BvaW50czogeEF4aXNQb2ludHMsXHJcbiAgICBjYWxQb2ludHM6IGNhbFBvaW50cyxcclxuICAgIGVhY2hTcGFjaW5nOiBlYWNoU3BhY2luZ1xyXG4gIH07XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRyYXdBcmVhRGF0YVBvaW50cyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCkge1xyXG4gIHZhciBwcm9jZXNzID0gYXJndW1lbnRzLmxlbmd0aCA+IDQgJiYgYXJndW1lbnRzWzRdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbNF0gOiAxO1xyXG4gIHZhciBhcmVhT3B0aW9uID0gYXNzaWduKHt9LCB7XHJcbiAgICB0eXBlOiAnc3RyYWlnaHQnLFxyXG4gICAgb3BhY2l0eTogMC4yLFxyXG4gICAgYWRkTGluZTogZmFsc2UsXHJcbiAgICB3aWR0aDogMixcclxuICAgIGdyYWRpZW50OiBmYWxzZVxyXG4gIH0sIG9wdHMuZXh0cmEuYXJlYSk7XHJcbiAgbGV0IHhBeGlzRGF0YSA9IG9wdHMuY2hhcnREYXRhLnhBeGlzRGF0YSxcclxuICAgIHhBeGlzUG9pbnRzID0geEF4aXNEYXRhLnhBeGlzUG9pbnRzLFxyXG4gICAgZWFjaFNwYWNpbmcgPSB4QXhpc0RhdGEuZWFjaFNwYWNpbmc7XHJcbiAgbGV0IGVuZFkgPSBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXTtcclxuICBsZXQgY2FsUG9pbnRzID0gW107XHJcbiAgY29udGV4dC5zYXZlKCk7XHJcbiAgbGV0IGxlZnRTcGFjZSA9IDA7XHJcbiAgbGV0IHJpZ2h0U3BhY2UgPSBvcHRzLndpZHRoICsgZWFjaFNwYWNpbmc7XHJcbiAgaWYgKG9wdHMuX3Njcm9sbERpc3RhbmNlXyAmJiBvcHRzLl9zY3JvbGxEaXN0YW5jZV8gIT09IDAgJiYgb3B0cy5lbmFibGVTY3JvbGwgPT09IHRydWUpIHtcclxuICAgIGNvbnRleHQudHJhbnNsYXRlKG9wdHMuX3Njcm9sbERpc3RhbmNlXywgMCk7XHJcbiAgICBsZWZ0U3BhY2UgPSAtb3B0cy5fc2Nyb2xsRGlzdGFuY2VfIC0gZWFjaFNwYWNpbmcgKiAyICsgb3B0cy5hcmVhWzNdO1xyXG4gICAgcmlnaHRTcGFjZSA9IGxlZnRTcGFjZSArIChvcHRzLnhBeGlzLml0ZW1Db3VudCArIDQpICogZWFjaFNwYWNpbmc7XHJcbiAgfVxyXG4gIHNlcmllcy5mb3JFYWNoKGZ1bmN0aW9uKGVhY2hTZXJpZXMsIHNlcmllc0luZGV4KSB7XHJcbiAgICBsZXQgcmFuZ2VzLCBtaW5SYW5nZSwgbWF4UmFuZ2U7XHJcbiAgICByYW5nZXMgPSBbXS5jb25jYXQob3B0cy5jaGFydERhdGEueUF4aXNEYXRhLnJhbmdlc1tlYWNoU2VyaWVzLmluZGV4XSk7XHJcbiAgICBtaW5SYW5nZSA9IHJhbmdlcy5wb3AoKTtcclxuICAgIG1heFJhbmdlID0gcmFuZ2VzLnNoaWZ0KCk7XHJcbiAgICBsZXQgZGF0YSA9IGVhY2hTZXJpZXMuZGF0YTtcclxuICAgIGxldCBwb2ludHMgPSBnZXREYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeEF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHByb2Nlc3MpO1xyXG4gICAgY2FsUG9pbnRzLnB1c2gocG9pbnRzKTtcclxuICAgIGxldCBzcGxpdFBvaW50TGlzdCA9IHNwbGl0UG9pbnRzKHBvaW50cyxlYWNoU2VyaWVzKTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3BsaXRQb2ludExpc3QubGVuZ3RoOyBpKyspIHtcclxuICAgICAgbGV0IHBvaW50cyA9IHNwbGl0UG9pbnRMaXN0W2ldO1xyXG4gICAgICAvLyDnu5jliLbljLrln5/mlbBcclxuICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShoZXhUb1JnYihlYWNoU2VyaWVzLmNvbG9yLCBhcmVhT3B0aW9uLm9wYWNpdHkpKTtcclxuICAgICAgaWYgKGFyZWFPcHRpb24uZ3JhZGllbnQpIHtcclxuICAgICAgICBsZXQgZ3JhZGllbnQgPSBjb250ZXh0LmNyZWF0ZUxpbmVhckdyYWRpZW50KDAsIG9wdHMuYXJlYVswXSwgMCwgb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0pO1xyXG4gICAgICAgIGdyYWRpZW50LmFkZENvbG9yU3RvcCgnMCcsIGhleFRvUmdiKGVhY2hTZXJpZXMuY29sb3IsIGFyZWFPcHRpb24ub3BhY2l0eSkpO1xyXG4gICAgICAgIGdyYWRpZW50LmFkZENvbG9yU3RvcCgnMS4wJywgaGV4VG9SZ2IoXCIjRkZGRkZGXCIsIDAuMSkpO1xyXG4gICAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGdyYWRpZW50KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShoZXhUb1JnYihlYWNoU2VyaWVzLmNvbG9yLCBhcmVhT3B0aW9uLm9wYWNpdHkpKTtcclxuICAgICAgfVxyXG4gICAgICBjb250ZXh0LnNldExpbmVXaWR0aChhcmVhT3B0aW9uLndpZHRoICogb3B0cy5waXgpO1xyXG4gICAgICBpZiAocG9pbnRzLmxlbmd0aCA+IDEpIHtcclxuICAgICAgICBsZXQgZmlyc3RQb2ludCA9IHBvaW50c1swXTtcclxuICAgICAgICBsZXQgbGFzdFBvaW50ID0gcG9pbnRzW3BvaW50cy5sZW5ndGggLSAxXTtcclxuICAgICAgICBjb250ZXh0Lm1vdmVUbyhmaXJzdFBvaW50LngsIGZpcnN0UG9pbnQueSk7XHJcbiAgICAgICAgbGV0IHN0YXJ0UG9pbnQgPSAwO1xyXG4gICAgICAgIGlmIChhcmVhT3B0aW9uLnR5cGUgPT09ICdjdXJ2ZScpIHtcclxuICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgcG9pbnRzLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICAgIGxldCBpdGVtID0gcG9pbnRzW2pdO1xyXG4gICAgICAgICAgICBpZiAoc3RhcnRQb2ludCA9PSAwICYmIGl0ZW0ueCA+IGxlZnRTcGFjZSkge1xyXG4gICAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKGl0ZW0ueCwgaXRlbS55KTtcclxuICAgICAgICAgICAgICBzdGFydFBvaW50ID0gMTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoaiA+IDAgJiYgaXRlbS54ID4gbGVmdFNwYWNlICYmIGl0ZW0ueCA8IHJpZ2h0U3BhY2UpIHtcclxuICAgICAgICAgICAgICBsZXQgY3RybFBvaW50ID0gY3JlYXRlQ3VydmVDb250cm9sUG9pbnRzKHBvaW50cywgaiAtIDEpO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQuYmV6aWVyQ3VydmVUbyhjdHJsUG9pbnQuY3RyQS54LCBjdHJsUG9pbnQuY3RyQS55LCBjdHJsUG9pbnQuY3RyQi54LCBjdHJsUG9pbnQuY3RyQi55LCBpdGVtLngsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfSBcclxuICAgICAgICBpZiAoYXJlYU9wdGlvbi50eXBlID09PSAnc3RyYWlnaHQnKSB7XHJcbiAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHBvaW50cy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICBsZXQgaXRlbSA9IHBvaW50c1tqXTtcclxuICAgICAgICAgICAgaWYgKHN0YXJ0UG9pbnQgPT0gMCAmJiBpdGVtLnggPiBsZWZ0U3BhY2UpIHtcclxuICAgICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtLngsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgICAgc3RhcnRQb2ludCA9IDE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGogPiAwICYmIGl0ZW0ueCA+IGxlZnRTcGFjZSAmJiBpdGVtLnggPCByaWdodFNwYWNlKSB7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbS54LCBpdGVtLnkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoYXJlYU9wdGlvbi50eXBlID09PSAnc3RlcCcpIHtcclxuICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgcG9pbnRzLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICAgIGxldCBpdGVtID0gcG9pbnRzW2pdO1xyXG4gICAgICAgICAgICBpZiAoc3RhcnRQb2ludCA9PSAwICYmIGl0ZW0ueCA+IGxlZnRTcGFjZSkge1xyXG4gICAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKGl0ZW0ueCwgaXRlbS55KTtcclxuICAgICAgICAgICAgICBzdGFydFBvaW50ID0gMTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoaiA+IDAgJiYgaXRlbS54ID4gbGVmdFNwYWNlICYmIGl0ZW0ueCA8IHJpZ2h0U3BhY2UpIHtcclxuICAgICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLngsIHBvaW50c1tqIC0gMV0ueSk7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbS54LCBpdGVtLnkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb250ZXh0LmxpbmVUbyhsYXN0UG9pbnQueCwgZW5kWSk7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oZmlyc3RQb2ludC54LCBlbmRZKTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbyhmaXJzdFBvaW50LngsIGZpcnN0UG9pbnQueSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgbGV0IGl0ZW0gPSBwb2ludHNbMF07XHJcbiAgICAgICAgY29udGV4dC5tb3ZlVG8oaXRlbS54IC0gZWFjaFNwYWNpbmcgLyAyLCBpdGVtLnkpO1xyXG4gICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCArIGVhY2hTcGFjaW5nIC8gMiwgaXRlbS55KTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLnggKyBlYWNoU3BhY2luZyAvIDIsIGVuZFkpO1xyXG4gICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCAtIGVhY2hTcGFjaW5nIC8gMiwgZW5kWSk7XHJcbiAgICAgICAgY29udGV4dC5tb3ZlVG8oaXRlbS54IC0gZWFjaFNwYWNpbmcgLyAyLCBpdGVtLnkpO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICAvL+eUu+i/nue6v1xyXG4gICAgICBpZiAoYXJlYU9wdGlvbi5hZGRMaW5lKSB7XHJcbiAgICAgICAgaWYgKGVhY2hTZXJpZXMubGluZVR5cGUgPT0gJ2Rhc2gnKSB7XHJcbiAgICAgICAgICBsZXQgZGFzaExlbmd0aCA9IGVhY2hTZXJpZXMuZGFzaExlbmd0aCA/IGVhY2hTZXJpZXMuZGFzaExlbmd0aCA6IDg7XHJcbiAgICAgICAgICBkYXNoTGVuZ3RoICo9IG9wdHMucGl4O1xyXG4gICAgICAgICAgY29udGV4dC5zZXRMaW5lRGFzaChbZGFzaExlbmd0aCwgZGFzaExlbmd0aF0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoZWFjaFNlcmllcy5jb2xvcik7XHJcbiAgICAgICAgY29udGV4dC5zZXRMaW5lV2lkdGgoYXJlYU9wdGlvbi53aWR0aCAqIG9wdHMucGl4KTtcclxuICAgICAgICBpZiAocG9pbnRzLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgICAgY29udGV4dC5tb3ZlVG8ocG9pbnRzWzBdLngsIHBvaW50c1swXS55KTtcclxuICAgICAgICAgIGNvbnRleHQuYXJjKHBvaW50c1swXS54LCBwb2ludHNbMF0ueSwgMSwgMCwgMiAqIE1hdGguUEkpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhwb2ludHNbMF0ueCwgcG9pbnRzWzBdLnkpO1xyXG4gICAgICAgICAgbGV0IHN0YXJ0UG9pbnQgPSAwO1xyXG4gICAgICAgICAgaWYgKGFyZWFPcHRpb24udHlwZSA9PT0gJ2N1cnZlJykge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHBvaW50cy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICAgIGxldCBpdGVtID0gcG9pbnRzW2pdO1xyXG4gICAgICAgICAgICAgIGlmIChzdGFydFBvaW50ID09IDAgJiYgaXRlbS54ID4gbGVmdFNwYWNlKSB7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtLngsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgICAgICBzdGFydFBvaW50ID0gMTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgaWYgKGogPiAwICYmIGl0ZW0ueCA+IGxlZnRTcGFjZSAmJiBpdGVtLnggPCByaWdodFNwYWNlKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgY3RybFBvaW50ID0gY3JlYXRlQ3VydmVDb250cm9sUG9pbnRzKHBvaW50cywgaiAtIDEpO1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5iZXppZXJDdXJ2ZVRvKGN0cmxQb2ludC5jdHJBLngsIGN0cmxQb2ludC5jdHJBLnksIGN0cmxQb2ludC5jdHJCLngsIGN0cmxQb2ludC5jdHJCLnksIGl0ZW0ueCwgaXRlbS55KTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoYXJlYU9wdGlvbi50eXBlID09PSAnc3RyYWlnaHQnKSB7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgcG9pbnRzLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICAgICAgbGV0IGl0ZW0gPSBwb2ludHNbal07XHJcbiAgICAgICAgICAgICAgaWYgKHN0YXJ0UG9pbnQgPT0gMCAmJiBpdGVtLnggPiBsZWZ0U3BhY2UpIHtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKGl0ZW0ueCwgaXRlbS55KTtcclxuICAgICAgICAgICAgICAgIHN0YXJ0UG9pbnQgPSAxO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBpZiAoaiA+IDAgJiYgaXRlbS54ID4gbGVmdFNwYWNlICYmIGl0ZW0ueCA8IHJpZ2h0U3BhY2UpIHtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCwgaXRlbS55KTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoYXJlYU9wdGlvbi50eXBlID09PSAnc3RlcCcpIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBwb2ludHMubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICAgICAgICBsZXQgaXRlbSA9IHBvaW50c1tqXTtcclxuICAgICAgICAgICAgICBpZiAoc3RhcnRQb2ludCA9PSAwICYmIGl0ZW0ueCA+IGxlZnRTcGFjZSkge1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5tb3ZlVG8oaXRlbS54LCBpdGVtLnkpO1xyXG4gICAgICAgICAgICAgICAgc3RhcnRQb2ludCA9IDE7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGlmIChqID4gMCAmJiBpdGVtLnggPiBsZWZ0U3BhY2UgJiYgaXRlbS54IDwgcmlnaHRTcGFjZSkge1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbS54LCBwb2ludHNbaiAtIDFdLnkpO1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbS54LCBpdGVtLnkpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGNvbnRleHQubW92ZVRvKHBvaW50c1swXS54LCBwb2ludHNbMF0ueSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgICAgY29udGV4dC5zZXRMaW5lRGFzaChbXSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIC8v55S754K5XHJcbiAgICBpZiAob3B0cy5kYXRhUG9pbnRTaGFwZSAhPT0gZmFsc2UpIHtcclxuICAgICAgZHJhd1BvaW50U2hhcGUocG9pbnRzLCBlYWNoU2VyaWVzLmNvbG9yLCBlYWNoU2VyaWVzLnBvaW50U2hhcGUsIGNvbnRleHQsIG9wdHMpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG5cclxuICBpZiAob3B0cy5kYXRhTGFiZWwgIT09IGZhbHNlICYmIHByb2Nlc3MgPT09IDEpIHtcclxuICAgIHNlcmllcy5mb3JFYWNoKGZ1bmN0aW9uKGVhY2hTZXJpZXMsIHNlcmllc0luZGV4KSB7XHJcbiAgICAgIGxldCByYW5nZXMsIG1pblJhbmdlLCBtYXhSYW5nZTtcclxuICAgICAgcmFuZ2VzID0gW10uY29uY2F0KG9wdHMuY2hhcnREYXRhLnlBeGlzRGF0YS5yYW5nZXNbZWFjaFNlcmllcy5pbmRleF0pO1xyXG4gICAgICBtaW5SYW5nZSA9IHJhbmdlcy5wb3AoKTtcclxuICAgICAgbWF4UmFuZ2UgPSByYW5nZXMuc2hpZnQoKTtcclxuICAgICAgdmFyIGRhdGEgPSBlYWNoU2VyaWVzLmRhdGE7XHJcbiAgICAgIHZhciBwb2ludHMgPSBnZXREYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeEF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHByb2Nlc3MpO1xyXG4gICAgICBkcmF3UG9pbnRUZXh0KHBvaW50cywgZWFjaFNlcmllcywgY29uZmlnLCBjb250ZXh0LCBvcHRzKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBjb250ZXh0LnJlc3RvcmUoKTtcclxuICByZXR1cm4ge1xyXG4gICAgeEF4aXNQb2ludHM6IHhBeGlzUG9pbnRzLFxyXG4gICAgY2FsUG9pbnRzOiBjYWxQb2ludHMsXHJcbiAgICBlYWNoU3BhY2luZzogZWFjaFNwYWNpbmdcclxuICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3U2NhdHRlckRhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpIHtcclxuICB2YXIgcHJvY2VzcyA9IGFyZ3VtZW50cy5sZW5ndGggPiA0ICYmIGFyZ3VtZW50c1s0XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzRdIDogMTtcclxuICB2YXIgc2NhdHRlck9wdGlvbiA9IGFzc2lnbih7fSwge1xyXG4gICAgdHlwZTogJ2NpcmNsZSdcclxuICB9LCBvcHRzLmV4dHJhLnNjYXR0ZXIpO1xyXG4gIGxldCB4QXhpc0RhdGEgPSBvcHRzLmNoYXJ0RGF0YS54QXhpc0RhdGEsXHJcbiAgICB4QXhpc1BvaW50cyA9IHhBeGlzRGF0YS54QXhpc1BvaW50cyxcclxuICAgIGVhY2hTcGFjaW5nID0geEF4aXNEYXRhLmVhY2hTcGFjaW5nO1xyXG4gIHZhciBjYWxQb2ludHMgPSBbXTtcclxuICBjb250ZXh0LnNhdmUoKTtcclxuICBsZXQgbGVmdFNwYWNlID0gMDtcclxuICBsZXQgcmlnaHRTcGFjZSA9IG9wdHMud2lkdGggKyBlYWNoU3BhY2luZztcclxuICBpZiAob3B0cy5fc2Nyb2xsRGlzdGFuY2VfICYmIG9wdHMuX3Njcm9sbERpc3RhbmNlXyAhPT0gMCAmJiBvcHRzLmVuYWJsZVNjcm9sbCA9PT0gdHJ1ZSkge1xyXG4gICAgY29udGV4dC50cmFuc2xhdGUob3B0cy5fc2Nyb2xsRGlzdGFuY2VfLCAwKTtcclxuICAgIGxlZnRTcGFjZSA9IC1vcHRzLl9zY3JvbGxEaXN0YW5jZV8gLSBlYWNoU3BhY2luZyAqIDIgKyBvcHRzLmFyZWFbM107XHJcbiAgICByaWdodFNwYWNlID0gbGVmdFNwYWNlICsgKG9wdHMueEF4aXMuaXRlbUNvdW50ICsgNCkgKiBlYWNoU3BhY2luZztcclxuICB9XHJcbiAgc2VyaWVzLmZvckVhY2goZnVuY3Rpb24oZWFjaFNlcmllcywgc2VyaWVzSW5kZXgpIHtcclxuICAgIGxldCByYW5nZXMsIG1pblJhbmdlLCBtYXhSYW5nZTtcclxuICAgIHJhbmdlcyA9IFtdLmNvbmNhdChvcHRzLmNoYXJ0RGF0YS55QXhpc0RhdGEucmFuZ2VzW2VhY2hTZXJpZXMuaW5kZXhdKTtcclxuICAgIG1pblJhbmdlID0gcmFuZ2VzLnBvcCgpO1xyXG4gICAgbWF4UmFuZ2UgPSByYW5nZXMuc2hpZnQoKTtcclxuICAgIHZhciBkYXRhID0gZWFjaFNlcmllcy5kYXRhO1xyXG4gICAgdmFyIHBvaW50cyA9IGdldERhdGFQb2ludHMoZGF0YSwgbWluUmFuZ2UsIG1heFJhbmdlLCB4QXhpc1BvaW50cywgZWFjaFNwYWNpbmcsIG9wdHMsIGNvbmZpZywgcHJvY2Vzcyk7XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShlYWNoU2VyaWVzLmNvbG9yKTtcclxuICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGVhY2hTZXJpZXMuY29sb3IpO1xyXG4gICAgY29udGV4dC5zZXRMaW5lV2lkdGgoMSAqIG9wdHMucGl4KTtcclxuICAgIHZhciBzaGFwZSA9IGVhY2hTZXJpZXMucG9pbnRTaGFwZTtcclxuICAgIGlmIChzaGFwZSA9PT0gJ2RpYW1vbmQnKSB7XHJcbiAgICAgIHBvaW50cy5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICAgICAgaWYgKGl0ZW0gIT09IG51bGwpIHtcclxuICAgICAgICAgIGNvbnRleHQubW92ZVRvKGl0ZW0ueCwgaXRlbS55IC0gNC41KTtcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCAtIDQuNSwgaXRlbS55KTtcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCwgaXRlbS55ICsgNC41KTtcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCArIDQuNSwgaXRlbS55KTtcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCwgaXRlbS55IC0gNC41KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIGlmIChzaGFwZSA9PT0gJ2NpcmNsZScpIHtcclxuICAgICAgcG9pbnRzLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgICAgICBpZiAoaXRlbSAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgY29udGV4dC5tb3ZlVG8oaXRlbS54ICsgMi41ICogb3B0cy5waXgsIGl0ZW0ueSk7XHJcbiAgICAgICAgICBjb250ZXh0LmFyYyhpdGVtLngsIGl0ZW0ueSwgMyAqIG9wdHMucGl4LCAwLCAyICogTWF0aC5QSSwgZmFsc2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2UgaWYgKHNoYXBlID09PSAnc3F1YXJlJykge1xyXG4gICAgICBwb2ludHMuZm9yRWFjaChmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgICAgIGlmIChpdGVtICE9PSBudWxsKSB7XHJcbiAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtLnggLSAzLjUsIGl0ZW0ueSAtIDMuNSk7XHJcbiAgICAgICAgICBjb250ZXh0LnJlY3QoaXRlbS54IC0gMy41LCBpdGVtLnkgLSAzLjUsIDcsIDcpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2UgaWYgKHNoYXBlID09PSAndHJpYW5nbGUnKSB7XHJcbiAgICAgIHBvaW50cy5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICAgICAgaWYgKGl0ZW0gIT09IG51bGwpIHtcclxuICAgICAgICAgIGNvbnRleHQubW92ZVRvKGl0ZW0ueCwgaXRlbS55IC0gNC41KTtcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCAtIDQuNSwgaXRlbS55ICsgNC41KTtcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCArIDQuNSwgaXRlbS55ICsgNC41KTtcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCwgaXRlbS55IC0gNC41KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIGlmIChzaGFwZSA9PT0gJ3RyaWFuZ2xlJykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgY29udGV4dC5maWxsKCk7XHJcbiAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gIH0pO1xyXG4gIGlmIChvcHRzLmRhdGFMYWJlbCAhPT0gZmFsc2UgJiYgcHJvY2VzcyA9PT0gMSkge1xyXG4gICAgc2VyaWVzLmZvckVhY2goZnVuY3Rpb24oZWFjaFNlcmllcywgc2VyaWVzSW5kZXgpIHtcclxuICAgICAgbGV0IHJhbmdlcywgbWluUmFuZ2UsIG1heFJhbmdlO1xyXG4gICAgICByYW5nZXMgPSBbXS5jb25jYXQob3B0cy5jaGFydERhdGEueUF4aXNEYXRhLnJhbmdlc1tlYWNoU2VyaWVzLmluZGV4XSk7XHJcbiAgICAgIG1pblJhbmdlID0gcmFuZ2VzLnBvcCgpO1xyXG4gICAgICBtYXhSYW5nZSA9IHJhbmdlcy5zaGlmdCgpO1xyXG4gICAgICB2YXIgZGF0YSA9IGVhY2hTZXJpZXMuZGF0YTtcclxuICAgICAgdmFyIHBvaW50cyA9IGdldERhdGFQb2ludHMoZGF0YSwgbWluUmFuZ2UsIG1heFJhbmdlLCB4QXhpc1BvaW50cywgZWFjaFNwYWNpbmcsIG9wdHMsIGNvbmZpZywgcHJvY2Vzcyk7XHJcbiAgICAgIGRyYXdQb2ludFRleHQocG9pbnRzLCBlYWNoU2VyaWVzLCBjb25maWcsIGNvbnRleHQsIG9wdHMpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGNvbnRleHQucmVzdG9yZSgpO1xyXG4gIHJldHVybiB7XHJcbiAgICB4QXhpc1BvaW50czogeEF4aXNQb2ludHMsXHJcbiAgICBjYWxQb2ludHM6IGNhbFBvaW50cyxcclxuICAgIGVhY2hTcGFjaW5nOiBlYWNoU3BhY2luZ1xyXG4gIH07XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRyYXdCdWJibGVEYXRhUG9pbnRzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KSB7XHJcbiAgdmFyIHByb2Nlc3MgPSBhcmd1bWVudHMubGVuZ3RoID4gNCAmJiBhcmd1bWVudHNbNF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s0XSA6IDE7XHJcbiAgdmFyIGJ1YmJsZU9wdGlvbiA9IGFzc2lnbih7fSwge1xyXG4gICAgb3BhY2l0eTogMSxcclxuICAgIGJvcmRlcjoyXHJcbiAgfSwgb3B0cy5leHRyYS5idWJibGUpO1xyXG4gIGxldCB4QXhpc0RhdGEgPSBvcHRzLmNoYXJ0RGF0YS54QXhpc0RhdGEsXHJcbiAgICB4QXhpc1BvaW50cyA9IHhBeGlzRGF0YS54QXhpc1BvaW50cyxcclxuICAgIGVhY2hTcGFjaW5nID0geEF4aXNEYXRhLmVhY2hTcGFjaW5nO1xyXG4gIHZhciBjYWxQb2ludHMgPSBbXTtcclxuICBjb250ZXh0LnNhdmUoKTtcclxuICBsZXQgbGVmdFNwYWNlID0gMDtcclxuICBsZXQgcmlnaHRTcGFjZSA9IG9wdHMud2lkdGggKyBlYWNoU3BhY2luZztcclxuICBpZiAob3B0cy5fc2Nyb2xsRGlzdGFuY2VfICYmIG9wdHMuX3Njcm9sbERpc3RhbmNlXyAhPT0gMCAmJiBvcHRzLmVuYWJsZVNjcm9sbCA9PT0gdHJ1ZSkge1xyXG4gICAgY29udGV4dC50cmFuc2xhdGUob3B0cy5fc2Nyb2xsRGlzdGFuY2VfLCAwKTtcclxuICAgIGxlZnRTcGFjZSA9IC1vcHRzLl9zY3JvbGxEaXN0YW5jZV8gLSBlYWNoU3BhY2luZyAqIDIgKyBvcHRzLmFyZWFbM107XHJcbiAgICByaWdodFNwYWNlID0gbGVmdFNwYWNlICsgKG9wdHMueEF4aXMuaXRlbUNvdW50ICsgNCkgKiBlYWNoU3BhY2luZztcclxuICB9XHJcbiAgc2VyaWVzLmZvckVhY2goZnVuY3Rpb24oZWFjaFNlcmllcywgc2VyaWVzSW5kZXgpIHtcclxuICAgIGxldCByYW5nZXMsIG1pblJhbmdlLCBtYXhSYW5nZTtcclxuICAgIHJhbmdlcyA9IFtdLmNvbmNhdChvcHRzLmNoYXJ0RGF0YS55QXhpc0RhdGEucmFuZ2VzW2VhY2hTZXJpZXMuaW5kZXhdKTtcclxuICAgIG1pblJhbmdlID0gcmFuZ2VzLnBvcCgpO1xyXG4gICAgbWF4UmFuZ2UgPSByYW5nZXMuc2hpZnQoKTtcclxuICAgIHZhciBkYXRhID0gZWFjaFNlcmllcy5kYXRhO1xyXG4gICAgdmFyIHBvaW50cyA9IGdldERhdGFQb2ludHMoZGF0YSwgbWluUmFuZ2UsIG1heFJhbmdlLCB4QXhpc1BvaW50cywgZWFjaFNwYWNpbmcsIG9wdHMsIGNvbmZpZywgcHJvY2Vzcyk7XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShlYWNoU2VyaWVzLmNvbG9yKTtcclxuICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKGJ1YmJsZU9wdGlvbi5ib3JkZXIgKiBvcHRzLnBpeCk7XHJcbiAgICBjb250ZXh0LnNldEZpbGxTdHlsZShoZXhUb1JnYihlYWNoU2VyaWVzLmNvbG9yLCBidWJibGVPcHRpb24ub3BhY2l0eSkpO1xyXG4gICAgcG9pbnRzLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgICAgY29udGV4dC5tb3ZlVG8oaXRlbS54ICsgaXRlbS5yLCBpdGVtLnkpO1xyXG4gICAgICBjb250ZXh0LmFyYyhpdGVtLngsIGl0ZW0ueSwgaXRlbS5yICogb3B0cy5waXgsIDAsIDIgKiBNYXRoLlBJLCBmYWxzZSk7XHJcbiAgICB9KTtcclxuICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICBcclxuICAgIGlmIChvcHRzLmRhdGFMYWJlbCAhPT0gZmFsc2UgJiYgcHJvY2VzcyA9PT0gMSkge1xyXG4gICAgICBwb2ludHMuZm9yRWFjaChmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgdmFyIGZvbnRTaXplID0gZWFjaFNlcmllcy50ZXh0U2l6ZSAqIG9wdHMucGl4IHx8IGNvbmZpZy5mb250U2l6ZTtcclxuICAgICAgICBjb250ZXh0LnNldEZvbnRTaXplKGZvbnRTaXplKTtcclxuICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShlYWNoU2VyaWVzLnRleHRDb2xvciB8fCBcIiNGRkZGRkZcIik7XHJcbiAgICAgICAgY29udGV4dC5zZXRUZXh0QWxpZ24oJ2NlbnRlcicpO1xyXG4gICAgICAgIGNvbnRleHQuZmlsbFRleHQoU3RyaW5nKGl0ZW0udCksIGl0ZW0ueCwgaXRlbS55ICsgZm9udFNpemUvMik7XHJcbiAgICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICAgIGNvbnRleHQuc2V0VGV4dEFsaWduKCdsZWZ0Jyk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH0pO1xyXG4gIGNvbnRleHQucmVzdG9yZSgpO1xyXG4gIHJldHVybiB7XHJcbiAgICB4QXhpc1BvaW50czogeEF4aXNQb2ludHMsXHJcbiAgICBjYWxQb2ludHM6IGNhbFBvaW50cyxcclxuICAgIGVhY2hTcGFjaW5nOiBlYWNoU3BhY2luZ1xyXG4gIH07XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRyYXdMaW5lRGF0YVBvaW50cyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCkge1xyXG4gIHZhciBwcm9jZXNzID0gYXJndW1lbnRzLmxlbmd0aCA+IDQgJiYgYXJndW1lbnRzWzRdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbNF0gOiAxO1xyXG4gIHZhciBsaW5lT3B0aW9uID0gYXNzaWduKHt9LCB7XHJcbiAgICB0eXBlOiAnc3RyYWlnaHQnLFxyXG4gICAgd2lkdGg6IDJcclxuICB9LCBvcHRzLmV4dHJhLmxpbmUpO1xyXG4gIGxpbmVPcHRpb24ud2lkdGggKj0gb3B0cy5waXg7XHJcbiAgbGV0IHhBeGlzRGF0YSA9IG9wdHMuY2hhcnREYXRhLnhBeGlzRGF0YSxcclxuICAgIHhBeGlzUG9pbnRzID0geEF4aXNEYXRhLnhBeGlzUG9pbnRzLFxyXG4gICAgZWFjaFNwYWNpbmcgPSB4QXhpc0RhdGEuZWFjaFNwYWNpbmc7XHJcbiAgdmFyIGNhbFBvaW50cyA9IFtdO1xyXG4gIGNvbnRleHQuc2F2ZSgpO1xyXG4gIGxldCBsZWZ0U3BhY2UgPSAwO1xyXG4gIGxldCByaWdodFNwYWNlID0gb3B0cy53aWR0aCArIGVhY2hTcGFjaW5nO1xyXG4gIGlmIChvcHRzLl9zY3JvbGxEaXN0YW5jZV8gJiYgb3B0cy5fc2Nyb2xsRGlzdGFuY2VfICE9PSAwICYmIG9wdHMuZW5hYmxlU2Nyb2xsID09PSB0cnVlKSB7XHJcbiAgICBjb250ZXh0LnRyYW5zbGF0ZShvcHRzLl9zY3JvbGxEaXN0YW5jZV8sIDApO1xyXG4gICAgbGVmdFNwYWNlID0gLW9wdHMuX3Njcm9sbERpc3RhbmNlXyAtIGVhY2hTcGFjaW5nICogMiArIG9wdHMuYXJlYVszXTtcclxuICAgIHJpZ2h0U3BhY2UgPSBsZWZ0U3BhY2UgKyAob3B0cy54QXhpcy5pdGVtQ291bnQgKyA0KSAqIGVhY2hTcGFjaW5nO1xyXG4gIH1cclxuICBzZXJpZXMuZm9yRWFjaChmdW5jdGlvbihlYWNoU2VyaWVzLCBzZXJpZXNJbmRleCkge1xyXG4gICAgbGV0IHJhbmdlcywgbWluUmFuZ2UsIG1heFJhbmdlO1xyXG4gICAgcmFuZ2VzID0gW10uY29uY2F0KG9wdHMuY2hhcnREYXRhLnlBeGlzRGF0YS5yYW5nZXNbZWFjaFNlcmllcy5pbmRleF0pO1xyXG4gICAgbWluUmFuZ2UgPSByYW5nZXMucG9wKCk7XHJcbiAgICBtYXhSYW5nZSA9IHJhbmdlcy5zaGlmdCgpO1xyXG4gICAgdmFyIGRhdGEgPSBlYWNoU2VyaWVzLmRhdGE7XHJcbiAgICB2YXIgcG9pbnRzID0gZ2V0RGF0YVBvaW50cyhkYXRhLCBtaW5SYW5nZSwgbWF4UmFuZ2UsIHhBeGlzUG9pbnRzLCBlYWNoU3BhY2luZywgb3B0cywgY29uZmlnLCBwcm9jZXNzKTtcclxuICAgIGNhbFBvaW50cy5wdXNoKHBvaW50cyk7XHJcbiAgICB2YXIgc3BsaXRQb2ludExpc3QgPSBzcGxpdFBvaW50cyhwb2ludHMsZWFjaFNlcmllcyk7XHJcbiAgICBpZiAoZWFjaFNlcmllcy5saW5lVHlwZSA9PSAnZGFzaCcpIHtcclxuICAgICAgbGV0IGRhc2hMZW5ndGggPSBlYWNoU2VyaWVzLmRhc2hMZW5ndGggPyBlYWNoU2VyaWVzLmRhc2hMZW5ndGggOiA4O1xyXG4gICAgICBkYXNoTGVuZ3RoICo9IG9wdHMucGl4O1xyXG4gICAgICBjb250ZXh0LnNldExpbmVEYXNoKFtkYXNoTGVuZ3RoLCBkYXNoTGVuZ3RoXSk7XHJcbiAgICB9XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShlYWNoU2VyaWVzLmNvbG9yKTtcclxuICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKGxpbmVPcHRpb24ud2lkdGgpO1xyXG4gICAgc3BsaXRQb2ludExpc3QuZm9yRWFjaChmdW5jdGlvbihwb2ludHMsIGluZGV4KSB7XHJcbiAgICAgIGlmIChwb2ludHMubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgICAgY29udGV4dC5tb3ZlVG8ocG9pbnRzWzBdLngsIHBvaW50c1swXS55KTtcclxuICAgICAgICBjb250ZXh0LmFyYyhwb2ludHNbMF0ueCwgcG9pbnRzWzBdLnksIDEsIDAsIDIgKiBNYXRoLlBJKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb250ZXh0Lm1vdmVUbyhwb2ludHNbMF0ueCwgcG9pbnRzWzBdLnkpO1xyXG4gICAgICAgIGxldCBzdGFydFBvaW50ID0gMDtcclxuICAgICAgICBpZiAobGluZU9wdGlvbi50eXBlID09PSAnY3VydmUnKSB7XHJcbiAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHBvaW50cy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICBsZXQgaXRlbSA9IHBvaW50c1tqXTtcclxuICAgICAgICAgICAgaWYgKHN0YXJ0UG9pbnQgPT0gMCAmJiBpdGVtLnggPiBsZWZ0U3BhY2UpIHtcclxuICAgICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtLngsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgICAgc3RhcnRQb2ludCA9IDE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGogPiAwICYmIGl0ZW0ueCA+IGxlZnRTcGFjZSAmJiBpdGVtLnggPCByaWdodFNwYWNlKSB7XHJcbiAgICAgICAgICAgICAgdmFyIGN0cmxQb2ludCA9IGNyZWF0ZUN1cnZlQ29udHJvbFBvaW50cyhwb2ludHMsIGogLSAxKTtcclxuICAgICAgICAgICAgICBjb250ZXh0LmJlemllckN1cnZlVG8oY3RybFBvaW50LmN0ckEueCwgY3RybFBvaW50LmN0ckEueSwgY3RybFBvaW50LmN0ckIueCwgY3RybFBvaW50LmN0ckIueSwgaXRlbS54LCBpdGVtLnkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAobGluZU9wdGlvbi50eXBlID09PSAnc3RyYWlnaHQnKSB7XHJcbiAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHBvaW50cy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICBsZXQgaXRlbSA9IHBvaW50c1tqXTtcclxuICAgICAgICAgICAgaWYgKHN0YXJ0UG9pbnQgPT0gMCAmJiBpdGVtLnggPiBsZWZ0U3BhY2UpIHtcclxuICAgICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtLngsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgICAgc3RhcnRQb2ludCA9IDE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGogPiAwICYmIGl0ZW0ueCA+IGxlZnRTcGFjZSAmJiBpdGVtLnggPCByaWdodFNwYWNlKSB7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbS54LCBpdGVtLnkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAobGluZU9wdGlvbi50eXBlID09PSAnc3RlcCcpIHtcclxuICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgcG9pbnRzLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICAgIGxldCBpdGVtID0gcG9pbnRzW2pdO1xyXG4gICAgICAgICAgICBpZiAoc3RhcnRQb2ludCA9PSAwICYmIGl0ZW0ueCA+IGxlZnRTcGFjZSkge1xyXG4gICAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKGl0ZW0ueCwgaXRlbS55KTtcclxuICAgICAgICAgICAgICBzdGFydFBvaW50ID0gMTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoaiA+IDAgJiYgaXRlbS54ID4gbGVmdFNwYWNlICYmIGl0ZW0ueCA8IHJpZ2h0U3BhY2UpIHtcclxuICAgICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLngsIHBvaW50c1tqIC0gMV0ueSk7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbS54LCBpdGVtLnkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb250ZXh0Lm1vdmVUbyhwb2ludHNbMF0ueCwgcG9pbnRzWzBdLnkpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICBjb250ZXh0LnNldExpbmVEYXNoKFtdKTtcclxuICAgIGlmIChvcHRzLmRhdGFQb2ludFNoYXBlICE9PSBmYWxzZSkge1xyXG4gICAgICBkcmF3UG9pbnRTaGFwZShwb2ludHMsIGVhY2hTZXJpZXMuY29sb3IsIGVhY2hTZXJpZXMucG9pbnRTaGFwZSwgY29udGV4dCwgb3B0cyk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgaWYgKG9wdHMuZGF0YUxhYmVsICE9PSBmYWxzZSAmJiBwcm9jZXNzID09PSAxKSB7XHJcbiAgICBzZXJpZXMuZm9yRWFjaChmdW5jdGlvbihlYWNoU2VyaWVzLCBzZXJpZXNJbmRleCkge1xyXG4gICAgICBsZXQgcmFuZ2VzLCBtaW5SYW5nZSwgbWF4UmFuZ2U7XHJcbiAgICAgIHJhbmdlcyA9IFtdLmNvbmNhdChvcHRzLmNoYXJ0RGF0YS55QXhpc0RhdGEucmFuZ2VzW2VhY2hTZXJpZXMuaW5kZXhdKTtcclxuICAgICAgbWluUmFuZ2UgPSByYW5nZXMucG9wKCk7XHJcbiAgICAgIG1heFJhbmdlID0gcmFuZ2VzLnNoaWZ0KCk7XHJcbiAgICAgIHZhciBkYXRhID0gZWFjaFNlcmllcy5kYXRhO1xyXG4gICAgICB2YXIgcG9pbnRzID0gZ2V0RGF0YVBvaW50cyhkYXRhLCBtaW5SYW5nZSwgbWF4UmFuZ2UsIHhBeGlzUG9pbnRzLCBlYWNoU3BhY2luZywgb3B0cywgY29uZmlnLCBwcm9jZXNzKTtcclxuICAgICAgZHJhd1BvaW50VGV4dChwb2ludHMsIGVhY2hTZXJpZXMsIGNvbmZpZywgY29udGV4dCwgb3B0cyk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgY29udGV4dC5yZXN0b3JlKCk7XHJcbiAgcmV0dXJuIHtcclxuICAgIHhBeGlzUG9pbnRzOiB4QXhpc1BvaW50cyxcclxuICAgIGNhbFBvaW50czogY2FsUG9pbnRzLFxyXG4gICAgZWFjaFNwYWNpbmc6IGVhY2hTcGFjaW5nXHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd01peERhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpIHtcclxuICBsZXQgcHJvY2VzcyA9IGFyZ3VtZW50cy5sZW5ndGggPiA0ICYmIGFyZ3VtZW50c1s0XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzRdIDogMTtcclxuICBsZXQgeEF4aXNEYXRhID0gb3B0cy5jaGFydERhdGEueEF4aXNEYXRhLFxyXG4gICAgeEF4aXNQb2ludHMgPSB4QXhpc0RhdGEueEF4aXNQb2ludHMsXHJcbiAgICBlYWNoU3BhY2luZyA9IHhBeGlzRGF0YS5lYWNoU3BhY2luZztcclxuICBsZXQgY29sdW1uT3B0aW9uID0gYXNzaWduKHt9LCB7XHJcbiAgICB3aWR0aDogZWFjaFNwYWNpbmcgLyAyLFxyXG4gICAgYmFyQm9yZGVyQ2lyY2xlOiBmYWxzZSxcclxuICAgIGJhckJvcmRlclJhZGl1czogW10sXHJcbiAgICBzZXJpZXNHYXA6IDIsXHJcbiAgICBsaW5lYXJUeXBlOiAnbm9uZScsXHJcbiAgICBsaW5lYXJPcGFjaXR5OiAxLFxyXG4gICAgY3VzdG9tQ29sb3I6IFtdLFxyXG4gICAgY29sb3JTdG9wOiAwLFxyXG4gIH0sIG9wdHMuZXh0cmEubWl4LmNvbHVtbik7XHJcbiAgbGV0IGFyZWFPcHRpb24gPSBhc3NpZ24oe30sIHtcclxuICAgIG9wYWNpdHk6IDAuMixcclxuICAgIGdyYWRpZW50OiBmYWxzZVxyXG4gIH0sIG9wdHMuZXh0cmEubWl4LmFyZWEpO1xyXG4gIGxldCBsaW5lT3B0aW9uID0gYXNzaWduKHt9LCB7XHJcbiAgICB3aWR0aDogMlxyXG4gIH0sIG9wdHMuZXh0cmEubWl4LmxpbmUpO1xyXG4gIGxldCBlbmRZID0gb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl07XHJcbiAgbGV0IGNhbFBvaW50cyA9IFtdO1xyXG4gIHZhciBjb2x1bW5JbmRleCA9IDA7XHJcbiAgdmFyIGNvbHVtbkxlbmd0aCA9IDA7XHJcbiAgc2VyaWVzLmZvckVhY2goZnVuY3Rpb24oZWFjaFNlcmllcywgc2VyaWVzSW5kZXgpIHtcclxuICAgIGlmIChlYWNoU2VyaWVzLnR5cGUgPT0gJ2NvbHVtbicpIHtcclxuICAgICAgY29sdW1uTGVuZ3RoICs9IDE7XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgY29udGV4dC5zYXZlKCk7XHJcbiAgbGV0IGxlZnROdW0gPSAtMjtcclxuICBsZXQgcmlnaHROdW0gPSB4QXhpc1BvaW50cy5sZW5ndGggKyAyO1xyXG4gIGxldCBsZWZ0U3BhY2UgPSAwO1xyXG4gIGxldCByaWdodFNwYWNlID0gb3B0cy53aWR0aCArIGVhY2hTcGFjaW5nO1xyXG4gIGlmIChvcHRzLl9zY3JvbGxEaXN0YW5jZV8gJiYgb3B0cy5fc2Nyb2xsRGlzdGFuY2VfICE9PSAwICYmIG9wdHMuZW5hYmxlU2Nyb2xsID09PSB0cnVlKSB7XHJcbiAgICBjb250ZXh0LnRyYW5zbGF0ZShvcHRzLl9zY3JvbGxEaXN0YW5jZV8sIDApO1xyXG4gICAgbGVmdE51bSA9IE1hdGguZmxvb3IoLW9wdHMuX3Njcm9sbERpc3RhbmNlXyAvIGVhY2hTcGFjaW5nKSAtIDI7XHJcbiAgICByaWdodE51bSA9IGxlZnROdW0gKyBvcHRzLnhBeGlzLml0ZW1Db3VudCArIDQ7XHJcbiAgICBsZWZ0U3BhY2UgPSAtb3B0cy5fc2Nyb2xsRGlzdGFuY2VfIC0gZWFjaFNwYWNpbmcgKiAyICsgb3B0cy5hcmVhWzNdO1xyXG4gICAgcmlnaHRTcGFjZSA9IGxlZnRTcGFjZSArIChvcHRzLnhBeGlzLml0ZW1Db3VudCArIDQpICogZWFjaFNwYWNpbmc7XHJcbiAgfVxyXG4gIGNvbHVtbk9wdGlvbi5jdXN0b21Db2xvciA9IGZpbGxDdXN0b21Db2xvcihjb2x1bW5PcHRpb24ubGluZWFyVHlwZSwgY29sdW1uT3B0aW9uLmN1c3RvbUNvbG9yLCBzZXJpZXMsIGNvbmZpZyk7XHJcbiAgc2VyaWVzLmZvckVhY2goZnVuY3Rpb24oZWFjaFNlcmllcywgc2VyaWVzSW5kZXgpIHtcclxuICAgIGxldCByYW5nZXMsIG1pblJhbmdlLCBtYXhSYW5nZTtcclxuICAgIHJhbmdlcyA9IFtdLmNvbmNhdChvcHRzLmNoYXJ0RGF0YS55QXhpc0RhdGEucmFuZ2VzW2VhY2hTZXJpZXMuaW5kZXhdKTtcclxuICAgIG1pblJhbmdlID0gcmFuZ2VzLnBvcCgpO1xyXG4gICAgbWF4UmFuZ2UgPSByYW5nZXMuc2hpZnQoKTtcclxuICAgIHZhciBkYXRhID0gZWFjaFNlcmllcy5kYXRhO1xyXG4gICAgdmFyIHBvaW50cyA9IGdldERhdGFQb2ludHMoZGF0YSwgbWluUmFuZ2UsIG1heFJhbmdlLCB4QXhpc1BvaW50cywgZWFjaFNwYWNpbmcsIG9wdHMsIGNvbmZpZywgcHJvY2Vzcyk7XHJcbiAgICBjYWxQb2ludHMucHVzaChwb2ludHMpO1xyXG4gICAgLy8g57uY5Yi25p+x54q25pWw5o2u5Zu+XHJcbiAgICBpZiAoZWFjaFNlcmllcy50eXBlID09ICdjb2x1bW4nKSB7XHJcbiAgICAgIHBvaW50cyA9IGZpeENvbHVtZURhdGEocG9pbnRzLCBlYWNoU3BhY2luZywgY29sdW1uTGVuZ3RoLCBjb2x1bW5JbmRleCwgY29uZmlnLCBvcHRzKTtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwb2ludHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBsZXQgaXRlbSA9IHBvaW50c1tpXTtcclxuICAgICAgICBpZiAoaXRlbSAhPT0gbnVsbCAmJiBpID4gbGVmdE51bSAmJiBpIDwgcmlnaHROdW0pIHtcclxuICAgICAgICAgIHZhciBzdGFydFggPSBpdGVtLnggLSBpdGVtLndpZHRoIC8gMjtcclxuICAgICAgICAgIHZhciBoZWlnaHQgPSBvcHRzLmhlaWdodCAtIGl0ZW0ueSAtIG9wdHMuYXJlYVsyXTtcclxuICAgICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgICB2YXIgZmlsbENvbG9yID0gaXRlbS5jb2xvciB8fCBlYWNoU2VyaWVzLmNvbG9yXHJcbiAgICAgICAgICB2YXIgc3Ryb2tlQ29sb3IgPSBpdGVtLmNvbG9yIHx8IGVhY2hTZXJpZXMuY29sb3JcclxuICAgICAgICAgIGlmIChjb2x1bW5PcHRpb24ubGluZWFyVHlwZSAhPT0gJ25vbmUnKSB7XHJcbiAgICAgICAgICAgIHZhciBncmQgPSBjb250ZXh0LmNyZWF0ZUxpbmVhckdyYWRpZW50KHN0YXJ0WCwgaXRlbS55LCBzdGFydFgsIG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdKTtcclxuICAgICAgICAgICAgLy/pgI/mmI7muJDlj5hcclxuICAgICAgICAgICAgaWYgKGNvbHVtbk9wdGlvbi5saW5lYXJUeXBlID09ICdvcGFjaXR5Jykge1xyXG4gICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMCwgaGV4VG9SZ2IoZmlsbENvbG9yLCBjb2x1bW5PcHRpb24ubGluZWFyT3BhY2l0eSkpO1xyXG4gICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMSwgaGV4VG9SZ2IoZmlsbENvbG9yLCAxKSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgwLCBoZXhUb1JnYihjb2x1bW5PcHRpb24uY3VzdG9tQ29sb3JbZWFjaFNlcmllcy5saW5lYXJJbmRleF0sIGNvbHVtbk9wdGlvbi5saW5lYXJPcGFjaXR5KSk7XHJcbiAgICAgICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcChjb2x1bW5PcHRpb24uY29sb3JTdG9wLCBoZXhUb1JnYihjb2x1bW5PcHRpb24uY3VzdG9tQ29sb3JbZWFjaFNlcmllcy5saW5lYXJJbmRleF0sIGNvbHVtbk9wdGlvbi5saW5lYXJPcGFjaXR5KSk7XHJcbiAgICAgICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgxLCBoZXhUb1JnYihmaWxsQ29sb3IsIDEpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBmaWxsQ29sb3IgPSBncmRcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC8vIOWchuinkui+ueahhlxyXG4gICAgICAgICAgaWYgKChjb2x1bW5PcHRpb24uYmFyQm9yZGVyUmFkaXVzICYmIGNvbHVtbk9wdGlvbi5iYXJCb3JkZXJSYWRpdXMubGVuZ3RoID09PSA0KSB8fCBjb2x1bW5PcHRpb24uYmFyQm9yZGVyQ2lyY2xlKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGxlZnQgPSBzdGFydFg7XHJcbiAgICAgICAgICAgIGNvbnN0IHRvcCA9IGl0ZW0ueTtcclxuICAgICAgICAgICAgY29uc3Qgd2lkdGggPSBpdGVtLndpZHRoO1xyXG4gICAgICAgICAgICBjb25zdCBoZWlnaHQgPSBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXSAtIGl0ZW0ueTtcclxuICAgICAgICAgICAgaWYgKGNvbHVtbk9wdGlvbi5iYXJCb3JkZXJDaXJjbGUpIHtcclxuICAgICAgICAgICAgICBjb2x1bW5PcHRpb24uYmFyQm9yZGVyUmFkaXVzID0gW3dpZHRoIC8gMiwgd2lkdGggLyAyLCAwLCAwXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBsZXQgW3IwLCByMSwgcjIsIHIzXSA9IGNvbHVtbk9wdGlvbi5iYXJCb3JkZXJSYWRpdXM7XHJcbiAgICAgICAgICAgIGxldCBtaW5SYWRpdXMgPSBNYXRoLm1pbih3aWR0aC8yLGhlaWdodC8yKTtcclxuICAgICAgICAgICAgcjAgPSByMCA+IG1pblJhZGl1cyA/IG1pblJhZGl1cyA6IHIwO1xyXG4gICAgICAgICAgICByMSA9IHIxID4gbWluUmFkaXVzID8gbWluUmFkaXVzIDogcjE7XHJcbiAgICAgICAgICAgIHIyID0gcjIgPiBtaW5SYWRpdXMgPyBtaW5SYWRpdXMgOiByMjtcclxuICAgICAgICAgICAgcjMgPSByMyA+IG1pblJhZGl1cyA/IG1pblJhZGl1cyA6IHIzO1xyXG4gICAgICAgICAgICByMCA9IHIwIDwgMCA/IDAgOiByMDtcclxuICAgICAgICAgICAgcjEgPSByMSA8IDAgPyAwIDogcjE7XHJcbiAgICAgICAgICAgIHIyID0gcjIgPCAwID8gMCA6IHIyO1xyXG4gICAgICAgICAgICByMyA9IHIzIDwgMCA/IDAgOiByMztcclxuICAgICAgICAgICAgY29udGV4dC5hcmMobGVmdCArIHIwLCB0b3AgKyByMCwgcjAsIC1NYXRoLlBJLCAtTWF0aC5QSSAvIDIpO1xyXG4gICAgICAgICAgICBjb250ZXh0LmFyYyhsZWZ0ICsgd2lkdGggLSByMSwgdG9wICsgcjEsIHIxLCAtTWF0aC5QSSAvIDIsIDApO1xyXG4gICAgICAgICAgICBjb250ZXh0LmFyYyhsZWZ0ICsgd2lkdGggLSByMiwgdG9wICsgaGVpZ2h0IC0gcjIsIHIyLCAwLCBNYXRoLlBJIC8gMik7XHJcbiAgICAgICAgICAgIGNvbnRleHQuYXJjKGxlZnQgKyByMywgdG9wICsgaGVpZ2h0IC0gcjMsIHIzLCBNYXRoLlBJIC8gMiwgTWF0aC5QSSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhzdGFydFgsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHN0YXJ0WCArIGl0ZW0ud2lkdGgsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHN0YXJ0WCArIGl0ZW0ud2lkdGgsIG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdKTtcclxuICAgICAgICAgICAgY29udGV4dC5saW5lVG8oc3RhcnRYLCBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXSk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHN0YXJ0WCwgaXRlbS55KTtcclxuICAgICAgICAgICAgY29udGV4dC5zZXRMaW5lV2lkdGgoMSlcclxuICAgICAgICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShzdHJva2VDb2xvcik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShmaWxsQ29sb3IpO1xyXG4gICAgICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBjb2x1bW5JbmRleCArPSAxO1xyXG4gICAgfVxyXG4gICAgLy/nu5jliLbljLrln5/lm77mlbDmja5cclxuICAgIGlmIChlYWNoU2VyaWVzLnR5cGUgPT0gJ2FyZWEnKSB7XHJcbiAgICAgIGxldCBzcGxpdFBvaW50TGlzdCA9IHNwbGl0UG9pbnRzKHBvaW50cyxlYWNoU2VyaWVzKTtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzcGxpdFBvaW50TGlzdC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGxldCBwb2ludHMgPSBzcGxpdFBvaW50TGlzdFtpXTtcclxuICAgICAgICAvLyDnu5jliLbljLrln5/mlbDmja5cclxuICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoZWFjaFNlcmllcy5jb2xvcik7XHJcbiAgICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShoZXhUb1JnYihlYWNoU2VyaWVzLmNvbG9yLCBhcmVhT3B0aW9uLm9wYWNpdHkpKTtcclxuICAgICAgICBpZiAoYXJlYU9wdGlvbi5ncmFkaWVudCkge1xyXG4gICAgICAgICAgbGV0IGdyYWRpZW50ID0gY29udGV4dC5jcmVhdGVMaW5lYXJHcmFkaWVudCgwLCBvcHRzLmFyZWFbMF0sIDAsIG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdKTtcclxuICAgICAgICAgIGdyYWRpZW50LmFkZENvbG9yU3RvcCgnMCcsIGhleFRvUmdiKGVhY2hTZXJpZXMuY29sb3IsIGFyZWFPcHRpb24ub3BhY2l0eSkpO1xyXG4gICAgICAgICAgZ3JhZGllbnQuYWRkQ29sb3JTdG9wKCcxLjAnLCBoZXhUb1JnYihcIiNGRkZGRkZcIiwgMC4xKSk7XHJcbiAgICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShncmFkaWVudCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGhleFRvUmdiKGVhY2hTZXJpZXMuY29sb3IsIGFyZWFPcHRpb24ub3BhY2l0eSkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb250ZXh0LnNldExpbmVXaWR0aCgyICogb3B0cy5waXgpO1xyXG4gICAgICAgIGlmIChwb2ludHMubGVuZ3RoID4gMSkge1xyXG4gICAgICAgICAgdmFyIGZpcnN0UG9pbnQgPSBwb2ludHNbMF07XHJcbiAgICAgICAgICBsZXQgbGFzdFBvaW50ID0gcG9pbnRzW3BvaW50cy5sZW5ndGggLSAxXTtcclxuICAgICAgICAgIGNvbnRleHQubW92ZVRvKGZpcnN0UG9pbnQueCwgZmlyc3RQb2ludC55KTtcclxuICAgICAgICAgIGxldCBzdGFydFBvaW50ID0gMDtcclxuICAgICAgICAgIGlmIChlYWNoU2VyaWVzLnN0eWxlID09PSAnY3VydmUnKSB7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgcG9pbnRzLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICAgICAgbGV0IGl0ZW0gPSBwb2ludHNbal07XHJcbiAgICAgICAgICAgICAgaWYgKHN0YXJ0UG9pbnQgPT0gMCAmJiBpdGVtLnggPiBsZWZ0U3BhY2UpIHtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKGl0ZW0ueCwgaXRlbS55KTtcclxuICAgICAgICAgICAgICAgIHN0YXJ0UG9pbnQgPSAxO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBpZiAoaiA+IDAgJiYgaXRlbS54ID4gbGVmdFNwYWNlICYmIGl0ZW0ueCA8IHJpZ2h0U3BhY2UpIHtcclxuICAgICAgICAgICAgICAgIHZhciBjdHJsUG9pbnQgPSBjcmVhdGVDdXJ2ZUNvbnRyb2xQb2ludHMocG9pbnRzLCBqIC0gMSk7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LmJlemllckN1cnZlVG8oY3RybFBvaW50LmN0ckEueCwgY3RybFBvaW50LmN0ckEueSwgY3RybFBvaW50LmN0ckIueCwgY3RybFBvaW50LmN0ckIueSwgaXRlbS54LCBpdGVtLnkpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgcG9pbnRzLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICAgICAgbGV0IGl0ZW0gPSBwb2ludHNbal07XHJcbiAgICAgICAgICAgICAgaWYgKHN0YXJ0UG9pbnQgPT0gMCAmJiBpdGVtLnggPiBsZWZ0U3BhY2UpIHtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKGl0ZW0ueCwgaXRlbS55KTtcclxuICAgICAgICAgICAgICAgIHN0YXJ0UG9pbnQgPSAxO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBpZiAoaiA+IDAgJiYgaXRlbS54ID4gbGVmdFNwYWNlICYmIGl0ZW0ueCA8IHJpZ2h0U3BhY2UpIHtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCwgaXRlbS55KTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhsYXN0UG9pbnQueCwgZW5kWSk7XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhmaXJzdFBvaW50LngsIGVuZFkpO1xyXG4gICAgICAgICAgY29udGV4dC5saW5lVG8oZmlyc3RQb2ludC54LCBmaXJzdFBvaW50LnkpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBsZXQgaXRlbSA9IHBvaW50c1swXTtcclxuICAgICAgICAgIGNvbnRleHQubW92ZVRvKGl0ZW0ueCAtIGVhY2hTcGFjaW5nIC8gMiwgaXRlbS55KTtcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCArIGVhY2hTcGFjaW5nIC8gMiwgaXRlbS55KTtcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCArIGVhY2hTcGFjaW5nIC8gMiwgZW5kWSk7XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLnggLSBlYWNoU3BhY2luZyAvIDIsIGVuZFkpO1xyXG4gICAgICAgICAgY29udGV4dC5tb3ZlVG8oaXRlbS54IC0gZWFjaFNwYWNpbmcgLyAyLCBpdGVtLnkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAvLyDnu5jliLbmipjnur/mlbDmja7lm75cclxuICAgIGlmIChlYWNoU2VyaWVzLnR5cGUgPT0gJ2xpbmUnKSB7XHJcbiAgICAgIHZhciBzcGxpdFBvaW50TGlzdCA9IHNwbGl0UG9pbnRzKHBvaW50cyxlYWNoU2VyaWVzKTtcclxuICAgICAgc3BsaXRQb2ludExpc3QuZm9yRWFjaChmdW5jdGlvbihwb2ludHMsIGluZGV4KSB7XHJcbiAgICAgICAgaWYgKGVhY2hTZXJpZXMubGluZVR5cGUgPT0gJ2Rhc2gnKSB7XHJcbiAgICAgICAgICBsZXQgZGFzaExlbmd0aCA9IGVhY2hTZXJpZXMuZGFzaExlbmd0aCA/IGVhY2hTZXJpZXMuZGFzaExlbmd0aCA6IDg7XHJcbiAgICAgICAgICBkYXNoTGVuZ3RoICo9IG9wdHMucGl4O1xyXG4gICAgICAgICAgY29udGV4dC5zZXRMaW5lRGFzaChbZGFzaExlbmd0aCwgZGFzaExlbmd0aF0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoZWFjaFNlcmllcy5jb2xvcik7XHJcbiAgICAgICAgY29udGV4dC5zZXRMaW5lV2lkdGgobGluZU9wdGlvbi53aWR0aCAqIG9wdHMucGl4KTtcclxuICAgICAgICBpZiAocG9pbnRzLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgICAgY29udGV4dC5tb3ZlVG8ocG9pbnRzWzBdLngsIHBvaW50c1swXS55KTtcclxuICAgICAgICAgIGNvbnRleHQuYXJjKHBvaW50c1swXS54LCBwb2ludHNbMF0ueSwgMSwgMCwgMiAqIE1hdGguUEkpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhwb2ludHNbMF0ueCwgcG9pbnRzWzBdLnkpO1xyXG4gICAgICAgICAgbGV0IHN0YXJ0UG9pbnQgPSAwO1xyXG4gICAgICAgICAgaWYgKGVhY2hTZXJpZXMuc3R5bGUgPT0gJ2N1cnZlJykge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHBvaW50cy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICAgIGxldCBpdGVtID0gcG9pbnRzW2pdO1xyXG4gICAgICAgICAgICAgIGlmIChzdGFydFBvaW50ID09IDAgJiYgaXRlbS54ID4gbGVmdFNwYWNlKSB7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtLngsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgICAgICBzdGFydFBvaW50ID0gMTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgaWYgKGogPiAwICYmIGl0ZW0ueCA+IGxlZnRTcGFjZSAmJiBpdGVtLnggPCByaWdodFNwYWNlKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgY3RybFBvaW50ID0gY3JlYXRlQ3VydmVDb250cm9sUG9pbnRzKHBvaW50cywgaiAtIDEpO1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5iZXppZXJDdXJ2ZVRvKGN0cmxQb2ludC5jdHJBLngsIGN0cmxQb2ludC5jdHJBLnksIGN0cmxQb2ludC5jdHJCLngsIGN0cmxQb2ludC5jdHJCLnksXHJcbiAgICAgICAgICAgICAgICAgIGl0ZW0ueCwgaXRlbS55KTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgcG9pbnRzLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICAgICAgbGV0IGl0ZW0gPSBwb2ludHNbal07XHJcbiAgICAgICAgICAgICAgaWYgKHN0YXJ0UG9pbnQgPT0gMCAmJiBpdGVtLnggPiBsZWZ0U3BhY2UpIHtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKGl0ZW0ueCwgaXRlbS55KTtcclxuICAgICAgICAgICAgICAgIHN0YXJ0UG9pbnQgPSAxO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBpZiAoaiA+IDAgJiYgaXRlbS54ID4gbGVmdFNwYWNlICYmIGl0ZW0ueCA8IHJpZ2h0U3BhY2UpIHtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCwgaXRlbS55KTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGNvbnRleHQubW92ZVRvKHBvaW50c1swXS54LCBwb2ludHNbMF0ueSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgICAgY29udGV4dC5zZXRMaW5lRGFzaChbXSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgLy8g57uY5Yi254K55pWw5o2u5Zu+XHJcbiAgICBpZiAoZWFjaFNlcmllcy50eXBlID09ICdwb2ludCcpIHtcclxuICAgICAgZWFjaFNlcmllcy5hZGRQb2ludCA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBpZiAoZWFjaFNlcmllcy5hZGRQb2ludCA9PSB0cnVlICYmIGVhY2hTZXJpZXMudHlwZSAhPT0gJ2NvbHVtbicpIHtcclxuICAgICAgZHJhd1BvaW50U2hhcGUocG9pbnRzLCBlYWNoU2VyaWVzLmNvbG9yLCBlYWNoU2VyaWVzLnBvaW50U2hhcGUsIGNvbnRleHQsIG9wdHMpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG4gIGlmIChvcHRzLmRhdGFMYWJlbCAhPT0gZmFsc2UgJiYgcHJvY2VzcyA9PT0gMSkge1xyXG4gICAgdmFyIGNvbHVtbkluZGV4ID0gMDtcclxuICAgIHNlcmllcy5mb3JFYWNoKGZ1bmN0aW9uKGVhY2hTZXJpZXMsIHNlcmllc0luZGV4KSB7XHJcbiAgICAgIGxldCByYW5nZXMsIG1pblJhbmdlLCBtYXhSYW5nZTtcclxuICAgICAgcmFuZ2VzID0gW10uY29uY2F0KG9wdHMuY2hhcnREYXRhLnlBeGlzRGF0YS5yYW5nZXNbZWFjaFNlcmllcy5pbmRleF0pO1xyXG4gICAgICBtaW5SYW5nZSA9IHJhbmdlcy5wb3AoKTtcclxuICAgICAgbWF4UmFuZ2UgPSByYW5nZXMuc2hpZnQoKTtcclxuICAgICAgdmFyIGRhdGEgPSBlYWNoU2VyaWVzLmRhdGE7XHJcbiAgICAgIHZhciBwb2ludHMgPSBnZXREYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeEF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHByb2Nlc3MpO1xyXG4gICAgICBpZiAoZWFjaFNlcmllcy50eXBlICE9PSAnY29sdW1uJykge1xyXG4gICAgICAgIGRyYXdQb2ludFRleHQocG9pbnRzLCBlYWNoU2VyaWVzLCBjb25maWcsIGNvbnRleHQsIG9wdHMpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHBvaW50cyA9IGZpeENvbHVtZURhdGEocG9pbnRzLCBlYWNoU3BhY2luZywgY29sdW1uTGVuZ3RoLCBjb2x1bW5JbmRleCwgY29uZmlnLCBvcHRzKTtcclxuICAgICAgICBkcmF3UG9pbnRUZXh0KHBvaW50cywgZWFjaFNlcmllcywgY29uZmlnLCBjb250ZXh0LCBvcHRzKTtcclxuICAgICAgICBjb2x1bW5JbmRleCArPSAxO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbiAgY29udGV4dC5yZXN0b3JlKCk7XHJcbiAgcmV0dXJuIHtcclxuICAgIHhBeGlzUG9pbnRzOiB4QXhpc1BvaW50cyxcclxuICAgIGNhbFBvaW50czogY2FsUG9pbnRzLFxyXG4gICAgZWFjaFNwYWNpbmc6IGVhY2hTcGFjaW5nLFxyXG4gIH1cclxufVxyXG5cclxuXHJcbmZ1bmN0aW9uIGRyYXdUb29sVGlwQnJpZGdlKG9wdHMsIGNvbmZpZywgY29udGV4dCwgcHJvY2VzcywgZWFjaFNwYWNpbmcsIHhBeGlzUG9pbnRzKSB7XHJcbiAgdmFyIHRvb2xUaXBPcHRpb24gPSBvcHRzLmV4dHJhLnRvb2x0aXAgfHwge307XHJcbiAgaWYgKHRvb2xUaXBPcHRpb24uaG9yaXplbnRhbExpbmUgJiYgb3B0cy50b29sdGlwICYmIHByb2Nlc3MgPT09IDEgJiYgKG9wdHMudHlwZSA9PSAnbGluZScgfHwgb3B0cy50eXBlID09ICdhcmVhJyB8fCBvcHRzLnR5cGUgPT0gJ2NvbHVtbicgfHwgb3B0cy50eXBlID09ICdtb3VudCcgfHwgb3B0cy50eXBlID09ICdjYW5kbGUnIHx8IG9wdHMudHlwZSA9PSAnbWl4JykpIHtcclxuICAgIGRyYXdUb29sVGlwSG9yaXplbnRhbExpbmUob3B0cywgY29uZmlnLCBjb250ZXh0LCBlYWNoU3BhY2luZywgeEF4aXNQb2ludHMpXHJcbiAgfVxyXG4gIGNvbnRleHQuc2F2ZSgpO1xyXG4gIGlmIChvcHRzLl9zY3JvbGxEaXN0YW5jZV8gJiYgb3B0cy5fc2Nyb2xsRGlzdGFuY2VfICE9PSAwICYmIG9wdHMuZW5hYmxlU2Nyb2xsID09PSB0cnVlKSB7XHJcbiAgICBjb250ZXh0LnRyYW5zbGF0ZShvcHRzLl9zY3JvbGxEaXN0YW5jZV8sIDApO1xyXG4gIH1cclxuICBpZiAob3B0cy50b29sdGlwICYmIG9wdHMudG9vbHRpcC50ZXh0TGlzdCAmJiBvcHRzLnRvb2x0aXAudGV4dExpc3QubGVuZ3RoICYmIHByb2Nlc3MgPT09IDEpIHtcclxuICAgIGRyYXdUb29sVGlwKG9wdHMudG9vbHRpcC50ZXh0TGlzdCwgb3B0cy50b29sdGlwLm9mZnNldCwgb3B0cywgY29uZmlnLCBjb250ZXh0LCBlYWNoU3BhY2luZywgeEF4aXNQb2ludHMpO1xyXG4gIH1cclxuICBjb250ZXh0LnJlc3RvcmUoKTtcclxuXHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRyYXdYQXhpcyhjYXRlZ29yaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpIHtcclxuXHJcbiAgbGV0IHhBeGlzRGF0YSA9IG9wdHMuY2hhcnREYXRhLnhBeGlzRGF0YSxcclxuICAgIHhBeGlzUG9pbnRzID0geEF4aXNEYXRhLnhBeGlzUG9pbnRzLFxyXG4gICAgc3RhcnRYID0geEF4aXNEYXRhLnN0YXJ0WCxcclxuICAgIGVuZFggPSB4QXhpc0RhdGEuZW5kWCxcclxuICAgIGVhY2hTcGFjaW5nID0geEF4aXNEYXRhLmVhY2hTcGFjaW5nO1xyXG4gIHZhciBib3VuZGFyeUdhcCA9ICdjZW50ZXInO1xyXG4gIGlmIChvcHRzLnR5cGUgPT0gJ2JhcicgfHwgb3B0cy50eXBlID09ICdsaW5lJyB8fCBvcHRzLnR5cGUgPT0gJ2FyZWEnfHwgb3B0cy50eXBlID09ICdzY2F0dGVyJyB8fCBvcHRzLnR5cGUgPT0gJ2J1YmJsZScpIHtcclxuICAgIGJvdW5kYXJ5R2FwID0gb3B0cy54QXhpcy5ib3VuZGFyeUdhcDtcclxuICB9XHJcbiAgdmFyIHN0YXJ0WSA9IG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdO1xyXG4gIHZhciBlbmRZID0gb3B0cy5hcmVhWzBdO1xyXG5cclxuICAvL+e7mOWItua7muWKqOadoVxyXG4gIGlmIChvcHRzLmVuYWJsZVNjcm9sbCAmJiBvcHRzLnhBeGlzLnNjcm9sbFNob3cpIHtcclxuICAgIHZhciBzY3JvbGxZID0gb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0gKyBjb25maWcueEF4aXNIZWlnaHQ7XHJcbiAgICB2YXIgc2Nyb2xsU2NyZWVuV2lkdGggPSBlbmRYIC0gc3RhcnRYO1xyXG4gICAgdmFyIHNjcm9sbFRvdGFsV2lkdGggPSBlYWNoU3BhY2luZyAqICh4QXhpc1BvaW50cy5sZW5ndGggLSAxKTtcclxuICAgIGlmKG9wdHMudHlwZSA9PSAnbW91bnQnICYmIG9wdHMuZXh0cmEgJiYgb3B0cy5leHRyYS5tb3VudCAmJiBvcHRzLmV4dHJhLm1vdW50LndpZHRoUmF0aW8gJiYgb3B0cy5leHRyYS5tb3VudC53aWR0aFJhdGlvID4gMSl7XHJcbiAgICAgIGlmKG9wdHMuZXh0cmEubW91bnQud2lkdGhSYXRpbz4yKSBvcHRzLmV4dHJhLm1vdW50LndpZHRoUmF0aW8gPSAyXHJcbiAgICAgIHNjcm9sbFRvdGFsV2lkdGggKz0gKG9wdHMuZXh0cmEubW91bnQud2lkdGhSYXRpbyAtIDEpKmVhY2hTcGFjaW5nO1xyXG4gICAgfVxyXG4gICAgdmFyIHNjcm9sbFdpZHRoID0gc2Nyb2xsU2NyZWVuV2lkdGggKiBzY3JvbGxTY3JlZW5XaWR0aCAvIHNjcm9sbFRvdGFsV2lkdGg7XHJcbiAgICB2YXIgc2Nyb2xsTGVmdCA9IDA7XHJcbiAgICBpZiAob3B0cy5fc2Nyb2xsRGlzdGFuY2VfKSB7XHJcbiAgICAgIHNjcm9sbExlZnQgPSAtb3B0cy5fc2Nyb2xsRGlzdGFuY2VfICogKHNjcm9sbFNjcmVlbldpZHRoKSAvIHNjcm9sbFRvdGFsV2lkdGg7XHJcbiAgICB9XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5zZXRMaW5lQ2FwKCdyb3VuZCcpO1xyXG4gICAgY29udGV4dC5zZXRMaW5lV2lkdGgoNiAqIG9wdHMucGl4KTtcclxuICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUob3B0cy54QXhpcy5zY3JvbGxCYWNrZ3JvdW5kQ29sb3IgfHwgXCIjRUZFQkVGXCIpO1xyXG4gICAgY29udGV4dC5tb3ZlVG8oc3RhcnRYLCBzY3JvbGxZKTtcclxuICAgIGNvbnRleHQubGluZVRvKGVuZFgsIHNjcm9sbFkpO1xyXG4gICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5zZXRMaW5lQ2FwKCdyb3VuZCcpO1xyXG4gICAgY29udGV4dC5zZXRMaW5lV2lkdGgoNiAqIG9wdHMucGl4KTtcclxuICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUob3B0cy54QXhpcy5zY3JvbGxDb2xvciB8fCBcIiNBNkE2QTZcIik7XHJcbiAgICBjb250ZXh0Lm1vdmVUbyhzdGFydFggKyBzY3JvbGxMZWZ0LCBzY3JvbGxZKTtcclxuICAgIGNvbnRleHQubGluZVRvKHN0YXJ0WCArIHNjcm9sbExlZnQgKyBzY3JvbGxXaWR0aCwgc2Nyb2xsWSk7XHJcbiAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgIGNvbnRleHQuc2V0TGluZUNhcCgnYnV0dCcpO1xyXG4gIH1cclxuICBjb250ZXh0LnNhdmUoKTtcclxuICBpZiAob3B0cy5fc2Nyb2xsRGlzdGFuY2VfICYmIG9wdHMuX3Njcm9sbERpc3RhbmNlXyAhPT0gMCkge1xyXG4gICAgY29udGV4dC50cmFuc2xhdGUob3B0cy5fc2Nyb2xsRGlzdGFuY2VfLCAwKTtcclxuICB9XHJcbiAgLy/nu5jliLZY6L205Yi75bqm57q/XHJcbiAgaWYgKG9wdHMueEF4aXMuY2FsaWJyYXRpb24gPT09IHRydWUpIHtcclxuICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUob3B0cy54QXhpcy5ncmlkQ29sb3IgfHwgXCIjY2NjY2NjXCIpO1xyXG4gICAgY29udGV4dC5zZXRMaW5lQ2FwKCdidXR0Jyk7XHJcbiAgICBjb250ZXh0LnNldExpbmVXaWR0aCgxICogb3B0cy5waXgpO1xyXG4gICAgeEF4aXNQb2ludHMuZm9yRWFjaChmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgICBpZiAoaW5kZXggPiAwKSB7XHJcbiAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtIC0gZWFjaFNwYWNpbmcgLyAyLCBzdGFydFkpO1xyXG4gICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0gLSBlYWNoU3BhY2luZyAvIDIsIHN0YXJ0WSArIDMgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbiAgLy/nu5jliLZY6L20572R5qC8XHJcbiAgaWYgKG9wdHMueEF4aXMuZGlzYWJsZUdyaWQgIT09IHRydWUpIHtcclxuICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUob3B0cy54QXhpcy5ncmlkQ29sb3IgfHwgXCIjY2NjY2NjXCIpO1xyXG4gICAgY29udGV4dC5zZXRMaW5lQ2FwKCdidXR0Jyk7XHJcbiAgICBjb250ZXh0LnNldExpbmVXaWR0aCgxICogb3B0cy5waXgpO1xyXG4gICAgaWYgKG9wdHMueEF4aXMuZ3JpZFR5cGUgPT0gJ2Rhc2gnKSB7XHJcbiAgICAgIGNvbnRleHQuc2V0TGluZURhc2goW29wdHMueEF4aXMuZGFzaExlbmd0aCAqIG9wdHMucGl4LCBvcHRzLnhBeGlzLmRhc2hMZW5ndGggKiBvcHRzLnBpeF0pO1xyXG4gICAgfVxyXG4gICAgb3B0cy54QXhpcy5ncmlkRXZhbCA9IG9wdHMueEF4aXMuZ3JpZEV2YWwgfHwgMTtcclxuICAgIHhBeGlzUG9pbnRzLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgICAgaWYgKGluZGV4ICUgb3B0cy54QXhpcy5ncmlkRXZhbCA9PSAwKSB7XHJcbiAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtLCBzdGFydFkpO1xyXG4gICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0sIGVuZFkpO1xyXG4gICAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgY29udGV4dC5zZXRMaW5lRGFzaChbXSk7XHJcbiAgfVxyXG4gIC8v57uY5Yi2WOi9tOaWh+ahiFxyXG4gIGlmIChvcHRzLnhBeGlzLmRpc2FibGVkICE9PSB0cnVlKSB7XHJcbiAgICAvLyDlr7lY6L205YiX6KGo5YGa5oq956iA5aSE55CGXHJcbiAgICAvL+m7mOiupOWFqOmDqOaYvuekuljovbTmoIfnrb5cclxuICAgIGxldCBtYXhYQXhpc0xpc3RMZW5ndGggPSBjYXRlZ29yaWVzLmxlbmd0aDtcclxuICAgIC8v5aaC5p6c6K6+572u5LqGWOi9tOWNleWxj+aVsOmHj1xyXG4gICAgaWYgKG9wdHMueEF4aXMubGFiZWxDb3VudCkge1xyXG4gICAgICAvL+WmguaenOiuvue9rljovbTlr4bluqZcclxuICAgICAgaWYgKG9wdHMueEF4aXMuaXRlbUNvdW50KSB7XHJcbiAgICAgICAgbWF4WEF4aXNMaXN0TGVuZ3RoID0gTWF0aC5jZWlsKGNhdGVnb3JpZXMubGVuZ3RoIC8gb3B0cy54QXhpcy5pdGVtQ291bnQgKiBvcHRzLnhBeGlzLmxhYmVsQ291bnQpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIG1heFhBeGlzTGlzdExlbmd0aCA9IG9wdHMueEF4aXMubGFiZWxDb3VudDtcclxuICAgICAgfVxyXG4gICAgICBtYXhYQXhpc0xpc3RMZW5ndGggLT0gMTtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgcmF0aW8gPSBNYXRoLmNlaWwoY2F0ZWdvcmllcy5sZW5ndGggLyBtYXhYQXhpc0xpc3RMZW5ndGgpO1xyXG5cclxuICAgIGxldCBuZXdDYXRlZ29yaWVzID0gW107XHJcbiAgICBsZXQgY2dMZW5ndGggPSBjYXRlZ29yaWVzLmxlbmd0aDtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2dMZW5ndGg7IGkrKykge1xyXG4gICAgICBpZiAoaSAlIHJhdGlvICE9PSAwKSB7XHJcbiAgICAgICAgbmV3Q2F0ZWdvcmllcy5wdXNoKFwiXCIpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIG5ld0NhdGVnb3JpZXMucHVzaChjYXRlZ29yaWVzW2ldKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgbmV3Q2F0ZWdvcmllc1tjZ0xlbmd0aCAtIDFdID0gY2F0ZWdvcmllc1tjZ0xlbmd0aCAtIDFdO1xyXG4gICAgdmFyIHhBeGlzRm9udFNpemUgPSBvcHRzLnhBeGlzLmZvbnRTaXplICogb3B0cy5waXggfHwgY29uZmlnLmZvbnRTaXplO1xyXG4gICAgaWYgKGNvbmZpZy5feEF4aXNUZXh0QW5nbGVfID09PSAwKSB7XHJcbiAgICAgIG5ld0NhdGVnb3JpZXMuZm9yRWFjaChmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgICAgIHZhciB4aXRlbSA9IG9wdHMueEF4aXMuZm9ybWF0dGVyID8gb3B0cy54QXhpcy5mb3JtYXR0ZXIoaXRlbSxpbmRleCxvcHRzKSA6IGl0ZW07XHJcbiAgICAgICAgdmFyIG9mZnNldCA9IC1tZWFzdXJlVGV4dChTdHJpbmcoeGl0ZW0pLCB4QXhpc0ZvbnRTaXplLCBjb250ZXh0KSAvIDI7XHJcbiAgICAgICAgaWYgKGJvdW5kYXJ5R2FwID09ICdjZW50ZXInKSB7XHJcbiAgICAgICAgICBvZmZzZXQgKz0gZWFjaFNwYWNpbmcgLyAyO1xyXG4gICAgICAgIH1cclxuICAgICAgICB2YXIgc2Nyb2xsSGVpZ2h0ID0gMDtcclxuICAgICAgICBpZiAob3B0cy54QXhpcy5zY3JvbGxTaG93KSB7XHJcbiAgICAgICAgICBzY3JvbGxIZWlnaHQgPSA2ICogb3B0cy5waXg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIOWmguaenOWcqOS4u+inhuWbvuWMuuWfn+WGhVxyXG4gICAgICAgIHZhciBfc2Nyb2xsRGlzdGFuY2VfID0gb3B0cy5fc2Nyb2xsRGlzdGFuY2VfIHx8IDA7XHJcbiAgICAgICAgdmFyIHRydWVQb2ludHMgPSBib3VuZGFyeUdhcCA9PSAnY2VudGVyJyA/IHhBeGlzUG9pbnRzW2luZGV4XSArIGVhY2hTcGFjaW5nIC8gMiA6IHhBeGlzUG9pbnRzW2luZGV4XTtcclxuICAgICAgICBpZigodHJ1ZVBvaW50cyAtIE1hdGguYWJzKF9zY3JvbGxEaXN0YW5jZV8pKSA+PSBvcHRzLmFyZWFbM10gJiYgKHRydWVQb2ludHMgLSBNYXRoLmFicyhfc2Nyb2xsRGlzdGFuY2VfKSkgPD0gKG9wdHMud2lkdGggLSBvcHRzLmFyZWFbMV0pKXtcclxuICAgICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgICBjb250ZXh0LnNldEZvbnRTaXplKHhBeGlzRm9udFNpemUpO1xyXG4gICAgICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUob3B0cy54QXhpcy5mb250Q29sb3IgfHwgb3B0cy5mb250Q29sb3IpO1xyXG4gICAgICAgICAgY29udGV4dC5maWxsVGV4dChTdHJpbmcoeGl0ZW0pLCB4QXhpc1BvaW50c1tpbmRleF0gKyBvZmZzZXQsIHN0YXJ0WSArIHhBeGlzRm9udFNpemUgKyAoY29uZmlnLnhBeGlzSGVpZ2h0IC0gc2Nyb2xsSGVpZ2h0IC0geEF4aXNGb250U2l6ZSkgLyAyKTtcclxuICAgICAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBuZXdDYXRlZ29yaWVzLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgICAgICB2YXIgeGl0ZW0gPSBvcHRzLnhBeGlzLmZvcm1hdHRlciA/IG9wdHMueEF4aXMuZm9ybWF0dGVyKGl0ZW0pIDogaXRlbTtcclxuICAgICAgICAvLyDlpoLmnpzlnKjkuLvop4blm77ljLrln5/lhoVcclxuICAgICAgICB2YXIgX3Njcm9sbERpc3RhbmNlXyA9IG9wdHMuX3Njcm9sbERpc3RhbmNlXyB8fCAwO1xyXG4gICAgICAgIHZhciB0cnVlUG9pbnRzID0gYm91bmRhcnlHYXAgPT0gJ2NlbnRlcicgPyB4QXhpc1BvaW50c1tpbmRleF0gKyBlYWNoU3BhY2luZyAvIDIgOiB4QXhpc1BvaW50c1tpbmRleF07XHJcbiAgICAgICAgaWYoKHRydWVQb2ludHMgLSBNYXRoLmFicyhfc2Nyb2xsRGlzdGFuY2VfKSkgPj0gb3B0cy5hcmVhWzNdICYmICh0cnVlUG9pbnRzIC0gTWF0aC5hYnMoX3Njcm9sbERpc3RhbmNlXykpIDw9IChvcHRzLndpZHRoIC0gb3B0cy5hcmVhWzFdKSl7XHJcbiAgICAgICAgICBjb250ZXh0LnNhdmUoKTtcclxuICAgICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgICBjb250ZXh0LnNldEZvbnRTaXplKHhBeGlzRm9udFNpemUpO1xyXG4gICAgICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUob3B0cy54QXhpcy5mb250Q29sb3IgfHwgb3B0cy5mb250Q29sb3IpO1xyXG4gICAgICAgICAgdmFyIHRleHRXaWR0aCA9IG1lYXN1cmVUZXh0KFN0cmluZyh4aXRlbSksIHhBeGlzRm9udFNpemUsIGNvbnRleHQpO1xyXG4gICAgICAgICAgdmFyIG9mZnNldFggPSB4QXhpc1BvaW50c1tpbmRleF07XHJcbiAgICAgICAgICBpZiAoYm91bmRhcnlHYXAgPT0gJ2NlbnRlcicpIHtcclxuICAgICAgICAgICAgb2Zmc2V0WCA9IHhBeGlzUG9pbnRzW2luZGV4XSArIGVhY2hTcGFjaW5nIC8gMjtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHZhciBzY3JvbGxIZWlnaHQgPSAwO1xyXG4gICAgICAgICAgaWYgKG9wdHMueEF4aXMuc2Nyb2xsU2hvdykge1xyXG4gICAgICAgICAgICBzY3JvbGxIZWlnaHQgPSA2ICogb3B0cy5waXg7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB2YXIgb2Zmc2V0WSA9IHN0YXJ0WSArIDYgKiBvcHRzLnBpeCArIHhBeGlzRm9udFNpemUgLSB4QXhpc0ZvbnRTaXplICogTWF0aC5hYnMoTWF0aC5zaW4oY29uZmlnLl94QXhpc1RleHRBbmdsZV8pKTtcclxuICAgICAgICAgIGlmKG9wdHMueEF4aXMucm90YXRlQW5nbGUgPCAwKXtcclxuICAgICAgICAgICAgb2Zmc2V0WCAtPSB4QXhpc0ZvbnRTaXplIC8gMjtcclxuICAgICAgICAgICAgdGV4dFdpZHRoID0gMDtcclxuICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICBvZmZzZXRYICs9IHhBeGlzRm9udFNpemUgLyAyO1xyXG4gICAgICAgICAgICB0ZXh0V2lkdGggPSAtdGV4dFdpZHRoO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgY29udGV4dC50cmFuc2xhdGUob2Zmc2V0WCwgb2Zmc2V0WSk7XHJcbiAgICAgICAgICBjb250ZXh0LnJvdGF0ZSgtMSAqIGNvbmZpZy5feEF4aXNUZXh0QW5nbGVfKTtcclxuICAgICAgICAgIGNvbnRleHQuZmlsbFRleHQoU3RyaW5nKHhpdGVtKSwgdGV4dFdpZHRoICwgMCApO1xyXG4gICAgICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgICAgICBjb250ZXh0LnJlc3RvcmUoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICBjb250ZXh0LnJlc3RvcmUoKTtcclxuICAvL+e7mOWItljovbTovbTnur9cclxuICBpZiAob3B0cy54QXhpcy5heGlzTGluZSkge1xyXG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUob3B0cy54QXhpcy5heGlzTGluZUNvbG9yKTtcclxuICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKDEgKiBvcHRzLnBpeCk7XHJcbiAgICBjb250ZXh0Lm1vdmVUbyhzdGFydFgsIG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdKTtcclxuICAgIGNvbnRleHQubGluZVRvKGVuZFgsIG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdKTtcclxuICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3WUF4aXNHcmlkKGNhdGVnb3JpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCkge1xyXG4gIGlmIChvcHRzLnlBeGlzLmRpc2FibGVHcmlkID09PSB0cnVlKSB7XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG4gIGxldCBzcGFjaW5nVmFsaWQgPSBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVswXSAtIG9wdHMuYXJlYVsyXTtcclxuICBsZXQgZWFjaFNwYWNpbmcgPSBzcGFjaW5nVmFsaWQgLyBvcHRzLnlBeGlzLnNwbGl0TnVtYmVyO1xyXG4gIGxldCBzdGFydFggPSBvcHRzLmFyZWFbM107XHJcbiAgbGV0IHhBeGlzUG9pbnRzID0gb3B0cy5jaGFydERhdGEueEF4aXNEYXRhLnhBeGlzUG9pbnRzLFxyXG4gICAgeEF4aXNlYWNoU3BhY2luZyA9IG9wdHMuY2hhcnREYXRhLnhBeGlzRGF0YS5lYWNoU3BhY2luZztcclxuICBsZXQgVG90YWxXaWR0aCA9IHhBeGlzZWFjaFNwYWNpbmcgKiAoeEF4aXNQb2ludHMubGVuZ3RoIC0gMSk7XHJcbiAgaWYob3B0cy50eXBlID09ICdtb3VudCcgJiYgb3B0cy5leHRyYSAmJiBvcHRzLmV4dHJhLm1vdW50ICYmIG9wdHMuZXh0cmEubW91bnQud2lkdGhSYXRpbyAmJiBvcHRzLmV4dHJhLm1vdW50LndpZHRoUmF0aW8gPiAxICl7XHJcbiAgICBpZihvcHRzLmV4dHJhLm1vdW50LndpZHRoUmF0aW8+Mikgb3B0cy5leHRyYS5tb3VudC53aWR0aFJhdGlvID0gMlxyXG4gICAgVG90YWxXaWR0aCArPSAob3B0cy5leHRyYS5tb3VudC53aWR0aFJhdGlvIC0gMSkqeEF4aXNlYWNoU3BhY2luZztcclxuICB9XHJcbiAgbGV0IGVuZFggPSBzdGFydFggKyBUb3RhbFdpZHRoO1xyXG4gIGxldCBwb2ludHMgPSBbXTtcclxuICBsZXQgc3RhcnRZID0gMVxyXG4gIGlmIChvcHRzLnhBeGlzLmF4aXNMaW5lID09PSBmYWxzZSkge1xyXG4gICAgc3RhcnRZID0gMFxyXG4gIH1cclxuICBmb3IgKGxldCBpID0gc3RhcnRZOyBpIDwgb3B0cy55QXhpcy5zcGxpdE51bWJlciArIDE7IGkrKykge1xyXG4gICAgcG9pbnRzLnB1c2gob3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0gLSBlYWNoU3BhY2luZyAqIGkpO1xyXG4gIH1cclxuICBjb250ZXh0LnNhdmUoKTtcclxuICBpZiAob3B0cy5fc2Nyb2xsRGlzdGFuY2VfICYmIG9wdHMuX3Njcm9sbERpc3RhbmNlXyAhPT0gMCkge1xyXG4gICAgY29udGV4dC50cmFuc2xhdGUob3B0cy5fc2Nyb2xsRGlzdGFuY2VfLCAwKTtcclxuICB9XHJcbiAgaWYgKG9wdHMueUF4aXMuZ3JpZFR5cGUgPT0gJ2Rhc2gnKSB7XHJcbiAgICBjb250ZXh0LnNldExpbmVEYXNoKFtvcHRzLnlBeGlzLmRhc2hMZW5ndGggKiBvcHRzLnBpeCwgb3B0cy55QXhpcy5kYXNoTGVuZ3RoICogb3B0cy5waXhdKTtcclxuICB9XHJcbiAgY29udGV4dC5zZXRTdHJva2VTdHlsZShvcHRzLnlBeGlzLmdyaWRDb2xvcik7XHJcbiAgY29udGV4dC5zZXRMaW5lV2lkdGgoMSAqIG9wdHMucGl4KTtcclxuICBwb2ludHMuZm9yRWFjaChmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgIGNvbnRleHQubW92ZVRvKHN0YXJ0WCwgaXRlbSk7XHJcbiAgICBjb250ZXh0LmxpbmVUbyhlbmRYLCBpdGVtKTtcclxuICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgfSk7XHJcbiAgY29udGV4dC5zZXRMaW5lRGFzaChbXSk7XHJcbiAgY29udGV4dC5yZXN0b3JlKCk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRyYXdZQXhpcyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCkge1xyXG4gIGlmIChvcHRzLnlBeGlzLmRpc2FibGVkID09PSB0cnVlKSB7XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG4gIHZhciBzcGFjaW5nVmFsaWQgPSBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVswXSAtIG9wdHMuYXJlYVsyXTtcclxuICB2YXIgZWFjaFNwYWNpbmcgPSBzcGFjaW5nVmFsaWQgLyBvcHRzLnlBeGlzLnNwbGl0TnVtYmVyO1xyXG4gIHZhciBzdGFydFggPSBvcHRzLmFyZWFbM107XHJcbiAgdmFyIGVuZFggPSBvcHRzLndpZHRoIC0gb3B0cy5hcmVhWzFdO1xyXG4gIHZhciBlbmRZID0gb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl07XHJcbiAgLy8gc2V0IFlBeGlzIGJhY2tncm91bmRcclxuICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gIGNvbnRleHQuc2V0RmlsbFN0eWxlKG9wdHMuYmFja2dyb3VuZCk7XHJcbiAgaWYgKG9wdHMuZW5hYmxlU2Nyb2xsID09IHRydWUgJiYgb3B0cy54QXhpcy5zY3JvbGxQb3NpdGlvbiAmJiBvcHRzLnhBeGlzLnNjcm9sbFBvc2l0aW9uICE9PSAnbGVmdCcpIHtcclxuICAgIGNvbnRleHQuZmlsbFJlY3QoMCwgMCwgc3RhcnRYLCBlbmRZICsgMiAqIG9wdHMucGl4KTtcclxuICB9XHJcbiAgaWYgKG9wdHMuZW5hYmxlU2Nyb2xsID09IHRydWUgJiYgb3B0cy54QXhpcy5zY3JvbGxQb3NpdGlvbiAmJiBvcHRzLnhBeGlzLnNjcm9sbFBvc2l0aW9uICE9PSAncmlnaHQnKSB7XHJcbiAgICBjb250ZXh0LmZpbGxSZWN0KGVuZFgsIDAsIG9wdHMud2lkdGgsIGVuZFkgKyAyICogb3B0cy5waXgpO1xyXG4gIH1cclxuICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgXHJcbiAgbGV0IHRTdGFydExlZnQgPSBvcHRzLmFyZWFbM107XHJcbiAgbGV0IHRTdGFydFJpZ2h0ID0gb3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXTtcclxuICBsZXQgdFN0YXJ0Q2VudGVyID0gb3B0cy5hcmVhWzNdICsgKG9wdHMud2lkdGggLSBvcHRzLmFyZWFbMV0gLSBvcHRzLmFyZWFbM10pIC8gMjtcclxuICBpZiAob3B0cy55QXhpcy5kYXRhKSB7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG9wdHMueUF4aXMuZGF0YS5sZW5ndGg7IGkrKykge1xyXG4gICAgICBsZXQgeURhdGEgPSBvcHRzLnlBeGlzLmRhdGFbaV07XHJcbiAgICAgIHZhciBwb2ludHMgPSBbXTtcclxuICAgICAgaWYoeURhdGEudHlwZSA9PT0gJ2NhdGVnb3JpZXMnKXtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8PSB5RGF0YS5jYXRlZ29yaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICBwb2ludHMucHVzaChvcHRzLmFyZWFbMF0gKyBzcGFjaW5nVmFsaWQgLyB5RGF0YS5jYXRlZ29yaWVzLmxlbmd0aCAvIDIgKyBzcGFjaW5nVmFsaWQgLyB5RGF0YS5jYXRlZ29yaWVzLmxlbmd0aCAqIGkpO1xyXG4gICAgICAgIH1cclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gb3B0cy55QXhpcy5zcGxpdE51bWJlcjsgaSsrKSB7XHJcbiAgICAgICAgICBwb2ludHMucHVzaChvcHRzLmFyZWFbMF0gKyBlYWNoU3BhY2luZyAqIGkpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAoeURhdGEuZGlzYWJsZWQgIT09IHRydWUpIHtcclxuICAgICAgICBsZXQgcmFuZ2VzRm9ybWF0ID0gb3B0cy5jaGFydERhdGEueUF4aXNEYXRhLnJhbmdlc0Zvcm1hdFtpXTtcclxuICAgICAgICBsZXQgeUF4aXNGb250U2l6ZSA9IHlEYXRhLmZvbnRTaXplID8geURhdGEuZm9udFNpemUgKiBvcHRzLnBpeCA6IGNvbmZpZy5mb250U2l6ZTtcclxuICAgICAgICBsZXQgeUF4aXNXaWR0aCA9IG9wdHMuY2hhcnREYXRhLnlBeGlzRGF0YS55QXhpc1dpZHRoW2ldO1xyXG4gICAgICAgIGxldCB0ZXh0QWxpZ24gPSB5RGF0YS50ZXh0QWxpZ24gfHwgXCJyaWdodFwiO1xyXG4gICAgICAgIC8v55S7Wei9tOWIu+W6puWPiuaWh+ahiFxyXG4gICAgICAgIHJhbmdlc0Zvcm1hdC5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICAgICAgICB2YXIgcG9zID0gcG9pbnRzW2luZGV4XTtcclxuICAgICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgICBjb250ZXh0LnNldEZvbnRTaXplKHlBeGlzRm9udFNpemUpO1xyXG4gICAgICAgICAgY29udGV4dC5zZXRMaW5lV2lkdGgoMSAqIG9wdHMucGl4KTtcclxuICAgICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoeURhdGEuYXhpc0xpbmVDb2xvciB8fCAnI2NjY2NjYycpO1xyXG4gICAgICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoeURhdGEuZm9udENvbG9yIHx8IG9wdHMuZm9udENvbG9yKTtcclxuICAgICAgICAgIGxldCB0bXBzdHJhdCA9IDA7XHJcbiAgICAgICAgICBsZXQgZ2Fwd2lkdGggPSA0ICogb3B0cy5waXg7XHJcbiAgICAgICAgICBpZiAoeUF4aXNXaWR0aC5wb3NpdGlvbiA9PSAnbGVmdCcpIHtcclxuICAgICAgICAgICAgLy/nlLvliLvluqbnur9cclxuICAgICAgICAgICAgaWYgKHlEYXRhLmNhbGlicmF0aW9uID09IHRydWUpIHtcclxuICAgICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyh0U3RhcnRMZWZ0LCBwb3MpO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHRTdGFydExlZnQgLSAzICogb3B0cy5waXgsIHBvcyk7XHJcbiAgICAgICAgICAgICAgZ2Fwd2lkdGggKz0gMyAqIG9wdHMucGl4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8v55S75paH5a2XXHJcbiAgICAgICAgICAgIHN3aXRjaCAodGV4dEFsaWduKSB7XHJcbiAgICAgICAgICAgICAgY2FzZSBcImxlZnRcIjpcclxuICAgICAgICAgICAgICAgIGNvbnRleHQuc2V0VGV4dEFsaWduKCdsZWZ0Jyk7XHJcbiAgICAgICAgICAgICAgICB0bXBzdHJhdCA9IHRTdGFydExlZnQgLSB5QXhpc1dpZHRoLndpZHRoXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICBjYXNlIFwicmlnaHRcIjpcclxuICAgICAgICAgICAgICAgIGNvbnRleHQuc2V0VGV4dEFsaWduKCdyaWdodCcpO1xyXG4gICAgICAgICAgICAgICAgdG1wc3RyYXQgPSB0U3RhcnRMZWZ0IC0gZ2Fwd2lkdGhcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LnNldFRleHRBbGlnbignY2VudGVyJyk7XHJcbiAgICAgICAgICAgICAgICB0bXBzdHJhdCA9IHRTdGFydExlZnQgLSB5QXhpc1dpZHRoLndpZHRoIC8gMlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbFRleHQoU3RyaW5nKGl0ZW0pLCB0bXBzdHJhdCwgcG9zICsgeUF4aXNGb250U2l6ZSAvIDIgLSAzICogb3B0cy5waXgpO1xyXG5cclxuICAgICAgICAgIH0gZWxzZSBpZiAoeUF4aXNXaWR0aC5wb3NpdGlvbiA9PSAncmlnaHQnKSB7XHJcbiAgICAgICAgICAgIC8v55S75Yi75bqm57q/XHJcbiAgICAgICAgICAgIGlmICh5RGF0YS5jYWxpYnJhdGlvbiA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5tb3ZlVG8odFN0YXJ0UmlnaHQsIHBvcyk7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5saW5lVG8odFN0YXJ0UmlnaHQgKyAzICogb3B0cy5waXgsIHBvcyk7XHJcbiAgICAgICAgICAgICAgZ2Fwd2lkdGggKz0gMyAqIG9wdHMucGl4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHN3aXRjaCAodGV4dEFsaWduKSB7XHJcbiAgICAgICAgICAgICAgY2FzZSBcImxlZnRcIjpcclxuICAgICAgICAgICAgICAgIGNvbnRleHQuc2V0VGV4dEFsaWduKCdsZWZ0Jyk7XHJcbiAgICAgICAgICAgICAgICB0bXBzdHJhdCA9IHRTdGFydFJpZ2h0ICsgZ2Fwd2lkdGhcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgIGNhc2UgXCJyaWdodFwiOlxyXG4gICAgICAgICAgICAgICAgY29udGV4dC5zZXRUZXh0QWxpZ24oJ3JpZ2h0Jyk7XHJcbiAgICAgICAgICAgICAgICB0bXBzdHJhdCA9IHRTdGFydFJpZ2h0ICsgeUF4aXNXaWR0aC53aWR0aFxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgIGNvbnRleHQuc2V0VGV4dEFsaWduKCdjZW50ZXInKTtcclxuICAgICAgICAgICAgICAgIHRtcHN0cmF0ID0gdFN0YXJ0UmlnaHQgKyB5QXhpc1dpZHRoLndpZHRoIC8gMlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbFRleHQoU3RyaW5nKGl0ZW0pLCB0bXBzdHJhdCwgcG9zICsgeUF4aXNGb250U2l6ZSAvIDIgLSAzICogb3B0cy5waXgpO1xyXG4gICAgICAgICAgfSBlbHNlIGlmICh5QXhpc1dpZHRoLnBvc2l0aW9uID09ICdjZW50ZXInKSB7XHJcbiAgICAgICAgICAgIC8v55S75Yi75bqm57q/XHJcbiAgICAgICAgICAgIGlmICh5RGF0YS5jYWxpYnJhdGlvbiA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5tb3ZlVG8odFN0YXJ0Q2VudGVyLCBwb3MpO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHRTdGFydENlbnRlciAtIDMgKiBvcHRzLnBpeCwgcG9zKTtcclxuICAgICAgICAgICAgICBnYXB3aWR0aCArPSAzICogb3B0cy5waXg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy/nlLvmloflrZdcclxuICAgICAgICAgICAgc3dpdGNoICh0ZXh0QWxpZ24pIHtcclxuICAgICAgICAgICAgICBjYXNlIFwibGVmdFwiOlxyXG4gICAgICAgICAgICAgICAgY29udGV4dC5zZXRUZXh0QWxpZ24oJ2xlZnQnKTtcclxuICAgICAgICAgICAgICAgIHRtcHN0cmF0ID0gdFN0YXJ0Q2VudGVyIC0geUF4aXNXaWR0aC53aWR0aFxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgY2FzZSBcInJpZ2h0XCI6XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LnNldFRleHRBbGlnbigncmlnaHQnKTtcclxuICAgICAgICAgICAgICAgIHRtcHN0cmF0ID0gdFN0YXJ0Q2VudGVyIC0gZ2Fwd2lkdGhcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LnNldFRleHRBbGlnbignY2VudGVyJyk7XHJcbiAgICAgICAgICAgICAgICB0bXBzdHJhdCA9IHRTdGFydENlbnRlciAtIHlBeGlzV2lkdGgud2lkdGggLyAyXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29udGV4dC5maWxsVGV4dChTdHJpbmcoaXRlbSksIHRtcHN0cmF0LCBwb3MgKyB5QXhpc0ZvbnRTaXplIC8gMiAtIDMgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgICAgIGNvbnRleHQuc2V0VGV4dEFsaWduKCdsZWZ0Jyk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgLy/nlLtZ6L206L2057q/XHJcbiAgICAgICAgaWYgKHlEYXRhLmF4aXNMaW5lICE9PSBmYWxzZSkge1xyXG4gICAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoeURhdGEuYXhpc0xpbmVDb2xvciB8fCAnI2NjY2NjYycpO1xyXG4gICAgICAgICAgY29udGV4dC5zZXRMaW5lV2lkdGgoMSAqIG9wdHMucGl4KTtcclxuICAgICAgICAgIGlmICh5QXhpc1dpZHRoLnBvc2l0aW9uID09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyh0U3RhcnRMZWZ0LCBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXSk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHRTdGFydExlZnQsIG9wdHMuYXJlYVswXSk7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKHlBeGlzV2lkdGgucG9zaXRpb24gPT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyh0U3RhcnRSaWdodCwgb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0pO1xyXG4gICAgICAgICAgICBjb250ZXh0LmxpbmVUbyh0U3RhcnRSaWdodCwgb3B0cy5hcmVhWzBdKTtcclxuICAgICAgICAgIH0gZWxzZSBpZiAoeUF4aXNXaWR0aC5wb3NpdGlvbiA9PSAnY2VudGVyJykge1xyXG4gICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyh0U3RhcnRDZW50ZXIsIG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdKTtcclxuICAgICAgICAgICAgY29udGV4dC5saW5lVG8odFN0YXJ0Q2VudGVyLCBvcHRzLmFyZWFbMF0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy/nlLtZ6L205qCH6aKYXHJcbiAgICAgICAgaWYgKG9wdHMueUF4aXMuc2hvd1RpdGxlKSB7XHJcbiAgICAgICAgICBsZXQgdGl0bGVGb250U2l6ZSA9IHlEYXRhLnRpdGxlRm9udFNpemUgKiBvcHRzLnBpeCB8fCBjb25maWcuZm9udFNpemU7XHJcbiAgICAgICAgICBsZXQgdGl0bGUgPSB5RGF0YS50aXRsZTtcclxuICAgICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgICBjb250ZXh0LnNldEZvbnRTaXplKHRpdGxlRm9udFNpemUpO1xyXG4gICAgICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoeURhdGEudGl0bGVGb250Q29sb3IgfHwgb3B0cy5mb250Q29sb3IpO1xyXG4gICAgICAgICAgaWYgKHlBeGlzV2lkdGgucG9zaXRpb24gPT0gJ2xlZnQnKSB7XHJcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbFRleHQodGl0bGUsIHRTdGFydExlZnQgLSBtZWFzdXJlVGV4dCh0aXRsZSwgdGl0bGVGb250U2l6ZSwgY29udGV4dCkgLyAyICsgKHlEYXRhLnRpdGxlT2Zmc2V0WCB8fCAwKSwgb3B0cy5hcmVhWzBdIC0gKDEwIC0gKHlEYXRhLnRpdGxlT2Zmc2V0WSB8fCAwKSkgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKHlBeGlzV2lkdGgucG9zaXRpb24gPT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICBjb250ZXh0LmZpbGxUZXh0KHRpdGxlLCB0U3RhcnRSaWdodCAtIG1lYXN1cmVUZXh0KHRpdGxlLCB0aXRsZUZvbnRTaXplLCBjb250ZXh0KSAvIDIgKyAoeURhdGEudGl0bGVPZmZzZXRYIHx8IDApLCBvcHRzLmFyZWFbMF0gLSAoMTAgLSAoeURhdGEudGl0bGVPZmZzZXRZIHx8IDApKSAqIG9wdHMucGl4KTtcclxuICAgICAgICAgIH0gZWxzZSBpZiAoeUF4aXNXaWR0aC5wb3NpdGlvbiA9PSAnY2VudGVyJykge1xyXG4gICAgICAgICAgICBjb250ZXh0LmZpbGxUZXh0KHRpdGxlLCB0U3RhcnRDZW50ZXIgLSBtZWFzdXJlVGV4dCh0aXRsZSwgdGl0bGVGb250U2l6ZSwgY29udGV4dCkgLyAyICsgKHlEYXRhLnRpdGxlT2Zmc2V0WCB8fCAwKSwgb3B0cy5hcmVhWzBdIC0gKDEwIC0gKHlEYXRhLnRpdGxlT2Zmc2V0WSB8fCAwKSkgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHlBeGlzV2lkdGgucG9zaXRpb24gPT0gJ2xlZnQnKSB7XHJcbiAgICAgICAgICB0U3RhcnRMZWZ0IC09ICh5QXhpc1dpZHRoLndpZHRoICsgb3B0cy55QXhpcy5wYWRkaW5nICogb3B0cy5waXgpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0U3RhcnRSaWdodCArPSB5QXhpc1dpZHRoLndpZHRoICsgb3B0cy55QXhpcy5wYWRkaW5nICogb3B0cy5waXg7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd0xlZ2VuZChzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgY2hhcnREYXRhKSB7XHJcbiAgaWYgKG9wdHMubGVnZW5kLnNob3cgPT09IGZhbHNlKSB7XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG4gIGxldCBsZWdlbmREYXRhID0gY2hhcnREYXRhLmxlZ2VuZERhdGE7XHJcbiAgbGV0IGxlZ2VuZExpc3QgPSBsZWdlbmREYXRhLnBvaW50cztcclxuICBsZXQgbGVnZW5kQXJlYSA9IGxlZ2VuZERhdGEuYXJlYTtcclxuICBsZXQgcGFkZGluZyA9IG9wdHMubGVnZW5kLnBhZGRpbmcgKiBvcHRzLnBpeDtcclxuICBsZXQgZm9udFNpemUgPSBvcHRzLmxlZ2VuZC5mb250U2l6ZSAqIG9wdHMucGl4O1xyXG4gIGxldCBzaGFwZVdpZHRoID0gMTUgKiBvcHRzLnBpeDtcclxuICBsZXQgc2hhcGVSaWdodCA9IDUgKiBvcHRzLnBpeDtcclxuICBsZXQgaXRlbUdhcCA9IG9wdHMubGVnZW5kLml0ZW1HYXAgKiBvcHRzLnBpeDtcclxuICBsZXQgbGluZUhlaWdodCA9IE1hdGgubWF4KG9wdHMubGVnZW5kLmxpbmVIZWlnaHQgKiBvcHRzLnBpeCwgZm9udFNpemUpO1xyXG4gIC8v55S76IOM5pmv5Y+K6L655qGGXHJcbiAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICBjb250ZXh0LnNldExpbmVXaWR0aChvcHRzLmxlZ2VuZC5ib3JkZXJXaWR0aCAqIG9wdHMucGl4KTtcclxuICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKG9wdHMubGVnZW5kLmJvcmRlckNvbG9yKTtcclxuICBjb250ZXh0LnNldEZpbGxTdHlsZShvcHRzLmxlZ2VuZC5iYWNrZ3JvdW5kQ29sb3IpO1xyXG4gIGNvbnRleHQubW92ZVRvKGxlZ2VuZEFyZWEuc3RhcnQueCwgbGVnZW5kQXJlYS5zdGFydC55KTtcclxuICBjb250ZXh0LnJlY3QobGVnZW5kQXJlYS5zdGFydC54LCBsZWdlbmRBcmVhLnN0YXJ0LnksIGxlZ2VuZEFyZWEud2lkdGgsIGxlZ2VuZEFyZWEuaGVpZ2h0KTtcclxuICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gIGNvbnRleHQuZmlsbCgpO1xyXG4gIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgbGVnZW5kTGlzdC5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW1MaXN0LCBsaXN0SW5kZXgpIHtcclxuICAgIGxldCB3aWR0aCA9IDA7XHJcbiAgICBsZXQgaGVpZ2h0ID0gMDtcclxuICAgIHdpZHRoID0gbGVnZW5kRGF0YS53aWR0aEFycltsaXN0SW5kZXhdO1xyXG4gICAgaGVpZ2h0ID0gbGVnZW5kRGF0YS5oZWlnaHRBcnJbbGlzdEluZGV4XTtcclxuICAgIGxldCBzdGFydFggPSAwO1xyXG4gICAgbGV0IHN0YXJ0WSA9IDA7XHJcbiAgICBpZiAob3B0cy5sZWdlbmQucG9zaXRpb24gPT0gJ3RvcCcgfHwgb3B0cy5sZWdlbmQucG9zaXRpb24gPT0gJ2JvdHRvbScpIHtcclxuICAgICAgc3dpdGNoIChvcHRzLmxlZ2VuZC5mbG9hdCkge1xyXG4gICAgICAgIGNhc2UgJ2xlZnQnOlxyXG4gICAgICAgICAgc3RhcnRYID0gbGVnZW5kQXJlYS5zdGFydC54ICsgcGFkZGluZztcclxuICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdyaWdodCc6XHJcbiAgICAgICAgICBzdGFydFggPSBsZWdlbmRBcmVhLnN0YXJ0LnggKyBsZWdlbmRBcmVhLndpZHRoIC0gd2lkdGg7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICBzdGFydFggPSBsZWdlbmRBcmVhLnN0YXJ0LnggKyAobGVnZW5kQXJlYS53aWR0aCAtIHdpZHRoKSAvIDI7XHJcbiAgICAgIH1cclxuICAgICAgc3RhcnRZID0gbGVnZW5kQXJlYS5zdGFydC55ICsgcGFkZGluZyArIGxpc3RJbmRleCAqIGxpbmVIZWlnaHQ7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAobGlzdEluZGV4ID09IDApIHtcclxuICAgICAgICB3aWR0aCA9IDA7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgd2lkdGggPSBsZWdlbmREYXRhLndpZHRoQXJyW2xpc3RJbmRleCAtIDFdO1xyXG4gICAgICB9XHJcbiAgICAgIHN0YXJ0WCA9IGxlZ2VuZEFyZWEuc3RhcnQueCArIHBhZGRpbmcgKyB3aWR0aDtcclxuICAgICAgc3RhcnRZID0gbGVnZW5kQXJlYS5zdGFydC55ICsgcGFkZGluZyArIChsZWdlbmRBcmVhLmhlaWdodCAtIGhlaWdodCkgLyAyO1xyXG4gICAgfVxyXG4gICAgY29udGV4dC5zZXRGb250U2l6ZShjb25maWcuZm9udFNpemUpO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpdGVtTGlzdC5sZW5ndGg7IGkrKykge1xyXG4gICAgICBsZXQgaXRlbSA9IGl0ZW1MaXN0W2ldO1xyXG4gICAgICBpdGVtLmFyZWEgPSBbMCwgMCwgMCwgMF07XHJcbiAgICAgIGl0ZW0uYXJlYVswXSA9IHN0YXJ0WDtcclxuICAgICAgaXRlbS5hcmVhWzFdID0gc3RhcnRZO1xyXG4gICAgICBpdGVtLmFyZWFbM10gPSBzdGFydFkgKyBsaW5lSGVpZ2h0O1xyXG4gICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LnNldExpbmVXaWR0aCgxICogb3B0cy5waXgpO1xyXG4gICAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKGl0ZW0uc2hvdyA/IGl0ZW0uY29sb3IgOiBvcHRzLmxlZ2VuZC5oaWRkZW5Db2xvcik7XHJcbiAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGl0ZW0uc2hvdyA/IGl0ZW0uY29sb3IgOiBvcHRzLmxlZ2VuZC5oaWRkZW5Db2xvcik7XHJcbiAgICAgIHN3aXRjaCAoaXRlbS5sZWdlbmRTaGFwZSkge1xyXG4gICAgICAgIGNhc2UgJ2xpbmUnOlxyXG4gICAgICAgICAgY29udGV4dC5tb3ZlVG8oc3RhcnRYLCBzdGFydFkgKyAwLjUgKiBsaW5lSGVpZ2h0IC0gMiAqIG9wdHMucGl4KTtcclxuICAgICAgICAgIGNvbnRleHQuZmlsbFJlY3Qoc3RhcnRYLCBzdGFydFkgKyAwLjUgKiBsaW5lSGVpZ2h0IC0gMiAqIG9wdHMucGl4LCAxNSAqIG9wdHMucGl4LCA0ICogb3B0cy5waXgpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAndHJpYW5nbGUnOlxyXG4gICAgICAgICAgY29udGV4dC5tb3ZlVG8oc3RhcnRYICsgNy41ICogb3B0cy5waXgsIHN0YXJ0WSArIDAuNSAqIGxpbmVIZWlnaHQgLSA1ICogb3B0cy5waXgpO1xyXG4gICAgICAgICAgY29udGV4dC5saW5lVG8oc3RhcnRYICsgMi41ICogb3B0cy5waXgsIHN0YXJ0WSArIDAuNSAqIGxpbmVIZWlnaHQgKyA1ICogb3B0cy5waXgpO1xyXG4gICAgICAgICAgY29udGV4dC5saW5lVG8oc3RhcnRYICsgMTIuNSAqIG9wdHMucGl4LCBzdGFydFkgKyAwLjUgKiBsaW5lSGVpZ2h0ICsgNSAqIG9wdHMucGl4KTtcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKHN0YXJ0WCArIDcuNSAqIG9wdHMucGl4LCBzdGFydFkgKyAwLjUgKiBsaW5lSGVpZ2h0IC0gNSAqIG9wdHMucGl4KTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ2RpYW1vbmQnOlxyXG4gICAgICAgICAgY29udGV4dC5tb3ZlVG8oc3RhcnRYICsgNy41ICogb3B0cy5waXgsIHN0YXJ0WSArIDAuNSAqIGxpbmVIZWlnaHQgLSA1ICogb3B0cy5waXgpO1xyXG4gICAgICAgICAgY29udGV4dC5saW5lVG8oc3RhcnRYICsgMi41ICogb3B0cy5waXgsIHN0YXJ0WSArIDAuNSAqIGxpbmVIZWlnaHQpO1xyXG4gICAgICAgICAgY29udGV4dC5saW5lVG8oc3RhcnRYICsgNy41ICogb3B0cy5waXgsIHN0YXJ0WSArIDAuNSAqIGxpbmVIZWlnaHQgKyA1ICogb3B0cy5waXgpO1xyXG4gICAgICAgICAgY29udGV4dC5saW5lVG8oc3RhcnRYICsgMTIuNSAqIG9wdHMucGl4LCBzdGFydFkgKyAwLjUgKiBsaW5lSGVpZ2h0KTtcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKHN0YXJ0WCArIDcuNSAqIG9wdHMucGl4LCBzdGFydFkgKyAwLjUgKiBsaW5lSGVpZ2h0IC0gNSAqIG9wdHMucGl4KTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ2NpcmNsZSc6XHJcbiAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhzdGFydFggKyA3LjUgKiBvcHRzLnBpeCwgc3RhcnRZICsgMC41ICogbGluZUhlaWdodCk7XHJcbiAgICAgICAgICBjb250ZXh0LmFyYyhzdGFydFggKyA3LjUgKiBvcHRzLnBpeCwgc3RhcnRZICsgMC41ICogbGluZUhlaWdodCwgNSAqIG9wdHMucGl4LCAwLCAyICogTWF0aC5QSSk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdyZWN0JzpcclxuICAgICAgICAgIGNvbnRleHQubW92ZVRvKHN0YXJ0WCwgc3RhcnRZICsgMC41ICogbGluZUhlaWdodCAtIDUgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgICBjb250ZXh0LmZpbGxSZWN0KHN0YXJ0WCwgc3RhcnRZICsgMC41ICogbGluZUhlaWdodCAtIDUgKiBvcHRzLnBpeCwgMTUgKiBvcHRzLnBpeCwgMTAgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdzcXVhcmUnOlxyXG4gICAgICAgICAgY29udGV4dC5tb3ZlVG8oc3RhcnRYICsgNSAqIG9wdHMucGl4LCBzdGFydFkgKyAwLjUgKiBsaW5lSGVpZ2h0IC0gNSAqIG9wdHMucGl4KTtcclxuICAgICAgICAgIGNvbnRleHQuZmlsbFJlY3Qoc3RhcnRYICsgNSAqIG9wdHMucGl4LCBzdGFydFkgKyAwLjUgKiBsaW5lSGVpZ2h0IC0gNSAqIG9wdHMucGl4LCAxMCAqIG9wdHMucGl4LCAxMCAqIG9wdHMucGl4KTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ25vbmUnOlxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIGNvbnRleHQubW92ZVRvKHN0YXJ0WCwgc3RhcnRZICsgMC41ICogbGluZUhlaWdodCAtIDUgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgICBjb250ZXh0LmZpbGxSZWN0KHN0YXJ0WCwgc3RhcnRZICsgMC41ICogbGluZUhlaWdodCAtIDUgKiBvcHRzLnBpeCwgMTUgKiBvcHRzLnBpeCwgMTAgKiBvcHRzLnBpeCk7XHJcbiAgICAgIH1cclxuICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgIHN0YXJ0WCArPSBzaGFwZVdpZHRoICsgc2hhcGVSaWdodDtcclxuICAgICAgbGV0IGZvbnRUcmFucyA9IDAuNSAqIGxpbmVIZWlnaHQgKyAwLjUgKiBmb250U2l6ZSAtIDI7XHJcbiAgICAgIGNvbnN0IGxlZ2VuZFRleHQgPSBpdGVtLmxlZ2VuZFRleHQgPyBpdGVtLmxlZ2VuZFRleHQgOiBpdGVtLm5hbWU7XHJcbiAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgIGNvbnRleHQuc2V0Rm9udFNpemUoZm9udFNpemUpO1xyXG4gICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShpdGVtLnNob3cgPyBvcHRzLmxlZ2VuZC5mb250Q29sb3IgOiBvcHRzLmxlZ2VuZC5oaWRkZW5Db2xvcik7XHJcbiAgICAgIGNvbnRleHQuZmlsbFRleHQobGVnZW5kVGV4dCwgc3RhcnRYLCBzdGFydFkgKyBmb250VHJhbnMpO1xyXG4gICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICBpZiAob3B0cy5sZWdlbmQucG9zaXRpb24gPT0gJ3RvcCcgfHwgb3B0cy5sZWdlbmQucG9zaXRpb24gPT0gJ2JvdHRvbScpIHtcclxuICAgICAgICBzdGFydFggKz0gbWVhc3VyZVRleHQobGVnZW5kVGV4dCwgZm9udFNpemUsIGNvbnRleHQpICsgaXRlbUdhcDtcclxuICAgICAgICBpdGVtLmFyZWFbMl0gPSBzdGFydFg7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaXRlbS5hcmVhWzJdID0gc3RhcnRYICsgbWVhc3VyZVRleHQobGVnZW5kVGV4dCwgZm9udFNpemUsIGNvbnRleHQpICsgaXRlbUdhcDs7XHJcbiAgICAgICAgc3RhcnRYIC09IHNoYXBlV2lkdGggKyBzaGFwZVJpZ2h0O1xyXG4gICAgICAgIHN0YXJ0WSArPSBsaW5lSGVpZ2h0O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRyYXdQaWVEYXRhUG9pbnRzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KSB7XHJcbiAgdmFyIHByb2Nlc3MgPSBhcmd1bWVudHMubGVuZ3RoID4gNCAmJiBhcmd1bWVudHNbNF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s0XSA6IDE7XHJcbiAgdmFyIHBpZU9wdGlvbiA9IGFzc2lnbih7fSwge1xyXG4gICAgYWN0aXZlT3BhY2l0eTogMC41LFxyXG4gICAgYWN0aXZlUmFkaXVzOiAxMCxcclxuICAgIG9mZnNldEFuZ2xlOiAwLFxyXG4gICAgbGFiZWxXaWR0aDogMTUsXHJcbiAgICByaW5nV2lkdGg6IDMwLFxyXG4gICAgY3VzdG9tUmFkaXVzOiAwLFxyXG4gICAgYm9yZGVyOiBmYWxzZSxcclxuICAgIGJvcmRlcldpZHRoOiAyLFxyXG4gICAgYm9yZGVyQ29sb3I6ICcjRkZGRkZGJyxcclxuICAgIGNlbnRlckNvbG9yOiAnI0ZGRkZGRicsXHJcbiAgICBsaW5lYXJUeXBlOiAnbm9uZScsXHJcbiAgICBjdXN0b21Db2xvcjogW10sXHJcbiAgfSwgb3B0cy50eXBlID09IFwicGllXCIgPyBvcHRzLmV4dHJhLnBpZSA6IG9wdHMuZXh0cmEucmluZyk7XHJcbiAgdmFyIGNlbnRlclBvc2l0aW9uID0ge1xyXG4gICAgeDogb3B0cy5hcmVhWzNdICsgKG9wdHMud2lkdGggLSBvcHRzLmFyZWFbMV0gLSBvcHRzLmFyZWFbM10pIC8gMixcclxuICAgIHk6IG9wdHMuYXJlYVswXSArIChvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVswXSAtIG9wdHMuYXJlYVsyXSkgLyAyXHJcbiAgfTtcclxuICBpZiAoY29uZmlnLnBpZUNoYXJ0TGluZVBhZGRpbmcgPT0gMCkge1xyXG4gICAgY29uZmlnLnBpZUNoYXJ0TGluZVBhZGRpbmcgPSBwaWVPcHRpb24uYWN0aXZlUmFkaXVzICogb3B0cy5waXg7XHJcbiAgfVxyXG5cclxuICB2YXIgcmFkaXVzID0gTWF0aC5taW4oKG9wdHMud2lkdGggLSBvcHRzLmFyZWFbMV0gLSBvcHRzLmFyZWFbM10pIC8gMiAtIGNvbmZpZy5waWVDaGFydExpbmVQYWRkaW5nIC0gY29uZmlnLnBpZUNoYXJ0VGV4dFBhZGRpbmcgLSBjb25maWcuX3BpZVRleHRNYXhMZW5ndGhfLCAob3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMF0gLSBvcHRzLmFyZWFbMl0pIC8gMiAtIGNvbmZpZy5waWVDaGFydExpbmVQYWRkaW5nIC0gY29uZmlnLnBpZUNoYXJ0VGV4dFBhZGRpbmcpO1xyXG4gIHJhZGl1cyA9IHJhZGl1cyA8IDEwID8gMTAgOiByYWRpdXM7XHJcbiAgaWYgKHBpZU9wdGlvbi5jdXN0b21SYWRpdXMgPiAwKSB7XHJcbiAgICByYWRpdXMgPSBwaWVPcHRpb24uY3VzdG9tUmFkaXVzICogb3B0cy5waXg7XHJcbiAgfVxyXG4gIHNlcmllcyA9IGdldFBpZURhdGFQb2ludHMoc2VyaWVzLCByYWRpdXMsIHByb2Nlc3MpO1xyXG4gIHZhciBhY3RpdmVSYWRpdXMgPSBwaWVPcHRpb24uYWN0aXZlUmFkaXVzICogb3B0cy5waXg7XHJcbiAgcGllT3B0aW9uLmN1c3RvbUNvbG9yID0gZmlsbEN1c3RvbUNvbG9yKHBpZU9wdGlvbi5saW5lYXJUeXBlLCBwaWVPcHRpb24uY3VzdG9tQ29sb3IsIHNlcmllcywgY29uZmlnKTtcclxuICBzZXJpZXMgPSBzZXJpZXMubWFwKGZ1bmN0aW9uKGVhY2hTZXJpZXMpIHtcclxuICAgIGVhY2hTZXJpZXMuX3N0YXJ0XyArPSAocGllT3B0aW9uLm9mZnNldEFuZ2xlKSAqIE1hdGguUEkgLyAxODA7XHJcbiAgICByZXR1cm4gZWFjaFNlcmllcztcclxuICB9KTtcclxuICBzZXJpZXMuZm9yRWFjaChmdW5jdGlvbihlYWNoU2VyaWVzLCBzZXJpZXNJbmRleCkge1xyXG4gICAgaWYgKG9wdHMudG9vbHRpcCkge1xyXG4gICAgICBpZiAob3B0cy50b29sdGlwLmluZGV4ID09IHNlcmllc0luZGV4KSB7XHJcbiAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShoZXhUb1JnYihlYWNoU2VyaWVzLmNvbG9yLCBwaWVPcHRpb24uYWN0aXZlT3BhY2l0eSB8fCAwLjUpKTtcclxuICAgICAgICBjb250ZXh0Lm1vdmVUbyhjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55KTtcclxuICAgICAgICBjb250ZXh0LmFyYyhjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55LCBlYWNoU2VyaWVzLl9yYWRpdXNfICsgYWN0aXZlUmFkaXVzLCBlYWNoU2VyaWVzLl9zdGFydF8sIGVhY2hTZXJpZXMuX3N0YXJ0XyArIDIgKiBlYWNoU2VyaWVzLl9wcm9wb3J0aW9uXyAqIE1hdGguUEkpO1xyXG4gICAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICBjb250ZXh0LnNldExpbmVXaWR0aChwaWVPcHRpb24uYm9yZGVyV2lkdGggKiBvcHRzLnBpeCk7XHJcbiAgICBjb250ZXh0LmxpbmVKb2luID0gXCJyb3VuZFwiO1xyXG4gICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShwaWVPcHRpb24uYm9yZGVyQ29sb3IpO1xyXG4gICAgdmFyIGZpbGxjb2xvciA9IGVhY2hTZXJpZXMuY29sb3I7XHJcbiAgICBpZiAocGllT3B0aW9uLmxpbmVhclR5cGUgPT0gJ2N1c3RvbScpIHtcclxuICAgICAgdmFyIGdyZDtcclxuICAgICAgaWYoY29udGV4dC5jcmVhdGVDaXJjdWxhckdyYWRpZW50KXtcclxuICAgICAgICBncmQgPSBjb250ZXh0LmNyZWF0ZUNpcmN1bGFyR3JhZGllbnQoY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSwgZWFjaFNlcmllcy5fcmFkaXVzXylcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgZ3JkID0gY29udGV4dC5jcmVhdGVSYWRpYWxHcmFkaWVudChjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55LCAwLGNlbnRlclBvc2l0aW9uLngsIGNlbnRlclBvc2l0aW9uLnksIGVhY2hTZXJpZXMuX3JhZGl1c18pXHJcbiAgICAgIH1cclxuICAgICAgZ3JkLmFkZENvbG9yU3RvcCgwLCBoZXhUb1JnYihwaWVPcHRpb24uY3VzdG9tQ29sb3JbZWFjaFNlcmllcy5saW5lYXJJbmRleF0sIDEpKVxyXG4gICAgICBncmQuYWRkQ29sb3JTdG9wKDEsIGhleFRvUmdiKGVhY2hTZXJpZXMuY29sb3IsIDEpKVxyXG4gICAgICBmaWxsY29sb3IgPSBncmRcclxuICAgIH1cclxuICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGZpbGxjb2xvcik7XHJcbiAgICBjb250ZXh0Lm1vdmVUbyhjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55KTtcclxuICAgIGNvbnRleHQuYXJjKGNlbnRlclBvc2l0aW9uLngsIGNlbnRlclBvc2l0aW9uLnksIGVhY2hTZXJpZXMuX3JhZGl1c18sIGVhY2hTZXJpZXMuX3N0YXJ0XywgZWFjaFNlcmllcy5fc3RhcnRfICsgMiAqIGVhY2hTZXJpZXMuX3Byb3BvcnRpb25fICogTWF0aC5QSSk7XHJcbiAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgY29udGV4dC5maWxsKCk7XHJcbiAgICBpZiAocGllT3B0aW9uLmJvcmRlciA9PSB0cnVlKSB7XHJcbiAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgaWYgKG9wdHMudHlwZSA9PT0gJ3JpbmcnKSB7XHJcbiAgICB2YXIgaW5uZXJQaWVXaWR0aCA9IHJhZGl1cyAqIDAuNjtcclxuICAgIGlmICh0eXBlb2YgcGllT3B0aW9uLnJpbmdXaWR0aCA9PT0gJ251bWJlcicgJiYgcGllT3B0aW9uLnJpbmdXaWR0aCA+IDApIHtcclxuICAgICAgaW5uZXJQaWVXaWR0aCA9IE1hdGgubWF4KDAsIHJhZGl1cyAtIHBpZU9wdGlvbi5yaW5nV2lkdGggKiBvcHRzLnBpeCk7XHJcbiAgICB9XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5zZXRGaWxsU3R5bGUocGllT3B0aW9uLmNlbnRlckNvbG9yKTtcclxuICAgIGNvbnRleHQubW92ZVRvKGNlbnRlclBvc2l0aW9uLngsIGNlbnRlclBvc2l0aW9uLnkpO1xyXG4gICAgY29udGV4dC5hcmMoY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSwgaW5uZXJQaWVXaWR0aCwgMCwgMiAqIE1hdGguUEkpO1xyXG4gICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gIH1cclxuICBpZiAob3B0cy5kYXRhTGFiZWwgIT09IGZhbHNlICYmIHByb2Nlc3MgPT09IDEpIHtcclxuICAgIGRyYXdQaWVUZXh0KHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0LCByYWRpdXMsIGNlbnRlclBvc2l0aW9uKTtcclxuICB9XHJcbiAgaWYgKHByb2Nlc3MgPT09IDEgJiYgb3B0cy50eXBlID09PSAncmluZycpIHtcclxuICAgIGRyYXdSaW5nVGl0bGUob3B0cywgY29uZmlnLCBjb250ZXh0LCBjZW50ZXJQb3NpdGlvbik7XHJcbiAgfVxyXG4gIHJldHVybiB7XHJcbiAgICBjZW50ZXI6IGNlbnRlclBvc2l0aW9uLFxyXG4gICAgcmFkaXVzOiByYWRpdXMsXHJcbiAgICBzZXJpZXM6IHNlcmllc1xyXG4gIH07XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRyYXdSb3NlRGF0YVBvaW50cyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCkge1xyXG4gIHZhciBwcm9jZXNzID0gYXJndW1lbnRzLmxlbmd0aCA+IDQgJiYgYXJndW1lbnRzWzRdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbNF0gOiAxO1xyXG4gIHZhciByb3NlT3B0aW9uID0gYXNzaWduKHt9LCB7XHJcbiAgICB0eXBlOiAnYXJlYScsXHJcbiAgICBhY3RpdmVPcGFjaXR5OiAwLjUsXHJcbiAgICBhY3RpdmVSYWRpdXM6IDEwLFxyXG4gICAgb2Zmc2V0QW5nbGU6IDAsXHJcbiAgICBsYWJlbFdpZHRoOiAxNSxcclxuICAgIGJvcmRlcjogZmFsc2UsXHJcbiAgICBib3JkZXJXaWR0aDogMixcclxuICAgIGJvcmRlckNvbG9yOiAnI0ZGRkZGRicsXHJcbiAgICBsaW5lYXJUeXBlOiAnbm9uZScsXHJcbiAgICBjdXN0b21Db2xvcjogW10sXHJcbiAgfSwgb3B0cy5leHRyYS5yb3NlKTtcclxuICBpZiAoY29uZmlnLnBpZUNoYXJ0TGluZVBhZGRpbmcgPT0gMCkge1xyXG4gICAgY29uZmlnLnBpZUNoYXJ0TGluZVBhZGRpbmcgPSByb3NlT3B0aW9uLmFjdGl2ZVJhZGl1cyAqIG9wdHMucGl4O1xyXG4gIH1cclxuICB2YXIgY2VudGVyUG9zaXRpb24gPSB7XHJcbiAgICB4OiBvcHRzLmFyZWFbM10gKyAob3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXSAtIG9wdHMuYXJlYVszXSkgLyAyLFxyXG4gICAgeTogb3B0cy5hcmVhWzBdICsgKG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzBdIC0gb3B0cy5hcmVhWzJdKSAvIDJcclxuICB9O1xyXG4gIHZhciByYWRpdXMgPSBNYXRoLm1pbigob3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXSAtIG9wdHMuYXJlYVszXSkgLyAyIC0gY29uZmlnLnBpZUNoYXJ0TGluZVBhZGRpbmcgLSBjb25maWcucGllQ2hhcnRUZXh0UGFkZGluZyAtIGNvbmZpZy5fcGllVGV4dE1heExlbmd0aF8sIChvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVswXSAtIG9wdHMuYXJlYVsyXSkgLyAyIC0gY29uZmlnLnBpZUNoYXJ0TGluZVBhZGRpbmcgLSBjb25maWcucGllQ2hhcnRUZXh0UGFkZGluZyk7XHJcbiAgcmFkaXVzID0gcmFkaXVzIDwgMTAgPyAxMCA6IHJhZGl1cztcclxuICB2YXIgbWluUmFkaXVzID0gcm9zZU9wdGlvbi5taW5SYWRpdXMgfHwgcmFkaXVzICogMC41O1xyXG4gIHNlcmllcyA9IGdldFJvc2VEYXRhUG9pbnRzKHNlcmllcywgcm9zZU9wdGlvbi50eXBlLCBtaW5SYWRpdXMsIHJhZGl1cywgcHJvY2Vzcyk7XHJcbiAgdmFyIGFjdGl2ZVJhZGl1cyA9IHJvc2VPcHRpb24uYWN0aXZlUmFkaXVzICogb3B0cy5waXg7XHJcbiAgcm9zZU9wdGlvbi5jdXN0b21Db2xvciA9IGZpbGxDdXN0b21Db2xvcihyb3NlT3B0aW9uLmxpbmVhclR5cGUsIHJvc2VPcHRpb24uY3VzdG9tQ29sb3IsIHNlcmllcywgY29uZmlnKTtcclxuICBzZXJpZXMgPSBzZXJpZXMubWFwKGZ1bmN0aW9uKGVhY2hTZXJpZXMpIHtcclxuICAgIGVhY2hTZXJpZXMuX3N0YXJ0XyArPSAocm9zZU9wdGlvbi5vZmZzZXRBbmdsZSB8fCAwKSAqIE1hdGguUEkgLyAxODA7XHJcbiAgICByZXR1cm4gZWFjaFNlcmllcztcclxuICB9KTtcclxuICBzZXJpZXMuZm9yRWFjaChmdW5jdGlvbihlYWNoU2VyaWVzLCBzZXJpZXNJbmRleCkge1xyXG4gICAgaWYgKG9wdHMudG9vbHRpcCkge1xyXG4gICAgICBpZiAob3B0cy50b29sdGlwLmluZGV4ID09IHNlcmllc0luZGV4KSB7XHJcbiAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShoZXhUb1JnYihlYWNoU2VyaWVzLmNvbG9yLCByb3NlT3B0aW9uLmFjdGl2ZU9wYWNpdHkgfHwgMC41KSk7XHJcbiAgICAgICAgY29udGV4dC5tb3ZlVG8oY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSk7XHJcbiAgICAgICAgY29udGV4dC5hcmMoY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSwgYWN0aXZlUmFkaXVzICsgZWFjaFNlcmllcy5fcmFkaXVzXywgZWFjaFNlcmllcy5fc3RhcnRfLCBlYWNoU2VyaWVzLl9zdGFydF8gKyAyICogZWFjaFNlcmllcy5fcm9zZV9wcm9wb3J0aW9uXyAqIE1hdGguUEkpO1xyXG4gICAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICBjb250ZXh0LnNldExpbmVXaWR0aChyb3NlT3B0aW9uLmJvcmRlcldpZHRoICogb3B0cy5waXgpO1xyXG4gICAgY29udGV4dC5saW5lSm9pbiA9IFwicm91bmRcIjtcclxuICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUocm9zZU9wdGlvbi5ib3JkZXJDb2xvcik7XHJcbiAgICB2YXIgZmlsbGNvbG9yID0gZWFjaFNlcmllcy5jb2xvcjtcclxuICAgIGlmIChyb3NlT3B0aW9uLmxpbmVhclR5cGUgPT0gJ2N1c3RvbScpIHtcclxuICAgICAgdmFyIGdyZDtcclxuICAgICAgaWYoY29udGV4dC5jcmVhdGVDaXJjdWxhckdyYWRpZW50KXtcclxuICAgICAgICBncmQgPSBjb250ZXh0LmNyZWF0ZUNpcmN1bGFyR3JhZGllbnQoY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSwgZWFjaFNlcmllcy5fcmFkaXVzXylcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgZ3JkID0gY29udGV4dC5jcmVhdGVSYWRpYWxHcmFkaWVudChjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55LCAwLGNlbnRlclBvc2l0aW9uLngsIGNlbnRlclBvc2l0aW9uLnksIGVhY2hTZXJpZXMuX3JhZGl1c18pXHJcbiAgICAgIH1cclxuICAgICAgZ3JkLmFkZENvbG9yU3RvcCgwLCBoZXhUb1JnYihyb3NlT3B0aW9uLmN1c3RvbUNvbG9yW2VhY2hTZXJpZXMubGluZWFySW5kZXhdLCAxKSlcclxuICAgICAgZ3JkLmFkZENvbG9yU3RvcCgxLCBoZXhUb1JnYihlYWNoU2VyaWVzLmNvbG9yLCAxKSlcclxuICAgICAgZmlsbGNvbG9yID0gZ3JkXHJcbiAgICB9XHJcbiAgICBjb250ZXh0LnNldEZpbGxTdHlsZShmaWxsY29sb3IpO1xyXG4gICAgY29udGV4dC5tb3ZlVG8oY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSk7XHJcbiAgICBjb250ZXh0LmFyYyhjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55LCBlYWNoU2VyaWVzLl9yYWRpdXNfLCBlYWNoU2VyaWVzLl9zdGFydF8sIGVhY2hTZXJpZXMuX3N0YXJ0XyArIDIgKiBlYWNoU2VyaWVzLl9yb3NlX3Byb3BvcnRpb25fICogTWF0aC5QSSk7XHJcbiAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgY29udGV4dC5maWxsKCk7XHJcbiAgICBpZiAocm9zZU9wdGlvbi5ib3JkZXIgPT0gdHJ1ZSkge1xyXG4gICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG5cclxuICBpZiAob3B0cy5kYXRhTGFiZWwgIT09IGZhbHNlICYmIHByb2Nlc3MgPT09IDEpIHtcclxuICAgIGRyYXdQaWVUZXh0KHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0LCByYWRpdXMsIGNlbnRlclBvc2l0aW9uKTtcclxuICB9XHJcbiAgcmV0dXJuIHtcclxuICAgIGNlbnRlcjogY2VudGVyUG9zaXRpb24sXHJcbiAgICByYWRpdXM6IHJhZGl1cyxcclxuICAgIHNlcmllczogc2VyaWVzXHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd0FyY2JhckRhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpIHtcclxuICB2YXIgcHJvY2VzcyA9IGFyZ3VtZW50cy5sZW5ndGggPiA0ICYmIGFyZ3VtZW50c1s0XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzRdIDogMTtcclxuICB2YXIgYXJjYmFyT3B0aW9uID0gYXNzaWduKHt9LCB7XHJcbiAgICBzdGFydEFuZ2xlOiAwLjc1LFxyXG4gICAgZW5kQW5nbGU6IDAuMjUsXHJcbiAgICB0eXBlOiAnZGVmYXVsdCcsXHJcbiAgICBkaXJlY3Rpb246ICdjdycsXHJcbiAgICBsaW5lQ2FwOiAncm91bmQnLFxyXG4gICAgd2lkdGg6IDEyICxcclxuICAgIGdhcDogMiAsXHJcbiAgICBsaW5lYXJUeXBlOiAnbm9uZScsXHJcbiAgICBjdXN0b21Db2xvcjogW10sXHJcbiAgfSwgb3B0cy5leHRyYS5hcmNiYXIpO1xyXG4gIHNlcmllcyA9IGdldEFyY2JhckRhdGFQb2ludHMoc2VyaWVzLCBhcmNiYXJPcHRpb24sIHByb2Nlc3MpO1xyXG4gIHZhciBjZW50ZXJQb3NpdGlvbjtcclxuICBpZiAoYXJjYmFyT3B0aW9uLmNlbnRlclggfHwgYXJjYmFyT3B0aW9uLmNlbnRlclkpIHtcclxuICAgIGNlbnRlclBvc2l0aW9uID0ge1xyXG4gICAgICB4OiBhcmNiYXJPcHRpb24uY2VudGVyWCA/IGFyY2Jhck9wdGlvbi5jZW50ZXJYIDogb3B0cy53aWR0aCAvIDIsXHJcbiAgICAgIHk6IGFyY2Jhck9wdGlvbi5jZW50ZXJZID8gYXJjYmFyT3B0aW9uLmNlbnRlclkgOiBvcHRzLmhlaWdodCAvIDJcclxuICAgIH07XHJcbiAgfSBlbHNlIHtcclxuICAgIGNlbnRlclBvc2l0aW9uID0ge1xyXG4gICAgICB4OiBvcHRzLndpZHRoIC8gMixcclxuICAgICAgeTogb3B0cy5oZWlnaHQgLyAyXHJcbiAgICB9O1xyXG4gIH1cclxuICB2YXIgcmFkaXVzO1xyXG4gIGlmIChhcmNiYXJPcHRpb24ucmFkaXVzKSB7XHJcbiAgICByYWRpdXMgPSBhcmNiYXJPcHRpb24ucmFkaXVzO1xyXG4gIH0gZWxzZSB7XHJcbiAgICByYWRpdXMgPSBNYXRoLm1pbihjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55KTtcclxuICAgIHJhZGl1cyAtPSA1ICogb3B0cy5waXg7XHJcbiAgICByYWRpdXMgLT0gYXJjYmFyT3B0aW9uLndpZHRoIC8gMjtcclxuICB9XHJcbiAgcmFkaXVzID0gcmFkaXVzIDwgMTAgPyAxMCA6IHJhZGl1cztcclxuICBhcmNiYXJPcHRpb24uY3VzdG9tQ29sb3IgPSBmaWxsQ3VzdG9tQ29sb3IoYXJjYmFyT3B0aW9uLmxpbmVhclR5cGUsIGFyY2Jhck9wdGlvbi5jdXN0b21Db2xvciwgc2VyaWVzLCBjb25maWcpO1xyXG4gIFxyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc2VyaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBsZXQgZWFjaFNlcmllcyA9IHNlcmllc1tpXTtcclxuICAgIC8v6IOM5pmv6aKc6ImyXHJcbiAgICBjb250ZXh0LnNldExpbmVXaWR0aChhcmNiYXJPcHRpb24ud2lkdGggKiBvcHRzLnBpeCk7XHJcbiAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKGFyY2Jhck9wdGlvbi5iYWNrZ3JvdW5kQ29sb3IgfHwgJyNFOUU5RTknKTtcclxuICAgIGNvbnRleHQuc2V0TGluZUNhcChhcmNiYXJPcHRpb24ubGluZUNhcCk7XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgaWYgKGFyY2Jhck9wdGlvbi50eXBlID09ICdkZWZhdWx0Jykge1xyXG4gICAgICBjb250ZXh0LmFyYyhjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55LCByYWRpdXMgLSAoYXJjYmFyT3B0aW9uLndpZHRoICogb3B0cy5waXggKyBhcmNiYXJPcHRpb24uZ2FwICogb3B0cy5waXgpICogaSwgYXJjYmFyT3B0aW9uLnN0YXJ0QW5nbGUgKiBNYXRoLlBJLCBhcmNiYXJPcHRpb24uZW5kQW5nbGUgKiBNYXRoLlBJLCBhcmNiYXJPcHRpb24uZGlyZWN0aW9uID09ICdjY3cnKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnRleHQuYXJjKGNlbnRlclBvc2l0aW9uLngsIGNlbnRlclBvc2l0aW9uLnksIHJhZGl1cyAtIChhcmNiYXJPcHRpb24ud2lkdGggKiBvcHRzLnBpeCArIGFyY2Jhck9wdGlvbi5nYXAgKiBvcHRzLnBpeCkgKiBpLCAwLCAyICogTWF0aC5QSSwgYXJjYmFyT3B0aW9uLmRpcmVjdGlvbiA9PSAnY2N3Jyk7XHJcbiAgICB9XHJcbiAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgLy/ov5vluqbmnaFcclxuICAgIHZhciBmaWxsQ29sb3IgPSBlYWNoU2VyaWVzLmNvbG9yXHJcbiAgICBpZihhcmNiYXJPcHRpb24ubGluZWFyVHlwZSA9PSAnY3VzdG9tJyl7XHJcbiAgICAgIHZhciBncmQgPSBjb250ZXh0LmNyZWF0ZUxpbmVhckdyYWRpZW50KGNlbnRlclBvc2l0aW9uLnggLSByYWRpdXMsIGNlbnRlclBvc2l0aW9uLnksIGNlbnRlclBvc2l0aW9uLnggKyByYWRpdXMsIGNlbnRlclBvc2l0aW9uLnkpO1xyXG4gICAgICBncmQuYWRkQ29sb3JTdG9wKDEsIGhleFRvUmdiKGFyY2Jhck9wdGlvbi5jdXN0b21Db2xvcltlYWNoU2VyaWVzLmxpbmVhckluZGV4XSwgMSkpXHJcbiAgICAgIGdyZC5hZGRDb2xvclN0b3AoMCwgaGV4VG9SZ2IoZWFjaFNlcmllcy5jb2xvciwgMSkpXHJcbiAgICAgIGZpbGxDb2xvciA9IGdyZDtcclxuICAgIH1cclxuICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKGFyY2Jhck9wdGlvbi53aWR0aCAqIG9wdHMucGl4KTtcclxuICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoZmlsbENvbG9yKTtcclxuICAgIGNvbnRleHQuc2V0TGluZUNhcChhcmNiYXJPcHRpb24ubGluZUNhcCk7XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5hcmMoY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSwgcmFkaXVzIC0gKGFyY2Jhck9wdGlvbi53aWR0aCAqIG9wdHMucGl4ICsgYXJjYmFyT3B0aW9uLmdhcCAqIG9wdHMucGl4KSAqIGksIGFyY2Jhck9wdGlvbi5zdGFydEFuZ2xlICogTWF0aC5QSSwgZWFjaFNlcmllcy5fcHJvcG9ydGlvbl8gKiBNYXRoLlBJLCBhcmNiYXJPcHRpb24uZGlyZWN0aW9uID09ICdjY3cnKTtcclxuICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgfVxyXG4gIGRyYXdSaW5nVGl0bGUob3B0cywgY29uZmlnLCBjb250ZXh0LCBjZW50ZXJQb3NpdGlvbik7XHJcbiAgcmV0dXJuIHtcclxuICAgIGNlbnRlcjogY2VudGVyUG9zaXRpb24sXHJcbiAgICByYWRpdXM6IHJhZGl1cyxcclxuICAgIHNlcmllczogc2VyaWVzXHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd0dhdWdlRGF0YVBvaW50cyhjYXRlZ29yaWVzLCBzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCkge1xyXG4gIHZhciBwcm9jZXNzID0gYXJndW1lbnRzLmxlbmd0aCA+IDUgJiYgYXJndW1lbnRzWzVdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbNV0gOiAxO1xyXG4gIHZhciBnYXVnZU9wdGlvbiA9IGFzc2lnbih7fSwge1xyXG4gICAgdHlwZTogJ2RlZmF1bHQnLFxyXG4gICAgc3RhcnRBbmdsZTogMC43NSxcclxuICAgIGVuZEFuZ2xlOiAwLjI1LFxyXG4gICAgd2lkdGg6IDE1LFxyXG4gICAgbGFiZWxPZmZzZXQ6MTMsXHJcbiAgICBzcGxpdExpbmU6IHtcclxuICAgICAgZml4UmFkaXVzOiAwLFxyXG4gICAgICBzcGxpdE51bWJlcjogMTAsXHJcbiAgICAgIHdpZHRoOiAxNSxcclxuICAgICAgY29sb3I6ICcjRkZGRkZGJyxcclxuICAgICAgY2hpbGROdW1iZXI6IDUsXHJcbiAgICAgIGNoaWxkV2lkdGg6IDVcclxuICAgIH0sXHJcbiAgICBwb2ludGVyOiB7XHJcbiAgICAgIHdpZHRoOiAxNSxcclxuICAgICAgY29sb3I6ICdhdXRvJ1xyXG4gICAgfVxyXG4gIH0sIG9wdHMuZXh0cmEuZ2F1Z2UpO1xyXG4gIGlmIChnYXVnZU9wdGlvbi5vbGRBbmdsZSA9PSB1bmRlZmluZWQpIHtcclxuICAgIGdhdWdlT3B0aW9uLm9sZEFuZ2xlID0gZ2F1Z2VPcHRpb24uc3RhcnRBbmdsZTtcclxuICB9XHJcbiAgaWYgKGdhdWdlT3B0aW9uLm9sZERhdGEgPT0gdW5kZWZpbmVkKSB7XHJcbiAgICBnYXVnZU9wdGlvbi5vbGREYXRhID0gMDtcclxuICB9XHJcbiAgY2F0ZWdvcmllcyA9IGdldEdhdWdlQXhpc1BvaW50cyhjYXRlZ29yaWVzLCBnYXVnZU9wdGlvbi5zdGFydEFuZ2xlLCBnYXVnZU9wdGlvbi5lbmRBbmdsZSk7XHJcbiAgdmFyIGNlbnRlclBvc2l0aW9uID0ge1xyXG4gICAgeDogb3B0cy53aWR0aCAvIDIsXHJcbiAgICB5OiBvcHRzLmhlaWdodCAvIDJcclxuICB9O1xyXG4gIHZhciByYWRpdXMgPSBNYXRoLm1pbihjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55KTtcclxuICByYWRpdXMgLT0gNSAqIG9wdHMucGl4O1xyXG4gIHJhZGl1cyAtPSBnYXVnZU9wdGlvbi53aWR0aCAvIDI7XHJcbiAgcmFkaXVzID0gcmFkaXVzIDwgMTAgPyAxMCA6IHJhZGl1cztcclxuICB2YXIgaW5uZXJSYWRpdXMgPSByYWRpdXMgLSBnYXVnZU9wdGlvbi53aWR0aDtcclxuICB2YXIgdG90YWxBbmdsZSA9IDA7XHJcbiAgLy/liKTmlq3ku6rooajnm5jnmoTmoLflvI/vvJpkZWZhdWx055m+5bqm5qC35byP77yMcHJvZ3Jlc3PmlrDmoLflvI9cclxuICBpZiAoZ2F1Z2VPcHRpb24udHlwZSA9PSAncHJvZ3Jlc3MnKSB7XHJcbiAgICAvLyMjIOesrOS4gOatpeeUu+S4reW/g+WchuW9ouiDjOaZr+WSjOi/m+W6puadoeiDjOaZr1xyXG4gICAgLy/kuK3lv4PlnIblvaLog4zmma9cclxuICAgIHZhciBwaWVSYWRpdXMgPSByYWRpdXMgLSBnYXVnZU9wdGlvbi53aWR0aCAqIDM7XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgbGV0IGdyYWRpZW50ID0gY29udGV4dC5jcmVhdGVMaW5lYXJHcmFkaWVudChjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55IC0gcGllUmFkaXVzLCBjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55ICsgcGllUmFkaXVzKTtcclxuICAgIC8v6YWN572u5riQ5Y+Y5aGr5YWF77yI6LW354K577ya5Lit5b+D54K55ZCR5LiK5YeP5Y2K5b6E77yb57uT5p2f54K55Lit5b+D54K55ZCR5LiL5Yqg5Y2K5b6E77yJXHJcbiAgICBncmFkaWVudC5hZGRDb2xvclN0b3AoJzAnLCBoZXhUb1JnYihzZXJpZXNbMF0uY29sb3IsIDAuMykpO1xyXG4gICAgZ3JhZGllbnQuYWRkQ29sb3JTdG9wKCcxLjAnLCBoZXhUb1JnYihcIiNGRkZGRkZcIiwgMC4xKSk7XHJcbiAgICBjb250ZXh0LnNldEZpbGxTdHlsZShncmFkaWVudCk7XHJcbiAgICBjb250ZXh0LmFyYyhjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55LCBwaWVSYWRpdXMsIDAsIDIgKiBNYXRoLlBJLCBmYWxzZSk7XHJcbiAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgIC8v55S76L+b5bqm5p2h6IOM5pmvXHJcbiAgICBjb250ZXh0LnNldExpbmVXaWR0aChnYXVnZU9wdGlvbi53aWR0aCk7XHJcbiAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKGhleFRvUmdiKHNlcmllc1swXS5jb2xvciwgMC4zKSk7XHJcbiAgICBjb250ZXh0LnNldExpbmVDYXAoJ3JvdW5kJyk7XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5hcmMoY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSwgaW5uZXJSYWRpdXMsIGdhdWdlT3B0aW9uLnN0YXJ0QW5nbGUgKiBNYXRoLlBJLCBnYXVnZU9wdGlvbi5lbmRBbmdsZSAqIE1hdGguUEksIGZhbHNlKTtcclxuICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAvLyMjIOesrOS6jOatpeeUu+WIu+W6pue6v1xyXG4gICAgdG90YWxBbmdsZSA9IGdhdWdlT3B0aW9uLnN0YXJ0QW5nbGUgLSBnYXVnZU9wdGlvbi5lbmRBbmdsZSArIDE7XHJcbiAgICBsZXQgc3BsaXRBbmdsZSA9IHRvdGFsQW5nbGUgLyBnYXVnZU9wdGlvbi5zcGxpdExpbmUuc3BsaXROdW1iZXI7XHJcbiAgICBsZXQgY2hpbGRBbmdsZSA9IHRvdGFsQW5nbGUgLyBnYXVnZU9wdGlvbi5zcGxpdExpbmUuc3BsaXROdW1iZXIgLyBnYXVnZU9wdGlvbi5zcGxpdExpbmUuY2hpbGROdW1iZXI7XHJcbiAgICBsZXQgc3RhcnRYID0gLXJhZGl1cyAtIGdhdWdlT3B0aW9uLndpZHRoICogMC41IC0gZ2F1Z2VPcHRpb24uc3BsaXRMaW5lLmZpeFJhZGl1cztcclxuICAgIGxldCBlbmRYID0gLXJhZGl1cyAtIGdhdWdlT3B0aW9uLndpZHRoIC0gZ2F1Z2VPcHRpb24uc3BsaXRMaW5lLmZpeFJhZGl1cyArIGdhdWdlT3B0aW9uLnNwbGl0TGluZS53aWR0aDtcclxuICAgIGNvbnRleHQuc2F2ZSgpO1xyXG4gICAgY29udGV4dC50cmFuc2xhdGUoY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSk7XHJcbiAgICBjb250ZXh0LnJvdGF0ZSgoZ2F1Z2VPcHRpb24uc3RhcnRBbmdsZSAtIDEpICogTWF0aC5QSSk7XHJcbiAgICBsZXQgbGVuID0gZ2F1Z2VPcHRpb24uc3BsaXRMaW5lLnNwbGl0TnVtYmVyICogZ2F1Z2VPcHRpb24uc3BsaXRMaW5lLmNoaWxkTnVtYmVyICsgMTtcclxuICAgIGxldCBwcm9jID0gc2VyaWVzWzBdLmRhdGEgKiBwcm9jZXNzO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkrKykge1xyXG4gICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAvL+WIu+W6pue6v+maj+i/m+W6puWPmOiJslxyXG4gICAgICBpZiAocHJvYyA+IChpIC8gbGVuKSkge1xyXG4gICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoaGV4VG9SZ2Ioc2VyaWVzWzBdLmNvbG9yLCAxKSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShoZXhUb1JnYihzZXJpZXNbMF0uY29sb3IsIDAuMykpO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKDMgKiBvcHRzLnBpeCk7XHJcbiAgICAgIGNvbnRleHQubW92ZVRvKHN0YXJ0WCwgMCk7XHJcbiAgICAgIGNvbnRleHQubGluZVRvKGVuZFgsIDApO1xyXG4gICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICBjb250ZXh0LnJvdGF0ZShjaGlsZEFuZ2xlICogTWF0aC5QSSk7XHJcbiAgICB9XHJcbiAgICBjb250ZXh0LnJlc3RvcmUoKTtcclxuICAgIC8vIyMg56ys5LiJ5q2l55S76L+b5bqm5p2hXHJcbiAgICBzZXJpZXMgPSBnZXRHYXVnZUFyY2JhckRhdGFQb2ludHMoc2VyaWVzLCBnYXVnZU9wdGlvbiwgcHJvY2Vzcyk7XHJcbiAgICBjb250ZXh0LnNldExpbmVXaWR0aChnYXVnZU9wdGlvbi53aWR0aCk7XHJcbiAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKHNlcmllc1swXS5jb2xvcik7XHJcbiAgICBjb250ZXh0LnNldExpbmVDYXAoJ3JvdW5kJyk7XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5hcmMoY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSwgaW5uZXJSYWRpdXMsIGdhdWdlT3B0aW9uLnN0YXJ0QW5nbGUgKiBNYXRoLlBJLCBzZXJpZXNbMF0uX3Byb3BvcnRpb25fICogTWF0aC5QSSwgZmFsc2UpO1xyXG4gICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgIC8vIyMg56ys5Zub5q2l55S75oyH6ZKIXHJcbiAgICBsZXQgcG9pbnRlclJhZGl1cyA9IHJhZGl1cyAtIGdhdWdlT3B0aW9uLndpZHRoICogMi41O1xyXG4gICAgY29udGV4dC5zYXZlKCk7XHJcbiAgICBjb250ZXh0LnRyYW5zbGF0ZShjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55KTtcclxuICAgIGNvbnRleHQucm90YXRlKChzZXJpZXNbMF0uX3Byb3BvcnRpb25fIC0gMSkgKiBNYXRoLlBJKTtcclxuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICBjb250ZXh0LnNldExpbmVXaWR0aChnYXVnZU9wdGlvbi53aWR0aCAvIDMpO1xyXG4gICAgbGV0IGdyYWRpZW50MyA9IGNvbnRleHQuY3JlYXRlTGluZWFyR3JhZGllbnQoMCwgLXBvaW50ZXJSYWRpdXMgKiAwLjYsIDAsIHBvaW50ZXJSYWRpdXMgKiAwLjYpO1xyXG4gICAgZ3JhZGllbnQzLmFkZENvbG9yU3RvcCgnMCcsIGhleFRvUmdiKCcjRkZGRkZGJywgMCkpO1xyXG4gICAgZ3JhZGllbnQzLmFkZENvbG9yU3RvcCgnMC41JywgaGV4VG9SZ2Ioc2VyaWVzWzBdLmNvbG9yLCAxKSk7XHJcbiAgICBncmFkaWVudDMuYWRkQ29sb3JTdG9wKCcxLjAnLCBoZXhUb1JnYignI0ZGRkZGRicsIDApKTtcclxuICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoZ3JhZGllbnQzKTtcclxuICAgIGNvbnRleHQuYXJjKDAsIDAsIHBvaW50ZXJSYWRpdXMsIDAuODUgKiBNYXRoLlBJLCAxLjE1ICogTWF0aC5QSSwgZmFsc2UpO1xyXG4gICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICBjb250ZXh0LnNldExpbmVXaWR0aCgxKTtcclxuICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoc2VyaWVzWzBdLmNvbG9yKTtcclxuICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKHNlcmllc1swXS5jb2xvcik7XHJcbiAgICBjb250ZXh0Lm1vdmVUbygtcG9pbnRlclJhZGl1cyAtIGdhdWdlT3B0aW9uLndpZHRoIC8gMyAvIDIsIC00KTtcclxuICAgIGNvbnRleHQubGluZVRvKC1wb2ludGVyUmFkaXVzIC0gZ2F1Z2VPcHRpb24ud2lkdGggLyAzIC8gMiAtIDQsIDApO1xyXG4gICAgY29udGV4dC5saW5lVG8oLXBvaW50ZXJSYWRpdXMgLSBnYXVnZU9wdGlvbi53aWR0aCAvIDMgLyAyLCA0KTtcclxuICAgIGNvbnRleHQubGluZVRvKC1wb2ludGVyUmFkaXVzIC0gZ2F1Z2VPcHRpb24ud2lkdGggLyAzIC8gMiwgLTQpO1xyXG4gICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgY29udGV4dC5yZXN0b3JlKCk7XHJcbiAgICAvL2RlZmF1bHTnmb7luqbmoLflvI9cclxuICB9IGVsc2Uge1xyXG4gICAgLy/nlLvog4zmma9cclxuICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKGdhdWdlT3B0aW9uLndpZHRoKTtcclxuICAgIGNvbnRleHQuc2V0TGluZUNhcCgnYnV0dCcpO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjYXRlZ29yaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGxldCBlYWNoQ2F0ZWdvcmllcyA9IGNhdGVnb3JpZXNbaV07XHJcbiAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoZWFjaENhdGVnb3JpZXMuY29sb3IpO1xyXG4gICAgICBjb250ZXh0LmFyYyhjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55LCByYWRpdXMsIGVhY2hDYXRlZ29yaWVzLl9zdGFydEFuZ2xlXyAqIE1hdGguUEksIGVhY2hDYXRlZ29yaWVzLl9lbmRBbmdsZV8gKiBNYXRoLlBJLCBmYWxzZSk7XHJcbiAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICB9XHJcbiAgICBjb250ZXh0LnNhdmUoKTtcclxuICAgIC8v55S75Yi75bqm57q/XHJcbiAgICB0b3RhbEFuZ2xlID0gZ2F1Z2VPcHRpb24uc3RhcnRBbmdsZSAtIGdhdWdlT3B0aW9uLmVuZEFuZ2xlICsgMTtcclxuICAgIGxldCBzcGxpdEFuZ2xlID0gdG90YWxBbmdsZSAvIGdhdWdlT3B0aW9uLnNwbGl0TGluZS5zcGxpdE51bWJlcjtcclxuICAgIGxldCBjaGlsZEFuZ2xlID0gdG90YWxBbmdsZSAvIGdhdWdlT3B0aW9uLnNwbGl0TGluZS5zcGxpdE51bWJlciAvIGdhdWdlT3B0aW9uLnNwbGl0TGluZS5jaGlsZE51bWJlcjtcclxuICAgIGxldCBzdGFydFggPSAtcmFkaXVzIC0gZ2F1Z2VPcHRpb24ud2lkdGggKiAwLjUgLSBnYXVnZU9wdGlvbi5zcGxpdExpbmUuZml4UmFkaXVzO1xyXG4gICAgbGV0IGVuZFggPSAtcmFkaXVzIC0gZ2F1Z2VPcHRpb24ud2lkdGggKiAwLjUgLSBnYXVnZU9wdGlvbi5zcGxpdExpbmUuZml4UmFkaXVzICsgZ2F1Z2VPcHRpb24uc3BsaXRMaW5lLndpZHRoO1xyXG4gICAgbGV0IGNoaWxkZW5kWCA9IC1yYWRpdXMgLSBnYXVnZU9wdGlvbi53aWR0aCAqIDAuNSAtIGdhdWdlT3B0aW9uLnNwbGl0TGluZS5maXhSYWRpdXMgKyBnYXVnZU9wdGlvbi5zcGxpdExpbmUuY2hpbGRXaWR0aDtcclxuICAgIGNvbnRleHQudHJhbnNsYXRlKGNlbnRlclBvc2l0aW9uLngsIGNlbnRlclBvc2l0aW9uLnkpO1xyXG4gICAgY29udGV4dC5yb3RhdGUoKGdhdWdlT3B0aW9uLnN0YXJ0QW5nbGUgLSAxKSAqIE1hdGguUEkpO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBnYXVnZU9wdGlvbi5zcGxpdExpbmUuc3BsaXROdW1iZXIgKyAxOyBpKyspIHtcclxuICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShnYXVnZU9wdGlvbi5zcGxpdExpbmUuY29sb3IpO1xyXG4gICAgICBjb250ZXh0LnNldExpbmVXaWR0aCgyICogb3B0cy5waXgpO1xyXG4gICAgICBjb250ZXh0Lm1vdmVUbyhzdGFydFgsIDApO1xyXG4gICAgICBjb250ZXh0LmxpbmVUbyhlbmRYLCAwKTtcclxuICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgY29udGV4dC5yb3RhdGUoc3BsaXRBbmdsZSAqIE1hdGguUEkpO1xyXG4gICAgfVxyXG4gICAgY29udGV4dC5yZXN0b3JlKCk7XHJcbiAgICBjb250ZXh0LnNhdmUoKTtcclxuICAgIGNvbnRleHQudHJhbnNsYXRlKGNlbnRlclBvc2l0aW9uLngsIGNlbnRlclBvc2l0aW9uLnkpO1xyXG4gICAgY29udGV4dC5yb3RhdGUoKGdhdWdlT3B0aW9uLnN0YXJ0QW5nbGUgLSAxKSAqIE1hdGguUEkpO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBnYXVnZU9wdGlvbi5zcGxpdExpbmUuc3BsaXROdW1iZXIgKiBnYXVnZU9wdGlvbi5zcGxpdExpbmUuY2hpbGROdW1iZXIgKyAxOyBpKyspIHtcclxuICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShnYXVnZU9wdGlvbi5zcGxpdExpbmUuY29sb3IpO1xyXG4gICAgICBjb250ZXh0LnNldExpbmVXaWR0aCgxICogb3B0cy5waXgpO1xyXG4gICAgICBjb250ZXh0Lm1vdmVUbyhzdGFydFgsIDApO1xyXG4gICAgICBjb250ZXh0LmxpbmVUbyhjaGlsZGVuZFgsIDApO1xyXG4gICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICBjb250ZXh0LnJvdGF0ZShjaGlsZEFuZ2xlICogTWF0aC5QSSk7XHJcbiAgICB9XHJcbiAgICBjb250ZXh0LnJlc3RvcmUoKTtcclxuICAgIC8v55S75oyH6ZKIXHJcbiAgICBzZXJpZXMgPSBnZXRHYXVnZURhdGFQb2ludHMoc2VyaWVzLCBjYXRlZ29yaWVzLCBnYXVnZU9wdGlvbiwgcHJvY2Vzcyk7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNlcmllcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBsZXQgZWFjaFNlcmllcyA9IHNlcmllc1tpXTtcclxuICAgICAgY29udGV4dC5zYXZlKCk7XHJcbiAgICAgIGNvbnRleHQudHJhbnNsYXRlKGNlbnRlclBvc2l0aW9uLngsIGNlbnRlclBvc2l0aW9uLnkpO1xyXG4gICAgICBjb250ZXh0LnJvdGF0ZSgoZWFjaFNlcmllcy5fcHJvcG9ydGlvbl8gLSAxKSAqIE1hdGguUEkpO1xyXG4gICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShlYWNoU2VyaWVzLmNvbG9yKTtcclxuICAgICAgY29udGV4dC5tb3ZlVG8oZ2F1Z2VPcHRpb24ucG9pbnRlci53aWR0aCwgMCk7XHJcbiAgICAgIGNvbnRleHQubGluZVRvKDAsIC1nYXVnZU9wdGlvbi5wb2ludGVyLndpZHRoIC8gMik7XHJcbiAgICAgIGNvbnRleHQubGluZVRvKC1pbm5lclJhZGl1cywgMCk7XHJcbiAgICAgIGNvbnRleHQubGluZVRvKDAsIGdhdWdlT3B0aW9uLnBvaW50ZXIud2lkdGggLyAyKTtcclxuICAgICAgY29udGV4dC5saW5lVG8oZ2F1Z2VPcHRpb24ucG9pbnRlci53aWR0aCwgMCk7XHJcbiAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LnNldEZpbGxTdHlsZSgnI0ZGRkZGRicpO1xyXG4gICAgICBjb250ZXh0LmFyYygwLCAwLCBnYXVnZU9wdGlvbi5wb2ludGVyLndpZHRoIC8gNiwgMCwgMiAqIE1hdGguUEksIGZhbHNlKTtcclxuICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAgIGNvbnRleHQucmVzdG9yZSgpO1xyXG4gICAgfVxyXG4gICAgaWYgKG9wdHMuZGF0YUxhYmVsICE9PSBmYWxzZSkge1xyXG4gICAgICBkcmF3R2F1Z2VMYWJlbChnYXVnZU9wdGlvbiwgcmFkaXVzLCBjZW50ZXJQb3NpdGlvbiwgb3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgIH1cclxuICB9XHJcbiAgLy/nlLvku6rooajnm5jmoIfpopjvvIzlia/moIfpophcclxuICBkcmF3UmluZ1RpdGxlKG9wdHMsIGNvbmZpZywgY29udGV4dCwgY2VudGVyUG9zaXRpb24pO1xyXG4gIGlmIChwcm9jZXNzID09PSAxICYmIG9wdHMudHlwZSA9PT0gJ2dhdWdlJykge1xyXG4gICAgb3B0cy5leHRyYS5nYXVnZS5vbGRBbmdsZSA9IHNlcmllc1swXS5fcHJvcG9ydGlvbl87XHJcbiAgICBvcHRzLmV4dHJhLmdhdWdlLm9sZERhdGEgPSBzZXJpZXNbMF0uZGF0YTtcclxuICB9XHJcbiAgcmV0dXJuIHtcclxuICAgIGNlbnRlcjogY2VudGVyUG9zaXRpb24sXHJcbiAgICByYWRpdXM6IHJhZGl1cyxcclxuICAgIGlubmVyUmFkaXVzOiBpbm5lclJhZGl1cyxcclxuICAgIGNhdGVnb3JpZXM6IGNhdGVnb3JpZXMsXHJcbiAgICB0b3RhbEFuZ2xlOiB0b3RhbEFuZ2xlXHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd1JhZGFyRGF0YVBvaW50cyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCkge1xyXG4gIHZhciBwcm9jZXNzID0gYXJndW1lbnRzLmxlbmd0aCA+IDQgJiYgYXJndW1lbnRzWzRdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbNF0gOiAxO1xyXG4gIHZhciByYWRhck9wdGlvbiA9IGFzc2lnbih7fSwge1xyXG4gICAgZ3JpZENvbG9yOiAnI2NjY2NjYycsXHJcbiAgICBncmlkVHlwZTogJ3JhZGFyJyxcclxuICAgIGdyaWRFdmFsOjEsXHJcbiAgICBheGlzTGFiZWw6ZmFsc2UsXHJcbiAgICBheGlzTGFiZWxUb2ZpeDowLFxyXG4gICAgbGFiZWxDb2xvcjonIzY2NjY2NicsXHJcbiAgICBsYWJlbFBvaW50U2hvdzpmYWxzZSxcclxuICAgIGxhYmVsUG9pbnRSYWRpdXM6MyxcclxuICAgIGxhYmVsUG9pbnRDb2xvcjonI2NjY2NjYycsXHJcbiAgICBvcGFjaXR5OiAwLjIsXHJcbiAgICBncmlkQ291bnQ6IDMsXHJcbiAgICBib3JkZXI6ZmFsc2UsXHJcbiAgICBib3JkZXJXaWR0aDoyLFxyXG4gICAgbGluZWFyVHlwZTogJ25vbmUnLFxyXG4gICAgY3VzdG9tQ29sb3I6IFtdLFxyXG4gIH0sIG9wdHMuZXh0cmEucmFkYXIpO1xyXG4gIHZhciBjb29yZGluYXRlQW5nbGUgPSBnZXRSYWRhckNvb3JkaW5hdGVTZXJpZXMob3B0cy5jYXRlZ29yaWVzLmxlbmd0aCk7XHJcbiAgdmFyIGNlbnRlclBvc2l0aW9uID0ge1xyXG4gICAgeDogb3B0cy5hcmVhWzNdICsgKG9wdHMud2lkdGggLSBvcHRzLmFyZWFbMV0gLSBvcHRzLmFyZWFbM10pIC8gMixcclxuICAgIHk6IG9wdHMuYXJlYVswXSArIChvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVswXSAtIG9wdHMuYXJlYVsyXSkgLyAyXHJcbiAgfTtcclxuICB2YXIgeHIgPSAob3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXSAtIG9wdHMuYXJlYVszXSkgLyAyXHJcbiAgdmFyIHlyID0gKG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzBdIC0gb3B0cy5hcmVhWzJdKSAvIDJcclxuICB2YXIgcmFkaXVzID0gTWF0aC5taW4oeHIgLSAoZ2V0TWF4VGV4dExpc3RMZW5ndGgob3B0cy5jYXRlZ29yaWVzLCBjb25maWcuZm9udFNpemUsIGNvbnRleHQpICsgY29uZmlnLnJhZGFyTGFiZWxUZXh0TWFyZ2luKSwgeXIgLSBjb25maWcucmFkYXJMYWJlbFRleHRNYXJnaW4pO1xyXG4gIHJhZGl1cyAtPSBjb25maWcucmFkYXJMYWJlbFRleHRNYXJnaW4gKiBvcHRzLnBpeDtcclxuICByYWRpdXMgPSByYWRpdXMgPCAxMCA/IDEwIDogcmFkaXVzO1xyXG4gIC8vIOeUu+WIhuWJsue6v1xyXG4gIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgY29udGV4dC5zZXRMaW5lV2lkdGgoMSAqIG9wdHMucGl4KTtcclxuICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKHJhZGFyT3B0aW9uLmdyaWRDb2xvcik7XHJcbiAgY29vcmRpbmF0ZUFuZ2xlLmZvckVhY2goZnVuY3Rpb24oYW5nbGUsaW5kZXgpIHtcclxuICAgIHZhciBwb3MgPSBjb252ZXJ0Q29vcmRpbmF0ZU9yaWdpbihyYWRpdXMgKiBNYXRoLmNvcyhhbmdsZSksIHJhZGl1cyAqIE1hdGguc2luKGFuZ2xlKSwgY2VudGVyUG9zaXRpb24pO1xyXG4gICAgY29udGV4dC5tb3ZlVG8oY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSk7XHJcbiAgICBpZiAoaW5kZXggJSByYWRhck9wdGlvbi5ncmlkRXZhbCA9PSAwKSB7XHJcbiAgICAgIGNvbnRleHQubGluZVRvKHBvcy54LCBwb3MueSk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgY29udGV4dC5zdHJva2UoKTtcclxuICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gIFxyXG4gIC8vIOeUu+iDjOaZr+e9keagvFxyXG4gIHZhciBfbG9vcCA9IGZ1bmN0aW9uIF9sb29wKGkpIHtcclxuICAgIHZhciBzdGFydFBvcyA9IHt9O1xyXG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKDEgKiBvcHRzLnBpeCk7XHJcbiAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKHJhZGFyT3B0aW9uLmdyaWRDb2xvcik7XHJcbiAgICBpZiAocmFkYXJPcHRpb24uZ3JpZFR5cGUgPT0gJ3JhZGFyJykge1xyXG4gICAgICBjb29yZGluYXRlQW5nbGUuZm9yRWFjaChmdW5jdGlvbihhbmdsZSwgaW5kZXgpIHtcclxuICAgICAgICB2YXIgcG9zID0gY29udmVydENvb3JkaW5hdGVPcmlnaW4ocmFkaXVzIC8gcmFkYXJPcHRpb24uZ3JpZENvdW50ICogaSAqIE1hdGguY29zKGFuZ2xlKSwgcmFkaXVzIC9cclxuICAgICAgICAgIHJhZGFyT3B0aW9uLmdyaWRDb3VudCAqIGkgKiBNYXRoLnNpbihhbmdsZSksIGNlbnRlclBvc2l0aW9uKTtcclxuICAgICAgICBpZiAoaW5kZXggPT09IDApIHtcclxuICAgICAgICAgIHN0YXJ0UG9zID0gcG9zO1xyXG4gICAgICAgICAgY29udGV4dC5tb3ZlVG8ocG9zLngsIHBvcy55KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29udGV4dC5saW5lVG8ocG9zLngsIHBvcy55KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBjb250ZXh0LmxpbmVUbyhzdGFydFBvcy54LCBzdGFydFBvcy55KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHZhciBwb3MgPSBjb252ZXJ0Q29vcmRpbmF0ZU9yaWdpbihyYWRpdXMgLyByYWRhck9wdGlvbi5ncmlkQ291bnQgKiBpICogTWF0aC5jb3MoMS41KSwgcmFkaXVzIC8gcmFkYXJPcHRpb24uZ3JpZENvdW50ICogaSAqIE1hdGguc2luKDEuNSksIGNlbnRlclBvc2l0aW9uKTtcclxuICAgICAgY29udGV4dC5hcmMoY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSwgY2VudGVyUG9zaXRpb24ueSAtIHBvcy55LCAwLCAyICogTWF0aC5QSSwgZmFsc2UpO1xyXG4gICAgfVxyXG4gICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgfTtcclxuICBmb3IgKHZhciBpID0gMTsgaSA8PSByYWRhck9wdGlvbi5ncmlkQ291bnQ7IGkrKykge1xyXG4gICAgX2xvb3AoaSk7XHJcbiAgfVxyXG4gIHJhZGFyT3B0aW9uLmN1c3RvbUNvbG9yID0gZmlsbEN1c3RvbUNvbG9yKHJhZGFyT3B0aW9uLmxpbmVhclR5cGUsIHJhZGFyT3B0aW9uLmN1c3RvbUNvbG9yLCBzZXJpZXMsIGNvbmZpZyk7XHJcbiAgdmFyIHJhZGFyRGF0YVBvaW50cyA9IGdldFJhZGFyRGF0YVBvaW50cyhjb29yZGluYXRlQW5nbGUsIGNlbnRlclBvc2l0aW9uLCByYWRpdXMsIHNlcmllcywgb3B0cywgcHJvY2Vzcyk7XHJcbiAgcmFkYXJEYXRhUG9pbnRzLmZvckVhY2goZnVuY3Rpb24oZWFjaFNlcmllcywgc2VyaWVzSW5kZXgpIHtcclxuICAgIC8vIOe7mOWItuWMuuWfn+aVsOaNrlxyXG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKHJhZGFyT3B0aW9uLmJvcmRlcldpZHRoICogb3B0cy5waXgpO1xyXG4gICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShlYWNoU2VyaWVzLmNvbG9yKTtcclxuICAgIFxyXG4gICAgdmFyIGZpbGxjb2xvciA9IGhleFRvUmdiKGVhY2hTZXJpZXMuY29sb3IsIHJhZGFyT3B0aW9uLm9wYWNpdHkpO1xyXG4gICAgaWYgKHJhZGFyT3B0aW9uLmxpbmVhclR5cGUgPT0gJ2N1c3RvbScpIHtcclxuICAgICAgdmFyIGdyZDtcclxuICAgICAgaWYoY29udGV4dC5jcmVhdGVDaXJjdWxhckdyYWRpZW50KXtcclxuICAgICAgICBncmQgPSBjb250ZXh0LmNyZWF0ZUNpcmN1bGFyR3JhZGllbnQoY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSwgcmFkaXVzKVxyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICBncmQgPSBjb250ZXh0LmNyZWF0ZVJhZGlhbEdyYWRpZW50KGNlbnRlclBvc2l0aW9uLngsIGNlbnRlclBvc2l0aW9uLnksIDAsY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSwgcmFkaXVzKVxyXG4gICAgICB9XHJcbiAgICAgIGdyZC5hZGRDb2xvclN0b3AoMCwgaGV4VG9SZ2IocmFkYXJPcHRpb24uY3VzdG9tQ29sb3Jbc2VyaWVzW3Nlcmllc0luZGV4XS5saW5lYXJJbmRleF0sIHJhZGFyT3B0aW9uLm9wYWNpdHkpKVxyXG4gICAgICBncmQuYWRkQ29sb3JTdG9wKDEsIGhleFRvUmdiKGVhY2hTZXJpZXMuY29sb3IsIHJhZGFyT3B0aW9uLm9wYWNpdHkpKVxyXG4gICAgICBmaWxsY29sb3IgPSBncmRcclxuICAgIH1cclxuICAgIFxyXG4gICAgY29udGV4dC5zZXRGaWxsU3R5bGUoZmlsbGNvbG9yKTtcclxuICAgIGVhY2hTZXJpZXMuZGF0YS5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICAgIGlmIChpbmRleCA9PT0gMCkge1xyXG4gICAgICAgIGNvbnRleHQubW92ZVRvKGl0ZW0ucG9zaXRpb24ueCwgaXRlbS5wb3NpdGlvbi55KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLnBvc2l0aW9uLngsIGl0ZW0ucG9zaXRpb24ueSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgaWYocmFkYXJPcHRpb24uYm9yZGVyID09PSB0cnVlKXtcclxuICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgIH1cclxuICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICBpZiAob3B0cy5kYXRhUG9pbnRTaGFwZSAhPT0gZmFsc2UpIHtcclxuICAgICAgdmFyIHBvaW50cyA9IGVhY2hTZXJpZXMuZGF0YS5tYXAoZnVuY3Rpb24oaXRlbSkge1xyXG4gICAgICAgIHJldHVybiBpdGVtLnBvc2l0aW9uO1xyXG4gICAgICB9KTtcclxuICAgICAgZHJhd1BvaW50U2hhcGUocG9pbnRzLCBlYWNoU2VyaWVzLmNvbG9yLCBlYWNoU2VyaWVzLnBvaW50U2hhcGUsIGNvbnRleHQsIG9wdHMpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG4gIC8vIOeUu+WIu+W6puWAvFxyXG4gIGlmKHJhZGFyT3B0aW9uLmF4aXNMYWJlbCA9PT0gdHJ1ZSl7XHJcbiAgICBjb25zdCBtYXhEYXRhID0gTWF0aC5tYXgocmFkYXJPcHRpb24ubWF4LCBNYXRoLm1heC5hcHBseShudWxsLCBkYXRhQ29tYmluZShzZXJpZXMpKSk7XHJcbiAgICBjb25zdCBzdGVwTGVuZ3RoID0gcmFkaXVzIC8gcmFkYXJPcHRpb24uZ3JpZENvdW50O1xyXG4gICAgY29uc3QgZm9udFNpemUgPSBvcHRzLmZvbnRTaXplICogb3B0cy5waXg7XHJcbiAgICBjb250ZXh0LnNldEZvbnRTaXplKGZvbnRTaXplKTtcclxuICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKG9wdHMuZm9udENvbG9yKTtcclxuICAgIGNvbnRleHQuc2V0VGV4dEFsaWduKCdsZWZ0Jyk7XHJcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJhZGFyT3B0aW9uLmdyaWRDb3VudCArIDE7IGkrKykge1xyXG4gICAgICBsZXQgbGFiZWwgPSBpICogbWF4RGF0YSAvIHJhZGFyT3B0aW9uLmdyaWRDb3VudDtcclxuICAgICAgbGFiZWwgPSBsYWJlbC50b0ZpeGVkKHJhZGFyT3B0aW9uLmF4aXNMYWJlbFRvZml4KTtcclxuICAgICAgY29udGV4dC5maWxsVGV4dChTdHJpbmcobGFiZWwpLCBjZW50ZXJQb3NpdGlvbi54ICsgMyAqIG9wdHMucGl4LCBjZW50ZXJQb3NpdGlvbi55IC0gaSAqIHN0ZXBMZW5ndGggKyBmb250U2l6ZSAvIDIpO1xyXG4gICAgfVxyXG4gIH1cclxuICBcclxuICAvLyBkcmF3IGxhYmVsIHRleHRcclxuICBkcmF3UmFkYXJMYWJlbChjb29yZGluYXRlQW5nbGUsIHJhZGl1cywgY2VudGVyUG9zaXRpb24sIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgXHJcbiAgLy8gZHJhdyBkYXRhTGFiZWxcclxuICBpZiAob3B0cy5kYXRhTGFiZWwgIT09IGZhbHNlICYmIHByb2Nlc3MgPT09IDEpIHtcclxuICAgIHJhZGFyRGF0YVBvaW50cy5mb3JFYWNoKGZ1bmN0aW9uKGVhY2hTZXJpZXMsIHNlcmllc0luZGV4KSB7XHJcbiAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgIHZhciBmb250U2l6ZSA9IGVhY2hTZXJpZXMudGV4dFNpemUgKiBvcHRzLnBpeCB8fCBjb25maWcuZm9udFNpemU7XHJcbiAgICAgIGNvbnRleHQuc2V0Rm9udFNpemUoZm9udFNpemUpO1xyXG4gICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShlYWNoU2VyaWVzLnRleHRDb2xvciB8fCBvcHRzLmZvbnRDb2xvcik7XHJcbiAgICAgIGVhY2hTZXJpZXMuZGF0YS5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICAgICAgLy/lpoLmnpzmmK/kuK3lv4PngrnlnoLnm7TnmoTkuIrkuIvngrnkvY1cclxuICAgICAgICBpZihNYXRoLmFicyhpdGVtLnBvc2l0aW9uLnggLSBjZW50ZXJQb3NpdGlvbi54KTwyKXtcclxuICAgICAgICAgIC8v5aaC5p6c5Zyo5LiK6Z2iXHJcbiAgICAgICAgICBpZihpdGVtLnBvc2l0aW9uLnkgPCBjZW50ZXJQb3NpdGlvbi55KXtcclxuICAgICAgICAgICAgY29udGV4dC5zZXRUZXh0QWxpZ24oJ2NlbnRlcicpO1xyXG4gICAgICAgICAgICBjb250ZXh0LmZpbGxUZXh0KGl0ZW0udmFsdWUsIGl0ZW0ucG9zaXRpb24ueCwgaXRlbS5wb3NpdGlvbi55IC0gNCk7XHJcbiAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgY29udGV4dC5zZXRUZXh0QWxpZ24oJ2NlbnRlcicpO1xyXG4gICAgICAgICAgICBjb250ZXh0LmZpbGxUZXh0KGl0ZW0udmFsdWUsIGl0ZW0ucG9zaXRpb24ueCwgaXRlbS5wb3NpdGlvbi55ICsgZm9udFNpemUgKyAyKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgIC8v5aaC5p6c5Zyo5bem5L6nXHJcbiAgICAgICAgICBpZihpdGVtLnBvc2l0aW9uLnggPCBjZW50ZXJQb3NpdGlvbi54KXtcclxuICAgICAgICAgICAgY29udGV4dC5zZXRUZXh0QWxpZ24oJ3JpZ2h0Jyk7XHJcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbFRleHQoaXRlbS52YWx1ZSwgaXRlbS5wb3NpdGlvbi54IC0gNCwgaXRlbS5wb3NpdGlvbi55ICsgZm9udFNpemUgLyAyIC0gMik7XHJcbiAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgY29udGV4dC5zZXRUZXh0QWxpZ24oJ2xlZnQnKTtcclxuICAgICAgICAgICAgY29udGV4dC5maWxsVGV4dChpdGVtLnZhbHVlLCBpdGVtLnBvc2l0aW9uLnggKyA0LCBpdGVtLnBvc2l0aW9uLnkgKyBmb250U2l6ZSAvIDIgLSAyKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgfSk7XHJcbiAgICBjb250ZXh0LnNldFRleHRBbGlnbignbGVmdCcpO1xyXG4gIH1cclxuICBcclxuICByZXR1cm4ge1xyXG4gICAgY2VudGVyOiBjZW50ZXJQb3NpdGlvbixcclxuICAgIHJhZGl1czogcmFkaXVzLFxyXG4gICAgYW5nbGVMaXN0OiBjb29yZGluYXRlQW5nbGVcclxuICB9O1xyXG59XHJcblxyXG4vLyDnu4/nuqzluqbovazloqjljaHmiZhcclxuZnVuY3Rpb24gbG9ubGF0Mm1lcmNhdG9yKGxvbmdpdHVkZSwgbGF0aXR1ZGUpIHtcclxuICB2YXIgbWVyY2F0b3IgPSBBcnJheSgyKTtcclxuICB2YXIgeCA9IGxvbmdpdHVkZSAqIDIwMDM3NTA4LjM0IC8gMTgwO1xyXG4gIHZhciB5ID0gTWF0aC5sb2coTWF0aC50YW4oKDkwICsgbGF0aXR1ZGUpICogTWF0aC5QSSAvIDM2MCkpIC8gKE1hdGguUEkgLyAxODApO1xyXG4gIHkgPSB5ICogMjAwMzc1MDguMzQgLyAxODA7XHJcbiAgbWVyY2F0b3JbMF0gPSB4O1xyXG4gIG1lcmNhdG9yWzFdID0geTtcclxuICByZXR1cm4gbWVyY2F0b3I7XHJcbn1cclxuXHJcbi8vIOWiqOWNoeaJmOi9rOe7j+e6rOW6plxyXG5mdW5jdGlvbiBtZXJjYXRvcjJsb25sYXQobG9uZ2l0dWRlLCBsYXRpdHVkZSkge1xyXG4gIHZhciBsb25sYXQgPSBBcnJheSgyKVxyXG4gIHZhciB4ID0gbG9uZ2l0dWRlIC8gMjAwMzc1MDguMzQgKiAxODA7XHJcbiAgdmFyIHkgPSBsYXRpdHVkZSAvIDIwMDM3NTA4LjM0ICogMTgwO1xyXG4gIHkgPSAxODAgLyBNYXRoLlBJICogKDIgKiBNYXRoLmF0YW4oTWF0aC5leHAoeSAqIE1hdGguUEkgLyAxODApKSAtIE1hdGguUEkgLyAyKTtcclxuICBsb25sYXRbMF0gPSB4O1xyXG4gIGxvbmxhdFsxXSA9IHk7XHJcbiAgcmV0dXJuIGxvbmxhdDtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0Qm91bmRpbmdCb3goZGF0YSkge1xyXG4gIHZhciBib3VuZHMgPSB7fSxjb29yZHM7XHJcbiAgYm91bmRzLnhNaW4gPSAxODA7XHJcbiAgYm91bmRzLnhNYXggPSAwO1xyXG4gIGJvdW5kcy55TWluID0gOTA7XHJcbiAgYm91bmRzLnlNYXggPSAwXHJcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgaSsrKSB7XHJcbiAgICB2YXIgY29vcmRhID0gZGF0YVtpXS5nZW9tZXRyeS5jb29yZGluYXRlc1xyXG4gICAgZm9yICh2YXIgayA9IDA7IGsgPCBjb29yZGEubGVuZ3RoOyBrKyspIHtcclxuICAgICAgY29vcmRzID0gY29vcmRhW2tdO1xyXG4gICAgICBpZiAoY29vcmRzLmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgICAgY29vcmRzID0gY29vcmRzWzBdXHJcbiAgICAgIH1cclxuICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBjb29yZHMubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICB2YXIgbG9uZ2l0dWRlID0gY29vcmRzW2pdWzBdO1xyXG4gICAgICAgIHZhciBsYXRpdHVkZSA9IGNvb3Jkc1tqXVsxXTtcclxuICAgICAgICB2YXIgcG9pbnQgPSB7XHJcbiAgICAgICAgICB4OiBsb25naXR1ZGUsXHJcbiAgICAgICAgICB5OiBsYXRpdHVkZVxyXG4gICAgICAgIH1cclxuICAgICAgICBib3VuZHMueE1pbiA9IGJvdW5kcy54TWluIDwgcG9pbnQueCA/IGJvdW5kcy54TWluIDogcG9pbnQueDtcclxuICAgICAgICBib3VuZHMueE1heCA9IGJvdW5kcy54TWF4ID4gcG9pbnQueCA/IGJvdW5kcy54TWF4IDogcG9pbnQueDtcclxuICAgICAgICBib3VuZHMueU1pbiA9IGJvdW5kcy55TWluIDwgcG9pbnQueSA/IGJvdW5kcy55TWluIDogcG9pbnQueTtcclxuICAgICAgICBib3VuZHMueU1heCA9IGJvdW5kcy55TWF4ID4gcG9pbnQueSA/IGJvdW5kcy55TWF4IDogcG9pbnQueTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gYm91bmRzO1xyXG59XHJcblxyXG5mdW5jdGlvbiBjb29yZGluYXRlVG9Qb2ludChsYXRpdHVkZSwgbG9uZ2l0dWRlLCBib3VuZHMsIHNjYWxlLCB4b2Zmc2V0LCB5b2Zmc2V0KSB7XHJcbiAgcmV0dXJuIHtcclxuICAgIHg6IChsb25naXR1ZGUgLSBib3VuZHMueE1pbikgKiBzY2FsZSArIHhvZmZzZXQsXHJcbiAgICB5OiAoYm91bmRzLnlNYXggLSBsYXRpdHVkZSkgKiBzY2FsZSArIHlvZmZzZXRcclxuICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBwb2ludFRvQ29vcmRpbmF0ZShwb2ludFksIHBvaW50WCwgYm91bmRzLCBzY2FsZSwgeG9mZnNldCwgeW9mZnNldCkge1xyXG4gIHJldHVybiB7XHJcbiAgICB4OiAocG9pbnRYIC0geG9mZnNldCkgLyBzY2FsZSArIGJvdW5kcy54TWluLFxyXG4gICAgeTogYm91bmRzLnlNYXggLSAocG9pbnRZIC0geW9mZnNldCkgLyBzY2FsZVxyXG4gIH07XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzUmF5SW50ZXJzZWN0c1NlZ21lbnQocG9pLCBzX3BvaSwgZV9wb2kpIHtcclxuICBpZiAoc19wb2lbMV0gPT0gZV9wb2lbMV0pIHtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbiAgaWYgKHNfcG9pWzFdID4gcG9pWzFdICYmIGVfcG9pWzFdID4gcG9pWzFdKSB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG4gIGlmIChzX3BvaVsxXSA8IHBvaVsxXSAmJiBlX3BvaVsxXSA8IHBvaVsxXSkge1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuICBpZiAoc19wb2lbMV0gPT0gcG9pWzFdICYmIGVfcG9pWzFdID4gcG9pWzFdKSB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG4gIGlmIChlX3BvaVsxXSA9PSBwb2lbMV0gJiYgc19wb2lbMV0gPiBwb2lbMV0pIHtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbiAgaWYgKHNfcG9pWzBdIDwgcG9pWzBdICYmIGVfcG9pWzFdIDwgcG9pWzFdKSB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG4gIGxldCB4c2VnID0gZV9wb2lbMF0gLSAoZV9wb2lbMF0gLSBzX3BvaVswXSkgKiAoZV9wb2lbMV0gLSBwb2lbMV0pIC8gKGVfcG9pWzFdIC0gc19wb2lbMV0pO1xyXG4gIGlmICh4c2VnIDwgcG9pWzBdKSB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfSBlbHNlIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gaXNQb2lXaXRoaW5Qb2x5KHBvaSwgcG9seSwgbWVyY2F0b3IpIHtcclxuICBsZXQgc2luc2MgPSAwO1xyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgcG9seS5sZW5ndGg7IGkrKykge1xyXG4gICAgbGV0IGVwb2x5ID0gcG9seVtpXVswXTtcclxuICAgIGlmIChwb2x5Lmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgIGVwb2x5ID0gcG9seVtpXVswXVxyXG4gICAgfVxyXG4gICAgZm9yIChsZXQgaiA9IDA7IGogPCBlcG9seS5sZW5ndGggLSAxOyBqKyspIHtcclxuICAgICAgbGV0IHNfcG9pID0gZXBvbHlbal07XHJcbiAgICAgIGxldCBlX3BvaSA9IGVwb2x5W2ogKyAxXTtcclxuICAgICAgaWYgKG1lcmNhdG9yKSB7XHJcbiAgICAgICAgc19wb2kgPSBsb25sYXQybWVyY2F0b3IoZXBvbHlbal1bMF0sIGVwb2x5W2pdWzFdKTtcclxuICAgICAgICBlX3BvaSA9IGxvbmxhdDJtZXJjYXRvcihlcG9seVtqICsgMV1bMF0sIGVwb2x5W2ogKyAxXVsxXSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGlzUmF5SW50ZXJzZWN0c1NlZ21lbnQocG9pLCBzX3BvaSwgZV9wb2kpKSB7XHJcbiAgICAgICAgc2luc2MgKz0gMTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBpZiAoc2luc2MgJSAyID09IDEpIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH0gZWxzZSB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3TWFwRGF0YVBvaW50cyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCkge1xyXG4gIHZhciBtYXBPcHRpb24gPSBhc3NpZ24oe30sIHtcclxuICAgIGJvcmRlcjogdHJ1ZSxcclxuICAgIG1lcmNhdG9yOiBmYWxzZSxcclxuICAgIGJvcmRlcldpZHRoOiAxLFxyXG4gICAgYWN0aXZlOnRydWUsXHJcbiAgICBib3JkZXJDb2xvcjogJyM2NjY2NjYnLFxyXG4gICAgZmlsbE9wYWNpdHk6IDAuNixcclxuICAgIGFjdGl2ZUJvcmRlckNvbG9yOiAnI2YwNDg2NCcsXHJcbiAgICBhY3RpdmVGaWxsQ29sb3I6ICcjZmFjYzE0JyxcclxuICAgIGFjdGl2ZUZpbGxPcGFjaXR5OiAxXHJcbiAgfSwgb3B0cy5leHRyYS5tYXApO1xyXG4gIHZhciBjb29yZHMsIHBvaW50O1xyXG4gIHZhciBkYXRhID0gc2VyaWVzO1xyXG4gIHZhciBib3VuZHMgPSBnZXRCb3VuZGluZ0JveChkYXRhKTtcclxuICBpZiAobWFwT3B0aW9uLm1lcmNhdG9yKSB7XHJcbiAgICB2YXIgbWF4ID0gbG9ubGF0Mm1lcmNhdG9yKGJvdW5kcy54TWF4LCBib3VuZHMueU1heClcclxuICAgIHZhciBtaW4gPSBsb25sYXQybWVyY2F0b3IoYm91bmRzLnhNaW4sIGJvdW5kcy55TWluKVxyXG4gICAgYm91bmRzLnhNYXggPSBtYXhbMF1cclxuICAgIGJvdW5kcy55TWF4ID0gbWF4WzFdXHJcbiAgICBib3VuZHMueE1pbiA9IG1pblswXVxyXG4gICAgYm91bmRzLnlNaW4gPSBtaW5bMV1cclxuICB9XHJcbiAgdmFyIHhTY2FsZSA9IG9wdHMud2lkdGggLyBNYXRoLmFicyhib3VuZHMueE1heCAtIGJvdW5kcy54TWluKTtcclxuICB2YXIgeVNjYWxlID0gb3B0cy5oZWlnaHQgLyBNYXRoLmFicyhib3VuZHMueU1heCAtIGJvdW5kcy55TWluKTtcclxuICB2YXIgc2NhbGUgPSB4U2NhbGUgPCB5U2NhbGUgPyB4U2NhbGUgOiB5U2NhbGU7XHJcbiAgdmFyIHhvZmZzZXQgPSBvcHRzLndpZHRoIC8gMiAtIE1hdGguYWJzKGJvdW5kcy54TWF4IC0gYm91bmRzLnhNaW4pIC8gMiAqIHNjYWxlO1xyXG4gIHZhciB5b2Zmc2V0ID0gb3B0cy5oZWlnaHQgLyAyIC0gTWF0aC5hYnMoYm91bmRzLnlNYXggLSBib3VuZHMueU1pbikgLyAyICogc2NhbGU7XHJcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5zZXRMaW5lV2lkdGgobWFwT3B0aW9uLmJvcmRlcldpZHRoICogb3B0cy5waXgpO1xyXG4gICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShtYXBPcHRpb24uYm9yZGVyQ29sb3IpO1xyXG4gICAgY29udGV4dC5zZXRGaWxsU3R5bGUoaGV4VG9SZ2Ioc2VyaWVzW2ldLmNvbG9yLCBzZXJpZXNbaV0uZmlsbE9wYWNpdHl8fG1hcE9wdGlvbi5maWxsT3BhY2l0eSkpO1xyXG4gICAgaWYgKG1hcE9wdGlvbi5hY3RpdmUgPT0gdHJ1ZSAmJiBvcHRzLnRvb2x0aXApIHtcclxuICAgICAgaWYgKG9wdHMudG9vbHRpcC5pbmRleCA9PSBpKSB7XHJcbiAgICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShtYXBPcHRpb24uYWN0aXZlQm9yZGVyQ29sb3IpO1xyXG4gICAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGhleFRvUmdiKG1hcE9wdGlvbi5hY3RpdmVGaWxsQ29sb3IsIG1hcE9wdGlvbi5hY3RpdmVGaWxsT3BhY2l0eSkpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB2YXIgY29vcmRhID0gZGF0YVtpXS5nZW9tZXRyeS5jb29yZGluYXRlc1xyXG4gICAgZm9yICh2YXIgayA9IDA7IGsgPCBjb29yZGEubGVuZ3RoOyBrKyspIHtcclxuICAgICAgY29vcmRzID0gY29vcmRhW2tdO1xyXG4gICAgICBpZiAoY29vcmRzLmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgICAgY29vcmRzID0gY29vcmRzWzBdXHJcbiAgICAgIH1cclxuICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBjb29yZHMubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICB2YXIgZ2Fvc2kgPSBBcnJheSgyKTtcclxuICAgICAgICBpZiAobWFwT3B0aW9uLm1lcmNhdG9yKSB7XHJcbiAgICAgICAgICBnYW9zaSA9IGxvbmxhdDJtZXJjYXRvcihjb29yZHNbal1bMF0sIGNvb3Jkc1tqXVsxXSlcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgZ2Fvc2kgPSBjb29yZHNbal1cclxuICAgICAgICB9XHJcbiAgICAgICAgcG9pbnQgPSBjb29yZGluYXRlVG9Qb2ludChnYW9zaVsxXSwgZ2Fvc2lbMF0sIGJvdW5kcywgc2NhbGUsIHhvZmZzZXQsIHlvZmZzZXQpXHJcbiAgICAgICAgaWYgKGogPT09IDApIHtcclxuICAgICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhwb2ludC54LCBwb2ludC55KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29udGV4dC5saW5lVG8ocG9pbnQueCwgcG9pbnQueSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICBpZiAobWFwT3B0aW9uLmJvcmRlciA9PSB0cnVlKSB7XHJcbiAgICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBpZiAob3B0cy5kYXRhTGFiZWwgPT0gdHJ1ZSkge1xyXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIHZhciBjZW50ZXJQb2ludCA9IGRhdGFbaV0ucHJvcGVydGllcy5jZW50cm9pZDtcclxuICAgICAgaWYgKGNlbnRlclBvaW50KSB7XHJcbiAgICAgICAgaWYgKG1hcE9wdGlvbi5tZXJjYXRvcikge1xyXG4gICAgICAgICAgY2VudGVyUG9pbnQgPSBsb25sYXQybWVyY2F0b3IoZGF0YVtpXS5wcm9wZXJ0aWVzLmNlbnRyb2lkWzBdLCBkYXRhW2ldLnByb3BlcnRpZXMuY2VudHJvaWRbMV0pXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHBvaW50ID0gY29vcmRpbmF0ZVRvUG9pbnQoY2VudGVyUG9pbnRbMV0sIGNlbnRlclBvaW50WzBdLCBib3VuZHMsIHNjYWxlLCB4b2Zmc2V0LCB5b2Zmc2V0KTtcclxuICAgICAgICBsZXQgZm9udFNpemUgPSBkYXRhW2ldLnRleHRTaXplICogb3B0cy5waXggfHwgY29uZmlnLmZvbnRTaXplO1xyXG4gICAgICAgIGxldCBmb250Q29sb3IgPSBkYXRhW2ldLnRleHRDb2xvciB8fCBvcHRzLmZvbnRDb2xvcjtcclxuICAgICAgICBpZihtYXBPcHRpb24uYWN0aXZlICYmIG1hcE9wdGlvbi5hY3RpdmVUZXh0Q29sb3IgJiYgb3B0cy50b29sdGlwICYmIG9wdHMudG9vbHRpcC5pbmRleCA9PSBpKXtcclxuICAgICAgICAgIGZvbnRDb2xvciA9IG1hcE9wdGlvbi5hY3RpdmVUZXh0Q29sb3I7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCB0ZXh0ID0gZGF0YVtpXS5wcm9wZXJ0aWVzLm5hbWU7XHJcbiAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICBjb250ZXh0LnNldEZvbnRTaXplKGZvbnRTaXplKVxyXG4gICAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGZvbnRDb2xvcilcclxuICAgICAgICBjb250ZXh0LmZpbGxUZXh0KHRleHQsIHBvaW50LnggLSBtZWFzdXJlVGV4dCh0ZXh0LCBmb250U2l6ZSwgY29udGV4dCkgLyAyLCBwb2ludC55ICsgZm9udFNpemUgLyAyKTtcclxuICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgb3B0cy5jaGFydERhdGEubWFwRGF0YSA9IHtcclxuICAgIGJvdW5kczogYm91bmRzLFxyXG4gICAgc2NhbGU6IHNjYWxlLFxyXG4gICAgeG9mZnNldDogeG9mZnNldCxcclxuICAgIHlvZmZzZXQ6IHlvZmZzZXQsXHJcbiAgICBtZXJjYXRvcjogbWFwT3B0aW9uLm1lcmNhdG9yXHJcbiAgfVxyXG4gIGRyYXdUb29sVGlwQnJpZGdlKG9wdHMsIGNvbmZpZywgY29udGV4dCwgMSk7XHJcbiAgY29udGV4dC5kcmF3KCk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIG5vcm1hbEludChtaW4sIG1heCwgaXRlcikge1xyXG4gIGl0ZXIgPSBpdGVyID09IDAgPyAxIDogaXRlcjtcclxuICB2YXIgYXJyID0gW107XHJcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBpdGVyOyBpKyspIHtcclxuICAgIGFycltpXSA9IE1hdGgucmFuZG9tKCk7XHJcbiAgfTtcclxuICByZXR1cm4gTWF0aC5mbG9vcihhcnIucmVkdWNlKGZ1bmN0aW9uKGksIGopIHtcclxuICAgIHJldHVybiBpICsgalxyXG4gIH0pIC8gaXRlciAqIChtYXggLSBtaW4pKSArIG1pbjtcclxufTtcclxuXHJcbmZ1bmN0aW9uIGNvbGxpc2lvbk5ldyhhcmVhLCBwb2ludHMsIHdpZHRoLCBoZWlnaHQpIHtcclxuICB2YXIgaXNJbiA9IGZhbHNlO1xyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgcG9pbnRzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBpZiAocG9pbnRzW2ldLmFyZWEpIHtcclxuICAgICAgaWYgKGFyZWFbM10gPCBwb2ludHNbaV0uYXJlYVsxXSB8fCBhcmVhWzBdID4gcG9pbnRzW2ldLmFyZWFbMl0gfHwgYXJlYVsxXSA+IHBvaW50c1tpXS5hcmVhWzNdIHx8IGFyZWFbMl0gPCBwb2ludHNbaV0uYXJlYVswXSkge1xyXG4gICAgICAgIGlmIChhcmVhWzBdIDwgMCB8fCBhcmVhWzFdIDwgMCB8fCBhcmVhWzJdID4gd2lkdGggfHwgYXJlYVszXSA+IGhlaWdodCkge1xyXG4gICAgICAgICAgaXNJbiA9IHRydWU7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaXNJbiA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpc0luID0gdHJ1ZTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gaXNJbjtcclxufTtcclxuXHJcbmZ1bmN0aW9uIGdldFdvcmRDbG91ZFBvaW50KG9wdHMsIHR5cGUsIGNvbnRleHQpIHtcclxuICBsZXQgcG9pbnRzID0gb3B0cy5zZXJpZXM7XHJcbiAgc3dpdGNoICh0eXBlKSB7XHJcbiAgICBjYXNlICdub3JtYWwnOlxyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBvaW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGxldCB0ZXh0ID0gcG9pbnRzW2ldLm5hbWU7XHJcbiAgICAgICAgbGV0IHRIZWlnaHQgPSBwb2ludHNbaV0udGV4dFNpemUgKiBvcHRzLnBpeDtcclxuICAgICAgICBsZXQgdFdpZHRoID0gbWVhc3VyZVRleHQodGV4dCwgdEhlaWdodCwgY29udGV4dCk7XHJcbiAgICAgICAgbGV0IHgsIHk7XHJcbiAgICAgICAgbGV0IGFyZWE7XHJcbiAgICAgICAgbGV0IGJyZWFrbnVtID0gMDtcclxuICAgICAgICB3aGlsZSAodHJ1ZSkge1xyXG4gICAgICAgICAgYnJlYWtudW0rKztcclxuICAgICAgICAgIHggPSBub3JtYWxJbnQoLW9wdHMud2lkdGggLyAyLCBvcHRzLndpZHRoIC8gMiwgNSkgLSB0V2lkdGggLyAyO1xyXG4gICAgICAgICAgeSA9IG5vcm1hbEludCgtb3B0cy5oZWlnaHQgLyAyLCBvcHRzLmhlaWdodCAvIDIsIDUpICsgdEhlaWdodCAvIDI7XHJcbiAgICAgICAgICBhcmVhID0gW3ggLSA1ICsgb3B0cy53aWR0aCAvIDIsIHkgLSA1IC0gdEhlaWdodCArIG9wdHMuaGVpZ2h0IC8gMiwgeCArIHRXaWR0aCArIDUgKyBvcHRzLndpZHRoIC8gMiwgeSArIDUgK1xyXG4gICAgICAgICAgICBvcHRzLmhlaWdodCAvIDJcclxuICAgICAgICAgIF07XHJcbiAgICAgICAgICBsZXQgaXNDb2xsaXNpb24gPSBjb2xsaXNpb25OZXcoYXJlYSwgcG9pbnRzLCBvcHRzLndpZHRoLCBvcHRzLmhlaWdodCk7XHJcbiAgICAgICAgICBpZiAoIWlzQ29sbGlzaW9uKSBicmVhaztcclxuICAgICAgICAgIGlmIChicmVha251bSA9PSAxMDAwKSB7XHJcbiAgICAgICAgICAgIGFyZWEgPSBbLTEwMCwgLTEwMCwgLTEwMCwgLTEwMF07XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgcG9pbnRzW2ldLmFyZWEgPSBhcmVhO1xyXG4gICAgICB9XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAndmVydGljYWwnOlxyXG4gICAgICBmdW5jdGlvbiBTcGluKCkge1xyXG4gICAgICAgIC8v6I635Y+W5Z2H5YyA6ZqP5py65YC877yM5piv5ZCm5peL6L2s77yM5peL6L2s55qE5qaC546H5Li677yIMS0wLjXvvIlcclxuICAgICAgICBpZiAoTWF0aC5yYW5kb20oKSA+IDAuNykge1xyXG4gICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJldHVybiBmYWxzZVxyXG4gICAgICAgIH07XHJcbiAgICAgIH07XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcG9pbnRzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgbGV0IHRleHQgPSBwb2ludHNbaV0ubmFtZTtcclxuICAgICAgICBsZXQgdEhlaWdodCA9IHBvaW50c1tpXS50ZXh0U2l6ZSAqIG9wdHMucGl4O1xyXG4gICAgICAgIGxldCB0V2lkdGggPSBtZWFzdXJlVGV4dCh0ZXh0LCB0SGVpZ2h0LCBjb250ZXh0KTtcclxuICAgICAgICBsZXQgaXNTcGluID0gU3BpbigpO1xyXG4gICAgICAgIGxldCB4LCB5LCBhcmVhLCBhcmVhdjtcclxuICAgICAgICBsZXQgYnJlYWtudW0gPSAwO1xyXG4gICAgICAgIHdoaWxlICh0cnVlKSB7XHJcbiAgICAgICAgICBicmVha251bSsrO1xyXG4gICAgICAgICAgbGV0IGlzQ29sbGlzaW9uO1xyXG4gICAgICAgICAgaWYgKGlzU3Bpbikge1xyXG4gICAgICAgICAgICB4ID0gbm9ybWFsSW50KC1vcHRzLndpZHRoIC8gMiwgb3B0cy53aWR0aCAvIDIsIDUpIC0gdFdpZHRoIC8gMjtcclxuICAgICAgICAgICAgeSA9IG5vcm1hbEludCgtb3B0cy5oZWlnaHQgLyAyLCBvcHRzLmhlaWdodCAvIDIsIDUpICsgdEhlaWdodCAvIDI7XHJcbiAgICAgICAgICAgIGFyZWEgPSBbeSAtIDUgLSB0V2lkdGggKyBvcHRzLndpZHRoIC8gMiwgKC14IC0gNSArIG9wdHMuaGVpZ2h0IC8gMiksIHkgKyA1ICsgb3B0cy53aWR0aCAvIDIsICgteCArIHRIZWlnaHQgKyA1ICsgb3B0cy5oZWlnaHQgLyAyKV07XHJcbiAgICAgICAgICAgIGFyZWF2ID0gW29wdHMud2lkdGggLSAob3B0cy53aWR0aCAvIDIgLSBvcHRzLmhlaWdodCAvIDIpIC0gKC14ICsgdEhlaWdodCArIDUgKyBvcHRzLmhlaWdodCAvIDIpIC0gNSwgKG9wdHMuaGVpZ2h0IC8gMiAtIG9wdHMud2lkdGggLyAyKSArICh5IC0gNSAtIHRXaWR0aCArIG9wdHMud2lkdGggLyAyKSAtIDUsIG9wdHMud2lkdGggLSAob3B0cy53aWR0aCAvIDIgLSBvcHRzLmhlaWdodCAvIDIpIC0gKC14ICsgdEhlaWdodCArIDUgKyBvcHRzLmhlaWdodCAvIDIpICsgdEhlaWdodCwgKG9wdHMuaGVpZ2h0IC8gMiAtIG9wdHMud2lkdGggLyAyKSArICh5IC0gNSAtIHRXaWR0aCArIG9wdHMud2lkdGggLyAyKSArIHRXaWR0aCArIDVdO1xyXG4gICAgICAgICAgICBpc0NvbGxpc2lvbiA9IGNvbGxpc2lvbk5ldyhhcmVhdiwgcG9pbnRzLCBvcHRzLmhlaWdodCwgb3B0cy53aWR0aCk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB4ID0gbm9ybWFsSW50KC1vcHRzLndpZHRoIC8gMiwgb3B0cy53aWR0aCAvIDIsIDUpIC0gdFdpZHRoIC8gMjtcclxuICAgICAgICAgICAgeSA9IG5vcm1hbEludCgtb3B0cy5oZWlnaHQgLyAyLCBvcHRzLmhlaWdodCAvIDIsIDUpICsgdEhlaWdodCAvIDI7XHJcbiAgICAgICAgICAgIGFyZWEgPSBbeCAtIDUgKyBvcHRzLndpZHRoIC8gMiwgeSAtIDUgLSB0SGVpZ2h0ICsgb3B0cy5oZWlnaHQgLyAyLCB4ICsgdFdpZHRoICsgNSArIG9wdHMud2lkdGggLyAyLCB5ICsgNSArIG9wdHMuaGVpZ2h0IC8gMl07XHJcbiAgICAgICAgICAgIGlzQ29sbGlzaW9uID0gY29sbGlzaW9uTmV3KGFyZWEsIHBvaW50cywgb3B0cy53aWR0aCwgb3B0cy5oZWlnaHQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKCFpc0NvbGxpc2lvbikgYnJlYWs7XHJcbiAgICAgICAgICBpZiAoYnJlYWtudW0gPT0gMTAwMCkge1xyXG4gICAgICAgICAgICBhcmVhID0gWy0xMDAwLCAtMTAwMCwgLTEwMDAsIC0xMDAwXTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICBpZiAoaXNTcGluKSB7XHJcbiAgICAgICAgICBwb2ludHNbaV0uYXJlYSA9IGFyZWF2O1xyXG4gICAgICAgICAgcG9pbnRzW2ldLmFyZWF2ID0gYXJlYTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcG9pbnRzW2ldLmFyZWEgPSBhcmVhO1xyXG4gICAgICAgIH1cclxuICAgICAgICBwb2ludHNbaV0ucm90YXRlID0gaXNTcGluO1xyXG4gICAgICB9O1xyXG4gICAgICBicmVhaztcclxuICB9XHJcbiAgcmV0dXJuIHBvaW50cztcclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd1dvcmRDbG91ZERhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpIHtcclxuICBsZXQgcHJvY2VzcyA9IGFyZ3VtZW50cy5sZW5ndGggPiA0ICYmIGFyZ3VtZW50c1s0XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzRdIDogMTtcclxuICBsZXQgd29yZE9wdGlvbiA9IGFzc2lnbih7fSwge1xyXG4gICAgdHlwZTogJ25vcm1hbCcsXHJcbiAgICBhdXRvQ29sb3JzOiB0cnVlXHJcbiAgfSwgb3B0cy5leHRyYS53b3JkKTtcclxuICBpZiAoIW9wdHMuY2hhcnREYXRhLndvcmRDbG91ZERhdGEpIHtcclxuICAgIG9wdHMuY2hhcnREYXRhLndvcmRDbG91ZERhdGEgPSBnZXRXb3JkQ2xvdWRQb2ludChvcHRzLCB3b3JkT3B0aW9uLnR5cGUsIGNvbnRleHQpO1xyXG4gIH1cclxuICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gIGNvbnRleHQuc2V0RmlsbFN0eWxlKG9wdHMuYmFja2dyb3VuZCk7XHJcbiAgY29udGV4dC5yZWN0KDAsIDAsIG9wdHMud2lkdGgsIG9wdHMuaGVpZ2h0KTtcclxuICBjb250ZXh0LmZpbGwoKTtcclxuICBjb250ZXh0LnNhdmUoKTtcclxuICBsZXQgcG9pbnRzID0gb3B0cy5jaGFydERhdGEud29yZENsb3VkRGF0YTtcclxuICBjb250ZXh0LnRyYW5zbGF0ZShvcHRzLndpZHRoIC8gMiwgb3B0cy5oZWlnaHQgLyAyKTtcclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHBvaW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgY29udGV4dC5zYXZlKCk7XHJcbiAgICBpZiAocG9pbnRzW2ldLnJvdGF0ZSkge1xyXG4gICAgICBjb250ZXh0LnJvdGF0ZSg5MCAqIE1hdGguUEkgLyAxODApO1xyXG4gICAgfVxyXG4gICAgbGV0IHRleHQgPSBwb2ludHNbaV0ubmFtZTtcclxuICAgIGxldCB0SGVpZ2h0ID0gcG9pbnRzW2ldLnRleHRTaXplICogb3B0cy5waXg7XHJcbiAgICBsZXQgdFdpZHRoID0gbWVhc3VyZVRleHQodGV4dCwgdEhlaWdodCwgY29udGV4dCk7XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShwb2ludHNbaV0uY29sb3IpO1xyXG4gICAgY29udGV4dC5zZXRGaWxsU3R5bGUocG9pbnRzW2ldLmNvbG9yKTtcclxuICAgIGNvbnRleHQuc2V0Rm9udFNpemUodEhlaWdodCk7XHJcbiAgICBpZiAocG9pbnRzW2ldLnJvdGF0ZSkge1xyXG4gICAgICBpZiAocG9pbnRzW2ldLmFyZWF2WzBdID4gMCkge1xyXG4gICAgICAgIGlmIChvcHRzLnRvb2x0aXApIHtcclxuICAgICAgICAgIGlmIChvcHRzLnRvb2x0aXAuaW5kZXggPT0gaSkge1xyXG4gICAgICAgICAgICBjb250ZXh0LnN0cm9rZVRleHQodGV4dCwgKHBvaW50c1tpXS5hcmVhdlswXSArIDUgLSBvcHRzLndpZHRoIC8gMikgKiBwcm9jZXNzIC0gdFdpZHRoICogKDEgLSBwcm9jZXNzKSAvIDIsIChwb2ludHNbaV0uYXJlYXZbMV0gKyA1ICsgdEhlaWdodCAtIG9wdHMuaGVpZ2h0IC8gMikgKiBwcm9jZXNzKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbFRleHQodGV4dCwgKHBvaW50c1tpXS5hcmVhdlswXSArIDUgLSBvcHRzLndpZHRoIC8gMikgKiBwcm9jZXNzIC0gdFdpZHRoICogKDEgLSBwcm9jZXNzKSAvIDIsIChwb2ludHNbaV0uYXJlYXZbMV0gKyA1ICsgdEhlaWdodCAtIG9wdHMuaGVpZ2h0IC8gMikgKiBwcm9jZXNzKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29udGV4dC5maWxsVGV4dCh0ZXh0LCAocG9pbnRzW2ldLmFyZWF2WzBdICsgNSAtIG9wdHMud2lkdGggLyAyKSAqIHByb2Nlc3MgLSB0V2lkdGggKiAoMSAtIHByb2Nlc3MpIC8gMiwgKHBvaW50c1tpXS5hcmVhdlsxXSArIDUgKyB0SGVpZ2h0IC0gb3B0cy5oZWlnaHQgLyAyKSAqIHByb2Nlc3MpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHBvaW50c1tpXS5hcmVhWzBdID4gMCkge1xyXG4gICAgICAgIGlmIChvcHRzLnRvb2x0aXApIHtcclxuICAgICAgICAgIGlmIChvcHRzLnRvb2x0aXAuaW5kZXggPT0gaSkge1xyXG4gICAgICAgICAgICBjb250ZXh0LnN0cm9rZVRleHQodGV4dCwgKHBvaW50c1tpXS5hcmVhWzBdICsgNSAtIG9wdHMud2lkdGggLyAyKSAqIHByb2Nlc3MgLSB0V2lkdGggKiAoMSAtIHByb2Nlc3MpIC8gMiwgKHBvaW50c1tpXS5hcmVhWzFdICsgNSArIHRIZWlnaHQgLSBvcHRzLmhlaWdodCAvIDIpICogcHJvY2Vzcyk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjb250ZXh0LmZpbGxUZXh0KHRleHQsIChwb2ludHNbaV0uYXJlYVswXSArIDUgLSBvcHRzLndpZHRoIC8gMikgKiBwcm9jZXNzIC0gdFdpZHRoICogKDEgLSBwcm9jZXNzKSAvIDIsIChwb2ludHNbaV0uYXJlYVsxXSArIDUgKyB0SGVpZ2h0IC0gb3B0cy5oZWlnaHQgLyAyKSAqIHByb2Nlc3MpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjb250ZXh0LmZpbGxUZXh0KHRleHQsIChwb2ludHNbaV0uYXJlYVswXSArIDUgLSBvcHRzLndpZHRoIC8gMikgKiBwcm9jZXNzIC0gdFdpZHRoICogKDEgLSBwcm9jZXNzKSAvIDIsIChwb2ludHNbaV0uYXJlYVsxXSArIDUgKyB0SGVpZ2h0IC0gb3B0cy5oZWlnaHQgLyAyKSAqIHByb2Nlc3MpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgIGNvbnRleHQucmVzdG9yZSgpO1xyXG4gIH1cclxuICBjb250ZXh0LnJlc3RvcmUoKTtcclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd0Z1bm5lbERhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpIHtcclxuICBsZXQgcHJvY2VzcyA9IGFyZ3VtZW50cy5sZW5ndGggPiA0ICYmIGFyZ3VtZW50c1s0XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzRdIDogMTtcclxuICBsZXQgZnVubmVsT3B0aW9uID0gYXNzaWduKHt9LCB7XHJcbiAgICB0eXBlOidmdW5uZWwnLFxyXG4gICAgYWN0aXZlV2lkdGg6IDEwLFxyXG4gICAgYWN0aXZlT3BhY2l0eTogMC4zLFxyXG4gICAgYm9yZGVyOiBmYWxzZSxcclxuICAgIGJvcmRlcldpZHRoOiAyLFxyXG4gICAgYm9yZGVyQ29sb3I6ICcjRkZGRkZGJyxcclxuICAgIGZpbGxPcGFjaXR5OiAxLFxyXG4gICAgbWluU2l6ZTogMCxcclxuICAgIGxhYmVsQWxpZ246ICdyaWdodCcsXHJcbiAgICBsaW5lYXJUeXBlOiAnbm9uZScsXHJcbiAgICBjdXN0b21Db2xvcjogW10sXHJcbiAgfSwgb3B0cy5leHRyYS5mdW5uZWwpO1xyXG4gIGxldCBlYWNoU3BhY2luZyA9IChvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVswXSAtIG9wdHMuYXJlYVsyXSkgLyBzZXJpZXMubGVuZ3RoO1xyXG4gIGxldCBjZW50ZXJQb3NpdGlvbiA9IHtcclxuICAgIHg6IG9wdHMuYXJlYVszXSArIChvcHRzLndpZHRoIC0gb3B0cy5hcmVhWzFdIC0gb3B0cy5hcmVhWzNdKSAvIDIsXHJcbiAgICB5OiBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXVxyXG4gIH07XHJcbiAgbGV0IGFjdGl2ZVdpZHRoID0gZnVubmVsT3B0aW9uLmFjdGl2ZVdpZHRoICogb3B0cy5waXg7XHJcbiAgbGV0IHJhZGl1cyA9IE1hdGgubWluKChvcHRzLndpZHRoIC0gb3B0cy5hcmVhWzFdIC0gb3B0cy5hcmVhWzNdKSAvIDIgLSBhY3RpdmVXaWR0aCwgKG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzBdIC0gb3B0cy5hcmVhWzJdKSAvIDIgLSBhY3RpdmVXaWR0aCk7XHJcbiAgbGV0IHNlcmllc05ldyA9IGdldEZ1bm5lbERhdGFQb2ludHMoc2VyaWVzLCByYWRpdXMsIGZ1bm5lbE9wdGlvbiwgZWFjaFNwYWNpbmcsIHByb2Nlc3MpO1xyXG4gIGNvbnRleHQuc2F2ZSgpO1xyXG4gIGNvbnRleHQudHJhbnNsYXRlKGNlbnRlclBvc2l0aW9uLngsIGNlbnRlclBvc2l0aW9uLnkpO1xyXG4gIGZ1bm5lbE9wdGlvbi5jdXN0b21Db2xvciA9IGZpbGxDdXN0b21Db2xvcihmdW5uZWxPcHRpb24ubGluZWFyVHlwZSwgZnVubmVsT3B0aW9uLmN1c3RvbUNvbG9yLCBzZXJpZXMsIGNvbmZpZyk7XHJcbiAgaWYoZnVubmVsT3B0aW9uLnR5cGUgPT0gJ3B5cmFtaWQnKXtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2VyaWVzTmV3Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGlmIChpID09IHNlcmllc05ldy5sZW5ndGggLTEpIHtcclxuICAgICAgICBpZiAob3B0cy50b29sdGlwKSB7XHJcbiAgICAgICAgICBpZiAob3B0cy50b29sdGlwLmluZGV4ID09IGkpIHtcclxuICAgICAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoaGV4VG9SZ2Ioc2VyaWVzTmV3W2ldLmNvbG9yLCBmdW5uZWxPcHRpb24uYWN0aXZlT3BhY2l0eSkpO1xyXG4gICAgICAgICAgICBjb250ZXh0Lm1vdmVUbygtYWN0aXZlV2lkdGgsIC1lYWNoU3BhY2luZyk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKC1zZXJpZXNOZXdbaV0ucmFkaXVzIC0gYWN0aXZlV2lkdGgsIDApO1xyXG4gICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhzZXJpZXNOZXdbaV0ucmFkaXVzICsgYWN0aXZlV2lkdGgsIDApO1xyXG4gICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhhY3RpdmVXaWR0aCwgLWVhY2hTcGFjaW5nKTtcclxuICAgICAgICAgICAgY29udGV4dC5saW5lVG8oLWFjdGl2ZVdpZHRoLCAtZWFjaFNwYWNpbmcpO1xyXG4gICAgICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICAgICAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgc2VyaWVzTmV3W2ldLmZ1bm5lbEFyZWEgPSBbY2VudGVyUG9zaXRpb24ueCAtIHNlcmllc05ld1tpXS5yYWRpdXMsIGNlbnRlclBvc2l0aW9uLnkgLSBlYWNoU3BhY2luZyAqIChpICsgMSksIGNlbnRlclBvc2l0aW9uLnggKyBzZXJpZXNOZXdbaV0ucmFkaXVzLCBjZW50ZXJQb3NpdGlvbi55IC0gZWFjaFNwYWNpbmcgKiBpXTtcclxuICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKGZ1bm5lbE9wdGlvbi5ib3JkZXJXaWR0aCAqIG9wdHMucGl4KTtcclxuICAgICAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKGZ1bm5lbE9wdGlvbi5ib3JkZXJDb2xvcik7XHJcbiAgICAgICAgdmFyIGZpbGxDb2xvciA9IGhleFRvUmdiKHNlcmllc05ld1tpXS5jb2xvciwgZnVubmVsT3B0aW9uLmZpbGxPcGFjaXR5KTtcclxuICAgICAgICBpZiAoZnVubmVsT3B0aW9uLmxpbmVhclR5cGUgPT0gJ2N1c3RvbScpIHtcclxuICAgICAgICAgIHZhciBncmQgPSBjb250ZXh0LmNyZWF0ZUxpbmVhckdyYWRpZW50KHNlcmllc05ld1tpXS5yYWRpdXMsIC1lYWNoU3BhY2luZywgLXNlcmllc05ld1tpXS5yYWRpdXMsIC1lYWNoU3BhY2luZyk7XHJcbiAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDAsIGhleFRvUmdiKHNlcmllc05ld1tpXS5jb2xvciwgZnVubmVsT3B0aW9uLmZpbGxPcGFjaXR5KSk7XHJcbiAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDAuNSwgaGV4VG9SZ2IoZnVubmVsT3B0aW9uLmN1c3RvbUNvbG9yW3Nlcmllc05ld1tpXS5saW5lYXJJbmRleF0sIGZ1bm5lbE9wdGlvbi5maWxsT3BhY2l0eSkpO1xyXG4gICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgxLCBoZXhUb1JnYihzZXJpZXNOZXdbaV0uY29sb3IsIGZ1bm5lbE9wdGlvbi5maWxsT3BhY2l0eSkpO1xyXG4gICAgICAgICAgZmlsbENvbG9yID0gZ3JkXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGZpbGxDb2xvcik7XHJcbiAgICAgICAgY29udGV4dC5tb3ZlVG8oMCwgLWVhY2hTcGFjaW5nKTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbygtc2VyaWVzTmV3W2ldLnJhZGl1cywgMCk7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oc2VyaWVzTmV3W2ldLnJhZGl1cywgMCk7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oMCwgLWVhY2hTcGFjaW5nKTtcclxuICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICAgIGlmIChmdW5uZWxPcHRpb24uYm9yZGVyID09IHRydWUpIHtcclxuICAgICAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmIChvcHRzLnRvb2x0aXApIHtcclxuICAgICAgICAgIGlmIChvcHRzLnRvb2x0aXAuaW5kZXggPT0gaSkge1xyXG4gICAgICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShoZXhUb1JnYihzZXJpZXNOZXdbaV0uY29sb3IsIGZ1bm5lbE9wdGlvbi5hY3RpdmVPcGFjaXR5KSk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKDAsIDApO1xyXG4gICAgICAgICAgICBjb250ZXh0LmxpbmVUbygtc2VyaWVzTmV3W2ldLnJhZGl1cyAtIGFjdGl2ZVdpZHRoLCAwKTtcclxuICAgICAgICAgICAgY29udGV4dC5saW5lVG8oLXNlcmllc05ld1tpICsgMV0ucmFkaXVzIC0gYWN0aXZlV2lkdGgsIC1lYWNoU3BhY2luZyk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHNlcmllc05ld1tpICsgMV0ucmFkaXVzICsgYWN0aXZlV2lkdGgsIC1lYWNoU3BhY2luZyk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHNlcmllc05ld1tpXS5yYWRpdXMgKyBhY3RpdmVXaWR0aCwgMCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKDAsIDApO1xyXG4gICAgICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICAgICAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgc2VyaWVzTmV3W2ldLmZ1bm5lbEFyZWEgPSBbY2VudGVyUG9zaXRpb24ueCAtIHNlcmllc05ld1tpXS5yYWRpdXMsIGNlbnRlclBvc2l0aW9uLnkgLSBlYWNoU3BhY2luZyAqIChpICsgMSksIGNlbnRlclBvc2l0aW9uLnggKyBzZXJpZXNOZXdbaV0ucmFkaXVzLCBjZW50ZXJQb3NpdGlvbi55IC0gZWFjaFNwYWNpbmcgKiBpXTtcclxuICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKGZ1bm5lbE9wdGlvbi5ib3JkZXJXaWR0aCAqIG9wdHMucGl4KTtcclxuICAgICAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKGZ1bm5lbE9wdGlvbi5ib3JkZXJDb2xvcik7XHJcbiAgICAgICAgdmFyIGZpbGxDb2xvciA9IGhleFRvUmdiKHNlcmllc05ld1tpXS5jb2xvciwgZnVubmVsT3B0aW9uLmZpbGxPcGFjaXR5KTtcclxuICAgICAgICBpZiAoZnVubmVsT3B0aW9uLmxpbmVhclR5cGUgPT0gJ2N1c3RvbScpIHtcclxuICAgICAgICAgIHZhciBncmQgPSBjb250ZXh0LmNyZWF0ZUxpbmVhckdyYWRpZW50KHNlcmllc05ld1tpXS5yYWRpdXMsIC1lYWNoU3BhY2luZywgLXNlcmllc05ld1tpXS5yYWRpdXMsIC1lYWNoU3BhY2luZyk7XHJcbiAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDAsIGhleFRvUmdiKHNlcmllc05ld1tpXS5jb2xvciwgZnVubmVsT3B0aW9uLmZpbGxPcGFjaXR5KSk7XHJcbiAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDAuNSwgaGV4VG9SZ2IoZnVubmVsT3B0aW9uLmN1c3RvbUNvbG9yW3Nlcmllc05ld1tpXS5saW5lYXJJbmRleF0sIGZ1bm5lbE9wdGlvbi5maWxsT3BhY2l0eSkpO1xyXG4gICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgxLCBoZXhUb1JnYihzZXJpZXNOZXdbaV0uY29sb3IsIGZ1bm5lbE9wdGlvbi5maWxsT3BhY2l0eSkpO1xyXG4gICAgICAgICAgZmlsbENvbG9yID0gZ3JkXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGZpbGxDb2xvcik7XHJcbiAgICAgICAgY29udGV4dC5tb3ZlVG8oMCwgMCk7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oLXNlcmllc05ld1tpXS5yYWRpdXMsIDApO1xyXG4gICAgICAgIGNvbnRleHQubGluZVRvKC1zZXJpZXNOZXdbaSArIDFdLnJhZGl1cywgLWVhY2hTcGFjaW5nKTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbyhzZXJpZXNOZXdbaSArIDFdLnJhZGl1cywgLWVhY2hTcGFjaW5nKTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbyhzZXJpZXNOZXdbaV0ucmFkaXVzLCAwKTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbygwLCAwKTtcclxuICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICAgIGlmIChmdW5uZWxPcHRpb24uYm9yZGVyID09IHRydWUpIHtcclxuICAgICAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGNvbnRleHQudHJhbnNsYXRlKDAsIC1lYWNoU3BhY2luZylcclxuICAgIH1cclxuICB9ZWxzZXtcclxuICAgIGNvbnRleHQudHJhbnNsYXRlKDAsIC0gKHNlcmllc05ldy5sZW5ndGggLSAxKSAqIGVhY2hTcGFjaW5nKTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2VyaWVzTmV3Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGlmIChpID09IHNlcmllc05ldy5sZW5ndGggLSAxKSB7XHJcbiAgICAgICAgaWYgKG9wdHMudG9vbHRpcCkge1xyXG4gICAgICAgICAgaWYgKG9wdHMudG9vbHRpcC5pbmRleCA9PSBpKSB7XHJcbiAgICAgICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGhleFRvUmdiKHNlcmllc05ld1tpXS5jb2xvciwgZnVubmVsT3B0aW9uLmFjdGl2ZU9wYWNpdHkpKTtcclxuICAgICAgICAgICAgY29udGV4dC5tb3ZlVG8oLWFjdGl2ZVdpZHRoIC0gZnVubmVsT3B0aW9uLm1pblNpemUvMiwgMCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKC1zZXJpZXNOZXdbaV0ucmFkaXVzIC0gYWN0aXZlV2lkdGgsIC1lYWNoU3BhY2luZyk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHNlcmllc05ld1tpXS5yYWRpdXMgKyBhY3RpdmVXaWR0aCwgLWVhY2hTcGFjaW5nKTtcclxuICAgICAgICAgICAgY29udGV4dC5saW5lVG8oYWN0aXZlV2lkdGggKyBmdW5uZWxPcHRpb24ubWluU2l6ZS8yLCAwKTtcclxuICAgICAgICAgICAgY29udGV4dC5saW5lVG8oLWFjdGl2ZVdpZHRoIC0gZnVubmVsT3B0aW9uLm1pblNpemUvMiwgMCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBzZXJpZXNOZXdbaV0uZnVubmVsQXJlYSA9IFtjZW50ZXJQb3NpdGlvbi54IC0gc2VyaWVzTmV3W2ldLnJhZGl1cywgY2VudGVyUG9zaXRpb24ueSAtIGVhY2hTcGFjaW5nLCBjZW50ZXJQb3NpdGlvbi54ICsgc2VyaWVzTmV3W2ldLnJhZGl1cywgY2VudGVyUG9zaXRpb24ueSBdO1xyXG4gICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgY29udGV4dC5zZXRMaW5lV2lkdGgoZnVubmVsT3B0aW9uLmJvcmRlcldpZHRoICogb3B0cy5waXgpO1xyXG4gICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoZnVubmVsT3B0aW9uLmJvcmRlckNvbG9yKTtcclxuICAgICAgICB2YXIgZmlsbENvbG9yID0gaGV4VG9SZ2Ioc2VyaWVzTmV3W2ldLmNvbG9yLCBmdW5uZWxPcHRpb24uZmlsbE9wYWNpdHkpO1xyXG4gICAgICAgIGlmIChmdW5uZWxPcHRpb24ubGluZWFyVHlwZSA9PSAnY3VzdG9tJykge1xyXG4gICAgICAgICAgdmFyIGdyZCA9IGNvbnRleHQuY3JlYXRlTGluZWFyR3JhZGllbnQoc2VyaWVzTmV3W2ldLnJhZGl1cywgLWVhY2hTcGFjaW5nLCAtc2VyaWVzTmV3W2ldLnJhZGl1cywgLWVhY2hTcGFjaW5nKTtcclxuICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMCwgaGV4VG9SZ2Ioc2VyaWVzTmV3W2ldLmNvbG9yLCBmdW5uZWxPcHRpb24uZmlsbE9wYWNpdHkpKTtcclxuICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMC41LCBoZXhUb1JnYihmdW5uZWxPcHRpb24uY3VzdG9tQ29sb3Jbc2VyaWVzTmV3W2ldLmxpbmVhckluZGV4XSwgZnVubmVsT3B0aW9uLmZpbGxPcGFjaXR5KSk7XHJcbiAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDEsIGhleFRvUmdiKHNlcmllc05ld1tpXS5jb2xvciwgZnVubmVsT3B0aW9uLmZpbGxPcGFjaXR5KSk7XHJcbiAgICAgICAgICBmaWxsQ29sb3IgPSBncmRcclxuICAgICAgICB9XHJcbiAgICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoZmlsbENvbG9yKTtcclxuICAgICAgICBjb250ZXh0Lm1vdmVUbygwLCAwKTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbygtZnVubmVsT3B0aW9uLm1pblNpemUvMiwgMCk7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oLXNlcmllc05ld1tpXS5yYWRpdXMsIC1lYWNoU3BhY2luZyk7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oc2VyaWVzTmV3W2ldLnJhZGl1cywgLWVhY2hTcGFjaW5nKTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbyhmdW5uZWxPcHRpb24ubWluU2l6ZS8yLCAwKTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbygwLCAwKTtcclxuICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICAgIGlmIChmdW5uZWxPcHRpb24uYm9yZGVyID09IHRydWUpIHtcclxuICAgICAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmIChvcHRzLnRvb2x0aXApIHtcclxuICAgICAgICAgIGlmIChvcHRzLnRvb2x0aXAuaW5kZXggPT0gaSkge1xyXG4gICAgICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShoZXhUb1JnYihzZXJpZXNOZXdbaV0uY29sb3IsIGZ1bm5lbE9wdGlvbi5hY3RpdmVPcGFjaXR5KSk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKDAsIDApO1xyXG4gICAgICAgICAgICBjb250ZXh0LmxpbmVUbygtc2VyaWVzTmV3W2kgKyAxXS5yYWRpdXMgLSBhY3RpdmVXaWR0aCwgMCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKC1zZXJpZXNOZXdbaV0ucmFkaXVzIC0gYWN0aXZlV2lkdGgsIC1lYWNoU3BhY2luZyk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHNlcmllc05ld1tpXS5yYWRpdXMgKyBhY3RpdmVXaWR0aCwgLWVhY2hTcGFjaW5nKTtcclxuICAgICAgICAgICAgY29udGV4dC5saW5lVG8oc2VyaWVzTmV3W2kgKyAxXS5yYWRpdXMgKyBhY3RpdmVXaWR0aCwgMCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKDAsIDApO1xyXG4gICAgICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICAgICAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgc2VyaWVzTmV3W2ldLmZ1bm5lbEFyZWEgPSBbY2VudGVyUG9zaXRpb24ueCAtIHNlcmllc05ld1tpXS5yYWRpdXMsIGNlbnRlclBvc2l0aW9uLnkgLSBlYWNoU3BhY2luZyAqIChzZXJpZXNOZXcubGVuZ3RoIC0gaSksIGNlbnRlclBvc2l0aW9uLnggKyBzZXJpZXNOZXdbaV0ucmFkaXVzLCBjZW50ZXJQb3NpdGlvbi55IC0gZWFjaFNwYWNpbmcgKiAoc2VyaWVzTmV3Lmxlbmd0aCAtIGkgLSAxKV07XHJcbiAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICBjb250ZXh0LnNldExpbmVXaWR0aChmdW5uZWxPcHRpb24uYm9yZGVyV2lkdGggKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShmdW5uZWxPcHRpb24uYm9yZGVyQ29sb3IpO1xyXG4gICAgICAgIHZhciBmaWxsQ29sb3IgPSBoZXhUb1JnYihzZXJpZXNOZXdbaV0uY29sb3IsIGZ1bm5lbE9wdGlvbi5maWxsT3BhY2l0eSk7XHJcbiAgICAgICAgaWYgKGZ1bm5lbE9wdGlvbi5saW5lYXJUeXBlID09ICdjdXN0b20nKSB7XHJcbiAgICAgICAgICB2YXIgZ3JkID0gY29udGV4dC5jcmVhdGVMaW5lYXJHcmFkaWVudChzZXJpZXNOZXdbaV0ucmFkaXVzLCAtZWFjaFNwYWNpbmcsIC1zZXJpZXNOZXdbaV0ucmFkaXVzLCAtZWFjaFNwYWNpbmcpO1xyXG4gICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgwLCBoZXhUb1JnYihzZXJpZXNOZXdbaV0uY29sb3IsIGZ1bm5lbE9wdGlvbi5maWxsT3BhY2l0eSkpO1xyXG4gICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgwLjUsIGhleFRvUmdiKGZ1bm5lbE9wdGlvbi5jdXN0b21Db2xvcltzZXJpZXNOZXdbaV0ubGluZWFySW5kZXhdLCBmdW5uZWxPcHRpb24uZmlsbE9wYWNpdHkpKTtcclxuICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMSwgaGV4VG9SZ2Ioc2VyaWVzTmV3W2ldLmNvbG9yLCBmdW5uZWxPcHRpb24uZmlsbE9wYWNpdHkpKTtcclxuICAgICAgICAgIGZpbGxDb2xvciA9IGdyZFxyXG4gICAgICAgIH1cclxuICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShmaWxsQ29sb3IpO1xyXG4gICAgICAgIGNvbnRleHQubW92ZVRvKDAsIDApO1xyXG4gICAgICAgIGNvbnRleHQubGluZVRvKC1zZXJpZXNOZXdbaSArIDFdLnJhZGl1cywgMCk7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oLXNlcmllc05ld1tpXS5yYWRpdXMsIC1lYWNoU3BhY2luZyk7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oc2VyaWVzTmV3W2ldLnJhZGl1cywgLWVhY2hTcGFjaW5nKTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbyhzZXJpZXNOZXdbaSArIDFdLnJhZGl1cywgMCk7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oMCwgMCk7XHJcbiAgICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgICAgICBpZiAoZnVubmVsT3B0aW9uLmJvcmRlciA9PSB0cnVlKSB7XHJcbiAgICAgICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBjb250ZXh0LnRyYW5zbGF0ZSgwLCBlYWNoU3BhY2luZylcclxuICAgIH1cclxuICB9XHJcbiAgXHJcbiAgY29udGV4dC5yZXN0b3JlKCk7XHJcbiAgaWYgKG9wdHMuZGF0YUxhYmVsICE9PSBmYWxzZSAmJiBwcm9jZXNzID09PSAxKSB7XHJcbiAgICBkcmF3RnVubmVsVGV4dChzZXJpZXNOZXcsIG9wdHMsIGNvbnRleHQsIGVhY2hTcGFjaW5nLCBmdW5uZWxPcHRpb24ubGFiZWxBbGlnbiwgYWN0aXZlV2lkdGgsIGNlbnRlclBvc2l0aW9uKTtcclxuICB9XHJcbiAgaWYgKHByb2Nlc3MgPT09IDEpIHtcclxuICAgIGRyYXdGdW5uZWxDZW50ZXJUZXh0KHNlcmllc05ldywgb3B0cywgY29udGV4dCwgZWFjaFNwYWNpbmcsIGZ1bm5lbE9wdGlvbi5sYWJlbEFsaWduLCBhY3RpdmVXaWR0aCwgY2VudGVyUG9zaXRpb24pO1xyXG4gIH1cclxuICByZXR1cm4ge1xyXG4gICAgY2VudGVyOiBjZW50ZXJQb3NpdGlvbixcclxuICAgIHJhZGl1czogcmFkaXVzLFxyXG4gICAgc2VyaWVzOiBzZXJpZXNOZXdcclxuICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3RnVubmVsVGV4dChzZXJpZXMsIG9wdHMsIGNvbnRleHQsIGVhY2hTcGFjaW5nLCBsYWJlbEFsaWduLCBhY3RpdmVXaWR0aCwgY2VudGVyUG9zaXRpb24pIHtcclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHNlcmllcy5sZW5ndGg7IGkrKykge1xyXG4gICAgbGV0IGl0ZW0gPSBzZXJpZXNbaV07XHJcbiAgICBpZihpdGVtLmxhYmVsU2hvdyA9PT0gZmFsc2Upe1xyXG4gICAgICBjb250aW51ZTtcclxuICAgIH1cclxuICAgIGxldCBzdGFydFgsIGVuZFgsIHN0YXJ0WSwgZm9udFNpemU7XHJcbiAgICBsZXQgdGV4dCA9IGl0ZW0uZm9ybWF0dGVyID8gaXRlbS5mb3JtYXR0ZXIoaXRlbSxpLHNlcmllcyxvcHRzKSA6IHV0aWwudG9GaXhlZChpdGVtLl9wcm9wb3J0aW9uXyAqIDEwMCkgKyAnJSc7XHJcbiAgICB0ZXh0ID0gaXRlbS5sYWJlbFRleHQgPyBpdGVtLmxhYmVsVGV4dCA6IHRleHQ7XHJcbiAgICBpZiAobGFiZWxBbGlnbiA9PSAncmlnaHQnKSB7XHJcbiAgICAgIGlmIChpID09IHNlcmllcy5sZW5ndGggLTEpIHtcclxuICAgICAgICBzdGFydFggPSAoaXRlbS5mdW5uZWxBcmVhWzJdICsgY2VudGVyUG9zaXRpb24ueCkgLyAyO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHN0YXJ0WCA9IChpdGVtLmZ1bm5lbEFyZWFbMl0gKyBzZXJpZXNbaSArIDFdLmZ1bm5lbEFyZWFbMl0pIC8gMjtcclxuICAgICAgfVxyXG4gICAgICBlbmRYID0gc3RhcnRYICsgYWN0aXZlV2lkdGggKiAyO1xyXG4gICAgICBzdGFydFkgPSBpdGVtLmZ1bm5lbEFyZWFbMV0gKyBlYWNoU3BhY2luZyAvIDI7XHJcbiAgICAgIGZvbnRTaXplID0gaXRlbS50ZXh0U2l6ZSAqIG9wdHMucGl4IHx8IG9wdHMuZm9udFNpemUgKiBvcHRzLnBpeDtcclxuICAgICAgY29udGV4dC5zZXRMaW5lV2lkdGgoMSAqIG9wdHMucGl4KTtcclxuICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShpdGVtLmNvbG9yKTtcclxuICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoaXRlbS5jb2xvcik7XHJcbiAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgIGNvbnRleHQubW92ZVRvKHN0YXJ0WCwgc3RhcnRZKTtcclxuICAgICAgY29udGV4dC5saW5lVG8oZW5kWCwgc3RhcnRZKTtcclxuICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgY29udGV4dC5tb3ZlVG8oZW5kWCwgc3RhcnRZKTtcclxuICAgICAgY29udGV4dC5hcmMoZW5kWCwgc3RhcnRZLCAyICogb3B0cy5waXgsIDAsIDIgKiBNYXRoLlBJKTtcclxuICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgIGNvbnRleHQuc2V0Rm9udFNpemUoZm9udFNpemUpO1xyXG4gICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShpdGVtLnRleHRDb2xvciB8fCBvcHRzLmZvbnRDb2xvcik7XHJcbiAgICAgIGNvbnRleHQuZmlsbFRleHQodGV4dCwgZW5kWCArIDUsIHN0YXJ0WSArIGZvbnRTaXplIC8gMiAtIDIpO1xyXG4gICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgfVxyXG4gICAgaWYgKGxhYmVsQWxpZ24gPT0gJ2xlZnQnKSB7XHJcbiAgICAgIGlmIChpID09IHNlcmllcy5sZW5ndGggLTEpIHtcclxuICAgICAgICBzdGFydFggPSAoaXRlbS5mdW5uZWxBcmVhWzBdICsgY2VudGVyUG9zaXRpb24ueCkgLyAyO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHN0YXJ0WCA9IChpdGVtLmZ1bm5lbEFyZWFbMF0gKyBzZXJpZXNbaSArIDFdLmZ1bm5lbEFyZWFbMF0pIC8gMjtcclxuICAgICAgfVxyXG4gICAgICBlbmRYID0gc3RhcnRYIC0gYWN0aXZlV2lkdGggKiAyO1xyXG4gICAgICBzdGFydFkgPSBpdGVtLmZ1bm5lbEFyZWFbMV0gKyBlYWNoU3BhY2luZyAvIDI7XHJcbiAgICAgIGZvbnRTaXplID0gaXRlbS50ZXh0U2l6ZSAqIG9wdHMucGl4IHx8IG9wdHMuZm9udFNpemUgKiBvcHRzLnBpeDtcclxuICAgICAgY29udGV4dC5zZXRMaW5lV2lkdGgoMSAqIG9wdHMucGl4KTtcclxuICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShpdGVtLmNvbG9yKTtcclxuICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoaXRlbS5jb2xvcik7XHJcbiAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgIGNvbnRleHQubW92ZVRvKHN0YXJ0WCwgc3RhcnRZKTtcclxuICAgICAgY29udGV4dC5saW5lVG8oZW5kWCwgc3RhcnRZKTtcclxuICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgY29udGV4dC5tb3ZlVG8oZW5kWCwgc3RhcnRZKTtcclxuICAgICAgY29udGV4dC5hcmMoZW5kWCwgc3RhcnRZLCAyLCAwLCAyICogTWF0aC5QSSk7XHJcbiAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LnNldEZvbnRTaXplKGZvbnRTaXplKTtcclxuICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoaXRlbS50ZXh0Q29sb3IgfHwgb3B0cy5mb250Q29sb3IpO1xyXG4gICAgICBjb250ZXh0LmZpbGxUZXh0KHRleHQsIGVuZFggLSA1IC0gbWVhc3VyZVRleHQodGV4dCwgZm9udFNpemUsIGNvbnRleHQpLCBzdGFydFkgKyBmb250U2l6ZSAvIDIgLSAyKTtcclxuICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRyYXdGdW5uZWxDZW50ZXJUZXh0KHNlcmllcywgb3B0cywgY29udGV4dCwgZWFjaFNwYWNpbmcsIGxhYmVsQWxpZ24sIGFjdGl2ZVdpZHRoLCBjZW50ZXJQb3NpdGlvbikge1xyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc2VyaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBsZXQgaXRlbSA9IHNlcmllc1tpXTtcclxuICAgIGxldCBzdGFydFksIGZvbnRTaXplO1xyXG4gICAgaWYgKGl0ZW0uY2VudGVyVGV4dCkge1xyXG4gICAgICBzdGFydFkgPSBpdGVtLmZ1bm5lbEFyZWFbMV0gKyBlYWNoU3BhY2luZyAvIDI7XHJcbiAgICAgIGZvbnRTaXplID0gaXRlbS5jZW50ZXJUZXh0U2l6ZSAqIG9wdHMucGl4IHx8IG9wdHMuZm9udFNpemUgKiBvcHRzLnBpeDtcclxuICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgY29udGV4dC5zZXRGb250U2l6ZShmb250U2l6ZSk7XHJcbiAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGl0ZW0uY2VudGVyVGV4dENvbG9yIHx8IFwiI0ZGRkZGRlwiKTtcclxuICAgICAgY29udGV4dC5maWxsVGV4dChpdGVtLmNlbnRlclRleHQsIGNlbnRlclBvc2l0aW9uLnggLSBtZWFzdXJlVGV4dChpdGVtLmNlbnRlclRleHQsIGZvbnRTaXplLCBjb250ZXh0KSAvIDIsIHN0YXJ0WSArIGZvbnRTaXplIC8gMiAtIDIpO1xyXG4gICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuXHJcbmZ1bmN0aW9uIGRyYXdDYW52YXMob3B0cywgY29udGV4dCkge1xyXG4gIGNvbnRleHQuZHJhdygpO1xyXG59XHJcblxyXG52YXIgVGltaW5nID0ge1xyXG4gIGVhc2VJbjogZnVuY3Rpb24gZWFzZUluKHBvcykge1xyXG4gICAgcmV0dXJuIE1hdGgucG93KHBvcywgMyk7XHJcbiAgfSxcclxuICBlYXNlT3V0OiBmdW5jdGlvbiBlYXNlT3V0KHBvcykge1xyXG4gICAgcmV0dXJuIE1hdGgucG93KHBvcyAtIDEsIDMpICsgMTtcclxuICB9LFxyXG4gIGVhc2VJbk91dDogZnVuY3Rpb24gZWFzZUluT3V0KHBvcykge1xyXG4gICAgaWYgKChwb3MgLz0gMC41KSA8IDEpIHtcclxuICAgICAgcmV0dXJuIDAuNSAqIE1hdGgucG93KHBvcywgMyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gMC41ICogKE1hdGgucG93KHBvcyAtIDIsIDMpICsgMik7XHJcbiAgICB9XHJcbiAgfSxcclxuICBsaW5lYXI6IGZ1bmN0aW9uIGxpbmVhcihwb3MpIHtcclxuICAgIHJldHVybiBwb3M7XHJcbiAgfVxyXG59O1xyXG5cclxuZnVuY3Rpb24gQW5pbWF0aW9uKG9wdHMpIHtcclxuICB0aGlzLmlzU3RvcCA9IGZhbHNlO1xyXG4gIG9wdHMuZHVyYXRpb24gPSB0eXBlb2Ygb3B0cy5kdXJhdGlvbiA9PT0gJ3VuZGVmaW5lZCcgPyAxMDAwIDogb3B0cy5kdXJhdGlvbjtcclxuICBvcHRzLnRpbWluZyA9IG9wdHMudGltaW5nIHx8ICdlYXNlSW5PdXQnO1xyXG4gIHZhciBkZWxheSA9IDE3O1xyXG4gIGZ1bmN0aW9uIGNyZWF0ZUFuaW1hdGlvbkZyYW1lKCkge1xyXG4gICAgaWYgKHR5cGVvZiBzZXRUaW1lb3V0ICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICByZXR1cm4gZnVuY3Rpb24oc3RlcCwgZGVsYXkpIHtcclxuICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xyXG4gICAgICAgICAgdmFyIHRpbWVTdGFtcCA9ICtuZXcgRGF0ZSgpO1xyXG4gICAgICAgICAgc3RlcCh0aW1lU3RhbXApO1xyXG4gICAgICAgIH0sIGRlbGF5KTtcclxuICAgICAgfTtcclxuICAgIH0gZWxzZSBpZiAodHlwZW9mIHJlcXVlc3RBbmltYXRpb25GcmFtZSAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgcmV0dXJuIHJlcXVlc3RBbmltYXRpb25GcmFtZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBmdW5jdGlvbihzdGVwKSB7XHJcbiAgICAgICAgc3RlcChudWxsKTtcclxuICAgICAgfTtcclxuICAgIH1cclxuICB9O1xyXG4gIHZhciBhbmltYXRpb25GcmFtZSA9IGNyZWF0ZUFuaW1hdGlvbkZyYW1lKCk7XHJcbiAgdmFyIHN0YXJ0VGltZVN0YW1wID0gbnVsbDtcclxuICB2YXIgX3N0ZXAgPSBmdW5jdGlvbiBzdGVwKHRpbWVzdGFtcCkge1xyXG4gICAgaWYgKHRpbWVzdGFtcCA9PT0gbnVsbCB8fCB0aGlzLmlzU3RvcCA9PT0gdHJ1ZSkge1xyXG4gICAgICBvcHRzLm9uUHJvY2VzcyAmJiBvcHRzLm9uUHJvY2VzcygxKTtcclxuICAgICAgb3B0cy5vbkFuaW1hdGlvbkZpbmlzaCAmJiBvcHRzLm9uQW5pbWF0aW9uRmluaXNoKCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmIChzdGFydFRpbWVTdGFtcCA9PT0gbnVsbCkge1xyXG4gICAgICBzdGFydFRpbWVTdGFtcCA9IHRpbWVzdGFtcDtcclxuICAgIH1cclxuICAgIGlmICh0aW1lc3RhbXAgLSBzdGFydFRpbWVTdGFtcCA8IG9wdHMuZHVyYXRpb24pIHtcclxuICAgICAgdmFyIHByb2Nlc3MgPSAodGltZXN0YW1wIC0gc3RhcnRUaW1lU3RhbXApIC8gb3B0cy5kdXJhdGlvbjtcclxuICAgICAgdmFyIHRpbWluZ0Z1bmN0aW9uID0gVGltaW5nW29wdHMudGltaW5nXTtcclxuICAgICAgcHJvY2VzcyA9IHRpbWluZ0Z1bmN0aW9uKHByb2Nlc3MpO1xyXG4gICAgICBvcHRzLm9uUHJvY2VzcyAmJiBvcHRzLm9uUHJvY2Vzcyhwcm9jZXNzKTtcclxuICAgICAgYW5pbWF0aW9uRnJhbWUoX3N0ZXAsIGRlbGF5KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIG9wdHMub25Qcm9jZXNzICYmIG9wdHMub25Qcm9jZXNzKDEpO1xyXG4gICAgICBvcHRzLm9uQW5pbWF0aW9uRmluaXNoICYmIG9wdHMub25BbmltYXRpb25GaW5pc2goKTtcclxuICAgIH1cclxuICB9O1xyXG4gIF9zdGVwID0gX3N0ZXAuYmluZCh0aGlzKTtcclxuICBhbmltYXRpb25GcmFtZShfc3RlcCwgZGVsYXkpO1xyXG59XHJcblxyXG5BbmltYXRpb24ucHJvdG90eXBlLnN0b3AgPSBmdW5jdGlvbigpIHtcclxuICB0aGlzLmlzU3RvcCA9IHRydWU7XHJcbn07XHJcblxyXG5mdW5jdGlvbiBkcmF3Q2hhcnRzKHR5cGUsIG9wdHMsIGNvbmZpZywgY29udGV4dCkge1xyXG4gIHZhciBfdGhpcyA9IHRoaXM7XHJcbiAgdmFyIHNlcmllcyA9IG9wdHMuc2VyaWVzO1xyXG4gIC8v5YW85a65RUNoYXJ0c+mlvOWbvuexu+aVsOaNruagvOW8j1xyXG4gIGlmICh0eXBlID09PSAncGllJyB8fCB0eXBlID09PSAncmluZycgfHwgdHlwZSA9PT0gJ21vdW50JyB8fCB0eXBlID09PSAncm9zZScgfHwgdHlwZSA9PT0gJ2Z1bm5lbCcpIHtcclxuICAgIHNlcmllcyA9IGZpeFBpZVNlcmllcyhzZXJpZXMsIG9wdHMsIGNvbmZpZyk7XHJcbiAgfVxyXG4gIHZhciBjYXRlZ29yaWVzID0gb3B0cy5jYXRlZ29yaWVzO1xyXG4gIGlmICh0eXBlID09PSAnbW91bnQnKSB7XHJcbiAgICBjYXRlZ29yaWVzID0gW107XHJcbiAgICBmb3IgKGxldCBqID0gMDsgaiA8IHNlcmllcy5sZW5ndGg7IGorKykge1xyXG4gICAgICBpZihzZXJpZXNbal0uc2hvdyAhPT0gZmFsc2UpIGNhdGVnb3JpZXMucHVzaChzZXJpZXNbal0ubmFtZSlcclxuICAgIH1cclxuICAgIG9wdHMuY2F0ZWdvcmllcyA9IGNhdGVnb3JpZXM7XHJcbiAgfVxyXG4gIHNlcmllcyA9IGZpbGxTZXJpZXMoc2VyaWVzLCBvcHRzLCBjb25maWcpO1xyXG4gIHZhciBkdXJhdGlvbiA9IG9wdHMuYW5pbWF0aW9uID8gb3B0cy5kdXJhdGlvbiA6IDA7XHJcbiAgX3RoaXMuYW5pbWF0aW9uSW5zdGFuY2UgJiYgX3RoaXMuYW5pbWF0aW9uSW5zdGFuY2Uuc3RvcCgpO1xyXG4gIHZhciBzZXJpZXNNQSA9IG51bGw7XHJcbiAgaWYgKHR5cGUgPT0gJ2NhbmRsZScpIHtcclxuICAgIGxldCBhdmVyYWdlID0gYXNzaWduKHt9LCBvcHRzLmV4dHJhLmNhbmRsZS5hdmVyYWdlKTtcclxuICAgIGlmIChhdmVyYWdlLnNob3cpIHtcclxuICAgICAgc2VyaWVzTUEgPSBjYWxDYW5kbGVNQShhdmVyYWdlLmRheSwgYXZlcmFnZS5uYW1lLCBhdmVyYWdlLmNvbG9yLCBzZXJpZXNbMF0uZGF0YSk7XHJcbiAgICAgIHNlcmllc01BID0gZmlsbFNlcmllcyhzZXJpZXNNQSwgb3B0cywgY29uZmlnKTtcclxuICAgICAgb3B0cy5zZXJpZXNNQSA9IHNlcmllc01BO1xyXG4gICAgfSBlbHNlIGlmIChvcHRzLnNlcmllc01BKSB7XHJcbiAgICAgIHNlcmllc01BID0gb3B0cy5zZXJpZXNNQSA9IGZpbGxTZXJpZXMob3B0cy5zZXJpZXNNQSwgb3B0cywgY29uZmlnKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHNlcmllc01BID0gc2VyaWVzO1xyXG4gICAgfVxyXG4gIH0gZWxzZSB7XHJcbiAgICBzZXJpZXNNQSA9IHNlcmllcztcclxuICB9XHJcbiAgLyog6L+H5ruk5o6Jc2hvdz1mYWxzZeeahHNlcmllcyAqL1xyXG4gIG9wdHMuX3Nlcmllc18gPSBzZXJpZXMgPSBmaWx0ZXJTZXJpZXMoc2VyaWVzKTtcclxuICAvL+mHjeaWsOiuoeeul+WbvuihqOWMuuWfn1xyXG4gIG9wdHMuYXJlYSA9IG5ldyBBcnJheSg0KTtcclxuICAvL+WkjeS9jee7mOWbvuWMuuWfn1xyXG4gIGZvciAobGV0IGogPSAwOyBqIDwgNDsgaisrKSB7XHJcbiAgICBvcHRzLmFyZWFbal0gPSBvcHRzLnBhZGRpbmdbal0gKiBvcHRzLnBpeDtcclxuICB9XHJcbiAgLy/pgJrov4forqHnrpfkuInlpKfljLrln5/vvJrlm77kvovjgIFY6L2044CBWei9tOeahOWkp+Wwj++8jOehruWumue7mOWbvuWMuuWfn1xyXG4gIHZhciBfY2FsTGVnZW5kRGF0YSA9IGNhbExlZ2VuZERhdGEoc2VyaWVzTUEsIG9wdHMsIGNvbmZpZywgb3B0cy5jaGFydERhdGEsIGNvbnRleHQpLFxyXG4gICAgbGVnZW5kSGVpZ2h0ID0gX2NhbExlZ2VuZERhdGEuYXJlYS53aG9sZUhlaWdodCxcclxuICAgIGxlZ2VuZFdpZHRoID0gX2NhbExlZ2VuZERhdGEuYXJlYS53aG9sZVdpZHRoO1xyXG5cclxuICBzd2l0Y2ggKG9wdHMubGVnZW5kLnBvc2l0aW9uKSB7XHJcbiAgICBjYXNlICd0b3AnOlxyXG4gICAgICBvcHRzLmFyZWFbMF0gKz0gbGVnZW5kSGVpZ2h0O1xyXG4gICAgICBicmVhaztcclxuICAgIGNhc2UgJ2JvdHRvbSc6XHJcbiAgICAgIG9wdHMuYXJlYVsyXSArPSBsZWdlbmRIZWlnaHQ7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAnbGVmdCc6XHJcbiAgICAgIG9wdHMuYXJlYVszXSArPSBsZWdlbmRXaWR0aDtcclxuICAgICAgYnJlYWs7XHJcbiAgICBjYXNlICdyaWdodCc6XHJcbiAgICAgIG9wdHMuYXJlYVsxXSArPSBsZWdlbmRXaWR0aDtcclxuICAgICAgYnJlYWs7XHJcbiAgfVxyXG5cclxuICBsZXQgX2NhbFlBeGlzRGF0YSA9IHt9LFxyXG4gICAgeUF4aXNXaWR0aCA9IDA7XHJcbiAgaWYgKG9wdHMudHlwZSA9PT0gJ2xpbmUnIHx8IG9wdHMudHlwZSA9PT0gJ2NvbHVtbid8fCBvcHRzLnR5cGUgPT09ICdtb3VudCcgfHwgb3B0cy50eXBlID09PSAnYXJlYScgfHwgb3B0cy50eXBlID09PSAnbWl4JyB8fCBvcHRzLnR5cGUgPT09ICdjYW5kbGUnIHx8IG9wdHMudHlwZSA9PT0gJ3NjYXR0ZXInICB8fCBvcHRzLnR5cGUgPT09ICdidWJibGUnIHx8IG9wdHMudHlwZSA9PT0gJ2JhcicpIHtcclxuICAgICAgX2NhbFlBeGlzRGF0YSA9IGNhbFlBeGlzRGF0YShzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgIHlBeGlzV2lkdGggPSBfY2FsWUF4aXNEYXRhLnlBeGlzV2lkdGg7XHJcbiAgICAvL+WmguaenOaYvuekulnovbTmoIfpophcclxuICAgIGlmIChvcHRzLnlBeGlzLnNob3dUaXRsZSkge1xyXG4gICAgICBsZXQgbWF4VGl0bGVIZWlnaHQgPSAwO1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG9wdHMueUF4aXMuZGF0YS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIG1heFRpdGxlSGVpZ2h0ID0gTWF0aC5tYXgobWF4VGl0bGVIZWlnaHQsIG9wdHMueUF4aXMuZGF0YVtpXS50aXRsZUZvbnRTaXplID8gb3B0cy55QXhpcy5kYXRhW2ldLnRpdGxlRm9udFNpemUgKiBvcHRzLnBpeCA6IGNvbmZpZy5mb250U2l6ZSlcclxuICAgICAgfVxyXG4gICAgICBvcHRzLmFyZWFbMF0gKz0gbWF4VGl0bGVIZWlnaHQ7XHJcbiAgICB9XHJcbiAgICBsZXQgcmlnaHRJbmRleCA9IDAsXHJcbiAgICAgIGxlZnRJbmRleCA9IDA7XHJcbiAgICAvL+iuoeeul+S4u+e7mOWbvuWMuuWfn+W3puWPs+S9jee9rlxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB5QXhpc1dpZHRoLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGlmICh5QXhpc1dpZHRoW2ldLnBvc2l0aW9uID09ICdsZWZ0Jykge1xyXG4gICAgICAgIGlmIChsZWZ0SW5kZXggPiAwKSB7XHJcbiAgICAgICAgICBvcHRzLmFyZWFbM10gKz0geUF4aXNXaWR0aFtpXS53aWR0aCArIG9wdHMueUF4aXMucGFkZGluZyAqIG9wdHMucGl4O1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBvcHRzLmFyZWFbM10gKz0geUF4aXNXaWR0aFtpXS53aWR0aDtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGVmdEluZGV4ICs9IDE7XHJcbiAgICAgIH0gZWxzZSBpZiAoeUF4aXNXaWR0aFtpXS5wb3NpdGlvbiA9PSAncmlnaHQnKSB7XHJcbiAgICAgICAgaWYgKHJpZ2h0SW5kZXggPiAwKSB7XHJcbiAgICAgICAgICBvcHRzLmFyZWFbMV0gKz0geUF4aXNXaWR0aFtpXS53aWR0aCArIG9wdHMueUF4aXMucGFkZGluZyAqIG9wdHMucGl4O1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBvcHRzLmFyZWFbMV0gKz0geUF4aXNXaWR0aFtpXS53aWR0aDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmlnaHRJbmRleCArPSAxO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfSBlbHNlIHtcclxuICAgIGNvbmZpZy55QXhpc1dpZHRoID0geUF4aXNXaWR0aDtcclxuICB9XHJcbiAgb3B0cy5jaGFydERhdGEueUF4aXNEYXRhID0gX2NhbFlBeGlzRGF0YTtcclxuXHJcbiAgaWYgKG9wdHMuY2F0ZWdvcmllcyAmJiBvcHRzLmNhdGVnb3JpZXMubGVuZ3RoICYmIG9wdHMudHlwZSAhPT0gJ3JhZGFyJyAmJiBvcHRzLnR5cGUgIT09ICdnYXVnZScgJiYgb3B0cy50eXBlICE9PSAnYmFyJykge1xyXG4gICAgb3B0cy5jaGFydERhdGEueEF4aXNEYXRhID0gZ2V0WEF4aXNQb2ludHMob3B0cy5jYXRlZ29yaWVzLCBvcHRzLCBjb25maWcpO1xyXG4gICAgbGV0IF9jYWxDYXRlZ29yaWVzRGF0YSA9IGNhbENhdGVnb3JpZXNEYXRhKG9wdHMuY2F0ZWdvcmllcywgb3B0cywgY29uZmlnLCBvcHRzLmNoYXJ0RGF0YS54QXhpc0RhdGEuZWFjaFNwYWNpbmcsIGNvbnRleHQpLFxyXG4gICAgICB4QXhpc0hlaWdodCA9IF9jYWxDYXRlZ29yaWVzRGF0YS54QXhpc0hlaWdodCxcclxuICAgICAgYW5nbGUgPSBfY2FsQ2F0ZWdvcmllc0RhdGEuYW5nbGU7XHJcbiAgICBjb25maWcueEF4aXNIZWlnaHQgPSB4QXhpc0hlaWdodDtcclxuICAgIGNvbmZpZy5feEF4aXNUZXh0QW5nbGVfID0gYW5nbGU7XHJcbiAgICBvcHRzLmFyZWFbMl0gKz0geEF4aXNIZWlnaHQ7XHJcbiAgICBvcHRzLmNoYXJ0RGF0YS5jYXRlZ29yaWVzRGF0YSA9IF9jYWxDYXRlZ29yaWVzRGF0YTtcclxuICB9IGVsc2Uge1xyXG4gICAgaWYgKG9wdHMudHlwZSA9PT0gJ2xpbmUnIHx8IG9wdHMudHlwZSA9PT0gJ2FyZWEnIHx8IG9wdHMudHlwZSA9PT0gJ3NjYXR0ZXInIHx8IG9wdHMudHlwZSA9PT0gJ2J1YmJsZScgfHwgb3B0cy50eXBlID09PSAnYmFyJykge1xyXG4gICAgICBvcHRzLmNoYXJ0RGF0YS54QXhpc0RhdGEgPSBjYWxYQXhpc0RhdGEoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICBjYXRlZ29yaWVzID0gb3B0cy5jaGFydERhdGEueEF4aXNEYXRhLnJhbmdlc0Zvcm1hdDtcclxuICAgICAgbGV0IF9jYWxDYXRlZ29yaWVzRGF0YSA9IGNhbENhdGVnb3JpZXNEYXRhKGNhdGVnb3JpZXMsIG9wdHMsIGNvbmZpZywgb3B0cy5jaGFydERhdGEueEF4aXNEYXRhLmVhY2hTcGFjaW5nLCBjb250ZXh0KSxcclxuICAgICAgICB4QXhpc0hlaWdodCA9IF9jYWxDYXRlZ29yaWVzRGF0YS54QXhpc0hlaWdodCxcclxuICAgICAgICBhbmdsZSA9IF9jYWxDYXRlZ29yaWVzRGF0YS5hbmdsZTtcclxuICAgICAgY29uZmlnLnhBeGlzSGVpZ2h0ID0geEF4aXNIZWlnaHQ7XHJcbiAgICAgIGNvbmZpZy5feEF4aXNUZXh0QW5nbGVfID0gYW5nbGU7XHJcbiAgICAgIG9wdHMuYXJlYVsyXSArPSB4QXhpc0hlaWdodDtcclxuICAgICAgb3B0cy5jaGFydERhdGEuY2F0ZWdvcmllc0RhdGEgPSBfY2FsQ2F0ZWdvcmllc0RhdGE7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBvcHRzLmNoYXJ0RGF0YS54QXhpc0RhdGEgPSB7XHJcbiAgICAgICAgeEF4aXNQb2ludHM6IFtdXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvL+iuoeeul+WPs+Wvuem9kOWBj+enu+i3neemu1xyXG4gIGlmIChvcHRzLmVuYWJsZVNjcm9sbCAmJiBvcHRzLnhBeGlzLnNjcm9sbEFsaWduID09ICdyaWdodCcgJiYgb3B0cy5fc2Nyb2xsRGlzdGFuY2VfID09PSB1bmRlZmluZWQpIHtcclxuICAgIGxldCBvZmZzZXRMZWZ0ID0gMCxcclxuICAgICAgeEF4aXNQb2ludHMgPSBvcHRzLmNoYXJ0RGF0YS54QXhpc0RhdGEueEF4aXNQb2ludHMsXHJcbiAgICAgIHN0YXJ0WCA9IG9wdHMuY2hhcnREYXRhLnhBeGlzRGF0YS5zdGFydFgsXHJcbiAgICAgIGVuZFggPSBvcHRzLmNoYXJ0RGF0YS54QXhpc0RhdGEuZW5kWCxcclxuICAgICAgZWFjaFNwYWNpbmcgPSBvcHRzLmNoYXJ0RGF0YS54QXhpc0RhdGEuZWFjaFNwYWNpbmc7XHJcbiAgICBsZXQgdG90YWxXaWR0aCA9IGVhY2hTcGFjaW5nICogKHhBeGlzUG9pbnRzLmxlbmd0aCAtIDEpO1xyXG4gICAgbGV0IHNjcmVlbldpZHRoID0gZW5kWCAtIHN0YXJ0WDtcclxuICAgIG9mZnNldExlZnQgPSBzY3JlZW5XaWR0aCAtIHRvdGFsV2lkdGg7XHJcbiAgICBfdGhpcy5zY3JvbGxPcHRpb24uY3VycmVudE9mZnNldCA9IG9mZnNldExlZnQ7XHJcbiAgICBfdGhpcy5zY3JvbGxPcHRpb24uc3RhcnRUb3VjaFggPSBvZmZzZXRMZWZ0O1xyXG4gICAgX3RoaXMuc2Nyb2xsT3B0aW9uLmRpc3RhbmNlID0gMDtcclxuICAgIF90aGlzLnNjcm9sbE9wdGlvbi5sYXN0TW92ZVRpbWUgPSAwO1xyXG4gICAgb3B0cy5fc2Nyb2xsRGlzdGFuY2VfID0gb2Zmc2V0TGVmdDtcclxuICB9XHJcblxyXG4gIGlmICh0eXBlID09PSAncGllJyB8fCB0eXBlID09PSAncmluZycgfHwgdHlwZSA9PT0gJ3Jvc2UnKSB7XHJcbiAgICBjb25maWcuX3BpZVRleHRNYXhMZW5ndGhfID0gb3B0cy5kYXRhTGFiZWwgPT09IGZhbHNlID8gMCA6IGdldFBpZVRleHRNYXhMZW5ndGgoc2VyaWVzTUEsIGNvbmZpZywgY29udGV4dCwgb3B0cyk7XHJcbiAgfVxyXG4gIFxyXG4gIHN3aXRjaCAodHlwZSkge1xyXG4gICAgY2FzZSAnd29yZCc6XHJcbiAgICAgIHRoaXMuYW5pbWF0aW9uSW5zdGFuY2UgPSBuZXcgQW5pbWF0aW9uKHtcclxuICAgICAgICB0aW1pbmc6IG9wdHMudGltaW5nLFxyXG4gICAgICAgIGR1cmF0aW9uOiBkdXJhdGlvbixcclxuICAgICAgICBvblByb2Nlc3M6IGZ1bmN0aW9uKHByb2Nlc3MpIHtcclxuICAgICAgICAgIGNvbnRleHQuY2xlYXJSZWN0KDAsIDAsIG9wdHMud2lkdGgsIG9wdHMuaGVpZ2h0KTtcclxuICAgICAgICAgIGlmIChvcHRzLnJvdGF0ZSkge1xyXG4gICAgICAgICAgICBjb250ZXh0Um90YXRlKGNvbnRleHQsIG9wdHMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZHJhd1dvcmRDbG91ZERhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MpO1xyXG4gICAgICAgICAgZHJhd0NhbnZhcyhvcHRzLCBjb250ZXh0KTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9uQW5pbWF0aW9uRmluaXNoOiBmdW5jdGlvbiBvbkFuaW1hdGlvbkZpbmlzaCgpIHtcclxuICAgICAgICAgIF90aGlzLnVldmVudC50cmlnZ2VyKCdyZW5kZXJDb21wbGV0ZScpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAnbWFwJzpcclxuICAgICAgY29udGV4dC5jbGVhclJlY3QoMCwgMCwgb3B0cy53aWR0aCwgb3B0cy5oZWlnaHQpO1xyXG4gICAgICBkcmF3TWFwRGF0YVBvaW50cyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgIHNldFRpbWVvdXQoKCk9PntcclxuICAgICAgICB0aGlzLnVldmVudC50cmlnZ2VyKCdyZW5kZXJDb21wbGV0ZScpO1xyXG4gICAgICB9LDUwKVxyXG4gICAgICBicmVhaztcclxuICAgIGNhc2UgJ2Z1bm5lbCc6XHJcbiAgICAgIHRoaXMuYW5pbWF0aW9uSW5zdGFuY2UgPSBuZXcgQW5pbWF0aW9uKHtcclxuICAgICAgICB0aW1pbmc6IG9wdHMudGltaW5nLFxyXG4gICAgICAgIGR1cmF0aW9uOiBkdXJhdGlvbixcclxuICAgICAgICBvblByb2Nlc3M6IGZ1bmN0aW9uKHByb2Nlc3MpIHtcclxuICAgICAgICAgIGNvbnRleHQuY2xlYXJSZWN0KDAsIDAsIG9wdHMud2lkdGgsIG9wdHMuaGVpZ2h0KTtcclxuICAgICAgICAgIGlmIChvcHRzLnJvdGF0ZSkge1xyXG4gICAgICAgICAgICBjb250ZXh0Um90YXRlKGNvbnRleHQsIG9wdHMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEuZnVubmVsRGF0YSA9IGRyYXdGdW5uZWxEYXRhUG9pbnRzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0LCBwcm9jZXNzKTtcclxuICAgICAgICAgIGRyYXdMZWdlbmQob3B0cy5zZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgb3B0cy5jaGFydERhdGEpO1xyXG4gICAgICAgICAgZHJhd1Rvb2xUaXBCcmlkZ2Uob3B0cywgY29uZmlnLCBjb250ZXh0LCBwcm9jZXNzKTtcclxuICAgICAgICAgIGRyYXdDYW52YXMob3B0cywgY29udGV4dCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBvbkFuaW1hdGlvbkZpbmlzaDogZnVuY3Rpb24gb25BbmltYXRpb25GaW5pc2goKSB7XHJcbiAgICAgICAgICBfdGhpcy51ZXZlbnQudHJpZ2dlcigncmVuZGVyQ29tcGxldGUnKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBicmVhaztcclxuICAgIGNhc2UgJ2xpbmUnOlxyXG4gICAgICB0aGlzLmFuaW1hdGlvbkluc3RhbmNlID0gbmV3IEFuaW1hdGlvbih7XHJcbiAgICAgICAgdGltaW5nOiBvcHRzLnRpbWluZyxcclxuICAgICAgICBkdXJhdGlvbjogZHVyYXRpb24sXHJcbiAgICAgICAgb25Qcm9jZXNzOiBmdW5jdGlvbiBvblByb2Nlc3MocHJvY2Vzcykge1xyXG4gICAgICAgICAgY29udGV4dC5jbGVhclJlY3QoMCwgMCwgb3B0cy53aWR0aCwgb3B0cy5oZWlnaHQpO1xyXG4gICAgICAgICAgaWYgKG9wdHMucm90YXRlKSB7XHJcbiAgICAgICAgICAgIGNvbnRleHRSb3RhdGUoY29udGV4dCwgb3B0cyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBkcmF3WUF4aXNHcmlkKGNhdGVnb3JpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICBkcmF3WEF4aXMoY2F0ZWdvcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgICAgIHZhciBfZHJhd0xpbmVEYXRhUG9pbnRzID0gZHJhd0xpbmVEYXRhUG9pbnRzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0LCBwcm9jZXNzKSxcclxuICAgICAgICAgICAgeEF4aXNQb2ludHMgPSBfZHJhd0xpbmVEYXRhUG9pbnRzLnhBeGlzUG9pbnRzLFxyXG4gICAgICAgICAgICBjYWxQb2ludHMgPSBfZHJhd0xpbmVEYXRhUG9pbnRzLmNhbFBvaW50cyxcclxuICAgICAgICAgICAgZWFjaFNwYWNpbmcgPSBfZHJhd0xpbmVEYXRhUG9pbnRzLmVhY2hTcGFjaW5nO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEueEF4aXNQb2ludHMgPSB4QXhpc1BvaW50cztcclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLmNhbFBvaW50cyA9IGNhbFBvaW50cztcclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLmVhY2hTcGFjaW5nID0gZWFjaFNwYWNpbmc7XHJcbiAgICAgICAgICBkcmF3WUF4aXMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgaWYgKG9wdHMuZW5hYmxlTWFya0xpbmUgIT09IGZhbHNlICYmIHByb2Nlc3MgPT09IDEpIHtcclxuICAgICAgICAgICAgZHJhd01hcmtMaW5lKG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBkcmF3TGVnZW5kKG9wdHMuc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIG9wdHMuY2hhcnREYXRhKTtcclxuICAgICAgICAgIGRyYXdUb29sVGlwQnJpZGdlKG9wdHMsIGNvbmZpZywgY29udGV4dCwgcHJvY2VzcywgZWFjaFNwYWNpbmcsIHhBeGlzUG9pbnRzKTtcclxuICAgICAgICAgIGRyYXdDYW52YXMob3B0cywgY29udGV4dCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBvbkFuaW1hdGlvbkZpbmlzaDogZnVuY3Rpb24gb25BbmltYXRpb25GaW5pc2goKSB7XHJcbiAgICAgICAgICBfdGhpcy51ZXZlbnQudHJpZ2dlcigncmVuZGVyQ29tcGxldGUnKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBicmVhaztcclxuICAgIGNhc2UgJ3NjYXR0ZXInOlxyXG4gICAgICB0aGlzLmFuaW1hdGlvbkluc3RhbmNlID0gbmV3IEFuaW1hdGlvbih7XHJcbiAgICAgICAgdGltaW5nOiBvcHRzLnRpbWluZyxcclxuICAgICAgICBkdXJhdGlvbjogZHVyYXRpb24sXHJcbiAgICAgICAgb25Qcm9jZXNzOiBmdW5jdGlvbiBvblByb2Nlc3MocHJvY2Vzcykge1xyXG4gICAgICAgICAgY29udGV4dC5jbGVhclJlY3QoMCwgMCwgb3B0cy53aWR0aCwgb3B0cy5oZWlnaHQpO1xyXG4gICAgICAgICAgaWYgKG9wdHMucm90YXRlKSB7XHJcbiAgICAgICAgICAgIGNvbnRleHRSb3RhdGUoY29udGV4dCwgb3B0cyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBkcmF3WUF4aXNHcmlkKGNhdGVnb3JpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICBkcmF3WEF4aXMoY2F0ZWdvcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgICAgIHZhciBfZHJhd1NjYXR0ZXJEYXRhUG9pbnRzID0gZHJhd1NjYXR0ZXJEYXRhUG9pbnRzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0LCBwcm9jZXNzKSxcclxuICAgICAgICAgICAgeEF4aXNQb2ludHMgPSBfZHJhd1NjYXR0ZXJEYXRhUG9pbnRzLnhBeGlzUG9pbnRzLFxyXG4gICAgICAgICAgICBjYWxQb2ludHMgPSBfZHJhd1NjYXR0ZXJEYXRhUG9pbnRzLmNhbFBvaW50cyxcclxuICAgICAgICAgICAgZWFjaFNwYWNpbmcgPSBfZHJhd1NjYXR0ZXJEYXRhUG9pbnRzLmVhY2hTcGFjaW5nO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEueEF4aXNQb2ludHMgPSB4QXhpc1BvaW50cztcclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLmNhbFBvaW50cyA9IGNhbFBvaW50cztcclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLmVhY2hTcGFjaW5nID0gZWFjaFNwYWNpbmc7XHJcbiAgICAgICAgICBkcmF3WUF4aXMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgaWYgKG9wdHMuZW5hYmxlTWFya0xpbmUgIT09IGZhbHNlICYmIHByb2Nlc3MgPT09IDEpIHtcclxuICAgICAgICAgICAgZHJhd01hcmtMaW5lKG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBkcmF3TGVnZW5kKG9wdHMuc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIG9wdHMuY2hhcnREYXRhKTtcclxuICAgICAgICAgIGRyYXdUb29sVGlwQnJpZGdlKG9wdHMsIGNvbmZpZywgY29udGV4dCwgcHJvY2VzcywgZWFjaFNwYWNpbmcsIHhBeGlzUG9pbnRzKTtcclxuICAgICAgICAgIGRyYXdDYW52YXMob3B0cywgY29udGV4dCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBvbkFuaW1hdGlvbkZpbmlzaDogZnVuY3Rpb24gb25BbmltYXRpb25GaW5pc2goKSB7XHJcbiAgICAgICAgICBfdGhpcy51ZXZlbnQudHJpZ2dlcigncmVuZGVyQ29tcGxldGUnKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBicmVhaztcclxuICAgIGNhc2UgJ2J1YmJsZSc6XHJcbiAgICAgIHRoaXMuYW5pbWF0aW9uSW5zdGFuY2UgPSBuZXcgQW5pbWF0aW9uKHtcclxuICAgICAgICB0aW1pbmc6IG9wdHMudGltaW5nLFxyXG4gICAgICAgIGR1cmF0aW9uOiBkdXJhdGlvbixcclxuICAgICAgICBvblByb2Nlc3M6IGZ1bmN0aW9uIG9uUHJvY2Vzcyhwcm9jZXNzKSB7XHJcbiAgICAgICAgICBjb250ZXh0LmNsZWFyUmVjdCgwLCAwLCBvcHRzLndpZHRoLCBvcHRzLmhlaWdodCk7XHJcbiAgICAgICAgICBpZiAob3B0cy5yb3RhdGUpIHtcclxuICAgICAgICAgICAgY29udGV4dFJvdGF0ZShjb250ZXh0LCBvcHRzKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGRyYXdZQXhpc0dyaWQoY2F0ZWdvcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgICAgIGRyYXdYQXhpcyhjYXRlZ29yaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgdmFyIF9kcmF3QnViYmxlRGF0YVBvaW50cyA9IGRyYXdCdWJibGVEYXRhUG9pbnRzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0LCBwcm9jZXNzKSxcclxuICAgICAgICAgICAgeEF4aXNQb2ludHMgPSBfZHJhd0J1YmJsZURhdGFQb2ludHMueEF4aXNQb2ludHMsXHJcbiAgICAgICAgICAgIGNhbFBvaW50cyA9IF9kcmF3QnViYmxlRGF0YVBvaW50cy5jYWxQb2ludHMsXHJcbiAgICAgICAgICAgIGVhY2hTcGFjaW5nID0gX2RyYXdCdWJibGVEYXRhUG9pbnRzLmVhY2hTcGFjaW5nO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEueEF4aXNQb2ludHMgPSB4QXhpc1BvaW50cztcclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLmNhbFBvaW50cyA9IGNhbFBvaW50cztcclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLmVhY2hTcGFjaW5nID0gZWFjaFNwYWNpbmc7XHJcbiAgICAgICAgICBkcmF3WUF4aXMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgaWYgKG9wdHMuZW5hYmxlTWFya0xpbmUgIT09IGZhbHNlICYmIHByb2Nlc3MgPT09IDEpIHtcclxuICAgICAgICAgICAgZHJhd01hcmtMaW5lKG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBkcmF3TGVnZW5kKG9wdHMuc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIG9wdHMuY2hhcnREYXRhKTtcclxuICAgICAgICAgIGRyYXdUb29sVGlwQnJpZGdlKG9wdHMsIGNvbmZpZywgY29udGV4dCwgcHJvY2VzcywgZWFjaFNwYWNpbmcsIHhBeGlzUG9pbnRzKTtcclxuICAgICAgICAgIGRyYXdDYW52YXMob3B0cywgY29udGV4dCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBvbkFuaW1hdGlvbkZpbmlzaDogZnVuY3Rpb24gb25BbmltYXRpb25GaW5pc2goKSB7XHJcbiAgICAgICAgICBfdGhpcy51ZXZlbnQudHJpZ2dlcigncmVuZGVyQ29tcGxldGUnKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBicmVhaztcclxuICAgIGNhc2UgJ21peCc6XHJcbiAgICAgIHRoaXMuYW5pbWF0aW9uSW5zdGFuY2UgPSBuZXcgQW5pbWF0aW9uKHtcclxuICAgICAgICB0aW1pbmc6IG9wdHMudGltaW5nLFxyXG4gICAgICAgIGR1cmF0aW9uOiBkdXJhdGlvbixcclxuICAgICAgICBvblByb2Nlc3M6IGZ1bmN0aW9uIG9uUHJvY2Vzcyhwcm9jZXNzKSB7XHJcbiAgICAgICAgICBjb250ZXh0LmNsZWFyUmVjdCgwLCAwLCBvcHRzLndpZHRoLCBvcHRzLmhlaWdodCk7XHJcbiAgICAgICAgICBpZiAob3B0cy5yb3RhdGUpIHtcclxuICAgICAgICAgICAgY29udGV4dFJvdGF0ZShjb250ZXh0LCBvcHRzKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGRyYXdZQXhpc0dyaWQoY2F0ZWdvcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgICAgIGRyYXdYQXhpcyhjYXRlZ29yaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgdmFyIF9kcmF3TWl4RGF0YVBvaW50cyA9IGRyYXdNaXhEYXRhUG9pbnRzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0LCBwcm9jZXNzKSxcclxuICAgICAgICAgICAgeEF4aXNQb2ludHMgPSBfZHJhd01peERhdGFQb2ludHMueEF4aXNQb2ludHMsXHJcbiAgICAgICAgICAgIGNhbFBvaW50cyA9IF9kcmF3TWl4RGF0YVBvaW50cy5jYWxQb2ludHMsXHJcbiAgICAgICAgICAgIGVhY2hTcGFjaW5nID0gX2RyYXdNaXhEYXRhUG9pbnRzLmVhY2hTcGFjaW5nO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEueEF4aXNQb2ludHMgPSB4QXhpc1BvaW50cztcclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLmNhbFBvaW50cyA9IGNhbFBvaW50cztcclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLmVhY2hTcGFjaW5nID0gZWFjaFNwYWNpbmc7XHJcbiAgICAgICAgICBkcmF3WUF4aXMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgaWYgKG9wdHMuZW5hYmxlTWFya0xpbmUgIT09IGZhbHNlICYmIHByb2Nlc3MgPT09IDEpIHtcclxuICAgICAgICAgICAgZHJhd01hcmtMaW5lKG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBkcmF3TGVnZW5kKG9wdHMuc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIG9wdHMuY2hhcnREYXRhKTtcclxuICAgICAgICAgIGRyYXdUb29sVGlwQnJpZGdlKG9wdHMsIGNvbmZpZywgY29udGV4dCwgcHJvY2VzcywgZWFjaFNwYWNpbmcsIHhBeGlzUG9pbnRzKTtcclxuICAgICAgICAgIGRyYXdDYW52YXMob3B0cywgY29udGV4dCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBvbkFuaW1hdGlvbkZpbmlzaDogZnVuY3Rpb24gb25BbmltYXRpb25GaW5pc2goKSB7XHJcbiAgICAgICAgICBfdGhpcy51ZXZlbnQudHJpZ2dlcigncmVuZGVyQ29tcGxldGUnKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBicmVhaztcclxuICAgIGNhc2UgJ2NvbHVtbic6XHJcbiAgICAgIHRoaXMuYW5pbWF0aW9uSW5zdGFuY2UgPSBuZXcgQW5pbWF0aW9uKHtcclxuICAgICAgICB0aW1pbmc6IG9wdHMudGltaW5nLFxyXG4gICAgICAgIGR1cmF0aW9uOiBkdXJhdGlvbixcclxuICAgICAgICBvblByb2Nlc3M6IGZ1bmN0aW9uIG9uUHJvY2Vzcyhwcm9jZXNzKSB7XHJcbiAgICAgICAgICBjb250ZXh0LmNsZWFyUmVjdCgwLCAwLCBvcHRzLndpZHRoLCBvcHRzLmhlaWdodCk7XHJcbiAgICAgICAgICBpZiAob3B0cy5yb3RhdGUpIHtcclxuICAgICAgICAgICAgY29udGV4dFJvdGF0ZShjb250ZXh0LCBvcHRzKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGRyYXdZQXhpc0dyaWQoY2F0ZWdvcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgICAgIGRyYXdYQXhpcyhjYXRlZ29yaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgdmFyIF9kcmF3Q29sdW1uRGF0YVBvaW50cyA9IGRyYXdDb2x1bW5EYXRhUG9pbnRzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0LCBwcm9jZXNzKSxcclxuICAgICAgICAgICAgeEF4aXNQb2ludHMgPSBfZHJhd0NvbHVtbkRhdGFQb2ludHMueEF4aXNQb2ludHMsXHJcbiAgICAgICAgICAgIGNhbFBvaW50cyA9IF9kcmF3Q29sdW1uRGF0YVBvaW50cy5jYWxQb2ludHMsXHJcbiAgICAgICAgICAgIGVhY2hTcGFjaW5nID0gX2RyYXdDb2x1bW5EYXRhUG9pbnRzLmVhY2hTcGFjaW5nO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEueEF4aXNQb2ludHMgPSB4QXhpc1BvaW50cztcclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLmNhbFBvaW50cyA9IGNhbFBvaW50cztcclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLmVhY2hTcGFjaW5nID0gZWFjaFNwYWNpbmc7XHJcbiAgICAgICAgICBkcmF3WUF4aXMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgaWYgKG9wdHMuZW5hYmxlTWFya0xpbmUgIT09IGZhbHNlICYmIHByb2Nlc3MgPT09IDEpIHtcclxuICAgICAgICAgICAgZHJhd01hcmtMaW5lKG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBkcmF3TGVnZW5kKG9wdHMuc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIG9wdHMuY2hhcnREYXRhKTtcclxuICAgICAgICAgIGRyYXdUb29sVGlwQnJpZGdlKG9wdHMsIGNvbmZpZywgY29udGV4dCwgcHJvY2VzcywgZWFjaFNwYWNpbmcsIHhBeGlzUG9pbnRzKTtcclxuICAgICAgICAgIGRyYXdDYW52YXMob3B0cywgY29udGV4dCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBvbkFuaW1hdGlvbkZpbmlzaDogZnVuY3Rpb24gb25BbmltYXRpb25GaW5pc2goKSB7XHJcbiAgICAgICAgICBfdGhpcy51ZXZlbnQudHJpZ2dlcigncmVuZGVyQ29tcGxldGUnKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBicmVhaztcclxuICAgIGNhc2UgJ21vdW50JzpcclxuICAgICAgdGhpcy5hbmltYXRpb25JbnN0YW5jZSA9IG5ldyBBbmltYXRpb24oe1xyXG4gICAgICAgIHRpbWluZzogb3B0cy50aW1pbmcsXHJcbiAgICAgICAgZHVyYXRpb246IGR1cmF0aW9uLFxyXG4gICAgICAgIG9uUHJvY2VzczogZnVuY3Rpb24gb25Qcm9jZXNzKHByb2Nlc3MpIHtcclxuICAgICAgICAgIGNvbnRleHQuY2xlYXJSZWN0KDAsIDAsIG9wdHMud2lkdGgsIG9wdHMuaGVpZ2h0KTtcclxuICAgICAgICAgIGlmIChvcHRzLnJvdGF0ZSkge1xyXG4gICAgICAgICAgICBjb250ZXh0Um90YXRlKGNvbnRleHQsIG9wdHMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZHJhd1lBeGlzR3JpZChjYXRlZ29yaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgZHJhd1hBeGlzKGNhdGVnb3JpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICB2YXIgX2RyYXdNb3VudERhdGFQb2ludHMgPSBkcmF3TW91bnREYXRhUG9pbnRzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0LCBwcm9jZXNzKSxcclxuICAgICAgICAgICAgeEF4aXNQb2ludHMgPSBfZHJhd01vdW50RGF0YVBvaW50cy54QXhpc1BvaW50cyxcclxuICAgICAgICAgICAgY2FsUG9pbnRzID0gX2RyYXdNb3VudERhdGFQb2ludHMuY2FsUG9pbnRzLFxyXG4gICAgICAgICAgICBlYWNoU3BhY2luZyA9IF9kcmF3TW91bnREYXRhUG9pbnRzLmVhY2hTcGFjaW5nO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEueEF4aXNQb2ludHMgPSB4QXhpc1BvaW50cztcclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLmNhbFBvaW50cyA9IGNhbFBvaW50cztcclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLmVhY2hTcGFjaW5nID0gZWFjaFNwYWNpbmc7XHJcbiAgICAgICAgICBkcmF3WUF4aXMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgaWYgKG9wdHMuZW5hYmxlTWFya0xpbmUgIT09IGZhbHNlICYmIHByb2Nlc3MgPT09IDEpIHtcclxuICAgICAgICAgICAgZHJhd01hcmtMaW5lKG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBkcmF3TGVnZW5kKG9wdHMuc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIG9wdHMuY2hhcnREYXRhKTtcclxuICAgICAgICAgIGRyYXdUb29sVGlwQnJpZGdlKG9wdHMsIGNvbmZpZywgY29udGV4dCwgcHJvY2VzcywgZWFjaFNwYWNpbmcsIHhBeGlzUG9pbnRzKTtcclxuICAgICAgICAgIGRyYXdDYW52YXMob3B0cywgY29udGV4dCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBvbkFuaW1hdGlvbkZpbmlzaDogZnVuY3Rpb24gb25BbmltYXRpb25GaW5pc2goKSB7XHJcbiAgICAgICAgICBfdGhpcy51ZXZlbnQudHJpZ2dlcigncmVuZGVyQ29tcGxldGUnKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBicmVhaztcclxuICAgIGNhc2UgJ2Jhcic6XHJcbiAgICAgIHRoaXMuYW5pbWF0aW9uSW5zdGFuY2UgPSBuZXcgQW5pbWF0aW9uKHtcclxuICAgICAgICB0aW1pbmc6IG9wdHMudGltaW5nLFxyXG4gICAgICAgIGR1cmF0aW9uOiBkdXJhdGlvbixcclxuICAgICAgICBvblByb2Nlc3M6IGZ1bmN0aW9uIG9uUHJvY2Vzcyhwcm9jZXNzKSB7XHJcbiAgICAgICAgICBjb250ZXh0LmNsZWFyUmVjdCgwLCAwLCBvcHRzLndpZHRoLCBvcHRzLmhlaWdodCk7XHJcbiAgICAgICAgICBpZiAob3B0cy5yb3RhdGUpIHtcclxuICAgICAgICAgICAgY29udGV4dFJvdGF0ZShjb250ZXh0LCBvcHRzKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGRyYXdYQXhpcyhjYXRlZ29yaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgdmFyIF9kcmF3QmFyRGF0YVBvaW50cyA9IGRyYXdCYXJEYXRhUG9pbnRzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0LCBwcm9jZXNzKSxcclxuICAgICAgICAgICAgeUF4aXNQb2ludHMgPSBfZHJhd0JhckRhdGFQb2ludHMueUF4aXNQb2ludHMsXHJcbiAgICAgICAgICAgIGNhbFBvaW50cyA9IF9kcmF3QmFyRGF0YVBvaW50cy5jYWxQb2ludHMsXHJcbiAgICAgICAgICAgIGVhY2hTcGFjaW5nID0gX2RyYXdCYXJEYXRhUG9pbnRzLmVhY2hTcGFjaW5nO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEueUF4aXNQb2ludHMgPSB5QXhpc1BvaW50cztcclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLnhBeGlzUG9pbnRzID0gb3B0cy5jaGFydERhdGEueEF4aXNEYXRhLnhBeGlzUG9pbnRzO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEuY2FsUG9pbnRzID0gY2FsUG9pbnRzO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEuZWFjaFNwYWNpbmcgPSBlYWNoU3BhY2luZztcclxuICAgICAgICAgIGRyYXdZQXhpcyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICBpZiAob3B0cy5lbmFibGVNYXJrTGluZSAhPT0gZmFsc2UgJiYgcHJvY2VzcyA9PT0gMSkge1xyXG4gICAgICAgICAgICBkcmF3TWFya0xpbmUob3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGRyYXdMZWdlbmQob3B0cy5zZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgb3B0cy5jaGFydERhdGEpO1xyXG4gICAgICAgICAgZHJhd1Rvb2xUaXBCcmlkZ2Uob3B0cywgY29uZmlnLCBjb250ZXh0LCBwcm9jZXNzLCBlYWNoU3BhY2luZywgeUF4aXNQb2ludHMpO1xyXG4gICAgICAgICAgZHJhd0NhbnZhcyhvcHRzLCBjb250ZXh0KTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9uQW5pbWF0aW9uRmluaXNoOiBmdW5jdGlvbiBvbkFuaW1hdGlvbkZpbmlzaCgpIHtcclxuICAgICAgICAgIF90aGlzLnVldmVudC50cmlnZ2VyKCdyZW5kZXJDb21wbGV0ZScpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAnYXJlYSc6XHJcbiAgICAgIHRoaXMuYW5pbWF0aW9uSW5zdGFuY2UgPSBuZXcgQW5pbWF0aW9uKHtcclxuICAgICAgICB0aW1pbmc6IG9wdHMudGltaW5nLFxyXG4gICAgICAgIGR1cmF0aW9uOiBkdXJhdGlvbixcclxuICAgICAgICBvblByb2Nlc3M6IGZ1bmN0aW9uIG9uUHJvY2Vzcyhwcm9jZXNzKSB7XHJcbiAgICAgICAgICBjb250ZXh0LmNsZWFyUmVjdCgwLCAwLCBvcHRzLndpZHRoLCBvcHRzLmhlaWdodCk7XHJcbiAgICAgICAgICBpZiAob3B0cy5yb3RhdGUpIHtcclxuICAgICAgICAgICAgY29udGV4dFJvdGF0ZShjb250ZXh0LCBvcHRzKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGRyYXdZQXhpc0dyaWQoY2F0ZWdvcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgICAgIGRyYXdYQXhpcyhjYXRlZ29yaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgdmFyIF9kcmF3QXJlYURhdGFQb2ludHMgPSBkcmF3QXJlYURhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MpLFxyXG4gICAgICAgICAgICB4QXhpc1BvaW50cyA9IF9kcmF3QXJlYURhdGFQb2ludHMueEF4aXNQb2ludHMsXHJcbiAgICAgICAgICAgIGNhbFBvaW50cyA9IF9kcmF3QXJlYURhdGFQb2ludHMuY2FsUG9pbnRzLFxyXG4gICAgICAgICAgICBlYWNoU3BhY2luZyA9IF9kcmF3QXJlYURhdGFQb2ludHMuZWFjaFNwYWNpbmc7XHJcbiAgICAgICAgICBvcHRzLmNoYXJ0RGF0YS54QXhpc1BvaW50cyA9IHhBeGlzUG9pbnRzO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEuY2FsUG9pbnRzID0gY2FsUG9pbnRzO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEuZWFjaFNwYWNpbmcgPSBlYWNoU3BhY2luZztcclxuICAgICAgICAgIGRyYXdZQXhpcyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICBpZiAob3B0cy5lbmFibGVNYXJrTGluZSAhPT0gZmFsc2UgJiYgcHJvY2VzcyA9PT0gMSkge1xyXG4gICAgICAgICAgICBkcmF3TWFya0xpbmUob3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGRyYXdMZWdlbmQob3B0cy5zZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgb3B0cy5jaGFydERhdGEpO1xyXG4gICAgICAgICAgZHJhd1Rvb2xUaXBCcmlkZ2Uob3B0cywgY29uZmlnLCBjb250ZXh0LCBwcm9jZXNzLCBlYWNoU3BhY2luZywgeEF4aXNQb2ludHMpO1xyXG4gICAgICAgICAgZHJhd0NhbnZhcyhvcHRzLCBjb250ZXh0KTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9uQW5pbWF0aW9uRmluaXNoOiBmdW5jdGlvbiBvbkFuaW1hdGlvbkZpbmlzaCgpIHtcclxuICAgICAgICAgIF90aGlzLnVldmVudC50cmlnZ2VyKCdyZW5kZXJDb21wbGV0ZScpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAncmluZyc6XHJcbiAgICAgIHRoaXMuYW5pbWF0aW9uSW5zdGFuY2UgPSBuZXcgQW5pbWF0aW9uKHtcclxuICAgICAgICB0aW1pbmc6IG9wdHMudGltaW5nLFxyXG4gICAgICAgIGR1cmF0aW9uOiBkdXJhdGlvbixcclxuICAgICAgICBvblByb2Nlc3M6IGZ1bmN0aW9uIG9uUHJvY2Vzcyhwcm9jZXNzKSB7XHJcbiAgICAgICAgICBjb250ZXh0LmNsZWFyUmVjdCgwLCAwLCBvcHRzLndpZHRoLCBvcHRzLmhlaWdodCk7XHJcbiAgICAgICAgICBpZiAob3B0cy5yb3RhdGUpIHtcclxuICAgICAgICAgICAgY29udGV4dFJvdGF0ZShjb250ZXh0LCBvcHRzKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLnBpZURhdGEgPSBkcmF3UGllRGF0YVBvaW50cyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgcHJvY2Vzcyk7XHJcbiAgICAgICAgICBkcmF3TGVnZW5kKG9wdHMuc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIG9wdHMuY2hhcnREYXRhKTtcclxuICAgICAgICAgIGRyYXdUb29sVGlwQnJpZGdlKG9wdHMsIGNvbmZpZywgY29udGV4dCwgcHJvY2Vzcyk7XHJcbiAgICAgICAgICBkcmF3Q2FudmFzKG9wdHMsIGNvbnRleHQpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgb25BbmltYXRpb25GaW5pc2g6IGZ1bmN0aW9uIG9uQW5pbWF0aW9uRmluaXNoKCkge1xyXG4gICAgICAgICAgX3RoaXMudWV2ZW50LnRyaWdnZXIoJ3JlbmRlckNvbXBsZXRlJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgYnJlYWs7XHJcbiAgICBjYXNlICdwaWUnOlxyXG4gICAgICB0aGlzLmFuaW1hdGlvbkluc3RhbmNlID0gbmV3IEFuaW1hdGlvbih7XHJcbiAgICAgICAgdGltaW5nOiBvcHRzLnRpbWluZyxcclxuICAgICAgICBkdXJhdGlvbjogZHVyYXRpb24sXHJcbiAgICAgICAgb25Qcm9jZXNzOiBmdW5jdGlvbiBvblByb2Nlc3MocHJvY2Vzcykge1xyXG4gICAgICAgICAgY29udGV4dC5jbGVhclJlY3QoMCwgMCwgb3B0cy53aWR0aCwgb3B0cy5oZWlnaHQpO1xyXG4gICAgICAgICAgaWYgKG9wdHMucm90YXRlKSB7XHJcbiAgICAgICAgICAgIGNvbnRleHRSb3RhdGUoY29udGV4dCwgb3B0cyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBvcHRzLmNoYXJ0RGF0YS5waWVEYXRhID0gZHJhd1BpZURhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MpO1xyXG4gICAgICAgICAgZHJhd0xlZ2VuZChvcHRzLnNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0LCBvcHRzLmNoYXJ0RGF0YSk7XHJcbiAgICAgICAgICBkcmF3VG9vbFRpcEJyaWRnZShvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MpO1xyXG4gICAgICAgICAgZHJhd0NhbnZhcyhvcHRzLCBjb250ZXh0KTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9uQW5pbWF0aW9uRmluaXNoOiBmdW5jdGlvbiBvbkFuaW1hdGlvbkZpbmlzaCgpIHtcclxuICAgICAgICAgIF90aGlzLnVldmVudC50cmlnZ2VyKCdyZW5kZXJDb21wbGV0ZScpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAncm9zZSc6XHJcbiAgICAgIHRoaXMuYW5pbWF0aW9uSW5zdGFuY2UgPSBuZXcgQW5pbWF0aW9uKHtcclxuICAgICAgICB0aW1pbmc6IG9wdHMudGltaW5nLFxyXG4gICAgICAgIGR1cmF0aW9uOiBkdXJhdGlvbixcclxuICAgICAgICBvblByb2Nlc3M6IGZ1bmN0aW9uIG9uUHJvY2Vzcyhwcm9jZXNzKSB7XHJcbiAgICAgICAgICBjb250ZXh0LmNsZWFyUmVjdCgwLCAwLCBvcHRzLndpZHRoLCBvcHRzLmhlaWdodCk7XHJcbiAgICAgICAgICBpZiAob3B0cy5yb3RhdGUpIHtcclxuICAgICAgICAgICAgY29udGV4dFJvdGF0ZShjb250ZXh0LCBvcHRzKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLnBpZURhdGEgPSBkcmF3Um9zZURhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MpO1xyXG4gICAgICAgICAgZHJhd0xlZ2VuZChvcHRzLnNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0LCBvcHRzLmNoYXJ0RGF0YSk7XHJcbiAgICAgICAgICBkcmF3VG9vbFRpcEJyaWRnZShvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MpO1xyXG4gICAgICAgICAgZHJhd0NhbnZhcyhvcHRzLCBjb250ZXh0KTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9uQW5pbWF0aW9uRmluaXNoOiBmdW5jdGlvbiBvbkFuaW1hdGlvbkZpbmlzaCgpIHtcclxuICAgICAgICAgIF90aGlzLnVldmVudC50cmlnZ2VyKCdyZW5kZXJDb21wbGV0ZScpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAncmFkYXInOlxyXG4gICAgICB0aGlzLmFuaW1hdGlvbkluc3RhbmNlID0gbmV3IEFuaW1hdGlvbih7XHJcbiAgICAgICAgdGltaW5nOiBvcHRzLnRpbWluZyxcclxuICAgICAgICBkdXJhdGlvbjogZHVyYXRpb24sXHJcbiAgICAgICAgb25Qcm9jZXNzOiBmdW5jdGlvbiBvblByb2Nlc3MocHJvY2Vzcykge1xyXG4gICAgICAgICAgY29udGV4dC5jbGVhclJlY3QoMCwgMCwgb3B0cy53aWR0aCwgb3B0cy5oZWlnaHQpO1xyXG4gICAgICAgICAgaWYgKG9wdHMucm90YXRlKSB7XHJcbiAgICAgICAgICAgIGNvbnRleHRSb3RhdGUoY29udGV4dCwgb3B0cyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBvcHRzLmNoYXJ0RGF0YS5yYWRhckRhdGEgPSBkcmF3UmFkYXJEYXRhUG9pbnRzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0LCBwcm9jZXNzKTtcclxuICAgICAgICAgIGRyYXdMZWdlbmQob3B0cy5zZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgb3B0cy5jaGFydERhdGEpO1xyXG4gICAgICAgICAgZHJhd1Rvb2xUaXBCcmlkZ2Uob3B0cywgY29uZmlnLCBjb250ZXh0LCBwcm9jZXNzKTtcclxuICAgICAgICAgIGRyYXdDYW52YXMob3B0cywgY29udGV4dCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBvbkFuaW1hdGlvbkZpbmlzaDogZnVuY3Rpb24gb25BbmltYXRpb25GaW5pc2goKSB7XHJcbiAgICAgICAgICBfdGhpcy51ZXZlbnQudHJpZ2dlcigncmVuZGVyQ29tcGxldGUnKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBicmVhaztcclxuICAgIGNhc2UgJ2FyY2Jhcic6XHJcbiAgICAgIHRoaXMuYW5pbWF0aW9uSW5zdGFuY2UgPSBuZXcgQW5pbWF0aW9uKHtcclxuICAgICAgICB0aW1pbmc6IG9wdHMudGltaW5nLFxyXG4gICAgICAgIGR1cmF0aW9uOiBkdXJhdGlvbixcclxuICAgICAgICBvblByb2Nlc3M6IGZ1bmN0aW9uIG9uUHJvY2Vzcyhwcm9jZXNzKSB7XHJcbiAgICAgICAgICBjb250ZXh0LmNsZWFyUmVjdCgwLCAwLCBvcHRzLndpZHRoLCBvcHRzLmhlaWdodCk7XHJcbiAgICAgICAgICBpZiAob3B0cy5yb3RhdGUpIHtcclxuICAgICAgICAgICAgY29udGV4dFJvdGF0ZShjb250ZXh0LCBvcHRzKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLmFyY2JhckRhdGEgPSBkcmF3QXJjYmFyRGF0YVBvaW50cyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgcHJvY2Vzcyk7XHJcbiAgICAgICAgICBkcmF3Q2FudmFzKG9wdHMsIGNvbnRleHQpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgb25BbmltYXRpb25GaW5pc2g6IGZ1bmN0aW9uIG9uQW5pbWF0aW9uRmluaXNoKCkge1xyXG4gICAgICAgICAgX3RoaXMudWV2ZW50LnRyaWdnZXIoJ3JlbmRlckNvbXBsZXRlJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgYnJlYWs7XHJcbiAgICBjYXNlICdnYXVnZSc6XHJcbiAgICAgIHRoaXMuYW5pbWF0aW9uSW5zdGFuY2UgPSBuZXcgQW5pbWF0aW9uKHtcclxuICAgICAgICB0aW1pbmc6IG9wdHMudGltaW5nLFxyXG4gICAgICAgIGR1cmF0aW9uOiBkdXJhdGlvbixcclxuICAgICAgICBvblByb2Nlc3M6IGZ1bmN0aW9uIG9uUHJvY2Vzcyhwcm9jZXNzKSB7XHJcbiAgICAgICAgICBjb250ZXh0LmNsZWFyUmVjdCgwLCAwLCBvcHRzLndpZHRoLCBvcHRzLmhlaWdodCk7XHJcbiAgICAgICAgICBpZiAob3B0cy5yb3RhdGUpIHtcclxuICAgICAgICAgICAgY29udGV4dFJvdGF0ZShjb250ZXh0LCBvcHRzKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLmdhdWdlRGF0YSA9IGRyYXdHYXVnZURhdGFQb2ludHMoY2F0ZWdvcmllcywgc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MpO1xyXG4gICAgICAgICAgZHJhd0NhbnZhcyhvcHRzLCBjb250ZXh0KTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9uQW5pbWF0aW9uRmluaXNoOiBmdW5jdGlvbiBvbkFuaW1hdGlvbkZpbmlzaCgpIHtcclxuICAgICAgICAgIF90aGlzLnVldmVudC50cmlnZ2VyKCdyZW5kZXJDb21wbGV0ZScpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAnY2FuZGxlJzpcclxuICAgICAgdGhpcy5hbmltYXRpb25JbnN0YW5jZSA9IG5ldyBBbmltYXRpb24oe1xyXG4gICAgICAgIHRpbWluZzogb3B0cy50aW1pbmcsXHJcbiAgICAgICAgZHVyYXRpb246IGR1cmF0aW9uLFxyXG4gICAgICAgIG9uUHJvY2VzczogZnVuY3Rpb24gb25Qcm9jZXNzKHByb2Nlc3MpIHtcclxuICAgICAgICAgIGNvbnRleHQuY2xlYXJSZWN0KDAsIDAsIG9wdHMud2lkdGgsIG9wdHMuaGVpZ2h0KTtcclxuICAgICAgICAgIGlmIChvcHRzLnJvdGF0ZSkge1xyXG4gICAgICAgICAgICBjb250ZXh0Um90YXRlKGNvbnRleHQsIG9wdHMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZHJhd1lBeGlzR3JpZChjYXRlZ29yaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgZHJhd1hBeGlzKGNhdGVnb3JpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICB2YXIgX2RyYXdDYW5kbGVEYXRhUG9pbnRzID0gZHJhd0NhbmRsZURhdGFQb2ludHMoc2VyaWVzLCBzZXJpZXNNQSwgb3B0cywgY29uZmlnLCBjb250ZXh0LCBwcm9jZXNzKSxcclxuICAgICAgICAgICAgeEF4aXNQb2ludHMgPSBfZHJhd0NhbmRsZURhdGFQb2ludHMueEF4aXNQb2ludHMsXHJcbiAgICAgICAgICAgIGNhbFBvaW50cyA9IF9kcmF3Q2FuZGxlRGF0YVBvaW50cy5jYWxQb2ludHMsXHJcbiAgICAgICAgICAgIGVhY2hTcGFjaW5nID0gX2RyYXdDYW5kbGVEYXRhUG9pbnRzLmVhY2hTcGFjaW5nO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEueEF4aXNQb2ludHMgPSB4QXhpc1BvaW50cztcclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLmNhbFBvaW50cyA9IGNhbFBvaW50cztcclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLmVhY2hTcGFjaW5nID0gZWFjaFNwYWNpbmc7XHJcbiAgICAgICAgICBkcmF3WUF4aXMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgaWYgKG9wdHMuZW5hYmxlTWFya0xpbmUgIT09IGZhbHNlICYmIHByb2Nlc3MgPT09IDEpIHtcclxuICAgICAgICAgICAgZHJhd01hcmtMaW5lKG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoc2VyaWVzTUEpIHtcclxuICAgICAgICAgICAgZHJhd0xlZ2VuZChzZXJpZXNNQSwgb3B0cywgY29uZmlnLCBjb250ZXh0LCBvcHRzLmNoYXJ0RGF0YSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBkcmF3TGVnZW5kKG9wdHMuc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIG9wdHMuY2hhcnREYXRhKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGRyYXdUb29sVGlwQnJpZGdlKG9wdHMsIGNvbmZpZywgY29udGV4dCwgcHJvY2VzcywgZWFjaFNwYWNpbmcsIHhBeGlzUG9pbnRzKTtcclxuICAgICAgICAgIGRyYXdDYW52YXMob3B0cywgY29udGV4dCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBvbkFuaW1hdGlvbkZpbmlzaDogZnVuY3Rpb24gb25BbmltYXRpb25GaW5pc2goKSB7XHJcbiAgICAgICAgICBfdGhpcy51ZXZlbnQudHJpZ2dlcigncmVuZGVyQ29tcGxldGUnKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBicmVhaztcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHVDaGFydHNFdmVudCgpIHtcclxuICB0aGlzLmV2ZW50cyA9IHt9O1xyXG59XHJcblxyXG51Q2hhcnRzRXZlbnQucHJvdG90eXBlLmFkZEV2ZW50TGlzdGVuZXIgPSBmdW5jdGlvbih0eXBlLCBsaXN0ZW5lcikge1xyXG4gIHRoaXMuZXZlbnRzW3R5cGVdID0gdGhpcy5ldmVudHNbdHlwZV0gfHwgW107XHJcbiAgdGhpcy5ldmVudHNbdHlwZV0ucHVzaChsaXN0ZW5lcik7XHJcbn07XHJcblxyXG51Q2hhcnRzRXZlbnQucHJvdG90eXBlLmRlbEV2ZW50TGlzdGVuZXIgPSBmdW5jdGlvbih0eXBlKSB7XHJcbiAgdGhpcy5ldmVudHNbdHlwZV0gPSBbXTtcclxufTtcclxuXHJcbnVDaGFydHNFdmVudC5wcm90b3R5cGUudHJpZ2dlciA9IGZ1bmN0aW9uKCkge1xyXG4gIGZvciAodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gQXJyYXkoX2xlbiksIF9rZXkgPSAwOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XHJcbiAgICBhcmdzW19rZXldID0gYXJndW1lbnRzW19rZXldO1xyXG4gIH1cclxuICB2YXIgdHlwZSA9IGFyZ3NbMF07XHJcbiAgdmFyIHBhcmFtcyA9IGFyZ3Muc2xpY2UoMSk7XHJcbiAgaWYgKCEhdGhpcy5ldmVudHNbdHlwZV0pIHtcclxuICAgIHRoaXMuZXZlbnRzW3R5cGVdLmZvckVhY2goZnVuY3Rpb24obGlzdGVuZXIpIHtcclxuICAgICAgdHJ5IHtcclxuICAgICAgICBsaXN0ZW5lci5hcHBseShudWxsLCBwYXJhbXMpO1xyXG4gICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAvL2NvbnNvbGUubG9nKCdbdUNoYXJ0c10gJytlKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG59O1xyXG5cclxudmFyIHVDaGFydHMgPSBmdW5jdGlvbiB1Q2hhcnRzKG9wdHMpIHtcclxuICBvcHRzLnBpeCA9IG9wdHMucGl4ZWxSYXRpbyA/IG9wdHMucGl4ZWxSYXRpbyA6IDE7XHJcbiAgb3B0cy5mb250U2l6ZSA9IG9wdHMuZm9udFNpemUgPyBvcHRzLmZvbnRTaXplIDogMTM7XHJcbiAgb3B0cy5mb250Q29sb3IgPSBvcHRzLmZvbnRDb2xvciA/IG9wdHMuZm9udENvbG9yIDogY29uZmlnLmZvbnRDb2xvcjtcclxuICBpZiAob3B0cy5iYWNrZ3JvdW5kID09IFwiXCIgfHwgb3B0cy5iYWNrZ3JvdW5kID09IFwibm9uZVwiKSB7XHJcbiAgICBvcHRzLmJhY2tncm91bmQgPSBcIiNGRkZGRkZcIlxyXG4gIH1cclxuICBvcHRzLnRpdGxlID0gYXNzaWduKHt9LCBvcHRzLnRpdGxlKTtcclxuICBvcHRzLnN1YnRpdGxlID0gYXNzaWduKHt9LCBvcHRzLnN1YnRpdGxlKTtcclxuICBvcHRzLmR1cmF0aW9uID0gb3B0cy5kdXJhdGlvbiA/IG9wdHMuZHVyYXRpb24gOiAxMDAwO1xyXG4gIG9wdHMueUF4aXMgPSBhc3NpZ24oe30sIHtcclxuICAgIGRhdGE6IFtdLFxyXG4gICAgc2hvd1RpdGxlOiBmYWxzZSxcclxuICAgIGRpc2FibGVkOiBmYWxzZSxcclxuICAgIGRpc2FibGVHcmlkOiBmYWxzZSxcclxuICAgIGdyaWRTZXQ6ICdudW1iZXInLFxyXG4gICAgc3BsaXROdW1iZXI6IDUsXHJcbiAgICBncmlkVHlwZTogJ3NvbGlkJyxcclxuICAgIGRhc2hMZW5ndGg6IDQgKiBvcHRzLnBpeCxcclxuICAgIGdyaWRDb2xvcjogJyNjY2NjY2MnLFxyXG4gICAgcGFkZGluZzogMTAsXHJcbiAgICBmb250Q29sb3I6ICcjNjY2NjY2J1xyXG4gIH0sIG9wdHMueUF4aXMpO1xyXG4gIG9wdHMueEF4aXMgPSBhc3NpZ24oe30sIHtcclxuICAgIHJvdGF0ZUxhYmVsOiBmYWxzZSxcclxuICAgIHJvdGF0ZUFuZ2xlOjQ1LFxyXG4gICAgZGlzYWJsZWQ6IGZhbHNlLFxyXG4gICAgZGlzYWJsZUdyaWQ6IGZhbHNlLFxyXG4gICAgc3BsaXROdW1iZXI6IDUsXHJcbiAgICBjYWxpYnJhdGlvbjpmYWxzZSxcclxuICAgIGdyaWRUeXBlOiAnc29saWQnLFxyXG4gICAgZGFzaExlbmd0aDogNCxcclxuICAgIHNjcm9sbEFsaWduOiAnbGVmdCcsXHJcbiAgICBib3VuZGFyeUdhcDogJ2NlbnRlcicsXHJcbiAgICBheGlzTGluZTogdHJ1ZSxcclxuICAgIGF4aXNMaW5lQ29sb3I6ICcjY2NjY2NjJ1xyXG4gIH0sIG9wdHMueEF4aXMpO1xyXG4gIG9wdHMueEF4aXMuc2Nyb2xsUG9zaXRpb24gPSBvcHRzLnhBeGlzLnNjcm9sbEFsaWduO1xyXG4gIG9wdHMubGVnZW5kID0gYXNzaWduKHt9LCB7XHJcbiAgICBzaG93OiB0cnVlLFxyXG4gICAgcG9zaXRpb246ICdib3R0b20nLFxyXG4gICAgZmxvYXQ6ICdjZW50ZXInLFxyXG4gICAgYmFja2dyb3VuZENvbG9yOiAncmdiYSgwLDAsMCwwKScsXHJcbiAgICBib3JkZXJDb2xvcjogJ3JnYmEoMCwwLDAsMCknLFxyXG4gICAgYm9yZGVyV2lkdGg6IDAsXHJcbiAgICBwYWRkaW5nOiA1LFxyXG4gICAgbWFyZ2luOiA1LFxyXG4gICAgaXRlbUdhcDogMTAsXHJcbiAgICBmb250U2l6ZTogb3B0cy5mb250U2l6ZSxcclxuICAgIGxpbmVIZWlnaHQ6IG9wdHMuZm9udFNpemUsXHJcbiAgICBmb250Q29sb3I6IG9wdHMuZm9udENvbG9yLFxyXG4gICAgZm9ybWF0dGVyOiB7fSxcclxuICAgIGhpZGRlbkNvbG9yOiAnI0NFQ0VDRSdcclxuICB9LCBvcHRzLmxlZ2VuZCk7XHJcbiAgb3B0cy5leHRyYSA9IGFzc2lnbih7fSwgb3B0cy5leHRyYSk7XHJcbiAgb3B0cy5yb3RhdGUgPSBvcHRzLnJvdGF0ZSA/IHRydWUgOiBmYWxzZTtcclxuICBvcHRzLmFuaW1hdGlvbiA9IG9wdHMuYW5pbWF0aW9uID8gdHJ1ZSA6IGZhbHNlO1xyXG4gIG9wdHMucm90YXRlID0gb3B0cy5yb3RhdGUgPyB0cnVlIDogZmFsc2U7XHJcbiAgb3B0cy5jYW52YXMyZCA9IG9wdHMuY2FudmFzMmQgPyB0cnVlIDogZmFsc2U7XHJcbiAgXHJcbiAgbGV0IGNvbmZpZyQkMSA9IGFzc2lnbih7fSwgY29uZmlnKTtcclxuICBjb25maWckJDEuY29sb3IgPSBvcHRzLmNvbG9yID8gb3B0cy5jb2xvciA6IGNvbmZpZyQkMS5jb2xvcjtcclxuICBpZiAob3B0cy50eXBlID09ICdwaWUnKSB7XHJcbiAgICBjb25maWckJDEucGllQ2hhcnRMaW5lUGFkZGluZyA9IG9wdHMuZGF0YUxhYmVsID09PSBmYWxzZSA/IDAgOiBvcHRzLmV4dHJhLnBpZS5sYWJlbFdpZHRoICogb3B0cy5waXggfHwgY29uZmlnJCQxLnBpZUNoYXJ0TGluZVBhZGRpbmcgKiBvcHRzLnBpeDtcclxuICB9XHJcbiAgaWYgKG9wdHMudHlwZSA9PSAncmluZycpIHtcclxuICAgIGNvbmZpZyQkMS5waWVDaGFydExpbmVQYWRkaW5nID0gb3B0cy5kYXRhTGFiZWwgPT09IGZhbHNlID8gMCA6IG9wdHMuZXh0cmEucmluZy5sYWJlbFdpZHRoICogb3B0cy5waXggfHwgY29uZmlnJCQxLnBpZUNoYXJ0TGluZVBhZGRpbmcgKiBvcHRzLnBpeDtcclxuICB9XHJcbiAgaWYgKG9wdHMudHlwZSA9PSAncm9zZScpIHtcclxuICAgIGNvbmZpZyQkMS5waWVDaGFydExpbmVQYWRkaW5nID0gb3B0cy5kYXRhTGFiZWwgPT09IGZhbHNlID8gMCA6IG9wdHMuZXh0cmEucm9zZS5sYWJlbFdpZHRoICogb3B0cy5waXggfHwgY29uZmlnJCQxLnBpZUNoYXJ0TGluZVBhZGRpbmcgKiBvcHRzLnBpeDtcclxuICB9XHJcbiAgY29uZmlnJCQxLnBpZUNoYXJ0VGV4dFBhZGRpbmcgPSBvcHRzLmRhdGFMYWJlbCA9PT0gZmFsc2UgPyAwIDogY29uZmlnJCQxLnBpZUNoYXJ0VGV4dFBhZGRpbmcgKiBvcHRzLnBpeDtcclxuXHJcbiAgLy/lsY/luZXml4vovaxcclxuICBjb25maWckJDEucm90YXRlID0gb3B0cy5yb3RhdGU7XHJcbiAgaWYgKG9wdHMucm90YXRlKSB7XHJcbiAgICBsZXQgdGVtcFdpZHRoID0gb3B0cy53aWR0aDtcclxuICAgIGxldCB0ZW1wSGVpZ2h0ID0gb3B0cy5oZWlnaHQ7XHJcbiAgICBvcHRzLndpZHRoID0gdGVtcEhlaWdodDtcclxuICAgIG9wdHMuaGVpZ2h0ID0gdGVtcFdpZHRoO1xyXG4gIH1cclxuXHJcbiAgLy/pgILphY3pq5jliIblsY9cclxuICBvcHRzLnBhZGRpbmcgPSBvcHRzLnBhZGRpbmcgPyBvcHRzLnBhZGRpbmcgOiBjb25maWckJDEucGFkZGluZztcclxuICBjb25maWckJDEueUF4aXNXaWR0aCA9IGNvbmZpZy55QXhpc1dpZHRoICogb3B0cy5waXg7XHJcbiAgY29uZmlnJCQxLnhBeGlzSGVpZ2h0ID0gY29uZmlnLnhBeGlzSGVpZ2h0ICogb3B0cy5waXg7XHJcbiAgaWYgKG9wdHMuZW5hYmxlU2Nyb2xsICYmIG9wdHMueEF4aXMuc2Nyb2xsU2hvdykge1xyXG4gICAgY29uZmlnJCQxLnhBeGlzSGVpZ2h0ICs9IDYgKiBvcHRzLnBpeDtcclxuICB9XHJcbiAgY29uZmlnJCQxLmZvbnRTaXplID0gb3B0cy5mb250U2l6ZSAqIG9wdHMucGl4O1xyXG4gIGNvbmZpZyQkMS50aXRsZUZvbnRTaXplID0gY29uZmlnLnRpdGxlRm9udFNpemUgKiBvcHRzLnBpeDtcclxuICBjb25maWckJDEuc3VidGl0bGVGb250U2l6ZSA9IGNvbmZpZy5zdWJ0aXRsZUZvbnRTaXplICogb3B0cy5waXg7XHJcbiAgY29uZmlnJCQxLnRvb2xUaXBQYWRkaW5nID0gY29uZmlnLnRvb2xUaXBQYWRkaW5nICogb3B0cy5waXg7XHJcbiAgY29uZmlnJCQxLnRvb2xUaXBMaW5lSGVpZ2h0ID0gY29uZmlnLnRvb2xUaXBMaW5lSGVpZ2h0ICogb3B0cy5waXg7XHJcbiAgaWYoIW9wdHMuY29udGV4dCl7XHJcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1t1Q2hhcnRzXSDmnKrojrflj5bliLBjb250ZXh077yB5rOo5oSP77yadjIuMOeJiOacrOWQju+8jOmcgOimgeiHquihjOiOt+WPlmNhbnZhc+eahOe7mOWbvuS4iuS4i+aWh+W5tuS8oOWFpW9wdHMuY29udGV4dO+8gScpO1xyXG4gIH1cclxuICB0aGlzLmNvbnRleHQgPSBvcHRzLmNvbnRleHQ7XHJcbiAgaWYgKCF0aGlzLmNvbnRleHQuc2V0VGV4dEFsaWduKSB7XHJcbiAgICB0aGlzLmNvbnRleHQuc2V0U3Ryb2tlU3R5bGUgPSBmdW5jdGlvbihlKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnN0cm9rZVN0eWxlID0gZTtcclxuICAgIH1cclxuICAgIHRoaXMuY29udGV4dC5zZXRMaW5lV2lkdGggPSBmdW5jdGlvbihlKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmxpbmVXaWR0aCA9IGU7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNvbnRleHQuc2V0TGluZUNhcCA9IGZ1bmN0aW9uKGUpIHtcclxuICAgICAgcmV0dXJuIHRoaXMubGluZUNhcCA9IGU7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNvbnRleHQuc2V0Rm9udFNpemUgPSBmdW5jdGlvbihlKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmZvbnQgPSBlICsgXCJweCBzYW5zLXNlcmlmXCI7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNvbnRleHQuc2V0RmlsbFN0eWxlID0gZnVuY3Rpb24oZSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5maWxsU3R5bGUgPSBlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jb250ZXh0LnNldFRleHRBbGlnbiA9IGZ1bmN0aW9uKGUpIHtcclxuICAgICAgcmV0dXJuIHRoaXMudGV4dEFsaWduID0gZTtcclxuICAgIH1cclxuICAgIHRoaXMuY29udGV4dC5kcmF3ID0gZnVuY3Rpb24oKSB7fVxyXG4gIH1cclxuICAvL+WFvOWuuU5WVUVzZXRMaW5lRGFzaFxyXG4gIGlmKCF0aGlzLmNvbnRleHQuc2V0TGluZURhc2gpe1xyXG4gICAgdGhpcy5jb250ZXh0LnNldExpbmVEYXNoID0gZnVuY3Rpb24oZSkge31cclxuICB9XHJcbiAgb3B0cy5jaGFydERhdGEgPSB7fTtcclxuICB0aGlzLnVldmVudCA9IG5ldyB1Q2hhcnRzRXZlbnQoKTtcclxuICB0aGlzLnNjcm9sbE9wdGlvbiA9IHtcclxuICAgIGN1cnJlbnRPZmZzZXQ6IDAsXHJcbiAgICBzdGFydFRvdWNoWDogMCxcclxuICAgIGRpc3RhbmNlOiAwLFxyXG4gICAgbGFzdE1vdmVUaW1lOiAwXHJcbiAgfTtcclxuICB0aGlzLm9wdHMgPSBvcHRzO1xyXG4gIHRoaXMuY29uZmlnID0gY29uZmlnJCQxO1xyXG4gIGRyYXdDaGFydHMuY2FsbCh0aGlzLCBvcHRzLnR5cGUsIG9wdHMsIGNvbmZpZyQkMSwgdGhpcy5jb250ZXh0KTtcclxufTtcclxuXHJcbnVDaGFydHMucHJvdG90eXBlLnVwZGF0ZURhdGEgPSBmdW5jdGlvbigpIHtcclxuICBsZXQgZGF0YSA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDoge307XHJcbiAgdGhpcy5vcHRzID0gYXNzaWduKHt9LCB0aGlzLm9wdHMsIGRhdGEpO1xyXG4gIHRoaXMub3B0cy51cGRhdGVEYXRhID0gdHJ1ZTtcclxuICBsZXQgc2Nyb2xsUG9zaXRpb24gPSBkYXRhLnNjcm9sbFBvc2l0aW9uIHx8ICdjdXJyZW50JztcclxuICBzd2l0Y2ggKHNjcm9sbFBvc2l0aW9uKSB7XHJcbiAgICBjYXNlICdjdXJyZW50JzpcclxuICAgICAgdGhpcy5vcHRzLl9zY3JvbGxEaXN0YW5jZV8gPSB0aGlzLnNjcm9sbE9wdGlvbi5jdXJyZW50T2Zmc2V0O1xyXG4gICAgICBicmVhaztcclxuICAgIGNhc2UgJ2xlZnQnOlxyXG4gICAgICB0aGlzLm9wdHMuX3Njcm9sbERpc3RhbmNlXyA9IDA7XHJcbiAgICAgIHRoaXMuc2Nyb2xsT3B0aW9uID0ge1xyXG4gICAgICAgIGN1cnJlbnRPZmZzZXQ6IDAsXHJcbiAgICAgICAgc3RhcnRUb3VjaFg6IDAsXHJcbiAgICAgICAgZGlzdGFuY2U6IDAsXHJcbiAgICAgICAgbGFzdE1vdmVUaW1lOiAwXHJcbiAgICAgIH07XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAncmlnaHQnOlxyXG4gICAgICBsZXQgX2NhbFlBeGlzRGF0YSA9IGNhbFlBeGlzRGF0YSh0aGlzLm9wdHMuc2VyaWVzLCB0aGlzLm9wdHMsIHRoaXMuY29uZmlnLCB0aGlzLmNvbnRleHQpLCB5QXhpc1dpZHRoID0gX2NhbFlBeGlzRGF0YS55QXhpc1dpZHRoO1xyXG4gICAgICB0aGlzLmNvbmZpZy55QXhpc1dpZHRoID0geUF4aXNXaWR0aDtcclxuICAgICAgbGV0IG9mZnNldExlZnQgPSAwO1xyXG4gICAgICBsZXQgX2dldFhBeGlzUG9pbnRzMCA9IGdldFhBeGlzUG9pbnRzKHRoaXMub3B0cy5jYXRlZ29yaWVzLCB0aGlzLm9wdHMsIHRoaXMuY29uZmlnKSwgeEF4aXNQb2ludHMgPSBfZ2V0WEF4aXNQb2ludHMwLnhBeGlzUG9pbnRzLFxyXG4gICAgICAgIHN0YXJ0WCA9IF9nZXRYQXhpc1BvaW50czAuc3RhcnRYLFxyXG4gICAgICAgIGVuZFggPSBfZ2V0WEF4aXNQb2ludHMwLmVuZFgsXHJcbiAgICAgICAgZWFjaFNwYWNpbmcgPSBfZ2V0WEF4aXNQb2ludHMwLmVhY2hTcGFjaW5nO1xyXG4gICAgICBsZXQgdG90YWxXaWR0aCA9IGVhY2hTcGFjaW5nICogKHhBeGlzUG9pbnRzLmxlbmd0aCAtIDEpO1xyXG4gICAgICBsZXQgc2NyZWVuV2lkdGggPSBlbmRYIC0gc3RhcnRYO1xyXG4gICAgICBvZmZzZXRMZWZ0ID0gc2NyZWVuV2lkdGggLSB0b3RhbFdpZHRoO1xyXG4gICAgICB0aGlzLnNjcm9sbE9wdGlvbiA9IHtcclxuICAgICAgICBjdXJyZW50T2Zmc2V0OiBvZmZzZXRMZWZ0LFxyXG4gICAgICAgIHN0YXJ0VG91Y2hYOiBvZmZzZXRMZWZ0LFxyXG4gICAgICAgIGRpc3RhbmNlOiAwLFxyXG4gICAgICAgIGxhc3RNb3ZlVGltZTogMFxyXG4gICAgICB9O1xyXG4gICAgICB0aGlzLm9wdHMuX3Njcm9sbERpc3RhbmNlXyA9IG9mZnNldExlZnQ7XHJcbiAgICAgIGJyZWFrO1xyXG4gIH1cclxuICBkcmF3Q2hhcnRzLmNhbGwodGhpcywgdGhpcy5vcHRzLnR5cGUsIHRoaXMub3B0cywgdGhpcy5jb25maWcsIHRoaXMuY29udGV4dCk7XHJcbn07XHJcblxyXG51Q2hhcnRzLnByb3RvdHlwZS56b29tID0gZnVuY3Rpb24oKSB7XHJcbiAgdmFyIHZhbCA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDogdGhpcy5vcHRzLnhBeGlzLml0ZW1Db3VudDtcclxuICBpZiAodGhpcy5vcHRzLmVuYWJsZVNjcm9sbCAhPT0gdHJ1ZSkge1xyXG4gICAgY29uc29sZS5sb2coJ1t1Q2hhcnRzXSDor7flkK/nlKjmu5rliqjmnaHlkI7kvb/nlKgnKVxyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuICAvL+W9k+WJjeWxj+W5leS4remXtOeCuVxyXG4gIGxldCBjZW50ZXJQb2ludCA9IE1hdGgucm91bmQoTWF0aC5hYnModGhpcy5zY3JvbGxPcHRpb24uY3VycmVudE9mZnNldCkgLyB0aGlzLm9wdHMuY2hhcnREYXRhLmVhY2hTcGFjaW5nKSArIE1hdGgucm91bmQodGhpcy5vcHRzLnhBeGlzLml0ZW1Db3VudCAvIDIpO1xyXG4gIHRoaXMub3B0cy5hbmltYXRpb24gPSBmYWxzZTtcclxuICB0aGlzLm9wdHMueEF4aXMuaXRlbUNvdW50ID0gdmFsLml0ZW1Db3VudDtcclxuICAvL+mHjeaWsOiuoeeul3jovbTlgY/np7vot53nprtcclxuICBsZXQgX2NhbFlBeGlzRGF0YSA9IGNhbFlBeGlzRGF0YSh0aGlzLm9wdHMuc2VyaWVzLCB0aGlzLm9wdHMsIHRoaXMuY29uZmlnLCB0aGlzLmNvbnRleHQpLFxyXG4gICAgeUF4aXNXaWR0aCA9IF9jYWxZQXhpc0RhdGEueUF4aXNXaWR0aDtcclxuICB0aGlzLmNvbmZpZy55QXhpc1dpZHRoID0geUF4aXNXaWR0aDtcclxuICBsZXQgb2Zmc2V0TGVmdCA9IDA7XHJcbiAgbGV0IF9nZXRYQXhpc1BvaW50czAgPSBnZXRYQXhpc1BvaW50cyh0aGlzLm9wdHMuY2F0ZWdvcmllcywgdGhpcy5vcHRzLCB0aGlzLmNvbmZpZyksXHJcbiAgICB4QXhpc1BvaW50cyA9IF9nZXRYQXhpc1BvaW50czAueEF4aXNQb2ludHMsXHJcbiAgICBzdGFydFggPSBfZ2V0WEF4aXNQb2ludHMwLnN0YXJ0WCxcclxuICAgIGVuZFggPSBfZ2V0WEF4aXNQb2ludHMwLmVuZFgsXHJcbiAgICBlYWNoU3BhY2luZyA9IF9nZXRYQXhpc1BvaW50czAuZWFjaFNwYWNpbmc7XHJcbiAgbGV0IGNlbnRlckxlZnQgPSBlYWNoU3BhY2luZyAqIGNlbnRlclBvaW50O1xyXG4gIGxldCBzY3JlZW5XaWR0aCA9IGVuZFggLSBzdGFydFg7XHJcbiAgbGV0IE1heExlZnQgPSBzY3JlZW5XaWR0aCAtIGVhY2hTcGFjaW5nICogKHhBeGlzUG9pbnRzLmxlbmd0aCAtIDEpO1xyXG4gIG9mZnNldExlZnQgPSBzY3JlZW5XaWR0aCAvIDIgLSBjZW50ZXJMZWZ0O1xyXG4gIGlmIChvZmZzZXRMZWZ0ID4gMCkge1xyXG4gICAgb2Zmc2V0TGVmdCA9IDA7XHJcbiAgfVxyXG4gIGlmIChvZmZzZXRMZWZ0IDwgTWF4TGVmdCkge1xyXG4gICAgb2Zmc2V0TGVmdCA9IE1heExlZnQ7XHJcbiAgfVxyXG4gIHRoaXMuc2Nyb2xsT3B0aW9uID0ge1xyXG4gICAgY3VycmVudE9mZnNldDogb2Zmc2V0TGVmdCxcclxuICAgIHN0YXJ0VG91Y2hYOiAwLFxyXG4gICAgZGlzdGFuY2U6IDAsXHJcbiAgICBsYXN0TW92ZVRpbWU6IDBcclxuICB9O1xyXG4gIGNhbFZhbGlkRGlzdGFuY2UodGhpcywgb2Zmc2V0TGVmdCwgdGhpcy5vcHRzLmNoYXJ0RGF0YSwgdGhpcy5jb25maWcsIHRoaXMub3B0cyk7XHJcbiAgdGhpcy5vcHRzLl9zY3JvbGxEaXN0YW5jZV8gPSBvZmZzZXRMZWZ0O1xyXG4gIGRyYXdDaGFydHMuY2FsbCh0aGlzLCB0aGlzLm9wdHMudHlwZSwgdGhpcy5vcHRzLCB0aGlzLmNvbmZpZywgdGhpcy5jb250ZXh0KTtcclxufTtcclxuXHJcbnVDaGFydHMucHJvdG90eXBlLmRvYnVsZVpvb20gPSBmdW5jdGlvbihlKSB7XHJcbiAgaWYgKHRoaXMub3B0cy5lbmFibGVTY3JvbGwgIT09IHRydWUpIHtcclxuICAgIGNvbnNvbGUubG9nKCdbdUNoYXJ0c10g6K+35ZCv55So5rua5Yqo5p2h5ZCO5L2/55SoJylcclxuICAgIHJldHVybjtcclxuICB9XHJcbiAgY29uc3QgdGNzID0gZS5jaGFuZ2VkVG91Y2hlcztcclxuICBpZiAodGNzLmxlbmd0aCA8IDIpIHtcclxuICAgIHJldHVybjtcclxuICB9XHJcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCB0Y3MubGVuZ3RoOyBpKyspIHtcclxuICAgIHRjc1tpXS54ID0gdGNzW2ldLnggPyB0Y3NbaV0ueCA6IHRjc1tpXS5jbGllbnRYO1xyXG4gICAgdGNzW2ldLnkgPSB0Y3NbaV0ueSA/IHRjc1tpXS55IDogdGNzW2ldLmNsaWVudFk7XHJcbiAgfVxyXG4gIGNvbnN0IG50Y3MgPSBbZ2V0VG91Y2hlcyh0Y3NbMF0sIHRoaXMub3B0cywgZSksZ2V0VG91Y2hlcyh0Y3NbMV0sIHRoaXMub3B0cywgZSldOyBcclxuICBjb25zdCB4bGVuZ3RoID0gTWF0aC5hYnMobnRjc1swXS54IC0gbnRjc1sxXS54KTtcclxuICAvLyDorrDlvZXliJ3lp4vnmoTkuKTmjIfkuYvpl7TnmoTmlbDmja5cclxuICBpZighdGhpcy5zY3JvbGxPcHRpb24ubW92ZUNvdW50KXtcclxuICAgIGxldCBjdHMwID0ge2NoYW5nZWRUb3VjaGVzOlt7eDp0Y3NbMF0ueCx5OnRoaXMub3B0cy5hcmVhWzBdIC8gdGhpcy5vcHRzLnBpeCArIDJ9XX07XHJcbiAgICBsZXQgY3RzMSA9IHtjaGFuZ2VkVG91Y2hlczpbe3g6dGNzWzFdLngseTp0aGlzLm9wdHMuYXJlYVswXSAvIHRoaXMub3B0cy5waXggKyAyfV19O1xyXG4gICAgaWYodGhpcy5vcHRzLnJvdGF0ZSl7XHJcbiAgICAgIGN0czAgPSB7Y2hhbmdlZFRvdWNoZXM6W3t4OnRoaXMub3B0cy5oZWlnaHQgLyB0aGlzLm9wdHMucGl4IC0gdGhpcy5vcHRzLmFyZWFbMF0gLyB0aGlzLm9wdHMucGl4IC0gMix5OnRjc1swXS55fV19O1xyXG4gICAgICBjdHMxID0ge2NoYW5nZWRUb3VjaGVzOlt7eDp0aGlzLm9wdHMuaGVpZ2h0IC8gdGhpcy5vcHRzLnBpeCAtIHRoaXMub3B0cy5hcmVhWzBdIC8gdGhpcy5vcHRzLnBpeCAtIDIseTp0Y3NbMV0ueX1dfTtcclxuICAgIH1cclxuICAgIGNvbnN0IG1vdmVDdXJyZW50MSA9IHRoaXMuZ2V0Q3VycmVudERhdGFJbmRleChjdHMwKS5pbmRleDtcclxuICAgIGNvbnN0IG1vdmVDdXJyZW50MiA9IHRoaXMuZ2V0Q3VycmVudERhdGFJbmRleChjdHMxKS5pbmRleDtcclxuICAgIGNvbnN0IG1vdmVDb3VudCA9IE1hdGguYWJzKG1vdmVDdXJyZW50MSAtIG1vdmVDdXJyZW50Mik7XHJcbiAgICB0aGlzLnNjcm9sbE9wdGlvbi5tb3ZlQ291bnQgPSBtb3ZlQ291bnQ7XHJcbiAgICB0aGlzLnNjcm9sbE9wdGlvbi5tb3ZlQ3VycmVudDEgPSBNYXRoLm1pbihtb3ZlQ3VycmVudDEsIG1vdmVDdXJyZW50Mik7XHJcbiAgICB0aGlzLnNjcm9sbE9wdGlvbi5tb3ZlQ3VycmVudDIgPSBNYXRoLm1heChtb3ZlQ3VycmVudDEsIG1vdmVDdXJyZW50Mik7XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG4gIFxyXG4gIGxldCBjdXJyZW50RWFjaFNwYWNpbmcgPSB4bGVuZ3RoIC8gdGhpcy5zY3JvbGxPcHRpb24ubW92ZUNvdW50O1xyXG4gIGxldCBpdGVtQ291bnQgPSAodGhpcy5vcHRzLndpZHRoIC0gdGhpcy5vcHRzLmFyZWFbMV0gLSB0aGlzLm9wdHMuYXJlYVszXSkgLyBjdXJyZW50RWFjaFNwYWNpbmc7XHJcbiAgaXRlbUNvdW50ID0gaXRlbUNvdW50IDw9IDIgPyAyIDogaXRlbUNvdW50O1xyXG4gIGl0ZW1Db3VudCA9IGl0ZW1Db3VudCA+PSB0aGlzLm9wdHMuY2F0ZWdvcmllcy5sZW5ndGggPyB0aGlzLm9wdHMuY2F0ZWdvcmllcy5sZW5ndGggOiBpdGVtQ291bnQ7XHJcbiAgdGhpcy5vcHRzLmFuaW1hdGlvbiA9IGZhbHNlO1xyXG4gIHRoaXMub3B0cy54QXhpcy5pdGVtQ291bnQgPSBpdGVtQ291bnQ7XHJcbiAgLy8g6YeN5paw6K6h566X5rua5Yqo5p2h5YGP56e76Led56a7XHJcbiAgbGV0IG9mZnNldExlZnQgPSAwO1xyXG4gIGxldCBfZ2V0WEF4aXNQb2ludHMwID0gZ2V0WEF4aXNQb2ludHModGhpcy5vcHRzLmNhdGVnb3JpZXMsIHRoaXMub3B0cywgdGhpcy5jb25maWcpLFxyXG4gICAgeEF4aXNQb2ludHMgPSBfZ2V0WEF4aXNQb2ludHMwLnhBeGlzUG9pbnRzLFxyXG4gICAgc3RhcnRYID0gX2dldFhBeGlzUG9pbnRzMC5zdGFydFgsXHJcbiAgICBlbmRYID0gX2dldFhBeGlzUG9pbnRzMC5lbmRYLFxyXG4gICAgZWFjaFNwYWNpbmcgPSBfZ2V0WEF4aXNQb2ludHMwLmVhY2hTcGFjaW5nO1xyXG4gIGxldCBjdXJyZW50TGVmdCA9IGVhY2hTcGFjaW5nICogdGhpcy5zY3JvbGxPcHRpb24ubW92ZUN1cnJlbnQxO1xyXG4gIGxldCBzY3JlZW5XaWR0aCA9IGVuZFggLSBzdGFydFg7XHJcbiAgbGV0IE1heExlZnQgPSBzY3JlZW5XaWR0aCAtIGVhY2hTcGFjaW5nICogKHhBeGlzUG9pbnRzLmxlbmd0aCAtIDEpO1xyXG4gIG9mZnNldExlZnQgPSAtY3VycmVudExlZnQrTWF0aC5taW4obnRjc1swXS54LG50Y3NbMV0ueCktdGhpcy5vcHRzLmFyZWFbM10tZWFjaFNwYWNpbmc7XHJcbiAgaWYgKG9mZnNldExlZnQgPiAwKSB7XHJcbiAgICBvZmZzZXRMZWZ0ID0gMDtcclxuICB9XHJcbiAgaWYgKG9mZnNldExlZnQgPCBNYXhMZWZ0KSB7XHJcbiAgICBvZmZzZXRMZWZ0ID0gTWF4TGVmdDtcclxuICB9XHJcbiAgdGhpcy5zY3JvbGxPcHRpb24uY3VycmVudE9mZnNldD0gb2Zmc2V0TGVmdDtcclxuICB0aGlzLnNjcm9sbE9wdGlvbi5zdGFydFRvdWNoWD0gMDtcclxuICB0aGlzLnNjcm9sbE9wdGlvbi5kaXN0YW5jZT0wO1xyXG4gIGNhbFZhbGlkRGlzdGFuY2UodGhpcywgb2Zmc2V0TGVmdCwgdGhpcy5vcHRzLmNoYXJ0RGF0YSwgdGhpcy5jb25maWcsIHRoaXMub3B0cyk7XHJcbiAgdGhpcy5vcHRzLl9zY3JvbGxEaXN0YW5jZV8gPSBvZmZzZXRMZWZ0O1xyXG4gIGRyYXdDaGFydHMuY2FsbCh0aGlzLCB0aGlzLm9wdHMudHlwZSwgdGhpcy5vcHRzLCB0aGlzLmNvbmZpZywgdGhpcy5jb250ZXh0KTtcclxufVxyXG5cclxudUNoYXJ0cy5wcm90b3R5cGUuc3RvcEFuaW1hdGlvbiA9IGZ1bmN0aW9uKCkge1xyXG4gIHRoaXMuYW5pbWF0aW9uSW5zdGFuY2UgJiYgdGhpcy5hbmltYXRpb25JbnN0YW5jZS5zdG9wKCk7XHJcbn07XHJcblxyXG51Q2hhcnRzLnByb3RvdHlwZS5hZGRFdmVudExpc3RlbmVyID0gZnVuY3Rpb24odHlwZSwgbGlzdGVuZXIpIHtcclxuICB0aGlzLnVldmVudC5hZGRFdmVudExpc3RlbmVyKHR5cGUsIGxpc3RlbmVyKTtcclxufTtcclxuXHJcbnVDaGFydHMucHJvdG90eXBlLmRlbEV2ZW50TGlzdGVuZXIgPSBmdW5jdGlvbih0eXBlKSB7XHJcbiAgdGhpcy51ZXZlbnQuZGVsRXZlbnRMaXN0ZW5lcih0eXBlKTtcclxufTtcclxuXHJcbnVDaGFydHMucHJvdG90eXBlLmdldEN1cnJlbnREYXRhSW5kZXggPSBmdW5jdGlvbihlKSB7XHJcbiAgdmFyIHRvdWNoZXMgPSBudWxsO1xyXG4gIGlmIChlLmNoYW5nZWRUb3VjaGVzKSB7XHJcbiAgICB0b3VjaGVzID0gZS5jaGFuZ2VkVG91Y2hlc1swXTtcclxuICB9IGVsc2Uge1xyXG4gICAgdG91Y2hlcyA9IGUubXAuY2hhbmdlZFRvdWNoZXNbMF07XHJcbiAgfVxyXG4gIGlmICh0b3VjaGVzKSB7XHJcbiAgICBsZXQgX3RvdWNoZXMkID0gZ2V0VG91Y2hlcyh0b3VjaGVzLCB0aGlzLm9wdHMsIGUpO1xyXG4gICAgaWYgKHRoaXMub3B0cy50eXBlID09PSAncGllJyB8fCB0aGlzLm9wdHMudHlwZSA9PT0gJ3JpbmcnKSB7XHJcbiAgICAgIHJldHVybiBmaW5kUGllQ2hhcnRDdXJyZW50SW5kZXgoe1xyXG4gICAgICAgIHg6IF90b3VjaGVzJC54LFxyXG4gICAgICAgIHk6IF90b3VjaGVzJC55XHJcbiAgICAgIH0sIHRoaXMub3B0cy5jaGFydERhdGEucGllRGF0YSwgdGhpcy5vcHRzKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5vcHRzLnR5cGUgPT09ICdyb3NlJykge1xyXG4gICAgICByZXR1cm4gZmluZFJvc2VDaGFydEN1cnJlbnRJbmRleCh7XHJcbiAgICAgICAgeDogX3RvdWNoZXMkLngsXHJcbiAgICAgICAgeTogX3RvdWNoZXMkLnlcclxuICAgICAgfSwgdGhpcy5vcHRzLmNoYXJ0RGF0YS5waWVEYXRhLCB0aGlzLm9wdHMpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLm9wdHMudHlwZSA9PT0gJ3JhZGFyJykge1xyXG4gICAgICByZXR1cm4gZmluZFJhZGFyQ2hhcnRDdXJyZW50SW5kZXgoe1xyXG4gICAgICAgIHg6IF90b3VjaGVzJC54LFxyXG4gICAgICAgIHk6IF90b3VjaGVzJC55XHJcbiAgICAgIH0sIHRoaXMub3B0cy5jaGFydERhdGEucmFkYXJEYXRhLCB0aGlzLm9wdHMuY2F0ZWdvcmllcy5sZW5ndGgpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLm9wdHMudHlwZSA9PT0gJ2Z1bm5lbCcpIHtcclxuICAgICAgcmV0dXJuIGZpbmRGdW5uZWxDaGFydEN1cnJlbnRJbmRleCh7XHJcbiAgICAgICAgeDogX3RvdWNoZXMkLngsXHJcbiAgICAgICAgeTogX3RvdWNoZXMkLnlcclxuICAgICAgfSwgdGhpcy5vcHRzLmNoYXJ0RGF0YS5mdW5uZWxEYXRhKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5vcHRzLnR5cGUgPT09ICdtYXAnKSB7XHJcbiAgICAgIHJldHVybiBmaW5kTWFwQ2hhcnRDdXJyZW50SW5kZXgoe1xyXG4gICAgICAgIHg6IF90b3VjaGVzJC54LFxyXG4gICAgICAgIHk6IF90b3VjaGVzJC55XHJcbiAgICAgIH0sIHRoaXMub3B0cyk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMub3B0cy50eXBlID09PSAnd29yZCcpIHtcclxuICAgICAgcmV0dXJuIGZpbmRXb3JkQ2hhcnRDdXJyZW50SW5kZXgoe1xyXG4gICAgICAgIHg6IF90b3VjaGVzJC54LFxyXG4gICAgICAgIHk6IF90b3VjaGVzJC55XHJcbiAgICAgIH0sIHRoaXMub3B0cy5jaGFydERhdGEud29yZENsb3VkRGF0YSk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMub3B0cy50eXBlID09PSAnYmFyJykge1xyXG4gICAgICByZXR1cm4gZmluZEJhckNoYXJ0Q3VycmVudEluZGV4KHtcclxuICAgICAgICB4OiBfdG91Y2hlcyQueCxcclxuICAgICAgICB5OiBfdG91Y2hlcyQueVxyXG4gICAgICB9LCB0aGlzLm9wdHMuY2hhcnREYXRhLmNhbFBvaW50cywgdGhpcy5vcHRzLCB0aGlzLmNvbmZpZywgTWF0aC5hYnModGhpcy5zY3JvbGxPcHRpb24uY3VycmVudE9mZnNldCkpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGZpbmRDdXJyZW50SW5kZXgoe1xyXG4gICAgICAgIHg6IF90b3VjaGVzJC54LFxyXG4gICAgICAgIHk6IF90b3VjaGVzJC55XHJcbiAgICAgIH0sIHRoaXMub3B0cy5jaGFydERhdGEuY2FsUG9pbnRzLCB0aGlzLm9wdHMsIHRoaXMuY29uZmlnLCBNYXRoLmFicyh0aGlzLnNjcm9sbE9wdGlvbi5jdXJyZW50T2Zmc2V0KSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiAtMTtcclxufTtcclxuXHJcbnVDaGFydHMucHJvdG90eXBlLmdldExlZ2VuZERhdGFJbmRleCA9IGZ1bmN0aW9uKGUpIHtcclxuICB2YXIgdG91Y2hlcyA9IG51bGw7XHJcbiAgaWYgKGUuY2hhbmdlZFRvdWNoZXMpIHtcclxuICAgIHRvdWNoZXMgPSBlLmNoYW5nZWRUb3VjaGVzWzBdO1xyXG4gIH0gZWxzZSB7XHJcbiAgICB0b3VjaGVzID0gZS5tcC5jaGFuZ2VkVG91Y2hlc1swXTtcclxuICB9XHJcbiAgaWYgKHRvdWNoZXMpIHtcclxuICAgIGxldCBfdG91Y2hlcyQgPSBnZXRUb3VjaGVzKHRvdWNoZXMsIHRoaXMub3B0cywgZSk7XHJcbiAgICByZXR1cm4gZmluZExlZ2VuZEluZGV4KHtcclxuICAgICAgeDogX3RvdWNoZXMkLngsXHJcbiAgICAgIHk6IF90b3VjaGVzJC55XHJcbiAgICB9LCB0aGlzLm9wdHMuY2hhcnREYXRhLmxlZ2VuZERhdGEpO1xyXG4gIH1cclxuICByZXR1cm4gLTE7XHJcbn07XHJcblxyXG51Q2hhcnRzLnByb3RvdHlwZS50b3VjaExlZ2VuZCA9IGZ1bmN0aW9uKGUpIHtcclxuICB2YXIgb3B0aW9uID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiB7fTtcclxuICB2YXIgdG91Y2hlcyA9IG51bGw7XHJcbiAgaWYgKGUuY2hhbmdlZFRvdWNoZXMpIHtcclxuICAgIHRvdWNoZXMgPSBlLmNoYW5nZWRUb3VjaGVzWzBdO1xyXG4gIH0gZWxzZSB7XHJcbiAgICB0b3VjaGVzID0gZS5tcC5jaGFuZ2VkVG91Y2hlc1swXTtcclxuICB9XHJcbiAgaWYgKHRvdWNoZXMpIHtcclxuICAgIHZhciBfdG91Y2hlcyQgPSBnZXRUb3VjaGVzKHRvdWNoZXMsIHRoaXMub3B0cywgZSk7XHJcbiAgICB2YXIgaW5kZXggPSB0aGlzLmdldExlZ2VuZERhdGFJbmRleChlKTtcclxuICAgIGlmIChpbmRleCA+PSAwKSB7XHJcbiAgICAgIGlmICh0aGlzLm9wdHMudHlwZSA9PSAnY2FuZGxlJykge1xyXG4gICAgICAgIHRoaXMub3B0cy5zZXJpZXNNQVtpbmRleF0uc2hvdyA9ICF0aGlzLm9wdHMuc2VyaWVzTUFbaW5kZXhdLnNob3c7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5vcHRzLnNlcmllc1tpbmRleF0uc2hvdyA9ICF0aGlzLm9wdHMuc2VyaWVzW2luZGV4XS5zaG93O1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMub3B0cy5hbmltYXRpb24gPSBvcHRpb24uYW5pbWF0aW9uID8gdHJ1ZSA6IGZhbHNlO1xyXG4gICAgICB0aGlzLm9wdHMuX3Njcm9sbERpc3RhbmNlXyA9IHRoaXMuc2Nyb2xsT3B0aW9uLmN1cnJlbnRPZmZzZXQ7XHJcbiAgICAgIGRyYXdDaGFydHMuY2FsbCh0aGlzLCB0aGlzLm9wdHMudHlwZSwgdGhpcy5vcHRzLCB0aGlzLmNvbmZpZywgdGhpcy5jb250ZXh0KTtcclxuICAgIH1cclxuICB9XHJcblxyXG59O1xyXG5cclxudUNoYXJ0cy5wcm90b3R5cGUuc2hvd1Rvb2xUaXAgPSBmdW5jdGlvbihlKSB7XHJcbiAgdmFyIG9wdGlvbiA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDoge307XHJcbiAgdmFyIHRvdWNoZXMgPSBudWxsO1xyXG4gIGlmIChlLmNoYW5nZWRUb3VjaGVzKSB7XHJcbiAgICB0b3VjaGVzID0gZS5jaGFuZ2VkVG91Y2hlc1swXTtcclxuICB9IGVsc2Uge1xyXG4gICAgdG91Y2hlcyA9IGUubXAuY2hhbmdlZFRvdWNoZXNbMF07XHJcbiAgfVxyXG4gIGlmICghdG91Y2hlcykge1xyXG4gICAgY29uc29sZS5sb2coXCJbdUNoYXJ0c10g5pyq6I635Y+W5YiwZXZlbnTlnZDmoIfkv6Hmga9cIik7XHJcbiAgfVxyXG4gIHZhciBfdG91Y2hlcyQgPSBnZXRUb3VjaGVzKHRvdWNoZXMsIHRoaXMub3B0cywgZSk7XHJcbiAgdmFyIGN1cnJlbnRPZmZzZXQgPSB0aGlzLnNjcm9sbE9wdGlvbi5jdXJyZW50T2Zmc2V0O1xyXG4gIHZhciBvcHRzID0gYXNzaWduKHt9LCB0aGlzLm9wdHMsIHtcclxuICAgIF9zY3JvbGxEaXN0YW5jZV86IGN1cnJlbnRPZmZzZXQsXHJcbiAgICBhbmltYXRpb246IGZhbHNlXHJcbiAgfSk7XHJcbiAgaWYgKHRoaXMub3B0cy50eXBlID09PSAnbGluZScgfHwgdGhpcy5vcHRzLnR5cGUgPT09ICdhcmVhJyB8fCB0aGlzLm9wdHMudHlwZSA9PT0gJ2NvbHVtbicgfHwgdGhpcy5vcHRzLnR5cGUgPT09ICdzY2F0dGVyJyB8fCB0aGlzLm9wdHMudHlwZSA9PT0gJ2J1YmJsZScpIHtcclxuICAgIHZhciBjdXJyZW50ID0gdGhpcy5nZXRDdXJyZW50RGF0YUluZGV4KGUpO1xyXG4gICAgdmFyIGluZGV4ID0gb3B0aW9uLmluZGV4ID09IHVuZGVmaW5lZCA/IGN1cnJlbnQuaW5kZXggOiBvcHRpb24uaW5kZXg7XHJcbiAgICBpZiAoaW5kZXggPiAtMSB8fCBpbmRleC5sZW5ndGg+MCkge1xyXG4gICAgICB2YXIgc2VyaWVzRGF0YSA9IGdldFNlcmllc0RhdGFJdGVtKHRoaXMub3B0cy5zZXJpZXMsIGluZGV4LCBjdXJyZW50Lmdyb3VwKTtcclxuICAgICAgaWYgKHNlcmllc0RhdGEubGVuZ3RoICE9PSAwKSB7XHJcbiAgICAgICAgdmFyIF9nZXRUb29sVGlwRGF0YSA9IGdldFRvb2xUaXBEYXRhKHNlcmllc0RhdGEsIHRoaXMub3B0cywgaW5kZXgsIGN1cnJlbnQuZ3JvdXAsIHRoaXMub3B0cy5jYXRlZ29yaWVzLCBvcHRpb24pLFxyXG4gICAgICAgICAgdGV4dExpc3QgPSBfZ2V0VG9vbFRpcERhdGEudGV4dExpc3QsXHJcbiAgICAgICAgICBvZmZzZXQgPSBfZ2V0VG9vbFRpcERhdGEub2Zmc2V0O1xyXG4gICAgICAgIG9mZnNldC55ID0gX3RvdWNoZXMkLnk7XHJcbiAgICAgICAgb3B0cy50b29sdGlwID0ge1xyXG4gICAgICAgICAgdGV4dExpc3Q6IG9wdGlvbi50ZXh0TGlzdCAhPT0gdW5kZWZpbmVkID8gb3B0aW9uLnRleHRMaXN0IDogdGV4dExpc3QsXHJcbiAgICAgICAgICBvZmZzZXQ6IG9wdGlvbi5vZmZzZXQgIT09IHVuZGVmaW5lZCA/IG9wdGlvbi5vZmZzZXQgOiBvZmZzZXQsXHJcbiAgICAgICAgICBvcHRpb246IG9wdGlvbixcclxuICAgICAgICAgIGluZGV4OiBpbmRleFxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGRyYXdDaGFydHMuY2FsbCh0aGlzLCBvcHRzLnR5cGUsIG9wdHMsIHRoaXMuY29uZmlnLCB0aGlzLmNvbnRleHQpO1xyXG4gIH1cclxuICBpZiAodGhpcy5vcHRzLnR5cGUgPT09ICdtb3VudCcpIHtcclxuICAgIHZhciBpbmRleCA9IG9wdGlvbi5pbmRleCA9PSB1bmRlZmluZWQgPyB0aGlzLmdldEN1cnJlbnREYXRhSW5kZXgoZSkuaW5kZXggOiBvcHRpb24uaW5kZXg7XHJcbiAgICBpZiAoaW5kZXggPiAtMSkge1xyXG4gICAgICB2YXIgb3B0cyA9IGFzc2lnbih7fSwgdGhpcy5vcHRzLCB7YW5pbWF0aW9uOiBmYWxzZX0pO1xyXG4gICAgICB2YXIgc2VyaWVzRGF0YSA9IGFzc2lnbih7fSwgb3B0cy5fc2VyaWVzX1tpbmRleF0pO1xyXG4gICAgICB2YXIgdGV4dExpc3QgPSBbe1xyXG4gICAgICAgIHRleHQ6IG9wdGlvbi5mb3JtYXR0ZXIgPyBvcHRpb24uZm9ybWF0dGVyKHNlcmllc0RhdGEsIHVuZGVmaW5lZCwgaW5kZXgsIG9wdHMpIDogc2VyaWVzRGF0YS5uYW1lICsgJzogJyArIHNlcmllc0RhdGEuZGF0YSxcclxuICAgICAgICBjb2xvcjogc2VyaWVzRGF0YS5jb2xvclxyXG4gICAgICB9XTtcclxuICAgICAgdmFyIG9mZnNldCA9IHtcclxuICAgICAgICB4OiBvcHRzLmNoYXJ0RGF0YS5jYWxQb2ludHNbaW5kZXhdLngsXHJcbiAgICAgICAgeTogX3RvdWNoZXMkLnlcclxuICAgICAgfTtcclxuICAgICAgb3B0cy50b29sdGlwID0ge1xyXG4gICAgICAgIHRleHRMaXN0OiBvcHRpb24udGV4dExpc3QgPyBvcHRpb24udGV4dExpc3QgOiB0ZXh0TGlzdCxcclxuICAgICAgICBvZmZzZXQ6IG9wdGlvbi5vZmZzZXQgIT09IHVuZGVmaW5lZCA/IG9wdGlvbi5vZmZzZXQgOiBvZmZzZXQsXHJcbiAgICAgICAgb3B0aW9uOiBvcHRpb24sXHJcbiAgICAgICAgaW5kZXg6IGluZGV4XHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGRyYXdDaGFydHMuY2FsbCh0aGlzLCBvcHRzLnR5cGUsIG9wdHMsIHRoaXMuY29uZmlnLCB0aGlzLmNvbnRleHQpO1xyXG4gIH1cclxuICBpZiAodGhpcy5vcHRzLnR5cGUgPT09ICdiYXInKSB7XHJcbiAgICB2YXIgY3VycmVudCA9IHRoaXMuZ2V0Q3VycmVudERhdGFJbmRleChlKTtcclxuICAgIHZhciBpbmRleCA9IG9wdGlvbi5pbmRleCA9PSB1bmRlZmluZWQgPyBjdXJyZW50LmluZGV4IDogb3B0aW9uLmluZGV4O1xyXG4gICAgaWYgKGluZGV4ID4gLTEgfHwgaW5kZXgubGVuZ3RoPjApIHtcclxuICAgICAgdmFyIHNlcmllc0RhdGEgPSBnZXRTZXJpZXNEYXRhSXRlbSh0aGlzLm9wdHMuc2VyaWVzLCBpbmRleCwgY3VycmVudC5ncm91cCk7XHJcbiAgICAgIGlmIChzZXJpZXNEYXRhLmxlbmd0aCAhPT0gMCkge1xyXG4gICAgICAgIHZhciBfZ2V0VG9vbFRpcERhdGEgPSBnZXRUb29sVGlwRGF0YShzZXJpZXNEYXRhLCB0aGlzLm9wdHMsIGluZGV4LCBjdXJyZW50Lmdyb3VwLCB0aGlzLm9wdHMuY2F0ZWdvcmllcywgb3B0aW9uKSxcclxuICAgICAgICAgIHRleHRMaXN0ID0gX2dldFRvb2xUaXBEYXRhLnRleHRMaXN0LFxyXG4gICAgICAgICAgb2Zmc2V0ID0gX2dldFRvb2xUaXBEYXRhLm9mZnNldDtcclxuICAgICAgICBvZmZzZXQueCA9IF90b3VjaGVzJC54O1xyXG4gICAgICAgIG9wdHMudG9vbHRpcCA9IHtcclxuICAgICAgICAgIHRleHRMaXN0OiBvcHRpb24udGV4dExpc3QgIT09IHVuZGVmaW5lZCA/IG9wdGlvbi50ZXh0TGlzdCA6IHRleHRMaXN0LFxyXG4gICAgICAgICAgb2Zmc2V0OiBvcHRpb24ub2Zmc2V0ICE9PSB1bmRlZmluZWQgPyBvcHRpb24ub2Zmc2V0IDogb2Zmc2V0LFxyXG4gICAgICAgICAgb3B0aW9uOiBvcHRpb24sXHJcbiAgICAgICAgICBpbmRleDogaW5kZXhcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBkcmF3Q2hhcnRzLmNhbGwodGhpcywgb3B0cy50eXBlLCBvcHRzLCB0aGlzLmNvbmZpZywgdGhpcy5jb250ZXh0KTtcclxuICB9XHJcbiAgaWYgKHRoaXMub3B0cy50eXBlID09PSAnbWl4Jykge1xyXG4gICAgdmFyIGN1cnJlbnQgPSB0aGlzLmdldEN1cnJlbnREYXRhSW5kZXgoZSk7XHJcbiAgICB2YXIgaW5kZXggPSBvcHRpb24uaW5kZXggPT0gdW5kZWZpbmVkID8gY3VycmVudC5pbmRleCA6IG9wdGlvbi5pbmRleDtcclxuICAgIGlmIChpbmRleCA+IC0xKSB7XHJcbiAgICAgIHZhciBjdXJyZW50T2Zmc2V0ID0gdGhpcy5zY3JvbGxPcHRpb24uY3VycmVudE9mZnNldDtcclxuICAgICAgdmFyIG9wdHMgPSBhc3NpZ24oe30sIHRoaXMub3B0cywge1xyXG4gICAgICAgIF9zY3JvbGxEaXN0YW5jZV86IGN1cnJlbnRPZmZzZXQsXHJcbiAgICAgICAgYW5pbWF0aW9uOiBmYWxzZVxyXG4gICAgICB9KTtcclxuICAgICAgdmFyIHNlcmllc0RhdGEgPSBnZXRTZXJpZXNEYXRhSXRlbSh0aGlzLm9wdHMuc2VyaWVzLCBpbmRleCk7XHJcbiAgICAgIGlmIChzZXJpZXNEYXRhLmxlbmd0aCAhPT0gMCkge1xyXG4gICAgICAgIHZhciBfZ2V0TWl4VG9vbFRpcERhdGEgPSBnZXRNaXhUb29sVGlwRGF0YShzZXJpZXNEYXRhLCB0aGlzLm9wdHMsIGluZGV4LCB0aGlzLm9wdHMuY2F0ZWdvcmllcywgb3B0aW9uKSxcclxuICAgICAgICAgIHRleHRMaXN0ID0gX2dldE1peFRvb2xUaXBEYXRhLnRleHRMaXN0LFxyXG4gICAgICAgICAgb2Zmc2V0ID0gX2dldE1peFRvb2xUaXBEYXRhLm9mZnNldDtcclxuICAgICAgICBvZmZzZXQueSA9IF90b3VjaGVzJC55O1xyXG4gICAgICAgIG9wdHMudG9vbHRpcCA9IHtcclxuICAgICAgICAgIHRleHRMaXN0OiBvcHRpb24udGV4dExpc3QgPyBvcHRpb24udGV4dExpc3QgOiB0ZXh0TGlzdCxcclxuICAgICAgICAgIG9mZnNldDogb3B0aW9uLm9mZnNldCAhPT0gdW5kZWZpbmVkID8gb3B0aW9uLm9mZnNldCA6IG9mZnNldCxcclxuICAgICAgICAgIG9wdGlvbjogb3B0aW9uLFxyXG4gICAgICAgICAgaW5kZXg6IGluZGV4XHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgZHJhd0NoYXJ0cy5jYWxsKHRoaXMsIG9wdHMudHlwZSwgb3B0cywgdGhpcy5jb25maWcsIHRoaXMuY29udGV4dCk7XHJcbiAgfVxyXG4gIGlmICh0aGlzLm9wdHMudHlwZSA9PT0gJ2NhbmRsZScpIHtcclxuICAgIHZhciBjdXJyZW50ID0gdGhpcy5nZXRDdXJyZW50RGF0YUluZGV4KGUpO1xyXG4gICAgdmFyIGluZGV4ID0gb3B0aW9uLmluZGV4ID09IHVuZGVmaW5lZCA/IGN1cnJlbnQuaW5kZXggOiBvcHRpb24uaW5kZXg7XHJcbiAgICBpZiAoaW5kZXggPiAtMSkge1xyXG4gICAgICB2YXIgY3VycmVudE9mZnNldCA9IHRoaXMuc2Nyb2xsT3B0aW9uLmN1cnJlbnRPZmZzZXQ7XHJcbiAgICAgIHZhciBvcHRzID0gYXNzaWduKHt9LCB0aGlzLm9wdHMsIHtcclxuICAgICAgICBfc2Nyb2xsRGlzdGFuY2VfOiBjdXJyZW50T2Zmc2V0LFxyXG4gICAgICAgIGFuaW1hdGlvbjogZmFsc2VcclxuICAgICAgfSk7XHJcbiAgICAgIHZhciBzZXJpZXNEYXRhID0gZ2V0U2VyaWVzRGF0YUl0ZW0odGhpcy5vcHRzLnNlcmllcywgaW5kZXgpO1xyXG4gICAgICBpZiAoc2VyaWVzRGF0YS5sZW5ndGggIT09IDApIHtcclxuICAgICAgICB2YXIgX2dldFRvb2xUaXBEYXRhID0gZ2V0Q2FuZGxlVG9vbFRpcERhdGEodGhpcy5vcHRzLnNlcmllc1swXS5kYXRhLCBzZXJpZXNEYXRhLCB0aGlzLm9wdHMsIGluZGV4LCB0aGlzLm9wdHMuY2F0ZWdvcmllcywgdGhpcy5vcHRzLmV4dHJhLmNhbmRsZSwgb3B0aW9uKSxcclxuICAgICAgICAgIHRleHRMaXN0ID0gX2dldFRvb2xUaXBEYXRhLnRleHRMaXN0LFxyXG4gICAgICAgICAgb2Zmc2V0ID0gX2dldFRvb2xUaXBEYXRhLm9mZnNldDtcclxuICAgICAgICBvZmZzZXQueSA9IF90b3VjaGVzJC55O1xyXG4gICAgICAgIG9wdHMudG9vbHRpcCA9IHtcclxuICAgICAgICAgIHRleHRMaXN0OiBvcHRpb24udGV4dExpc3QgPyBvcHRpb24udGV4dExpc3QgOiB0ZXh0TGlzdCxcclxuICAgICAgICAgIG9mZnNldDogb3B0aW9uLm9mZnNldCAhPT0gdW5kZWZpbmVkID8gb3B0aW9uLm9mZnNldCA6IG9mZnNldCxcclxuICAgICAgICAgIG9wdGlvbjogb3B0aW9uLFxyXG4gICAgICAgICAgaW5kZXg6IGluZGV4XHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgZHJhd0NoYXJ0cy5jYWxsKHRoaXMsIG9wdHMudHlwZSwgb3B0cywgdGhpcy5jb25maWcsIHRoaXMuY29udGV4dCk7XHJcbiAgfVxyXG4gIGlmICh0aGlzLm9wdHMudHlwZSA9PT0gJ3BpZScgfHwgdGhpcy5vcHRzLnR5cGUgPT09ICdyaW5nJyB8fCB0aGlzLm9wdHMudHlwZSA9PT0gJ3Jvc2UnIHx8IHRoaXMub3B0cy50eXBlID09PSAnZnVubmVsJykge1xyXG4gICAgdmFyIGluZGV4ID0gb3B0aW9uLmluZGV4ID09IHVuZGVmaW5lZCA/IHRoaXMuZ2V0Q3VycmVudERhdGFJbmRleChlKSA6IG9wdGlvbi5pbmRleDtcclxuICAgIGlmIChpbmRleCA+IC0xKSB7XHJcbiAgICAgIHZhciBvcHRzID0gYXNzaWduKHt9LCB0aGlzLm9wdHMsIHthbmltYXRpb246IGZhbHNlfSk7XHJcbiAgICAgIHZhciBzZXJpZXNEYXRhID0gYXNzaWduKHt9LCBvcHRzLl9zZXJpZXNfW2luZGV4XSk7XHJcbiAgICAgIHZhciB0ZXh0TGlzdCA9IFt7XHJcbiAgICAgICAgdGV4dDogb3B0aW9uLmZvcm1hdHRlciA/IG9wdGlvbi5mb3JtYXR0ZXIoc2VyaWVzRGF0YSwgdW5kZWZpbmVkLCBpbmRleCwgb3B0cykgOiBzZXJpZXNEYXRhLm5hbWUgKyAnOiAnICsgc2VyaWVzRGF0YS5kYXRhLFxyXG4gICAgICAgIGNvbG9yOiBzZXJpZXNEYXRhLmNvbG9yXHJcbiAgICAgIH1dO1xyXG4gICAgICB2YXIgb2Zmc2V0ID0ge1xyXG4gICAgICAgIHg6IF90b3VjaGVzJC54LFxyXG4gICAgICAgIHk6IF90b3VjaGVzJC55XHJcbiAgICAgIH07XHJcbiAgICAgIG9wdHMudG9vbHRpcCA9IHtcclxuICAgICAgICB0ZXh0TGlzdDogb3B0aW9uLnRleHRMaXN0ID8gb3B0aW9uLnRleHRMaXN0IDogdGV4dExpc3QsXHJcbiAgICAgICAgb2Zmc2V0OiBvcHRpb24ub2Zmc2V0ICE9PSB1bmRlZmluZWQgPyBvcHRpb24ub2Zmc2V0IDogb2Zmc2V0LFxyXG4gICAgICAgIG9wdGlvbjogb3B0aW9uLFxyXG4gICAgICAgIGluZGV4OiBpbmRleFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgZHJhd0NoYXJ0cy5jYWxsKHRoaXMsIG9wdHMudHlwZSwgb3B0cywgdGhpcy5jb25maWcsIHRoaXMuY29udGV4dCk7XHJcbiAgfVxyXG4gIGlmICh0aGlzLm9wdHMudHlwZSA9PT0gJ21hcCcpIHtcclxuICAgIHZhciBpbmRleCA9IG9wdGlvbi5pbmRleCA9PSB1bmRlZmluZWQgPyB0aGlzLmdldEN1cnJlbnREYXRhSW5kZXgoZSkgOiBvcHRpb24uaW5kZXg7XHJcbiAgICBpZiAoaW5kZXggPiAtMSkge1xyXG4gICAgICB2YXIgb3B0cyA9IGFzc2lnbih7fSwgdGhpcy5vcHRzLCB7YW5pbWF0aW9uOiBmYWxzZX0pO1xyXG4gICAgICB2YXIgc2VyaWVzRGF0YSA9IGFzc2lnbih7fSwgdGhpcy5vcHRzLnNlcmllc1tpbmRleF0pO1xyXG4gICAgICBzZXJpZXNEYXRhLm5hbWUgPSBzZXJpZXNEYXRhLnByb3BlcnRpZXMubmFtZVxyXG4gICAgICB2YXIgdGV4dExpc3QgPSBbe1xyXG4gICAgICAgIHRleHQ6IG9wdGlvbi5mb3JtYXR0ZXIgPyBvcHRpb24uZm9ybWF0dGVyKHNlcmllc0RhdGEsIHVuZGVmaW5lZCwgaW5kZXgsIHRoaXMub3B0cykgOiBzZXJpZXNEYXRhLm5hbWUsXHJcbiAgICAgICAgY29sb3I6IHNlcmllc0RhdGEuY29sb3JcclxuICAgICAgfV07XHJcbiAgICAgIHZhciBvZmZzZXQgPSB7XHJcbiAgICAgICAgeDogX3RvdWNoZXMkLngsXHJcbiAgICAgICAgeTogX3RvdWNoZXMkLnlcclxuICAgICAgfTtcclxuICAgICAgb3B0cy50b29sdGlwID0ge1xyXG4gICAgICAgIHRleHRMaXN0OiBvcHRpb24udGV4dExpc3QgPyBvcHRpb24udGV4dExpc3QgOiB0ZXh0TGlzdCxcclxuICAgICAgICBvZmZzZXQ6IG9wdGlvbi5vZmZzZXQgIT09IHVuZGVmaW5lZCA/IG9wdGlvbi5vZmZzZXQgOiBvZmZzZXQsXHJcbiAgICAgICAgb3B0aW9uOiBvcHRpb24sXHJcbiAgICAgICAgaW5kZXg6IGluZGV4XHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBvcHRzLnVwZGF0ZURhdGEgPSBmYWxzZTtcclxuICAgIGRyYXdDaGFydHMuY2FsbCh0aGlzLCBvcHRzLnR5cGUsIG9wdHMsIHRoaXMuY29uZmlnLCB0aGlzLmNvbnRleHQpO1xyXG4gIH1cclxuICBpZiAodGhpcy5vcHRzLnR5cGUgPT09ICd3b3JkJykge1xyXG4gICAgdmFyIGluZGV4ID0gb3B0aW9uLmluZGV4ID09IHVuZGVmaW5lZCA/IHRoaXMuZ2V0Q3VycmVudERhdGFJbmRleChlKSA6IG9wdGlvbi5pbmRleDtcclxuICAgIGlmIChpbmRleCA+IC0xKSB7XHJcbiAgICAgIHZhciBvcHRzID0gYXNzaWduKHt9LCB0aGlzLm9wdHMsIHthbmltYXRpb246IGZhbHNlfSk7XHJcbiAgICAgIHZhciBzZXJpZXNEYXRhID0gYXNzaWduKHt9LCB0aGlzLm9wdHMuc2VyaWVzW2luZGV4XSk7XHJcbiAgICAgIHZhciB0ZXh0TGlzdCA9IFt7XHJcbiAgICAgICAgdGV4dDogb3B0aW9uLmZvcm1hdHRlciA/IG9wdGlvbi5mb3JtYXR0ZXIoc2VyaWVzRGF0YSwgdW5kZWZpbmVkLCBpbmRleCwgdGhpcy5vcHRzKSA6IHNlcmllc0RhdGEubmFtZSxcclxuICAgICAgICBjb2xvcjogc2VyaWVzRGF0YS5jb2xvclxyXG4gICAgICB9XTtcclxuICAgICAgdmFyIG9mZnNldCA9IHtcclxuICAgICAgICB4OiBfdG91Y2hlcyQueCxcclxuICAgICAgICB5OiBfdG91Y2hlcyQueVxyXG4gICAgICB9O1xyXG4gICAgICBvcHRzLnRvb2x0aXAgPSB7XHJcbiAgICAgICAgdGV4dExpc3Q6IG9wdGlvbi50ZXh0TGlzdCA/IG9wdGlvbi50ZXh0TGlzdCA6IHRleHRMaXN0LFxyXG4gICAgICAgIG9mZnNldDogb3B0aW9uLm9mZnNldCAhPT0gdW5kZWZpbmVkID8gb3B0aW9uLm9mZnNldCA6IG9mZnNldCxcclxuICAgICAgICBvcHRpb246IG9wdGlvbixcclxuICAgICAgICBpbmRleDogaW5kZXhcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIG9wdHMudXBkYXRlRGF0YSA9IGZhbHNlO1xyXG4gICAgZHJhd0NoYXJ0cy5jYWxsKHRoaXMsIG9wdHMudHlwZSwgb3B0cywgdGhpcy5jb25maWcsIHRoaXMuY29udGV4dCk7XHJcbiAgfVxyXG4gIGlmICh0aGlzLm9wdHMudHlwZSA9PT0gJ3JhZGFyJykge1xyXG4gICAgdmFyIGluZGV4ID0gb3B0aW9uLmluZGV4ID09IHVuZGVmaW5lZCA/IHRoaXMuZ2V0Q3VycmVudERhdGFJbmRleChlKSA6IG9wdGlvbi5pbmRleDtcclxuICAgIGlmIChpbmRleCA+IC0xKSB7XHJcbiAgICAgIHZhciBvcHRzID0gYXNzaWduKHt9LCB0aGlzLm9wdHMsIHthbmltYXRpb246IGZhbHNlfSk7XHJcbiAgICAgIHZhciBzZXJpZXNEYXRhID0gZ2V0U2VyaWVzRGF0YUl0ZW0odGhpcy5vcHRzLnNlcmllcywgaW5kZXgpO1xyXG4gICAgICBpZiAoc2VyaWVzRGF0YS5sZW5ndGggIT09IDApIHtcclxuICAgICAgICB2YXIgdGV4dExpc3QgPSBzZXJpZXNEYXRhLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgdGV4dDogb3B0aW9uLmZvcm1hdHRlciA/IG9wdGlvbi5mb3JtYXR0ZXIoaXRlbSwgdGhpcy5vcHRzLmNhdGVnb3JpZXNbaW5kZXhdLCBpbmRleCwgdGhpcy5vcHRzKSA6IGl0ZW0ubmFtZSArICc6ICcgKyBpdGVtLmRhdGEsXHJcbiAgICAgICAgICAgIGNvbG9yOiBpdGVtLmNvbG9yXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHZhciBvZmZzZXQgPSB7XHJcbiAgICAgICAgICB4OiBfdG91Y2hlcyQueCxcclxuICAgICAgICAgIHk6IF90b3VjaGVzJC55XHJcbiAgICAgICAgfTtcclxuICAgICAgICBvcHRzLnRvb2x0aXAgPSB7XHJcbiAgICAgICAgICB0ZXh0TGlzdDogb3B0aW9uLnRleHRMaXN0ID8gb3B0aW9uLnRleHRMaXN0IDogdGV4dExpc3QsXHJcbiAgICAgICAgICBvZmZzZXQ6IG9wdGlvbi5vZmZzZXQgIT09IHVuZGVmaW5lZCA/IG9wdGlvbi5vZmZzZXQgOiBvZmZzZXQsXHJcbiAgICAgICAgICBvcHRpb246IG9wdGlvbixcclxuICAgICAgICAgIGluZGV4OiBpbmRleFxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGRyYXdDaGFydHMuY2FsbCh0aGlzLCBvcHRzLnR5cGUsIG9wdHMsIHRoaXMuY29uZmlnLCB0aGlzLmNvbnRleHQpO1xyXG4gIH1cclxufTtcclxuXHJcbnVDaGFydHMucHJvdG90eXBlLnRyYW5zbGF0ZSA9IGZ1bmN0aW9uKGRpc3RhbmNlKSB7XHJcbiAgdGhpcy5zY3JvbGxPcHRpb24gPSB7XHJcbiAgICBjdXJyZW50T2Zmc2V0OiBkaXN0YW5jZSxcclxuICAgIHN0YXJ0VG91Y2hYOiBkaXN0YW5jZSxcclxuICAgIGRpc3RhbmNlOiAwLFxyXG4gICAgbGFzdE1vdmVUaW1lOiAwXHJcbiAgfTtcclxuICBsZXQgb3B0cyA9IGFzc2lnbih7fSwgdGhpcy5vcHRzLCB7XHJcbiAgICBfc2Nyb2xsRGlzdGFuY2VfOiBkaXN0YW5jZSxcclxuICAgIGFuaW1hdGlvbjogZmFsc2VcclxuICB9KTtcclxuICBkcmF3Q2hhcnRzLmNhbGwodGhpcywgdGhpcy5vcHRzLnR5cGUsIG9wdHMsIHRoaXMuY29uZmlnLCB0aGlzLmNvbnRleHQpO1xyXG59O1xyXG5cclxudUNoYXJ0cy5wcm90b3R5cGUuc2Nyb2xsU3RhcnQgPSBmdW5jdGlvbihlKSB7XHJcbiAgdmFyIHRvdWNoZXMgPSBudWxsO1xyXG4gIGlmIChlLmNoYW5nZWRUb3VjaGVzKSB7XHJcbiAgICB0b3VjaGVzID0gZS5jaGFuZ2VkVG91Y2hlc1swXTtcclxuICB9IGVsc2Uge1xyXG4gICAgdG91Y2hlcyA9IGUubXAuY2hhbmdlZFRvdWNoZXNbMF07XHJcbiAgfVxyXG4gIHZhciBfdG91Y2hlcyQgPSBnZXRUb3VjaGVzKHRvdWNoZXMsIHRoaXMub3B0cywgZSk7XHJcbiAgaWYgKHRvdWNoZXMgJiYgdGhpcy5vcHRzLmVuYWJsZVNjcm9sbCA9PT0gdHJ1ZSkge1xyXG4gICAgdGhpcy5zY3JvbGxPcHRpb24uc3RhcnRUb3VjaFggPSBfdG91Y2hlcyQueDtcclxuICB9XHJcbn07XHJcblxyXG51Q2hhcnRzLnByb3RvdHlwZS5zY3JvbGwgPSBmdW5jdGlvbihlKSB7XHJcbiAgaWYgKHRoaXMuc2Nyb2xsT3B0aW9uLmxhc3RNb3ZlVGltZSA9PT0gMCkge1xyXG4gICAgdGhpcy5zY3JvbGxPcHRpb24ubGFzdE1vdmVUaW1lID0gRGF0ZS5ub3coKTtcclxuICB9XHJcbiAgbGV0IExpbWl0ID0gdGhpcy5vcHRzLnRvdWNoTW92ZUxpbWl0IHx8IDYwO1xyXG4gIGxldCBjdXJyTW92ZVRpbWUgPSBEYXRlLm5vdygpO1xyXG4gIGxldCBkdXJhdGlvbiA9IGN1cnJNb3ZlVGltZSAtIHRoaXMuc2Nyb2xsT3B0aW9uLmxhc3RNb3ZlVGltZTtcclxuICBpZiAoZHVyYXRpb24gPCBNYXRoLmZsb29yKDEwMDAgLyBMaW1pdCkpIHJldHVybjtcclxuICBpZiAodGhpcy5zY3JvbGxPcHRpb24uc3RhcnRUb3VjaFggPT0gMCkgcmV0dXJuO1xyXG4gIHRoaXMuc2Nyb2xsT3B0aW9uLmxhc3RNb3ZlVGltZSA9IGN1cnJNb3ZlVGltZTtcclxuICB2YXIgdG91Y2hlcyA9IG51bGw7XHJcbiAgaWYgKGUuY2hhbmdlZFRvdWNoZXMpIHtcclxuICAgIHRvdWNoZXMgPSBlLmNoYW5nZWRUb3VjaGVzWzBdO1xyXG4gIH0gZWxzZSB7XHJcbiAgICB0b3VjaGVzID0gZS5tcC5jaGFuZ2VkVG91Y2hlc1swXTtcclxuICB9XHJcbiAgaWYgKHRvdWNoZXMgJiYgdGhpcy5vcHRzLmVuYWJsZVNjcm9sbCA9PT0gdHJ1ZSkge1xyXG4gICAgdmFyIF90b3VjaGVzJCA9IGdldFRvdWNoZXModG91Y2hlcywgdGhpcy5vcHRzLCBlKTtcclxuICAgIHZhciBfZGlzdGFuY2U7XHJcbiAgICBfZGlzdGFuY2UgPSBfdG91Y2hlcyQueCAtIHRoaXMuc2Nyb2xsT3B0aW9uLnN0YXJ0VG91Y2hYO1xyXG4gICAgdmFyIGN1cnJlbnRPZmZzZXQgPSB0aGlzLnNjcm9sbE9wdGlvbi5jdXJyZW50T2Zmc2V0O1xyXG4gICAgdmFyIHZhbGlkRGlzdGFuY2UgPSBjYWxWYWxpZERpc3RhbmNlKHRoaXMsIGN1cnJlbnRPZmZzZXQgKyBfZGlzdGFuY2UsIHRoaXMub3B0cy5jaGFydERhdGEsIHRoaXMuY29uZmlnLCB0aGlzLm9wdHMpO1xyXG4gICAgdGhpcy5zY3JvbGxPcHRpb24uZGlzdGFuY2UgPSBfZGlzdGFuY2UgPSB2YWxpZERpc3RhbmNlIC0gY3VycmVudE9mZnNldDtcclxuICAgIHZhciBvcHRzID0gYXNzaWduKHt9LCB0aGlzLm9wdHMsIHtcclxuICAgICAgX3Njcm9sbERpc3RhbmNlXzogY3VycmVudE9mZnNldCArIF9kaXN0YW5jZSxcclxuICAgICAgYW5pbWF0aW9uOiBmYWxzZVxyXG4gICAgfSk7XHJcblx0XHR0aGlzLm9wdHMgPSBvcHRzO1xyXG4gICAgZHJhd0NoYXJ0cy5jYWxsKHRoaXMsIG9wdHMudHlwZSwgb3B0cywgdGhpcy5jb25maWcsIHRoaXMuY29udGV4dCk7XHJcbiAgICByZXR1cm4gY3VycmVudE9mZnNldCArIF9kaXN0YW5jZTtcclxuICB9XHJcbn07XHJcblxyXG51Q2hhcnRzLnByb3RvdHlwZS5zY3JvbGxFbmQgPSBmdW5jdGlvbihlKSB7XHJcbiAgaWYgKHRoaXMub3B0cy5lbmFibGVTY3JvbGwgPT09IHRydWUpIHtcclxuICAgIHZhciBfc2Nyb2xsT3B0aW9uID0gdGhpcy5zY3JvbGxPcHRpb24sXHJcbiAgICAgIGN1cnJlbnRPZmZzZXQgPSBfc2Nyb2xsT3B0aW9uLmN1cnJlbnRPZmZzZXQsXHJcbiAgICAgIGRpc3RhbmNlID0gX3Njcm9sbE9wdGlvbi5kaXN0YW5jZTtcclxuICAgIHRoaXMuc2Nyb2xsT3B0aW9uLmN1cnJlbnRPZmZzZXQgPSBjdXJyZW50T2Zmc2V0ICsgZGlzdGFuY2U7XHJcbiAgICB0aGlzLnNjcm9sbE9wdGlvbi5kaXN0YW5jZSA9IDA7XHJcbiAgICB0aGlzLnNjcm9sbE9wdGlvbi5tb3ZlQ291bnQgPSAwO1xyXG4gIH1cclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IHVDaGFydHM7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///68\n");
 
 /***/ }),
-/* 74 */
+/* 69 */
 /*!**********************************************************************************************************!*\
   !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/js_sdk/u-charts/config-ucharts.js ***!
   \**********************************************************************************************************/
@@ -5451,10 +4430,10 @@
 /***/ (function(module, exports, __webpack_require__) {
 
 "use strict";
-eval("Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0; /*\r\n                                                                                                      * uCharts庐\r\n                                                                                                      * 楂樻�ц兘璺ㄥ钩鍙板浘琛ㄥ簱锛屾敮鎸丠5銆丄PP銆佸皬绋嬪簭锛堝井淇�/鏀粯瀹�/鐧惧害/澶存潯/QQ/360锛夈�乂ue銆乀aro绛夋敮鎸乧anvas鐨勬鏋跺钩鍙癨r\n                                                                                                      * Copyright (c) 2021 QIUN庐绉嬩簯 https://www.ucharts.cn All rights reserved.\r\n                                                                                                      * Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )\r\n                                                                                                      * 澶嶅埗浣跨敤璇蜂繚鐣欐湰娈垫敞閲婏紝鎰熻阿鏀寔寮�婧愶紒\r\n                                                                                                      * \r\n                                                                                                      * uCharts庐瀹樻柟缃戠珯\r\n                                                                                                      * https://www.uCharts.cn\r\n                                                                                                      * \r\n                                                                                                      * 寮�婧愬湴鍧�:\r\n                                                                                                      * https://gitee.com/uCharts/uCharts\r\n                                                                                                      * \r\n                                                                                                      * uni-app鎻掍欢甯傚満鍦板潃锛歕r\n                                                                                                      * http://ext.dcloud.net.cn/plugin?id=271\r\n                                                                                                      * \r\n                                                                                                      */\n\n// 涓婚棰滆壊閰嶇疆锛氬姣忎釜鍥捐〃绫诲瀷闇�瑕佷笉鍚屼富棰橈紝璇峰湪瀵瑰簲鍥捐〃绫诲瀷涓婃洿鏀筩olor灞炴�nvar color = ['#1890FF', '#91CB74', '#FAC858', '#EE6666', '#73C0DE', '#3CA272', '#FC8452', '#9A60B4', '#ea7ccc'];\n\n//浜嬩欢杞崲鍑芥暟锛屼富瑕佺敤浣滄牸寮忓寲x杞翠负鏃堕棿杞达紝鏍规嵁闇�姹傝嚜琛屼慨鏀筡nvar formatDateTime = function formatDateTime(timeStamp, returnType) {\n  var date = new Date();\n  date.setTime(timeStamp * 1000);\n  var y = date.getFullYear();\n  var m = date.getMonth() + 1;\n  m = m < 10 ? '0' + m : m;\n  var d = date.getDate();\n  d = d < 10 ? '0' + d : d;\n  var h = date.getHours();\n  h = h < 10 ? '0' + h : h;\n  var minute = date.getMinutes();\n  var second = date.getSeconds();\n  minute = minute < 10 ? '0' + minute : minute;\n  second = second < 10 ? '0' + second : second;\n  if (returnType == 'full') {return y + '-' + m + '-' + d + ' ' + h + ':' + minute + ':' + second;}\n  if (returnType == 'y-m-d') {return y + '-' + m + '-' + d;}\n  if (returnType == 'h:m') {return h + ':' + minute;}\n  if (returnType == 'h:m:s') {return h + ':' + minute + ':' + second;}\n  return [y, m, d, h, minute, second];\n};\n\nvar cfu = {\n  //demotype涓鸿嚜瀹氫箟鍥捐〃绫诲瀷锛屼竴鑸笉闇�瑕佽嚜瀹氫箟鍥捐〃绫诲瀷锛屽彧闇�瑕佹敼鏍硅妭鐐逛笂瀵瑰簲鐨勭被鍨嬪嵆鍙痋n  \"type\": [\"pie\", \"ring\", \"rose\", \"word\", \"funnel\", \"map\", \"arcbar\", \"line\", \"column\", \"bar\", \"area\", \"radar\", \"gauge\", \"candle\", \"mix\", \"tline\", \"tarea\", \"scatter\", \"bubble\", \"demotype\"],\n  \"range\": [\"楗肩姸鍥綷", \"鍦嗙幆鍥綷", \"鐜懓鍥綷", \"璇嶄簯鍥綷", \"婕忔枟鍥綷", \"鍦板浘\", \"鍦嗗姬杩涘害鏉", \"鎶樼嚎鍥綷", \"鏌辩姸鍥綷", \"鏉$姸鍥綷", \"鍖哄煙鍥綷", \"闆疯揪鍥綷", \"浠〃鐩榎", \"K绾垮浘\", \"娣峰悎鍥綷", \"鏃堕棿杞存姌绾縗", \"鏃堕棿杞村尯鍩焅", \"鏁g偣鍥綷", \"姘旀场鍥綷", \"鑷畾涔夌被鍨媆"],\n  //澧炲姞鑷畾涔夊浘琛ㄧ被鍨嬶紝濡傛灉闇�瑕乧ategories锛岃鍦ㄨ繖閲屽姞鍏ユ偍鐨勫浘琛ㄧ被鍨嬶紝渚嬪鏈�鍚庣殑\"demotype\"\n  //鑷畾涔夌被鍨嬫椂闇�瑕佹敞鎰廫"tline\",\"tarea\",\"scatter\",\"bubble\"绛夋椂闂磋酱锛堢煝閲弜杞达級绫诲浘琛紝娌℃湁categories锛屼笉闇�瑕佸姞鍏ategories\n  \"categories\": [\"line\", \"column\", \"bar\", \"area\", \"radar\", \"gauge\", \"candle\", \"mix\", \"demotype\"],\n  //instance涓哄疄渚嬪彉閲忔壙杞藉睘鎬э紝涓嶈鍒犻櫎\n  \"instance\": {},\n  //option涓簅pts鍙奺opts鎵胯浇灞炴�э紝涓嶈鍒犻櫎\n  \"option\": {},\n  //涓嬮潰鏄嚜瀹氫箟format閰嶇疆锛屽洜闄5绔鐨勫叾浠栫鏃犳硶閫氳繃props浼犻�掑嚱鏁帮紝鍙兘閫氳繃姝ゅ睘鎬у搴斾笅鏍囩殑鏂瑰紡鏉ユ浛鎹n  \"formatter\": {\n    \"yAxisDemo1\": function yAxisDemo1(val) {return val + '鍏�';},\n    \"yAxisDemo2\": function yAxisDemo2(val) {return val.toFixed(2);},\n    \"xAxisDemo1\": function xAxisDemo1(val) {return val + '骞�';},\n    \"xAxisDemo2\": function xAxisDemo2(val) {return formatDateTime(val, 'h:m');},\n    \"seriesDemo1\": function seriesDemo1(val) {return val + '鍏�';},\n    \"tooltipDemo1\": function tooltipDemo1(item, category, index, opts) {\n      if (index == 0) {\n        return '闅忎究鐢�' + item.data + '骞�';\n      } else {\n        return '鍏朵粬鎴戞病鏀�' + item.data + '澶�';\n      }\n    },\n    \"pieDemo\": function pieDemo(val, index, series) {\n      if (index !== undefined) {\n        return series[index].name + '锛�' + series[index].data + '鍏�';\n      }\n    } },\n\n  //杩欓噷婕旂ず浜嗚嚜瀹氫箟鎮ㄧ殑鍥捐〃绫诲瀷鐨刼ption锛屽彲浠ラ殢鎰忓懡鍚嶏紝涔嬪悗鍦ㄧ粍浠朵笂 type=\"demotype\" 鍚庯紝缁勪欢浼氳皟鐢ㄨ繖涓姳鎷彿閲岀殑option锛屽鏋滅粍浠朵笂杩樺瓨鍦╫pts鍙傛暟锛屼細灏哾emotype涓巓pts涓璷ption鍚堝苟鍚庢覆鏌撳浘琛ㄣ�俓n  \"demotype\": {\n    //鎴戣繖閲屾妸鏇茬嚎鍥惧綋鍋氫簡鑷畾涔夊浘琛ㄧ被鍨嬶紝鎮ㄥ彲浠ユ牴鎹渶瑕侀殢鎰忔寚瀹氱被鍨嬫垨閰嶇疆\n    \"type\": \"line\",\n    \"color\": color,\n    \"padding\": [15, 10, 0, 15],\n    \"xAxis\": {\n      \"disableGrid\": true },\n\n    \"yAxis\": {\n      \"gridType\": \"dash\",\n      \"dashLength\": 2 },\n\n    \"legend\": {},\n\n    \"extra\": {\n      \"line\": {\n        \"type\": \"curve\",\n        \"width\": 2 } } },\n\n\n\n  //涓嬮潰鏄嚜瀹氫箟閰嶇疆锛岃娣诲姞椤圭洰鎵�闇�鐨勯�氱敤閰嶇疆\n  \"pie\": {\n    \"type\": \"pie\",\n    \"color\": color,\n    \"padding\": [5, 5, 5, 5],\n    \"extra\": {\n      \"pie\": {\n        \"activeOpacity\": 0.5,\n        \"activeRadius\": 10,\n        \"offsetAngle\": 0,\n        \"labelWidth\": 15,\n        \"border\": true,\n        \"borderWidth\": 3,\n        \"borderColor\": \"#FFFFFF\" } } },\n\n\n\n  \"ring\": {\n    \"type\": \"ring\",\n    \"color\": color,\n    \"padding\": [5, 5, 5, 5],\n    \"rotate\": false,\n    \"dataLabel\": true,\n    \"legend\": {\n      \"show\": true,\n      \"position\": \"right\",\n      \"lineHeight\": 25 },\n\n    \"title\": {\n      \"name\": \"鏀剁泭鐜嘰",\n      \"fontSize\": 15,\n      \"color\": \"#666666\" },\n\n    \"subtitle\": {\n      \"name\": \"70%\",\n      \"fontSize\": 25,\n      \"color\": \"#7cb5ec\" },\n\n    \"extra\": {\n      \"ring\": {\n        \"ringWidth\": 30,\n        \"activeOpacity\": 0.5,\n        \"activeRadius\": 10,\n        \"offsetAngle\": 0,\n        \"labelWidth\": 15,\n        \"border\": true,\n        \"borderWidth\": 3,\n        \"borderColor\": \"#FFFFFF\" } } },\n\n\n\n  \"rose\": {\n    \"type\": \"rose\",\n    \"color\": color,\n    \"padding\": [5, 5, 5, 5],\n    \"legend\": {\n      \"show\": true,\n      \"position\": \"left\",\n      \"lineHeight\": 25 },\n\n    \"extra\": {\n      \"rose\": {\n        \"type\": \"area\",\n        \"minRadius\": 50,\n        \"activeOpacity\": 0.5,\n        \"activeRadius\": 10,\n        \"offsetAngle\": 0,\n        \"labelWidth\": 15,\n        \"border\": false,\n        \"borderWidth\": 2,\n        \"borderColor\": \"#FFFFFF\" } } },\n\n\n\n  \"word\": {\n    \"type\": \"word\",\n    \"color\": color,\n    \"extra\": {\n      \"word\": {\n        \"type\": \"normal\",\n        \"autoColors\": false } } },\n\n\n\n  \"funnel\": {\n    \"type\": \"funnel\",\n    \"color\": color,\n    \"padding\": [15, 15, 0, 15],\n    \"extra\": {\n      \"funnel\": {\n        \"activeOpacity\": 0.3,\n        \"activeWidth\": 10,\n        \"border\": true,\n        \"borderWidth\": 2,\n        \"borderColor\": \"#FFFFFF\",\n        \"fillOpacity\": 1,\n        \"labelAlign\": \"right\" } } },\n\n\n\n  \"map\": {\n    \"type\": \"map\",\n    \"color\": color,\n    \"padding\": [0, 0, 0, 0],\n    \"dataLabel\": true,\n    \"extra\": {\n      \"map\": {\n        \"border\": true,\n        \"borderWidth\": 1,\n        \"borderColor\": \"#666666\",\n        \"fillOpacity\": 0.6,\n        \"activeBorderColor\": \"#F04864\",\n        \"activeFillColor\": \"#FACC14\",\n        \"activeFillOpacity\": 1 } } },\n\n\n\n  \"arcbar\": {\n    \"type\": \"arcbar\",\n    \"color\": color,\n    \"title\": {\n      \"name\": \"鐧惧垎姣擻",\n      \"fontSize\": 25,\n      \"color\": \"#00FF00\" },\n\n    \"subtitle\": {\n      \"name\": \"榛樿鏍囬\",\n      \"fontSize\": 15,\n      \"color\": \"#666666\" },\n\n    \"extra\": {\n      \"arcbar\": {\n        \"type\": \"default\",\n        \"width\": 12,\n        \"backgroundColor\": \"#E9E9E9\",\n        \"startAngle\": 0.75,\n        \"endAngle\": 0.25,\n        \"gap\": 2 } } },\n\n\n\n  \"line\": {\n    \"type\": \"line\",\n    \"color\": color,\n    \"padding\": [15, 10, 0, 15],\n    \"xAxis\": {\n      \"disableGrid\": true },\n\n    \"yAxis\": {\n      \"gridType\": \"dash\",\n      \"dashLength\": 2 },\n\n    \"legend\": {},\n\n    \"extra\": {\n      \"line\": {\n        \"type\": \"straight\",\n        \"width\": 2 } } },\n\n\n\n  \"tline\": {\n    \"type\": \"line\",\n    \"color\": color,\n    \"padding\": [15, 10, 0, 15],\n    \"xAxis\": {\n      \"disableGrid\": false,\n      \"boundaryGap\": \"justify\" },\n\n    \"yAxis\": {\n      \"gridType\": \"dash\",\n      \"dashLength\": 2,\n      \"data\": [\n      {\n        \"min\": 0,\n        \"max\": 80 }] },\n\n\n\n    \"legend\": {},\n\n    \"extra\": {\n      \"line\": {\n        \"type\": \"curve\",\n        \"width\": 2 } } },\n\n\n\n  \"tarea\": {\n    \"type\": \"area\",\n    \"color\": color,\n    \"padding\": [15, 10, 0, 15],\n    \"xAxis\": {\n      \"disableGrid\": true,\n      \"boundaryGap\": \"justify\" },\n\n    \"yAxis\": {\n      \"gridType\": \"dash\",\n      \"dashLength\": 2,\n      \"data\": [\n      {\n        \"min\": 0,\n        \"max\": 80 }] },\n\n\n\n    \"legend\": {},\n\n    \"extra\": {\n      \"area\": {\n        \"type\": \"curve\",\n        \"opacity\": 0.2,\n        \"addLine\": true,\n        \"width\": 2,\n        \"gradient\": true } } },\n\n\n\n  \"column\": {\n    \"type\": \"column\",\n    \"color\": color,\n    \"padding\": [15, 15, 0, 5],\n    \"xAxis\": {\n      \"disableGrid\": true },\n\n    \"yAxis\": {\n      \"data\": [{ \"min\": 0 }] },\n\n    \"legend\": {},\n\n    \"extra\": {\n      \"column\": {\n        \"type\": \"group\",\n        \"width\": 30,\n        \"activeBgColor\": \"#000000\",\n        \"activeBgOpacity\": 0.08 } } },\n\n\n\n  \"bar\": {\n    \"type\": \"bar\",\n    \"color\": color,\n    \"padding\": [15, 30, 0, 5],\n    \"xAxis\": {\n      \"boundaryGap\": \"justify\",\n      \"disableGrid\": false,\n      \"min\": 0,\n      \"axisLine\": false },\n\n    \"yAxis\": {},\n\n    \"legend\": {},\n\n    \"extra\": {\n      \"bar\": {\n        \"type\": \"group\",\n        \"width\": 30,\n        \"meterBorde\": 1,\n        \"meterFillColor\": \"#FFFFFF\",\n        \"activeBgColor\": \"#000000\",\n        \"activeBgOpacity\": 0.08 } } },\n\n\n\n  \"area\": {\n    \"type\": \"area\",\n    \"color\": color,\n    \"padding\": [15, 15, 0, 15],\n    \"xAxis\": {\n      \"disableGrid\": true },\n\n    \"yAxis\": {\n      \"gridType\": \"dash\",\n      \"dashLength\": 2 },\n\n    \"legend\": {},\n\n    \"extra\": {\n      \"area\": {\n        \"type\": \"straight\",\n        \"opacity\": 0.2,\n        \"addLine\": true,\n        \"width\": 2,\n        \"gradient\": false } } },\n\n\n\n  \"radar\": {\n    \"type\": \"radar\",\n    \"color\": color,\n    \"padding\": [5, 5, 5, 5],\n    \"dataLabel\": false,\n    \"legend\": {\n      \"show\": true,\n      \"position\": \"right\",\n      \"lineHeight\": 25 },\n\n    \"extra\": {\n      \"radar\": {\n        \"gridType\": \"radar\",\n        \"gridColor\": \"#CCCCCC\",\n        \"gridCount\": 3,\n        \"opacity\": 0.2,\n        \"max\": 200 } } },\n\n\n\n  \"gauge\": {\n    \"type\": \"gauge\",\n    \"color\": color,\n    \"title\": {\n      \"name\": \"66Km/H\",\n      \"fontSize\": 25,\n      \"color\": \"#2fc25b\",\n      \"offsetY\": 50 },\n\n    \"subtitle\": {\n      \"name\": \"瀹炴椂閫熷害\",\n      \"fontSize\": 15,\n      \"color\": \"#1890ff\",\n      \"offsetY\": -50 },\n\n    \"extra\": {\n      \"gauge\": {\n        \"type\": \"default\",\n        \"width\": 30,\n        \"labelColor\": \"#666666\",\n        \"startAngle\": 0.75,\n        \"endAngle\": 0.25,\n        \"startNumber\": 0,\n        \"endNumber\": 100,\n        \"labelFormat\": \"\",\n        \"splitLine\": {\n          \"fixRadius\": 0,\n          \"splitNumber\": 10,\n          \"width\": 30,\n          \"color\": \"#FFFFFF\",\n          \"childNumber\": 5,\n          \"childWidth\": 12 },\n\n        \"pointer\": {\n          \"width\": 24,\n          \"color\": \"auto\" } } } },\n\n\n\n\n  \"candle\": {\n    \"type\": \"candle\",\n    \"color\": color,\n    \"padding\": [15, 15, 0, 15],\n    \"enableScroll\": true,\n    \"enableMarkLine\": true,\n    \"dataLabel\": false,\n    \"xAxis\": {\n      \"labelCount\": 4,\n      \"itemCount\": 40,\n      \"disableGrid\": true,\n      \"gridColor\": \"#CCCCCC\",\n      \"gridType\": \"solid\",\n      \"dashLength\": 4,\n      \"scrollShow\": true,\n      \"scrollAlign\": \"left\",\n      \"scrollColor\": \"#A6A6A6\",\n      \"scrollBackgroundColor\": \"#EFEBEF\" },\n\n    \"yAxis\": {},\n\n    \"legend\": {},\n\n    \"extra\": {\n      \"candle\": {\n        \"color\": {\n          \"upLine\": \"#f04864\",\n          \"upFill\": \"#f04864\",\n          \"downLine\": \"#2fc25b\",\n          \"downFill\": \"#2fc25b\" },\n\n        \"average\": {\n          \"show\": true,\n          \"name\": [\"MA5\", \"MA10\", \"MA30\"],\n          \"day\": [5, 10, 20],\n          \"color\": [\"#1890ff\", \"#2fc25b\", \"#facc14\"] } },\n\n\n      \"markLine\": {\n        \"type\": \"dash\",\n        \"dashLength\": 5,\n        \"data\": [\n        {\n          \"value\": 2150,\n          \"lineColor\": \"#f04864\",\n          \"showLabel\": true },\n\n        {\n          \"value\": 2350,\n          \"lineColor\": \"#f04864\",\n          \"showLabel\": true }] } } },\n\n\n\n\n\n  \"mix\": {\n    \"type\": \"mix\",\n    \"color\": color,\n    \"padding\": [15, 15, 0, 15],\n    \"xAxis\": {\n      \"disableGrid\": true },\n\n    \"yAxis\": {\n      \"disabled\": false,\n      \"disableGrid\": false,\n      \"splitNumber\": 5,\n      \"gridType\": \"dash\",\n      \"dashLength\": 4,\n      \"gridColor\": \"#CCCCCC\",\n      \"padding\": 10,\n      \"showTitle\": true,\n      \"data\": [] },\n\n    \"legend\": {},\n\n    \"extra\": {\n      \"mix\": {\n        \"column\": {\n          \"width\": 20 } } } },\n\n\n\n\n  \"scatter\": {\n    \"type\": \"scatter\",\n    \"color\": color,\n    \"padding\": [15, 15, 0, 15],\n    \"dataLabel\": false,\n    \"xAxis\": {\n      \"disableGrid\": false,\n      \"gridType\": \"dash\",\n      \"splitNumber\": 5,\n      \"boundaryGap\": \"justify\",\n      \"min\": 0 },\n\n    \"yAxis\": {\n      \"disableGrid\": false,\n      \"gridType\": \"dash\" },\n\n    \"legend\": {},\n\n    \"extra\": {\n      \"scatter\": {} } },\n\n\n\n  \"bubble\": {\n    \"type\": \"bubble\",\n    \"color\": color,\n    \"padding\": [15, 15, 0, 15],\n    \"xAxis\": {\n      \"disableGrid\": false,\n      \"gridType\": \"dash\",\n      \"splitNumber\": 5,\n      \"boundaryGap\": \"justify\",\n      \"min\": 0,\n      \"max\": 250 },\n\n    \"yAxis\": {\n      \"disableGrid\": false,\n      \"gridType\": \"dash\",\n      \"data\": [{\n        \"min\": 0,\n        \"max\": 150 }] },\n\n\n    \"legend\": {},\n\n    \"extra\": {\n      \"bubble\": {\n        \"border\": 2,\n        \"opacity\": 0.5 } } } };var _default =\n\n\n\n\n\ncfu;exports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9qc19zZGsvdS1jaGFydHMvY29uZmlnLXVjaGFydHMuanMiXSwibmFtZXMiOlsiY29sb3IiLCJmb3JtYXREYXRlVGltZSIsInRpbWVTdGFtcCIsInJldHVyblR5cGUiLCJkYXRlIiwiRGF0ZSIsInNldFRpbWUiLCJ5IiwiZ2V0RnVsbFllYXIiLCJtIiwiZ2V0TW9udGgiLCJkIiwiZ2V0RGF0ZSIsImgiLCJnZXRIb3VycyIsIm1pbnV0ZSIsImdldE1pbnV0ZXMiLCJzZWNvbmQiLCJnZXRTZWNvbmRzIiwiY2Z1IiwidmFsIiwidG9GaXhlZCIsIml0ZW0iLCJjYXRlZ29yeSIsImluZGV4Iiwib3B0cyIsImRhdGEiLCJzZXJpZXMiLCJ1bmRlZmluZWQiLCJuYW1lIl0sIm1hcHBpbmdzIjoid0ZBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWtCQTtBQUNBLElBQU1BLEtBQUssR0FBRyxDQUFDLFNBQUQsRUFBWSxTQUFaLEVBQXVCLFNBQXZCLEVBQWtDLFNBQWxDLEVBQTZDLFNBQTdDLEVBQXdELFNBQXhELEVBQW1FLFNBQW5FLEVBQThFLFNBQTlFLEVBQXlGLFNBQXpGLENBQWQ7O0FBRUE7QUFDQSxJQUFNQyxjQUFjLEdBQUcsU0FBakJBLGNBQWlCLENBQUNDLFNBQUQsRUFBWUMsVUFBWixFQUF5QjtBQUM5QyxNQUFJQyxJQUFJLEdBQUcsSUFBSUMsSUFBSixFQUFYO0FBQ0FELE1BQUksQ0FBQ0UsT0FBTCxDQUFhSixTQUFTLEdBQUcsSUFBekI7QUFDQSxNQUFJSyxDQUFDLEdBQUdILElBQUksQ0FBQ0ksV0FBTCxFQUFSO0FBQ0EsTUFBSUMsQ0FBQyxHQUFHTCxJQUFJLENBQUNNLFFBQUwsS0FBa0IsQ0FBMUI7QUFDQUQsR0FBQyxHQUFHQSxDQUFDLEdBQUcsRUFBSixHQUFVLE1BQU1BLENBQWhCLEdBQXFCQSxDQUF6QjtBQUNBLE1BQUlFLENBQUMsR0FBR1AsSUFBSSxDQUFDUSxPQUFMLEVBQVI7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QUFVLEVBaEJIOztBQWtCUCxhQUFTO0FBQ1IsaUJBQVcsRUFESCxFQWxCRixFQXBlQzs7OztBQTJmWCxZQUFTO0FBQ1IsWUFBUSxRQURBO0FBRVIsYUFBUUEsS0FGQTtBQUdSLGVBQVUsQ0FBQyxFQUFELEVBQUksRUFBSixFQUFPLENBQVAsRUFBUyxFQUFULENBSEY7QUFJTixhQUFTO0FBQ1AscUJBQWUsS0FEUjtBQUVQLGtCQUFXLE1BRko7QUFHUCxxQkFBYyxDQUhQO0FBSVAscUJBQWMsU0FKUDtBQUtQLGFBQU0sQ0FMQztBQU1QLGFBQU0sR0FOQyxFQUpIOztBQVlOLGFBQVM7QUFDUCxxQkFBZSxLQURSO0FBRVAsa0JBQVcsTUFGSjtBQUdQLGNBQU8sQ0FBQztBQUNOLGVBQU0sQ0FEQTtBQUVOLGVBQU0sR0FGQSxFQUFELENBSEEsRUFaSDs7O0FBb0JOLGNBQVUsRUFwQko7O0FBc0JOLGFBQVM7QUFDUixnQkFBVTtBQUNQLGtCQUFTLENBREY7QUFFUCxtQkFBVyxHQUZKLEVBREYsRUF0QkgsRUEzZkUsRUFBWixDOzs7Ozs7QUEwaEJlbUIsRyIsImZpbGUiOiI3NC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIHVDaGFydHPCrlxyXG4gKiDpq5jmgKfog73ot6jlubPlj7Dlm77ooajlupPvvIzmlK/mjIFINeOAgUFQUOOAgeWwj+eoi+W6j++8iOW+ruS/oS/mlK/ku5jlrp0v55m+5bqmL+WktOadoS9RUS8zNjDvvInjgIFWdWXjgIFUYXJv562J5pSv5oyBY2FudmFz55qE5qGG5p625bmz5Y+wXHJcbiAqIENvcHlyaWdodCAoYykgMjAyMSBRSVVOwq7np4vkupEgaHR0cHM6Ly93d3cudWNoYXJ0cy5jbiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG4gKiBMaWNlbnNlZCAoIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMCApXHJcbiAqIOWkjeWItuS9v+eUqOivt+S/neeVmeacrOauteazqOmHiu+8jOaEn+iwouaUr+aMgeW8gOa6kO+8gVxyXG4gKiBcclxuICogdUNoYXJ0c8Ku5a6Y5pa5572R56uZXHJcbiAqIGh0dHBzOi8vd3d3LnVDaGFydHMuY25cclxuICogXHJcbiAqIOW8gOa6kOWcsOWdgDpcclxuICogaHR0cHM6Ly9naXRlZS5jb20vdUNoYXJ0cy91Q2hhcnRzXHJcbiAqIFxyXG4gKiB1bmktYXBw5o+S5Lu25biC5Zy65Zyw5Z2A77yaXHJcbiAqIGh0dHA6Ly9leHQuZGNsb3VkLm5ldC5jbi9wbHVnaW4/aWQ9MjcxXHJcbiAqIFxyXG4gKi9cclxuXHJcbi8vIOS4u+mimOminOiJsumFjee9ru+8muWmguavj+S4quWbvuihqOexu+Wei+mcgOimgeS4jeWQjOS4u+mimO+8jOivt+WcqOWvueW6lOWbvuihqOexu+Wei+S4iuabtOaUuWNvbG9y5bGe5oCnXHJcbmNvbnN0IGNvbG9yID0gWycjMTg5MEZGJywgJyM5MUNCNzQnLCAnI0ZBQzg1OCcsICcjRUU2NjY2JywgJyM3M0MwREUnLCAnIzNDQTI3MicsICcjRkM4NDUyJywgJyM5QTYwQjQnLCAnI2VhN2NjYyddO1xyXG5cclxuLy/kuovku7bovazmjaLlh73mlbDvvIzkuLvopoHnlKjkvZzmoLzlvI/ljJZ46L205Li65pe26Ze06L2077yM5qC55o2u6ZyA5rGC6Ieq6KGM5L+u5pS5XHJcbmNvbnN0IGZvcm1hdERhdGVUaW1lID0gKHRpbWVTdGFtcCwgcmV0dXJuVHlwZSk9PntcclxuICB2YXIgZGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgZGF0ZS5zZXRUaW1lKHRpbWVTdGFtcCAqIDEwMDApO1xyXG4gIHZhciB5ID0gZGF0ZS5nZXRGdWxsWWVhcigpO1xyXG4gIHZhciBtID0gZGF0ZS5nZXRNb250aCgpICsgMTtcclxuICBtID0gbSA8IDEwID8gKCcwJyArIG0pIDogbTtcclxuICB2YXIgZCA9IGRhdGUuZ2V0RGF0ZSgpO1xyXG4gIGQgPSBkIDwgMTAgPyAoJzAnICsgZCkgOiBkO1xyXG4gIHZhciBoID0gZGF0ZS5nZXRIb3VycygpO1xyXG4gIGggPSBoIDwgMTAgPyAoJzAnICsgaCkgOiBoO1xyXG4gIHZhciBtaW51dGUgPSBkYXRlLmdldE1pbnV0ZXMoKTtcclxuICB2YXIgc2Vjb25kID0gZGF0ZS5nZXRTZWNvbmRzKCk7XHJcbiAgbWludXRlID0gbWludXRlIDwgMTAgPyAoJzAnICsgbWludXRlKSA6IG1pbnV0ZTtcclxuICBzZWNvbmQgPSBzZWNvbmQgPCAxMCA/ICgnMCcgKyBzZWNvbmQpIDogc2Vjb25kO1xyXG4gIGlmKHJldHVyblR5cGUgPT0gJ2Z1bGwnKXtyZXR1cm4geSArICctJyArIG0gKyAnLScgKyBkICsgJyAnKyBoICsnOicgKyBtaW51dGUgKyAnOicgKyBzZWNvbmQ7fVxyXG4gIGlmKHJldHVyblR5cGUgPT0gJ3ktbS1kJyl7cmV0dXJuIHkgKyAnLScgKyBtICsgJy0nICsgZDt9XHJcbiAgaWYocmV0dXJuVHlwZSA9PSAnaDptJyl7cmV0dXJuICBoICsnOicgKyBtaW51dGU7fVxyXG4gIGlmKHJldHVyblR5cGUgPT0gJ2g6bTpzJyl7cmV0dXJuICBoICsnOicgKyBtaW51dGUgKyc6JyArIHNlY29uZDt9XHJcbiAgcmV0dXJuIFt5LCBtLCBkLCBoLCBtaW51dGUsIHNlY29uZF07XHJcbn1cclxuXHJcbmNvbnN0IGNmdSA9IHtcclxuICAvL2RlbW90eXBl5Li66Ieq5a6a5LmJ5Zu+6KGo57G75Z6L77yM5LiA6Iis5LiN6ZyA6KaB6Ieq5a6a5LmJ5Zu+6KGo57G75Z6L77yM5Y+q6ZyA6KaB5pS55qC56IqC54K55LiK5a+55bqU55qE57G75Z6L5Y2z5Y+vXHJcblx0XCJ0eXBlXCI6W1wicGllXCIsXCJyaW5nXCIsXCJyb3NlXCIsXCJ3b3JkXCIsXCJmdW5uZWxcIixcIm1hcFwiLFwiYXJjYmFyXCIsXCJsaW5lXCIsXCJjb2x1bW5cIixcImJhclwiLFwiYXJlYVwiLFwicmFkYXJcIixcImdhdWdlXCIsXCJjYW5kbGVcIixcIm1peFwiLFwidGxpbmVcIixcInRhcmVhXCIsXCJzY2F0dGVyXCIsXCJidWJibGVcIixcImRlbW90eXBlXCJdLFxyXG5cdFwicmFuZ2VcIjpbXCLppbznirblm75cIixcIuWchueOr+WbvlwiLFwi546r55Gw5Zu+XCIsXCLor43kupHlm75cIixcIua8j+aWl+WbvlwiLFwi5Zyw5Zu+XCIsXCLlnIblvKfov5vluqbmnaFcIixcIuaKmOe6v+WbvlwiLFwi5p+x54q25Zu+XCIsXCLmnaHnirblm75cIixcIuWMuuWfn+WbvlwiLFwi6Zu36L6+5Zu+XCIsXCLku6rooajnm5hcIixcIkvnur/lm75cIixcIua3t+WQiOWbvlwiLFwi5pe26Ze06L205oqY57q/XCIsXCLml7bpl7TovbTljLrln59cIixcIuaVo+eCueWbvlwiLFwi5rCU5rOh5Zu+XCIsXCLoh6rlrprkuYnnsbvlnotcIl0sXHJcbiAgLy/lop7liqDoh6rlrprkuYnlm77ooajnsbvlnovvvIzlpoLmnpzpnIDopoFjYXRlZ29yaWVz77yM6K+35Zyo6L+Z6YeM5Yqg5YWl5oKo55qE5Zu+6KGo57G75Z6L77yM5L6L5aaC5pyA5ZCO55qEXCJkZW1vdHlwZVwiXHJcbiAgLy/oh6rlrprkuYnnsbvlnovml7bpnIDopoHms6jmhI9cInRsaW5lXCIsXCJ0YXJlYVwiLFwic2NhdHRlclwiLFwiYnViYmxlXCLnrYnml7bpl7TovbTvvIjnn6Lph4946L2077yJ57G75Zu+6KGo77yM5rKh5pyJY2F0ZWdvcmllc++8jOS4jemcgOimgeWKoOWFpWNhdGVnb3JpZXNcclxuXHRcImNhdGVnb3JpZXNcIjpbXCJsaW5lXCIsXCJjb2x1bW5cIixcImJhclwiLFwiYXJlYVwiLFwicmFkYXJcIixcImdhdWdlXCIsXCJjYW5kbGVcIixcIm1peFwiLFwiZGVtb3R5cGVcIl0sXHJcbiAgLy9pbnN0YW5jZeS4uuWunuS+i+WPmOmHj+aJv+i9veWxnuaAp++8jOS4jeimgeWIoOmZpFxyXG4gIFwiaW5zdGFuY2VcIjp7fSxcclxuICAvL29wdGlvbuS4um9wdHPlj4plb3B0c+aJv+i9veWxnuaAp++8jOS4jeimgeWIoOmZpFxyXG4gIFwib3B0aW9uXCI6e30sXHJcbiAgLy/kuIvpnaLmmK/oh6rlrprkuYlmb3JtYXTphY3nva7vvIzlm6DpmaRINeerr+WklueahOWFtuS7luerr+aXoOazlemAmui/h3Byb3Bz5Lyg6YCS5Ye95pWw77yM5Y+q6IO96YCa6L+H5q2k5bGe5oCn5a+55bqU5LiL5qCH55qE5pa55byP5p2l5pu/5o2iXHJcbiAgXCJmb3JtYXR0ZXJcIjp7XHJcbiAgICBcInlBeGlzRGVtbzFcIjpmdW5jdGlvbih2YWwpe3JldHVybiB2YWwrJ+WFgyd9LFxyXG4gICAgXCJ5QXhpc0RlbW8yXCI6ZnVuY3Rpb24odmFsKXtyZXR1cm4gdmFsLnRvRml4ZWQoMil9LFxyXG4gICAgXCJ4QXhpc0RlbW8xXCI6ZnVuY3Rpb24odmFsKXtyZXR1cm4gdmFsKyflubQnfSxcclxuICAgIFwieEF4aXNEZW1vMlwiOmZ1bmN0aW9uKHZhbCl7cmV0dXJuIGZvcm1hdERhdGVUaW1lKHZhbCwnaDptJyl9LFxyXG4gICAgXCJzZXJpZXNEZW1vMVwiOmZ1bmN0aW9uKHZhbCl7cmV0dXJuIHZhbCsn5YWDJ30sXHJcbiAgICBcInRvb2x0aXBEZW1vMVwiOmZ1bmN0aW9uKGl0ZW0sIGNhdGVnb3J5LCBpbmRleCwgb3B0cyl7XHJcbiAgICAgIGlmKGluZGV4PT0wKXtcclxuICAgICAgXHRyZXR1cm4gJ+maj+S+v+eUqCcraXRlbS5kYXRhKyflubQnXHJcbiAgICAgIH1lbHNle1xyXG4gICAgICBcdHJldHVybiAn5YW25LuW5oiR5rKh5pS5JytpdGVtLmRhdGErJ+WkqSdcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIFwicGllRGVtb1wiOmZ1bmN0aW9uKHZhbCwgaW5kZXgsIHNlcmllcyl7XHJcbiAgICAgIGlmKGluZGV4ICE9PSB1bmRlZmluZWQpe1xyXG4gICAgICAgIHJldHVybiBzZXJpZXNbaW5kZXhdLm5hbWUrJ++8micrc2VyaWVzW2luZGV4XS5kYXRhKyflhYMnXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgfSxcclxuICAvL+i/memHjOa8lOekuuS6huiHquWumuS5ieaCqOeahOWbvuihqOexu+Wei+eahG9wdGlvbu+8jOWPr+S7pemaj+aEj+WRveWQje+8jOS5i+WQjuWcqOe7hOS7tuS4iiB0eXBlPVwiZGVtb3R5cGVcIiDlkI7vvIznu4Tku7bkvJrosIPnlKjov5nkuKroirHmi6zlj7fph4znmoRvcHRpb27vvIzlpoLmnpznu4Tku7bkuIrov5jlrZjlnKhvcHRz5Y+C5pWw77yM5Lya5bCGZGVtb3R5cGXkuI5vcHRz5Litb3B0aW9u5ZCI5bm25ZCO5riy5p+T5Zu+6KGo44CCXHJcbiAgXCJkZW1vdHlwZVwiOntcclxuICAgIC8v5oiR6L+Z6YeM5oqK5puy57q/5Zu+5b2T5YGa5LqG6Ieq5a6a5LmJ5Zu+6KGo57G75Z6L77yM5oKo5Y+v5Lul5qC55o2u6ZyA6KaB6ZqP5oSP5oyH5a6a57G75Z6L5oiW6YWN572uXHJcbiAgICBcInR5cGVcIjogXCJsaW5lXCIsXHJcbiAgICBcImNvbG9yXCI6IGNvbG9yLFxyXG4gICAgXCJwYWRkaW5nXCI6IFsxNSwxMCwwLDE1XSxcclxuICAgIFwieEF4aXNcIjoge1xyXG4gICAgICBcImRpc2FibGVHcmlkXCI6IHRydWUsXHJcbiAgICB9LFxyXG4gICAgXCJ5QXhpc1wiOiB7XHJcbiAgICAgIFwiZ3JpZFR5cGVcIjogXCJkYXNoXCIsXHJcbiAgICAgIFwiZGFzaExlbmd0aFwiOiAyLFxyXG4gICAgfSxcclxuICAgIFwibGVnZW5kXCI6IHtcclxuICAgIH0sXHJcbiAgICBcImV4dHJhXCI6IHtcclxuICAgIFx0XCJsaW5lXCI6IHtcclxuICAgIFx0XHRcInR5cGVcIjogXCJjdXJ2ZVwiLFxyXG4gICAgXHRcdFwid2lkdGhcIjogMlxyXG4gICAgXHR9LFxyXG4gICAgfVxyXG4gIH0sXHJcbiAgLy/kuIvpnaLmmK/oh6rlrprkuYnphY3nva7vvIzor7fmt7vliqDpobnnm67miYDpnIDnmoTpgJrnlKjphY3nva5cclxuXHRcInBpZVwiOntcclxuXHRcdFwidHlwZVwiOiBcInBpZVwiLFxyXG4gICAgXCJjb2xvclwiOiBjb2xvcixcclxuXHRcdFwicGFkZGluZ1wiOiBbNSw1LDUsNV0sXHJcblx0XHRcImV4dHJhXCI6IHtcclxuXHRcdFx0XCJwaWVcIjoge1xyXG5cdFx0XHRcdFwiYWN0aXZlT3BhY2l0eVwiOiAwLjUsXHJcblx0XHRcdFx0XCJhY3RpdmVSYWRpdXNcIjogMTAsXHJcblx0XHRcdFx0XCJvZmZzZXRBbmdsZVwiOiAwLFxyXG5cdFx0XHRcdFwibGFiZWxXaWR0aFwiOiAxNSxcclxuXHRcdFx0XHRcImJvcmRlclwiOiB0cnVlLFxyXG5cdFx0XHRcdFwiYm9yZGVyV2lkdGhcIjogMyxcclxuXHRcdFx0XHRcImJvcmRlckNvbG9yXCI6IFwiI0ZGRkZGRlwiXHJcblx0XHRcdH0sXHJcblx0XHR9XHJcblx0fSxcclxuXHRcInJpbmdcIjp7XHJcblx0XHRcInR5cGVcIjogXCJyaW5nXCIsXHJcbiAgICBcImNvbG9yXCI6IGNvbG9yLFxyXG5cdFx0XCJwYWRkaW5nXCI6IFs1LDUsNSw1XSxcclxuXHRcdFwicm90YXRlXCI6IGZhbHNlLFxyXG5cdFx0XCJkYXRhTGFiZWxcIjogdHJ1ZSxcclxuXHRcdFwibGVnZW5kXCI6IHtcclxuXHRcdFx0XCJzaG93XCI6IHRydWUsXHJcblx0XHRcdFwicG9zaXRpb25cIjogXCJyaWdodFwiLFxyXG4gICAgICBcImxpbmVIZWlnaHRcIjogMjUsXHJcblx0XHR9LFxyXG5cdFx0XCJ0aXRsZVwiOiB7XHJcblx0XHRcdFwibmFtZVwiOiBcIuaUtuebiueOh1wiLFxyXG5cdFx0XHRcImZvbnRTaXplXCI6IDE1LFxyXG5cdFx0XHRcImNvbG9yXCI6IFwiIzY2NjY2NlwiXHJcblx0XHR9LFxyXG5cdFx0XCJzdWJ0aXRsZVwiOiB7XHJcblx0XHRcdFwibmFtZVwiOiBcIjcwJVwiLFxyXG5cdFx0XHRcImZvbnRTaXplXCI6IDI1LFxyXG5cdFx0XHRcImNvbG9yXCI6IFwiIzdjYjVlY1wiXHJcblx0XHR9LFxyXG5cdFx0XCJleHRyYVwiOiB7XHJcblx0XHRcdFwicmluZ1wiOiB7XHJcblx0XHRcdFx0XCJyaW5nV2lkdGhcIjozMCxcclxuXHRcdFx0XHRcImFjdGl2ZU9wYWNpdHlcIjogMC41LFxyXG5cdFx0XHRcdFwiYWN0aXZlUmFkaXVzXCI6IDEwLFxyXG5cdFx0XHRcdFwib2Zmc2V0QW5nbGVcIjogMCxcclxuXHRcdFx0XHRcImxhYmVsV2lkdGhcIjogMTUsXHJcblx0XHRcdFx0XCJib3JkZXJcIjogdHJ1ZSxcclxuXHRcdFx0XHRcImJvcmRlcldpZHRoXCI6IDMsXHJcblx0XHRcdFx0XCJib3JkZXJDb2xvclwiOiBcIiNGRkZGRkZcIlxyXG5cdFx0XHR9LFxyXG5cdFx0fSxcclxuXHR9LFxyXG5cdFwicm9zZVwiOntcclxuXHRcdFwidHlwZVwiOiBcInJvc2VcIixcclxuICAgIFwiY29sb3JcIjogY29sb3IsXHJcblx0XHRcInBhZGRpbmdcIjogWzUsNSw1LDVdLFxyXG5cdFx0XCJsZWdlbmRcIjoge1xyXG5cdFx0XHRcInNob3dcIjogdHJ1ZSxcclxuXHRcdFx0XCJwb3NpdGlvblwiOiBcImxlZnRcIixcclxuICAgICAgXCJsaW5lSGVpZ2h0XCI6IDI1LFxyXG5cdFx0fSxcclxuXHRcdFwiZXh0cmFcIjoge1xyXG5cdFx0XHRcInJvc2VcIjoge1xyXG5cdFx0XHRcdFwidHlwZVwiOiBcImFyZWFcIixcclxuXHRcdFx0XHRcIm1pblJhZGl1c1wiOiA1MCxcclxuXHRcdFx0XHRcImFjdGl2ZU9wYWNpdHlcIjogMC41LFxyXG5cdFx0XHRcdFwiYWN0aXZlUmFkaXVzXCI6IDEwLFxyXG5cdFx0XHRcdFwib2Zmc2V0QW5nbGVcIjogMCxcclxuXHRcdFx0XHRcImxhYmVsV2lkdGhcIjogMTUsXHJcblx0XHRcdFx0XCJib3JkZXJcIjogZmFsc2UsXHJcblx0XHRcdFx0XCJib3JkZXJXaWR0aFwiOiAyLFxyXG5cdFx0XHRcdFwiYm9yZGVyQ29sb3JcIjogXCIjRkZGRkZGXCJcclxuXHRcdFx0fSxcclxuXHRcdH1cclxuXHR9LFxyXG5cdFwid29yZFwiOntcclxuXHRcdFwidHlwZVwiOiBcIndvcmRcIixcclxuICAgIFwiY29sb3JcIjogY29sb3IsXHJcblx0XHRcImV4dHJhXCI6IHtcclxuXHRcdFx0XCJ3b3JkXCI6IHtcclxuXHRcdFx0XHRcInR5cGVcIjogXCJub3JtYWxcIixcclxuXHRcdFx0XHRcImF1dG9Db2xvcnNcIjogZmFsc2VcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH0sXHJcblx0XCJmdW5uZWxcIjp7XHJcblx0XHRcInR5cGVcIjogXCJmdW5uZWxcIixcclxuICAgIFwiY29sb3JcIjogY29sb3IsXHJcblx0XHRcInBhZGRpbmdcIjogWzE1LDE1LDAsMTVdLFxyXG5cdFx0XCJleHRyYVwiOiB7XHJcblx0XHRcdFwiZnVubmVsXCI6IHtcclxuXHRcdFx0XHRcImFjdGl2ZU9wYWNpdHlcIjogMC4zLFxyXG5cdFx0XHRcdFwiYWN0aXZlV2lkdGhcIjogMTAsXHJcblx0XHRcdFx0XCJib3JkZXJcIjogdHJ1ZSxcclxuXHRcdFx0XHRcImJvcmRlcldpZHRoXCI6IDIsXHJcblx0XHRcdFx0XCJib3JkZXJDb2xvclwiOiBcIiNGRkZGRkZcIixcclxuXHRcdFx0XHRcImZpbGxPcGFjaXR5XCI6IDEsXHJcblx0XHRcdFx0XCJsYWJlbEFsaWduXCI6IFwicmlnaHRcIlxyXG5cdFx0XHR9LFxyXG5cdFx0fVxyXG5cdH0sXHJcblx0XCJtYXBcIjp7XHJcblx0XHRcInR5cGVcIjogXCJtYXBcIixcclxuICAgIFwiY29sb3JcIjogY29sb3IsXHJcblx0XHRcInBhZGRpbmdcIjogWzAsMCwwLDBdLFxyXG4gICAgXCJkYXRhTGFiZWxcIjogdHJ1ZSxcclxuXHRcdFwiZXh0cmFcIjoge1xyXG5cdFx0XHRcIm1hcFwiOiB7XHJcblx0XHRcdFx0XCJib3JkZXJcIjogdHJ1ZSxcclxuXHRcdFx0XHRcImJvcmRlcldpZHRoXCI6IDEsXHJcblx0XHRcdFx0XCJib3JkZXJDb2xvclwiOiBcIiM2NjY2NjZcIixcclxuXHRcdFx0XHRcImZpbGxPcGFjaXR5XCI6IDAuNixcclxuXHRcdFx0XHRcImFjdGl2ZUJvcmRlckNvbG9yXCI6IFwiI0YwNDg2NFwiLFxyXG5cdFx0XHRcdFwiYWN0aXZlRmlsbENvbG9yXCI6IFwiI0ZBQ0MxNFwiLFxyXG5cdFx0XHRcdFwiYWN0aXZlRmlsbE9wYWNpdHlcIjogMVxyXG5cdFx0XHR9LFxyXG5cdFx0fVxyXG5cdH0sXHJcblx0XCJhcmNiYXJcIjp7XHJcblx0XHRcInR5cGVcIjogXCJhcmNiYXJcIixcclxuICAgIFwiY29sb3JcIjogY29sb3IsXHJcblx0XHRcInRpdGxlXCI6IHtcclxuXHRcdFx0XCJuYW1lXCI6IFwi55m+5YiG5q+UXCIsXHJcblx0XHRcdFwiZm9udFNpemVcIjogMjUsXHJcblx0XHRcdFwiY29sb3JcIjogXCIjMDBGRjAwXCJcclxuXHRcdH0sXHJcblx0XHRcInN1YnRpdGxlXCI6IHtcclxuXHRcdFx0XCJuYW1lXCI6IFwi6buY6K6k5qCH6aKYXCIsXHJcblx0XHRcdFwiZm9udFNpemVcIjogMTUsXHJcblx0XHRcdFwiY29sb3JcIjogXCIjNjY2NjY2XCJcclxuXHRcdH0sXHJcblx0XHRcImV4dHJhXCI6IHtcclxuXHRcdFx0XCJhcmNiYXJcIjoge1xyXG5cdFx0XHRcdFwidHlwZVwiOiBcImRlZmF1bHRcIixcclxuXHRcdFx0XHRcIndpZHRoXCI6IDEyLFxyXG5cdFx0XHRcdFwiYmFja2dyb3VuZENvbG9yXCI6IFwiI0U5RTlFOVwiLFxyXG5cdFx0XHRcdFwic3RhcnRBbmdsZVwiOiAwLjc1LFxyXG5cdFx0XHRcdFwiZW5kQW5nbGVcIjogMC4yNSxcclxuXHRcdFx0XHRcImdhcFwiOiAyXHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9LFxyXG5cdFwibGluZVwiOntcclxuXHRcdFwidHlwZVwiOiBcImxpbmVcIixcclxuICAgIFwiY29sb3JcIjogY29sb3IsXHJcblx0XHRcInBhZGRpbmdcIjogWzE1LDEwLDAsMTVdLFxyXG5cdFx0XCJ4QXhpc1wiOiB7XHJcbiAgICAgIFwiZGlzYWJsZUdyaWRcIjogdHJ1ZSxcclxuXHRcdH0sXHJcblx0XHRcInlBeGlzXCI6IHtcclxuICAgICAgXCJncmlkVHlwZVwiOiBcImRhc2hcIixcclxuICAgICAgXCJkYXNoTGVuZ3RoXCI6IDIsXHJcblx0XHR9LFxyXG5cdFx0XCJsZWdlbmRcIjoge1xyXG5cdFx0fSxcclxuXHRcdFwiZXh0cmFcIjoge1xyXG5cdFx0XHRcImxpbmVcIjoge1xyXG5cdFx0XHRcdFwidHlwZVwiOiBcInN0cmFpZ2h0XCIsXHJcblx0XHRcdFx0XCJ3aWR0aFwiOiAyXHJcblx0XHRcdH0sXHJcblx0XHR9XHJcblx0fSxcclxuICBcInRsaW5lXCI6e1xyXG4gIFx0XCJ0eXBlXCI6IFwibGluZVwiLFxyXG4gICAgXCJjb2xvclwiOiBjb2xvcixcclxuICBcdFwicGFkZGluZ1wiOiBbMTUsMTAsMCwxNV0sXHJcbiAgXHRcInhBeGlzXCI6IHtcclxuICAgICAgXCJkaXNhYmxlR3JpZFwiOiBmYWxzZSxcclxuICAgICAgXCJib3VuZGFyeUdhcFwiOlwianVzdGlmeVwiLFxyXG4gIFx0fSxcclxuICBcdFwieUF4aXNcIjoge1xyXG4gICAgICBcImdyaWRUeXBlXCI6IFwiZGFzaFwiLFxyXG4gICAgICBcImRhc2hMZW5ndGhcIjogMixcclxuICAgICAgXCJkYXRhXCI6W1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIFwibWluXCI6MCxcclxuICAgICAgICAgIFwibWF4XCI6ODBcclxuICAgICAgICB9XHJcbiAgICAgIF1cclxuICBcdH0sXHJcbiAgXHRcImxlZ2VuZFwiOiB7XHJcbiAgXHR9LFxyXG4gIFx0XCJleHRyYVwiOiB7XHJcbiAgXHRcdFwibGluZVwiOiB7XHJcbiAgXHRcdFx0XCJ0eXBlXCI6IFwiY3VydmVcIixcclxuICBcdFx0XHRcIndpZHRoXCI6IDJcclxuICBcdFx0fSxcclxuICBcdH1cclxuICB9LFxyXG4gIFwidGFyZWFcIjp7XHJcbiAgXHRcInR5cGVcIjogXCJhcmVhXCIsXHJcbiAgICBcImNvbG9yXCI6IGNvbG9yLFxyXG4gIFx0XCJwYWRkaW5nXCI6IFsxNSwxMCwwLDE1XSxcclxuICBcdFwieEF4aXNcIjoge1xyXG4gICAgICBcImRpc2FibGVHcmlkXCI6IHRydWUsXHJcbiAgICAgIFwiYm91bmRhcnlHYXBcIjpcImp1c3RpZnlcIixcclxuICBcdH0sXHJcbiAgXHRcInlBeGlzXCI6IHtcclxuICAgICAgXCJncmlkVHlwZVwiOiBcImRhc2hcIixcclxuICAgICAgXCJkYXNoTGVuZ3RoXCI6IDIsXHJcbiAgICAgIFwiZGF0YVwiOltcclxuICAgICAgICB7XHJcbiAgICAgICAgICBcIm1pblwiOjAsXHJcbiAgICAgICAgICBcIm1heFwiOjgwXHJcbiAgICAgICAgfVxyXG4gICAgICBdXHJcbiAgXHR9LFxyXG4gIFx0XCJsZWdlbmRcIjoge1xyXG4gIFx0fSxcclxuICBcdFwiZXh0cmFcIjoge1xyXG4gIFx0XHRcImFyZWFcIjoge1xyXG4gIFx0XHRcdFwidHlwZVwiOiBcImN1cnZlXCIsXHJcbiAgXHRcdFx0XCJvcGFjaXR5XCI6IDAuMixcclxuICBcdFx0XHRcImFkZExpbmVcIjogdHJ1ZSxcclxuICBcdFx0XHRcIndpZHRoXCI6IDIsXHJcbiAgXHRcdFx0XCJncmFkaWVudFwiOiB0cnVlXHJcbiAgXHRcdH0sXHJcbiAgXHR9XHJcbiAgfSxcclxuXHRcImNvbHVtblwiOntcclxuXHRcdFwidHlwZVwiOiBcImNvbHVtblwiLFxyXG4gICAgXCJjb2xvclwiOiBjb2xvcixcclxuXHRcdFwicGFkZGluZ1wiOiBbMTUsMTUsMCw1XSxcclxuXHRcdFwieEF4aXNcIjoge1xyXG4gICAgICBcImRpc2FibGVHcmlkXCI6IHRydWUsXHJcblx0XHR9LFxyXG5cdFx0XCJ5QXhpc1wiOiB7XHJcbiAgICAgIFwiZGF0YVwiOlt7XCJtaW5cIjowfV1cclxuXHRcdH0sXHJcblx0XHRcImxlZ2VuZFwiOiB7XHJcblx0XHR9LFxyXG5cdFx0XCJleHRyYVwiOiB7XHJcblx0XHRcdFwiY29sdW1uXCI6IHtcclxuXHRcdFx0XHRcInR5cGVcIjogXCJncm91cFwiLFxyXG5cdFx0XHRcdFwid2lkdGhcIjogMzAsXHJcblx0XHRcdFx0XCJhY3RpdmVCZ0NvbG9yXCI6IFwiIzAwMDAwMFwiLFxyXG5cdFx0XHRcdFwiYWN0aXZlQmdPcGFjaXR5XCI6IDAuMDhcclxuXHRcdFx0fSxcclxuXHRcdH1cclxuXHR9LFxyXG4gIFwiYmFyXCI6e1xyXG4gIFx0XCJ0eXBlXCI6IFwiYmFyXCIsXHJcbiAgICBcImNvbG9yXCI6IGNvbG9yLFxyXG4gIFx0XCJwYWRkaW5nXCI6IFsxNSwzMCwwLDVdLFxyXG4gIFx0XCJ4QXhpc1wiOiB7XHJcbiAgICAgIFwiYm91bmRhcnlHYXBcIjpcImp1c3RpZnlcIixcclxuICAgICAgXCJkaXNhYmxlR3JpZFwiOmZhbHNlLFxyXG4gICAgICBcIm1pblwiOjAsXHJcbiAgICAgIFwiYXhpc0xpbmVcIjpmYWxzZVxyXG4gIFx0fSxcclxuICBcdFwieUF4aXNcIjoge1xyXG4gIFx0fSxcclxuICBcdFwibGVnZW5kXCI6IHtcclxuICBcdH0sXHJcbiAgXHRcImV4dHJhXCI6IHtcclxuICBcdFx0XCJiYXJcIjoge1xyXG4gIFx0XHRcdFwidHlwZVwiOiBcImdyb3VwXCIsXHJcbiAgXHRcdFx0XCJ3aWR0aFwiOiAzMCxcclxuICBcdFx0XHRcIm1ldGVyQm9yZGVcIjogMSxcclxuICBcdFx0XHRcIm1ldGVyRmlsbENvbG9yXCI6IFwiI0ZGRkZGRlwiLFxyXG4gIFx0XHRcdFwiYWN0aXZlQmdDb2xvclwiOiBcIiMwMDAwMDBcIixcclxuICBcdFx0XHRcImFjdGl2ZUJnT3BhY2l0eVwiOiAwLjA4XHJcbiAgXHRcdH0sXHJcbiAgXHR9XHJcbiAgfSxcclxuXHRcImFyZWFcIjp7XHJcblx0XHRcInR5cGVcIjogXCJhcmVhXCIsXHJcblx0XHRcImNvbG9yXCI6IGNvbG9yLFxyXG5cdFx0XCJwYWRkaW5nXCI6IFsxNSwxNSwwLDE1XSxcclxuXHRcdFwieEF4aXNcIjoge1xyXG4gICAgICBcImRpc2FibGVHcmlkXCI6IHRydWUsXHJcblx0XHR9LFxyXG5cdFx0XCJ5QXhpc1wiOiB7XHJcbiAgICAgIFwiZ3JpZFR5cGVcIjogXCJkYXNoXCIsXHJcbiAgICAgIFwiZGFzaExlbmd0aFwiOiAyLFxyXG5cdFx0fSxcclxuXHRcdFwibGVnZW5kXCI6IHtcclxuXHRcdH0sXHJcblx0XHRcImV4dHJhXCI6IHtcclxuXHRcdFx0XCJhcmVhXCI6IHtcclxuXHRcdFx0XHRcInR5cGVcIjogXCJzdHJhaWdodFwiLFxyXG5cdFx0XHRcdFwib3BhY2l0eVwiOiAwLjIsXHJcblx0XHRcdFx0XCJhZGRMaW5lXCI6IHRydWUsXHJcblx0XHRcdFx0XCJ3aWR0aFwiOiAyLFxyXG5cdFx0XHRcdFwiZ3JhZGllbnRcIjogZmFsc2VcclxuXHRcdFx0fSxcclxuXHRcdH1cclxuXHR9LFxyXG5cdFwicmFkYXJcIjp7XHJcblx0XHRcInR5cGVcIjogXCJyYWRhclwiLFxyXG5cdFx0XCJjb2xvclwiOiBjb2xvcixcclxuXHRcdFwicGFkZGluZ1wiOiBbNSw1LDUsNV0sXHJcbiAgICBcImRhdGFMYWJlbFwiOiBmYWxzZSxcclxuXHRcdFwibGVnZW5kXCI6IHtcclxuXHRcdFx0XCJzaG93XCI6IHRydWUsXHJcblx0XHRcdFwicG9zaXRpb25cIjogXCJyaWdodFwiLFxyXG4gICAgICBcImxpbmVIZWlnaHRcIjogMjUsXHJcblx0XHR9LFxyXG5cdFx0XCJleHRyYVwiOiB7XHJcblx0XHRcdFwicmFkYXJcIjoge1xyXG5cdFx0XHRcdFwiZ3JpZFR5cGVcIjogXCJyYWRhclwiLFxyXG5cdFx0XHRcdFwiZ3JpZENvbG9yXCI6IFwiI0NDQ0NDQ1wiLFxyXG5cdFx0XHRcdFwiZ3JpZENvdW50XCI6IDMsXHJcblx0XHRcdFx0XCJvcGFjaXR5XCI6IDAuMixcclxuXHRcdFx0XHRcIm1heFwiOiAyMDBcclxuXHRcdFx0fSxcclxuXHRcdH1cclxuXHR9LFxyXG5cdFwiZ2F1Z2VcIjp7XHJcblx0XHRcInR5cGVcIjogXCJnYXVnZVwiLFxyXG5cdFx0XCJjb2xvclwiOiBjb2xvcixcclxuXHRcdFwidGl0bGVcIjoge1xyXG5cdFx0XHRcIm5hbWVcIjogXCI2NkttL0hcIixcclxuXHRcdFx0XCJmb250U2l6ZVwiOiAyNSxcclxuXHRcdFx0XCJjb2xvclwiOiBcIiMyZmMyNWJcIixcclxuXHRcdFx0XCJvZmZzZXRZXCI6IDUwXHJcblx0XHR9LFxyXG5cdFx0XCJzdWJ0aXRsZVwiOiB7XHJcblx0XHRcdFwibmFtZVwiOiBcIuWunuaXtumAn+W6plwiLFxyXG5cdFx0XHRcImZvbnRTaXplXCI6IDE1LFxyXG5cdFx0XHRcImNvbG9yXCI6IFwiIzE4OTBmZlwiLFxyXG5cdFx0XHRcIm9mZnNldFlcIjogLTUwXHJcblx0XHR9LFxyXG5cdFx0XCJleHRyYVwiOiB7XHJcblx0XHRcdFwiZ2F1Z2VcIjoge1xyXG5cdFx0XHRcdFwidHlwZVwiOiBcImRlZmF1bHRcIixcclxuXHRcdFx0XHRcIndpZHRoXCI6IDMwLFxyXG5cdFx0XHRcdFwibGFiZWxDb2xvclwiOiBcIiM2NjY2NjZcIixcclxuXHRcdFx0XHRcInN0YXJ0QW5nbGVcIjogMC43NSxcclxuXHRcdFx0XHRcImVuZEFuZ2xlXCI6IDAuMjUsXHJcblx0XHRcdFx0XCJzdGFydE51bWJlclwiOiAwLFxyXG5cdFx0XHRcdFwiZW5kTnVtYmVyXCI6IDEwMCxcclxuXHRcdFx0XHRcImxhYmVsRm9ybWF0XCI6IFwiXCIsXHJcblx0XHRcdFx0XCJzcGxpdExpbmVcIjoge1xyXG5cdFx0XHRcdFx0XCJmaXhSYWRpdXNcIjogMCxcclxuXHRcdFx0XHRcdFwic3BsaXROdW1iZXJcIjogMTAsXHJcblx0XHRcdFx0XHRcIndpZHRoXCI6IDMwLFxyXG5cdFx0XHRcdFx0XCJjb2xvclwiOiBcIiNGRkZGRkZcIixcclxuXHRcdFx0XHRcdFwiY2hpbGROdW1iZXJcIjogNSxcclxuXHRcdFx0XHRcdFwiY2hpbGRXaWR0aFwiOiAxMlxyXG5cdFx0XHRcdH0sXHJcblx0XHRcdFx0XCJwb2ludGVyXCI6IHtcclxuXHRcdFx0XHRcdFwid2lkdGhcIjogMjQsXHJcblx0XHRcdFx0XHRcImNvbG9yXCI6IFwiYXV0b1wiXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fSxcclxuXHRcImNhbmRsZVwiOntcclxuXHRcdFwidHlwZVwiOiBcImNhbmRsZVwiLFxyXG5cdFx0XCJjb2xvclwiOiBjb2xvcixcclxuXHRcdFwicGFkZGluZ1wiOiBbMTUsMTUsMCwxNV0sXHJcblx0XHRcImVuYWJsZVNjcm9sbFwiOiB0cnVlLFxyXG5cdFx0XCJlbmFibGVNYXJrTGluZVwiOiB0cnVlLFxyXG5cdFx0XCJkYXRhTGFiZWxcIjogZmFsc2UsXHJcblx0XHRcInhBeGlzXCI6IHtcclxuXHRcdFx0XCJsYWJlbENvdW50XCI6IDQsXHJcblx0XHRcdFwiaXRlbUNvdW50XCI6IDQwLFxyXG5cdFx0XHRcImRpc2FibGVHcmlkXCI6IHRydWUsXHJcblx0XHRcdFwiZ3JpZENvbG9yXCI6IFwiI0NDQ0NDQ1wiLFxyXG5cdFx0XHRcImdyaWRUeXBlXCI6IFwic29saWRcIixcclxuXHRcdFx0XCJkYXNoTGVuZ3RoXCI6IDQsXHJcblx0XHRcdFwic2Nyb2xsU2hvd1wiOiB0cnVlLFxyXG5cdFx0XHRcInNjcm9sbEFsaWduXCI6IFwibGVmdFwiLFxyXG5cdFx0XHRcInNjcm9sbENvbG9yXCI6IFwiI0E2QTZBNlwiLFxyXG5cdFx0XHRcInNjcm9sbEJhY2tncm91bmRDb2xvclwiOiBcIiNFRkVCRUZcIlxyXG5cdFx0fSxcclxuXHRcdFwieUF4aXNcIjoge1xyXG5cdFx0fSxcclxuXHRcdFwibGVnZW5kXCI6IHtcclxuXHRcdH0sXHJcblx0XHRcImV4dHJhXCI6IHtcclxuXHRcdFx0XCJjYW5kbGVcIjoge1xyXG5cdFx0XHRcdFwiY29sb3JcIjoge1xyXG5cdFx0XHRcdFx0XCJ1cExpbmVcIjogXCIjZjA0ODY0XCIsXHJcblx0XHRcdFx0XHRcInVwRmlsbFwiOiBcIiNmMDQ4NjRcIixcclxuXHRcdFx0XHRcdFwiZG93bkxpbmVcIjogXCIjMmZjMjViXCIsXHJcblx0XHRcdFx0XHRcImRvd25GaWxsXCI6IFwiIzJmYzI1YlwiXHJcblx0XHRcdFx0fSxcclxuXHRcdFx0XHRcImF2ZXJhZ2VcIjoge1xyXG5cdFx0XHRcdFx0XCJzaG93XCI6IHRydWUsXHJcblx0XHRcdFx0XHRcIm5hbWVcIjogW1wiTUE1XCIsXCJNQTEwXCIsXCJNQTMwXCJdLFxyXG5cdFx0XHRcdFx0XCJkYXlcIjogWzUsMTAsMjBdLFxyXG5cdFx0XHRcdFx0XCJjb2xvclwiOiBbXCIjMTg5MGZmXCIsXCIjMmZjMjViXCIsXCIjZmFjYzE0XCJdXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRcIm1hcmtMaW5lXCI6IHtcclxuXHRcdFx0XHRcInR5cGVcIjogXCJkYXNoXCIsXHJcblx0XHRcdFx0XCJkYXNoTGVuZ3RoXCI6IDUsXHJcblx0XHRcdFx0XCJkYXRhXCI6IFtcclxuXHRcdFx0XHRcdHtcclxuXHRcdFx0XHRcdFx0XCJ2YWx1ZVwiOiAyMTUwLFxyXG5cdFx0XHRcdFx0XHRcImxpbmVDb2xvclwiOiBcIiNmMDQ4NjRcIixcclxuXHRcdFx0XHRcdFx0XCJzaG93TGFiZWxcIjogdHJ1ZVxyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdHtcclxuXHRcdFx0XHRcdFx0XCJ2YWx1ZVwiOiAyMzUwLFxyXG5cdFx0XHRcdFx0XHRcImxpbmVDb2xvclwiOiBcIiNmMDQ4NjRcIixcclxuXHRcdFx0XHRcdFx0XCJzaG93TGFiZWxcIjogdHJ1ZVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdF1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH0sXHJcblx0XCJtaXhcIjp7XHJcblx0XHRcInR5cGVcIjogXCJtaXhcIixcclxuXHRcdFwiY29sb3JcIjogY29sb3IsXHJcblx0XHRcInBhZGRpbmdcIjogWzE1LDE1LDAsMTVdLFxyXG5cdFx0XCJ4QXhpc1wiOiB7XHJcbiAgICAgIFwiZGlzYWJsZUdyaWRcIjogdHJ1ZSxcclxuXHRcdH0sXHJcblx0XHRcInlBeGlzXCI6IHtcclxuXHRcdFx0XCJkaXNhYmxlZFwiOiBmYWxzZSxcclxuXHRcdFx0XCJkaXNhYmxlR3JpZFwiOiBmYWxzZSxcclxuXHRcdFx0XCJzcGxpdE51bWJlclwiOiA1LFxyXG5cdFx0XHRcImdyaWRUeXBlXCI6IFwiZGFzaFwiLFxyXG5cdFx0XHRcImRhc2hMZW5ndGhcIjogNCxcclxuXHRcdFx0XCJncmlkQ29sb3JcIjogXCIjQ0NDQ0NDXCIsXHJcblx0XHRcdFwicGFkZGluZ1wiOiAxMCxcclxuXHRcdFx0XCJzaG93VGl0bGVcIjogdHJ1ZSxcclxuXHRcdFx0XCJkYXRhXCI6IFtdXHJcblx0XHR9LFxyXG5cdFx0XCJsZWdlbmRcIjoge1xyXG5cdFx0fSxcclxuXHRcdFwiZXh0cmFcIjoge1xyXG5cdFx0XHRcIm1peFwiOiB7XHJcblx0XHRcdFx0XCJjb2x1bW5cIjoge1xyXG5cdFx0XHRcdFx0XCJ3aWR0aFwiOiAyMFxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdH1cclxuXHR9LFxyXG5cdFwic2NhdHRlclwiOntcclxuXHRcdFwidHlwZVwiOiBcInNjYXR0ZXJcIixcclxuXHRcdFwiY29sb3JcIjpjb2xvcixcclxuXHRcdFwicGFkZGluZ1wiOlsxNSwxNSwwLDE1XSxcclxuICAgIFwiZGF0YUxhYmVsXCI6ZmFsc2UsXHJcbiAgICBcInhBeGlzXCI6IHtcclxuICAgICAgXCJkaXNhYmxlR3JpZFwiOiBmYWxzZSxcclxuICAgICAgXCJncmlkVHlwZVwiOlwiZGFzaFwiLFxyXG4gICAgICBcInNwbGl0TnVtYmVyXCI6NSxcclxuICAgICAgXCJib3VuZGFyeUdhcFwiOlwianVzdGlmeVwiLFxyXG4gICAgICBcIm1pblwiOjBcclxuICAgIH0sXHJcbiAgICBcInlBeGlzXCI6IHtcclxuICAgICAgXCJkaXNhYmxlR3JpZFwiOiBmYWxzZSxcclxuICAgICAgXCJncmlkVHlwZVwiOlwiZGFzaFwiLFxyXG4gICAgfSxcclxuICAgIFwibGVnZW5kXCI6IHtcclxuICAgIH0sXHJcbiAgICBcImV4dHJhXCI6IHtcclxuICAgIFx0XCJzY2F0dGVyXCI6IHtcclxuICAgIFx0fSxcclxuICAgIH1cclxuXHR9LFxyXG5cdFwiYnViYmxlXCI6e1xyXG5cdFx0XCJ0eXBlXCI6IFwiYnViYmxlXCIsXHJcblx0XHRcImNvbG9yXCI6Y29sb3IsXHJcblx0XHRcInBhZGRpbmdcIjpbMTUsMTUsMCwxNV0sXHJcbiAgICBcInhBeGlzXCI6IHtcclxuICAgICAgXCJkaXNhYmxlR3JpZFwiOiBmYWxzZSxcclxuICAgICAgXCJncmlkVHlwZVwiOlwiZGFzaFwiLFxyXG4gICAgICBcInNwbGl0TnVtYmVyXCI6NSxcclxuICAgICAgXCJib3VuZGFyeUdhcFwiOlwianVzdGlmeVwiLFxyXG4gICAgICBcIm1pblwiOjAsXHJcbiAgICAgIFwibWF4XCI6MjUwXHJcbiAgICB9LFxyXG4gICAgXCJ5QXhpc1wiOiB7XHJcbiAgICAgIFwiZGlzYWJsZUdyaWRcIjogZmFsc2UsXHJcbiAgICAgIFwiZ3JpZFR5cGVcIjpcImRhc2hcIixcclxuICAgICAgXCJkYXRhXCI6W3tcclxuICAgICAgICBcIm1pblwiOjAsXHJcbiAgICAgICAgXCJtYXhcIjoxNTBcclxuICAgICAgfV1cclxuICAgIH0sXHJcbiAgICBcImxlZ2VuZFwiOiB7XHJcbiAgICB9LFxyXG4gICAgXCJleHRyYVwiOiB7XHJcbiAgICBcdFwiYnViYmxlXCI6IHtcclxuICAgICAgICBcImJvcmRlclwiOjIsXHJcbiAgICAgICAgXCJvcGFjaXR5XCI6IDAuNSxcclxuICAgIFx0fSxcclxuICAgIH1cclxuXHR9XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNmdTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///74\n");
+eval("Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0; /*\r\n                                                                                                      * uCharts庐\r\n                                                                                                      * 楂樻�ц兘璺ㄥ钩鍙板浘琛ㄥ簱锛屾敮鎸丠5銆丄PP銆佸皬绋嬪簭锛堝井淇�/鏀粯瀹�/鐧惧害/澶存潯/QQ/360锛夈�乂ue銆乀aro绛夋敮鎸乧anvas鐨勬鏋跺钩鍙癨r\n                                                                                                      * Copyright (c) 2021 QIUN庐绉嬩簯 https://www.ucharts.cn All rights reserved.\r\n                                                                                                      * Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )\r\n                                                                                                      * 澶嶅埗浣跨敤璇蜂繚鐣欐湰娈垫敞閲婏紝鎰熻阿鏀寔寮�婧愶紒\r\n                                                                                                      * \r\n                                                                                                      * uCharts庐瀹樻柟缃戠珯\r\n                                                                                                      * https://www.uCharts.cn\r\n                                                                                                      * \r\n                                                                                                      * 寮�婧愬湴鍧�:\r\n                                                                                                      * https://gitee.com/uCharts/uCharts\r\n                                                                                                      * \r\n                                                                                                      * uni-app鎻掍欢甯傚満鍦板潃锛歕r\n                                                                                                      * http://ext.dcloud.net.cn/plugin?id=271\r\n                                                                                                      * \r\n                                                                                                      */\n\n// 涓婚棰滆壊閰嶇疆锛氬姣忎釜鍥捐〃绫诲瀷闇�瑕佷笉鍚屼富棰橈紝璇峰湪瀵瑰簲鍥捐〃绫诲瀷涓婃洿鏀筩olor灞炴�nvar color = ['#1890FF', '#91CB74', '#FAC858', '#EE6666', '#73C0DE', '#3CA272', '#FC8452', '#9A60B4', '#ea7ccc'];\n\n//浜嬩欢杞崲鍑芥暟锛屼富瑕佺敤浣滄牸寮忓寲x杞翠负鏃堕棿杞达紝鏍规嵁闇�姹傝嚜琛屼慨鏀筡nvar formatDateTime = function formatDateTime(timeStamp, returnType) {\n  var date = new Date();\n  date.setTime(timeStamp * 1000);\n  var y = date.getFullYear();\n  var m = date.getMonth() + 1;\n  m = m < 10 ? '0' + m : m;\n  var d = date.getDate();\n  d = d < 10 ? '0' + d : d;\n  var h = date.getHours();\n  h = h < 10 ? '0' + h : h;\n  var minute = date.getMinutes();\n  var second = date.getSeconds();\n  minute = minute < 10 ? '0' + minute : minute;\n  second = second < 10 ? '0' + second : second;\n  if (returnType == 'full') {return y + '-' + m + '-' + d + ' ' + h + ':' + minute + ':' + second;}\n  if (returnType == 'y-m-d') {return y + '-' + m + '-' + d;}\n  if (returnType == 'h:m') {return h + ':' + minute;}\n  if (returnType == 'h:m:s') {return h + ':' + minute + ':' + second;}\n  return [y, m, d, h, minute, second];\n};\n\nvar cfu = {\n  //demotype涓鸿嚜瀹氫箟鍥捐〃绫诲瀷锛屼竴鑸笉闇�瑕佽嚜瀹氫箟鍥捐〃绫诲瀷锛屽彧闇�瑕佹敼鏍硅妭鐐逛笂瀵瑰簲鐨勭被鍨嬪嵆鍙痋n  \"type\": [\"pie\", \"ring\", \"rose\", \"word\", \"funnel\", \"map\", \"arcbar\", \"line\", \"column\", \"mount\", \"bar\", \"area\", \"radar\", \"gauge\", \"candle\", \"mix\", \"tline\", \"tarea\", \"scatter\", \"bubble\", \"demotype\"],\n  \"range\": [\"楗肩姸鍥綷", \"鍦嗙幆鍥綷", \"鐜懓鍥綷", \"璇嶄簯鍥綷", \"婕忔枟鍥綷", \"鍦板浘\", \"鍦嗗姬杩涘害鏉", \"鎶樼嚎鍥綷", \"鏌辩姸鍥綷", \"灞卞嘲鍥綷", \"鏉$姸鍥綷", \"鍖哄煙鍥綷", \"闆疯揪鍥綷", \"浠〃鐩榎", \"K绾垮浘\", \"娣峰悎鍥綷", \"鏃堕棿杞存姌绾縗", \"鏃堕棿杞村尯鍩焅", \"鏁g偣鍥綷", \"姘旀场鍥綷", \"鑷畾涔夌被鍨媆"],\n  //澧炲姞鑷畾涔夊浘琛ㄧ被鍨嬶紝濡傛灉闇�瑕乧ategories锛岃鍦ㄨ繖閲屽姞鍏ユ偍鐨勫浘琛ㄧ被鍨嬶紝渚嬪鏈�鍚庣殑\"demotype\"\n  //鑷畾涔夌被鍨嬫椂闇�瑕佹敞鎰廫"tline\",\"tarea\",\"scatter\",\"bubble\"绛夋椂闂磋酱锛堢煝閲弜杞达級绫诲浘琛紝娌℃湁categories锛屼笉闇�瑕佸姞鍏ategories\n  \"categories\": [\"line\", \"column\", \"mount\", \"bar\", \"area\", \"radar\", \"gauge\", \"candle\", \"mix\", \"demotype\"],\n  //instance涓哄疄渚嬪彉閲忔壙杞藉睘鎬э紝涓嶈鍒犻櫎\n  \"instance\": {},\n  //option涓簅pts鍙奺opts鎵胯浇灞炴�э紝涓嶈鍒犻櫎\n  \"option\": {},\n  //涓嬮潰鏄嚜瀹氫箟format閰嶇疆锛屽洜闄5绔鐨勫叾浠栫鏃犳硶閫氳繃props浼犻�掑嚱鏁帮紝鍙兘閫氳繃姝ゅ睘鎬у搴斾笅鏍囩殑鏂瑰紡鏉ユ浛鎹n  \"formatter\": {\n    \"yAxisDemo1\": function yAxisDemo1(val, index, opts) {return val + '鍏�';},\n    \"yAxisDemo2\": function yAxisDemo2(val, index, opts) {return val.toFixed(2);},\n    \"xAxisDemo1\": function xAxisDemo1(val, index, opts) {return val + '骞�';},\n    \"xAxisDemo2\": function xAxisDemo2(val, index, opts) {return formatDateTime(val, 'h:m');},\n    \"seriesDemo1\": function seriesDemo1(val, index, series, opts) {return val + '鍏�';},\n    \"tooltipDemo1\": function tooltipDemo1(item, category, index, opts) {\n      if (index == 0) {\n        return '闅忎究鐢�' + item.data + '骞�';\n      } else {\n        return '鍏朵粬鎴戞病鏀�' + item.data + '澶�';\n      }\n    },\n    \"pieDemo\": function pieDemo(val, index, series, opts) {\n      if (index !== undefined) {\n        return series[index].name + '锛�' + series[index].data + '鍏�';\n      }\n    } },\n\n  //杩欓噷婕旂ず浜嗚嚜瀹氫箟鎮ㄧ殑鍥捐〃绫诲瀷鐨刼ption锛屽彲浠ラ殢鎰忓懡鍚嶏紝涔嬪悗鍦ㄧ粍浠朵笂 type=\"demotype\" 鍚庯紝缁勪欢浼氳皟鐢ㄨ繖涓姳鎷彿閲岀殑option锛屽鏋滅粍浠朵笂杩樺瓨鍦╫pts鍙傛暟锛屼細灏哾emotype涓巓pts涓璷ption鍚堝苟鍚庢覆鏌撳浘琛ㄣ�俓n  \"demotype\": {\n    //鎴戣繖閲屾妸鏇茬嚎鍥惧綋鍋氫簡鑷畾涔夊浘琛ㄧ被鍨嬶紝鎮ㄥ彲浠ユ牴鎹渶瑕侀殢鎰忔寚瀹氱被鍨嬫垨閰嶇疆\n    \"type\": \"line\",\n    \"color\": color,\n    \"padding\": [15, 10, 0, 15],\n    \"xAxis\": {\n      \"disableGrid\": true },\n\n    \"yAxis\": {\n      \"gridType\": \"dash\",\n      \"dashLength\": 2 },\n\n    \"legend\": {},\n\n    \"extra\": {\n      \"line\": {\n        \"type\": \"curve\",\n        \"width\": 2 } } },\n\n\n\n  //涓嬮潰鏄嚜瀹氫箟閰嶇疆锛岃娣诲姞椤圭洰鎵�闇�鐨勯�氱敤閰嶇疆\n  \"pie\": {\n    \"type\": \"pie\",\n    \"color\": color,\n    \"padding\": [5, 5, 5, 5],\n    \"extra\": {\n      \"pie\": {\n        \"activeOpacity\": 0.5,\n        \"activeRadius\": 10,\n        \"offsetAngle\": 0,\n        \"labelWidth\": 15,\n        \"border\": true,\n        \"borderWidth\": 3,\n        \"borderColor\": \"#FFFFFF\" } } },\n\n\n\n  \"ring\": {\n    \"type\": \"ring\",\n    \"color\": color,\n    \"padding\": [5, 5, 5, 5],\n    \"rotate\": false,\n    \"dataLabel\": true,\n    \"legend\": {\n      \"show\": true,\n      \"position\": \"right\",\n      \"lineHeight\": 25 },\n\n    \"title\": {\n      \"name\": \"鏀剁泭鐜嘰",\n      \"fontSize\": 15,\n      \"color\": \"#666666\" },\n\n    \"subtitle\": {\n      \"name\": \"70%\",\n      \"fontSize\": 25,\n      \"color\": \"#7cb5ec\" },\n\n    \"extra\": {\n      \"ring\": {\n        \"ringWidth\": 30,\n        \"activeOpacity\": 0.5,\n        \"activeRadius\": 10,\n        \"offsetAngle\": 0,\n        \"labelWidth\": 15,\n        \"border\": true,\n        \"borderWidth\": 3,\n        \"borderColor\": \"#FFFFFF\" } } },\n\n\n\n  \"rose\": {\n    \"type\": \"rose\",\n    \"color\": color,\n    \"padding\": [5, 5, 5, 5],\n    \"legend\": {\n      \"show\": true,\n      \"position\": \"left\",\n      \"lineHeight\": 25 },\n\n    \"extra\": {\n      \"rose\": {\n        \"type\": \"area\",\n        \"minRadius\": 50,\n        \"activeOpacity\": 0.5,\n        \"activeRadius\": 10,\n        \"offsetAngle\": 0,\n        \"labelWidth\": 15,\n        \"border\": false,\n        \"borderWidth\": 2,\n        \"borderColor\": \"#FFFFFF\" } } },\n\n\n\n  \"word\": {\n    \"type\": \"word\",\n    \"color\": color,\n    \"extra\": {\n      \"word\": {\n        \"type\": \"normal\",\n        \"autoColors\": false } } },\n\n\n\n  \"funnel\": {\n    \"type\": \"funnel\",\n    \"color\": color,\n    \"padding\": [15, 15, 0, 15],\n    \"extra\": {\n      \"funnel\": {\n        \"activeOpacity\": 0.3,\n        \"activeWidth\": 10,\n        \"border\": true,\n        \"borderWidth\": 2,\n        \"borderColor\": \"#FFFFFF\",\n        \"fillOpacity\": 1,\n        \"labelAlign\": \"right\" } } },\n\n\n\n  \"map\": {\n    \"type\": \"map\",\n    \"color\": color,\n    \"padding\": [0, 0, 0, 0],\n    \"dataLabel\": true,\n    \"extra\": {\n      \"map\": {\n        \"border\": true,\n        \"borderWidth\": 1,\n        \"borderColor\": \"#666666\",\n        \"fillOpacity\": 0.6,\n        \"activeBorderColor\": \"#F04864\",\n        \"activeFillColor\": \"#FACC14\",\n        \"activeFillOpacity\": 1 } } },\n\n\n\n  \"arcbar\": {\n    \"type\": \"arcbar\",\n    \"color\": color,\n    \"title\": {\n      \"name\": \"鐧惧垎姣擻",\n      \"fontSize\": 25,\n      \"color\": \"#00FF00\" },\n\n    \"subtitle\": {\n      \"name\": \"榛樿鏍囬\",\n      \"fontSize\": 15,\n      \"color\": \"#666666\" },\n\n    \"extra\": {\n      \"arcbar\": {\n        \"type\": \"default\",\n        \"width\": 12,\n        \"backgroundColor\": \"#E9E9E9\",\n        \"startAngle\": 0.75,\n        \"endAngle\": 0.25,\n        \"gap\": 2 } } },\n\n\n\n  \"line\": {\n    \"type\": \"line\",\n    \"color\": color,\n    \"padding\": [15, 10, 0, 15],\n    \"xAxis\": {\n      \"disableGrid\": true },\n\n    \"yAxis\": {\n      \"gridType\": \"dash\",\n      \"dashLength\": 2 },\n\n    \"legend\": {},\n\n    \"extra\": {\n      \"line\": {\n        \"type\": \"straight\",\n        \"width\": 2 } } },\n\n\n\n  \"tline\": {\n    \"type\": \"line\",\n    \"color\": color,\n    \"padding\": [15, 10, 0, 15],\n    \"xAxis\": {\n      \"disableGrid\": false,\n      \"boundaryGap\": \"justify\" },\n\n    \"yAxis\": {\n      \"gridType\": \"dash\",\n      \"dashLength\": 2,\n      \"data\": [\n      {\n        \"min\": 0,\n        \"max\": 80 }] },\n\n\n\n    \"legend\": {},\n\n    \"extra\": {\n      \"line\": {\n        \"type\": \"curve\",\n        \"width\": 2 } } },\n\n\n\n  \"tarea\": {\n    \"type\": \"area\",\n    \"color\": color,\n    \"padding\": [15, 10, 0, 15],\n    \"xAxis\": {\n      \"disableGrid\": true,\n      \"boundaryGap\": \"justify\" },\n\n    \"yAxis\": {\n      \"gridType\": \"dash\",\n      \"dashLength\": 2,\n      \"data\": [\n      {\n        \"min\": 0,\n        \"max\": 80 }] },\n\n\n\n    \"legend\": {},\n\n    \"extra\": {\n      \"area\": {\n        \"type\": \"curve\",\n        \"opacity\": 0.2,\n        \"addLine\": true,\n        \"width\": 2,\n        \"gradient\": true } } },\n\n\n\n  \"column\": {\n    \"type\": \"column\",\n    \"color\": color,\n    \"padding\": [15, 15, 0, 5],\n    \"xAxis\": {\n      \"disableGrid\": true },\n\n    \"yAxis\": {\n      \"data\": [{ \"min\": 0 }] },\n\n    \"legend\": {},\n\n    \"extra\": {\n      \"column\": {\n        \"type\": \"group\",\n        \"width\": 30,\n        \"activeBgColor\": \"#000000\",\n        \"activeBgOpacity\": 0.08 } } },\n\n\n\n  \"mount\": {\n    \"type\": \"mount\",\n    \"color\": color,\n    \"padding\": [15, 15, 0, 5],\n    \"xAxis\": {\n      \"disableGrid\": true },\n\n    \"yAxis\": {\n      \"data\": [{ \"min\": 0 }] },\n\n    \"legend\": {},\n\n    \"extra\": {\n      \"mount\": {\n        \"type\": \"mount\",\n        \"widthRatio\": 1.5 } } },\n\n\n\n  \"bar\": {\n    \"type\": \"bar\",\n    \"color\": color,\n    \"padding\": [15, 30, 0, 5],\n    \"xAxis\": {\n      \"boundaryGap\": \"justify\",\n      \"disableGrid\": false,\n      \"min\": 0,\n      \"axisLine\": false },\n\n    \"yAxis\": {},\n\n    \"legend\": {},\n\n    \"extra\": {\n      \"bar\": {\n        \"type\": \"group\",\n        \"width\": 30,\n        \"meterBorde\": 1,\n        \"meterFillColor\": \"#FFFFFF\",\n        \"activeBgColor\": \"#000000\",\n        \"activeBgOpacity\": 0.08 } } },\n\n\n\n  \"area\": {\n    \"type\": \"area\",\n    \"color\": color,\n    \"padding\": [15, 15, 0, 15],\n    \"xAxis\": {\n      \"disableGrid\": true },\n\n    \"yAxis\": {\n      \"gridType\": \"dash\",\n      \"dashLength\": 2 },\n\n    \"legend\": {},\n\n    \"extra\": {\n      \"area\": {\n        \"type\": \"straight\",\n        \"opacity\": 0.2,\n        \"addLine\": true,\n        \"width\": 2,\n        \"gradient\": false } } },\n\n\n\n  \"radar\": {\n    \"type\": \"radar\",\n    \"color\": color,\n    \"padding\": [5, 5, 5, 5],\n    \"dataLabel\": false,\n    \"legend\": {\n      \"show\": true,\n      \"position\": \"right\",\n      \"lineHeight\": 25 },\n\n    \"extra\": {\n      \"radar\": {\n        \"gridType\": \"radar\",\n        \"gridColor\": \"#CCCCCC\",\n        \"gridCount\": 3,\n        \"opacity\": 0.2,\n        \"max\": 200 } } },\n\n\n\n  \"gauge\": {\n    \"type\": \"gauge\",\n    \"color\": color,\n    \"title\": {\n      \"name\": \"66Km/H\",\n      \"fontSize\": 25,\n      \"color\": \"#2fc25b\",\n      \"offsetY\": 50 },\n\n    \"subtitle\": {\n      \"name\": \"瀹炴椂閫熷害\",\n      \"fontSize\": 15,\n      \"color\": \"#1890ff\",\n      \"offsetY\": -50 },\n\n    \"extra\": {\n      \"gauge\": {\n        \"type\": \"default\",\n        \"width\": 30,\n        \"labelColor\": \"#666666\",\n        \"startAngle\": 0.75,\n        \"endAngle\": 0.25,\n        \"startNumber\": 0,\n        \"endNumber\": 100,\n        \"labelFormat\": \"\",\n        \"splitLine\": {\n          \"fixRadius\": 0,\n          \"splitNumber\": 10,\n          \"width\": 30,\n          \"color\": \"#FFFFFF\",\n          \"childNumber\": 5,\n          \"childWidth\": 12 },\n\n        \"pointer\": {\n          \"width\": 24,\n          \"color\": \"auto\" } } } },\n\n\n\n\n  \"candle\": {\n    \"type\": \"candle\",\n    \"color\": color,\n    \"padding\": [15, 15, 0, 15],\n    \"enableScroll\": true,\n    \"enableMarkLine\": true,\n    \"dataLabel\": false,\n    \"xAxis\": {\n      \"labelCount\": 4,\n      \"itemCount\": 40,\n      \"disableGrid\": true,\n      \"gridColor\": \"#CCCCCC\",\n      \"gridType\": \"solid\",\n      \"dashLength\": 4,\n      \"scrollShow\": true,\n      \"scrollAlign\": \"left\",\n      \"scrollColor\": \"#A6A6A6\",\n      \"scrollBackgroundColor\": \"#EFEBEF\" },\n\n    \"yAxis\": {},\n\n    \"legend\": {},\n\n    \"extra\": {\n      \"candle\": {\n        \"color\": {\n          \"upLine\": \"#f04864\",\n          \"upFill\": \"#f04864\",\n          \"downLine\": \"#2fc25b\",\n          \"downFill\": \"#2fc25b\" },\n\n        \"average\": {\n          \"show\": true,\n          \"name\": [\"MA5\", \"MA10\", \"MA30\"],\n          \"day\": [5, 10, 20],\n          \"color\": [\"#1890ff\", \"#2fc25b\", \"#facc14\"] } },\n\n\n      \"markLine\": {\n        \"type\": \"dash\",\n        \"dashLength\": 5,\n        \"data\": [\n        {\n          \"value\": 2150,\n          \"lineColor\": \"#f04864\",\n          \"showLabel\": true },\n\n        {\n          \"value\": 2350,\n          \"lineColor\": \"#f04864\",\n          \"showLabel\": true }] } } },\n\n\n\n\n\n  \"mix\": {\n    \"type\": \"mix\",\n    \"color\": color,\n    \"padding\": [15, 15, 0, 15],\n    \"xAxis\": {\n      \"disableGrid\": true },\n\n    \"yAxis\": {\n      \"disabled\": false,\n      \"disableGrid\": false,\n      \"splitNumber\": 5,\n      \"gridType\": \"dash\",\n      \"dashLength\": 4,\n      \"gridColor\": \"#CCCCCC\",\n      \"padding\": 10,\n      \"showTitle\": true,\n      \"data\": [] },\n\n    \"legend\": {},\n\n    \"extra\": {\n      \"mix\": {\n        \"column\": {\n          \"width\": 20 } } } },\n\n\n\n\n  \"scatter\": {\n    \"type\": \"scatter\",\n    \"color\": color,\n    \"padding\": [15, 15, 0, 15],\n    \"dataLabel\": false,\n    \"xAxis\": {\n      \"disableGrid\": false,\n      \"gridType\": \"dash\",\n      \"splitNumber\": 5,\n      \"boundaryGap\": \"justify\",\n      \"min\": 0 },\n\n    \"yAxis\": {\n      \"disableGrid\": false,\n      \"gridType\": \"dash\" },\n\n    \"legend\": {},\n\n    \"extra\": {\n      \"scatter\": {} } },\n\n\n\n  \"bubble\": {\n    \"type\": \"bubble\",\n    \"color\": color,\n    \"padding\": [15, 15, 0, 15],\n    \"xAxis\": {\n      \"disableGrid\": false,\n      \"gridType\": \"dash\",\n      \"splitNumber\": 5,\n      \"boundaryGap\": \"justify\",\n      \"min\": 0,\n      \"max\": 250 },\n\n    \"yAxis\": {\n      \"disableGrid\": false,\n      \"gridType\": \"dash\",\n      \"data\": [{\n        \"min\": 0,\n        \"max\": 150 }] },\n\n\n    \"legend\": {},\n\n    \"extra\": {\n      \"bubble\": {\n        \"border\": 2,\n        \"opacity\": 0.5 } } } };var _default =\n\n\n\n\n\ncfu;exports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9qc19zZGsvdS1jaGFydHMvY29uZmlnLXVjaGFydHMuanMiXSwibmFtZXMiOlsiY29sb3IiLCJmb3JtYXREYXRlVGltZSIsInRpbWVTdGFtcCIsInJldHVyblR5cGUiLCJkYXRlIiwiRGF0ZSIsInNldFRpbWUiLCJ5IiwiZ2V0RnVsbFllYXIiLCJtIiwiZ2V0TW9udGgiLCJkIiwiZ2V0RGF0ZSIsImgiLCJnZXRIb3VycyIsIm1pbnV0ZSIsImdldE1pbnV0ZXMiLCJzZWNvbmQiLCJnZXRTZWNvbmRzIiwiY2Z1IiwidmFsIiwiaW5kZXgiLCJvcHRzIiwidG9GaXhlZCIsInNlcmllcyIsIml0ZW0iLCJjYXRlZ29yeSIsImRhdGEiLCJ1bmRlZmluZWQiLCJuYW1lIl0sIm1hcHBpbmdzIjoid0ZBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWtCQTtBQUNBLElBQU1BLEtBQUssR0FBRyxDQUFDLFNBQUQsRUFBWSxTQUFaLEVBQXVCLFNBQXZCLEVBQWtDLFNBQWxDLEVBQTZDLFNBQTdDLEVBQXdELFNBQXhELEVBQW1FLFNBQW5FLEVBQThFLFNBQTlFLEVBQXlGLFNBQXpGLENBQWQ7O0FBRUE7QUFDQSxJQUFNQyxjQUFjLEdBQUcsU0FBakJBLGNBQWlCLENBQUNDLFNBQUQsRUFBWUMsVUFBWixFQUF5QjtBQUM5QyxNQUFJQyxJQUFJLEdBQUcsSUFBSUMsSUFBSixFQUFYO0FBQ0FELE1BQUksQ0FBQ0UsT0FBTCxDQUFhSixTQUFTLEdBQUcsSUFBekI7QUFDQSxNQUFJSyxDQUFDLEdBQUdILElBQUksQ0FBQ0ksV0FBTCxFQUFSO0FBQ0EsTUFBSUMsQ0FBQyxHQUFHTCxJQUFJLENBQUNNLFFBQUwsS0FBa0IsQ0FBMUI7QUFDQUQsR0FBQyxHQUFHQSxDQUFDLEdBQUcsRUFBSixHQUFVLE1BQU1BLENBQWhCLEdBQXFCQSxDQUF6QjtBQUNBLE1BQUlFLENBQUMsR0FBR1AsSUFBSSxDQUFDUSxPQUFMLEVBQVI7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RixFQXRCSCxFQTlnQkUsRUFBWixDOzs7Ozs7QUE2aUJlbUIsRyIsImZpbGUiOiI2OS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIHVDaGFydHPCrlxyXG4gKiDpq5jmgKfog73ot6jlubPlj7Dlm77ooajlupPvvIzmlK/mjIFINeOAgUFQUOOAgeWwj+eoi+W6j++8iOW+ruS/oS/mlK/ku5jlrp0v55m+5bqmL+WktOadoS9RUS8zNjDvvInjgIFWdWXjgIFUYXJv562J5pSv5oyBY2FudmFz55qE5qGG5p625bmz5Y+wXHJcbiAqIENvcHlyaWdodCAoYykgMjAyMSBRSVVOwq7np4vkupEgaHR0cHM6Ly93d3cudWNoYXJ0cy5jbiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG4gKiBMaWNlbnNlZCAoIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMCApXHJcbiAqIOWkjeWItuS9v+eUqOivt+S/neeVmeacrOauteazqOmHiu+8jOaEn+iwouaUr+aMgeW8gOa6kO+8gVxyXG4gKiBcclxuICogdUNoYXJ0c8Ku5a6Y5pa5572R56uZXHJcbiAqIGh0dHBzOi8vd3d3LnVDaGFydHMuY25cclxuICogXHJcbiAqIOW8gOa6kOWcsOWdgDpcclxuICogaHR0cHM6Ly9naXRlZS5jb20vdUNoYXJ0cy91Q2hhcnRzXHJcbiAqIFxyXG4gKiB1bmktYXBw5o+S5Lu25biC5Zy65Zyw5Z2A77yaXHJcbiAqIGh0dHA6Ly9leHQuZGNsb3VkLm5ldC5jbi9wbHVnaW4/aWQ9MjcxXHJcbiAqIFxyXG4gKi9cclxuXHJcbi8vIOS4u+mimOminOiJsumFjee9ru+8muWmguavj+S4quWbvuihqOexu+Wei+mcgOimgeS4jeWQjOS4u+mimO+8jOivt+WcqOWvueW6lOWbvuihqOexu+Wei+S4iuabtOaUuWNvbG9y5bGe5oCnXHJcbmNvbnN0IGNvbG9yID0gWycjMTg5MEZGJywgJyM5MUNCNzQnLCAnI0ZBQzg1OCcsICcjRUU2NjY2JywgJyM3M0MwREUnLCAnIzNDQTI3MicsICcjRkM4NDUyJywgJyM5QTYwQjQnLCAnI2VhN2NjYyddO1xyXG5cclxuLy/kuovku7bovazmjaLlh73mlbDvvIzkuLvopoHnlKjkvZzmoLzlvI/ljJZ46L205Li65pe26Ze06L2077yM5qC55o2u6ZyA5rGC6Ieq6KGM5L+u5pS5XHJcbmNvbnN0IGZvcm1hdERhdGVUaW1lID0gKHRpbWVTdGFtcCwgcmV0dXJuVHlwZSk9PntcclxuICB2YXIgZGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgZGF0ZS5zZXRUaW1lKHRpbWVTdGFtcCAqIDEwMDApO1xyXG4gIHZhciB5ID0gZGF0ZS5nZXRGdWxsWWVhcigpO1xyXG4gIHZhciBtID0gZGF0ZS5nZXRNb250aCgpICsgMTtcclxuICBtID0gbSA8IDEwID8gKCcwJyArIG0pIDogbTtcclxuICB2YXIgZCA9IGRhdGUuZ2V0RGF0ZSgpO1xyXG4gIGQgPSBkIDwgMTAgPyAoJzAnICsgZCkgOiBkO1xyXG4gIHZhciBoID0gZGF0ZS5nZXRIb3VycygpO1xyXG4gIGggPSBoIDwgMTAgPyAoJzAnICsgaCkgOiBoO1xyXG4gIHZhciBtaW51dGUgPSBkYXRlLmdldE1pbnV0ZXMoKTtcclxuICB2YXIgc2Vjb25kID0gZGF0ZS5nZXRTZWNvbmRzKCk7XHJcbiAgbWludXRlID0gbWludXRlIDwgMTAgPyAoJzAnICsgbWludXRlKSA6IG1pbnV0ZTtcclxuICBzZWNvbmQgPSBzZWNvbmQgPCAxMCA/ICgnMCcgKyBzZWNvbmQpIDogc2Vjb25kO1xyXG4gIGlmKHJldHVyblR5cGUgPT0gJ2Z1bGwnKXtyZXR1cm4geSArICctJyArIG0gKyAnLScgKyBkICsgJyAnKyBoICsnOicgKyBtaW51dGUgKyAnOicgKyBzZWNvbmQ7fVxyXG4gIGlmKHJldHVyblR5cGUgPT0gJ3ktbS1kJyl7cmV0dXJuIHkgKyAnLScgKyBtICsgJy0nICsgZDt9XHJcbiAgaWYocmV0dXJuVHlwZSA9PSAnaDptJyl7cmV0dXJuICBoICsnOicgKyBtaW51dGU7fVxyXG4gIGlmKHJldHVyblR5cGUgPT0gJ2g6bTpzJyl7cmV0dXJuICBoICsnOicgKyBtaW51dGUgKyc6JyArIHNlY29uZDt9XHJcbiAgcmV0dXJuIFt5LCBtLCBkLCBoLCBtaW51dGUsIHNlY29uZF07XHJcbn1cclxuXHJcbmNvbnN0IGNmdSA9IHtcclxuICAvL2RlbW90eXBl5Li66Ieq5a6a5LmJ5Zu+6KGo57G75Z6L77yM5LiA6Iis5LiN6ZyA6KaB6Ieq5a6a5LmJ5Zu+6KGo57G75Z6L77yM5Y+q6ZyA6KaB5pS55qC56IqC54K55LiK5a+55bqU55qE57G75Z6L5Y2z5Y+vXHJcblx0XCJ0eXBlXCI6W1wicGllXCIsXCJyaW5nXCIsXCJyb3NlXCIsXCJ3b3JkXCIsXCJmdW5uZWxcIixcIm1hcFwiLFwiYXJjYmFyXCIsXCJsaW5lXCIsXCJjb2x1bW5cIixcIm1vdW50XCIsXCJiYXJcIixcImFyZWFcIixcInJhZGFyXCIsXCJnYXVnZVwiLFwiY2FuZGxlXCIsXCJtaXhcIixcInRsaW5lXCIsXCJ0YXJlYVwiLFwic2NhdHRlclwiLFwiYnViYmxlXCIsXCJkZW1vdHlwZVwiXSxcclxuXHRcInJhbmdlXCI6W1wi6aW854q25Zu+XCIsXCLlnIbnjq/lm75cIixcIueOq+eRsOWbvlwiLFwi6K+N5LqR5Zu+XCIsXCLmvI/mlpflm75cIixcIuWcsOWbvlwiLFwi5ZyG5byn6L+b5bqm5p2hXCIsXCLmipjnur/lm75cIixcIuafseeKtuWbvlwiLFwi5bGx5bOw5Zu+XCIsXCLmnaHnirblm75cIixcIuWMuuWfn+WbvlwiLFwi6Zu36L6+5Zu+XCIsXCLku6rooajnm5hcIixcIkvnur/lm75cIixcIua3t+WQiOWbvlwiLFwi5pe26Ze06L205oqY57q/XCIsXCLml7bpl7TovbTljLrln59cIixcIuaVo+eCueWbvlwiLFwi5rCU5rOh5Zu+XCIsXCLoh6rlrprkuYnnsbvlnotcIl0sXHJcbiAgLy/lop7liqDoh6rlrprkuYnlm77ooajnsbvlnovvvIzlpoLmnpzpnIDopoFjYXRlZ29yaWVz77yM6K+35Zyo6L+Z6YeM5Yqg5YWl5oKo55qE5Zu+6KGo57G75Z6L77yM5L6L5aaC5pyA5ZCO55qEXCJkZW1vdHlwZVwiXHJcbiAgLy/oh6rlrprkuYnnsbvlnovml7bpnIDopoHms6jmhI9cInRsaW5lXCIsXCJ0YXJlYVwiLFwic2NhdHRlclwiLFwiYnViYmxlXCLnrYnml7bpl7TovbTvvIjnn6Lph4946L2077yJ57G75Zu+6KGo77yM5rKh5pyJY2F0ZWdvcmllc++8jOS4jemcgOimgeWKoOWFpWNhdGVnb3JpZXNcclxuXHRcImNhdGVnb3JpZXNcIjpbXCJsaW5lXCIsXCJjb2x1bW5cIixcIm1vdW50XCIsXCJiYXJcIixcImFyZWFcIixcInJhZGFyXCIsXCJnYXVnZVwiLFwiY2FuZGxlXCIsXCJtaXhcIixcImRlbW90eXBlXCJdLFxyXG4gIC8vaW5zdGFuY2XkuLrlrp7kvovlj5jph4/mib/ovb3lsZ7mgKfvvIzkuI3opoHliKDpmaRcclxuICBcImluc3RhbmNlXCI6e30sXHJcbiAgLy9vcHRpb27kuLpvcHRz5Y+KZW9wdHPmib/ovb3lsZ7mgKfvvIzkuI3opoHliKDpmaRcclxuICBcIm9wdGlvblwiOnt9LFxyXG4gIC8v5LiL6Z2i5piv6Ieq5a6a5LmJZm9ybWF06YWN572u77yM5Zug6ZmkSDXnq6/lpJbnmoTlhbbku5bnq6/ml6Dms5XpgJrov4dwcm9wc+S8oOmAkuWHveaVsO+8jOWPquiDvemAmui/h+atpOWxnuaAp+WvueW6lOS4i+agh+eahOaWueW8j+adpeabv+aNolxyXG4gIFwiZm9ybWF0dGVyXCI6e1xyXG4gICAgXCJ5QXhpc0RlbW8xXCI6ZnVuY3Rpb24odmFsLCBpbmRleCwgb3B0cyl7cmV0dXJuIHZhbCsn5YWDJ30sXHJcbiAgICBcInlBeGlzRGVtbzJcIjpmdW5jdGlvbih2YWwsIGluZGV4LCBvcHRzKXtyZXR1cm4gdmFsLnRvRml4ZWQoMil9LFxyXG4gICAgXCJ4QXhpc0RlbW8xXCI6ZnVuY3Rpb24odmFsLCBpbmRleCwgb3B0cyl7cmV0dXJuIHZhbCsn5bm0Jzt9LFxyXG4gICAgXCJ4QXhpc0RlbW8yXCI6ZnVuY3Rpb24odmFsLCBpbmRleCwgb3B0cyl7cmV0dXJuIGZvcm1hdERhdGVUaW1lKHZhbCwnaDptJyl9LFxyXG4gICAgXCJzZXJpZXNEZW1vMVwiOmZ1bmN0aW9uKHZhbCwgaW5kZXgsIHNlcmllcywgb3B0cyl7cmV0dXJuIHZhbCsn5YWDJ30sXHJcbiAgICBcInRvb2x0aXBEZW1vMVwiOmZ1bmN0aW9uKGl0ZW0sIGNhdGVnb3J5LCBpbmRleCwgb3B0cyl7XHJcbiAgICAgIGlmKGluZGV4PT0wKXtcclxuICAgICAgXHRyZXR1cm4gJ+maj+S+v+eUqCcraXRlbS5kYXRhKyflubQnXHJcbiAgICAgIH1lbHNle1xyXG4gICAgICBcdHJldHVybiAn5YW25LuW5oiR5rKh5pS5JytpdGVtLmRhdGErJ+WkqSdcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIFwicGllRGVtb1wiOmZ1bmN0aW9uKHZhbCwgaW5kZXgsIHNlcmllcywgb3B0cyl7XHJcbiAgICAgIGlmKGluZGV4ICE9PSB1bmRlZmluZWQpe1xyXG4gICAgICAgIHJldHVybiBzZXJpZXNbaW5kZXhdLm5hbWUrJ++8micrc2VyaWVzW2luZGV4XS5kYXRhKyflhYMnXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgfSxcclxuICAvL+i/memHjOa8lOekuuS6huiHquWumuS5ieaCqOeahOWbvuihqOexu+Wei+eahG9wdGlvbu+8jOWPr+S7pemaj+aEj+WRveWQje+8jOS5i+WQjuWcqOe7hOS7tuS4iiB0eXBlPVwiZGVtb3R5cGVcIiDlkI7vvIznu4Tku7bkvJrosIPnlKjov5nkuKroirHmi6zlj7fph4znmoRvcHRpb27vvIzlpoLmnpznu4Tku7bkuIrov5jlrZjlnKhvcHRz5Y+C5pWw77yM5Lya5bCGZGVtb3R5cGXkuI5vcHRz5Litb3B0aW9u5ZCI5bm25ZCO5riy5p+T5Zu+6KGo44CCXHJcbiAgXCJkZW1vdHlwZVwiOntcclxuICAgIC8v5oiR6L+Z6YeM5oqK5puy57q/5Zu+5b2T5YGa5LqG6Ieq5a6a5LmJ5Zu+6KGo57G75Z6L77yM5oKo5Y+v5Lul5qC55o2u6ZyA6KaB6ZqP5oSP5oyH5a6a57G75Z6L5oiW6YWN572uXHJcbiAgICBcInR5cGVcIjogXCJsaW5lXCIsXHJcbiAgICBcImNvbG9yXCI6IGNvbG9yLFxyXG4gICAgXCJwYWRkaW5nXCI6IFsxNSwxMCwwLDE1XSxcclxuICAgIFwieEF4aXNcIjoge1xyXG4gICAgICBcImRpc2FibGVHcmlkXCI6IHRydWUsXHJcbiAgICB9LFxyXG4gICAgXCJ5QXhpc1wiOiB7XHJcbiAgICAgIFwiZ3JpZFR5cGVcIjogXCJkYXNoXCIsXHJcbiAgICAgIFwiZGFzaExlbmd0aFwiOiAyLFxyXG4gICAgfSxcclxuICAgIFwibGVnZW5kXCI6IHtcclxuICAgIH0sXHJcbiAgICBcImV4dHJhXCI6IHtcclxuICAgIFx0XCJsaW5lXCI6IHtcclxuICAgIFx0XHRcInR5cGVcIjogXCJjdXJ2ZVwiLFxyXG4gICAgXHRcdFwid2lkdGhcIjogMlxyXG4gICAgXHR9LFxyXG4gICAgfVxyXG4gIH0sXHJcbiAgLy/kuIvpnaLmmK/oh6rlrprkuYnphY3nva7vvIzor7fmt7vliqDpobnnm67miYDpnIDnmoTpgJrnlKjphY3nva5cclxuXHRcInBpZVwiOntcclxuXHRcdFwidHlwZVwiOiBcInBpZVwiLFxyXG4gICAgXCJjb2xvclwiOiBjb2xvcixcclxuXHRcdFwicGFkZGluZ1wiOiBbNSw1LDUsNV0sXHJcblx0XHRcImV4dHJhXCI6IHtcclxuXHRcdFx0XCJwaWVcIjoge1xyXG5cdFx0XHRcdFwiYWN0aXZlT3BhY2l0eVwiOiAwLjUsXHJcblx0XHRcdFx0XCJhY3RpdmVSYWRpdXNcIjogMTAsXHJcblx0XHRcdFx0XCJvZmZzZXRBbmdsZVwiOiAwLFxyXG5cdFx0XHRcdFwibGFiZWxXaWR0aFwiOiAxNSxcclxuXHRcdFx0XHRcImJvcmRlclwiOiB0cnVlLFxyXG5cdFx0XHRcdFwiYm9yZGVyV2lkdGhcIjogMyxcclxuXHRcdFx0XHRcImJvcmRlckNvbG9yXCI6IFwiI0ZGRkZGRlwiXHJcblx0XHRcdH0sXHJcblx0XHR9XHJcblx0fSxcclxuXHRcInJpbmdcIjp7XHJcblx0XHRcInR5cGVcIjogXCJyaW5nXCIsXHJcbiAgICBcImNvbG9yXCI6IGNvbG9yLFxyXG5cdFx0XCJwYWRkaW5nXCI6IFs1LDUsNSw1XSxcclxuXHRcdFwicm90YXRlXCI6IGZhbHNlLFxyXG5cdFx0XCJkYXRhTGFiZWxcIjogdHJ1ZSxcclxuXHRcdFwibGVnZW5kXCI6IHtcclxuXHRcdFx0XCJzaG93XCI6IHRydWUsXHJcblx0XHRcdFwicG9zaXRpb25cIjogXCJyaWdodFwiLFxyXG4gICAgICBcImxpbmVIZWlnaHRcIjogMjUsXHJcblx0XHR9LFxyXG5cdFx0XCJ0aXRsZVwiOiB7XHJcblx0XHRcdFwibmFtZVwiOiBcIuaUtuebiueOh1wiLFxyXG5cdFx0XHRcImZvbnRTaXplXCI6IDE1LFxyXG5cdFx0XHRcImNvbG9yXCI6IFwiIzY2NjY2NlwiXHJcblx0XHR9LFxyXG5cdFx0XCJzdWJ0aXRsZVwiOiB7XHJcblx0XHRcdFwibmFtZVwiOiBcIjcwJVwiLFxyXG5cdFx0XHRcImZvbnRTaXplXCI6IDI1LFxyXG5cdFx0XHRcImNvbG9yXCI6IFwiIzdjYjVlY1wiXHJcblx0XHR9LFxyXG5cdFx0XCJleHRyYVwiOiB7XHJcblx0XHRcdFwicmluZ1wiOiB7XHJcblx0XHRcdFx0XCJyaW5nV2lkdGhcIjozMCxcclxuXHRcdFx0XHRcImFjdGl2ZU9wYWNpdHlcIjogMC41LFxyXG5cdFx0XHRcdFwiYWN0aXZlUmFkaXVzXCI6IDEwLFxyXG5cdFx0XHRcdFwib2Zmc2V0QW5nbGVcIjogMCxcclxuXHRcdFx0XHRcImxhYmVsV2lkdGhcIjogMTUsXHJcblx0XHRcdFx0XCJib3JkZXJcIjogdHJ1ZSxcclxuXHRcdFx0XHRcImJvcmRlcldpZHRoXCI6IDMsXHJcblx0XHRcdFx0XCJib3JkZXJDb2xvclwiOiBcIiNGRkZGRkZcIlxyXG5cdFx0XHR9LFxyXG5cdFx0fSxcclxuXHR9LFxyXG5cdFwicm9zZVwiOntcclxuXHRcdFwidHlwZVwiOiBcInJvc2VcIixcclxuICAgIFwiY29sb3JcIjogY29sb3IsXHJcblx0XHRcInBhZGRpbmdcIjogWzUsNSw1LDVdLFxyXG5cdFx0XCJsZWdlbmRcIjoge1xyXG5cdFx0XHRcInNob3dcIjogdHJ1ZSxcclxuXHRcdFx0XCJwb3NpdGlvblwiOiBcImxlZnRcIixcclxuICAgICAgXCJsaW5lSGVpZ2h0XCI6IDI1LFxyXG5cdFx0fSxcclxuXHRcdFwiZXh0cmFcIjoge1xyXG5cdFx0XHRcInJvc2VcIjoge1xyXG5cdFx0XHRcdFwidHlwZVwiOiBcImFyZWFcIixcclxuXHRcdFx0XHRcIm1pblJhZGl1c1wiOiA1MCxcclxuXHRcdFx0XHRcImFjdGl2ZU9wYWNpdHlcIjogMC41LFxyXG5cdFx0XHRcdFwiYWN0aXZlUmFkaXVzXCI6IDEwLFxyXG5cdFx0XHRcdFwib2Zmc2V0QW5nbGVcIjogMCxcclxuXHRcdFx0XHRcImxhYmVsV2lkdGhcIjogMTUsXHJcblx0XHRcdFx0XCJib3JkZXJcIjogZmFsc2UsXHJcblx0XHRcdFx0XCJib3JkZXJXaWR0aFwiOiAyLFxyXG5cdFx0XHRcdFwiYm9yZGVyQ29sb3JcIjogXCIjRkZGRkZGXCJcclxuXHRcdFx0fSxcclxuXHRcdH1cclxuXHR9LFxyXG5cdFwid29yZFwiOntcclxuXHRcdFwidHlwZVwiOiBcIndvcmRcIixcclxuICAgIFwiY29sb3JcIjogY29sb3IsXHJcblx0XHRcImV4dHJhXCI6IHtcclxuXHRcdFx0XCJ3b3JkXCI6IHtcclxuXHRcdFx0XHRcInR5cGVcIjogXCJub3JtYWxcIixcclxuXHRcdFx0XHRcImF1dG9Db2xvcnNcIjogZmFsc2VcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH0sXHJcblx0XCJmdW5uZWxcIjp7XHJcblx0XHRcInR5cGVcIjogXCJmdW5uZWxcIixcclxuICAgIFwiY29sb3JcIjogY29sb3IsXHJcblx0XHRcInBhZGRpbmdcIjogWzE1LDE1LDAsMTVdLFxyXG5cdFx0XCJleHRyYVwiOiB7XHJcblx0XHRcdFwiZnVubmVsXCI6IHtcclxuXHRcdFx0XHRcImFjdGl2ZU9wYWNpdHlcIjogMC4zLFxyXG5cdFx0XHRcdFwiYWN0aXZlV2lkdGhcIjogMTAsXHJcblx0XHRcdFx0XCJib3JkZXJcIjogdHJ1ZSxcclxuXHRcdFx0XHRcImJvcmRlcldpZHRoXCI6IDIsXHJcblx0XHRcdFx0XCJib3JkZXJDb2xvclwiOiBcIiNGRkZGRkZcIixcclxuXHRcdFx0XHRcImZpbGxPcGFjaXR5XCI6IDEsXHJcblx0XHRcdFx0XCJsYWJlbEFsaWduXCI6IFwicmlnaHRcIlxyXG5cdFx0XHR9LFxyXG5cdFx0fVxyXG5cdH0sXHJcblx0XCJtYXBcIjp7XHJcblx0XHRcInR5cGVcIjogXCJtYXBcIixcclxuICAgIFwiY29sb3JcIjogY29sb3IsXHJcblx0XHRcInBhZGRpbmdcIjogWzAsMCwwLDBdLFxyXG4gICAgXCJkYXRhTGFiZWxcIjogdHJ1ZSxcclxuXHRcdFwiZXh0cmFcIjoge1xyXG5cdFx0XHRcIm1hcFwiOiB7XHJcblx0XHRcdFx0XCJib3JkZXJcIjogdHJ1ZSxcclxuXHRcdFx0XHRcImJvcmRlcldpZHRoXCI6IDEsXHJcblx0XHRcdFx0XCJib3JkZXJDb2xvclwiOiBcIiM2NjY2NjZcIixcclxuXHRcdFx0XHRcImZpbGxPcGFjaXR5XCI6IDAuNixcclxuXHRcdFx0XHRcImFjdGl2ZUJvcmRlckNvbG9yXCI6IFwiI0YwNDg2NFwiLFxyXG5cdFx0XHRcdFwiYWN0aXZlRmlsbENvbG9yXCI6IFwiI0ZBQ0MxNFwiLFxyXG5cdFx0XHRcdFwiYWN0aXZlRmlsbE9wYWNpdHlcIjogMVxyXG5cdFx0XHR9LFxyXG5cdFx0fVxyXG5cdH0sXHJcblx0XCJhcmNiYXJcIjp7XHJcblx0XHRcInR5cGVcIjogXCJhcmNiYXJcIixcclxuICAgIFwiY29sb3JcIjogY29sb3IsXHJcblx0XHRcInRpdGxlXCI6IHtcclxuXHRcdFx0XCJuYW1lXCI6IFwi55m+5YiG5q+UXCIsXHJcblx0XHRcdFwiZm9udFNpemVcIjogMjUsXHJcblx0XHRcdFwiY29sb3JcIjogXCIjMDBGRjAwXCJcclxuXHRcdH0sXHJcblx0XHRcInN1YnRpdGxlXCI6IHtcclxuXHRcdFx0XCJuYW1lXCI6IFwi6buY6K6k5qCH6aKYXCIsXHJcblx0XHRcdFwiZm9udFNpemVcIjogMTUsXHJcblx0XHRcdFwiY29sb3JcIjogXCIjNjY2NjY2XCJcclxuXHRcdH0sXHJcblx0XHRcImV4dHJhXCI6IHtcclxuXHRcdFx0XCJhcmNiYXJcIjoge1xyXG5cdFx0XHRcdFwidHlwZVwiOiBcImRlZmF1bHRcIixcclxuXHRcdFx0XHRcIndpZHRoXCI6IDEyLFxyXG5cdFx0XHRcdFwiYmFja2dyb3VuZENvbG9yXCI6IFwiI0U5RTlFOVwiLFxyXG5cdFx0XHRcdFwic3RhcnRBbmdsZVwiOiAwLjc1LFxyXG5cdFx0XHRcdFwiZW5kQW5nbGVcIjogMC4yNSxcclxuXHRcdFx0XHRcImdhcFwiOiAyXHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9LFxyXG5cdFwibGluZVwiOntcclxuXHRcdFwidHlwZVwiOiBcImxpbmVcIixcclxuICAgIFwiY29sb3JcIjogY29sb3IsXHJcblx0XHRcInBhZGRpbmdcIjogWzE1LDEwLDAsMTVdLFxyXG5cdFx0XCJ4QXhpc1wiOiB7XHJcbiAgICAgIFwiZGlzYWJsZUdyaWRcIjogdHJ1ZSxcclxuXHRcdH0sXHJcblx0XHRcInlBeGlzXCI6IHtcclxuICAgICAgXCJncmlkVHlwZVwiOiBcImRhc2hcIixcclxuICAgICAgXCJkYXNoTGVuZ3RoXCI6IDIsXHJcblx0XHR9LFxyXG5cdFx0XCJsZWdlbmRcIjoge1xyXG5cdFx0fSxcclxuXHRcdFwiZXh0cmFcIjoge1xyXG5cdFx0XHRcImxpbmVcIjoge1xyXG5cdFx0XHRcdFwidHlwZVwiOiBcInN0cmFpZ2h0XCIsXHJcblx0XHRcdFx0XCJ3aWR0aFwiOiAyXHJcblx0XHRcdH0sXHJcblx0XHR9XHJcblx0fSxcclxuICBcInRsaW5lXCI6e1xyXG4gIFx0XCJ0eXBlXCI6IFwibGluZVwiLFxyXG4gICAgXCJjb2xvclwiOiBjb2xvcixcclxuICBcdFwicGFkZGluZ1wiOiBbMTUsMTAsMCwxNV0sXHJcbiAgXHRcInhBeGlzXCI6IHtcclxuICAgICAgXCJkaXNhYmxlR3JpZFwiOiBmYWxzZSxcclxuICAgICAgXCJib3VuZGFyeUdhcFwiOlwianVzdGlmeVwiLFxyXG4gIFx0fSxcclxuICBcdFwieUF4aXNcIjoge1xyXG4gICAgICBcImdyaWRUeXBlXCI6IFwiZGFzaFwiLFxyXG4gICAgICBcImRhc2hMZW5ndGhcIjogMixcclxuICAgICAgXCJkYXRhXCI6W1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIFwibWluXCI6MCxcclxuICAgICAgICAgIFwibWF4XCI6ODBcclxuICAgICAgICB9XHJcbiAgICAgIF1cclxuICBcdH0sXHJcbiAgXHRcImxlZ2VuZFwiOiB7XHJcbiAgXHR9LFxyXG4gIFx0XCJleHRyYVwiOiB7XHJcbiAgXHRcdFwibGluZVwiOiB7XHJcbiAgXHRcdFx0XCJ0eXBlXCI6IFwiY3VydmVcIixcclxuICBcdFx0XHRcIndpZHRoXCI6IDJcclxuICBcdFx0fSxcclxuICBcdH1cclxuICB9LFxyXG4gIFwidGFyZWFcIjp7XHJcbiAgXHRcInR5cGVcIjogXCJhcmVhXCIsXHJcbiAgICBcImNvbG9yXCI6IGNvbG9yLFxyXG4gIFx0XCJwYWRkaW5nXCI6IFsxNSwxMCwwLDE1XSxcclxuICBcdFwieEF4aXNcIjoge1xyXG4gICAgICBcImRpc2FibGVHcmlkXCI6IHRydWUsXHJcbiAgICAgIFwiYm91bmRhcnlHYXBcIjpcImp1c3RpZnlcIixcclxuICBcdH0sXHJcbiAgXHRcInlBeGlzXCI6IHtcclxuICAgICAgXCJncmlkVHlwZVwiOiBcImRhc2hcIixcclxuICAgICAgXCJkYXNoTGVuZ3RoXCI6IDIsXHJcbiAgICAgIFwiZGF0YVwiOltcclxuICAgICAgICB7XHJcbiAgICAgICAgICBcIm1pblwiOjAsXHJcbiAgICAgICAgICBcIm1heFwiOjgwXHJcbiAgICAgICAgfVxyXG4gICAgICBdXHJcbiAgXHR9LFxyXG4gIFx0XCJsZWdlbmRcIjoge1xyXG4gIFx0fSxcclxuICBcdFwiZXh0cmFcIjoge1xyXG4gIFx0XHRcImFyZWFcIjoge1xyXG4gIFx0XHRcdFwidHlwZVwiOiBcImN1cnZlXCIsXHJcbiAgXHRcdFx0XCJvcGFjaXR5XCI6IDAuMixcclxuICBcdFx0XHRcImFkZExpbmVcIjogdHJ1ZSxcclxuICBcdFx0XHRcIndpZHRoXCI6IDIsXHJcbiAgXHRcdFx0XCJncmFkaWVudFwiOiB0cnVlXHJcbiAgXHRcdH0sXHJcbiAgXHR9XHJcbiAgfSxcclxuXHRcImNvbHVtblwiOntcclxuXHRcdFwidHlwZVwiOiBcImNvbHVtblwiLFxyXG4gICAgXCJjb2xvclwiOiBjb2xvcixcclxuXHRcdFwicGFkZGluZ1wiOiBbMTUsMTUsMCw1XSxcclxuXHRcdFwieEF4aXNcIjoge1xyXG4gICAgICBcImRpc2FibGVHcmlkXCI6IHRydWUsXHJcblx0XHR9LFxyXG5cdFx0XCJ5QXhpc1wiOiB7XHJcbiAgICAgIFwiZGF0YVwiOlt7XCJtaW5cIjowfV1cclxuXHRcdH0sXHJcblx0XHRcImxlZ2VuZFwiOiB7XHJcblx0XHR9LFxyXG5cdFx0XCJleHRyYVwiOiB7XHJcblx0XHRcdFwiY29sdW1uXCI6IHtcclxuXHRcdFx0XHRcInR5cGVcIjogXCJncm91cFwiLFxyXG5cdFx0XHRcdFwid2lkdGhcIjogMzAsXHJcblx0XHRcdFx0XCJhY3RpdmVCZ0NvbG9yXCI6IFwiIzAwMDAwMFwiLFxyXG5cdFx0XHRcdFwiYWN0aXZlQmdPcGFjaXR5XCI6IDAuMDhcclxuXHRcdFx0fSxcclxuXHRcdH1cclxuXHR9LFxyXG4gIFwibW91bnRcIjp7XHJcbiAgXHRcInR5cGVcIjogXCJtb3VudFwiLFxyXG4gICAgXCJjb2xvclwiOiBjb2xvcixcclxuICBcdFwicGFkZGluZ1wiOiBbMTUsMTUsMCw1XSxcclxuICBcdFwieEF4aXNcIjoge1xyXG4gICAgICBcImRpc2FibGVHcmlkXCI6IHRydWUsXHJcbiAgXHR9LFxyXG4gIFx0XCJ5QXhpc1wiOiB7XHJcbiAgICAgIFwiZGF0YVwiOlt7XCJtaW5cIjowfV1cclxuICBcdH0sXHJcbiAgXHRcImxlZ2VuZFwiOiB7XHJcbiAgXHR9LFxyXG4gIFx0XCJleHRyYVwiOiB7XHJcbiAgXHRcdFwibW91bnRcIjoge1xyXG4gIFx0XHRcdFwidHlwZVwiOiBcIm1vdW50XCIsXHJcbiAgXHRcdFx0XCJ3aWR0aFJhdGlvXCI6IDEuNSxcclxuICBcdFx0fSxcclxuICBcdH1cclxuICB9LFxyXG4gIFwiYmFyXCI6e1xyXG4gIFx0XCJ0eXBlXCI6IFwiYmFyXCIsXHJcbiAgICBcImNvbG9yXCI6IGNvbG9yLFxyXG4gIFx0XCJwYWRkaW5nXCI6IFsxNSwzMCwwLDVdLFxyXG4gIFx0XCJ4QXhpc1wiOiB7XHJcbiAgICAgIFwiYm91bmRhcnlHYXBcIjpcImp1c3RpZnlcIixcclxuICAgICAgXCJkaXNhYmxlR3JpZFwiOmZhbHNlLFxyXG4gICAgICBcIm1pblwiOjAsXHJcbiAgICAgIFwiYXhpc0xpbmVcIjpmYWxzZVxyXG4gIFx0fSxcclxuICBcdFwieUF4aXNcIjoge1xyXG4gIFx0fSxcclxuICBcdFwibGVnZW5kXCI6IHtcclxuICBcdH0sXHJcbiAgXHRcImV4dHJhXCI6IHtcclxuICBcdFx0XCJiYXJcIjoge1xyXG4gIFx0XHRcdFwidHlwZVwiOiBcImdyb3VwXCIsXHJcbiAgXHRcdFx0XCJ3aWR0aFwiOiAzMCxcclxuICBcdFx0XHRcIm1ldGVyQm9yZGVcIjogMSxcclxuICBcdFx0XHRcIm1ldGVyRmlsbENvbG9yXCI6IFwiI0ZGRkZGRlwiLFxyXG4gIFx0XHRcdFwiYWN0aXZlQmdDb2xvclwiOiBcIiMwMDAwMDBcIixcclxuICBcdFx0XHRcImFjdGl2ZUJnT3BhY2l0eVwiOiAwLjA4XHJcbiAgXHRcdH0sXHJcbiAgXHR9XHJcbiAgfSxcclxuXHRcImFyZWFcIjp7XHJcblx0XHRcInR5cGVcIjogXCJhcmVhXCIsXHJcblx0XHRcImNvbG9yXCI6IGNvbG9yLFxyXG5cdFx0XCJwYWRkaW5nXCI6IFsxNSwxNSwwLDE1XSxcclxuXHRcdFwieEF4aXNcIjoge1xyXG4gICAgICBcImRpc2FibGVHcmlkXCI6IHRydWUsXHJcblx0XHR9LFxyXG5cdFx0XCJ5QXhpc1wiOiB7XHJcbiAgICAgIFwiZ3JpZFR5cGVcIjogXCJkYXNoXCIsXHJcbiAgICAgIFwiZGFzaExlbmd0aFwiOiAyLFxyXG5cdFx0fSxcclxuXHRcdFwibGVnZW5kXCI6IHtcclxuXHRcdH0sXHJcblx0XHRcImV4dHJhXCI6IHtcclxuXHRcdFx0XCJhcmVhXCI6IHtcclxuXHRcdFx0XHRcInR5cGVcIjogXCJzdHJhaWdodFwiLFxyXG5cdFx0XHRcdFwib3BhY2l0eVwiOiAwLjIsXHJcblx0XHRcdFx0XCJhZGRMaW5lXCI6IHRydWUsXHJcblx0XHRcdFx0XCJ3aWR0aFwiOiAyLFxyXG5cdFx0XHRcdFwiZ3JhZGllbnRcIjogZmFsc2VcclxuXHRcdFx0fSxcclxuXHRcdH1cclxuXHR9LFxyXG5cdFwicmFkYXJcIjp7XHJcblx0XHRcInR5cGVcIjogXCJyYWRhclwiLFxyXG5cdFx0XCJjb2xvclwiOiBjb2xvcixcclxuXHRcdFwicGFkZGluZ1wiOiBbNSw1LDUsNV0sXHJcbiAgICBcImRhdGFMYWJlbFwiOiBmYWxzZSxcclxuXHRcdFwibGVnZW5kXCI6IHtcclxuXHRcdFx0XCJzaG93XCI6IHRydWUsXHJcblx0XHRcdFwicG9zaXRpb25cIjogXCJyaWdodFwiLFxyXG4gICAgICBcImxpbmVIZWlnaHRcIjogMjUsXHJcblx0XHR9LFxyXG5cdFx0XCJleHRyYVwiOiB7XHJcblx0XHRcdFwicmFkYXJcIjoge1xyXG5cdFx0XHRcdFwiZ3JpZFR5cGVcIjogXCJyYWRhclwiLFxyXG5cdFx0XHRcdFwiZ3JpZENvbG9yXCI6IFwiI0NDQ0NDQ1wiLFxyXG5cdFx0XHRcdFwiZ3JpZENvdW50XCI6IDMsXHJcblx0XHRcdFx0XCJvcGFjaXR5XCI6IDAuMixcclxuXHRcdFx0XHRcIm1heFwiOiAyMDBcclxuXHRcdFx0fSxcclxuXHRcdH1cclxuXHR9LFxyXG5cdFwiZ2F1Z2VcIjp7XHJcblx0XHRcInR5cGVcIjogXCJnYXVnZVwiLFxyXG5cdFx0XCJjb2xvclwiOiBjb2xvcixcclxuXHRcdFwidGl0bGVcIjoge1xyXG5cdFx0XHRcIm5hbWVcIjogXCI2NkttL0hcIixcclxuXHRcdFx0XCJmb250U2l6ZVwiOiAyNSxcclxuXHRcdFx0XCJjb2xvclwiOiBcIiMyZmMyNWJcIixcclxuXHRcdFx0XCJvZmZzZXRZXCI6IDUwXHJcblx0XHR9LFxyXG5cdFx0XCJzdWJ0aXRsZVwiOiB7XHJcblx0XHRcdFwibmFtZVwiOiBcIuWunuaXtumAn+W6plwiLFxyXG5cdFx0XHRcImZvbnRTaXplXCI6IDE1LFxyXG5cdFx0XHRcImNvbG9yXCI6IFwiIzE4OTBmZlwiLFxyXG5cdFx0XHRcIm9mZnNldFlcIjogLTUwXHJcblx0XHR9LFxyXG5cdFx0XCJleHRyYVwiOiB7XHJcblx0XHRcdFwiZ2F1Z2VcIjoge1xyXG5cdFx0XHRcdFwidHlwZVwiOiBcImRlZmF1bHRcIixcclxuXHRcdFx0XHRcIndpZHRoXCI6IDMwLFxyXG5cdFx0XHRcdFwibGFiZWxDb2xvclwiOiBcIiM2NjY2NjZcIixcclxuXHRcdFx0XHRcInN0YXJ0QW5nbGVcIjogMC43NSxcclxuXHRcdFx0XHRcImVuZEFuZ2xlXCI6IDAuMjUsXHJcblx0XHRcdFx0XCJzdGFydE51bWJlclwiOiAwLFxyXG5cdFx0XHRcdFwiZW5kTnVtYmVyXCI6IDEwMCxcclxuXHRcdFx0XHRcImxhYmVsRm9ybWF0XCI6IFwiXCIsXHJcblx0XHRcdFx0XCJzcGxpdExpbmVcIjoge1xyXG5cdFx0XHRcdFx0XCJmaXhSYWRpdXNcIjogMCxcclxuXHRcdFx0XHRcdFwic3BsaXROdW1iZXJcIjogMTAsXHJcblx0XHRcdFx0XHRcIndpZHRoXCI6IDMwLFxyXG5cdFx0XHRcdFx0XCJjb2xvclwiOiBcIiNGRkZGRkZcIixcclxuXHRcdFx0XHRcdFwiY2hpbGROdW1iZXJcIjogNSxcclxuXHRcdFx0XHRcdFwiY2hpbGRXaWR0aFwiOiAxMlxyXG5cdFx0XHRcdH0sXHJcblx0XHRcdFx0XCJwb2ludGVyXCI6IHtcclxuXHRcdFx0XHRcdFwid2lkdGhcIjogMjQsXHJcblx0XHRcdFx0XHRcImNvbG9yXCI6IFwiYXV0b1wiXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fSxcclxuXHRcImNhbmRsZVwiOntcclxuXHRcdFwidHlwZVwiOiBcImNhbmRsZVwiLFxyXG5cdFx0XCJjb2xvclwiOiBjb2xvcixcclxuXHRcdFwicGFkZGluZ1wiOiBbMTUsMTUsMCwxNV0sXHJcblx0XHRcImVuYWJsZVNjcm9sbFwiOiB0cnVlLFxyXG5cdFx0XCJlbmFibGVNYXJrTGluZVwiOiB0cnVlLFxyXG5cdFx0XCJkYXRhTGFiZWxcIjogZmFsc2UsXHJcblx0XHRcInhBeGlzXCI6IHtcclxuXHRcdFx0XCJsYWJlbENvdW50XCI6IDQsXHJcblx0XHRcdFwiaXRlbUNvdW50XCI6IDQwLFxyXG5cdFx0XHRcImRpc2FibGVHcmlkXCI6IHRydWUsXHJcblx0XHRcdFwiZ3JpZENvbG9yXCI6IFwiI0NDQ0NDQ1wiLFxyXG5cdFx0XHRcImdyaWRUeXBlXCI6IFwic29saWRcIixcclxuXHRcdFx0XCJkYXNoTGVuZ3RoXCI6IDQsXHJcblx0XHRcdFwic2Nyb2xsU2hvd1wiOiB0cnVlLFxyXG5cdFx0XHRcInNjcm9sbEFsaWduXCI6IFwibGVmdFwiLFxyXG5cdFx0XHRcInNjcm9sbENvbG9yXCI6IFwiI0E2QTZBNlwiLFxyXG5cdFx0XHRcInNjcm9sbEJhY2tncm91bmRDb2xvclwiOiBcIiNFRkVCRUZcIlxyXG5cdFx0fSxcclxuXHRcdFwieUF4aXNcIjoge1xyXG5cdFx0fSxcclxuXHRcdFwibGVnZW5kXCI6IHtcclxuXHRcdH0sXHJcblx0XHRcImV4dHJhXCI6IHtcclxuXHRcdFx0XCJjYW5kbGVcIjoge1xyXG5cdFx0XHRcdFwiY29sb3JcIjoge1xyXG5cdFx0XHRcdFx0XCJ1cExpbmVcIjogXCIjZjA0ODY0XCIsXHJcblx0XHRcdFx0XHRcInVwRmlsbFwiOiBcIiNmMDQ4NjRcIixcclxuXHRcdFx0XHRcdFwiZG93bkxpbmVcIjogXCIjMmZjMjViXCIsXHJcblx0XHRcdFx0XHRcImRvd25GaWxsXCI6IFwiIzJmYzI1YlwiXHJcblx0XHRcdFx0fSxcclxuXHRcdFx0XHRcImF2ZXJhZ2VcIjoge1xyXG5cdFx0XHRcdFx0XCJzaG93XCI6IHRydWUsXHJcblx0XHRcdFx0XHRcIm5hbWVcIjogW1wiTUE1XCIsXCJNQTEwXCIsXCJNQTMwXCJdLFxyXG5cdFx0XHRcdFx0XCJkYXlcIjogWzUsMTAsMjBdLFxyXG5cdFx0XHRcdFx0XCJjb2xvclwiOiBbXCIjMTg5MGZmXCIsXCIjMmZjMjViXCIsXCIjZmFjYzE0XCJdXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRcIm1hcmtMaW5lXCI6IHtcclxuXHRcdFx0XHRcInR5cGVcIjogXCJkYXNoXCIsXHJcblx0XHRcdFx0XCJkYXNoTGVuZ3RoXCI6IDUsXHJcblx0XHRcdFx0XCJkYXRhXCI6IFtcclxuXHRcdFx0XHRcdHtcclxuXHRcdFx0XHRcdFx0XCJ2YWx1ZVwiOiAyMTUwLFxyXG5cdFx0XHRcdFx0XHRcImxpbmVDb2xvclwiOiBcIiNmMDQ4NjRcIixcclxuXHRcdFx0XHRcdFx0XCJzaG93TGFiZWxcIjogdHJ1ZVxyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdHtcclxuXHRcdFx0XHRcdFx0XCJ2YWx1ZVwiOiAyMzUwLFxyXG5cdFx0XHRcdFx0XHRcImxpbmVDb2xvclwiOiBcIiNmMDQ4NjRcIixcclxuXHRcdFx0XHRcdFx0XCJzaG93TGFiZWxcIjogdHJ1ZVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdF1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH0sXHJcblx0XCJtaXhcIjp7XHJcblx0XHRcInR5cGVcIjogXCJtaXhcIixcclxuXHRcdFwiY29sb3JcIjogY29sb3IsXHJcblx0XHRcInBhZGRpbmdcIjogWzE1LDE1LDAsMTVdLFxyXG5cdFx0XCJ4QXhpc1wiOiB7XHJcbiAgICAgIFwiZGlzYWJsZUdyaWRcIjogdHJ1ZSxcclxuXHRcdH0sXHJcblx0XHRcInlBeGlzXCI6IHtcclxuXHRcdFx0XCJkaXNhYmxlZFwiOiBmYWxzZSxcclxuXHRcdFx0XCJkaXNhYmxlR3JpZFwiOiBmYWxzZSxcclxuXHRcdFx0XCJzcGxpdE51bWJlclwiOiA1LFxyXG5cdFx0XHRcImdyaWRUeXBlXCI6IFwiZGFzaFwiLFxyXG5cdFx0XHRcImRhc2hMZW5ndGhcIjogNCxcclxuXHRcdFx0XCJncmlkQ29sb3JcIjogXCIjQ0NDQ0NDXCIsXHJcblx0XHRcdFwicGFkZGluZ1wiOiAxMCxcclxuXHRcdFx0XCJzaG93VGl0bGVcIjogdHJ1ZSxcclxuXHRcdFx0XCJkYXRhXCI6IFtdXHJcblx0XHR9LFxyXG5cdFx0XCJsZWdlbmRcIjoge1xyXG5cdFx0fSxcclxuXHRcdFwiZXh0cmFcIjoge1xyXG5cdFx0XHRcIm1peFwiOiB7XHJcblx0XHRcdFx0XCJjb2x1bW5cIjoge1xyXG5cdFx0XHRcdFx0XCJ3aWR0aFwiOiAyMFxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdH1cclxuXHR9LFxyXG5cdFwic2NhdHRlclwiOntcclxuXHRcdFwidHlwZVwiOiBcInNjYXR0ZXJcIixcclxuXHRcdFwiY29sb3JcIjpjb2xvcixcclxuXHRcdFwicGFkZGluZ1wiOlsxNSwxNSwwLDE1XSxcclxuICAgIFwiZGF0YUxhYmVsXCI6ZmFsc2UsXHJcbiAgICBcInhBeGlzXCI6IHtcclxuICAgICAgXCJkaXNhYmxlR3JpZFwiOiBmYWxzZSxcclxuICAgICAgXCJncmlkVHlwZVwiOlwiZGFzaFwiLFxyXG4gICAgICBcInNwbGl0TnVtYmVyXCI6NSxcclxuICAgICAgXCJib3VuZGFyeUdhcFwiOlwianVzdGlmeVwiLFxyXG4gICAgICBcIm1pblwiOjBcclxuICAgIH0sXHJcbiAgICBcInlBeGlzXCI6IHtcclxuICAgICAgXCJkaXNhYmxlR3JpZFwiOiBmYWxzZSxcclxuICAgICAgXCJncmlkVHlwZVwiOlwiZGFzaFwiLFxyXG4gICAgfSxcclxuICAgIFwibGVnZW5kXCI6IHtcclxuICAgIH0sXHJcbiAgICBcImV4dHJhXCI6IHtcclxuICAgIFx0XCJzY2F0dGVyXCI6IHtcclxuICAgIFx0fSxcclxuICAgIH1cclxuXHR9LFxyXG5cdFwiYnViYmxlXCI6e1xyXG5cdFx0XCJ0eXBlXCI6IFwiYnViYmxlXCIsXHJcblx0XHRcImNvbG9yXCI6Y29sb3IsXHJcblx0XHRcInBhZGRpbmdcIjpbMTUsMTUsMCwxNV0sXHJcbiAgICBcInhBeGlzXCI6IHtcclxuICAgICAgXCJkaXNhYmxlR3JpZFwiOiBmYWxzZSxcclxuICAgICAgXCJncmlkVHlwZVwiOlwiZGFzaFwiLFxyXG4gICAgICBcInNwbGl0TnVtYmVyXCI6NSxcclxuICAgICAgXCJib3VuZGFyeUdhcFwiOlwianVzdGlmeVwiLFxyXG4gICAgICBcIm1pblwiOjAsXHJcbiAgICAgIFwibWF4XCI6MjUwXHJcbiAgICB9LFxyXG4gICAgXCJ5QXhpc1wiOiB7XHJcbiAgICAgIFwiZGlzYWJsZUdyaWRcIjogZmFsc2UsXHJcbiAgICAgIFwiZ3JpZFR5cGVcIjpcImRhc2hcIixcclxuICAgICAgXCJkYXRhXCI6W3tcclxuICAgICAgICBcIm1pblwiOjAsXHJcbiAgICAgICAgXCJtYXhcIjoxNTBcclxuICAgICAgfV1cclxuICAgIH0sXHJcbiAgICBcImxlZ2VuZFwiOiB7XHJcbiAgICB9LFxyXG4gICAgXCJleHRyYVwiOiB7XHJcbiAgICBcdFwiYnViYmxlXCI6IHtcclxuICAgICAgICBcImJvcmRlclwiOjIsXHJcbiAgICAgICAgXCJvcGFjaXR5XCI6IDAuNSxcclxuICAgIFx0fSxcclxuICAgIH1cclxuXHR9XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNmdTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///69\n");
 
 /***/ }),
-/* 75 */
+/* 70 */
 /*!**********************************************************************************************************!*\
   !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/js_sdk/u-charts/config-echarts.js ***!
   \**********************************************************************************************************/
@@ -5462,10 +4441,1575 @@
 /***/ (function(module, exports, __webpack_require__) {
 
 "use strict";
-eval("Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0; /*\r\n                                                                                                      * uCharts庐\r\n                                                                                                      * 楂樻�ц兘璺ㄥ钩鍙板浘琛ㄥ簱锛屾敮鎸丠5銆丄PP銆佸皬绋嬪簭锛堝井淇�/鏀粯瀹�/鐧惧害/澶存潯/QQ/360锛夈�乂ue銆乀aro绛夋敮鎸乧anvas鐨勬鏋跺钩鍙癨r\n                                                                                                      * Copyright (c) 2021 QIUN庐绉嬩簯 https://www.ucharts.cn All rights reserved.\r\n                                                                                                      * Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )\r\n                                                                                                      * 澶嶅埗浣跨敤璇蜂繚鐣欐湰娈垫敞閲婏紝鎰熻阿鏀寔寮�婧愶紒\r\n                                                                                                      * \r\n                                                                                                      * uCharts庐瀹樻柟缃戠珯\r\n                                                                                                      * https://www.uCharts.cn\r\n                                                                                                      * \r\n                                                                                                      * 寮�婧愬湴鍧�:\r\n                                                                                                      * https://gitee.com/uCharts/uCharts\r\n                                                                                                      * \r\n                                                                                                      * uni-app鎻掍欢甯傚満鍦板潃锛歕r\n                                                                                                      * http://ext.dcloud.net.cn/plugin?id=271\r\n                                                                                                      * \r\n                                                                                                      */\n\n// 閫氱敤閰嶇疆椤筡n\n// 涓婚棰滆壊閰嶇疆锛氬姣忎釜鍥捐〃绫诲瀷闇�瑕佷笉鍚屼富棰橈紝璇峰湪瀵瑰簲鍥捐〃绫诲瀷涓婃洿鏀筩olor灞炴�nvar color = ['#1890FF', '#91CB74', '#FAC858', '#EE6666', '#73C0DE', '#3CA272', '#FC8452', '#9A60B4', '#ea7ccc'];\n\nvar cfe = {\n  //demotype涓鸿嚜瀹氫箟鍥捐〃绫诲瀷\n  \"type\": [\"pie\", \"ring\", \"rose\", \"funnel\", \"line\", \"column\", \"area\", \"radar\", \"gauge\", \"candle\", \"demotype\"],\n  //澧炲姞鑷畾涔夊浘琛ㄧ被鍨嬶紝濡傛灉闇�瑕乧ategories锛岃鍦ㄨ繖閲屽姞鍏ユ偍鐨勫浘琛ㄧ被鍨嬩緥濡傛渶鍚庣殑\"demotype\"\n  \"categories\": [\"line\", \"column\", \"area\", \"radar\", \"gauge\", \"candle\", \"demotype\"],\n  //instance涓哄疄渚嬪彉閲忔壙杞藉睘鎬э紝option涓篹opts鎵胯浇灞炴�э紝涓嶈鍒犻櫎\n  \"instance\": {},\n  \"option\": {},\n  //涓嬮潰鏄嚜瀹氫箟format閰嶇疆锛屽洜闄5绔鐨勫叾浠栫鏃犳硶閫氳繃props浼犻�掑嚱鏁帮紝鍙兘閫氳繃姝ゅ睘鎬у搴斾笅鏍囩殑鏂瑰紡鏉ユ浛鎹n  \"formatter\": {\n    \"tooltipDemo1\": function tooltipDemo1(res) {\n      var result = '';\n      for (var i in res) {\n        if (i == 0) {\n          result += res[i].axisValueLabel + '骞撮攢鍞';\n        }\n        var value = '--';\n        if (res[i].data !== null) {\n          value = res[i].data;\n        }\n\n\n\n\n\n        result += '<br/>' + res[i].marker + res[i].seriesName + '锛�' + value + ' 涓囧厓';\n\n      }\n      return result;\n    },\n    legendFormat: function legendFormat(name) {\n      return \"鑷畾涔夊浘渚�+\" + name;\n    },\n    yAxisFormatDemo: function yAxisFormatDemo(value, index) {\n      return value + '鍏�';\n    },\n    seriesFormatDemo: function seriesFormatDemo(res) {\n      return res.name + '骞�' + res.value + '鍏�';\n    } },\n\n  //杩欓噷婕旂ず浜嗚嚜瀹氫箟鎮ㄧ殑鍥捐〃绫诲瀷鐨刼ption锛屽彲浠ラ殢鎰忓懡鍚嶏紝涔嬪悗鍦ㄧ粍浠朵笂 type=\"demotype\" 鍚庯紝缁勪欢浼氳皟鐢ㄨ繖涓姳鎷彿閲岀殑option锛屽鏋滅粍浠朵笂杩樺瓨鍦╡opts鍙傛暟锛屼細灏哾emotype涓巈opts涓璷ption鍚堝苟鍚庢覆鏌撳浘琛ㄣ�俓n  \"demotype\": {\n    \"color\": color\n    //鍦ㄨ繖閲屽~鍐檈charts鐨刼ption鍗冲彲\n  },\n\n  //涓嬮潰鏄嚜瀹氫箟閰嶇疆锛岃娣诲姞椤圭洰鎵�闇�鐨勯�氱敤閰嶇疆\n  \"column\": {\n    \"color\": color,\n    \"title\": {\n      \"text\": '' },\n\n    \"tooltip\": {\n      \"trigger\": 'axis' },\n\n    \"grid\": {\n      \"top\": 30,\n      \"bottom\": 50,\n      \"right\": 15,\n      \"left\": 40 },\n\n    \"legend\": {\n      \"bottom\": 'left' },\n\n    \"toolbox\": {\n      \"show\": false },\n\n    \"xAxis\": {\n      \"type\": 'category',\n      \"axisLabel\": {\n        \"color\": '#666666' },\n\n      \"axisLine\": {\n        \"lineStyle\": {\n          \"color\": '#CCCCCC' } },\n\n\n      \"boundaryGap\": true,\n      \"data\": [] },\n\n    \"yAxis\": {\n      \"type\": 'value',\n      \"axisTick\": {\n        \"show\": false },\n\n      \"axisLabel\": {\n        \"color\": '#666666' },\n\n      \"axisLine\": {\n        \"lineStyle\": {\n          \"color\": '#CCCCCC' } } },\n\n\n\n    \"seriesTemplate\": {\n      \"name\": '',\n      \"type\": 'bar',\n      \"data\": [],\n      \"barwidth\": 20,\n      \"label\": {\n        \"show\": true,\n        \"color\": \"#666666\",\n        \"position\": 'top' } } },\n\n\n\n  \"line\": {\n    \"color\": color,\n    \"title\": {\n      \"text\": '' },\n\n    \"tooltip\": {\n      \"trigger\": 'axis' },\n\n    \"grid\": {\n      \"top\": 30,\n      \"bottom\": 50,\n      \"right\": 15,\n      \"left\": 40 },\n\n    \"legend\": {\n      \"top\": 'left',\n      \"textStyle\": {\n        \"color\": '#cccccc' } },\n\n\n    \"toolbox\": {\n      \"show\": false },\n\n    \"xAxis\": {\n      \"type\": 'category',\n      \"axisLabel\": {\n        \"color\": '#CCCCCC' },\n\n      \"axisLine\": {\n        \"lineStyle\": {\n          \"color\": '#CCCCCC' } },\n\n\n      \"boundaryGap\": false,\n      \"data\": [] },\n\n    \"yAxis\": {\n      \"type\": 'value',\n      \"axisTick\": {\n        \"show\": false },\n\n      \"axisLabel\": {\n        \"color\": '#CCCCCC' },\n\n      \"axisLine\": {\n        \"lineStyle\": {\n          \"color\": '#CCCCCC' } } },\n\n\n\n    \"seriesTemplate\": {\n      \"name\": '',\n      \"type\": 'line',\n      \"data\": [],\n      \"barwidth\": 20,\n      \"label\": {\n        \"show\": false,\n        \"color\": \"#666666\",\n        \"position\": 'top' } } },\n\n\n\n  \"area\": {\n    \"color\": color,\n    \"title\": {\n      \"text\": '' },\n\n    \"tooltip\": {\n      \"trigger\": 'axis' },\n\n    \"grid\": {\n      \"top\": 30,\n      \"bottom\": 50,\n      \"right\": 15,\n      \"left\": 40 },\n\n    \"legend\": {\n      \"bottom\": 'left' },\n\n    \"toolbox\": {\n      \"show\": false },\n\n    \"xAxis\": {\n      \"type\": 'category',\n      \"axisLabel\": {\n        \"color\": '#666666' },\n\n      \"axisLine\": {\n        \"lineStyle\": {\n          \"color\": '#CCCCCC' } },\n\n\n      \"boundaryGap\": true,\n      \"data\": [] },\n\n    \"yAxis\": {\n      \"type\": 'value',\n      \"axisTick\": {\n        \"show\": false },\n\n      \"axisLabel\": {\n        \"color\": '#666666' },\n\n      \"axisLine\": {\n        \"lineStyle\": {\n          \"color\": '#CCCCCC' } } },\n\n\n\n    \"seriesTemplate\": {\n      \"name\": '',\n      \"type\": 'line',\n      \"data\": [],\n      \"areaStyle\": {},\n      \"label\": {\n        \"show\": true,\n        \"color\": \"#666666\",\n        \"position\": 'top' } } },\n\n\n\n  \"pie\": {\n    \"color\": color,\n    \"title\": {\n      \"text\": '' },\n\n    \"tooltip\": {\n      \"trigger\": 'item' },\n\n    \"grid\": {\n      \"top\": 40,\n      \"bottom\": 30,\n      \"right\": 15,\n      \"left\": 15 },\n\n    \"legend\": {\n      \"bottom\": 'left' },\n\n    \"seriesTemplate\": {\n      \"name\": '',\n      \"type\": 'pie',\n      \"data\": [],\n      \"radius\": '50%',\n      \"label\": {\n        \"show\": true,\n        \"color\": \"#666666\",\n        \"position\": 'top' } } },\n\n\n\n  \"ring\": {\n    \"color\": color,\n    \"title\": {\n      \"text\": '' },\n\n    \"tooltip\": {\n      \"trigger\": 'item' },\n\n    \"grid\": {\n      \"top\": 40,\n      \"bottom\": 30,\n      \"right\": 15,\n      \"left\": 15 },\n\n    \"legend\": {\n      \"bottom\": 'left',\n      \"textStyle\": {\n        \"color\": '#cccccc' } },\n\n\n    \"seriesTemplate\": {\n      \"name\": '',\n      \"type\": 'pie',\n      \"data\": [],\n      \"radius\": ['30%', '60%'],\n      \"avoidLabelOverlap\": false,\n      \"label\": {\n        \"show\": false,\n        \"color\": \"#FFF\",\n        \"position\": 'top' },\n\n      \"labelLine\": {\n        \"show\": true } } },\n\n\n\n  \"rose\": {\n    \"color\": color,\n    \"title\": {\n      \"text\": '' },\n\n    \"tooltip\": {\n      \"trigger\": 'item' },\n\n    \"legend\": {\n      \"top\": 'bottom' },\n\n    \"seriesTemplate\": {\n      \"name\": '',\n      \"type\": 'pie',\n      \"data\": [],\n      \"radius\": \"55%\",\n      \"center\": ['50%', '50%'],\n      \"roseType\": 'area' } },\n\n\n  \"funnel\": {\n    \"color\": color,\n    \"title\": {\n      \"text\": '' },\n\n    \"tooltip\": {\n      \"trigger\": 'item',\n      \"formatter\": \"{b} : {c}%\" },\n\n    \"legend\": {\n      \"top\": 'bottom' },\n\n    \"seriesTemplate\": {\n      \"name\": '',\n      \"type\": 'funnel',\n      \"left\": '10%',\n      \"top\": 60,\n      \"bottom\": 60,\n      \"width\": '80%',\n      \"min\": 0,\n      \"max\": 100,\n      \"minSize\": '0%',\n      \"maxSize\": '100%',\n      \"sort\": 'descending',\n      \"gap\": 2,\n      \"label\": {\n        \"show\": true,\n        \"position\": 'inside' },\n\n      \"labelLine\": {\n        \"length\": 10,\n        \"lineStyle\": {\n          \"width\": 1,\n          \"type\": 'solid' } },\n\n\n      \"itemStyle\": {\n        \"bordercolor\": '#fff',\n        \"borderwidth\": 1 },\n\n      \"emphasis\": {\n        \"label\": {\n          \"fontSize\": 20 } },\n\n\n      \"data\": [] } },\n\n\n  \"gauge\": {\n    \"color\": color,\n    \"tooltip\": {\n      \"formatter\": '{a} <br/>{b} : {c}%' },\n\n    \"seriesTemplate\": {\n      \"name\": '涓氬姟鎸囨爣',\n      \"type\": 'gauge',\n      \"detail\": { \"formatter\": '{value}%' },\n      \"data\": [{ \"value\": 50, \"name\": '瀹屾垚鐜�' }] } },\n\n\n  \"candle\": {\n    \"xAxis\": {\n      \"data\": [] },\n\n    \"yAxis\": {},\n    \"color\": color,\n    \"title\": {\n      \"text\": '' },\n\n    \"dataZoom\": [{\n      \"type\": 'inside',\n      \"xAxisIndex\": [0, 1],\n      \"start\": 10,\n      \"end\": 100 },\n\n    {\n      \"show\": true,\n      \"xAxisIndex\": [0, 1],\n      \"type\": 'slider',\n      \"bottom\": 10,\n      \"start\": 10,\n      \"end\": 100 }],\n\n\n    \"seriesTemplate\": {\n      \"name\": '',\n      \"type\": 'k',\n      \"data\": [] } } };var _default =\n\n\n\n\ncfe;exports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9qc19zZGsvdS1jaGFydHMvY29uZmlnLWVjaGFydHMuanMiXSwibmFtZXMiOlsiY29sb3IiLCJjZmUiLCJyZXMiLCJyZXN1bHQiLCJpIiwiYXhpc1ZhbHVlTGFiZWwiLCJ2YWx1ZSIsImRhdGEiLCJtYXJrZXIiLCJzZXJpZXNOYW1lIiwibGVnZW5kRm9ybWF0IiwibmFtZSIsInlBeGlzRm9ybWF0RGVtbyIsImluZGV4Iiwic2VyaWVzRm9ybWF0RGVtbyJdLCJtYXBwaW5ncyI6IndGQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFrQkE7O0FBRUE7QUFDQSxJQUFNQSxLQUFLLEdBQUcsQ0FBQyxTQUFELEVBQVksU0FBWixFQUF1QixTQUF2QixFQUFrQyxTQUFsQyxFQUE2QyxTQUE3QyxFQUF3RCxTQUF4RCxFQUFtRSxTQUFuRSxFQUE4RSxTQUE5RSxFQUF5RixTQUF6RixDQUFkOztBQUVBLElBQU1DLEdBQUcsR0FBRztBQUNWO0FBQ0QsVUFBUSxDQUFDLEtBQUQsRUFBUSxNQUFSLEVBQWdCLE1BQWhCLEVBQXdCLFFBQXhCLEVBQWtDLE1BQWxDLEVBQTBDLFFBQTFDLEVBQW9ELE1BQXBELEVBQTRELE9BQTVELEVBQXFFLE9BQXJFLEVBQTZFLFFBQTdFLEVBQXNGLFVBQXRGLENBRkc7QUFHVjtBQUNELGdCQUFjLENBQUMsTUFBRCxFQUFTLFFBQVQsRUFBbUIsTUFBbkIsRUFBMkIsT0FBM0IsRUFBb0MsT0FBcEMsRUFBNkMsUUFBN0MsRUFBc0QsVUFBdEQsQ0FKSDtBQUtWO0FBQ0QsY0FBWSxFQU5EO0FBT1gsWUFBVSxFQVBDO0FBUVY7QUFDQSxlQUFZO0FBQ1Ysb0JBQWUsc0JBQVNDLEdBQVQsRUFBYTtBQUMxQixVQUFJQyxNQUFNLEdBQUcsRUFBYjtBQUNBLFdBQUssSUFBSUMsQ0FBVCxJQUFjRixHQUFkLEVBQW1CO0FBQ2xCLFlBQUlFLENBQUMsSUFBSSxDQUFULEVBQVk7QUFDWEQsZ0JBQU0s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QVNBLEtBREQ7QUFFUixlQUFXO0FBQ0wsbUJBQWEscUJBRFIsRUFGSDs7QUFLUixzQkFBa0I7QUFDakIsY0FBUSxNQURTO0FBRWQsY0FBUSxPQUZNO0FBR2QsZ0JBQVUsRUFBQyxhQUFhLFVBQWQsRUFISTtBQUlkLGNBQVEsQ0FBQyxFQUFDLFNBQVMsRUFBVixFQUFjLFFBQVEsS0FBdEIsRUFBRCxDQUpNLEVBTFYsRUF4V0U7OztBQW9YWCxZQUFVO0FBQ1QsYUFBUztBQUNSLGNBQVEsRUFEQSxFQURBOztBQUlULGFBQVMsRUFKQTtBQUtULGFBQVNBLEtBTEE7QUFNVCxhQUFTO0FBQ1IsY0FBUSxFQURBLEVBTkE7O0FBU1QsZ0JBQVksQ0FBQztBQUNYLGNBQVEsUUFERztBQUVYLG9CQUFjLENBQUMsQ0FBRCxFQUFJLENBQUosQ0FGSDtBQUdYLGVBQVMsRUFIRTtBQUlYLGFBQU8sR0FKSSxFQUFEOztBQU1YO0FBQ0MsY0FBUSxJQURUO0FBRUMsb0JBQWMsQ0FBQyxDQUFELEVBQUksQ0FBSixDQUZmO0FBR0MsY0FBUSxRQUhUO0FBSUMsZ0JBQVUsRUFKWDtBQUtDLGVBQVMsRUFMVjtBQU1DLGFBQU8sR0FOUixFQU5XLENBVEg7OztBQXdCVCxzQkFBa0I7QUFDakIsY0FBUSxFQURTO0FBRWpCLGNBQVEsR0FGUztBQUdqQixjQUFRLEVBSFMsRUF4QlQsRUFwWEMsRUFBWixDOzs7OztBQW9aZUMsRyIsImZpbGUiOiI3NS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIHVDaGFydHPCrlxyXG4gKiDpq5jmgKfog73ot6jlubPlj7Dlm77ooajlupPvvIzmlK/mjIFINeOAgUFQUOOAgeWwj+eoi+W6j++8iOW+ruS/oS/mlK/ku5jlrp0v55m+5bqmL+WktOadoS9RUS8zNjDvvInjgIFWdWXjgIFUYXJv562J5pSv5oyBY2FudmFz55qE5qGG5p625bmz5Y+wXHJcbiAqIENvcHlyaWdodCAoYykgMjAyMSBRSVVOwq7np4vkupEgaHR0cHM6Ly93d3cudWNoYXJ0cy5jbiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG4gKiBMaWNlbnNlZCAoIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMCApXHJcbiAqIOWkjeWItuS9v+eUqOivt+S/neeVmeacrOauteazqOmHiu+8jOaEn+iwouaUr+aMgeW8gOa6kO+8gVxyXG4gKiBcclxuICogdUNoYXJ0c8Ku5a6Y5pa5572R56uZXHJcbiAqIGh0dHBzOi8vd3d3LnVDaGFydHMuY25cclxuICogXHJcbiAqIOW8gOa6kOWcsOWdgDpcclxuICogaHR0cHM6Ly9naXRlZS5jb20vdUNoYXJ0cy91Q2hhcnRzXHJcbiAqIFxyXG4gKiB1bmktYXBw5o+S5Lu25biC5Zy65Zyw5Z2A77yaXHJcbiAqIGh0dHA6Ly9leHQuZGNsb3VkLm5ldC5jbi9wbHVnaW4/aWQ9MjcxXHJcbiAqIFxyXG4gKi9cclxuXHJcbi8vIOmAmueUqOmFjee9rumhuVxyXG5cclxuLy8g5Li76aKY6aKc6Imy6YWN572u77ya5aaC5q+P5Liq5Zu+6KGo57G75Z6L6ZyA6KaB5LiN5ZCM5Li76aKY77yM6K+35Zyo5a+55bqU5Zu+6KGo57G75Z6L5LiK5pu05pS5Y29sb3LlsZ7mgKdcclxuY29uc3QgY29sb3IgPSBbJyMxODkwRkYnLCAnIzkxQ0I3NCcsICcjRkFDODU4JywgJyNFRTY2NjYnLCAnIzczQzBERScsICcjM0NBMjcyJywgJyNGQzg0NTInLCAnIzlBNjBCNCcsICcjZWE3Y2NjJ107XHJcblxyXG5jb25zdCBjZmUgPSB7XHJcbiAgLy9kZW1vdHlwZeS4uuiHquWumuS5ieWbvuihqOexu+Wei1xyXG5cdFwidHlwZVwiOiBbXCJwaWVcIiwgXCJyaW5nXCIsIFwicm9zZVwiLCBcImZ1bm5lbFwiLCBcImxpbmVcIiwgXCJjb2x1bW5cIiwgXCJhcmVhXCIsIFwicmFkYXJcIiwgXCJnYXVnZVwiLFwiY2FuZGxlXCIsXCJkZW1vdHlwZVwiXSxcclxuICAvL+WinuWKoOiHquWumuS5ieWbvuihqOexu+Wei++8jOWmguaenOmcgOimgWNhdGVnb3JpZXPvvIzor7flnKjov5nph4zliqDlhaXmgqjnmoTlm77ooajnsbvlnovkvovlpoLmnIDlkI7nmoRcImRlbW90eXBlXCJcclxuXHRcImNhdGVnb3JpZXNcIjogW1wibGluZVwiLCBcImNvbHVtblwiLCBcImFyZWFcIiwgXCJyYWRhclwiLCBcImdhdWdlXCIsIFwiY2FuZGxlXCIsXCJkZW1vdHlwZVwiXSxcclxuICAvL2luc3RhbmNl5Li65a6e5L6L5Y+Y6YeP5om/6L295bGe5oCn77yMb3B0aW9u5Li6ZW9wdHPmib/ovb3lsZ7mgKfvvIzkuI3opoHliKDpmaRcclxuXHRcImluc3RhbmNlXCI6IHt9LFxyXG5cdFwib3B0aW9uXCI6IHt9LFxyXG4gIC8v5LiL6Z2i5piv6Ieq5a6a5LmJZm9ybWF06YWN572u77yM5Zug6ZmkSDXnq6/lpJbnmoTlhbbku5bnq6/ml6Dms5XpgJrov4dwcm9wc+S8oOmAkuWHveaVsO+8jOWPquiDvemAmui/h+atpOWxnuaAp+WvueW6lOS4i+agh+eahOaWueW8j+adpeabv+aNolxyXG4gIFwiZm9ybWF0dGVyXCI6e1xyXG4gICAgXCJ0b29sdGlwRGVtbzFcIjpmdW5jdGlvbihyZXMpe1xyXG4gICAgICBsZXQgcmVzdWx0ID0gJydcclxuICAgICAgZm9yIChsZXQgaSBpbiByZXMpIHtcclxuICAgICAgXHRpZiAoaSA9PSAwKSB7XHJcbiAgICAgIFx0XHRyZXN1bHQgKz0gcmVzW2ldLmF4aXNWYWx1ZUxhYmVsICsgJ+W5tOmUgOWUruminSdcclxuICAgICAgXHR9XHJcbiAgICAgIFx0bGV0IHZhbHVlID0gJy0tJ1xyXG4gICAgICBcdGlmIChyZXNbaV0uZGF0YSAhPT0gbnVsbCkge1xyXG4gICAgICBcdFx0dmFsdWUgPSByZXNbaV0uZGF0YVxyXG4gICAgICBcdH1cclxuXHJcblxyXG5cclxuICAgICAgXHRcclxuXHJcbiAgICAgIFx0cmVzdWx0ICs9ICc8YnIvPicgKyByZXNbaV0ubWFya2VyICsgcmVzW2ldLnNlcmllc05hbWUgKyAn77yaJyArIHZhbHVlICsgJyDkuIflhYMnXHJcblxyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9LFxyXG4gICAgbGVnZW5kRm9ybWF0OmZ1bmN0aW9uKG5hbWUpe1xyXG4gICAgICByZXR1cm4gXCLoh6rlrprkuYnlm77kvosrXCIrbmFtZTtcclxuICAgIH0sXHJcbiAgICB5QXhpc0Zvcm1hdERlbW86ZnVuY3Rpb24gKHZhbHVlLCBpbmRleCkge1xyXG4gICAgICByZXR1cm4gdmFsdWUgKyAn5YWDJztcclxuICAgIH0sXHJcbiAgICBzZXJpZXNGb3JtYXREZW1vOmZ1bmN0aW9uKHJlcyl7XHJcbiAgICAgIHJldHVybiByZXMubmFtZSArICflubQnICsgcmVzLnZhbHVlICsgJ+WFgyc7XHJcbiAgICB9XHJcbiAgfSxcclxuICAvL+i/memHjOa8lOekuuS6huiHquWumuS5ieaCqOeahOWbvuihqOexu+Wei+eahG9wdGlvbu+8jOWPr+S7pemaj+aEj+WRveWQje+8jOS5i+WQjuWcqOe7hOS7tuS4iiB0eXBlPVwiZGVtb3R5cGVcIiDlkI7vvIznu4Tku7bkvJrosIPnlKjov5nkuKroirHmi6zlj7fph4znmoRvcHRpb27vvIzlpoLmnpznu4Tku7bkuIrov5jlrZjlnKhlb3B0c+WPguaVsO+8jOS8muWwhmRlbW90eXBl5LiOZW9wdHPkuK1vcHRpb27lkIjlubblkI7muLLmn5Plm77ooajjgIJcclxuICBcImRlbW90eXBlXCI6e1xyXG4gICAgXCJjb2xvclwiOiBjb2xvcixcclxuICAgIC8v5Zyo6L+Z6YeM5aGr5YaZZWNoYXJ0c+eahG9wdGlvbuWNs+WPr1xyXG4gICAgXHJcbiAgfSxcclxuICAvL+S4i+mdouaYr+iHquWumuS5iemFjee9ru+8jOivt+a3u+WKoOmhueebruaJgOmcgOeahOmAmueUqOmFjee9rlxyXG5cdFwiY29sdW1uXCI6IHtcclxuXHRcdFwiY29sb3JcIjogY29sb3IsXHJcblx0XHRcInRpdGxlXCI6IHtcclxuXHRcdFx0XCJ0ZXh0XCI6ICcnXHJcblx0XHR9LFxyXG5cdFx0XCJ0b29sdGlwXCI6IHtcclxuXHRcdFx0XCJ0cmlnZ2VyXCI6ICdheGlzJ1xyXG5cdFx0fSxcclxuXHRcdFwiZ3JpZFwiOiB7XHJcblx0XHRcdFwidG9wXCI6IDMwLFxyXG5cdFx0XHRcImJvdHRvbVwiOiA1MCxcclxuXHRcdFx0XCJyaWdodFwiOiAxNSxcclxuXHRcdFx0XCJsZWZ0XCI6IDQwXHJcblx0XHR9LFxyXG5cdFx0XCJsZWdlbmRcIjoge1xyXG5cdFx0XHRcImJvdHRvbVwiOiAnbGVmdCcsXHJcblx0XHR9LFxyXG5cdFx0XCJ0b29sYm94XCI6IHtcclxuXHRcdFx0XCJzaG93XCI6IGZhbHNlLFxyXG5cdFx0fSxcclxuXHRcdFwieEF4aXNcIjoge1xyXG5cdFx0XHRcInR5cGVcIjogJ2NhdGVnb3J5JyxcclxuXHRcdFx0XCJheGlzTGFiZWxcIjoge1xyXG5cdFx0XHRcdFwiY29sb3JcIjogJyM2NjY2NjYnXHJcblx0XHRcdH0sXHJcblx0XHRcdFwiYXhpc0xpbmVcIjoge1xyXG5cdFx0XHRcdFwibGluZVN0eWxlXCI6IHtcclxuXHRcdFx0XHRcdFwiY29sb3JcIjogJyNDQ0NDQ0MnXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRcImJvdW5kYXJ5R2FwXCI6IHRydWUsXHJcblx0XHRcdFwiZGF0YVwiOiBbXVxyXG5cdFx0fSxcclxuXHRcdFwieUF4aXNcIjoge1xyXG5cdFx0XHRcInR5cGVcIjogJ3ZhbHVlJyxcclxuXHRcdFx0XCJheGlzVGlja1wiOiB7XHJcblx0XHRcdFx0XCJzaG93XCI6IGZhbHNlLFxyXG5cdFx0XHR9LFxyXG5cdFx0XHRcImF4aXNMYWJlbFwiOiB7XHJcblx0XHRcdFx0XCJjb2xvclwiOiAnIzY2NjY2NidcclxuXHRcdFx0fSxcclxuXHRcdFx0XCJheGlzTGluZVwiOiB7XHJcblx0XHRcdFx0XCJsaW5lU3R5bGVcIjoge1xyXG5cdFx0XHRcdFx0XCJjb2xvclwiOiAnI0NDQ0NDQydcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHR9LFxyXG5cdFx0XCJzZXJpZXNUZW1wbGF0ZVwiOiB7XHJcblx0XHRcdFwibmFtZVwiOiAnJyxcclxuXHRcdFx0XCJ0eXBlXCI6ICdiYXInLFxyXG5cdFx0XHRcImRhdGFcIjogW10sXHJcblx0XHRcdFwiYmFyd2lkdGhcIjogMjAsXHJcblx0XHRcdFwibGFiZWxcIjoge1xyXG5cdFx0XHRcdFwic2hvd1wiOiB0cnVlLFxyXG4gICAgICAgIFwiY29sb3JcIjogXCIjNjY2NjY2XCIsXHJcblx0XHRcdFx0XCJwb3NpdGlvblwiOiAndG9wJyxcclxuXHRcdFx0fSxcclxuXHRcdH0sXHJcblx0fSxcclxuXHRcImxpbmVcIjoge1xyXG5cdFx0XCJjb2xvclwiOiBjb2xvcixcclxuXHRcdFwidGl0bGVcIjoge1xyXG5cdFx0XHRcInRleHRcIjogJydcclxuXHRcdH0sXHJcblx0XHRcInRvb2x0aXBcIjoge1xyXG5cdFx0XHRcInRyaWdnZXJcIjogJ2F4aXMnXHJcblx0XHR9LFxyXG5cdFx0XCJncmlkXCI6IHtcclxuXHRcdFx0XCJ0b3BcIjogMzAsXHJcblx0XHRcdFwiYm90dG9tXCI6IDUwLFxyXG5cdFx0XHRcInJpZ2h0XCI6IDE1LFxyXG5cdFx0XHRcImxlZnRcIjogNDBcclxuXHRcdH0sXHJcblx0XHRcImxlZ2VuZFwiOiB7XHJcblx0XHRcdFwidG9wXCI6ICdsZWZ0JyxcclxuXHRcdFx0XCJ0ZXh0U3R5bGVcIjoge1xyXG5cdFx0XHRcdFwiY29sb3JcIjonI2NjY2NjYydcclxuXHRcdFx0fVxyXG5cdFx0fSxcclxuXHRcdFwidG9vbGJveFwiOiB7XHJcblx0XHRcdFwic2hvd1wiOiBmYWxzZSxcclxuXHRcdH0sXHJcblx0XHRcInhBeGlzXCI6IHtcclxuXHRcdFx0XCJ0eXBlXCI6ICdjYXRlZ29yeScsXHJcblx0XHRcdFwiYXhpc0xhYmVsXCI6IHtcclxuXHRcdFx0XHRcImNvbG9yXCI6ICcjQ0NDQ0NDJ1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRcImF4aXNMaW5lXCI6IHtcclxuXHRcdFx0XHRcImxpbmVTdHlsZVwiOiB7XHJcblx0XHRcdFx0XHRcImNvbG9yXCI6ICcjQ0NDQ0NDJ1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0XCJib3VuZGFyeUdhcFwiOiBmYWxzZSxcclxuXHRcdFx0XCJkYXRhXCI6IFtdXHJcblx0XHR9LFxyXG5cdFx0XCJ5QXhpc1wiOiB7XHJcblx0XHRcdFwidHlwZVwiOiAndmFsdWUnLFxyXG5cdFx0XHRcImF4aXNUaWNrXCI6IHtcclxuXHRcdFx0XHRcInNob3dcIjogZmFsc2UsXHJcblx0XHRcdH0sXHJcblx0XHRcdFwiYXhpc0xhYmVsXCI6IHtcclxuXHRcdFx0XHRcImNvbG9yXCI6ICcjQ0NDQ0NDJ1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRcImF4aXNMaW5lXCI6IHtcclxuXHRcdFx0XHRcImxpbmVTdHlsZVwiOiB7XHJcblx0XHRcdFx0XHRcImNvbG9yXCI6ICcjQ0NDQ0NDJ1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdH0sXHJcblx0XHRcInNlcmllc1RlbXBsYXRlXCI6IHtcclxuXHRcdFx0XCJuYW1lXCI6ICcnLFxyXG5cdFx0XHRcInR5cGVcIjogJ2xpbmUnLFxyXG5cdFx0XHRcImRhdGFcIjogW10sXHJcblx0XHRcdFwiYmFyd2lkdGhcIjogMjAsXHJcblx0XHRcdFwibGFiZWxcIjoge1xyXG5cdFx0XHRcdFwic2hvd1wiOiBmYWxzZSxcclxuICAgICAgICBcImNvbG9yXCI6IFwiIzY2NjY2NlwiLFxyXG5cdFx0XHRcdFwicG9zaXRpb25cIjogJ3RvcCcsXHJcblx0XHRcdH0sXHJcblx0XHR9LFxyXG5cdH0sXHJcblx0XCJhcmVhXCI6IHtcclxuXHRcdFwiY29sb3JcIjogY29sb3IsXHJcblx0XHRcInRpdGxlXCI6IHtcclxuXHRcdFx0XCJ0ZXh0XCI6ICcnXHJcblx0XHR9LFxyXG5cdFx0XCJ0b29sdGlwXCI6IHtcclxuXHRcdFx0XCJ0cmlnZ2VyXCI6ICdheGlzJ1xyXG5cdFx0fSxcclxuXHRcdFwiZ3JpZFwiOiB7XHJcblx0XHRcdFwidG9wXCI6IDMwLFxyXG5cdFx0XHRcImJvdHRvbVwiOiA1MCxcclxuXHRcdFx0XCJyaWdodFwiOiAxNSxcclxuXHRcdFx0XCJsZWZ0XCI6IDQwXHJcblx0XHR9LFxyXG5cdFx0XCJsZWdlbmRcIjoge1xyXG5cdFx0XHRcImJvdHRvbVwiOiAnbGVmdCcsXHJcblx0XHR9LFxyXG5cdFx0XCJ0b29sYm94XCI6IHtcclxuXHRcdFx0XCJzaG93XCI6IGZhbHNlLFxyXG5cdFx0fSxcclxuXHRcdFwieEF4aXNcIjoge1xyXG5cdFx0XHRcInR5cGVcIjogJ2NhdGVnb3J5JyxcclxuXHRcdFx0XCJheGlzTGFiZWxcIjoge1xyXG5cdFx0XHRcdFwiY29sb3JcIjogJyM2NjY2NjYnXHJcblx0XHRcdH0sXHJcblx0XHRcdFwiYXhpc0xpbmVcIjoge1xyXG5cdFx0XHRcdFwibGluZVN0eWxlXCI6IHtcclxuXHRcdFx0XHRcdFwiY29sb3JcIjogJyNDQ0NDQ0MnXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRcImJvdW5kYXJ5R2FwXCI6IHRydWUsXHJcblx0XHRcdFwiZGF0YVwiOiBbXVxyXG5cdFx0fSxcclxuXHRcdFwieUF4aXNcIjoge1xyXG5cdFx0XHRcInR5cGVcIjogJ3ZhbHVlJyxcclxuXHRcdFx0XCJheGlzVGlja1wiOiB7XHJcblx0XHRcdFx0XCJzaG93XCI6IGZhbHNlLFxyXG5cdFx0XHR9LFxyXG5cdFx0XHRcImF4aXNMYWJlbFwiOiB7XHJcblx0XHRcdFx0XCJjb2xvclwiOiAnIzY2NjY2NidcclxuXHRcdFx0fSxcclxuXHRcdFx0XCJheGlzTGluZVwiOiB7XHJcblx0XHRcdFx0XCJsaW5lU3R5bGVcIjoge1xyXG5cdFx0XHRcdFx0XCJjb2xvclwiOiAnI0NDQ0NDQydcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHR9LFxyXG5cdFx0XCJzZXJpZXNUZW1wbGF0ZVwiOiB7XHJcblx0XHRcdFwibmFtZVwiOiAnJyxcclxuXHRcdFx0XCJ0eXBlXCI6ICdsaW5lJyxcclxuXHRcdFx0XCJkYXRhXCI6IFtdLFxyXG5cdFx0XHRcImFyZWFTdHlsZVwiOiB7fSxcclxuXHRcdFx0XCJsYWJlbFwiOiB7XHJcblx0XHRcdFx0XCJzaG93XCI6IHRydWUsXHJcbiAgICAgICAgXCJjb2xvclwiOiBcIiM2NjY2NjZcIixcclxuXHRcdFx0XHRcInBvc2l0aW9uXCI6ICd0b3AnLFxyXG5cdFx0XHR9LFxyXG5cdFx0fSxcclxuXHR9LFxyXG5cdFwicGllXCI6IHtcclxuXHRcdFwiY29sb3JcIjogY29sb3IsXHJcblx0XHRcInRpdGxlXCI6IHtcclxuXHRcdFx0XCJ0ZXh0XCI6ICcnXHJcblx0XHR9LFxyXG5cdFx0XCJ0b29sdGlwXCI6IHtcclxuXHRcdFx0XCJ0cmlnZ2VyXCI6ICdpdGVtJ1xyXG5cdFx0fSxcclxuXHRcdFwiZ3JpZFwiOiB7XHJcblx0XHRcdFwidG9wXCI6IDQwLFxyXG5cdFx0XHRcImJvdHRvbVwiOiAzMCxcclxuXHRcdFx0XCJyaWdodFwiOiAxNSxcclxuXHRcdFx0XCJsZWZ0XCI6IDE1XHJcblx0XHR9LFxyXG5cdFx0XCJsZWdlbmRcIjoge1xyXG5cdFx0XHRcImJvdHRvbVwiOiAnbGVmdCcsXHJcblx0XHR9LFxyXG5cdFx0XCJzZXJpZXNUZW1wbGF0ZVwiOiB7XHJcblx0XHRcdFwibmFtZVwiOiAnJyxcclxuXHRcdFx0XCJ0eXBlXCI6ICdwaWUnLFxyXG5cdFx0XHRcImRhdGFcIjogW10sXHJcblx0XHRcdFwicmFkaXVzXCI6ICc1MCUnLFxyXG5cdFx0XHRcImxhYmVsXCI6IHtcclxuXHRcdFx0XHRcInNob3dcIjogdHJ1ZSxcclxuICAgICAgICBcImNvbG9yXCI6IFwiIzY2NjY2NlwiLFxyXG5cdFx0XHRcdFwicG9zaXRpb25cIjogJ3RvcCcsXHJcblx0XHRcdH0sXHJcblx0XHR9LFxyXG5cdH0sXHJcblx0XCJyaW5nXCI6IHtcclxuXHRcdFwiY29sb3JcIjogY29sb3IsXHJcblx0XHRcInRpdGxlXCI6IHtcclxuXHRcdFx0XCJ0ZXh0XCI6ICcnXHJcblx0XHR9LFxyXG5cdFx0XCJ0b29sdGlwXCI6IHtcclxuXHRcdFx0XCJ0cmlnZ2VyXCI6ICdpdGVtJ1xyXG5cdFx0fSxcclxuXHRcdFwiZ3JpZFwiOiB7XHJcblx0XHRcdFwidG9wXCI6IDQwLFxyXG5cdFx0XHRcImJvdHRvbVwiOiAzMCxcclxuXHRcdFx0XCJyaWdodFwiOiAxNSxcclxuXHRcdFx0XCJsZWZ0XCI6IDE1XHJcblx0XHR9LFxyXG5cdFx0XCJsZWdlbmRcIjoge1xyXG5cdFx0XHRcImJvdHRvbVwiOiAnbGVmdCcsXHJcblx0XHRcdFwidGV4dFN0eWxlXCI6IHtcclxuXHRcdFx0XHRcImNvbG9yXCI6ICcjY2NjY2NjJ1xyXG5cdFx0XHR9XHJcblx0XHR9LFxyXG5cdFx0XCJzZXJpZXNUZW1wbGF0ZVwiOiB7XHJcblx0XHRcdFwibmFtZVwiOiAnJyxcclxuXHRcdFx0XCJ0eXBlXCI6ICdwaWUnLFxyXG5cdFx0XHRcImRhdGFcIjogW10sXHJcblx0XHRcdFwicmFkaXVzXCI6IFsnMzAlJywgJzYwJSddLFxyXG5cdFx0XHRcImF2b2lkTGFiZWxPdmVybGFwXCI6IGZhbHNlLFxyXG5cdFx0XHRcImxhYmVsXCI6IHtcclxuXHRcdFx0XHRcInNob3dcIjogZmFsc2UsXHJcbiAgICAgICAgXCJjb2xvclwiOiBcIiNGRkZcIixcclxuXHRcdFx0XHRcInBvc2l0aW9uXCI6ICd0b3AnLFxyXG5cdFx0XHR9LFxyXG5cdFx0XHRcImxhYmVsTGluZVwiOiB7XHJcblx0XHRcdFx0XCJzaG93XCI6IHRydWVcclxuXHRcdFx0fSxcclxuXHRcdH0sXHJcblx0fSxcclxuXHRcInJvc2VcIjoge1xyXG5cdFx0XCJjb2xvclwiOiBjb2xvcixcclxuXHRcdFwidGl0bGVcIjoge1xyXG5cdFx0XHRcInRleHRcIjogJydcclxuXHRcdH0sXHJcblx0XHRcInRvb2x0aXBcIjoge1xyXG5cdFx0XHRcInRyaWdnZXJcIjogJ2l0ZW0nXHJcblx0XHR9LFxyXG5cdFx0XCJsZWdlbmRcIjoge1xyXG5cdFx0XHRcInRvcFwiOiAnYm90dG9tJ1xyXG5cdFx0fSxcclxuXHRcdFwic2VyaWVzVGVtcGxhdGVcIjoge1xyXG5cdFx0XHRcIm5hbWVcIjogJycsXHJcblx0XHRcdFwidHlwZVwiOiAncGllJyxcclxuXHRcdFx0XCJkYXRhXCI6IFtdLFxyXG5cdFx0XHRcInJhZGl1c1wiOiBcIjU1JVwiLFxyXG5cdFx0XHRcImNlbnRlclwiOiBbJzUwJScsICc1MCUnXSxcclxuXHRcdFx0XCJyb3NlVHlwZVwiOiAnYXJlYScsXHJcblx0XHR9LFxyXG5cdH0sXHJcblx0XCJmdW5uZWxcIjoge1xyXG5cdFx0XCJjb2xvclwiOiBjb2xvcixcclxuXHRcdFwidGl0bGVcIjoge1xyXG5cdFx0XHRcInRleHRcIjogJydcclxuXHRcdH0sXHJcblx0XHRcInRvb2x0aXBcIjoge1xyXG5cdFx0XHRcInRyaWdnZXJcIjogJ2l0ZW0nLFxyXG5cdFx0XHRcImZvcm1hdHRlclwiOiBcIntifSA6IHtjfSVcIlxyXG5cdFx0fSxcclxuXHRcdFwibGVnZW5kXCI6IHtcclxuXHRcdFx0XCJ0b3BcIjogJ2JvdHRvbSdcclxuXHRcdH0sXHJcblx0XHRcInNlcmllc1RlbXBsYXRlXCI6IHtcclxuXHRcdFx0XCJuYW1lXCI6ICcnLFxyXG5cdFx0XHRcInR5cGVcIjogJ2Z1bm5lbCcsXHJcblx0XHRcdFwibGVmdFwiOiAnMTAlJyxcclxuXHRcdFx0XCJ0b3BcIjogNjAsXHJcblx0XHRcdFwiYm90dG9tXCI6IDYwLFxyXG5cdFx0XHRcIndpZHRoXCI6ICc4MCUnLFxyXG5cdFx0XHRcIm1pblwiOiAwLFxyXG5cdFx0XHRcIm1heFwiOiAxMDAsXHJcblx0XHRcdFwibWluU2l6ZVwiOiAnMCUnLFxyXG5cdFx0XHRcIm1heFNpemVcIjogJzEwMCUnLFxyXG5cdFx0XHRcInNvcnRcIjogJ2Rlc2NlbmRpbmcnLFxyXG5cdFx0XHRcImdhcFwiOiAyLFxyXG5cdFx0XHRcImxhYmVsXCI6IHtcclxuXHRcdFx0XHRcInNob3dcIjogdHJ1ZSxcclxuXHRcdFx0XHRcInBvc2l0aW9uXCI6ICdpbnNpZGUnXHJcblx0XHRcdH0sXHJcblx0XHRcdFwibGFiZWxMaW5lXCI6IHtcclxuXHRcdFx0XHRcImxlbmd0aFwiOiAxMCxcclxuXHRcdFx0XHRcImxpbmVTdHlsZVwiOiB7XHJcblx0XHRcdFx0XHRcIndpZHRoXCI6IDEsXHJcblx0XHRcdFx0XHRcInR5cGVcIjogJ3NvbGlkJ1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0XCJpdGVtU3R5bGVcIjoge1xyXG5cdFx0XHRcdFwiYm9yZGVyY29sb3JcIjogJyNmZmYnLFxyXG5cdFx0XHRcdFwiYm9yZGVyd2lkdGhcIjogMVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRcImVtcGhhc2lzXCI6IHtcclxuXHRcdFx0XHRcImxhYmVsXCI6IHtcclxuXHRcdFx0XHRcdFwiZm9udFNpemVcIjogMjBcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHRcdFwiZGF0YVwiOiBbXSxcclxuXHRcdH0sXHJcblx0fSxcclxuXHRcImdhdWdlXCI6IHtcclxuXHRcdFwiY29sb3JcIjogY29sb3IsXHJcblx0XHRcInRvb2x0aXBcIjoge1xyXG4gICAgICAgIFwiZm9ybWF0dGVyXCI6ICd7YX0gPGJyLz57Yn0gOiB7Y30lJ1xyXG4gICAgfSxcclxuXHRcdFwic2VyaWVzVGVtcGxhdGVcIjoge1xyXG5cdFx0XHRcIm5hbWVcIjogJ+S4muWKoeaMh+aghycsXHJcbiAgICAgIFwidHlwZVwiOiAnZ2F1Z2UnLFxyXG4gICAgICBcImRldGFpbFwiOiB7XCJmb3JtYXR0ZXJcIjogJ3t2YWx1ZX0lJ30sXHJcbiAgICAgIFwiZGF0YVwiOiBbe1widmFsdWVcIjogNTAsIFwibmFtZVwiOiAn5a6M5oiQ546HJ31dXHJcblx0XHR9LFxyXG5cdH0sXHJcblx0XCJjYW5kbGVcIjoge1xyXG5cdFx0XCJ4QXhpc1wiOiB7XHJcblx0XHRcdFwiZGF0YVwiOiBbXVxyXG5cdFx0fSxcclxuXHRcdFwieUF4aXNcIjoge30sXHJcblx0XHRcImNvbG9yXCI6IGNvbG9yLFxyXG5cdFx0XCJ0aXRsZVwiOiB7XHJcblx0XHRcdFwidGV4dFwiOiAnJ1xyXG5cdFx0fSxcclxuXHRcdFwiZGF0YVpvb21cIjogW3tcclxuXHRcdFx0XHRcInR5cGVcIjogJ2luc2lkZScsXHJcblx0XHRcdFx0XCJ4QXhpc0luZGV4XCI6IFswLCAxXSxcclxuXHRcdFx0XHRcInN0YXJ0XCI6IDEwLFxyXG5cdFx0XHRcdFwiZW5kXCI6IDEwMFxyXG5cdFx0XHR9LFxyXG5cdFx0XHR7XHJcblx0XHRcdFx0XCJzaG93XCI6IHRydWUsXHJcblx0XHRcdFx0XCJ4QXhpc0luZGV4XCI6IFswLCAxXSxcclxuXHRcdFx0XHRcInR5cGVcIjogJ3NsaWRlcicsXHJcblx0XHRcdFx0XCJib3R0b21cIjogMTAsXHJcblx0XHRcdFx0XCJzdGFydFwiOiAxMCxcclxuXHRcdFx0XHRcImVuZFwiOiAxMDBcclxuXHRcdFx0fVxyXG5cdFx0XSxcclxuXHRcdFwic2VyaWVzVGVtcGxhdGVcIjoge1xyXG5cdFx0XHRcIm5hbWVcIjogJycsXHJcblx0XHRcdFwidHlwZVwiOiAnaycsXHJcblx0XHRcdFwiZGF0YVwiOiBbXSxcclxuXHRcdH0sXHJcblx0fVxyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjZmU7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///75\n");
+eval("Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0; /*\n                                                                                                      * uCharts庐\n                                                                                                      * 楂樻�ц兘璺ㄥ钩鍙板浘琛ㄥ簱锛屾敮鎸丠5銆丄PP銆佸皬绋嬪簭锛堝井淇�/鏀粯瀹�/鐧惧害/澶存潯/QQ/360锛夈�乂ue銆乀aro绛夋敮鎸乧anvas鐨勬鏋跺钩鍙癨n                                                                                                      * Copyright (c) 2021 QIUN庐绉嬩簯 https://www.ucharts.cn All rights reserved.\n                                                                                                      * Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )\n                                                                                                      * 澶嶅埗浣跨敤璇蜂繚鐣欐湰娈垫敞閲婏紝鎰熻阿鏀寔寮�婧愶紒\n                                                                                                      * \n                                                                                                      * uCharts庐瀹樻柟缃戠珯\n                                                                                                      * https://www.uCharts.cn\n                                                                                                      * \n                                                                                                      * 寮�婧愬湴鍧�:\n                                                                                                      * https://gitee.com/uCharts/uCharts\n                                                                                                      * \n                                                                                                      * uni-app鎻掍欢甯傚満鍦板潃锛歕n                                                                                                      * http://ext.dcloud.net.cn/plugin?id=271\n                                                                                                      * \n                                                                                                      */\n\n// 閫氱敤閰嶇疆椤筡n\n// 涓婚棰滆壊閰嶇疆锛氬姣忎釜鍥捐〃绫诲瀷闇�瑕佷笉鍚屼富棰橈紝璇峰湪瀵瑰簲鍥捐〃绫诲瀷涓婃洿鏀筩olor灞炴�nvar color = ['#1890FF', '#91CB74', '#FAC858', '#EE6666', '#73C0DE', '#3CA272', '#FC8452', '#9A60B4', '#ea7ccc'];\n\nvar cfe = {\n  //demotype涓鸿嚜瀹氫箟鍥捐〃绫诲瀷\n  \"type\": [\"pie\", \"ring\", \"rose\", \"funnel\", \"line\", \"column\", \"area\", \"radar\", \"gauge\", \"candle\", \"demotype\"],\n  //澧炲姞鑷畾涔夊浘琛ㄧ被鍨嬶紝濡傛灉闇�瑕乧ategories锛岃鍦ㄨ繖閲屽姞鍏ユ偍鐨勫浘琛ㄧ被鍨嬩緥濡傛渶鍚庣殑\"demotype\"\n  \"categories\": [\"line\", \"column\", \"area\", \"radar\", \"gauge\", \"candle\", \"demotype\"],\n  //instance涓哄疄渚嬪彉閲忔壙杞藉睘鎬э紝option涓篹opts鎵胯浇灞炴�э紝涓嶈鍒犻櫎\n  \"instance\": {},\n  \"option\": {},\n  //涓嬮潰鏄嚜瀹氫箟format閰嶇疆锛屽洜闄5绔鐨勫叾浠栫鏃犳硶閫氳繃props浼犻�掑嚱鏁帮紝鍙兘閫氳繃姝ゅ睘鎬у搴斾笅鏍囩殑鏂瑰紡鏉ユ浛鎹n  \"formatter\": {\n    \"tooltipDemo1\": function tooltipDemo1(res) {\n      var result = '';\n      for (var i in res) {\n        if (i == 0) {\n          result += res[i].axisValueLabel + '骞撮攢鍞';\n        }\n        var value = '--';\n        if (res[i].data !== null) {\n          value = res[i].data;\n        }\n\n\n\n\n\n        result += '<br/>' + res[i].marker + res[i].seriesName + '锛�' + value + ' 涓囧厓';\n\n      }\n      return result;\n    },\n    legendFormat: function legendFormat(name) {\n      return \"鑷畾涔夊浘渚�+\" + name;\n    },\n    yAxisFormatDemo: function yAxisFormatDemo(value, index) {\n      return value + '鍏�';\n    },\n    seriesFormatDemo: function seriesFormatDemo(res) {\n      return res.name + '骞�' + res.value + '鍏�';\n    } },\n\n  //杩欓噷婕旂ず浜嗚嚜瀹氫箟鎮ㄧ殑鍥捐〃绫诲瀷鐨刼ption锛屽彲浠ラ殢鎰忓懡鍚嶏紝涔嬪悗鍦ㄧ粍浠朵笂 type=\"demotype\" 鍚庯紝缁勪欢浼氳皟鐢ㄨ繖涓姳鎷彿閲岀殑option锛屽鏋滅粍浠朵笂杩樺瓨鍦╡opts鍙傛暟锛屼細灏哾emotype涓巈opts涓璷ption鍚堝苟鍚庢覆鏌撳浘琛ㄣ�俓n  \"demotype\": {\n    \"color\": color\n    //鍦ㄨ繖閲屽~鍐檈charts鐨刼ption鍗冲彲\n  },\n\n  //涓嬮潰鏄嚜瀹氫箟閰嶇疆锛岃娣诲姞椤圭洰鎵�闇�鐨勯�氱敤閰嶇疆\n  \"column\": {\n    \"color\": color,\n    \"title\": {\n      \"text\": '' },\n\n    \"tooltip\": {\n      \"trigger\": 'axis' },\n\n    \"grid\": {\n      \"top\": 30,\n      \"bottom\": 50,\n      \"right\": 15,\n      \"left\": 40 },\n\n    \"legend\": {\n      \"bottom\": 'left' },\n\n    \"toolbox\": {\n      \"show\": false },\n\n    \"xAxis\": {\n      \"type\": 'category',\n      \"axisLabel\": {\n        \"color\": '#666666' },\n\n      \"axisLine\": {\n        \"lineStyle\": {\n          \"color\": '#CCCCCC' } },\n\n\n      \"boundaryGap\": true,\n      \"data\": [] },\n\n    \"yAxis\": {\n      \"type\": 'value',\n      \"axisTick\": {\n        \"show\": false },\n\n      \"axisLabel\": {\n        \"color\": '#666666' },\n\n      \"axisLine\": {\n        \"lineStyle\": {\n          \"color\": '#CCCCCC' } } },\n\n\n\n    \"seriesTemplate\": {\n      \"name\": '',\n      \"type\": 'bar',\n      \"data\": [],\n      \"barwidth\": 20,\n      \"label\": {\n        \"show\": true,\n        \"color\": \"#666666\",\n        \"position\": 'top' } } },\n\n\n\n  \"line\": {\n    \"color\": color,\n    \"title\": {\n      \"text\": '' },\n\n    \"tooltip\": {\n      \"trigger\": 'axis' },\n\n    \"grid\": {\n      \"top\": 30,\n      \"bottom\": 50,\n      \"right\": 15,\n      \"left\": 40 },\n\n    \"legend\": {\n      \"top\": 'left',\n      \"textStyle\": {\n        \"color\": '#cccccc' } },\n\n\n    \"toolbox\": {\n      \"show\": false },\n\n    \"xAxis\": {\n      \"type\": 'category',\n      \"axisLabel\": {\n        \"color\": '#CCCCCC' },\n\n      \"axisLine\": {\n        \"lineStyle\": {\n          \"color\": '#CCCCCC' } },\n\n\n      \"boundaryGap\": false,\n      \"data\": [] },\n\n    \"yAxis\": {\n      \"type\": 'value',\n      \"axisTick\": {\n        \"show\": false },\n\n      \"axisLabel\": {\n        \"color\": '#CCCCCC' },\n\n      \"axisLine\": {\n        \"lineStyle\": {\n          \"color\": '#CCCCCC' } } },\n\n\n\n    \"seriesTemplate\": {\n      \"name\": '',\n      \"type\": 'line',\n      \"data\": [],\n      \"barwidth\": 20,\n      \"label\": {\n        \"show\": false,\n        \"color\": \"#666666\",\n        \"position\": 'top' } } },\n\n\n\n  \"area\": {\n    \"color\": color,\n    \"title\": {\n      \"text\": '' },\n\n    \"tooltip\": {\n      \"trigger\": 'axis' },\n\n    \"grid\": {\n      \"top\": 30,\n      \"bottom\": 50,\n      \"right\": 15,\n      \"left\": 40 },\n\n    \"legend\": {\n      \"bottom\": 'left' },\n\n    \"toolbox\": {\n      \"show\": false },\n\n    \"xAxis\": {\n      \"type\": 'category',\n      \"axisLabel\": {\n        \"color\": '#666666' },\n\n      \"axisLine\": {\n        \"lineStyle\": {\n          \"color\": '#CCCCCC' } },\n\n\n      \"boundaryGap\": true,\n      \"data\": [] },\n\n    \"yAxis\": {\n      \"type\": 'value',\n      \"axisTick\": {\n        \"show\": false },\n\n      \"axisLabel\": {\n        \"color\": '#666666' },\n\n      \"axisLine\": {\n        \"lineStyle\": {\n          \"color\": '#CCCCCC' } } },\n\n\n\n    \"seriesTemplate\": {\n      \"name\": '',\n      \"type\": 'line',\n      \"data\": [],\n      \"areaStyle\": {},\n      \"label\": {\n        \"show\": true,\n        \"color\": \"#666666\",\n        \"position\": 'top' } } },\n\n\n\n  \"pie\": {\n    \"color\": color,\n    \"title\": {\n      \"text\": '' },\n\n    \"tooltip\": {\n      \"trigger\": 'item' },\n\n    \"grid\": {\n      \"top\": 40,\n      \"bottom\": 30,\n      \"right\": 15,\n      \"left\": 15 },\n\n    \"legend\": {\n      \"bottom\": 'left' },\n\n    \"seriesTemplate\": {\n      \"name\": '',\n      \"type\": 'pie',\n      \"data\": [],\n      \"radius\": '50%',\n      \"label\": {\n        \"show\": true,\n        \"color\": \"#666666\",\n        \"position\": 'top' } } },\n\n\n\n  \"ring\": {\n    \"color\": color,\n    \"title\": {\n      \"text\": '' },\n\n    \"tooltip\": {\n      \"trigger\": 'item' },\n\n    \"grid\": {\n      \"top\": 40,\n      \"bottom\": 30,\n      \"right\": 15,\n      \"left\": 15 },\n\n    \"legend\": {\n      \"bottom\": 'left',\n      \"textStyle\": {\n        \"color\": '#cccccc' } },\n\n\n    \"seriesTemplate\": {\n      \"name\": '',\n      \"type\": 'pie',\n      \"data\": [],\n      \"radius\": ['30%', '60%'],\n      \"avoidLabelOverlap\": false,\n      \"label\": {\n        \"show\": false,\n        \"color\": \"#FFF\",\n        \"position\": 'top' },\n\n      \"labelLine\": {\n        \"show\": true } } },\n\n\n\n  \"rose\": {\n    \"color\": color,\n    \"title\": {\n      \"text\": '' },\n\n    \"tooltip\": {\n      \"trigger\": 'item' },\n\n    \"legend\": {\n      \"top\": 'bottom' },\n\n    \"seriesTemplate\": {\n      \"name\": '',\n      \"type\": 'pie',\n      \"data\": [],\n      \"radius\": \"55%\",\n      \"center\": ['50%', '50%'],\n      \"roseType\": 'area' } },\n\n\n  \"funnel\": {\n    \"color\": color,\n    \"title\": {\n      \"text\": '' },\n\n    \"tooltip\": {\n      \"trigger\": 'item',\n      \"formatter\": \"{b} : {c}%\" },\n\n    \"legend\": {\n      \"top\": 'bottom' },\n\n    \"seriesTemplate\": {\n      \"name\": '',\n      \"type\": 'funnel',\n      \"left\": '10%',\n      \"top\": 60,\n      \"bottom\": 60,\n      \"width\": '80%',\n      \"min\": 0,\n      \"max\": 100,\n      \"minSize\": '0%',\n      \"maxSize\": '100%',\n      \"sort\": 'descending',\n      \"gap\": 2,\n      \"label\": {\n        \"show\": true,\n        \"position\": 'inside' },\n\n      \"labelLine\": {\n        \"length\": 10,\n        \"lineStyle\": {\n          \"width\": 1,\n          \"type\": 'solid' } },\n\n\n      \"itemStyle\": {\n        \"bordercolor\": '#fff',\n        \"borderwidth\": 1 },\n\n      \"emphasis\": {\n        \"label\": {\n          \"fontSize\": 20 } },\n\n\n      \"data\": [] } },\n\n\n  \"gauge\": {\n    \"color\": color,\n    \"tooltip\": {\n      \"formatter\": '{a} <br/>{b} : {c}%' },\n\n    \"seriesTemplate\": {\n      \"name\": '涓氬姟鎸囨爣',\n      \"type\": 'gauge',\n      \"detail\": { \"formatter\": '{value}%' },\n      \"data\": [{ \"value\": 50, \"name\": '瀹屾垚鐜�' }] } },\n\n\n  \"candle\": {\n    \"xAxis\": {\n      \"data\": [] },\n\n    \"yAxis\": {},\n    \"color\": color,\n    \"title\": {\n      \"text\": '' },\n\n    \"dataZoom\": [{\n      \"type\": 'inside',\n      \"xAxisIndex\": [0, 1],\n      \"start\": 10,\n      \"end\": 100 },\n\n    {\n      \"show\": true,\n      \"xAxisIndex\": [0, 1],\n      \"type\": 'slider',\n      \"bottom\": 10,\n      \"start\": 10,\n      \"end\": 100 }],\n\n\n    \"seriesTemplate\": {\n      \"name\": '',\n      \"type\": 'k',\n      \"data\": [] } } };var _default =\n\n\n\n\ncfe;exports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9qc19zZGsvdS1jaGFydHMvY29uZmlnLWVjaGFydHMuanMiXSwibmFtZXMiOlsiY29sb3IiLCJjZmUiLCJyZXMiLCJyZXN1bHQiLCJpIiwiYXhpc1ZhbHVlTGFiZWwiLCJ2YWx1ZSIsImRhdGEiLCJtYXJrZXIiLCJzZXJpZXNOYW1lIiwibGVnZW5kRm9ybWF0IiwibmFtZSIsInlBeGlzRm9ybWF0RGVtbyIsImluZGV4Iiwic2VyaWVzRm9ybWF0RGVtbyJdLCJtYXBwaW5ncyI6IndGQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFrQkE7O0FBRUE7QUFDQSxJQUFNQSxLQUFLLEdBQUcsQ0FBQyxTQUFELEVBQVksU0FBWixFQUF1QixTQUF2QixFQUFrQyxTQUFsQyxFQUE2QyxTQUE3QyxFQUF3RCxTQUF4RCxFQUFtRSxTQUFuRSxFQUE4RSxTQUE5RSxFQUF5RixTQUF6RixDQUFkOztBQUVBLElBQU1DLEdBQUcsR0FBRztBQUNWO0FBQ0QsVUFBUSxDQUFDLEtBQUQsRUFBUSxNQUFSLEVBQWdCLE1BQWhCLEVBQXdCLFFBQXhCLEVBQWtDLE1BQWxDLEVBQTBDLFFBQTFDLEVBQW9ELE1BQXBELEVBQTRELE9BQTVELEVBQXFFLE9BQXJFLEVBQTZFLFFBQTdFLEVBQXNGLFVBQXRGLENBRkc7QUFHVjtBQUNELGdCQUFjLENBQUMsTUFBRCxFQUFTLFFBQVQsRUFBbUIsTUFBbkIsRUFBMkIsT0FBM0IsRUFBb0MsT0FBcEMsRUFBNkMsUUFBN0MsRUFBc0QsVUFBdEQsQ0FKSDtBQUtWO0FBQ0QsY0FBWSxFQU5EO0FBT1gsWUFBVSxFQVBDO0FBUVY7QUFDQSxlQUFZO0FBQ1Ysb0JBQWUsc0JBQVNDLEdBQVQsRUFBYTtBQUMxQixVQUFJQyxNQUFNLEdBQUcsRUFBYjtBQUNBLFdBQUssSUFBSUMsQ0FBVCxJQUFjRixHQUFkLEVBQW1CO0FBQ2xCLFlBQUlFLENBQUMsSUFBSSxDQUFULEVBQVk7QUFDWEQsZ0JBQU0s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QVNBLEtBREQ7QUFFUixlQUFXO0FBQ0wsbUJBQWEscUJBRFIsRUFGSDs7QUFLUixzQkFBa0I7QUFDakIsY0FBUSxNQURTO0FBRWQsY0FBUSxPQUZNO0FBR2QsZ0JBQVUsRUFBQyxhQUFhLFVBQWQsRUFISTtBQUlkLGNBQVEsQ0FBQyxFQUFDLFNBQVMsRUFBVixFQUFjLFFBQVEsS0FBdEIsRUFBRCxDQUpNLEVBTFYsRUF4V0U7OztBQW9YWCxZQUFVO0FBQ1QsYUFBUztBQUNSLGNBQVEsRUFEQSxFQURBOztBQUlULGFBQVMsRUFKQTtBQUtULGFBQVNBLEtBTEE7QUFNVCxhQUFTO0FBQ1IsY0FBUSxFQURBLEVBTkE7O0FBU1QsZ0JBQVksQ0FBQztBQUNYLGNBQVEsUUFERztBQUVYLG9CQUFjLENBQUMsQ0FBRCxFQUFJLENBQUosQ0FGSDtBQUdYLGVBQVMsRUFIRTtBQUlYLGFBQU8sR0FKSSxFQUFEOztBQU1YO0FBQ0MsY0FBUSxJQURUO0FBRUMsb0JBQWMsQ0FBQyxDQUFELEVBQUksQ0FBSixDQUZmO0FBR0MsY0FBUSxRQUhUO0FBSUMsZ0JBQVUsRUFKWDtBQUtDLGVBQVMsRUFMVjtBQU1DLGFBQU8sR0FOUixFQU5XLENBVEg7OztBQXdCVCxzQkFBa0I7QUFDakIsY0FBUSxFQURTO0FBRWpCLGNBQVEsR0FGUztBQUdqQixjQUFRLEVBSFMsRUF4QlQsRUFwWEMsRUFBWixDOzs7OztBQW9aZUMsRyIsImZpbGUiOiI3MC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiB1Q2hhcnRzwq5cbiAqIOmrmOaAp+iDvei3qOW5s+WPsOWbvuihqOW6k++8jOaUr+aMgUg144CBQVBQ44CB5bCP56iL5bqP77yI5b6u5L+hL+aUr+S7mOWunS/nmb7luqYv5aS05p2hL1FRLzM2MO+8ieOAgVZ1ZeOAgVRhcm/nrYnmlK/mjIFjYW52YXPnmoTmoYbmnrblubPlj7BcbiAqIENvcHlyaWdodCAoYykgMjAyMSBRSVVOwq7np4vkupEgaHR0cHM6Ly93d3cudWNoYXJ0cy5jbiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogTGljZW5zZWQgKCBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAgKVxuICog5aSN5Yi25L2/55So6K+35L+d55WZ5pys5q615rOo6YeK77yM5oSf6LCi5pSv5oyB5byA5rqQ77yBXG4gKiBcbiAqIHVDaGFydHPCruWumOaWuee9keermVxuICogaHR0cHM6Ly93d3cudUNoYXJ0cy5jblxuICogXG4gKiDlvIDmupDlnLDlnYA6XG4gKiBodHRwczovL2dpdGVlLmNvbS91Q2hhcnRzL3VDaGFydHNcbiAqIFxuICogdW5pLWFwcOaPkuS7tuW4guWcuuWcsOWdgO+8mlxuICogaHR0cDovL2V4dC5kY2xvdWQubmV0LmNuL3BsdWdpbj9pZD0yNzFcbiAqIFxuICovXG5cbi8vIOmAmueUqOmFjee9rumhuVxuXG4vLyDkuLvpopjpopzoibLphY3nva7vvJrlpoLmr4/kuKrlm77ooajnsbvlnovpnIDopoHkuI3lkIzkuLvpopjvvIzor7flnKjlr7nlupTlm77ooajnsbvlnovkuIrmm7TmlLljb2xvcuWxnuaAp1xuY29uc3QgY29sb3IgPSBbJyMxODkwRkYnLCAnIzkxQ0I3NCcsICcjRkFDODU4JywgJyNFRTY2NjYnLCAnIzczQzBERScsICcjM0NBMjcyJywgJyNGQzg0NTInLCAnIzlBNjBCNCcsICcjZWE3Y2NjJ107XG5cbmNvbnN0IGNmZSA9IHtcbiAgLy9kZW1vdHlwZeS4uuiHquWumuS5ieWbvuihqOexu+Wei1xuXHRcInR5cGVcIjogW1wicGllXCIsIFwicmluZ1wiLCBcInJvc2VcIiwgXCJmdW5uZWxcIiwgXCJsaW5lXCIsIFwiY29sdW1uXCIsIFwiYXJlYVwiLCBcInJhZGFyXCIsIFwiZ2F1Z2VcIixcImNhbmRsZVwiLFwiZGVtb3R5cGVcIl0sXG4gIC8v5aKe5Yqg6Ieq5a6a5LmJ5Zu+6KGo57G75Z6L77yM5aaC5p6c6ZyA6KaBY2F0ZWdvcmllc++8jOivt+WcqOi/memHjOWKoOWFpeaCqOeahOWbvuihqOexu+Wei+S+i+WmguacgOWQjueahFwiZGVtb3R5cGVcIlxuXHRcImNhdGVnb3JpZXNcIjogW1wibGluZVwiLCBcImNvbHVtblwiLCBcImFyZWFcIiwgXCJyYWRhclwiLCBcImdhdWdlXCIsIFwiY2FuZGxlXCIsXCJkZW1vdHlwZVwiXSxcbiAgLy9pbnN0YW5jZeS4uuWunuS+i+WPmOmHj+aJv+i9veWxnuaAp++8jG9wdGlvbuS4umVvcHRz5om/6L295bGe5oCn77yM5LiN6KaB5Yig6ZmkXG5cdFwiaW5zdGFuY2VcIjoge30sXG5cdFwib3B0aW9uXCI6IHt9LFxuICAvL+S4i+mdouaYr+iHquWumuS5iWZvcm1hdOmFjee9ru+8jOWboOmZpEg156uv5aSW55qE5YW25LuW56uv5peg5rOV6YCa6L+HcHJvcHPkvKDpgJLlh73mlbDvvIzlj6rog73pgJrov4fmraTlsZ7mgKflr7nlupTkuIvmoIfnmoTmlrnlvI/mnaXmm7/mjaJcbiAgXCJmb3JtYXR0ZXJcIjp7XG4gICAgXCJ0b29sdGlwRGVtbzFcIjpmdW5jdGlvbihyZXMpe1xuICAgICAgbGV0IHJlc3VsdCA9ICcnXG4gICAgICBmb3IgKGxldCBpIGluIHJlcykge1xuICAgICAgXHRpZiAoaSA9PSAwKSB7XG4gICAgICBcdFx0cmVzdWx0ICs9IHJlc1tpXS5heGlzVmFsdWVMYWJlbCArICflubTplIDllK7pop0nXG4gICAgICBcdH1cbiAgICAgIFx0bGV0IHZhbHVlID0gJy0tJ1xuICAgICAgXHRpZiAocmVzW2ldLmRhdGEgIT09IG51bGwpIHtcbiAgICAgIFx0XHR2YWx1ZSA9IHJlc1tpXS5kYXRhXG4gICAgICBcdH1cblxuXG5cbiAgICAgIFx0XG5cbiAgICAgIFx0cmVzdWx0ICs9ICc8YnIvPicgKyByZXNbaV0ubWFya2VyICsgcmVzW2ldLnNlcmllc05hbWUgKyAn77yaJyArIHZhbHVlICsgJyDkuIflhYMnXG5cbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSxcbiAgICBsZWdlbmRGb3JtYXQ6ZnVuY3Rpb24obmFtZSl7XG4gICAgICByZXR1cm4gXCLoh6rlrprkuYnlm77kvosrXCIrbmFtZTtcbiAgICB9LFxuICAgIHlBeGlzRm9ybWF0RGVtbzpmdW5jdGlvbiAodmFsdWUsIGluZGV4KSB7XG4gICAgICByZXR1cm4gdmFsdWUgKyAn5YWDJztcbiAgICB9LFxuICAgIHNlcmllc0Zvcm1hdERlbW86ZnVuY3Rpb24ocmVzKXtcbiAgICAgIHJldHVybiByZXMubmFtZSArICflubQnICsgcmVzLnZhbHVlICsgJ+WFgyc7XG4gICAgfVxuICB9LFxuICAvL+i/memHjOa8lOekuuS6huiHquWumuS5ieaCqOeahOWbvuihqOexu+Wei+eahG9wdGlvbu+8jOWPr+S7pemaj+aEj+WRveWQje+8jOS5i+WQjuWcqOe7hOS7tuS4iiB0eXBlPVwiZGVtb3R5cGVcIiDlkI7vvIznu4Tku7bkvJrosIPnlKjov5nkuKroirHmi6zlj7fph4znmoRvcHRpb27vvIzlpoLmnpznu4Tku7bkuIrov5jlrZjlnKhlb3B0c+WPguaVsO+8jOS8muWwhmRlbW90eXBl5LiOZW9wdHPkuK1vcHRpb27lkIjlubblkI7muLLmn5Plm77ooajjgIJcbiAgXCJkZW1vdHlwZVwiOntcbiAgICBcImNvbG9yXCI6IGNvbG9yLFxuICAgIC8v5Zyo6L+Z6YeM5aGr5YaZZWNoYXJ0c+eahG9wdGlvbuWNs+WPr1xuICAgIFxuICB9LFxuICAvL+S4i+mdouaYr+iHquWumuS5iemFjee9ru+8jOivt+a3u+WKoOmhueebruaJgOmcgOeahOmAmueUqOmFjee9rlxuXHRcImNvbHVtblwiOiB7XG5cdFx0XCJjb2xvclwiOiBjb2xvcixcblx0XHRcInRpdGxlXCI6IHtcblx0XHRcdFwidGV4dFwiOiAnJ1xuXHRcdH0sXG5cdFx0XCJ0b29sdGlwXCI6IHtcblx0XHRcdFwidHJpZ2dlclwiOiAnYXhpcydcblx0XHR9LFxuXHRcdFwiZ3JpZFwiOiB7XG5cdFx0XHRcInRvcFwiOiAzMCxcblx0XHRcdFwiYm90dG9tXCI6IDUwLFxuXHRcdFx0XCJyaWdodFwiOiAxNSxcblx0XHRcdFwibGVmdFwiOiA0MFxuXHRcdH0sXG5cdFx0XCJsZWdlbmRcIjoge1xuXHRcdFx0XCJib3R0b21cIjogJ2xlZnQnLFxuXHRcdH0sXG5cdFx0XCJ0b29sYm94XCI6IHtcblx0XHRcdFwic2hvd1wiOiBmYWxzZSxcblx0XHR9LFxuXHRcdFwieEF4aXNcIjoge1xuXHRcdFx0XCJ0eXBlXCI6ICdjYXRlZ29yeScsXG5cdFx0XHRcImF4aXNMYWJlbFwiOiB7XG5cdFx0XHRcdFwiY29sb3JcIjogJyM2NjY2NjYnXG5cdFx0XHR9LFxuXHRcdFx0XCJheGlzTGluZVwiOiB7XG5cdFx0XHRcdFwibGluZVN0eWxlXCI6IHtcblx0XHRcdFx0XHRcImNvbG9yXCI6ICcjQ0NDQ0NDJ1xuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXHRcdFx0XCJib3VuZGFyeUdhcFwiOiB0cnVlLFxuXHRcdFx0XCJkYXRhXCI6IFtdXG5cdFx0fSxcblx0XHRcInlBeGlzXCI6IHtcblx0XHRcdFwidHlwZVwiOiAndmFsdWUnLFxuXHRcdFx0XCJheGlzVGlja1wiOiB7XG5cdFx0XHRcdFwic2hvd1wiOiBmYWxzZSxcblx0XHRcdH0sXG5cdFx0XHRcImF4aXNMYWJlbFwiOiB7XG5cdFx0XHRcdFwiY29sb3JcIjogJyM2NjY2NjYnXG5cdFx0XHR9LFxuXHRcdFx0XCJheGlzTGluZVwiOiB7XG5cdFx0XHRcdFwibGluZVN0eWxlXCI6IHtcblx0XHRcdFx0XHRcImNvbG9yXCI6ICcjQ0NDQ0NDJ1xuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXHRcdH0sXG5cdFx0XCJzZXJpZXNUZW1wbGF0ZVwiOiB7XG5cdFx0XHRcIm5hbWVcIjogJycsXG5cdFx0XHRcInR5cGVcIjogJ2JhcicsXG5cdFx0XHRcImRhdGFcIjogW10sXG5cdFx0XHRcImJhcndpZHRoXCI6IDIwLFxuXHRcdFx0XCJsYWJlbFwiOiB7XG5cdFx0XHRcdFwic2hvd1wiOiB0cnVlLFxuICAgICAgICBcImNvbG9yXCI6IFwiIzY2NjY2NlwiLFxuXHRcdFx0XHRcInBvc2l0aW9uXCI6ICd0b3AnLFxuXHRcdFx0fSxcblx0XHR9LFxuXHR9LFxuXHRcImxpbmVcIjoge1xuXHRcdFwiY29sb3JcIjogY29sb3IsXG5cdFx0XCJ0aXRsZVwiOiB7XG5cdFx0XHRcInRleHRcIjogJydcblx0XHR9LFxuXHRcdFwidG9vbHRpcFwiOiB7XG5cdFx0XHRcInRyaWdnZXJcIjogJ2F4aXMnXG5cdFx0fSxcblx0XHRcImdyaWRcIjoge1xuXHRcdFx0XCJ0b3BcIjogMzAsXG5cdFx0XHRcImJvdHRvbVwiOiA1MCxcblx0XHRcdFwicmlnaHRcIjogMTUsXG5cdFx0XHRcImxlZnRcIjogNDBcblx0XHR9LFxuXHRcdFwibGVnZW5kXCI6IHtcblx0XHRcdFwidG9wXCI6ICdsZWZ0Jyxcblx0XHRcdFwidGV4dFN0eWxlXCI6IHtcblx0XHRcdFx0XCJjb2xvclwiOicjY2NjY2NjJ1xuXHRcdFx0fVxuXHRcdH0sXG5cdFx0XCJ0b29sYm94XCI6IHtcblx0XHRcdFwic2hvd1wiOiBmYWxzZSxcblx0XHR9LFxuXHRcdFwieEF4aXNcIjoge1xuXHRcdFx0XCJ0eXBlXCI6ICdjYXRlZ29yeScsXG5cdFx0XHRcImF4aXNMYWJlbFwiOiB7XG5cdFx0XHRcdFwiY29sb3JcIjogJyNDQ0NDQ0MnXG5cdFx0XHR9LFxuXHRcdFx0XCJheGlzTGluZVwiOiB7XG5cdFx0XHRcdFwibGluZVN0eWxlXCI6IHtcblx0XHRcdFx0XHRcImNvbG9yXCI6ICcjQ0NDQ0NDJ1xuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXHRcdFx0XCJib3VuZGFyeUdhcFwiOiBmYWxzZSxcblx0XHRcdFwiZGF0YVwiOiBbXVxuXHRcdH0sXG5cdFx0XCJ5QXhpc1wiOiB7XG5cdFx0XHRcInR5cGVcIjogJ3ZhbHVlJyxcblx0XHRcdFwiYXhpc1RpY2tcIjoge1xuXHRcdFx0XHRcInNob3dcIjogZmFsc2UsXG5cdFx0XHR9LFxuXHRcdFx0XCJheGlzTGFiZWxcIjoge1xuXHRcdFx0XHRcImNvbG9yXCI6ICcjQ0NDQ0NDJ1xuXHRcdFx0fSxcblx0XHRcdFwiYXhpc0xpbmVcIjoge1xuXHRcdFx0XHRcImxpbmVTdHlsZVwiOiB7XG5cdFx0XHRcdFx0XCJjb2xvclwiOiAnI0NDQ0NDQydcblx0XHRcdFx0fVxuXHRcdFx0fSxcblx0XHR9LFxuXHRcdFwic2VyaWVzVGVtcGxhdGVcIjoge1xuXHRcdFx0XCJuYW1lXCI6ICcnLFxuXHRcdFx0XCJ0eXBlXCI6ICdsaW5lJyxcblx0XHRcdFwiZGF0YVwiOiBbXSxcblx0XHRcdFwiYmFyd2lkdGhcIjogMjAsXG5cdFx0XHRcImxhYmVsXCI6IHtcblx0XHRcdFx0XCJzaG93XCI6IGZhbHNlLFxuICAgICAgICBcImNvbG9yXCI6IFwiIzY2NjY2NlwiLFxuXHRcdFx0XHRcInBvc2l0aW9uXCI6ICd0b3AnLFxuXHRcdFx0fSxcblx0XHR9LFxuXHR9LFxuXHRcImFyZWFcIjoge1xuXHRcdFwiY29sb3JcIjogY29sb3IsXG5cdFx0XCJ0aXRsZVwiOiB7XG5cdFx0XHRcInRleHRcIjogJydcblx0XHR9LFxuXHRcdFwidG9vbHRpcFwiOiB7XG5cdFx0XHRcInRyaWdnZXJcIjogJ2F4aXMnXG5cdFx0fSxcblx0XHRcImdyaWRcIjoge1xuXHRcdFx0XCJ0b3BcIjogMzAsXG5cdFx0XHRcImJvdHRvbVwiOiA1MCxcblx0XHRcdFwicmlnaHRcIjogMTUsXG5cdFx0XHRcImxlZnRcIjogNDBcblx0XHR9LFxuXHRcdFwibGVnZW5kXCI6IHtcblx0XHRcdFwiYm90dG9tXCI6ICdsZWZ0Jyxcblx0XHR9LFxuXHRcdFwidG9vbGJveFwiOiB7XG5cdFx0XHRcInNob3dcIjogZmFsc2UsXG5cdFx0fSxcblx0XHRcInhBeGlzXCI6IHtcblx0XHRcdFwidHlwZVwiOiAnY2F0ZWdvcnknLFxuXHRcdFx0XCJheGlzTGFiZWxcIjoge1xuXHRcdFx0XHRcImNvbG9yXCI6ICcjNjY2NjY2J1xuXHRcdFx0fSxcblx0XHRcdFwiYXhpc0xpbmVcIjoge1xuXHRcdFx0XHRcImxpbmVTdHlsZVwiOiB7XG5cdFx0XHRcdFx0XCJjb2xvclwiOiAnI0NDQ0NDQydcblx0XHRcdFx0fVxuXHRcdFx0fSxcblx0XHRcdFwiYm91bmRhcnlHYXBcIjogdHJ1ZSxcblx0XHRcdFwiZGF0YVwiOiBbXVxuXHRcdH0sXG5cdFx0XCJ5QXhpc1wiOiB7XG5cdFx0XHRcInR5cGVcIjogJ3ZhbHVlJyxcblx0XHRcdFwiYXhpc1RpY2tcIjoge1xuXHRcdFx0XHRcInNob3dcIjogZmFsc2UsXG5cdFx0XHR9LFxuXHRcdFx0XCJheGlzTGFiZWxcIjoge1xuXHRcdFx0XHRcImNvbG9yXCI6ICcjNjY2NjY2J1xuXHRcdFx0fSxcblx0XHRcdFwiYXhpc0xpbmVcIjoge1xuXHRcdFx0XHRcImxpbmVTdHlsZVwiOiB7XG5cdFx0XHRcdFx0XCJjb2xvclwiOiAnI0NDQ0NDQydcblx0XHRcdFx0fVxuXHRcdFx0fSxcblx0XHR9LFxuXHRcdFwic2VyaWVzVGVtcGxhdGVcIjoge1xuXHRcdFx0XCJuYW1lXCI6ICcnLFxuXHRcdFx0XCJ0eXBlXCI6ICdsaW5lJyxcblx0XHRcdFwiZGF0YVwiOiBbXSxcblx0XHRcdFwiYXJlYVN0eWxlXCI6IHt9LFxuXHRcdFx0XCJsYWJlbFwiOiB7XG5cdFx0XHRcdFwic2hvd1wiOiB0cnVlLFxuICAgICAgICBcImNvbG9yXCI6IFwiIzY2NjY2NlwiLFxuXHRcdFx0XHRcInBvc2l0aW9uXCI6ICd0b3AnLFxuXHRcdFx0fSxcblx0XHR9LFxuXHR9LFxuXHRcInBpZVwiOiB7XG5cdFx0XCJjb2xvclwiOiBjb2xvcixcblx0XHRcInRpdGxlXCI6IHtcblx0XHRcdFwidGV4dFwiOiAnJ1xuXHRcdH0sXG5cdFx0XCJ0b29sdGlwXCI6IHtcblx0XHRcdFwidHJpZ2dlclwiOiAnaXRlbSdcblx0XHR9LFxuXHRcdFwiZ3JpZFwiOiB7XG5cdFx0XHRcInRvcFwiOiA0MCxcblx0XHRcdFwiYm90dG9tXCI6IDMwLFxuXHRcdFx0XCJyaWdodFwiOiAxNSxcblx0XHRcdFwibGVmdFwiOiAxNVxuXHRcdH0sXG5cdFx0XCJsZWdlbmRcIjoge1xuXHRcdFx0XCJib3R0b21cIjogJ2xlZnQnLFxuXHRcdH0sXG5cdFx0XCJzZXJpZXNUZW1wbGF0ZVwiOiB7XG5cdFx0XHRcIm5hbWVcIjogJycsXG5cdFx0XHRcInR5cGVcIjogJ3BpZScsXG5cdFx0XHRcImRhdGFcIjogW10sXG5cdFx0XHRcInJhZGl1c1wiOiAnNTAlJyxcblx0XHRcdFwibGFiZWxcIjoge1xuXHRcdFx0XHRcInNob3dcIjogdHJ1ZSxcbiAgICAgICAgXCJjb2xvclwiOiBcIiM2NjY2NjZcIixcblx0XHRcdFx0XCJwb3NpdGlvblwiOiAndG9wJyxcblx0XHRcdH0sXG5cdFx0fSxcblx0fSxcblx0XCJyaW5nXCI6IHtcblx0XHRcImNvbG9yXCI6IGNvbG9yLFxuXHRcdFwidGl0bGVcIjoge1xuXHRcdFx0XCJ0ZXh0XCI6ICcnXG5cdFx0fSxcblx0XHRcInRvb2x0aXBcIjoge1xuXHRcdFx0XCJ0cmlnZ2VyXCI6ICdpdGVtJ1xuXHRcdH0sXG5cdFx0XCJncmlkXCI6IHtcblx0XHRcdFwidG9wXCI6IDQwLFxuXHRcdFx0XCJib3R0b21cIjogMzAsXG5cdFx0XHRcInJpZ2h0XCI6IDE1LFxuXHRcdFx0XCJsZWZ0XCI6IDE1XG5cdFx0fSxcblx0XHRcImxlZ2VuZFwiOiB7XG5cdFx0XHRcImJvdHRvbVwiOiAnbGVmdCcsXG5cdFx0XHRcInRleHRTdHlsZVwiOiB7XG5cdFx0XHRcdFwiY29sb3JcIjogJyNjY2NjY2MnXG5cdFx0XHR9XG5cdFx0fSxcblx0XHRcInNlcmllc1RlbXBsYXRlXCI6IHtcblx0XHRcdFwibmFtZVwiOiAnJyxcblx0XHRcdFwidHlwZVwiOiAncGllJyxcblx0XHRcdFwiZGF0YVwiOiBbXSxcblx0XHRcdFwicmFkaXVzXCI6IFsnMzAlJywgJzYwJSddLFxuXHRcdFx0XCJhdm9pZExhYmVsT3ZlcmxhcFwiOiBmYWxzZSxcblx0XHRcdFwibGFiZWxcIjoge1xuXHRcdFx0XHRcInNob3dcIjogZmFsc2UsXG4gICAgICAgIFwiY29sb3JcIjogXCIjRkZGXCIsXG5cdFx0XHRcdFwicG9zaXRpb25cIjogJ3RvcCcsXG5cdFx0XHR9LFxuXHRcdFx0XCJsYWJlbExpbmVcIjoge1xuXHRcdFx0XHRcInNob3dcIjogdHJ1ZVxuXHRcdFx0fSxcblx0XHR9LFxuXHR9LFxuXHRcInJvc2VcIjoge1xuXHRcdFwiY29sb3JcIjogY29sb3IsXG5cdFx0XCJ0aXRsZVwiOiB7XG5cdFx0XHRcInRleHRcIjogJydcblx0XHR9LFxuXHRcdFwidG9vbHRpcFwiOiB7XG5cdFx0XHRcInRyaWdnZXJcIjogJ2l0ZW0nXG5cdFx0fSxcblx0XHRcImxlZ2VuZFwiOiB7XG5cdFx0XHRcInRvcFwiOiAnYm90dG9tJ1xuXHRcdH0sXG5cdFx0XCJzZXJpZXNUZW1wbGF0ZVwiOiB7XG5cdFx0XHRcIm5hbWVcIjogJycsXG5cdFx0XHRcInR5cGVcIjogJ3BpZScsXG5cdFx0XHRcImRhdGFcIjogW10sXG5cdFx0XHRcInJhZGl1c1wiOiBcIjU1JVwiLFxuXHRcdFx0XCJjZW50ZXJcIjogWyc1MCUnLCAnNTAlJ10sXG5cdFx0XHRcInJvc2VUeXBlXCI6ICdhcmVhJyxcblx0XHR9LFxuXHR9LFxuXHRcImZ1bm5lbFwiOiB7XG5cdFx0XCJjb2xvclwiOiBjb2xvcixcblx0XHRcInRpdGxlXCI6IHtcblx0XHRcdFwidGV4dFwiOiAnJ1xuXHRcdH0sXG5cdFx0XCJ0b29sdGlwXCI6IHtcblx0XHRcdFwidHJpZ2dlclwiOiAnaXRlbScsXG5cdFx0XHRcImZvcm1hdHRlclwiOiBcIntifSA6IHtjfSVcIlxuXHRcdH0sXG5cdFx0XCJsZWdlbmRcIjoge1xuXHRcdFx0XCJ0b3BcIjogJ2JvdHRvbSdcblx0XHR9LFxuXHRcdFwic2VyaWVzVGVtcGxhdGVcIjoge1xuXHRcdFx0XCJuYW1lXCI6ICcnLFxuXHRcdFx0XCJ0eXBlXCI6ICdmdW5uZWwnLFxuXHRcdFx0XCJsZWZ0XCI6ICcxMCUnLFxuXHRcdFx0XCJ0b3BcIjogNjAsXG5cdFx0XHRcImJvdHRvbVwiOiA2MCxcblx0XHRcdFwid2lkdGhcIjogJzgwJScsXG5cdFx0XHRcIm1pblwiOiAwLFxuXHRcdFx0XCJtYXhcIjogMTAwLFxuXHRcdFx0XCJtaW5TaXplXCI6ICcwJScsXG5cdFx0XHRcIm1heFNpemVcIjogJzEwMCUnLFxuXHRcdFx0XCJzb3J0XCI6ICdkZXNjZW5kaW5nJyxcblx0XHRcdFwiZ2FwXCI6IDIsXG5cdFx0XHRcImxhYmVsXCI6IHtcblx0XHRcdFx0XCJzaG93XCI6IHRydWUsXG5cdFx0XHRcdFwicG9zaXRpb25cIjogJ2luc2lkZSdcblx0XHRcdH0sXG5cdFx0XHRcImxhYmVsTGluZVwiOiB7XG5cdFx0XHRcdFwibGVuZ3RoXCI6IDEwLFxuXHRcdFx0XHRcImxpbmVTdHlsZVwiOiB7XG5cdFx0XHRcdFx0XCJ3aWR0aFwiOiAxLFxuXHRcdFx0XHRcdFwidHlwZVwiOiAnc29saWQnXG5cdFx0XHRcdH1cblx0XHRcdH0sXG5cdFx0XHRcIml0ZW1TdHlsZVwiOiB7XG5cdFx0XHRcdFwiYm9yZGVyY29sb3JcIjogJyNmZmYnLFxuXHRcdFx0XHRcImJvcmRlcndpZHRoXCI6IDFcblx0XHRcdH0sXG5cdFx0XHRcImVtcGhhc2lzXCI6IHtcblx0XHRcdFx0XCJsYWJlbFwiOiB7XG5cdFx0XHRcdFx0XCJmb250U2l6ZVwiOiAyMFxuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXHRcdFx0XCJkYXRhXCI6IFtdLFxuXHRcdH0sXG5cdH0sXG5cdFwiZ2F1Z2VcIjoge1xuXHRcdFwiY29sb3JcIjogY29sb3IsXG5cdFx0XCJ0b29sdGlwXCI6IHtcbiAgICAgICAgXCJmb3JtYXR0ZXJcIjogJ3thfSA8YnIvPntifSA6IHtjfSUnXG4gICAgfSxcblx0XHRcInNlcmllc1RlbXBsYXRlXCI6IHtcblx0XHRcdFwibmFtZVwiOiAn5Lia5Yqh5oyH5qCHJyxcbiAgICAgIFwidHlwZVwiOiAnZ2F1Z2UnLFxuICAgICAgXCJkZXRhaWxcIjoge1wiZm9ybWF0dGVyXCI6ICd7dmFsdWV9JSd9LFxuICAgICAgXCJkYXRhXCI6IFt7XCJ2YWx1ZVwiOiA1MCwgXCJuYW1lXCI6ICflrozmiJDnjocnfV1cblx0XHR9LFxuXHR9LFxuXHRcImNhbmRsZVwiOiB7XG5cdFx0XCJ4QXhpc1wiOiB7XG5cdFx0XHRcImRhdGFcIjogW11cblx0XHR9LFxuXHRcdFwieUF4aXNcIjoge30sXG5cdFx0XCJjb2xvclwiOiBjb2xvcixcblx0XHRcInRpdGxlXCI6IHtcblx0XHRcdFwidGV4dFwiOiAnJ1xuXHRcdH0sXG5cdFx0XCJkYXRhWm9vbVwiOiBbe1xuXHRcdFx0XHRcInR5cGVcIjogJ2luc2lkZScsXG5cdFx0XHRcdFwieEF4aXNJbmRleFwiOiBbMCwgMV0sXG5cdFx0XHRcdFwic3RhcnRcIjogMTAsXG5cdFx0XHRcdFwiZW5kXCI6IDEwMFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0XCJzaG93XCI6IHRydWUsXG5cdFx0XHRcdFwieEF4aXNJbmRleFwiOiBbMCwgMV0sXG5cdFx0XHRcdFwidHlwZVwiOiAnc2xpZGVyJyxcblx0XHRcdFx0XCJib3R0b21cIjogMTAsXG5cdFx0XHRcdFwic3RhcnRcIjogMTAsXG5cdFx0XHRcdFwiZW5kXCI6IDEwMFxuXHRcdFx0fVxuXHRcdF0sXG5cdFx0XCJzZXJpZXNUZW1wbGF0ZVwiOiB7XG5cdFx0XHRcIm5hbWVcIjogJycsXG5cdFx0XHRcInR5cGVcIjogJ2snLFxuXHRcdFx0XCJkYXRhXCI6IFtdLFxuXHRcdH0sXG5cdH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgY2ZlOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///70\n");
+
+/***/ }),
+/* 71 */
+/*!*********************************************************!*\
+  !*** D:/Workspace/zy/private/Monitor-APP/static/a1.png ***!
+  \*********************************************************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+eval("module.exports = \"/static/a1.png\";//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6IjcxLmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBcIi9zdGF0aWMvYTEucG5nXCI7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///71\n");
+
+/***/ }),
+/* 72 */
+/*!*********************************************************!*\
+  !*** D:/Workspace/zy/private/Monitor-APP/static/b1.png ***!
+  \*********************************************************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+eval("module.exports = \"/static/b1.png\";//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6IjcyLmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBcIi9zdGF0aWMvYjEucG5nXCI7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///72\n");
+
+/***/ }),
+/* 73 */
+/*!*********************************************************!*\
+  !*** D:/Workspace/zy/private/Monitor-APP/static/c1.png ***!
+  \*********************************************************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+eval("module.exports = \"/static/c1.png\";//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6IjczLmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBcIi9zdGF0aWMvYzEucG5nXCI7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///73\n");
+
+/***/ }),
+/* 74 */
+/*!*********************************************************!*\
+  !*** D:/Workspace/zy/private/Monitor-APP/static/d1.png ***!
+  \*********************************************************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+eval("module.exports = \"/static/d1.png\";//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6Ijc0LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBcIi9zdGF0aWMvZDEucG5nXCI7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///74\n");
+
+/***/ }),
+/* 75 */
+/*!***************************************************************************************************!*\
+  !*** D:/Workspace/zy/private/Monitor-APP/pages/home/home.vue?vue&type=script&lang=js&mpType=page ***!
+  \***************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_home_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./home.vue?vue&type=script&lang=js&mpType=page */ 76);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_home_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_home_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_home_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_home_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_home_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQTJyQixDQUFnQiw2ckJBQUcsRUFBQyIsImZpbGUiOiI3NS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNi0xIS4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2hvbWUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJm1wVHlwZT1wYWdlXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNi0xIS4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2hvbWUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJm1wVHlwZT1wYWdlXCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///75\n");
 
 /***/ }),
 /* 76 */
+/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
+  !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Workspace/zy/private/Monitor-APP/pages/home/home.vue?vue&type=script&lang=js&mpType=page ***!
+  \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0;\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar _demodata = _interopRequireDefault(__webpack_require__(/*! @/mockdata/demodata.json */ 77));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default = { data: function data() {return { series: [], homeViewShow: true, modeClass: ['fade', 'slide-top'], homeView: { justifyContent: 'center', alignItems: 'center', width: '100vw', height: '100vh', borderRadius: '5px', textAlign: 'center', backgroundColor: '#4cd964', boxShadow: '0 0 5px 1px rgba(0,0,0,0.2)' }, baseInfo: { xDistance: 1, yDistance: 2, xDuration: 3, yDuration: 4, usedPr: 50, used: 3537 }, chartsData: { \"Line\": { \"categories\": [], \"series\": [] }, \"Pie\": { \"series\": [{ \"data\": [] }] } }, duration: 1000, calendar: '', ringOpts: {}, chartsDataLine1: {}, chartsDataPie2: {}, fontSize: '', height: '', showCharts: false };}, onShow: function onShow() {// 闅愯棌鏃堕棿,鐢甸噺,淇″彿绛塡n    plus.navigator.setFullscreen(true);}, onLoad: function onLoad() {var _this = this;this.getServerData();this.getDate();setInterval(function () {_this.getDate();}, 1000);setInterval(function () {_this.handle(['fade', 'slide-top']);}, 4000);}, methods: { getServerData: function getServerData() {this.chartsDataLine1 = JSON.parse(JSON.stringify(_demodata.default.Line));}, handle: function handle(type) {var _this2 = this;this.homeViewShow = !this.homeViewShow;setTimeout(function () {_this2.showCharts = !_this2.showCharts;}, 1000);this.modeClass = type;}, // 鏃ュ巻\n    getDate: function getDate() {var dt = new Date();var year, month, day, hours, minutes, seconds, weeks;year = dt.getFullYear();month = dt.getMonth() + 1 < 10 ? '0' + (dt.getMonth() + 1) : dt.getMonth() + 1;day = dt.getDate() < 10 ? '0' + dt.getDate() : dt.getDate();hours = dt.getHours() < 10 ? '0' + dt.getHours() : dt.getHours();minutes = dt.getMinutes() < 10 ? '0' + dt.getMinutes() : dt.getMinutes();seconds = dt.getSeconds() < 10 ? '0' + dt.getSeconds() : dt.getSeconds();weeks = dt.getDay();switch (weeks) {case 0:weeks = \"鏄熸湡鏃";break;case 1:weeks = \"鏄熸湡涓�\";break;case 2:weeks = \"鏄熸湡浜孿";break;case 3:weeks = \"鏄熸湡涓塡";break;case 4:weeks = \"鏄熸湡鍥沑";break;case 5:weeks = \"鏄熸湡浜擻";break;default:weeks = \"鏄熸湡鍏璡";}this.calendar = year + \"骞碶" + month + \"鏈圽" + day + \"鏃� \" + hours + \":\" + minutes + \":\" + seconds + \" \" + weeks;} } };exports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaG9tZS9ob21lLnZ1ZSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFvTEEsZ0c7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2VBQ0EsRUFDQSxJQURBLGtCQUNBLENBQ0EsU0FDQSxVQURBLEVBRUEsa0JBRkEsRUFHQSxnQ0FIQSxFQUlBLFlBQ0Esd0JBREEsRUFFQSxvQkFGQSxFQUdBLGNBSEEsRUFJQSxlQUpBLEVBS0EsbUJBTEEsRUFNQSxtQkFOQSxFQU9BLDBCQVBBLEVBUUEsd0NBUkEsRUFKQSxFQWNBLFlBQ0EsWUFEQSxFQUVBLFlBRkEsRUFHQSxZQUhBLEVBSUEsWUFKQSxFQUtBLFVBTEEsRUFNQSxVQU5BLEVBZEEsRUFzQkEsY0FDQSxVQUNBLGdCQURBLEVBRUEsWUFGQSxFQURBLEVBS0EsU0FDQSxhQUNBLFVBREEsR0FEQSxFQUxBLEVBdEJBLEVBaUNBLGNBakNBLEVBa0NBLFlBbENBLEVBbUNBLFlBbkNBLEVBb0NBLG1CQXBDQSxFQXFDQSxrQkFyQ0EsRUFzQ0EsWUF0Q0EsRUF1Q0EsVUF2Q0EsRUF3Q0EsaUJBeENBLEdBMENBLENBNUNBLEVBNkNBLE1BN0NBLG9CQTZDQSxDQUNBO0FBRUEsdUNBRUEsQ0FsREEsRUFtREEsTUFuREEsb0JBbURBLGtCQUNBLHFCQUNBLGVBQ0EseUJBQ0EsZ0JBRUEsQ0FIQSxFQUdBLElBSEEsRUFJQSx5QkFDQSxvQ0FDQSxDQUZBLEVBRUEsSUFGQSxFQUdBLENBN0RBLEVBOERBLFdBQ0EsYUFEQSwyQkFDQSxDQUNBLDBFQUNBLENBSEEsRUFJQSxNQUpBLGtCQUlBLElBSkEsRUFJQSxtQkFDQSx1Q0FDQSx3QkFDQSx1Q0FDQSxDQUZBLEVBRUEsSUFGQSxFQUlBLHNCQUNBLENBWEEsRUFZQTtBQUNBLFdBYkEscUJBYUEsQ0FDQSxvQkFDQSxxREFDQSx3QkFDQSwrRUFDQSw0REFDQSxpRUFDQSx5RUFDQSx5RUFDQSxvQkFDQSxnQkFDQSwyQkFDQSwyQkFDQSwyQkFDQSwyQkFDQSwyQkFDQSwyQkFDQSxzQkFQQSxDQVNBLDRHQUNBLENBakNBLEVBOURBLEUiLCJmaWxlIjoiNzYuanMiLCJzb3VyY2VzQ29udGVudCI6WyI8dGVtcGxhdGU+XHJcblx0PHZpZXcgY2xhc3M9XCJjb250YWluZXJcIj5cclxuXHRcdDwhLS0g5Li76KeG5Zu+IC0tPlxyXG5cdFx0PHVuaS10cmFuc2l0aW9uIDpkdXJhdGlvbj1cImR1cmF0aW9uXCIgOm1vZGUtY2xhc3M9XCJtb2RlQ2xhc3NcIiA6c3R5bGVzPVwiaG9tZVZpZXdcIiA6c2hvdz1cImhvbWVWaWV3U2hvd1wiPlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cImhvbWUtdmlld1wiPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiaGVhZFwiPlxyXG5cdFx0XHRcdFx0PHRleHQ+6Ieq5Yqo5LuT5bqTV0NT55uR5o6n5bmz5Y+wPC90ZXh0PlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8IS0tIOaXpeWOhiAtLT5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cInRpbWUtdG9vbHNcIj57e2NhbGVuZGFyfX08L3ZpZXc+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJidXR0b24tbGVmdFwiPjwvdmlldz5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cImJ1dHRvbi1yaWdodFwiPjwvdmlldz5cclxuXHRcdFx0XHQ8IS0tIOS4u+S9kyAtLT5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cIm1haW5cIj5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwibWlhbi1pdGVtXCI+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwibWlhbi1pdGVtLWJveFwiPlxyXG5cdFx0XHRcdFx0XHRcdDx5LWJveD5cclxuXHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiYm94LWl0ZW1cIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJpdGVtLXRpdGxlXCI+6Ieq5Yqo5YyW56uL5L2T5LuT5bqTPC90ZXh0PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cIml0ZW0tc3ViVGl0bGVcIj5BdXRvbWF0aWMgU3RvcmFnZWFuZCBSZXRyaWV2YWwgU3lzdGVtPC90ZXh0PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cIml0ZW0tdGV4dFwiIHN0eWxlPVwidGV4dC1hbGlnbjogbGVmdDtcIj7liKnnlKjnq4vkvZPku5PlupPorr7lpIflj6/lrp7njrDku5PlupPpq5jlsYLlkIjnkIbljJbjgIHlrZjlj5boh6rliqjljJbjgIHmk43kvZznroDkvr/ljJbvvJvoh6rliqjljJbnq4vkvZPku5PlupPmmK/lvZPliY3mioDmnK/msLTlubPovoPpq5jnmoTlvaLlvI/jgILoh6rliqjljJbnq4vkvZPku5PlupPnmoTkuLvkvZPnlLHotKfmnrbjgIHlt7fpgZPlvI/loIblnpvotbfph43mnLrjgIHlhaXvvIjlh7rvvInlupPlt6XkvZzlj7Dlkozoh6rliqjov5Dov5vvvIjlh7rvvInlj4rmk43kvZzmjqfliLbns7vnu5/nu4TmiJDjgILotKfmnrbmmK/pkqLnu5PmnoTmiJbpkqLnrYvmt7flh53lnJ/nu5PmnoTnmoTlu7rnrZHnianmiJbnu5PmnoTkvZPvvIzotKfmnrblhoXmmK/moIflh4blsLrlr7jnmoTotKfkvY3nqbrpl7TvvIzlt7fpgZPloIblnpvotbfph43mnLrnqb/ooYzkuo7otKfmnrbkuYvpl7TnmoTlt7fpgZPkuK3vvIzlrozmiJDlrZjjgIHlj5botKfnmoTlt6XkvZzjgILnrqHnkIbkuIrph4fnlKjorqHnrpfmnLrlj4rmnaHlvaLnoIHmioDmnK/jgII8L3RleHQ+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJveC1pdGVtXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwiaXRlbS10aXRsZVwiPuS7k+W6k+aVsOaNrjwvdGV4dD5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJpdGVtLXN1YlRpdGxlXCI+d2FyZWhvdXNlIGRhdGE8L3RleHQ+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiaW1nLWJveFwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiaXRlbS1pbWdcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxpbWFnZSBzcmM9XCIuLi8uLi9zdGF0aWMvYTEucG5nXCIgbW9kZT1cImFzcGVjdEZpdFwiPjwvaW1hZ2U+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImZsZXgtY29sXCIgc3R5bGU9XCJ3aWR0aDogY2FsYygxMDAlIC0gNXZ3KTtcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmbGV4LXJvd1wiIHN0eWxlPVwicG9zaXRpb246IHJlbGF0aXZlO1wiID5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBzdHlsZT1cIndpZHRoOiAydnc7cGFkZGluZy1sZWZ0OiA1dnc7O2ZvbnQtc2l6ZTogMnZ3O1wiPnt7YmFzZUluZm8ueERpc3RhbmNlfX08L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgc3R5bGU9XCJwb3NpdGlvbjogYWJzb2x1dGU7Ym90dG9tOiAwO2xlZnQ6IDd2dztcIj5tPC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IHN0eWxlPVwiaGVpZ2h0OiAxMDAlO3RleHQtYWxpZ246IGxlZnQ7dGV4dC1pbmRlbnQ6IDJlbTtcIj7ntK/orqHotbDooYzot53nprso57GzKTwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpdGVtLWltZ1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGltYWdlIHNyYz1cIi4uLy4uL3N0YXRpYy9iMS5wbmdcIiBtb2RlPVwiYXNwZWN0Rml0XCI+PC9pbWFnZT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZmxleC1jb2xcIiBzdHlsZT1cIndpZHRoOiBjYWxjKDEwMCUgLSA1dncpO1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImZsZXgtcm93XCIgc3R5bGU9XCJwb3NpdGlvbjogcmVsYXRpdmU7XCIgPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IHN0eWxlPVwid2lkdGg6IDJ2dztwYWRkaW5nLWxlZnQ6IDV2dzs7Zm9udC1zaXplOiAydnc7XCI+e3tiYXNlSW5mby55RGlzdGFuY2V9fTwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBzdHlsZT1cInBvc2l0aW9uOiBhYnNvbHV0ZTtib3R0b206IDA7bGVmdDogN3Z3O1wiPm08L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgc3R5bGU9XCJoZWlnaHQ6IDEwMCU7dGV4dC1hbGlnbjogbGVmdDt0ZXh0LWluZGVudDogMmVtO1wiPue0r+iuoeWNh+mZjei3neemuyjnsbMpPC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIml0ZW0taW1nXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8aW1hZ2Ugc3JjPVwiLi4vLi4vc3RhdGljL2MxLnBuZ1wiIG1vZGU9XCJhc3BlY3RGaXRcIj48L2ltYWdlPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmbGV4LWNvbFwiIHN0eWxlPVwid2lkdGg6IGNhbGMoMTAwJSAtIDV2dyk7XCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZmxleC1yb3dcIiBzdHlsZT1cInBvc2l0aW9uOiByZWxhdGl2ZTtcIiA+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgc3R5bGU9XCJ3aWR0aDogMnZ3O3BhZGRpbmctbGVmdDogNXZ3Oztmb250LXNpemU6IDJ2dztcIj57e2Jhc2VJbmZvLnhEdXJhdGlvbn19PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IHN0eWxlPVwicG9zaXRpb246IGFic29sdXRlO2JvdHRvbTogMDtsZWZ0OiA3dnc7XCI+czwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBzdHlsZT1cImhlaWdodDogMTAwJTt0ZXh0LWFsaWduOiBsZWZ0O3RleHQtaW5kZW50OiAyZW07XCI+57Sv6K6h6LWw6KGM5pe26ZW/KOenkik8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiaXRlbS1pbWdcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxpbWFnZSBzcmM9XCIuLi8uLi9zdGF0aWMvZDEucG5nXCIgbW9kZT1cImFzcGVjdEZpdFwiPjwvaW1hZ2U+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImZsZXgtY29sXCIgc3R5bGU9XCJ3aWR0aDogY2FsYygxMDAlIC0gNXZ3KTtcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmbGV4LXJvd1wiIHN0eWxlPVwicG9zaXRpb246IHJlbGF0aXZlO1wiID5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBzdHlsZT1cIndpZHRoOiAydnc7cGFkZGluZy1sZWZ0OiA1dnc7O2ZvbnQtc2l6ZTogMnZ3O1wiPnt7YmFzZUluZm8ueUR1cmF0aW9ufX08L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgc3R5bGU9XCJwb3NpdGlvbjogYWJzb2x1dGU7Ym90dG9tOiAwO2xlZnQ6IDd2dztcIj5zPC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IHN0eWxlPVwiaGVpZ2h0OiAxMDAlO3RleHQtYWxpZ246IGxlZnQ7dGV4dC1pbmRlbnQ6IDJlbTtcIj7ntK/orqHljYfpmY3ml7bplb8o56eSKTwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiYm94LWl0ZW1cIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmbGV4LXJvd1wiIHN0eWxlPVwid2lkdGg6IDEwMCU7XCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PCEtLSDlt6bkvqcgLS0+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmbGV4LWNvbFwiIHN0eWxlPVwiYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7anVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJpdGVtLXRpdGxlXCI+5bqT5L2N5L2/55So546HPC90ZXh0PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJpdGVtLXN1YlRpdGxlXCI+RVFVSVBNRU5UIFVTQUdFIFRISVMgTU9OVEg8L3RleHQ+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwhLS0g5Y+z5L6nIC0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IHN0eWxlPVwibWFyZ2luLWxlZnQ6IGF1dG87XCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8IS0tIOeZvuWIhuavlCAtLT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZmxleC1jb2xcIiBzdHlsZT1cImFsaWduLWl0ZW1zOiBmbGV4LWVuZDtqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1wiID5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PCEtLSBzdHlsZT1cImp1c3RpZnktY29udGVudDogZmxleC1lbmQ7cG9zaXRpb246IGFic29sdXRlO3RvcDogMDtyaWdodDogMXZ3O3RleHQtYWxpZ246IHJpZ2h0O1wiIC0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cIml0ZW0tdGl0bGVcIj57e2Jhc2VJbmZvLnVzZWRQcn19JTwvdGV4dD5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJpdGVtLXN1YlRpdGxlXCI+5ZCM5q+U5LiK5pyIICsgNSU8L3RleHQ+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImZsZXgtY29sXCIgc3R5bGU9XCJ3aWR0aDogMTAwJTthbGlnbi1pdGVtczogZmxleC1zdGFydDtwb3NpdGlvbjogcmVsYXRpdmU7Zm9udC1zaXplOiAxdndcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8IS0tIOi/m+W6puadoSAtLT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImZsZXgtcm93XCIgc3R5bGU9XCJ3aWR0aDogMTAwJTtwb3NpdGlvbjogcmVsYXRpdmU7bWFyZ2luLXRvcDogNSU7XCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInByb2dyZXNzQmFyXCIgc3R5bGU9XCJ3aWR0aDogODAlO2hlaWdodDogMnZ3O1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInByb2dyZXNzXCIgOnN0eWxlPVwiJ3dpZHRoOicrIGJhc2VJbmZvLnVzZWRQciArICclJ1wiPjwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IHN0eWxlPVwicG9zaXRpb246IGFic29sdXRlO2JvdHRvbTogMDtyaWdodDogMDtmb250LXNpemU6IDIuNXZ3O2NvbG9yOiAjRkY1NzIyOztcIj57e2Jhc2VJbmZvLnVzZWR9fTwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHQ8L3ktYm94PlxyXG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIm1pYW4taXRlbVwiPlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIm1pYW4taXRlbS1ib3hcIj5cclxuXHRcdFx0XHRcdFx0XHQ8dmlldyBzdHlsZT1cIndpZHRoOiAxMDAlO2hlaWdodDogMTAwJTtcIj5cclxuXHRcdFx0XHRcdFx0XHRcdDx2aWV3IHN0eWxlPVwiaGVpZ2h0OiA0MCU7XCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDwhLS0g5oqY57q/5Zu+IC0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8eS1ib3g+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJib3gtaXRlbVwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmbGV4LXJvd1wiIHN0eWxlPVwid2lkdGg6IDEwMCU7XCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwhLS0g5bem5L6nIC0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImZsZXgtY29sXCIgc3R5bGU9XCJhbGlnbi1pdGVtczogZmxleC1zdGFydDtqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJpdGVtLXRpdGxlXCI+5YWl5Ye65bqT57uf6K6hPC90ZXh0PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwiaXRlbS1zdWJUaXRsZVwiPk9SREVSIFNUQVRJU1RJQ1M8L3RleHQ+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PCEtLSDlj7PkvqcgLS0+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IHN0eWxlPVwibWFyZ2luLWxlZnQ6IGF1dG87XCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PCEtLSDnmb7liIbmr5QgLS0+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmbGV4LWNvbFwiIHN0eWxlPVwiYWxpZ24taXRlbXM6IGZsZXgtZW5kO2p1c3RpZnktY29udGVudDogZmxleC1lbmQ7XCIgPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PCEtLSBzdHlsZT1cImp1c3RpZnktY29udGVudDogZmxleC1lbmQ7cG9zaXRpb246IGFic29sdXRlO3RvcDogMDtyaWdodDogMXZ3O3RleHQtYWxpZ246IHJpZ2h0O1wiIC0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJpdGVtLXRpdGxlXCI+MzE8L3RleHQ+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cIml0ZW0tc3ViVGl0bGVcIj7ku4rml6XorqLljZXmlbA8L3RleHQ+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImNoYXJ0cy1ib3hcIiB2LWlmPVwiIXNob3dDaGFydHNcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHFpdW4tZGF0YS1jaGFydHMgdHlwZT1cImxpbmVcIiA6Y2hhcnREYXRhPVwiY2hhcnRzRGF0YUxpbmUxXCIgOmVjaGFydHNINT1cInRydWVcIiA6ZWNoYXJ0c0FwcD1cInRydWVcIi8+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8L3ktYm94PlxyXG5cdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFx0XHRcdDwhLS0gbnVsbCAtLT5cclxuXHRcdFx0XHRcdFx0XHRcdDx2aWV3IHN0eWxlPVwiaGVpZ2h0OiAyJTtcIj48L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgc3R5bGU9XCJoZWlnaHQ6IDM4JTtcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHktYm94PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiYm94LWl0ZW1cIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZmxleC1yb3dcIiBzdHlsZT1cIndpZHRoOiAxMDAlO1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8IS0tIOW3puS+pyAtLT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmbGV4LWNvbFwiIHN0eWxlPVwiYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7anVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwiaXRlbS10aXRsZVwiPuW6k+WtmOexu+WeizwvdGV4dD5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cIml0ZW0tc3ViVGl0bGVcIj5JTkNPTUUgREFURTwvdGV4dD5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8IS0tIOWPs+S+pyAtLT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgc3R5bGU9XCJtYXJnaW4tbGVmdDogYXV0bztcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8IS0tIOeZvuWIhuavlCAtLT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImZsZXgtY29sXCIgc3R5bGU9XCJhbGlnbi1pdGVtczogZmxleC1lbmQ7anVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcIiA+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cIml0ZW0tdGl0bGVcIj7ku4rlpKk8L3RleHQ+IFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJpdGVtLXN1YlRpdGxlXCI+VG9kYXk8L3RleHQ+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8L3ktYm94PlxyXG5cdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgc3R5bGU9XCJoZWlnaHQ6IDIlO1wiPjwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdDx2aWV3IHN0eWxlPVwiaGVpZ2h0OiAxOCU7XCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDx5LWJveD48L3ktYm94PlxyXG5cdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0PC91bmktdHJhbnNpdGlvbj5cclxuXHRcdDwhLS0g5YWo5p2/L+aLo+aWmeS/oeaBryAtLT5cclxuXHRcdDwhLS0gPHZpZXcgY2xhc3M9XCJpbmZvXCI+XHJcblx0XHRcdFxyXG5cdFx0PC92aWV3PiAtLT5cclxuXHRcdDwhLS0g5byC5bi45L+h5oGvIC0tPlxyXG5cdFx0PCEtLSA8dmlldyBjbGFzcz1cImVycm9yLWluZm9cIj48L3ZpZXc+IC0tPlxyXG5cdDwvdmlldz5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcblx0aW1wb3J0IGRlbW9kYXRhIGZyb20gJ0AvbW9ja2RhdGEvZGVtb2RhdGEuanNvbic7XHJcblx0ZXhwb3J0IGRlZmF1bHQge1xyXG5cdFx0ZGF0YSgpIHtcclxuXHRcdFx0cmV0dXJuIHtcclxuXHRcdFx0XHRzZXJpZXM6IFtdLFxyXG5cdFx0XHRcdGhvbWVWaWV3U2hvdzogdHJ1ZSxcclxuXHRcdFx0XHRtb2RlQ2xhc3M6IFsnZmFkZScsICdzbGlkZS10b3AnXSxcclxuXHRcdFx0XHRob21lVmlldzoge1xyXG5cdFx0XHRcdFx0anVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxyXG5cdFx0XHRcdFx0YWxpZ25JdGVtczogJ2NlbnRlcicsXHJcblx0XHRcdFx0XHR3aWR0aDogJzEwMHZ3JyxcclxuXHRcdFx0XHRcdGhlaWdodDogJzEwMHZoJyxcclxuXHRcdFx0XHRcdGJvcmRlclJhZGl1czogJzVweCcsXHJcblx0XHRcdFx0XHR0ZXh0QWxpZ246ICdjZW50ZXInLFxyXG5cdFx0XHRcdFx0YmFja2dyb3VuZENvbG9yOiAnIzRjZDk2NCcsXHJcblx0XHRcdFx0XHRib3hTaGFkb3c6ICcwIDAgNXB4IDFweCByZ2JhKDAsMCwwLDAuMiknXHJcblx0XHRcdFx0fSxcclxuXHRcdFx0XHRiYXNlSW5mbzoge1xyXG5cdFx0XHRcdFx0eERpc3RhbmNlOiAxLFxyXG5cdFx0XHRcdFx0eURpc3RhbmNlOiAyLFxyXG5cdFx0XHRcdFx0eER1cmF0aW9uOiAzLFxyXG5cdFx0XHRcdFx0eUR1cmF0aW9uOiA0LFxyXG5cdFx0XHRcdFx0dXNlZFByOiA1MCxcclxuXHRcdFx0XHRcdHVzZWQ6IDM1MzdcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdGNoYXJ0c0RhdGE6IHtcclxuXHRcdFx0XHRcdFwiTGluZVwiOiB7XHJcblx0XHRcdFx0XHRcdFwiY2F0ZWdvcmllc1wiOiBbXSxcclxuXHRcdFx0XHRcdFx0XCJzZXJpZXNcIjogW11cclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRcIlBpZVwiOiB7XHJcblx0XHRcdFx0XHRcdFwic2VyaWVzXCI6IFt7XHJcblx0XHRcdFx0XHRcdFx0XCJkYXRhXCI6IFtdXHJcblx0XHRcdFx0XHRcdH1dXHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdH0sXHJcblx0XHRcdFx0ZHVyYXRpb246IDEwMDAsXHJcblx0XHRcdFx0Y2FsZW5kYXI6ICcnLFxyXG5cdFx0XHRcdHJpbmdPcHRzOnt9LFxyXG5cdFx0XHRcdGNoYXJ0c0RhdGFMaW5lMToge30sXHJcblx0XHRcdFx0Y2hhcnRzRGF0YVBpZTI6IHt9LFxyXG5cdFx0XHRcdGZvbnRTaXplOiAnJyxcclxuXHRcdFx0XHRoZWlnaHQ6ICcnLFxyXG5cdFx0XHRcdHNob3dDaGFydHM6IGZhbHNlXHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHRvblNob3coKSB7XHJcblx0XHRcdC8vIOmakOiXj+aXtumXtCznlLXph48s5L+h5Y+3562JXHJcblx0XHRcdC8vICNpZmRlZiBBUFAtUExVU1xyXG5cdFx0XHRwbHVzLm5hdmlnYXRvci5zZXRGdWxsc2NyZWVuKHRydWUpXHJcblx0XHRcdC8vICNlbmRpZlxyXG5cdFx0fSxcclxuXHRcdG9uTG9hZCgpIHtcclxuXHRcdFx0dGhpcy5nZXRTZXJ2ZXJEYXRhKClcclxuXHRcdFx0dGhpcy5nZXREYXRlKClcclxuXHRcdFx0c2V0SW50ZXJ2YWwoKCk9PntcclxuXHRcdFx0XHR0aGlzLmdldERhdGUoKVxyXG5cdFx0XHRcdFxyXG5cdFx0XHR9LDEwMDApXHJcblx0XHRcdHNldEludGVydmFsKCgpPT57XHJcblx0XHRcdFx0dGhpcy5oYW5kbGUoWydmYWRlJywgJ3NsaWRlLXRvcCddKVxyXG5cdFx0XHR9LDQwMDApXHJcblx0XHR9LFxyXG5cdFx0bWV0aG9kczoge1xyXG5cdFx0XHRnZXRTZXJ2ZXJEYXRhKCkge1xyXG5cdFx0XHRcdHRoaXMuY2hhcnRzRGF0YUxpbmUxPUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZGVtb2RhdGEuTGluZSkpXHJcblx0XHRcdH0sXHJcblx0XHRcdGhhbmRsZSh0eXBlKSB7XHJcblx0XHRcdFx0dGhpcy5ob21lVmlld1Nob3cgPSAhdGhpcy5ob21lVmlld1Nob3dcclxuXHRcdFx0XHRzZXRUaW1lb3V0KCgpPT57XHJcblx0XHRcdFx0XHR0aGlzLnNob3dDaGFydHMgPSAhdGhpcy5zaG93Q2hhcnRzXHJcblx0XHRcdFx0fSwxMDAwKVxyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdHRoaXMubW9kZUNsYXNzID0gdHlwZVxyXG5cdFx0XHR9LFxyXG5cdFx0XHQvLyDml6XljoZcclxuXHRcdFx0Z2V0RGF0ZSgpIHtcclxuXHRcdFx0XHR2YXIgZHQgPSBuZXcgRGF0ZSgpO1xyXG5cdFx0XHRcdHZhciB5ZWFyLG1vbnRoLGRheSxob3VycyxtaW51dGVzLHNlY29uZHMsd2Vla3NcclxuXHRcdFx0XHR5ZWFyID0gZHQuZ2V0RnVsbFllYXIoKTtcclxuXHRcdFx0XHRtb250aCA9IChkdC5nZXRNb250aCgpKzEpIDwgMTAgPyAnMCcrIChkdC5nZXRNb250aCgpKzEpIDogKGR0LmdldE1vbnRoKCkrMSk7XHJcblx0XHRcdFx0ZGF5ID0gZHQuZ2V0RGF0ZSgpIDwgMTAgPyAnMCcrZHQuZ2V0RGF0ZSgpIDogZHQuZ2V0RGF0ZSgpO1xyXG5cdFx0XHRcdGhvdXJzID0gZHQuZ2V0SG91cnMoKSA8IDEwID8gJzAnICsgZHQuZ2V0SG91cnMoKSA6IGR0LmdldEhvdXJzKCk7XHJcblx0XHRcdFx0bWludXRlcyA9IGR0LmdldE1pbnV0ZXMoKSA8IDEwID8gJzAnICsgZHQuZ2V0TWludXRlcygpIDogZHQuZ2V0TWludXRlcygpO1xyXG5cdFx0XHRcdHNlY29uZHMgPSBkdC5nZXRTZWNvbmRzKCkgPCAxMCA/ICcwJyArIGR0LmdldFNlY29uZHMoKSA6IGR0LmdldFNlY29uZHMoKTsgXHJcblx0XHRcdFx0d2Vla3MgPSBkdC5nZXREYXkoKTsgXHJcblx0XHRcdFx0c3dpdGNoICh3ZWVrcykge1xyXG5cdFx0XHRcdFx0Y2FzZSAwOiB3ZWVrcyA9IFwi5pif5pyf5pelXCI7IGJyZWFrO1xyXG5cdFx0XHRcdFx0Y2FzZSAxOiB3ZWVrcyA9IFwi5pif5pyf5LiAXCI7IGJyZWFrO1xyXG5cdFx0XHRcdFx0Y2FzZSAyOiB3ZWVrcyA9IFwi5pif5pyf5LqMXCI7IGJyZWFrO1xyXG5cdFx0XHRcdFx0Y2FzZSAzOiB3ZWVrcyA9IFwi5pif5pyf5LiJXCI7IGJyZWFrO1xyXG5cdFx0XHRcdFx0Y2FzZSA0OiB3ZWVrcyA9IFwi5pif5pyf5ZubXCI7IGJyZWFrO1xyXG5cdFx0XHRcdFx0Y2FzZSA1OiB3ZWVrcyA9IFwi5pif5pyf5LqUXCI7IGJyZWFrO1xyXG5cdFx0XHRcdFx0ZGVmYXVsdCA6IHdlZWtzID0gXCLmmJ/mnJ/lha1cIjtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0dGhpcy5jYWxlbmRhciA9IHllYXIgKyBcIuW5tFwiICsgbW9udGggKyBcIuaciFwiICsgZGF5ICsgXCLml6UgXCIgKyBob3VycyArIFwiOlwiICsgbWludXRlcyArIFwiOlwiICsgc2Vjb25kcyArIFwiIFwiICsgd2Vla3NcclxuXHRcdFx0fSxcclxuXHRcdH1cclxuXHRcdFxyXG5cdH1cclxuPC9zY3JpcHQ+XHJcblxyXG48c3R5bGU+XHJcblx0QGltcG9ydCB1cmwoXCIuLi8uLi9zdGF0aWMvY3NzL2NvbW1vbi5jc3NcIik7XHJcblx0Lyog5YiXICovXHJcblx0LmZsZXgtY29sIHtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG5cdH1cclxuXHQvKiDooYwgKi9cclxuXHQuZmxleC1yb3cge1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcblx0fVxyXG5cdFxyXG5cdC5jb250YWluZXJ7XHJcblx0XHR3aWR0aDogMTAwdnc7XHJcblx0XHRtaW4taGVpZ2h0OiAxMDB2aDtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6IGJsdWU7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblx0XHRjb2xvcjogI2ZmZjtcclxuXHRcdFxyXG5cdH1cclxuXHQvKiDkuLvop4blm74gKi9cclxuXHQuaG9tZS12aWV3IHtcclxuXHRcdHdpZHRoOiAxMDB2dztcclxuXHRcdG1pbi1oZWlnaHQ6IDEwMHZoO1xyXG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKC4uLy4uL3N0YXRpYy9iYWNrZ3JvdW5kLnBuZyk7XHJcblx0XHRiYWNrZ3JvdW5kLXNpemU6IDEwMHZ3IDEwMHZoO1xyXG5cdH1cclxuXHQuaG9tZS1yaWdodCB7XHJcblx0XHR3aWR0aDogNTB2dztcclxuXHRcdGhlaWdodDogODl2aDtcclxuXHRcdC8qIGJhY2tncm91bmQtY29sb3I6IGNhZGV0Ymx1ZTsgKi9cclxuXHR9XHJcblx0LmhvbWUtcmlnaHQtYm94IHtcclxuXHRcdHdpZHRoOiA5OCU7XHJcblx0XHRoZWlnaHQ6IDk4JTtcclxuXHR9XHJcblx0LmhlYWQge1xyXG5cdFx0d2lkdGg6IDEwMHZ3O1xyXG5cdFx0aGVpZ2h0OiAxMXZoO1xyXG5cdFx0Zm9udC1zaXplOjR2dztcclxuXHRcdGZvbnQtd2VpZ2h0OiA3MDA7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG5cdFx0dHJhbnNmb3JtOiBzY2FsZSgwLjcpO1xyXG5cdH1cclxuXHQudGltZS10b29scyB7XHJcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHRyaWdodDogMiU7XHJcblx0XHR0b3A6IDIlO1xyXG5cdFx0Zm9udC1zaXplOjF2dztcclxuXHRcdHRyYW5zZm9ybTogc2NhbGUoMC44KTtcclxuXHR9XHJcblx0LmJ1dHRvbi1sZWZ0IHtcclxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi8uLi9zdGF0aWMvcmlnaHQucG5nKTtcclxuXHRcdGJhY2tncm91bmQtc2l6ZTogMTAwJSAxMDAlO1xyXG5cdFx0dG9wOiAxLjglO1xyXG5cdFx0bGVmdDogMjEuMyU7XHJcblx0XHR3aWR0aDogMTMuNSU7XHJcblx0XHRoZWlnaHQ6IDguNSU7XHJcblx0XHR0cmFuc2Zvcm06IHNjYWxlWCgtMSk7XHJcblx0fVxyXG5cdC5idXR0b24tcmlnaHQge1xyXG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKC4uLy4uL3N0YXRpYy9yaWdodC5wbmcpO1xyXG5cdFx0YmFja2dyb3VuZC1zaXplOiAxMDAlIDEwMCU7XHJcblx0XHR0b3A6IDEuOCU7XHJcblx0XHRsZWZ0OiA2NSU7XHJcblx0XHR3aWR0aDogMTMuNSU7XHJcblx0XHRoZWlnaHQ6IDguNSU7XHJcblx0fVxyXG5cdC5wcm9ncmVzc0JhciB7XHJcblx0XHRtYXJnaW4tdG9wOiA5JTtcclxuXHRcdC8qIHdpZHRoOiAxMDAlOyAqL1xyXG5cdFx0aGVpZ2h0OiAyMCU7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjMjMzNzUxO1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogNXZ3O1xyXG5cdH1cclxuXHQucHJvZ3Jlc3Mge1xyXG5cdFx0Lyogd2lkdGg6IDkwJTsgKi9cclxuXHRcdGhlaWdodDogMTAwJTtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICNGRjU3MjI7XHJcblx0XHRib3JkZXItcmFkaXVzOiA1dnc7XHJcblx0fVxyXG5cdC5jaGFydHMtYm94IHtcclxuXHQgIHdpZHRoOiA4MCU7XHJcblx0ICBoZWlnaHQ6IDI0dmg7XHJcblx0ICBtYXJnaW4tbGVmdDogMTAlO1xyXG5cdH0gXHJcblx0XHJcblx0XHJcblx0XHJcblx0XHJcblx0Lyog5YWx55SoICovXHJcblx0Lm1haW4ge1xyXG5cdFx0d2lkdGg6IDEwMHZ3O1xyXG5cdFx0aGVpZ2h0OiA4OHZoO1xyXG5cdFx0bWFyZ2luLXRvcDogMXZoO1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdFxyXG5cdH1cclxuXHQubWlhbi1pdGVtIHtcclxuXHRcdHdpZHRoOiA1MCU7XHJcblx0XHRoZWlnaHQ6IDEwMCU7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHR9XHJcblx0Lm1pYW4taXRlbS1ib3gge1xyXG5cdFx0d2lkdGg6IDk4JTtcclxuXHRcdGhlaWdodDogOTglO1xyXG5cdH1cclxuXHQuYm94LWl0ZW0ge1xyXG5cdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRtYXJnaW4tdG9wOiA0JTtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG5cdFx0YWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcblx0fVxyXG5cdC5pdGVtLXRpdGxlIHtcclxuXHRcdGZvbnQtc2l6ZToxLjV2dztcclxuXHRcdGZvbnQtd2VpZ2h0OiA3MDA7XHJcblx0fVxyXG5cdC5pdGVtLXN1YlRpdGxlIHtcclxuXHRcdGZvbnQtc2l6ZTowLjV2dztcclxuXHRcdHRleHQtaW5kZW50OiAwZW07XHJcblx0fVxyXG5cdC5pdGVtLXRleHQge1xyXG5cdFx0Zm9udC1zaXplOiAxdnc7XHJcblx0XHR0ZXh0LWluZGVudDogMmVtO1xyXG5cdFx0bGV0dGVyLXNwYWNpbmc6IDFweDtcclxuXHRcdGxpbmUtaGVpZ2h0OiAzdmg7XHJcblx0fVxyXG5cdC5pbWctYm94IHtcclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0LyogYmFja2dyb3VuZC1jb2xvcjogIzY2NjY2NjsgKi9cclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xyXG5cdFx0anVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xyXG5cdFx0ZmxleC13cmFwOiB3cmFwO1xyXG5cdFx0Zm9udC1zaXplOiAxdnc7XHJcblx0fVxyXG5cdC5pdGVtLWltZyB7XHJcblx0XHR3aWR0aDogNTAlO1xyXG5cdFx0bWFyZ2luLXRvcDogNSU7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0ZmxleC1kaXJlY3Rpb246IHJvdztcclxuXHRcdC8qIGJhY2tncm91bmQtY29sb3I6ICMwMGZmZmY7ICovXHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcblx0XHRhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxuXHR9XHJcblx0LmRpc3RhbmNlIHtcclxuXHRcdFxyXG5cdH1cclxuXHQuaXRlbS1pbWcgaW1hZ2Uge1xyXG5cdFx0aGVpZ2h0OiA1dnc7XHJcblx0XHR3aWR0aDogNXZ3O1xyXG5cdH1cclxuXHQvKiDlhajmnb8v5ouj5paZ5L+h5oGvICovXHJcblx0LmluZm8ge1xyXG5cdFx0d2lkdGg6IDEwMHZ3O1xyXG5cdFx0bWluLWhlaWdodDogMTAwdmg7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjNjY2NjY2O1xyXG5cdH1cclxuXHQvKiDlvILluLjkv6Hmga8gKi9cclxuXHQuZXJyb3ItaW5mbyB7XHJcblx0XHR3aWR0aDogMTAwdnc7XHJcblx0XHRtaW4taGVpZ2h0OiAxMDB2aDtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICMwMGZmZmY7XHJcblx0fVxyXG48L3N0eWxlPiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///76\n");
+
+/***/ }),
+/* 77 */
+/*!******************************************************************!*\
+  !*** D:/Workspace/zy/private/Monitor-APP/mockdata/demodata.json ***!
+  \******************************************************************/
+/*! exports provided: localdata, localdataB, TLine, Scatter, Bubble, Column, ColumnA, Mix, Line, Pie, PieA, Radar, Arcbar1, Arcbar2, Gauge, Candle, CandleColumn, Word, default */
+/***/ (function(module) {
+
+eval("module.exports = JSON.parse(\"{\\\"localdata\\\":[{\\\"value\\\":35,\\\"text\\\":\\\"2016\\\",\\\"group\\\":\\\"鐩爣鍊糪\\"},{\\\"value\\\":18,\\\"text\\\":\\\"2016\\\",\\\"group\\\":\\\"瀹屾垚閲廫\\"},{\\\"value\\\":36,\\\"text\\\":\\\"2017\\\",\\\"group\\\":\\\"鐩爣鍊糪\\"},{\\\"value\\\":27,\\\"text\\\":\\\"2017\\\",\\\"group\\\":\\\"瀹屾垚閲廫\\"},{\\\"value\\\":31,\\\"text\\\":\\\"2018\\\",\\\"group\\\":\\\"鐩爣鍊糪\\"},{\\\"value\\\":21,\\\"text\\\":\\\"2018\\\",\\\"group\\\":\\\"瀹屾垚閲廫\\"},{\\\"value\\\":33,\\\"text\\\":\\\"2019\\\",\\\"group\\\":\\\"鐩爣鍊糪\\"},{\\\"value\\\":24,\\\"text\\\":\\\"2019\\\",\\\"group\\\":\\\"瀹屾垚閲廫\\"},{\\\"value\\\":13,\\\"text\\\":\\\"2020\\\",\\\"group\\\":\\\"鐩爣鍊糪\\"},{\\\"value\\\":6,\\\"text\\\":\\\"2020\\\",\\\"group\\\":\\\"瀹屾垚閲廫\\"},{\\\"value\\\":34,\\\"text\\\":\\\"2021\\\",\\\"group\\\":\\\"鐩爣鍊糪\\"},{\\\"value\\\":28,\\\"text\\\":\\\"2021\\\",\\\"group\\\":\\\"瀹屾垚閲廫\\"}],\\\"localdataB\\\":[{\\\"value\\\":50,\\\"text\\\":\\\"涓�鐝璡\\"},{\\\"value\\\":30,\\\"text\\\":\\\"浜岀彮\\\"},{\\\"value\\\":20,\\\"text\\\":\\\"涓夌彮\\\"},{\\\"value\\\":18,\\\"text\\\":\\\"鍥涚彮\\\"},{\\\"value\\\":8,\\\"text\\\":\\\"浜旂彮\\\"}],\\\"TLine\\\":{\\\"series\\\":[{\\\"name\\\":\\\"鏃堕棿杞�1\\\",\\\"data\\\":[[10000,55],[30000,25],[50000,55],[70000,25],[90000,55]]},{\\\"name\\\":\\\"鏃堕棿杞�2\\\",\\\"data\\\":[[0,25],[20000,55],[40000,25],[60000,55],[80000,25]]},{\\\"name\\\":\\\"鏃堕棿杞�3\\\",\\\"data\\\":[[0,55],[15000,25],[30000,55],[45000,25],[60000,55]]}]},\\\"Scatter\\\":{\\\"series\\\":[{\\\"name\\\":\\\"鏁g偣涓�\\\",\\\"data\\\":[[10,8.04],[8.07,6.95],[13,7.58],[9.05,8.81],[11,8.33],[14,7.66],[13.4,6.81],[10,6.33],[14,8.96],[12.5,6.82]]},{\\\"name\\\":\\\"鏁g偣浜孿\\",\\\"data\\\":[[9.15,7.2],[11.5,7.2],[3.03,4.23],[12.2,7.83],[2.02,4.47],[1.05,3.33],[4.05,4.96],[6.03,7.24],[12,6.26],[12,8.84],[7.08,5.82],[5.02,5.68]]}]},\\\"Bubble\\\":{\\\"series\\\":[{\\\"name\\\":\\\"姘旀场涓�\\\",\\\"data\\\":[[95,95,23,\\\"鏍囬1\\\"],[30,55,33,\\\"鏍囬2\\\"]]},{\\\"name\\\":\\\"姘旀场浜孿\\",\\\"data\\\":[[130,30,30,\\\"鏍囬3\\\"],[200,90,40,\\\"鏍囬4\\\"]]}]},\\\"Column\\\":{\\\"categories\\\":[\\\"2016\\\",\\\"2017\\\",\\\"2018\\\",\\\"2019\\\",\\\"2020\\\",\\\"2021\\\"],\\\"series\\\":[{\\\"name\\\":\\\"鐩爣鍊糪\\",\\\"data\\\":[35,36,31,33,13,34]},{\\\"name\\\":\\\"瀹屾垚閲廫\\",\\\"data\\\":[18,27,21,24,6,28]}]},\\\"ColumnA\\\":{\\\"categories\\\":[\\\"2016\\\",\\\"2017\\\",\\\"2018\\\",\\\"2019\\\",\\\"2020\\\",\\\"2021\\\"],\\\"series\\\":[{\\\"name\\\":\\\"鎴愪氦閲�1\\\",\\\"data\\\":[15,{\\\"value\\\":20,\\\"color\\\":\\\"#f04864\\\"},45,37,43,34]},{\\\"name\\\":\\\"鎴愪氦閲�2\\\",\\\"data\\\":[30,{\\\"value\\\":40,\\\"color\\\":\\\"#facc14\\\"},25,14,34,18]}]},\\\"Mix\\\":{\\\"categories\\\":[\\\"2016\\\",\\\"2017\\\",\\\"2018\\\",\\\"2019\\\",\\\"2020\\\",\\\"2021\\\"],\\\"series\\\":[{\\\"name\\\":\\\"鏇查潰\\\",\\\"data\\\":[70,50,85,130,64,88],\\\"type\\\":\\\"area\\\",\\\"style\\\":\\\"curve\\\"},{\\\"name\\\":\\\"鏌�1\\\",\\\"index\\\":1,\\\"data\\\":[40,{\\\"value\\\":30,\\\"color\\\":\\\"#f04864\\\"},55,110,24,58],\\\"type\\\":\\\"column\\\"},{\\\"name\\\":\\\"鏌�2\\\",\\\"index\\\":1,\\\"data\\\":[50,20,75,60,34,38],\\\"type\\\":\\\"column\\\"},{\\\"name\\\":\\\"鏇茬嚎\\\",\\\"data\\\":[70,50,85,130,64,88],\\\"type\\\":\\\"line\\\",\\\"style\\\":\\\"curve\\\",\\\"color\\\":\\\"#1890ff\\\",\\\"disableLegend\\\":true},{\\\"name\\\":\\\"鎶樼嚎\\\",\\\"data\\\":[120,140,105,170,95,160],\\\"type\\\":\\\"line\\\",\\\"color\\\":\\\"#2fc25b\\\"},{\\\"name\\\":\\\"鐐筡\\",\\\"index\\\":2,\\\"data\\\":[100,80,125,150,112,132],\\\"type\\\":\\\"point\\\",\\\"color\\\":\\\"#f04864\\\"}]},\\\"Line\\\":{\\\"categories\\\":[\\\"2016\\\",\\\"2017\\\",\\\"2018\\\",\\\"2019\\\",\\\"2020\\\",\\\"2021\\\"],\\\"series\\\":[{\\\"name\\\":\\\"鎴愪氦閲廇\\\",\\\"data\\\":[35,8,25,37,4,20]},{\\\"name\\\":\\\"鎴愪氦閲廈\\\",\\\"data\\\":[70,40,65,100,44,68]}]},\\\"Pie\\\":{\\\"series\\\":[{\\\"name\\\":\\\"涓�鐝璡\\",\\\"data\\\":50},{\\\"name\\\":\\\"浜岀彮\\\",\\\"data\\\":30},{\\\"name\\\":\\\"涓夌彮\\\",\\\"data\\\":20},{\\\"name\\\":\\\"鍥涚彮\\\",\\\"data\\\":18},{\\\"name\\\":\\\"浜旂彮\\\",\\\"data\\\":8}]},\\\"PieA\\\":{\\\"series\\\":[{\\\"data\\\":[{\\\"name\\\":\\\"鍦ㄥ簱\\\",\\\"value\\\":314},{\\\"name\\\":\\\"绌篭\\",\\\"value\\\":1175},{\\\"name\\\":\\\"绂佺敤\\\",\\\"value\\\":96}]}]},\\\"Radar\\\":{\\\"categories\\\":[\\\"缁村害1\\\",\\\"缁村害2\\\",\\\"缁村害3\\\",\\\"缁村害4\\\",\\\"缁村害5\\\",\\\"缁村害6\\\"],\\\"series\\\":[{\\\"name\\\":\\\"鎴愪氦閲�1\\\",\\\"data\\\":[90,110,165,195,187,172]},{\\\"name\\\":\\\"鎴愪氦閲�2\\\",\\\"data\\\":[190,210,105,35,27,102]}]},\\\"Arcbar1\\\":{\\\"series\\\":[{\\\"name\\\":\\\"姝g‘鐜嘰\\",\\\"data\\\":0.8,\\\"color\\\":\\\"#2fc25b\\\"}]},\\\"Arcbar2\\\":{\\\"series\\\":[{\\\"name\\\":\\\"涓�鐝璡\\",\\\"data\\\":0.8},{\\\"name\\\":\\\"浜岀彮\\\",\\\"data\\\":0.6},{\\\"name\\\":\\\"涓夌彮\\\",\\\"data\\\":0.45},{\\\"name\\\":\\\"鍥涚彮\\\",\\\"data\\\":0.3},{\\\"name\\\":\\\"浜旂彮\\\",\\\"data\\\":0.15}]},\\\"Gauge\\\":{\\\"categories\\\":[{\\\"value\\\":0.2,\\\"color\\\":\\\"#1890ff\\\"},{\\\"value\\\":0.8,\\\"color\\\":\\\"#2fc25b\\\"},{\\\"value\\\":1,\\\"color\\\":\\\"#f04864\\\"}],\\\"series\\\":[{\\\"name\\\":\\\"瀹屾垚鐜嘰\\",\\\"data\\\":0.66}]},\\\"Candle\\\":{\\\"categories\\\":[\\\"2020/1/24\\\",\\\"2020/1/25\\\",\\\"2020/1/28\\\",\\\"2020/1/29\\\",\\\"2020/1/30\\\",\\\"2020/1/31\\\",\\\"2020/2/1\\\",\\\"2020/2/4\\\",\\\"2020/2/5\\\",\\\"2020/2/6\\\",\\\"2020/2/7\\\",\\\"2020/2/8\\\",\\\"2020/2/18\\\",\\\"2020/2/19\\\",\\\"2020/2/20\\\",\\\"2020/2/21\\\",\\\"2020/2/22\\\",\\\"2020/2/25\\\",\\\"2020/2/26\\\",\\\"2020/2/27\\\",\\\"2020/2/28\\\",\\\"2020/3/1\\\",\\\"2020/3/4\\\",\\\"2020/3/5\\\",\\\"2020/3/6\\\",\\\"2020/3/7\\\",\\\"2020/3/8\\\",\\\"2020/3/11\\\",\\\"2020/3/12\\\",\\\"2020/3/13\\\",\\\"2020/3/14\\\",\\\"2020/3/15\\\",\\\"2020/3/18\\\",\\\"2020/3/19\\\",\\\"2020/3/20\\\",\\\"2020/3/21\\\",\\\"2020/3/22\\\",\\\"2020/3/25\\\",\\\"2020/3/26\\\",\\\"2020/3/27\\\",\\\"2020/3/28\\\",\\\"2020/3/29\\\",\\\"2020/4/1\\\",\\\"2020/4/2\\\",\\\"2020/4/3\\\",\\\"2020/4/8\\\",\\\"2020/4/9\\\",\\\"2020/4/10\\\",\\\"2020/4/11\\\",\\\"2020/4/12\\\",\\\"2020/4/15\\\",\\\"2020/4/16\\\",\\\"2020/4/17\\\",\\\"2020/4/18\\\",\\\"2020/4/19\\\",\\\"2020/4/22\\\",\\\"2020/4/23\\\",\\\"2020/4/24\\\",\\\"2020/4/25\\\",\\\"2020/4/26\\\",\\\"2020/5/2\\\",\\\"2020/5/3\\\",\\\"2020/5/6\\\",\\\"2020/5/7\\\",\\\"2020/5/8\\\",\\\"2020/5/9\\\",\\\"2020/5/10\\\",\\\"2020/5/13\\\",\\\"2020/5/14\\\",\\\"2020/5/15\\\",\\\"2020/5/16\\\",\\\"2020/5/17\\\",\\\"2020/5/20\\\",\\\"2020/5/21\\\",\\\"2020/5/22\\\",\\\"2020/5/23\\\",\\\"2020/5/24\\\",\\\"2020/5/27\\\",\\\"2020/5/28\\\",\\\"2020/5/29\\\",\\\"2020/5/30\\\",\\\"2020/5/31\\\",\\\"2020/6/3\\\",\\\"2020/6/4\\\",\\\"2020/6/5\\\",\\\"2020/6/6\\\",\\\"2020/6/7\\\",\\\"2020/6/13\\\"],\\\"series\\\":[{\\\"name\\\":\\\"涓婅瘉鎸囨暟\\\",\\\"data\\\":[[2320.26,2302.6,2287.3,2362.94],[2300,2291.3,2288.26,2308.38],[2295.35,2346.5,2295.35,2346.92],[2347.22,2358.98,2337.35,2363.8],[2360.75,2382.48,2347.89,2383.76],[2383.43,2385.42,2371.23,2391.82],[2377.41,2419.02,2369.57,2421.15],[2425.92,2428.15,2417.58,2440.38],[2411,2433.13,2403.3,2437.42],[2432.68,2434.48,2427.7,2441.73],[2430.69,2418.53,2394.22,2433.89],[2416.62,2432.4,2414.4,2443.03],[2441.91,2421.56,2415.43,2444.8],[2420.26,2382.91,2373.53,2427.07],[2383.49,2397.18,2370.61,2397.94],[2378.82,2325.95,2309.17,2378.82],[2322.94,2314.16,2308.76,2330.88],[2320.62,2325.82,2315.01,2338.78],[2313.74,2293.34,2289.89,2340.71],[2297.77,2313.22,2292.03,2324.63],[2322.32,2365.59,2308.92,2366.16],[2364.54,2359.51,2330.86,2369.65],[2332.08,2273.4,2259.25,2333.54],[2274.81,2326.31,2270.1,2328.14],[2333.61,2347.18,2321.6,2351.44],[2340.44,2324.29,2304.27,2352.02],[2326.42,2318.61,2314.59,2333.67],[2314.68,2310.59,2296.58,2320.96],[2309.16,2286.6,2264.83,2333.29],[2282.17,2263.97,2253.25,2286.33],[2255.77,2270.28,2253.31,2276.22],[2269.31,2278.4,2250,2312.08],[2267.29,2240.02,2239.21,2276.05],[2244.26,2257.43,2232.02,2261.31],[2257.74,2317.37,2257.42,2317.86],[2318.21,2324.24,2311.6,2330.81],[2321.4,2328.28,2314.97,2332],[2334.74,2326.72,2319.91,2344.89],[2318.58,2297.67,2281.12,2319.99],[2299.38,2301.26,2289,2323.48],[2273.55,2236.3,2232.91,2273.55],[2238.49,2236.62,2228.81,2246.87],[2229.46,2234.4,2227.31,2243.95],[2234.9,2227.74,2220.44,2253.42],[2232.69,2225.29,2217.25,2241.34],[2196.24,2211.59,2180.67,2212.59],[2215.47,2225.77,2215.47,2234.73],[2224.93,2226.13,2212.56,2233.04],[2236.98,2219.55,2217.26,2242.48],[2218.09,2206.78,2204.44,2226.26],[2199.91,2181.94,2177.39,2204.99],[2169.63,2194.85,2165.78,2196.43],[2195.03,2193.8,2178.47,2197.51],[2181.82,2197.6,2175.44,2206.03],[2201.12,2244.64,2200.58,2250.11],[2236.4,2242.17,2232.26,2245.12],[2242.62,2184.54,2182.81,2242.62],[2187.35,2218.32,2184.11,2226.12],[2213.19,2199.31,2191.85,2224.63],[2203.89,2177.91,2173.86,2210.58],[2170.78,2174.12,2161.14,2179.65],[2179.05,2205.5,2179.05,2222.81],[2212.5,2231.17,2212.5,2236.07],[2227.86,2235.57,2219.44,2240.26],[2242.39,2246.3,2235.42,2255.21],[2246.96,2232.97,2221.38,2247.86],[2228.82,2246.83,2225.81,2247.67],[2247.68,2241.92,2231.36,2250.85],[2238.9,2217.01,2205.87,2239.93],[2217.09,2224.8,2213.58,2225.19],[2221.34,2251.81,2210.77,2252.87],[2249.81,2282.87,2248.41,2288.09],[2286.33,2299.99,2281.9,2309.39],[2297.11,2305.11,2290.12,2305.3],[2303.75,2302.4,2292.43,2314.18],[2293.81,2275.67,2274.1,2304.95],[2281.45,2288.53,2270.25,2292.59],[2286.66,2293.08,2283.94,2301.7],[2293.4,2321.32,2281.47,2322.1],[2323.54,2324.02,2321.17,2334.33],[2316.25,2317.75,2310.49,2325.72],[2320.74,2300.59,2299.37,2325.53],[2300.21,2299.25,2294.11,2313.43],[2297.1,2272.42,2264.76,2297.1],[2270.71,2270.93,2260.87,2276.86],[2264.43,2242.11,2240.07,2266.69],[2242.26,2210.9,2205.07,2250.63],[2190.1,2148.35,2126.22,2190.1]]}]},\\\"CandleColumn\\\":{\\\"categories\\\":[\\\"2020/1/24\\\",\\\"2020/1/25\\\",\\\"2020/1/28\\\",\\\"2020/1/29\\\",\\\"2020/1/30\\\",\\\"2020/1/31\\\",\\\"2020/2/1\\\",\\\"2020/2/4\\\",\\\"2020/2/5\\\",\\\"2020/2/6\\\",\\\"2020/2/7\\\",\\\"2020/2/8\\\",\\\"2020/2/18\\\",\\\"2020/2/19\\\",\\\"2020/2/20\\\",\\\"2020/2/21\\\",\\\"2020/2/22\\\",\\\"2020/2/25\\\",\\\"2020/2/26\\\",\\\"2020/2/27\\\",\\\"2020/2/28\\\",\\\"2020/3/1\\\",\\\"2020/3/4\\\",\\\"2020/3/5\\\",\\\"2020/3/6\\\",\\\"2020/3/7\\\",\\\"2020/3/8\\\",\\\"2020/3/11\\\",\\\"2020/3/12\\\",\\\"2020/3/13\\\",\\\"2020/3/14\\\",\\\"2020/3/15\\\",\\\"2020/3/18\\\",\\\"2020/3/19\\\",\\\"2020/3/20\\\",\\\"2020/3/21\\\",\\\"2020/3/22\\\",\\\"2020/3/25\\\",\\\"2020/3/26\\\",\\\"2020/3/27\\\",\\\"2020/3/28\\\",\\\"2020/3/29\\\",\\\"2020/4/1\\\",\\\"2020/4/2\\\",\\\"2020/4/3\\\",\\\"2020/4/8\\\",\\\"2020/4/9\\\",\\\"2020/4/10\\\",\\\"2020/4/11\\\",\\\"2020/4/12\\\",\\\"2020/4/15\\\",\\\"2020/4/16\\\",\\\"2020/4/17\\\",\\\"2020/4/18\\\",\\\"2020/4/19\\\",\\\"2020/4/22\\\",\\\"2020/4/23\\\",\\\"2020/4/24\\\",\\\"2020/4/25\\\",\\\"2020/4/26\\\",\\\"2020/5/2\\\",\\\"2020/5/3\\\",\\\"2020/5/6\\\",\\\"2020/5/7\\\",\\\"2020/5/8\\\",\\\"2020/5/9\\\",\\\"2020/5/10\\\",\\\"2020/5/13\\\",\\\"2020/5/14\\\",\\\"2020/5/15\\\",\\\"2020/5/16\\\",\\\"2020/5/17\\\",\\\"2020/5/20\\\",\\\"2020/5/21\\\",\\\"2020/5/22\\\",\\\"2020/5/23\\\",\\\"2020/5/24\\\",\\\"2020/5/27\\\",\\\"2020/5/28\\\",\\\"2020/5/29\\\",\\\"2020/5/30\\\",\\\"2020/5/31\\\",\\\"2020/6/3\\\",\\\"2020/6/4\\\",\\\"2020/6/5\\\",\\\"2020/6/6\\\",\\\"2020/6/7\\\",\\\"2020/6/13\\\"],\\\"series\\\":[{\\\"name\\\":\\\"鎴愪氦閲�1\\\",\\\"data\\\":[15,20,45,37,43,15,20,45,37,43,15,20,45,37,43,15,20,45,37,43,15,20,45,37,43,15,20,45,37,43,15,20,45,37,43,15,20,45,37,43,15,20,45,37,43,15,20,45,37,43,15,20,45,37,43,15,20,45,37,43,15,20,45,37,43,15,20,45,37,43,15,20,45,37,43,15,20,45,37,43,15,20,45,37,43,15,20,45]}]},\\\"Word\\\":{\\\"series\\\":[{\\\"name\\\":\\\"璺ㄥ叏绔浘琛╘\\",\\\"textSize\\\":25},{\\\"name\\\":\\\"寰俊灏忕▼搴廫\\",\\\"textSize\\\":20},{\\\"name\\\":\\\"鏀粯瀹濆皬绋嬪簭\\\",\\\"textSize\\\":20},{\\\"name\\\":\\\"鐧惧害灏忕▼搴廫\\",\\\"textSize\\\":20},{\\\"name\\\":\\\"QQ灏忕▼搴廫\\",\\\"textSize\\\":20},{\\\"name\\\":\\\"澶存潯灏忕▼搴廫\\",\\\"textSize\\\":20},{\\\"name\\\":\\\"鎶栭煶灏忕▼搴廫\\",\\\"textSize\\\":20},{\\\"name\\\":\\\"360灏忕▼搴廫\\",\\\"textSize\\\":20},{\\\"name\\\":\\\"璺ㄥ叏绔痋\\",\\\"textSize\\\":10},{\\\"name\\\":\\\"璺ㄥ叏绔痋\\",\\\"textSize\\\":12},{\\\"name\\\":\\\"璺ㄥ叏绔痋\\",\\\"textSize\\\":10},{\\\"name\\\":\\\"璺ㄥ叏绔痋\\",\\\"textSize\\\":12},{\\\"name\\\":\\\"璺ㄥ叏绔痋\\",\\\"textSize\\\":10},{\\\"name\\\":\\\"璺ㄥ叏绔痋\\",\\\"textSize\\\":12},{\\\"name\\\":\\\"璺ㄥ叏绔痋\\",\\\"textSize\\\":10},{\\\"name\\\":\\\"璺ㄥ叏绔痋\\",\\\"textSize\\\":12}]}}\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiI3Ny5qcyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///77\n");
+
+/***/ }),
+/* 78 */
+/*!*****************************************************************************!*\
+  !*** D:/Workspace/zy/private/Monitor-APP/pages/index/index.vue?mpType=page ***!
+  \*****************************************************************************/
+/*! no static exports found */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _index_vue_vue_type_template_id_2be84a3c_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index.vue?vue&type=template&id=2be84a3c&mpType=page */ 79);\n/* harmony import */ var _index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index.vue?vue&type=script&lang=js&mpType=page */ 99);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 12);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n  _index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n  _index_vue_vue_type_template_id_2be84a3c_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n  _index_vue_vue_type_template_id_2be84a3c_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n  false,\n  null,\n  null,\n  null,\n  false,\n  _index_vue_vue_type_template_id_2be84a3c_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n  renderjs\n)\n\ncomponent.options.__file = \"pages/index/index.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBNkg7QUFDN0g7QUFDb0U7QUFDTDs7O0FBRy9EO0FBQ3VNO0FBQ3ZNLGdCQUFnQiwyTUFBVTtBQUMxQixFQUFFLHNGQUFNO0FBQ1IsRUFBRSwyRkFBTTtBQUNSLEVBQUUsb0dBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsK0ZBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiNzguanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL2luZGV4LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0yYmU4NGEzYyZtcFR5cGU9cGFnZVwiXG52YXIgcmVuZGVyanNcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vaW5kZXgudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJm1wVHlwZT1wYWdlXCJcbmV4cG9ydCAqIGZyb20gXCIuL2luZGV4LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZtcFR5cGU9cGFnZVwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIG51bGwsXG4gIG51bGwsXG4gIGZhbHNlLFxuICBjb21wb25lbnRzLFxuICByZW5kZXJqc1xuKVxuXG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInBhZ2VzL2luZGV4L2luZGV4LnZ1ZVwiXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///78\n");
+
+/***/ }),
+/* 79 */
+/*!***********************************************************************************************************!*\
+  !*** D:/Workspace/zy/private/Monitor-APP/pages/index/index.vue?vue&type=template&id=2be84a3c&mpType=page ***!
+  \***********************************************************************************************************/
+/*! exports provided: render, staticRenderFns, recyclableRender, components */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_template_id_2be84a3c_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./index.vue?vue&type=template&id=2be84a3c&mpType=page */ 80);
+/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_template_id_2be84a3c_mpType_page__WEBPACK_IMPORTED_MODULE_0__["render"]; });
+
+/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_template_id_2be84a3c_mpType_page__WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
+
+/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_template_id_2be84a3c_mpType_page__WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; });
+
+/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_template_id_2be84a3c_mpType_page__WEBPACK_IMPORTED_MODULE_0__["components"]; });
+
+
+
+/***/ }),
+/* 80 */
+/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
+  !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Workspace/zy/private/Monitor-APP/pages/index/index.vue?vue&type=template&id=2be84a3c&mpType=page ***!
+  \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
+/*! exports provided: render, staticRenderFns, recyclableRender, components */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; });
+var components
+try {
+  components = {
+    qiunDataCharts: __webpack_require__(/*! @/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue */ 18)
+      .default,
+    uniPopup: __webpack_require__(/*! @/uni_modules/uni-popup/components/uni-popup/uni-popup.vue */ 81)
+      .default,
+    uniPopupDialog: __webpack_require__(/*! @/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue */ 86)
+      .default
+  }
+} catch (e) {
+  if (
+    e.message.indexOf("Cannot find module") !== -1 &&
+    e.message.indexOf(".vue") !== -1
+  ) {
+    console.error(e.message)
+    console.error("1. 鎺掓煡缁勪欢鍚嶇О鎷煎啓鏄惁姝g‘")
+    console.error(
+      "2. 鎺掓煡缁勪欢鏄惁绗﹀悎 easycom 瑙勮寖锛屾枃妗o細https://uniapp.dcloud.net.cn/collocation/pages?id=easycom"
+    )
+    console.error(
+      "3. 鑻ョ粍浠朵笉绗﹀悎 easycom 瑙勮寖锛岄渶鎵嬪姩寮曞叆锛屽苟鍦� components 涓敞鍐岃缁勪欢"
+    )
+  } else {
+    throw e
+  }
+}
+var render = function() {
+  var _vm = this
+  var _h = _vm.$createElement
+  var _c = _vm._self._c || _h
+  return _c(
+    "view",
+    { staticClass: _vm._$s(0, "sc", "container"), attrs: { _i: 0 } },
+    [
+      _c(
+        "view",
+        {
+          staticClass: _vm._$s(1, "sc", "floor-screen"),
+          class: _vm._$s(1, "c", _vm.floorMove),
+          attrs: { _i: 1 }
+        },
+        [
+          _c(
+            "view",
+            { staticClass: _vm._$s(2, "sc", "head"), attrs: { _i: 2 } },
+            [
+              _c("text", {
+                attrs: { _i: 3 },
+                on: {
+                  click: function($event) {
+                    return _vm.port()
+                  }
+                }
+              }),
+              _c(
+                "view",
+                {
+                  staticClass: _vm._$s(4, "sc", "time-tools"),
+                  attrs: { _i: 4 }
+                },
+                [
+                  _vm._v(
+                    _vm._$s(4, "t0-0", _vm._s(_vm.year)) +
+                      _vm._$s(4, "t0-1", _vm._s(_vm.month)) +
+                      _vm._$s(4, "t0-2", _vm._s(_vm.day)) +
+                      _vm._$s(4, "t0-3", _vm._s(_vm.hours)) +
+                      _vm._$s(4, "t0-4", _vm._s(_vm.minutes)) +
+                      _vm._$s(4, "t0-5", _vm._s(_vm.seconds)) +
+                      _vm._$s(4, "t0-6", _vm._s(_vm.week))
+                  )
+                ]
+              ),
+              _c("view", {
+                staticClass: _vm._$s(5, "sc", "button-left"),
+                attrs: { _i: 5 },
+                on: {
+                  click: function($event) {
+                    return _vm.ejected()
+                  }
+                }
+              }),
+              _c("view", {
+                staticClass: _vm._$s(6, "sc", "button-right"),
+                attrs: { _i: 6 },
+                on: {
+                  click: function($event) {
+                    return _vm.ledId()
+                  }
+                }
+              })
+            ]
+          ),
+          _c(
+            "view",
+            { staticClass: _vm._$s(7, "sc", "main"), attrs: { _i: 7 } },
+            [
+              _c(
+                "view",
+                {
+                  staticClass: _vm._$s(8, "sc", "main-sides"),
+                  attrs: { _i: 8 }
+                },
+                [
+                  _c(
+                    "view",
+                    { staticClass: _vm._$s(9, "sc", "box"), attrs: { _i: 9 } },
+                    [
+                      _c("view", {
+                        staticClass: _vm._$s(
+                          10,
+                          "sc",
+                          "box-border box-border1"
+                        ),
+                        attrs: { _i: 10 }
+                      }),
+                      _c("view", {
+                        staticClass: _vm._$s(
+                          11,
+                          "sc",
+                          "box-border box-border2"
+                        ),
+                        attrs: { _i: 11 }
+                      }),
+                      _c("view", {
+                        staticClass: _vm._$s(
+                          12,
+                          "sc",
+                          "box-border box-border3"
+                        ),
+                        attrs: { _i: 12 }
+                      }),
+                      _c("view", {
+                        staticClass: _vm._$s(
+                          13,
+                          "sc",
+                          "box-border box-border4"
+                        ),
+                        attrs: { _i: 13 }
+                      }),
+                      _c(
+                        "view",
+                        {
+                          directives: [
+                            {
+                              name: "show",
+                              rawName: "v-show",
+                              value: _vm._$s(14, "v-show", !_vm.errorShow),
+                              expression: "_$s(14,'v-show',!errorShow)"
+                            }
+                          ],
+                          attrs: { _i: 14 }
+                        },
+                        [
+                          _c(
+                            "view",
+                            {
+                              class: _vm._$s(15, "c", _vm.width),
+                              attrs: { _i: 15 }
+                            },
+                            [
+                              _c(
+                                "view",
+                                {
+                                  staticClass: _vm._$s(16, "sc", "box-items"),
+                                  attrs: { _i: 16 }
+                                },
+                                [_vm._v(_vm._$s(16, "t0-0", _vm._s(_vm.title)))]
+                              ),
+                              _c(
+                                "view",
+                                {
+                                  staticClass: _vm._$s(17, "sc", "box-items"),
+                                  attrs: { _i: 17 }
+                                },
+                                [_vm._v(_vm._$s(17, "t0-0", _vm._s(_vm.staNo)))]
+                              ),
+                              _c(
+                                "view",
+                                {
+                                  staticClass: _vm._$s(18, "sc", "box-items"),
+                                  attrs: { _i: 18 }
+                                },
+                                [_vm._v(_vm._$s(18, "t0-0", _vm._s(_vm.matnr)))]
+                              ),
+                              _c(
+                                "view",
+                                {
+                                  staticClass: _vm._$s(19, "sc", "box-items"),
+                                  attrs: { _i: 19 }
+                                },
+                                [_vm._v(_vm._$s(19, "t0-0", _vm._s(_vm.maknx)))]
+                              ),
+                              _c(
+                                "view",
+                                {
+                                  staticClass: _vm._$s(20, "sc", "box-items"),
+                                  attrs: { _i: 20 }
+                                },
+                                [_vm._v(_vm._$s(20, "t0-0", _vm._s(_vm.count)))]
+                              )
+                            ]
+                          ),
+                          _c(
+                            "view",
+                            {
+                              directives: [
+                                {
+                                  name: "show",
+                                  rawName: "v-show",
+                                  value: _vm._$s(21, "v-show", _vm.orderShow),
+                                  expression: "_$s(21,'v-show',orderShow)"
+                                }
+                              ],
+                              attrs: { _i: 21 }
+                            },
+                            [
+                              _c(
+                                "view",
+                                {
+                                  staticClass: _vm._$s(22, "sc", "box-items"),
+                                  attrs: { _i: 22 }
+                                },
+                                [
+                                  _vm._v(
+                                    _vm._$s(22, "t0-0", _vm._s(_vm.orderNo))
+                                  )
+                                ]
+                              ),
+                              _c(
+                                "view",
+                                {
+                                  staticClass: _vm._$s(23, "sc", "box-items"),
+                                  attrs: { _i: 23 }
+                                },
+                                [
+                                  _vm._v(
+                                    _vm._$s(23, "t0-0", _vm._s(_vm.doneOfTray))
+                                  )
+                                ]
+                              ),
+                              _c(
+                                "view",
+                                {
+                                  staticClass: _vm._$s(24, "sc", "box-items"),
+                                  attrs: { _i: 24 }
+                                },
+                                [
+                                  _vm._v(
+                                    _vm._$s(24, "t0-0", _vm._s(_vm.totalOfTray))
+                                  )
+                                ]
+                              ),
+                              _c(
+                                "view",
+                                {
+                                  staticClass: _vm._$s(25, "sc", "box-items"),
+                                  attrs: { _i: 25 }
+                                },
+                                [
+                                  _vm._v(
+                                    _vm._$s(25, "t0-0", _vm._s(_vm.doneOfUnit))
+                                  )
+                                ]
+                              ),
+                              _c(
+                                "view",
+                                {
+                                  staticClass: _vm._$s(26, "sc", "box-items"),
+                                  attrs: { _i: 26 }
+                                },
+                                [
+                                  _vm._v(
+                                    _vm._$s(26, "t0-0", _vm._s(_vm.totalOfUnit))
+                                  )
+                                ]
+                              )
+                            ]
+                          )
+                        ]
+                      ),
+                      _c(
+                        "view",
+                        {
+                          directives: [
+                            {
+                              name: "show",
+                              rawName: "v-show",
+                              value: _vm._$s(27, "v-show", _vm.errorShow),
+                              expression: "_$s(27,'v-show',errorShow)"
+                            }
+                          ],
+                          attrs: { _i: 27 }
+                        },
+                        [
+                          _c("view", [
+                            _vm._v(_vm._$s(28, "t0-0", _vm._s(_vm.errorMsg)))
+                          ])
+                        ]
+                      )
+                    ]
+                  )
+                ]
+              )
+            ]
+          )
+        ]
+      ),
+      _c(
+        "view",
+        {
+          staticClass: _vm._$s(29, "sc", "top-screen"),
+          class: _vm._$s(29, "c", _vm.topMove),
+          attrs: { _i: 29 }
+        },
+        [
+          _c(
+            "view",
+            { staticClass: _vm._$s(30, "sc", "head"), attrs: { _i: 30 } },
+            [
+              _c("text", {
+                attrs: { _i: 31 },
+                on: {
+                  click: function($event) {
+                    return _vm.port()
+                  }
+                }
+              }),
+              _c(
+                "view",
+                {
+                  staticClass: _vm._$s(32, "sc", "time-tools"),
+                  attrs: { _i: 32 }
+                },
+                [
+                  _vm._v(
+                    _vm._$s(32, "t0-0", _vm._s(_vm.year)) +
+                      _vm._$s(32, "t0-1", _vm._s(_vm.month)) +
+                      _vm._$s(32, "t0-2", _vm._s(_vm.day)) +
+                      _vm._$s(32, "t0-3", _vm._s(_vm.hours)) +
+                      _vm._$s(32, "t0-4", _vm._s(_vm.minutes)) +
+                      _vm._$s(32, "t0-5", _vm._s(_vm.seconds)) +
+                      _vm._$s(32, "t0-6", _vm._s(_vm.week))
+                  )
+                ]
+              ),
+              _c("view", {
+                staticClass: _vm._$s(33, "sc", "button-left"),
+                attrs: { _i: 33 },
+                on: {
+                  click: function($event) {
+                    return _vm.ejected()
+                  }
+                }
+              }),
+              _c("view", {
+                staticClass: _vm._$s(34, "sc", "button-right"),
+                attrs: { _i: 34 },
+                on: {
+                  click: function($event) {
+                    return _vm.ledId()
+                  }
+                }
+              })
+            ]
+          ),
+          _c(
+            "view",
+            { staticClass: _vm._$s(35, "sc", "main"), attrs: { _i: 35 } },
+            [
+              _c(
+                "view",
+                {
+                  staticClass: _vm._$s(36, "sc", "main-sides"),
+                  attrs: { _i: 36 }
+                },
+                [
+                  _c(
+                    "view",
+                    {
+                      staticClass: _vm._$s(37, "sc", "box box-lg"),
+                      attrs: { _i: 37 }
+                    },
+                    [
+                      _c("view", {
+                        staticClass: _vm._$s(
+                          38,
+                          "sc",
+                          "box-border box-border1"
+                        ),
+                        attrs: { _i: 38 }
+                      }),
+                      _c("view", {
+                        staticClass: _vm._$s(
+                          39,
+                          "sc",
+                          "box-border box-border2"
+                        ),
+                        attrs: { _i: 39 }
+                      }),
+                      _c("view", {
+                        staticClass: _vm._$s(
+                          40,
+                          "sc",
+                          "box-border box-border3"
+                        ),
+                        attrs: { _i: 40 }
+                      }),
+                      _c("view", {
+                        staticClass: _vm._$s(
+                          41,
+                          "sc",
+                          "box-border box-border4"
+                        ),
+                        attrs: { _i: 41 }
+                      }),
+                      _c(
+                        "view",
+                        {
+                          staticClass: _vm._$s(42, "sc", "box-item introduce"),
+                          attrs: { _i: 42 }
+                        },
+                        [
+                          _c("h3"),
+                          _c("p", {
+                            staticClass: _vm._$s(44, "sc", "english"),
+                            attrs: { _i: 44 }
+                          }),
+                          _c("p", {
+                            staticClass: _vm._$s(45, "sc", "introduce-content"),
+                            attrs: { _i: 45 }
+                          })
+                        ]
+                      ),
+                      _c(
+                        "view",
+                        {
+                          staticClass: _vm._$s(
+                            46,
+                            "sc",
+                            "box-item charge-info"
+                          ),
+                          attrs: { _i: 46 }
+                        },
+                        [
+                          _c("h3"),
+                          _c("p", {
+                            staticClass: _vm._$s(48, "sc", "english"),
+                            attrs: { _i: 48 }
+                          }),
+                          _c(
+                            "view",
+                            {
+                              staticClass: _vm._$s(
+                                49,
+                                "sc",
+                                "charge-info-item"
+                              ),
+                              attrs: { _i: 49 }
+                            },
+                            [
+                              _c("image", {
+                                attrs: {
+                                  src: _vm._$s(
+                                    50,
+                                    "a-src",
+                                    __webpack_require__(/*! ../../static/a1.png */ 71)
+                                  ),
+                                  _i: 50
+                                }
+                              }),
+                              _c("view", [
+                                _c(
+                                  "text",
+                                  {
+                                    staticClass: _vm._$s(52, "sc", "count"),
+                                    attrs: { _i: 52 }
+                                  },
+                                  [
+                                    _vm._v(
+                                      _vm._$s(52, "t0-0", _vm._s(_vm.xDistance))
+                                    )
+                                  ]
+                                ),
+                                _c("text", {
+                                  staticClass: _vm._$s(53, "sc", "unit"),
+                                  attrs: { _i: 53 }
+                                })
+                              ]),
+                              _c("view")
+                            ]
+                          ),
+                          _c(
+                            "view",
+                            {
+                              staticClass: _vm._$s(
+                                55,
+                                "sc",
+                                "charge-info-item"
+                              ),
+                              attrs: { _i: 55 }
+                            },
+                            [
+                              _c("image", {
+                                attrs: {
+                                  src: _vm._$s(
+                                    56,
+                                    "a-src",
+                                    __webpack_require__(/*! ../../static/b1.png */ 72)
+                                  ),
+                                  _i: 56
+                                }
+                              }),
+                              _c("view", [
+                                _c(
+                                  "text",
+                                  {
+                                    staticClass: _vm._$s(58, "sc", "count"),
+                                    attrs: { _i: 58 }
+                                  },
+                                  [
+                                    _vm._v(
+                                      _vm._$s(58, "t0-0", _vm._s(_vm.yDistance))
+                                    )
+                                  ]
+                                ),
+                                _c("text", {
+                                  staticClass: _vm._$s(59, "sc", "unit"),
+                                  attrs: { _i: 59 }
+                                })
+                              ]),
+                              _c("view")
+                            ]
+                          ),
+                          _c(
+                            "view",
+                            {
+                              staticClass: _vm._$s(
+                                61,
+                                "sc",
+                                "charge-info-item"
+                              ),
+                              attrs: { _i: 61 }
+                            },
+                            [
+                              _c("image", {
+                                attrs: {
+                                  src: _vm._$s(
+                                    62,
+                                    "a-src",
+                                    __webpack_require__(/*! ../../static/c1.png */ 73)
+                                  ),
+                                  _i: 62
+                                }
+                              }),
+                              _c("view", [
+                                _c(
+                                  "text",
+                                  {
+                                    staticClass: _vm._$s(64, "sc", "count"),
+                                    attrs: { _i: 64 }
+                                  },
+                                  [
+                                    _vm._v(
+                                      _vm._$s(64, "t0-0", _vm._s(_vm.xDuration))
+                                    )
+                                  ]
+                                ),
+                                _c("text", {
+                                  staticClass: _vm._$s(65, "sc", "unit"),
+                                  attrs: { _i: 65 }
+                                })
+                              ]),
+                              _c("view")
+                            ]
+                          ),
+                          _c(
+                            "view",
+                            {
+                              staticClass: _vm._$s(
+                                67,
+                                "sc",
+                                "charge-info-item"
+                              ),
+                              attrs: { _i: 67 }
+                            },
+                            [
+                              _c("image", {
+                                attrs: {
+                                  src: _vm._$s(
+                                    68,
+                                    "a-src",
+                                    __webpack_require__(/*! ../../static/d1.png */ 74)
+                                  ),
+                                  _i: 68
+                                }
+                              }),
+                              _c("view", [
+                                _c(
+                                  "text",
+                                  {
+                                    staticClass: _vm._$s(70, "sc", "count"),
+                                    attrs: { _i: 70 }
+                                  },
+                                  [
+                                    _vm._v(
+                                      _vm._$s(70, "t0-0", _vm._s(_vm.yDuration))
+                                    )
+                                  ]
+                                ),
+                                _c("text", {
+                                  staticClass: _vm._$s(71, "sc", "unit"),
+                                  attrs: { _i: 71 }
+                                })
+                              ]),
+                              _c("view")
+                            ]
+                          )
+                        ]
+                      ),
+                      _c(
+                        "view",
+                        {
+                          staticClass: _vm._$s(73, "sc", "box-item use-info"),
+                          attrs: { _i: 73 }
+                        },
+                        [
+                          _c(
+                            "view",
+                            {
+                              staticClass: _vm._$s(74, "sc", "use-left"),
+                              attrs: { _i: 74 }
+                            },
+                            [
+                              _c("h3"),
+                              _c("p", {
+                                staticClass: _vm._$s(76, "sc", "english"),
+                                attrs: { _i: 76 }
+                              })
+                            ]
+                          ),
+                          _c(
+                            "view",
+                            {
+                              staticClass: _vm._$s(77, "sc", "use-right"),
+                              attrs: { _i: 77 }
+                            },
+                            [
+                              _c("h3", [
+                                _vm._v(_vm._$s(78, "t0-0", _vm._s(_vm.usedPr)))
+                              ]),
+                              _c("p", {
+                                staticClass: _vm._$s(79, "sc", "english"),
+                                attrs: { _i: 79 }
+                              })
+                            ]
+                          ),
+                          _c(
+                            "view",
+                            {
+                              staticClass: _vm._$s(80, "sc", "use-main"),
+                              attrs: { _i: 80 }
+                            },
+                            [
+                              _c(
+                                "view",
+                                {
+                                  staticClass: _vm._$s(81, "sc", "left"),
+                                  attrs: { _i: 81 }
+                                },
+                                [
+                                  _c(
+                                    "view",
+                                    {
+                                      staticClass: _vm._$s(
+                                        82,
+                                        "sc",
+                                        "progressBar"
+                                      ),
+                                      attrs: { _i: 82 }
+                                    },
+                                    [
+                                      _c("view", {
+                                        staticClass: _vm._$s(
+                                          83,
+                                          "sc",
+                                          "progress"
+                                        ),
+                                        style: _vm._$s(
+                                          83,
+                                          "s",
+                                          "width:" + _vm.usedPr + "%"
+                                        ),
+                                        attrs: { _i: 83 }
+                                      })
+                                    ]
+                                  )
+                                ]
+                              ),
+                              _c(
+                                "view",
+                                {
+                                  staticClass: _vm._$s(84, "sc", "right"),
+                                  attrs: { _i: 84 }
+                                },
+                                [_vm._v(_vm._$s(84, "t0-0", _vm._s(_vm.used)))]
+                              )
+                            ]
+                          )
+                        ]
+                      )
+                    ]
+                  )
+                ]
+              ),
+              _c(
+                "view",
+                {
+                  staticClass: _vm._$s(85, "sc", "main-sides"),
+                  attrs: { _i: 85 }
+                },
+                [
+                  _c(
+                    "view",
+                    {
+                      staticClass: _vm._$s(86, "sc", "box box-tp"),
+                      attrs: { _i: 86 }
+                    },
+                    [
+                      _c("view", {
+                        staticClass: _vm._$s(
+                          87,
+                          "sc",
+                          "box-border box-border1"
+                        ),
+                        attrs: { _i: 87 }
+                      }),
+                      _c("view", {
+                        staticClass: _vm._$s(
+                          88,
+                          "sc",
+                          "box-border box-border2"
+                        ),
+                        attrs: { _i: 88 }
+                      }),
+                      _c("view", {
+                        staticClass: _vm._$s(
+                          89,
+                          "sc",
+                          "box-border box-border3"
+                        ),
+                        attrs: { _i: 89 }
+                      }),
+                      _c("view", {
+                        staticClass: _vm._$s(
+                          90,
+                          "sc",
+                          "box-border box-border4"
+                        ),
+                        attrs: { _i: 90 }
+                      }),
+                      _c(
+                        "view",
+                        {
+                          staticClass: _vm._$s(91, "sc", "box-item right-item"),
+                          attrs: { _i: 91 }
+                        },
+                        [
+                          _c(
+                            "view",
+                            {
+                              staticClass: _vm._$s(92, "sc", "sub-left"),
+                              attrs: { _i: 92 }
+                            },
+                            [
+                              _c("h3"),
+                              _c("p", {
+                                staticClass: _vm._$s(94, "sc", "english"),
+                                attrs: { _i: 94 }
+                              })
+                            ]
+                          ),
+                          _c(
+                            "view",
+                            {
+                              staticClass: _vm._$s(95, "sc", "sub-right"),
+                              attrs: { _i: 95 }
+                            },
+                            [
+                              _c("h3"),
+                              _c("p", {
+                                staticClass: _vm._$s(97, "sc", "english"),
+                                attrs: { _i: 97 }
+                              })
+                            ]
+                          ),
+                          _c(
+                            "view",
+                            {
+                              staticClass: _vm._$s(98, "sc", "sub-main"),
+                              attrs: { _i: 98 }
+                            },
+                            [
+                              _c(
+                                "view",
+                                {
+                                  staticClass: _vm._$s(99, "sc", "charts-box"),
+                                  attrs: { _i: 99 }
+                                },
+                                [
+                                  _c("qiun-data-charts", {
+                                    attrs: {
+                                      type: "line",
+                                      chartData: _vm.chartsDataLine1,
+                                      echartsH5: true,
+                                      echartsApp: true,
+                                      _i: 100
+                                    }
+                                  })
+                                ],
+                                1
+                              )
+                            ]
+                          )
+                        ]
+                      )
+                    ]
+                  ),
+                  _c(
+                    "view",
+                    {
+                      staticClass: _vm._$s(101, "sc", "box box-md"),
+                      attrs: { _i: 101 }
+                    },
+                    [
+                      _c("view", {
+                        staticClass: _vm._$s(
+                          102,
+                          "sc",
+                          "box-border box-border1"
+                        ),
+                        attrs: { _i: 102 }
+                      }),
+                      _c("view", {
+                        staticClass: _vm._$s(
+                          103,
+                          "sc",
+                          "box-border box-border2"
+                        ),
+                        attrs: { _i: 103 }
+                      }),
+                      _c("view", {
+                        staticClass: _vm._$s(
+                          104,
+                          "sc",
+                          "box-border box-border3"
+                        ),
+                        attrs: { _i: 104 }
+                      }),
+                      _c("view", {
+                        staticClass: _vm._$s(
+                          105,
+                          "sc",
+                          "box-border box-border4"
+                        ),
+                        attrs: { _i: 105 }
+                      }),
+                      _c(
+                        "view",
+                        {
+                          staticClass: _vm._$s(
+                            106,
+                            "sc",
+                            "box-item right-item"
+                          ),
+                          attrs: { _i: 106 }
+                        },
+                        [
+                          _c(
+                            "view",
+                            {
+                              staticClass: _vm._$s(107, "sc", "sub-left"),
+                              attrs: { _i: 107 }
+                            },
+                            [
+                              _c("h3"),
+                              _c("p", {
+                                staticClass: _vm._$s(109, "sc", "english"),
+                                attrs: { _i: 109 }
+                              })
+                            ]
+                          ),
+                          _c(
+                            "view",
+                            {
+                              staticClass: _vm._$s(110, "sc", "sub-right"),
+                              attrs: { _i: 110 }
+                            },
+                            [
+                              _c("h3"),
+                              _c("p", {
+                                staticClass: _vm._$s(112, "sc", "english"),
+                                attrs: { _i: 112 }
+                              })
+                            ]
+                          ),
+                          _c(
+                            "view",
+                            {
+                              staticClass: _vm._$s(113, "sc", "sub-main"),
+                              attrs: { _i: 113 }
+                            },
+                            [
+                              _c(
+                                "view",
+                                {
+                                  staticClass: _vm._$s(
+                                    114,
+                                    "sc",
+                                    "charts-box ring"
+                                  ),
+                                  attrs: { _i: 114 }
+                                },
+                                [
+                                  _c("qiun-data-charts", {
+                                    attrs: {
+                                      type: "ring",
+                                      opts: { legend: { position: "bottom" } },
+                                      eopts: _vm.ringOpts,
+                                      chartData: _vm.chartsDataPie2,
+                                      echartsH5: true,
+                                      echartsApp: true,
+                                      _i: 115
+                                    }
+                                  })
+                                ],
+                                1
+                              ),
+                              _c(
+                                "view",
+                                {
+                                  staticClass: _vm._$s(
+                                    116,
+                                    "sc",
+                                    "sub-main-right"
+                                  ),
+                                  attrs: { _i: 116 }
+                                },
+                                [
+                                  _c(
+                                    "view",
+                                    {
+                                      staticClass: _vm._$s(
+                                        117,
+                                        "sc",
+                                        "sub-info"
+                                      ),
+                                      attrs: { _i: 117 }
+                                    },
+                                    [
+                                      _c("image", {
+                                        attrs: {
+                                          src: _vm._$s(
+                                            118,
+                                            "a-src",
+                                            __webpack_require__(/*! ../../static/g1.png */ 96)
+                                          ),
+                                          _i: 118
+                                        }
+                                      }),
+                                      _c("text"),
+                                      _c("text", [
+                                        _vm._v(
+                                          _vm._$s(
+                                            120,
+                                            "t0-0",
+                                            _vm._s(_vm.stockCount)
+                                          )
+                                        )
+                                      ])
+                                    ]
+                                  ),
+                                  _c(
+                                    "view",
+                                    {
+                                      staticClass: _vm._$s(
+                                        121,
+                                        "sc",
+                                        "sub-info"
+                                      ),
+                                      attrs: { _i: 121 }
+                                    },
+                                    [
+                                      _c("image", {
+                                        attrs: {
+                                          src: _vm._$s(
+                                            122,
+                                            "a-src",
+                                            __webpack_require__(/*! ../../static/f1.png */ 97)
+                                          ),
+                                          _i: 122
+                                        }
+                                      }),
+                                      _c("text"),
+                                      _c("text", [
+                                        _vm._v(
+                                          _vm._$s(
+                                            124,
+                                            "t0-0",
+                                            _vm._s(_vm.emptyCount)
+                                          )
+                                        )
+                                      ])
+                                    ]
+                                  ),
+                                  _c(
+                                    "view",
+                                    {
+                                      staticClass: _vm._$s(
+                                        125,
+                                        "sc",
+                                        "sub-info"
+                                      ),
+                                      attrs: { _i: 125 }
+                                    },
+                                    [
+                                      _c("image", {
+                                        attrs: {
+                                          src: _vm._$s(
+                                            126,
+                                            "a-src",
+                                            __webpack_require__(/*! ../../static/e1.png */ 98)
+                                          ),
+                                          _i: 126
+                                        }
+                                      }),
+                                      _c("text"),
+                                      _c("text", [
+                                        _vm._v(
+                                          _vm._$s(
+                                            128,
+                                            "t0-0",
+                                            _vm._s(_vm.noneCount)
+                                          )
+                                        )
+                                      ])
+                                    ]
+                                  )
+                                ]
+                              )
+                            ]
+                          )
+                        ]
+                      )
+                    ]
+                  ),
+                  _c(
+                    "view",
+                    {
+                      staticClass: _vm._$s(129, "sc", "box box-bt"),
+                      attrs: { _i: 129 }
+                    },
+                    [
+                      _c("view", {
+                        staticClass: _vm._$s(
+                          130,
+                          "sc",
+                          "box-border box-border1"
+                        ),
+                        attrs: { _i: 130 }
+                      }),
+                      _c("view", {
+                        staticClass: _vm._$s(
+                          131,
+                          "sc",
+                          "box-border box-border2"
+                        ),
+                        attrs: { _i: 131 }
+                      }),
+                      _c("view", {
+                        staticClass: _vm._$s(
+                          132,
+                          "sc",
+                          "box-border box-border3"
+                        ),
+                        attrs: { _i: 132 }
+                      }),
+                      _c("view", {
+                        staticClass: _vm._$s(
+                          133,
+                          "sc",
+                          "box-border box-border4"
+                        ),
+                        attrs: { _i: 133 }
+                      }),
+                      _c("view", {
+                        attrs: { _i: 134 },
+                        on: {
+                          click: function($event) {
+                            return _vm.crn()
+                          }
+                        }
+                      })
+                    ]
+                  )
+                ]
+              )
+            ]
+          )
+        ]
+      ),
+      _c(
+        "view",
+        [
+          _c(
+            "uni-popup",
+            { ref: "url", attrs: { type: "dialog", _i: 136 } },
+            [
+              _c("uni-popup-dialog", {
+                ref: "inputClose",
+                attrs: {
+                  mode: "input",
+                  title: "閰嶇疆url",
+                  value: _vm.baseIP,
+                  placeholder: "绀轰緥:192.168.1.1",
+                  _i: 137
+                },
+                on: { confirm: _vm.baseUrlConfirm }
+              })
+            ],
+            1
+          )
+        ],
+        1
+      ),
+      _c(
+        "view",
+        [
+          _c(
+            "uni-popup",
+            { ref: "ledId", attrs: { type: "dialog", _i: 139 } },
+            [
+              _c("uni-popup-dialog", {
+                ref: "inputClose",
+                attrs: {
+                  mode: "input",
+                  title: "閰嶇疆ledId",
+                  value: _vm.baseLedId,
+                  placeholder: "绀轰緥:188",
+                  _i: 140
+                },
+                on: { confirm: _vm.ledIdConfirm }
+              })
+            ],
+            1
+          )
+        ],
+        1
+      ),
+      _c(
+        "view",
+        [
+          _c(
+            "uni-popup",
+            { ref: "port", attrs: { type: "dialog", _i: 142 } },
+            [
+              _c("uni-popup-dialog", {
+                ref: "inputClose",
+                attrs: {
+                  mode: "input",
+                  title: "閰嶇疆绔彛鍙�",
+                  value: _vm.basePort,
+                  placeholder: "绀轰緥:9090",
+                  _i: 143
+                },
+                on: { confirm: _vm.portConfirm }
+              })
+            ],
+            1
+          )
+        ],
+        1
+      ),
+      _c(
+        "view",
+        [
+          _c(
+            "uni-popup",
+            { ref: "crnId", attrs: { type: "dialog", _i: 145 } },
+            [
+              _c("uni-popup-dialog", {
+                ref: "inputClose",
+                attrs: {
+                  mode: "input",
+                  title: "閰嶇疆鍫嗗灈鏈�",
+                  value: _vm.crnId,
+                  placeholder: "绀轰緥:1",
+                  _i: 146
+                },
+                on: { confirm: _vm.crnConfirm }
+              })
+            ],
+            1
+          )
+        ],
+        1
+      ),
+      _c(
+        "view",
+        {
+          directives: [
+            {
+              name: "show",
+              rawName: "v-show",
+              value: _vm._$s(147, "v-show", _vm.ejectShow),
+              expression: "_$s(147,'v-show',ejectShow)"
+            }
+          ],
+          staticClass: _vm._$s(147, "sc", "eject-mask"),
+          attrs: { _i: 147 }
+        },
+        [
+          _c(
+            "view",
+            { staticClass: _vm._$s(148, "sc", "eject"), attrs: { _i: 148 } },
+            [
+              _c("view", {
+                staticClass: _vm._$s(149, "sc", "eject-title"),
+                attrs: { _i: 149 }
+              }),
+              _c(
+                "view",
+                {
+                  staticClass: _vm._$s(150, "sc", "eject-input"),
+                  attrs: { _i: 150 }
+                },
+                [
+                  _c(
+                    "view",
+                    {
+                      staticClass: _vm._$s(151, "sc", "item"),
+                      attrs: { _i: 151 }
+                    },
+                    [
+                      _c("view", {
+                        staticClass: _vm._$s(152, "sc", "desc"),
+                        attrs: { _i: 152 }
+                      }),
+                      _c(
+                        "view",
+                        {
+                          staticClass: _vm._$s(153, "sc", "input"),
+                          attrs: { _i: 153 }
+                        },
+                        [
+                          _c("input", {
+                            directives: [
+                              {
+                                name: "model",
+                                rawName: "v-model",
+                                value: _vm.baseIP,
+                                expression: "baseIP"
+                              }
+                            ],
+                            attrs: { _i: 154 },
+                            domProps: {
+                              value: _vm._$s(154, "v-model", _vm.baseIP)
+                            },
+                            on: {
+                              input: function($event) {
+                                if ($event.target.composing) {
+                                  return
+                                }
+                                _vm.baseIP = $event.target.value
+                              }
+                            }
+                          })
+                        ]
+                      )
+                    ]
+                  ),
+                  _c(
+                    "view",
+                    {
+                      staticClass: _vm._$s(155, "sc", "item"),
+                      attrs: { _i: 155 }
+                    },
+                    [
+                      _c("view", {
+                        staticClass: _vm._$s(156, "sc", "desc"),
+                        attrs: { _i: 156 }
+                      }),
+                      _c(
+                        "view",
+                        {
+                          staticClass: _vm._$s(157, "sc", "input"),
+                          attrs: { _i: 157 }
+                        },
+                        [
+                          _c("input", {
+                            directives: [
+                              {
+                                name: "model",
+                                rawName: "v-model",
+                                value: _vm.basePort,
+                                expression: "basePort"
+                              }
+                            ],
+                            attrs: { _i: 158 },
+                            domProps: {
+                              value: _vm._$s(158, "v-model", _vm.basePort)
+                            },
+                            on: {
+                              input: function($event) {
+                                if ($event.target.composing) {
+                                  return
+                                }
+                                _vm.basePort = $event.target.value
+                              }
+                            }
+                          })
+                        ]
+                      )
+                    ]
+                  ),
+                  _c(
+                    "view",
+                    {
+                      staticClass: _vm._$s(159, "sc", "item"),
+                      attrs: { _i: 159 }
+                    },
+                    [
+                      _c("view", {
+                        staticClass: _vm._$s(160, "sc", "desc"),
+                        attrs: { _i: 160 }
+                      }),
+                      _c(
+                        "view",
+                        {
+                          staticClass: _vm._$s(161, "sc", "input"),
+                          attrs: { _i: 161 }
+                        },
+                        [
+                          _c("input", {
+                            directives: [
+                              {
+                                name: "model",
+                                rawName: "v-model",
+                                value: _vm.baseLedId,
+                                expression: "baseLedId"
+                              }
+                            ],
+                            attrs: { _i: 162 },
+                            domProps: {
+                              value: _vm._$s(162, "v-model", _vm.baseLedId)
+                            },
+                            on: {
+                              input: function($event) {
+                                if ($event.target.composing) {
+                                  return
+                                }
+                                _vm.baseLedId = $event.target.value
+                              }
+                            }
+                          })
+                        ]
+                      )
+                    ]
+                  ),
+                  _c(
+                    "view",
+                    {
+                      staticClass: _vm._$s(163, "sc", "item"),
+                      attrs: { _i: 163 }
+                    },
+                    [
+                      _c("view", {
+                        staticClass: _vm._$s(164, "sc", "desc"),
+                        attrs: { _i: 164 }
+                      }),
+                      _c(
+                        "view",
+                        {
+                          staticClass: _vm._$s(165, "sc", "input"),
+                          attrs: { _i: 165 }
+                        },
+                        [
+                          _c("input", {
+                            directives: [
+                              {
+                                name: "model",
+                                rawName: "v-model",
+                                value: _vm.baseCrnId,
+                                expression: "baseCrnId"
+                              }
+                            ],
+                            attrs: { _i: 166 },
+                            domProps: {
+                              value: _vm._$s(166, "v-model", _vm.baseCrnId)
+                            },
+                            on: {
+                              input: function($event) {
+                                if ($event.target.composing) {
+                                  return
+                                }
+                                _vm.baseCrnId = $event.target.value
+                              }
+                            }
+                          })
+                        ]
+                      )
+                    ]
+                  )
+                ]
+              ),
+              _c(
+                "view",
+                {
+                  staticClass: _vm._$s(167, "sc", "eject-button"),
+                  attrs: { _i: 167 }
+                },
+                [
+                  _c("view", {
+                    staticClass: _vm._$s(168, "sc", "button-item"),
+                    attrs: { _i: 168 },
+                    on: { click: _vm.ejectClose }
+                  }),
+                  _c("view", {
+                    staticClass: _vm._$s(169, "sc", "button-item"),
+                    attrs: { _i: 169 },
+                    on: { click: _vm.ejectConfirm }
+                  })
+                ]
+              )
+            ]
+          )
+        ]
+      )
+    ]
+  )
+}
+var recyclableRender = false
+var staticRenderFns = []
+render._withStripped = true
+
+
+
+/***/ }),
+/* 81 */
 /*!****************************************************************************************************!*\
   !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/uni-popup/components/uni-popup/uni-popup.vue ***!
   \****************************************************************************************************/
@@ -5473,10 +6017,10 @@
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 
 "use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _uni_popup_vue_vue_type_template_id_7c43d41b___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./uni-popup.vue?vue&type=template&id=7c43d41b& */ 77);\n/* harmony import */ var _uni_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./uni-popup.vue?vue&type=script&lang=js& */ 79);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _uni_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _uni_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 12);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n  _uni_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n  _uni_popup_vue_vue_type_template_id_7c43d41b___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n  _uni_popup_vue_vue_type_template_id_7c43d41b___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n  false,\n  null,\n  null,\n  null,\n  false,\n  _uni_popup_vue_vue_type_template_id_7c43d41b___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n  renderjs\n)\n\ncomponent.options.__file = \"uni_modules/uni-popup/components/uni-popup/uni-popup.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBc0g7QUFDdEg7QUFDNkQ7QUFDTDs7O0FBR3hEO0FBQzZNO0FBQzdNLGdCQUFnQiwyTUFBVTtBQUMxQixFQUFFLCtFQUFNO0FBQ1IsRUFBRSxvRkFBTTtBQUNSLEVBQUUsNkZBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsd0ZBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiNzYuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL3VuaS1wb3B1cC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9N2M0M2Q0MWImXCJcbnZhciByZW5kZXJqc1xuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi91bmktcG9wdXAudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5leHBvcnQgKiBmcm9tIFwiLi91bmktcG9wdXAudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIG51bGwsXG4gIG51bGwsXG4gIGZhbHNlLFxuICBjb21wb25lbnRzLFxuICByZW5kZXJqc1xuKVxuXG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInVuaV9tb2R1bGVzL3VuaS1wb3B1cC9jb21wb25lbnRzL3VuaS1wb3B1cC91bmktcG9wdXAudnVlXCJcbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///76\n");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _uni_popup_vue_vue_type_template_id_7c43d41b___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./uni-popup.vue?vue&type=template&id=7c43d41b& */ 82);\n/* harmony import */ var _uni_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./uni-popup.vue?vue&type=script&lang=js& */ 84);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _uni_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _uni_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 12);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n  _uni_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n  _uni_popup_vue_vue_type_template_id_7c43d41b___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n  _uni_popup_vue_vue_type_template_id_7c43d41b___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n  false,\n  null,\n  null,\n  null,\n  false,\n  _uni_popup_vue_vue_type_template_id_7c43d41b___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n  renderjs\n)\n\ncomponent.options.__file = \"uni_modules/uni-popup/components/uni-popup/uni-popup.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBc0g7QUFDdEg7QUFDNkQ7QUFDTDs7O0FBR3hEO0FBQzZNO0FBQzdNLGdCQUFnQiwyTUFBVTtBQUMxQixFQUFFLCtFQUFNO0FBQ1IsRUFBRSxvRkFBTTtBQUNSLEVBQUUsNkZBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsd0ZBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiODEuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL3VuaS1wb3B1cC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9N2M0M2Q0MWImXCJcbnZhciByZW5kZXJqc1xuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi91bmktcG9wdXAudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5leHBvcnQgKiBmcm9tIFwiLi91bmktcG9wdXAudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIG51bGwsXG4gIG51bGwsXG4gIGZhbHNlLFxuICBjb21wb25lbnRzLFxuICByZW5kZXJqc1xuKVxuXG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInVuaV9tb2R1bGVzL3VuaS1wb3B1cC9jb21wb25lbnRzL3VuaS1wb3B1cC91bmktcG9wdXAudnVlXCJcbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///81\n");
 
 /***/ }),
-/* 77 */
+/* 82 */
 /*!***********************************************************************************************************************************!*\
   !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/uni-popup/components/uni-popup/uni-popup.vue?vue&type=template&id=7c43d41b& ***!
   \***********************************************************************************************************************************/
@@ -5485,7 +6029,7 @@
 
 "use strict";
 __webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_vue_vue_type_template_id_7c43d41b___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./uni-popup.vue?vue&type=template&id=7c43d41b& */ 78);
+/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_vue_vue_type_template_id_7c43d41b___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./uni-popup.vue?vue&type=template&id=7c43d41b& */ 83);
 /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_vue_vue_type_template_id_7c43d41b___WEBPACK_IMPORTED_MODULE_0__["render"]; });
 
 /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_vue_vue_type_template_id_7c43d41b___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
@@ -5497,7 +6041,7 @@
 
 
 /***/ }),
-/* 78 */
+/* 83 */
 /*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
   !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Workspace/zy/private/Monitor-APP/uni_modules/uni-popup/components/uni-popup/uni-popup.vue?vue&type=template&id=7c43d41b& ***!
   \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
@@ -5617,7 +6161,7 @@
 
 
 /***/ }),
-/* 79 */
+/* 84 */
 /*!*****************************************************************************************************************************!*\
   !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/uni-popup/components/uni-popup/uni-popup.vue?vue&type=script&lang=js& ***!
   \*****************************************************************************************************************************/
@@ -5625,10 +6169,10 @@
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 
 "use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./uni-popup.vue?vue&type=script&lang=js& */ 80);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQTZzQixDQUFnQix1ckJBQUcsRUFBQyIsImZpbGUiOiI3OS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNi0xIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL3VuaS1wb3B1cC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNi0xIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL3VuaS1wb3B1cC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///79\n");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./uni-popup.vue?vue&type=script&lang=js& */ 85);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQTZzQixDQUFnQix1ckJBQUcsRUFBQyIsImZpbGUiOiI4NC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNi0xIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL3VuaS1wb3B1cC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNi0xIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL3VuaS1wb3B1cC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///84\n");
 
 /***/ }),
-/* 80 */
+/* 85 */
 /*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
   !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Workspace/zy/private/Monitor-APP/uni_modules/uni-popup/components/uni-popup/uni-popup.vue?vue&type=script&lang=js& ***!
   \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
@@ -5636,10 +6180,10 @@
 /***/ (function(module, exports, __webpack_require__) {
 
 "use strict";
-eval("/* WEBPACK VAR INJECTION */(function(__f__) {Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0; //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n\n/**\r\n * PopUp 寮瑰嚭灞俓r\n * @description 寮瑰嚭灞傜粍浠讹紝涓轰簡瑙e喅閬僵寮瑰眰鐨勯棶棰榎r\n * @tutorial https://ext.dcloud.net.cn/plugin?id=329\r\n * @property {String} type = [top|center|bottom|left|right|message|dialog|share] 寮瑰嚭鏂瑰紡\r\n * \t@value top 椤堕儴寮瑰嚭\r\n * \t@value center 涓棿寮瑰嚭\r\n * \t@value bottom 搴曢儴寮瑰嚭\r\n * \t@value left\t\t宸︿晶寮瑰嚭\r\n * \t@value right  鍙充晶寮瑰嚭\r\n * \t@value message 娑堟伅鎻愮ず\r\n * \t@value dialog 瀵硅瘽妗哱r\n * \t@value share 搴曢儴鍒嗕韩绀轰緥\r\n * @property {Boolean} animation = [true|false] 鏄惁寮�鍚姩鐢籠r\n * @property {Boolean} maskClick = [true|false] 钂欑増鐐瑰嚮鏄惁鍏抽棴寮圭獥(搴熷純)\r\n * @property {Boolean} isMaskClick = [true|false] 钂欑増鐐瑰嚮鏄惁鍏抽棴寮圭獥\r\n * @property {String}  backgroundColor 涓荤獥鍙h儗鏅壊\r\n * @property {String}  maskBackgroundColor 钂欑増棰滆壊\r\n * @property {Boolean} safeArea\t\t   鏄惁閫傞厤搴曢儴瀹夊叏鍖篭r\n * @event {Function} change 鎵撳紑鍏抽棴寮圭獥瑙﹀彂锛宔={show: false}\r\n * @event {Function} maskClick 鐐瑰嚮閬僵瑙﹀彂\r\n */var _default =\n\n{\n  name: 'uniPopup',\n  components: {},\n\n\n\n\n  emits: ['change', 'maskClick'],\n  props: {\n    // 寮�鍚姩鐢籠n    animation: {\n      type: Boolean,\n      default: true },\n\n    // 寮瑰嚭灞傜被鍨嬶紝鍙�夊�硷紝top: 椤堕儴寮瑰嚭灞傦紱bottom锛氬簳閮ㄥ脊鍑哄眰锛沜enter锛氬叏灞忓脊鍑哄眰\n    // message: 娑堟伅鎻愮ず ; dialog : 瀵硅瘽妗哱n    type: {\n      type: String,\n      default: 'center' },\n\n    // maskClick\n    isMaskClick: {\n      type: Boolean,\n      default: null },\n\n    // TODO 2 涓増鏈悗搴熷純灞炴�� 锛屼娇鐢� isMaskClick\n    maskClick: {\n      type: Boolean,\n      default: null },\n\n    backgroundColor: {\n      type: String,\n      default: 'none' },\n\n    safeArea: {\n      type: Boolean,\n      default: true },\n\n    maskBackgroundColor: {\n      type: String,\n      default: 'rgba(0, 0, 0, 0.4)' } },\n\n\n\n  watch: {\n    /**\r\n            * 鐩戝惉type绫诲瀷\r\n            */\n    type: {\n      handler: function handler(type) {\n        if (!this.config[type]) return;\n        this[this.config[type]](true);\n      },\n      immediate: true },\n\n    isDesktop: {\n      handler: function handler(newVal) {\n        if (!this.config[newVal]) return;\n        this[this.config[this.type]](true);\n      },\n      immediate: true },\n\n    /**\r\n                          * 鐩戝惉閬僵鏄惁鍙偣鍑籠r\n                          * @param {Object} val\r\n                          */\n    maskClick: {\n      handler: function handler(val) {\n        this.mkclick = val;\n      },\n      immediate: true },\n\n    isMaskClick: {\n      handler: function handler(val) {\n        this.mkclick = val;\n      },\n      immediate: true },\n\n    // H5 涓嬬姝㈠簳閮ㄦ粴鍔╘n    showPopup: function showPopup(show) {\n\n\n\n\n    } },\n\n  data: function data() {\n    return {\n      duration: 300,\n      ani: [],\n      showPopup: false,\n      showTrans: false,\n      popupWidth: 0,\n      popupHeight: 0,\n      config: {\n        top: 'top',\n        bottom: 'bottom',\n        center: 'center',\n        left: 'left',\n        right: 'right',\n        message: 'top',\n        dialog: 'center',\n        share: 'bottom' },\n\n      maskClass: {\n        position: 'fixed',\n        bottom: 0,\n        top: 0,\n        left: 0,\n        right: 0,\n        backgroundColor: 'rgba(0, 0, 0, 0.4)' },\n\n      transClass: {\n        position: 'fixed',\n        left: 0,\n        right: 0 },\n\n      maskShow: true,\n      mkclick: true,\n      popupstyle: this.isDesktop ? 'fixforpc-top' : 'top' };\n\n  },\n  computed: {\n    isDesktop: function isDesktop() {\n      return this.popupWidth >= 500 && this.popupHeight >= 500;\n    },\n    bg: function bg() {\n      if (this.backgroundColor === '' || this.backgroundColor === 'none') {\n        return 'transparent';\n      }\n      return this.backgroundColor;\n    } },\n\n  mounted: function mounted() {var _this = this;\n    var fixSize = function fixSize() {var _uni$getSystemInfoSyn =\n      uni.getSystemInfoSync(),windowWidth = _uni$getSystemInfoSyn.windowWidth,windowHeight = _uni$getSystemInfoSyn.windowHeight,windowTop = _uni$getSystemInfoSyn.windowTop,safeArea = _uni$getSystemInfoSyn.safeArea,screenHeight = _uni$getSystemInfoSyn.screenHeight,safeAreaInsets = _uni$getSystemInfoSyn.safeAreaInsets;\n      _this.popupWidth = windowWidth;\n      _this.popupHeight = windowHeight + windowTop;\n      // TODO fix by mehaotian 鏄惁閫傞厤搴曢儴瀹夊叏鍖� ,鐩墠寰俊ios 銆佸拰 app ios 璁$畻鏈夊樊寮傦紝闇�瑕佹鏋朵慨澶峔n      if (safeArea) {\n\n\n\n\n        _this.safeAreaInsets = safeAreaInsets.bottom;\n\n      } else {\n        _this.safeAreaInsets = 0;\n      }\n    };\n    fixSize();\n\n\n\n\n\n\n  },\n  created: function created() {\n    // this.mkclick =  this.isMaskClick || this.maskClick\n    if (this.isMaskClick === null && this.maskClick === null) {\n      this.mkclick = true;\n    } else {\n      this.mkclick = this.isMaskClick !== null ? this.isMaskClick : this.maskClick;\n    }\n    if (this.animation) {\n      this.duration = 300;\n    } else {\n      this.duration = 0;\n    }\n    // TODO 澶勭悊 message 缁勪欢鐢熷懡鍛ㄦ湡寮傚父鐨勯棶棰榎n    this.messageChild = null;\n    // TODO 瑙e喅澶存潯鍐掓场鐨勯棶棰榎n    this.clearPropagation = false;\n    this.maskClass.backgroundColor = this.maskBackgroundColor;\n  },\n  methods: {\n    /**\r\n              * 鍏敤鏂规硶锛屼笉鏄剧ず閬僵灞俓r\n              */\n    closeMask: function closeMask() {\n      this.maskShow = false;\n    },\n    /**\r\n        * 鍏敤鏂规硶锛岄伄缃╁眰绂佹鐐瑰嚮\r\n        */\n    disableMask: function disableMask() {\n      this.mkclick = false;\n    },\n    // TODO nvue 鍙栨秷鍐掓场\n    clear: function clear(e) {\n\n      e.stopPropagation();\n\n      this.clearPropagation = true;\n    },\n\n    open: function open(direction) {\n      var innerType = ['top', 'center', 'bottom', 'left', 'right', 'message', 'dialog', 'share'];\n      if (!(direction && innerType.indexOf(direction) !== -1)) {\n        direction = this.type;\n      }\n      if (!this.config[direction]) {\n        __f__(\"error\", '缂哄皯绫诲瀷锛�', direction, \" at uni_modules/uni-popup/components/uni-popup/uni-popup.vue:246\");\n        return;\n      }\n      this[this.config[direction]]();\n      this.$emit('change', {\n        show: true,\n        type: direction });\n\n    },\n    close: function close(type) {var _this2 = this;\n      this.showTrans = false;\n      this.$emit('change', {\n        show: false,\n        type: this.type });\n\n      clearTimeout(this.timer);\n      // // 鑷畾涔夊叧闂簨浠禱n      // this.customOpen && this.customClose()\n      this.timer = setTimeout(function () {\n        _this2.showPopup = false;\n      }, 300);\n    },\n    // TODO 澶勭悊鍐掓场浜嬩欢锛屽ご鏉$殑鍐掓场浜嬩欢鏈夐棶棰� 锛屽厛杩欐牱鍏煎\n    touchstart: function touchstart() {\n      this.clearPropagation = false;\n    },\n\n    onTap: function onTap() {\n      if (this.clearPropagation) {\n        // fix by mehaotian 鍏煎 nvue\n        this.clearPropagation = false;\n        return;\n      }\n      this.$emit('maskClick');\n      if (!this.mkclick) return;\n      this.close();\n    },\n    /**\r\n        * 椤堕儴寮瑰嚭鏍峰紡澶勭悊\r\n        */\n    top: function top(type) {var _this3 = this;\n      this.popupstyle = this.isDesktop ? 'fixforpc-top' : 'top';\n      this.ani = ['slide-top'];\n      this.transClass = {\n        position: 'fixed',\n        left: 0,\n        right: 0,\n        backgroundColor: this.bg };\n\n      // TODO 鍏煎 type 灞炴�� 锛屽悗缁細搴熷純\n      if (type) return;\n      this.showPopup = true;\n      this.showTrans = true;\n      this.$nextTick(function () {\n        if (_this3.messageChild && _this3.type === 'message') {\n          _this3.messageChild.timerClose();\n        }\n      });\n    },\n    /**\r\n        * 搴曢儴寮瑰嚭鏍峰紡澶勭悊\r\n        */\n    bottom: function bottom(type) {\n      this.popupstyle = 'bottom';\n      this.ani = ['slide-bottom'];\n      this.transClass = {\n        position: 'fixed',\n        left: 0,\n        right: 0,\n        bottom: 0,\n        paddingBottom: this.safeAreaInsets + 'px',\n        backgroundColor: this.bg };\n\n      // TODO 鍏煎 type 灞炴�� 锛屽悗缁細搴熷純\n      if (type) return;\n      this.showPopup = true;\n      this.showTrans = true;\n    },\n    /**\r\n        * 涓棿寮瑰嚭鏍峰紡澶勭悊\r\n        */\n    center: function center(type) {\n      this.popupstyle = 'center';\n      this.ani = ['zoom-out', 'fade'];\n      this.transClass = {\n        position: 'fixed',\n\n        display: 'flex',\n        flexDirection: 'column',\n\n        bottom: 0,\n        left: 0,\n        right: 0,\n        top: 0,\n        justifyContent: 'center',\n        alignItems: 'center' };\n\n      // TODO 鍏煎 type 灞炴�� 锛屽悗缁細搴熷純\n      if (type) return;\n      this.showPopup = true;\n      this.showTrans = true;\n    },\n    left: function left(type) {\n      this.popupstyle = 'left';\n      this.ani = ['slide-left'];\n      this.transClass = {\n        position: 'fixed',\n        left: 0,\n        bottom: 0,\n        top: 0,\n        backgroundColor: this.bg,\n\n        display: 'flex',\n        flexDirection: 'column' };\n\n\n      // TODO 鍏煎 type 灞炴�� 锛屽悗缁細搴熷純\n      if (type) return;\n      this.showPopup = true;\n      this.showTrans = true;\n    },\n    right: function right(type) {\n      this.popupstyle = 'right';\n      this.ani = ['slide-right'];\n      this.transClass = {\n        position: 'fixed',\n        bottom: 0,\n        right: 0,\n        top: 0,\n        backgroundColor: this.bg,\n\n        display: 'flex',\n        flexDirection: 'column' };\n\n\n      // TODO 鍏煎 type 灞炴�� 锛屽悗缁細搴熷純\n      if (type) return;\n      this.showPopup = true;\n      this.showTrans = true;\n    } } };exports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 10)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdW5pLXBvcHVwL2NvbXBvbmVudHMvdW5pLXBvcHVwL3VuaS1wb3B1cC52dWUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW1CQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUF1QkE7QUFDQSxrQkFEQTtBQUVBLGdCQUZBOzs7OztBQU9BLGdDQVBBO0FBUUE7QUFDQTtBQUNBO0FBQ0EsbUJBREE7QUFFQSxtQkFGQSxFQUZBOztBQU1BO0FBQ0E7QUFDQTtBQUNBLGtCQURBO0FBRUEsdUJBRkEsRUFSQTs7QUFZQTtBQUNBO0FBQ0EsbUJBREE7QUFFQSxtQkFGQSxFQWJBOztBQWlCQTtBQUNBO0FBQ0EsbUJBREE7QUFFQSxtQkFGQSxFQWxCQTs7QUFzQkE7QUFDQSxrQkFEQTtBQUVBLHFCQUZBLEVBdEJBOztBQTBCQTtBQUNBLG1CQURBO0FBRUEsbUJBRkEsRUExQkE7O0FBOEJBO0FBQ0Esa0JBREE7QUFFQSxtQ0FGQSxFQTlCQSxFQVJBOzs7O0FBNENBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FKQTtBQUtBLHFCQUxBLEVBSkE7O0FBV0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUpBO0FBS0EscUJBTEEsRUFYQTs7QUFrQkE7Ozs7QUFJQTtBQUNBO0FBQ0E7QUFDQSxPQUhBO0FBSUEscUJBSkEsRUF0QkE7O0FBNEJBO0FBQ0E7QUFDQTtBQUNBLE9BSEE7QUFJQSxxQkFKQSxFQTVCQTs7QUFrQ0E7QUFDQSxhQW5DQSxxQkFtQ0EsSUFuQ0EsRUFtQ0E7Ozs7O0FBS0EsS0F4Q0EsRUE1Q0E7O0FBc0ZBLE1BdEZBLGtCQXNGQTtBQUNBO0FBQ0EsbUJBREE7QUFFQSxhQUZBO0FBR0Esc0JBSEE7QUFJQSxzQkFKQTtBQUtBLG1CQUxBO0FBTUEsb0JBTkE7QUFPQTtBQUNBLGtCQURBO0FBRUEsd0JBRkE7QUFHQSx3QkFIQTtBQUlBLG9CQUpBO0FBS0Esc0JBTEE7QUFNQSxz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QW5KQTtBQW9KQSxTQXBKQSxpQkFvSkEsSUFwSkEsRUFvSkE7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5QkFEQTtBQUVBLGlCQUZBO0FBR0EsZ0JBSEE7QUFJQSxjQUpBO0FBS0EsZ0NBTEE7O0FBT0EsdUJBUEE7QUFRQSwrQkFSQTs7O0FBV0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQXRLQSxFQWhMQSxFIiwiZmlsZSI6IjgwLmpzIiwic291cmNlc0NvbnRlbnQiOlsiPHRlbXBsYXRlPlxyXG5cdDx2aWV3IHYtaWY9XCJzaG93UG9wdXBcIiBjbGFzcz1cInVuaS1wb3B1cFwiIDpjbGFzcz1cIltwb3B1cHN0eWxlLCBpc0Rlc2t0b3AgPyAnZml4Zm9ycGMtei1pbmRleCcgOiAnJ11cIiBAdG91Y2htb3ZlLnN0b3AucHJldmVudD1cImNsZWFyXCI+XHJcblx0XHQ8dmlldyBAdG91Y2hzdGFydD1cInRvdWNoc3RhcnRcIiA+XHJcblx0XHRcdDx1bmktdHJhbnNpdGlvbiBrZXk9XCIxXCIgdi1pZj1cIm1hc2tTaG93XCIgbmFtZT1cIm1hc2tcIiBtb2RlLWNsYXNzPVwiZmFkZVwiIDpzdHlsZXM9XCJtYXNrQ2xhc3NcIiA6ZHVyYXRpb249XCJkdXJhdGlvblwiIDpzaG93PVwic2hvd1RyYW5zXCIgQGNsaWNrPVwib25UYXBcIiAvPlxyXG5cdFx0XHQ8dW5pLXRyYW5zaXRpb24ga2V5PVwiMlwiIDptb2RlLWNsYXNzPVwiYW5pXCIgbmFtZT1cImNvbnRlbnRcIiA6c3R5bGVzPVwidHJhbnNDbGFzc1wiIDpkdXJhdGlvbj1cImR1cmF0aW9uXCIgOnNob3c9XCJzaG93VHJhbnNcIiBAY2xpY2s9XCJvblRhcFwiPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwidW5pLXBvcHVwX193cmFwcGVyXCIgOnN0eWxlPVwieyBiYWNrZ3JvdW5kQ29sb3I6IGJnIH1cIiA6Y2xhc3M9XCJbcG9wdXBzdHlsZV1cIiBAY2xpY2s9XCJjbGVhclwiPjxzbG90IC8+PC92aWV3PlxyXG5cdFx0XHQ8L3VuaS10cmFuc2l0aW9uPlxyXG5cdFx0PC92aWV3PlxyXG5cdFx0PCEtLSAjaWZkZWYgSDUgLS0+XHJcblx0XHQ8a2V5cHJlc3Mgdi1pZj1cIm1hc2tTaG93XCIgQGVzYz1cIm9uVGFwXCIgLz5cclxuXHRcdDwhLS0gI2VuZGlmIC0tPlxyXG5cdDwvdmlldz5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcbi8vICNpZmRlZiBINVxyXG5pbXBvcnQga2V5cHJlc3MgZnJvbSAnLi9rZXlwcmVzcy5qcydcclxuLy8gI2VuZGlmXHJcblxyXG4vKipcclxuICogUG9wVXAg5by55Ye65bGCXHJcbiAqIEBkZXNjcmlwdGlvbiDlvLnlh7rlsYLnu4Tku7bvvIzkuLrkuobop6PlhrPpga7nvanlvLnlsYLnmoTpl67pophcclxuICogQHR1dG9yaWFsIGh0dHBzOi8vZXh0LmRjbG91ZC5uZXQuY24vcGx1Z2luP2lkPTMyOVxyXG4gKiBAcHJvcGVydHkge1N0cmluZ30gdHlwZSA9IFt0b3B8Y2VudGVyfGJvdHRvbXxsZWZ0fHJpZ2h0fG1lc3NhZ2V8ZGlhbG9nfHNoYXJlXSDlvLnlh7rmlrnlvI9cclxuICogXHRAdmFsdWUgdG9wIOmhtumDqOW8ueWHulxyXG4gKiBcdEB2YWx1ZSBjZW50ZXIg5Lit6Ze05by55Ye6XHJcbiAqIFx0QHZhbHVlIGJvdHRvbSDlupXpg6jlvLnlh7pcclxuICogXHRAdmFsdWUgbGVmdFx0XHTlt6bkvqflvLnlh7pcclxuICogXHRAdmFsdWUgcmlnaHQgIOWPs+S+p+W8ueWHulxyXG4gKiBcdEB2YWx1ZSBtZXNzYWdlIOa2iOaBr+aPkOekulxyXG4gKiBcdEB2YWx1ZSBkaWFsb2cg5a+56K+d5qGGXHJcbiAqIFx0QHZhbHVlIHNoYXJlIOW6lemDqOWIhuS6q+ekuuS+i1xyXG4gKiBAcHJvcGVydHkge0Jvb2xlYW59IGFuaW1hdGlvbiA9IFt0cnVlfGZhbHNlXSDmmK/lkKblvIDlkK/liqjnlLtcclxuICogQHByb3BlcnR5IHtCb29sZWFufSBtYXNrQ2xpY2sgPSBbdHJ1ZXxmYWxzZV0g6JKZ54mI54K55Ye75piv5ZCm5YWz6Zet5by556qXKOW6n+W8gylcclxuICogQHByb3BlcnR5IHtCb29sZWFufSBpc01hc2tDbGljayA9IFt0cnVlfGZhbHNlXSDokpnniYjngrnlh7vmmK/lkKblhbPpl63lvLnnqpdcclxuICogQHByb3BlcnR5IHtTdHJpbmd9ICBiYWNrZ3JvdW5kQ29sb3Ig5Li756qX5Y+j6IOM5pmv6ImyXHJcbiAqIEBwcm9wZXJ0eSB7U3RyaW5nfSAgbWFza0JhY2tncm91bmRDb2xvciDokpnniYjpopzoibJcclxuICogQHByb3BlcnR5IHtCb29sZWFufSBzYWZlQXJlYVx0XHQgICDmmK/lkKbpgILphY3lupXpg6jlronlhajljLpcclxuICogQGV2ZW50IHtGdW5jdGlvbn0gY2hhbmdlIOaJk+W8gOWFs+mXreW8ueeql+inpuWPke+8jGU9e3Nob3c6IGZhbHNlfVxyXG4gKiBAZXZlbnQge0Z1bmN0aW9ufSBtYXNrQ2xpY2sg54K55Ye76YGu572p6Kem5Y+RXHJcbiAqL1xyXG5cclxuZXhwb3J0IGRlZmF1bHQge1xyXG5cdG5hbWU6ICd1bmlQb3B1cCcsXHJcblx0Y29tcG9uZW50czoge1xyXG5cdFx0Ly8gI2lmZGVmIEg1XHJcblx0XHRrZXlwcmVzc1xyXG5cdFx0Ly8gI2VuZGlmXHJcblx0fSxcclxuXHRlbWl0czpbJ2NoYW5nZScsJ21hc2tDbGljayddLFxyXG5cdHByb3BzOiB7XHJcblx0XHQvLyDlvIDlkK/liqjnlLtcclxuXHRcdGFuaW1hdGlvbjoge1xyXG5cdFx0XHR0eXBlOiBCb29sZWFuLFxyXG5cdFx0XHRkZWZhdWx0OiB0cnVlXHJcblx0XHR9LFxyXG5cdFx0Ly8g5by55Ye65bGC57G75Z6L77yM5Y+v6YCJ5YC877yMdG9wOiDpobbpg6jlvLnlh7rlsYLvvJtib3R0b23vvJrlupXpg6jlvLnlh7rlsYLvvJtjZW50ZXLvvJrlhajlsY/lvLnlh7rlsYJcclxuXHRcdC8vIG1lc3NhZ2U6IOa2iOaBr+aPkOekuiA7IGRpYWxvZyA6IOWvueivneahhlxyXG5cdFx0dHlwZToge1xyXG5cdFx0XHR0eXBlOiBTdHJpbmcsXHJcblx0XHRcdGRlZmF1bHQ6ICdjZW50ZXInXHJcblx0XHR9LFxyXG5cdFx0Ly8gbWFza0NsaWNrXHJcblx0XHRpc01hc2tDbGljazoge1xyXG5cdFx0XHR0eXBlOiBCb29sZWFuLFxyXG5cdFx0XHRkZWZhdWx0OiBudWxsXHJcblx0XHR9LFxyXG5cdFx0Ly8gVE9ETyAyIOS4queJiOacrOWQjuW6n+W8g+WxnuaApyDvvIzkvb/nlKggaXNNYXNrQ2xpY2tcclxuXHRcdG1hc2tDbGljazoge1xyXG5cdFx0XHR0eXBlOiBCb29sZWFuLFxyXG5cdFx0XHRkZWZhdWx0OiBudWxsXHJcblx0XHR9LFxyXG5cdFx0YmFja2dyb3VuZENvbG9yOiB7XHJcblx0XHRcdHR5cGU6IFN0cmluZyxcclxuXHRcdFx0ZGVmYXVsdDogJ25vbmUnXHJcblx0XHR9LFxyXG5cdFx0c2FmZUFyZWE6e1xyXG5cdFx0XHR0eXBlOiBCb29sZWFuLFxyXG5cdFx0XHRkZWZhdWx0OiB0cnVlXHJcblx0XHR9LFxyXG5cdFx0bWFza0JhY2tncm91bmRDb2xvcjoge1xyXG5cdFx0XHR0eXBlOiBTdHJpbmcsXHJcblx0XHRcdGRlZmF1bHQ6ICdyZ2JhKDAsIDAsIDAsIDAuNCknXHJcblx0XHR9LFxyXG5cdH0sXHJcblxyXG5cdHdhdGNoOiB7XHJcblx0XHQvKipcclxuXHRcdCAqIOebkeWQrHR5cGXnsbvlnotcclxuXHRcdCAqL1xyXG5cdFx0dHlwZToge1xyXG5cdFx0XHRoYW5kbGVyOiBmdW5jdGlvbih0eXBlKSB7XHJcblx0XHRcdFx0aWYgKCF0aGlzLmNvbmZpZ1t0eXBlXSkgcmV0dXJuXHJcblx0XHRcdFx0dGhpc1t0aGlzLmNvbmZpZ1t0eXBlXV0odHJ1ZSlcclxuXHRcdFx0fSxcclxuXHRcdFx0aW1tZWRpYXRlOiB0cnVlXHJcblx0XHR9LFxyXG5cdFx0aXNEZXNrdG9wOiB7XHJcblx0XHRcdGhhbmRsZXI6IGZ1bmN0aW9uKG5ld1ZhbCkge1xyXG5cdFx0XHRcdGlmICghdGhpcy5jb25maWdbbmV3VmFsXSkgcmV0dXJuXHJcblx0XHRcdFx0dGhpc1t0aGlzLmNvbmZpZ1t0aGlzLnR5cGVdXSh0cnVlKVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRpbW1lZGlhdGU6IHRydWVcclxuXHRcdH0sXHJcblx0XHQvKipcclxuXHRcdCAqIOebkeWQrOmBrue9qeaYr+WQpuWPr+eCueWHu1xyXG5cdFx0ICogQHBhcmFtIHtPYmplY3R9IHZhbFxyXG5cdFx0ICovXHJcblx0XHRtYXNrQ2xpY2s6IHtcclxuXHRcdFx0aGFuZGxlcjogZnVuY3Rpb24odmFsKSB7XHJcblx0XHRcdFx0dGhpcy5ta2NsaWNrID0gdmFsXHJcblx0XHRcdH0sXHJcblx0XHRcdGltbWVkaWF0ZTogdHJ1ZVxyXG5cdFx0fSxcclxuXHRcdGlzTWFza0NsaWNrOiB7XHJcblx0XHRcdGhhbmRsZXI6IGZ1bmN0aW9uKHZhbCkge1xyXG5cdFx0XHRcdHRoaXMubWtjbGljayA9IHZhbFxyXG5cdFx0XHR9LFxyXG5cdFx0XHRpbW1lZGlhdGU6IHRydWVcclxuXHRcdH0sXHJcblx0XHQvLyBINSDkuIvnpoHmraLlupXpg6jmu5rliqhcclxuXHRcdHNob3dQb3B1cChzaG93KSB7XHJcblx0XHRcdC8vICNpZmRlZiBINVxyXG5cdFx0XHQvLyBmaXggYnkgbWVoYW90aWFuIOWkhOeQhiBoNSDmu5rliqjnqb/pgI/nmoTpl67pophcclxuXHRcdFx0ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2JvZHknKVswXS5zdHlsZS5vdmVyZmxvdyA9IHNob3cgPyAnaGlkZGVuJyA6ICd2aXNpYmxlJ1xyXG5cdFx0XHQvLyAjZW5kaWZcclxuXHRcdH1cclxuXHR9LFxyXG5cdGRhdGEoKSB7XHJcblx0XHRyZXR1cm4ge1xyXG5cdFx0XHRkdXJhdGlvbjogMzAwLFxyXG5cdFx0XHRhbmk6IFtdLFxyXG5cdFx0XHRzaG93UG9wdXA6IGZhbHNlLFxyXG5cdFx0XHRzaG93VHJhbnM6IGZhbHNlLFxyXG5cdFx0XHRwb3B1cFdpZHRoOiAwLFxyXG5cdFx0XHRwb3B1cEhlaWdodDogMCxcclxuXHRcdFx0Y29uZmlnOiB7XHJcblx0XHRcdFx0dG9wOiAndG9wJyxcclxuXHRcdFx0XHRib3R0b206ICdib3R0b20nLFxyXG5cdFx0XHRcdGNlbnRlcjogJ2NlbnRlcicsXHJcblx0XHRcdFx0bGVmdDogJ2xlZnQnLFxyXG5cdFx0XHRcdHJpZ2h0OiAncmlnaHQnLFxyXG5cdFx0XHRcdG1lc3NhZ2U6ICd0b3AnLFxyXG5cdFx0XHRcdGRpYWxvZzogJ2NlbnRlcicsXHJcblx0XHRcdFx0c2hhcmU6ICdib3R0b20nXHJcblx0XHRcdH0sXHJcblx0XHRcdG1hc2tDbGFzczoge1xyXG5cdFx0XHRcdHBvc2l0aW9uOiAnZml4ZWQnLFxyXG5cdFx0XHRcdGJvdHRvbTogMCxcclxuXHRcdFx0XHR0b3A6IDAsXHJcblx0XHRcdFx0bGVmdDogMCxcclxuXHRcdFx0XHRyaWdodDogMCxcclxuXHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3I6ICdyZ2JhKDAsIDAsIDAsIDAuNCknXHJcblx0XHRcdH0sXHJcblx0XHRcdHRyYW5zQ2xhc3M6IHtcclxuXHRcdFx0XHRwb3NpdGlvbjogJ2ZpeGVkJyxcclxuXHRcdFx0XHRsZWZ0OiAwLFxyXG5cdFx0XHRcdHJpZ2h0OiAwXHJcblx0XHRcdH0sXHJcblx0XHRcdG1hc2tTaG93OiB0cnVlLFxyXG5cdFx0XHRta2NsaWNrOiB0cnVlLFxyXG5cdFx0XHRwb3B1cHN0eWxlOiB0aGlzLmlzRGVza3RvcCA/ICdmaXhmb3JwYy10b3AnIDogJ3RvcCdcclxuXHRcdH1cclxuXHR9LFxyXG5cdGNvbXB1dGVkOiB7XHJcblx0XHRpc0Rlc2t0b3AoKSB7XHJcblx0XHRcdHJldHVybiB0aGlzLnBvcHVwV2lkdGggPj0gNTAwICYmIHRoaXMucG9wdXBIZWlnaHQgPj0gNTAwXHJcblx0XHR9LFxyXG5cdFx0YmcoKSB7XHJcblx0XHRcdGlmICh0aGlzLmJhY2tncm91bmRDb2xvciA9PT0gJycgfHwgdGhpcy5iYWNrZ3JvdW5kQ29sb3IgPT09ICdub25lJykge1xyXG5cdFx0XHRcdHJldHVybiAndHJhbnNwYXJlbnQnXHJcblx0XHRcdH1cclxuXHRcdFx0cmV0dXJuIHRoaXMuYmFja2dyb3VuZENvbG9yXHJcblx0XHR9XHJcblx0fSxcclxuXHRtb3VudGVkKCkge1xyXG5cdFx0Y29uc3QgZml4U2l6ZSA9ICgpID0+IHtcclxuXHRcdFx0Y29uc3QgeyB3aW5kb3dXaWR0aCwgd2luZG93SGVpZ2h0LCB3aW5kb3dUb3AsIHNhZmVBcmVhLHNjcmVlbkhlaWdodCAsc2FmZUFyZWFJbnNldHMgfSA9IHVuaS5nZXRTeXN0ZW1JbmZvU3luYygpXHJcblx0XHRcdHRoaXMucG9wdXBXaWR0aCA9IHdpbmRvd1dpZHRoXHJcblx0XHRcdHRoaXMucG9wdXBIZWlnaHQgPSB3aW5kb3dIZWlnaHQgKyB3aW5kb3dUb3BcclxuXHRcdFx0Ly8gVE9ETyBmaXggYnkgbWVoYW90aWFuIOaYr+WQpumAgumFjeW6lemDqOWuieWFqOWMuiAs55uu5YmN5b6u5L+haW9zIOOAgeWSjCBhcHAgaW9zIOiuoeeul+acieW3ruW8gu+8jOmcgOimgeahhuaetuS/ruWkjVxyXG5cdFx0XHRpZihzYWZlQXJlYSl7XHJcblx0XHRcdFx0Ly8gI2lmZGVmIE1QLVdFSVhJTlxyXG5cdFx0XHRcdHRoaXMuc2FmZUFyZWFJbnNldHMgPSBzY3JlZW5IZWlnaHQgLSBzYWZlQXJlYS5ib3R0b21cclxuXHRcdFx0XHQvLyAjZW5kaWZcclxuXHRcdFx0XHQvLyAjaWZuZGVmIE1QLVdFSVhJTlxyXG5cdFx0XHRcdHRoaXMuc2FmZUFyZWFJbnNldHMgPSBzYWZlQXJlYUluc2V0cy5ib3R0b21cclxuXHRcdFx0XHQvLyAjZW5kaWZcclxuXHRcdFx0fWVsc2V7XHJcblx0XHRcdFx0dGhpcy5zYWZlQXJlYUluc2V0cyA9IDBcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0Zml4U2l6ZSgpXHJcblx0XHQvLyAjaWZkZWYgSDVcclxuXHRcdC8vIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCBmaXhTaXplKVxyXG5cdFx0Ly8gdGhpcy4kb25jZSgnaG9vazpiZWZvcmVEZXN0cm95JywgKCkgPT4ge1xyXG5cdFx0Ly8gXHR3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgZml4U2l6ZSlcclxuXHRcdC8vIH0pXHJcblx0XHQvLyAjZW5kaWZcclxuXHR9LFxyXG5cdGNyZWF0ZWQoKSB7XHJcblx0XHQvLyB0aGlzLm1rY2xpY2sgPSAgdGhpcy5pc01hc2tDbGljayB8fCB0aGlzLm1hc2tDbGlja1xyXG5cdFx0aWYodGhpcy5pc01hc2tDbGljayA9PT0gbnVsbCAmJiB0aGlzLm1hc2tDbGljayA9PT0gbnVsbCl7XHJcblx0XHRcdHRoaXMubWtjbGljayAgPSB0cnVlXHJcblx0XHR9ZWxzZXtcclxuXHRcdFx0dGhpcy5ta2NsaWNrID0gdGhpcy5pc01hc2tDbGljayAhPT0gbnVsbCA/IHRoaXMuaXNNYXNrQ2xpY2sgOiB0aGlzLm1hc2tDbGlja1xyXG5cdFx0fVxyXG5cdFx0aWYgKHRoaXMuYW5pbWF0aW9uKSB7XHJcblx0XHRcdHRoaXMuZHVyYXRpb24gPSAzMDBcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHRoaXMuZHVyYXRpb24gPSAwXHJcblx0XHR9XHJcblx0XHQvLyBUT0RPIOWkhOeQhiBtZXNzYWdlIOe7hOS7tueUn+WRveWRqOacn+W8guW4uOeahOmXrumimFxyXG5cdFx0dGhpcy5tZXNzYWdlQ2hpbGQgPSBudWxsXHJcblx0XHQvLyBUT0RPIOino+WGs+WktOadoeWGkuazoeeahOmXrumimFxyXG5cdFx0dGhpcy5jbGVhclByb3BhZ2F0aW9uID0gZmFsc2VcclxuXHRcdHRoaXMubWFza0NsYXNzLmJhY2tncm91bmRDb2xvciA9IHRoaXMubWFza0JhY2tncm91bmRDb2xvclxyXG5cdH0sXHJcblx0bWV0aG9kczoge1xyXG5cdFx0LyoqXHJcblx0XHQgKiDlhaznlKjmlrnms5XvvIzkuI3mmL7npLrpga7nvanlsYJcclxuXHRcdCAqL1xyXG5cdFx0Y2xvc2VNYXNrKCkge1xyXG5cdFx0XHR0aGlzLm1hc2tTaG93ID0gZmFsc2VcclxuXHRcdH0sXHJcblx0XHQvKipcclxuXHRcdCAqIOWFrOeUqOaWueazle+8jOmBrue9qeWxguemgeatoueCueWHu1xyXG5cdFx0ICovXHJcblx0XHRkaXNhYmxlTWFzaygpIHtcclxuXHRcdFx0dGhpcy5ta2NsaWNrID0gZmFsc2VcclxuXHRcdH0sXHJcblx0XHQvLyBUT0RPIG52dWUg5Y+W5raI5YaS5rOhXHJcblx0XHRjbGVhcihlKSB7XHJcblx0XHRcdC8vICNpZm5kZWYgQVBQLU5WVUVcclxuXHRcdFx0ZS5zdG9wUHJvcGFnYXRpb24oKVxyXG5cdFx0XHQvLyAjZW5kaWZcclxuXHRcdFx0dGhpcy5jbGVhclByb3BhZ2F0aW9uID0gdHJ1ZVxyXG5cdFx0fSxcclxuXHJcblx0XHRvcGVuKGRpcmVjdGlvbikge1xyXG5cdFx0XHRsZXQgaW5uZXJUeXBlID0gWyd0b3AnLCAnY2VudGVyJywgJ2JvdHRvbScsICdsZWZ0JywgJ3JpZ2h0JywgJ21lc3NhZ2UnLCAnZGlhbG9nJywgJ3NoYXJlJ11cclxuXHRcdFx0aWYgKCEoZGlyZWN0aW9uICYmIGlubmVyVHlwZS5pbmRleE9mKGRpcmVjdGlvbikgIT09IC0xKSkge1xyXG5cdFx0XHRcdGRpcmVjdGlvbiA9IHRoaXMudHlwZVxyXG5cdFx0XHR9XHJcblx0XHRcdGlmICghdGhpcy5jb25maWdbZGlyZWN0aW9uXSkge1xyXG5cdFx0XHRcdGNvbnNvbGUuZXJyb3IoJ+e8uuWwkeexu+Wei++8micsIGRpcmVjdGlvbilcclxuXHRcdFx0XHRyZXR1cm5cclxuXHRcdFx0fVxyXG5cdFx0XHR0aGlzW3RoaXMuY29uZmlnW2RpcmVjdGlvbl1dKClcclxuXHRcdFx0dGhpcy4kZW1pdCgnY2hhbmdlJywge1xyXG5cdFx0XHRcdHNob3c6IHRydWUsXHJcblx0XHRcdFx0dHlwZTogZGlyZWN0aW9uXHJcblx0XHRcdH0pXHJcblx0XHR9LFxyXG5cdFx0Y2xvc2UodHlwZSkge1xyXG5cdFx0XHR0aGlzLnNob3dUcmFucyA9IGZhbHNlXHJcblx0XHRcdHRoaXMuJGVtaXQoJ2NoYW5nZScsIHtcclxuXHRcdFx0XHRzaG93OiBmYWxzZSxcclxuXHRcdFx0XHR0eXBlOiB0aGlzLnR5cGVcclxuXHRcdFx0fSlcclxuXHRcdFx0Y2xlYXJUaW1lb3V0KHRoaXMudGltZXIpXHJcblx0XHRcdC8vIC8vIOiHquWumuS5ieWFs+mXreS6i+S7tlxyXG5cdFx0XHQvLyB0aGlzLmN1c3RvbU9wZW4gJiYgdGhpcy5jdXN0b21DbG9zZSgpXHJcblx0XHRcdHRoaXMudGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuXHRcdFx0XHR0aGlzLnNob3dQb3B1cCA9IGZhbHNlXHJcblx0XHRcdH0sIDMwMClcclxuXHRcdH0sXHJcblx0XHQvLyBUT0RPIOWkhOeQhuWGkuazoeS6i+S7tu+8jOWktOadoeeahOWGkuazoeS6i+S7tuaciemXrumimCDvvIzlhYjov5nmoLflhbzlrrlcclxuXHRcdHRvdWNoc3RhcnQoKXtcclxuXHRcdFx0dGhpcy5jbGVhclByb3BhZ2F0aW9uID0gZmFsc2VcclxuXHRcdH0sXHJcblxyXG5cdFx0b25UYXAoKSB7XHJcblx0XHRcdGlmICh0aGlzLmNsZWFyUHJvcGFnYXRpb24pIHtcclxuXHRcdFx0XHQvLyBmaXggYnkgbWVoYW90aWFuIOWFvOWuuSBudnVlXHJcblx0XHRcdFx0dGhpcy5jbGVhclByb3BhZ2F0aW9uID0gZmFsc2VcclxuXHRcdFx0XHRyZXR1cm5cclxuXHRcdFx0fVxyXG5cdFx0XHR0aGlzLiRlbWl0KCdtYXNrQ2xpY2snKVxyXG5cdFx0XHRpZiAoIXRoaXMubWtjbGljaykgcmV0dXJuXHJcblx0XHRcdHRoaXMuY2xvc2UoKVxyXG5cdFx0fSxcclxuXHRcdC8qKlxyXG5cdFx0ICog6aG26YOo5by55Ye65qC35byP5aSE55CGXHJcblx0XHQgKi9cclxuXHRcdHRvcCh0eXBlKSB7XHJcblx0XHRcdHRoaXMucG9wdXBzdHlsZSA9IHRoaXMuaXNEZXNrdG9wID8gJ2ZpeGZvcnBjLXRvcCcgOiAndG9wJ1xyXG5cdFx0XHR0aGlzLmFuaSA9IFsnc2xpZGUtdG9wJ11cclxuXHRcdFx0dGhpcy50cmFuc0NsYXNzID0ge1xyXG5cdFx0XHRcdHBvc2l0aW9uOiAnZml4ZWQnLFxyXG5cdFx0XHRcdGxlZnQ6IDAsXHJcblx0XHRcdFx0cmlnaHQ6IDAsXHJcblx0XHRcdFx0YmFja2dyb3VuZENvbG9yOiB0aGlzLmJnXHJcblx0XHRcdH1cclxuXHRcdFx0Ly8gVE9ETyDlhbzlrrkgdHlwZSDlsZ7mgKcg77yM5ZCO57ut5Lya5bqf5byDXHJcblx0XHRcdGlmICh0eXBlKSByZXR1cm5cclxuXHRcdFx0dGhpcy5zaG93UG9wdXAgPSB0cnVlXHJcblx0XHRcdHRoaXMuc2hvd1RyYW5zID0gdHJ1ZVxyXG5cdFx0XHR0aGlzLiRuZXh0VGljaygoKSA9PiB7XHJcblx0XHRcdFx0aWYgKHRoaXMubWVzc2FnZUNoaWxkICYmIHRoaXMudHlwZSA9PT0gJ21lc3NhZ2UnKSB7XHJcblx0XHRcdFx0XHR0aGlzLm1lc3NhZ2VDaGlsZC50aW1lckNsb3NlKClcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0pXHJcblx0XHR9LFxyXG5cdFx0LyoqXHJcblx0XHQgKiDlupXpg6jlvLnlh7rmoLflvI/lpITnkIZcclxuXHRcdCAqL1xyXG5cdFx0Ym90dG9tKHR5cGUpIHtcclxuXHRcdFx0dGhpcy5wb3B1cHN0eWxlID0gJ2JvdHRvbSdcclxuXHRcdFx0dGhpcy5hbmkgPSBbJ3NsaWRlLWJvdHRvbSddXHJcblx0XHRcdHRoaXMudHJhbnNDbGFzcyA9IHtcclxuXHRcdFx0XHRwb3NpdGlvbjogJ2ZpeGVkJyxcclxuXHRcdFx0XHRsZWZ0OiAwLFxyXG5cdFx0XHRcdHJpZ2h0OiAwLFxyXG5cdFx0XHRcdGJvdHRvbTogMCxcclxuXHRcdFx0XHRwYWRkaW5nQm90dG9tOiB0aGlzLnNhZmVBcmVhSW5zZXRzKydweCcsXHJcblx0XHRcdFx0YmFja2dyb3VuZENvbG9yOiB0aGlzLmJnXHJcblx0XHRcdH1cclxuXHRcdFx0Ly8gVE9ETyDlhbzlrrkgdHlwZSDlsZ7mgKcg77yM5ZCO57ut5Lya5bqf5byDXHJcblx0XHRcdGlmICh0eXBlKSByZXR1cm5cclxuXHRcdFx0dGhpcy5zaG93UG9wdXAgPSB0cnVlXHJcblx0XHRcdHRoaXMuc2hvd1RyYW5zID0gdHJ1ZVxyXG5cdFx0fSxcclxuXHRcdC8qKlxyXG5cdFx0ICog5Lit6Ze05by55Ye65qC35byP5aSE55CGXHJcblx0XHQgKi9cclxuXHRcdGNlbnRlcih0eXBlKSB7XHJcblx0XHRcdHRoaXMucG9wdXBzdHlsZSA9ICdjZW50ZXInXHJcblx0XHRcdHRoaXMuYW5pID0gWyd6b29tLW91dCcsICdmYWRlJ11cclxuXHRcdFx0dGhpcy50cmFuc0NsYXNzID0ge1xyXG5cdFx0XHRcdHBvc2l0aW9uOiAnZml4ZWQnLFxyXG5cdFx0XHRcdC8qICNpZm5kZWYgQVBQLU5WVUUgKi9cclxuXHRcdFx0XHRkaXNwbGF5OiAnZmxleCcsXHJcblx0XHRcdFx0ZmxleERpcmVjdGlvbjogJ2NvbHVtbicsXHJcblx0XHRcdFx0LyogI2VuZGlmICovXHJcblx0XHRcdFx0Ym90dG9tOiAwLFxyXG5cdFx0XHRcdGxlZnQ6IDAsXHJcblx0XHRcdFx0cmlnaHQ6IDAsXHJcblx0XHRcdFx0dG9wOiAwLFxyXG5cdFx0XHRcdGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcclxuXHRcdFx0XHRhbGlnbkl0ZW1zOiAnY2VudGVyJ1xyXG5cdFx0XHR9XHJcblx0XHRcdC8vIFRPRE8g5YW85a65IHR5cGUg5bGe5oCnIO+8jOWQjue7reS8muW6n+W8g1xyXG5cdFx0XHRpZiAodHlwZSkgcmV0dXJuXHJcblx0XHRcdHRoaXMuc2hvd1BvcHVwID0gdHJ1ZVxyXG5cdFx0XHR0aGlzLnNob3dUcmFucyA9IHRydWVcclxuXHRcdH0sXHJcblx0XHRsZWZ0KHR5cGUpIHtcclxuXHRcdFx0dGhpcy5wb3B1cHN0eWxlID0gJ2xlZnQnXHJcblx0XHRcdHRoaXMuYW5pID0gWydzbGlkZS1sZWZ0J11cclxuXHRcdFx0dGhpcy50cmFuc0NsYXNzID0ge1xyXG5cdFx0XHRcdHBvc2l0aW9uOiAnZml4ZWQnLFxyXG5cdFx0XHRcdGxlZnQ6IDAsXHJcblx0XHRcdFx0Ym90dG9tOiAwLFxyXG5cdFx0XHRcdHRvcDogMCxcclxuXHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3I6IHRoaXMuYmcsXHJcblx0XHRcdFx0LyogI2lmbmRlZiBBUFAtTlZVRSAqL1xyXG5cdFx0XHRcdGRpc3BsYXk6ICdmbGV4JyxcclxuXHRcdFx0XHRmbGV4RGlyZWN0aW9uOiAnY29sdW1uJ1xyXG5cdFx0XHRcdC8qICNlbmRpZiAqL1xyXG5cdFx0XHR9XHJcblx0XHRcdC8vIFRPRE8g5YW85a65IHR5cGUg5bGe5oCnIO+8jOWQjue7reS8muW6n+W8g1xyXG5cdFx0XHRpZiAodHlwZSkgcmV0dXJuXHJcblx0XHRcdHRoaXMuc2hvd1BvcHVwID0gdHJ1ZVxyXG5cdFx0XHR0aGlzLnNob3dUcmFucyA9IHRydWVcclxuXHRcdH0sXHJcblx0XHRyaWdodCh0eXBlKSB7XHJcblx0XHRcdHRoaXMucG9wdXBzdHlsZSA9ICdyaWdodCdcclxuXHRcdFx0dGhpcy5hbmkgPSBbJ3NsaWRlLXJpZ2h0J11cclxuXHRcdFx0dGhpcy50cmFuc0NsYXNzID0ge1xyXG5cdFx0XHRcdHBvc2l0aW9uOiAnZml4ZWQnLFxyXG5cdFx0XHRcdGJvdHRvbTogMCxcclxuXHRcdFx0XHRyaWdodDogMCxcclxuXHRcdFx0XHR0b3A6IDAsXHJcblx0XHRcdFx0YmFja2dyb3VuZENvbG9yOiB0aGlzLmJnLFxyXG5cdFx0XHRcdC8qICNpZm5kZWYgQVBQLU5WVUUgKi9cclxuXHRcdFx0XHRkaXNwbGF5OiAnZmxleCcsXHJcblx0XHRcdFx0ZmxleERpcmVjdGlvbjogJ2NvbHVtbidcclxuXHRcdFx0XHQvKiAjZW5kaWYgKi9cclxuXHRcdFx0fVxyXG5cdFx0XHQvLyBUT0RPIOWFvOWuuSB0eXBlIOWxnuaApyDvvIzlkI7nu63kvJrlup/lvINcclxuXHRcdFx0aWYgKHR5cGUpIHJldHVyblxyXG5cdFx0XHR0aGlzLnNob3dQb3B1cCA9IHRydWVcclxuXHRcdFx0dGhpcy5zaG93VHJhbnMgPSB0cnVlXHJcblx0XHR9XHJcblx0fVxyXG59XHJcbjwvc2NyaXB0PlxyXG48c3R5bGUgbGFuZz1cInNjc3NcIiA+XHJcbi51bmktcG9wdXAge1xyXG5cdHBvc2l0aW9uOiBmaXhlZDtcclxuXHQvKiAjaWZuZGVmIEFQUC1OVlVFICovXHJcblx0ei1pbmRleDogOTk7XHJcblx0LyogI2VuZGlmICovXHJcblx0Ji50b3AsXHJcblx0Ji5sZWZ0LFxyXG5cdCYucmlnaHQge1xyXG5cdFx0LyogI2lmZGVmIEg1ICovXHJcblx0XHR0b3A6IHZhcigtLXdpbmRvdy10b3ApO1xyXG5cdFx0LyogI2VuZGlmICovXHJcblx0XHQvKiAjaWZuZGVmIEg1ICovXHJcblx0XHR0b3A6IDA7XHJcblx0XHQvKiAjZW5kaWYgKi9cclxuXHR9XHJcblx0LnVuaS1wb3B1cF9fd3JhcHBlciB7XHJcblx0XHQvKiAjaWZuZGVmIEFQUC1OVlVFICovXHJcblx0XHRkaXNwbGF5OiBibG9jaztcclxuXHRcdC8qICNlbmRpZiAqL1xyXG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdFx0LyogaXBob25leCDnrYnlronlhajljLrorr7nva7vvIzlupXpg6jlronlhajljLrpgILphY0gKi9cclxuXHRcdC8qICNpZm5kZWYgQVBQLU5WVUUgKi9cclxuXHRcdC8vIHBhZGRpbmctYm90dG9tOiBjb25zdGFudChzYWZlLWFyZWEtaW5zZXQtYm90dG9tKTtcclxuXHRcdC8vIHBhZGRpbmctYm90dG9tOiBlbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSk7XHJcblx0XHQvKiAjZW5kaWYgKi9cclxuXHRcdCYubGVmdCxcclxuXHRcdCYucmlnaHQge1xyXG5cdFx0XHQvKiAjaWZkZWYgSDUgKi9cclxuXHRcdFx0cGFkZGluZy10b3A6IHZhcigtLXdpbmRvdy10b3ApO1xyXG5cdFx0XHQvKiAjZW5kaWYgKi9cclxuXHRcdFx0LyogI2lmbmRlZiBINSAqL1xyXG5cdFx0XHRwYWRkaW5nLXRvcDogMDtcclxuXHRcdFx0LyogI2VuZGlmICovXHJcblx0XHRcdGZsZXg6IDE7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG4uZml4Zm9ycGMtei1pbmRleCB7XHJcblx0LyogI2lmbmRlZiBBUFAtTlZVRSAqL1xyXG5cdHotaW5kZXg6IDk5OTtcclxuXHQvKiAjZW5kaWYgKi9cclxufVxyXG5cclxuLmZpeGZvcnBjLXRvcCB7XHJcblx0dG9wOiAwO1xyXG59XHJcbjwvc3R5bGU+XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///80\n");
+eval("/* WEBPACK VAR INJECTION */(function(__f__) {Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0; //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n\n/**\r\n * PopUp 寮瑰嚭灞俓r\n * @description 寮瑰嚭灞傜粍浠讹紝涓轰簡瑙e喅閬僵寮瑰眰鐨勯棶棰榎r\n * @tutorial https://ext.dcloud.net.cn/plugin?id=329\r\n * @property {String} type = [top|center|bottom|left|right|message|dialog|share] 寮瑰嚭鏂瑰紡\r\n * \t@value top 椤堕儴寮瑰嚭\r\n * \t@value center 涓棿寮瑰嚭\r\n * \t@value bottom 搴曢儴寮瑰嚭\r\n * \t@value left\t\t宸︿晶寮瑰嚭\r\n * \t@value right  鍙充晶寮瑰嚭\r\n * \t@value message 娑堟伅鎻愮ず\r\n * \t@value dialog 瀵硅瘽妗哱r\n * \t@value share 搴曢儴鍒嗕韩绀轰緥\r\n * @property {Boolean} animation = [true|false] 鏄惁寮�鍚姩鐢籠r\n * @property {Boolean} maskClick = [true|false] 钂欑増鐐瑰嚮鏄惁鍏抽棴寮圭獥(搴熷純)\r\n * @property {Boolean} isMaskClick = [true|false] 钂欑増鐐瑰嚮鏄惁鍏抽棴寮圭獥\r\n * @property {String}  backgroundColor 涓荤獥鍙h儗鏅壊\r\n * @property {String}  maskBackgroundColor 钂欑増棰滆壊\r\n * @property {Boolean} safeArea\t\t   鏄惁閫傞厤搴曢儴瀹夊叏鍖篭r\n * @event {Function} change 鎵撳紑鍏抽棴寮圭獥瑙﹀彂锛宔={show: false}\r\n * @event {Function} maskClick 鐐瑰嚮閬僵瑙﹀彂\r\n */var _default =\n\n{\n  name: 'uniPopup',\n  components: {},\n\n\n\n\n  emits: ['change', 'maskClick'],\n  props: {\n    // 寮�鍚姩鐢籠n    animation: {\n      type: Boolean,\n      default: true },\n\n    // 寮瑰嚭灞傜被鍨嬶紝鍙�夊�硷紝top: 椤堕儴寮瑰嚭灞傦紱bottom锛氬簳閮ㄥ脊鍑哄眰锛沜enter锛氬叏灞忓脊鍑哄眰\n    // message: 娑堟伅鎻愮ず ; dialog : 瀵硅瘽妗哱n    type: {\n      type: String,\n      default: 'center' },\n\n    // maskClick\n    isMaskClick: {\n      type: Boolean,\n      default: null },\n\n    // TODO 2 涓増鏈悗搴熷純灞炴�� 锛屼娇鐢� isMaskClick\n    maskClick: {\n      type: Boolean,\n      default: null },\n\n    backgroundColor: {\n      type: String,\n      default: 'none' },\n\n    safeArea: {\n      type: Boolean,\n      default: true },\n\n    maskBackgroundColor: {\n      type: String,\n      default: 'rgba(0, 0, 0, 0.4)' } },\n\n\n\n  watch: {\n    /**\r\n            * 鐩戝惉type绫诲瀷\r\n            */\n    type: {\n      handler: function handler(type) {\n        if (!this.config[type]) return;\n        this[this.config[type]](true);\n      },\n      immediate: true },\n\n    isDesktop: {\n      handler: function handler(newVal) {\n        if (!this.config[newVal]) return;\n        this[this.config[this.type]](true);\n      },\n      immediate: true },\n\n    /**\r\n                          * 鐩戝惉閬僵鏄惁鍙偣鍑籠r\n                          * @param {Object} val\r\n                          */\n    maskClick: {\n      handler: function handler(val) {\n        this.mkclick = val;\n      },\n      immediate: true },\n\n    isMaskClick: {\n      handler: function handler(val) {\n        this.mkclick = val;\n      },\n      immediate: true },\n\n    // H5 涓嬬姝㈠簳閮ㄦ粴鍔╘n    showPopup: function showPopup(show) {\n\n\n\n\n    } },\n\n  data: function data() {\n    return {\n      duration: 300,\n      ani: [],\n      showPopup: false,\n      showTrans: false,\n      popupWidth: 0,\n      popupHeight: 0,\n      config: {\n        top: 'top',\n        bottom: 'bottom',\n        center: 'center',\n        left: 'left',\n        right: 'right',\n        message: 'top',\n        dialog: 'center',\n        share: 'bottom' },\n\n      maskClass: {\n        position: 'fixed',\n        bottom: 0,\n        top: 0,\n        left: 0,\n        right: 0,\n        backgroundColor: 'rgba(0, 0, 0, 0.4)' },\n\n      transClass: {\n        position: 'fixed',\n        left: 0,\n        right: 0 },\n\n      maskShow: true,\n      mkclick: true,\n      popupstyle: this.isDesktop ? 'fixforpc-top' : 'top' };\n\n  },\n  computed: {\n    isDesktop: function isDesktop() {\n      return this.popupWidth >= 500 && this.popupHeight >= 500;\n    },\n    bg: function bg() {\n      if (this.backgroundColor === '' || this.backgroundColor === 'none') {\n        return 'transparent';\n      }\n      return this.backgroundColor;\n    } },\n\n  mounted: function mounted() {var _this = this;\n    var fixSize = function fixSize() {var _uni$getSystemInfoSyn =\n      uni.getSystemInfoSync(),windowWidth = _uni$getSystemInfoSyn.windowWidth,windowHeight = _uni$getSystemInfoSyn.windowHeight,windowTop = _uni$getSystemInfoSyn.windowTop,safeArea = _uni$getSystemInfoSyn.safeArea,screenHeight = _uni$getSystemInfoSyn.screenHeight,safeAreaInsets = _uni$getSystemInfoSyn.safeAreaInsets;\n      _this.popupWidth = windowWidth;\n      _this.popupHeight = windowHeight + windowTop;\n      // TODO fix by mehaotian 鏄惁閫傞厤搴曢儴瀹夊叏鍖� ,鐩墠寰俊ios 銆佸拰 app ios 璁$畻鏈夊樊寮傦紝闇�瑕佹鏋朵慨澶峔n      if (safeArea) {\n\n\n\n\n        _this.safeAreaInsets = safeAreaInsets.bottom;\n\n      } else {\n        _this.safeAreaInsets = 0;\n      }\n    };\n    fixSize();\n\n\n\n\n\n\n  },\n  created: function created() {\n    // this.mkclick =  this.isMaskClick || this.maskClick\n    if (this.isMaskClick === null && this.maskClick === null) {\n      this.mkclick = true;\n    } else {\n      this.mkclick = this.isMaskClick !== null ? this.isMaskClick : this.maskClick;\n    }\n    if (this.animation) {\n      this.duration = 300;\n    } else {\n      this.duration = 0;\n    }\n    // TODO 澶勭悊 message 缁勪欢鐢熷懡鍛ㄦ湡寮傚父鐨勯棶棰榎n    this.messageChild = null;\n    // TODO 瑙e喅澶存潯鍐掓场鐨勯棶棰榎n    this.clearPropagation = false;\n    this.maskClass.backgroundColor = this.maskBackgroundColor;\n  },\n  methods: {\n    /**\r\n              * 鍏敤鏂规硶锛屼笉鏄剧ず閬僵灞俓r\n              */\n    closeMask: function closeMask() {\n      this.maskShow = false;\n    },\n    /**\r\n        * 鍏敤鏂规硶锛岄伄缃╁眰绂佹鐐瑰嚮\r\n        */\n    disableMask: function disableMask() {\n      this.mkclick = false;\n    },\n    // TODO nvue 鍙栨秷鍐掓场\n    clear: function clear(e) {\n\n      e.stopPropagation();\n\n      this.clearPropagation = true;\n    },\n\n    open: function open(direction) {\n      var innerType = ['top', 'center', 'bottom', 'left', 'right', 'message', 'dialog', 'share'];\n      if (!(direction && innerType.indexOf(direction) !== -1)) {\n        direction = this.type;\n      }\n      if (!this.config[direction]) {\n        __f__(\"error\", '缂哄皯绫诲瀷锛�', direction, \" at uni_modules/uni-popup/components/uni-popup/uni-popup.vue:246\");\n        return;\n      }\n      this[this.config[direction]]();\n      this.$emit('change', {\n        show: true,\n        type: direction });\n\n    },\n    close: function close(type) {var _this2 = this;\n      this.showTrans = false;\n      this.$emit('change', {\n        show: false,\n        type: this.type });\n\n      clearTimeout(this.timer);\n      // // 鑷畾涔夊叧闂簨浠禱n      // this.customOpen && this.customClose()\n      this.timer = setTimeout(function () {\n        _this2.showPopup = false;\n      }, 300);\n    },\n    // TODO 澶勭悊鍐掓场浜嬩欢锛屽ご鏉$殑鍐掓场浜嬩欢鏈夐棶棰� 锛屽厛杩欐牱鍏煎\n    touchstart: function touchstart() {\n      this.clearPropagation = false;\n    },\n\n    onTap: function onTap() {\n      if (this.clearPropagation) {\n        // fix by mehaotian 鍏煎 nvue\n        this.clearPropagation = false;\n        return;\n      }\n      this.$emit('maskClick');\n      if (!this.mkclick) return;\n      this.close();\n    },\n    /**\r\n        * 椤堕儴寮瑰嚭鏍峰紡澶勭悊\r\n        */\n    top: function top(type) {var _this3 = this;\n      this.popupstyle = this.isDesktop ? 'fixforpc-top' : 'top';\n      this.ani = ['slide-top'];\n      this.transClass = {\n        position: 'fixed',\n        left: 0,\n        right: 0,\n        backgroundColor: this.bg };\n\n      // TODO 鍏煎 type 灞炴�� 锛屽悗缁細搴熷純\n      if (type) return;\n      this.showPopup = true;\n      this.showTrans = true;\n      this.$nextTick(function () {\n        if (_this3.messageChild && _this3.type === 'message') {\n          _this3.messageChild.timerClose();\n        }\n      });\n    },\n    /**\r\n        * 搴曢儴寮瑰嚭鏍峰紡澶勭悊\r\n        */\n    bottom: function bottom(type) {\n      this.popupstyle = 'bottom';\n      this.ani = ['slide-bottom'];\n      this.transClass = {\n        position: 'fixed',\n        left: 0,\n        right: 0,\n        bottom: 0,\n        paddingBottom: this.safeAreaInsets + 'px',\n        backgroundColor: this.bg };\n\n      // TODO 鍏煎 type 灞炴�� 锛屽悗缁細搴熷純\n      if (type) return;\n      this.showPopup = true;\n      this.showTrans = true;\n    },\n    /**\r\n        * 涓棿寮瑰嚭鏍峰紡澶勭悊\r\n        */\n    center: function center(type) {\n      this.popupstyle = 'center';\n      this.ani = ['zoom-out', 'fade'];\n      this.transClass = {\n        position: 'fixed',\n\n        display: 'flex',\n        flexDirection: 'column',\n\n        bottom: 0,\n        left: 0,\n        right: 0,\n        top: 0,\n        justifyContent: 'center',\n        alignItems: 'center' };\n\n      // TODO 鍏煎 type 灞炴�� 锛屽悗缁細搴熷純\n      if (type) return;\n      this.showPopup = true;\n      this.showTrans = true;\n    },\n    left: function left(type) {\n      this.popupstyle = 'left';\n      this.ani = ['slide-left'];\n      this.transClass = {\n        position: 'fixed',\n        left: 0,\n        bottom: 0,\n        top: 0,\n        backgroundColor: this.bg,\n\n        display: 'flex',\n        flexDirection: 'column' };\n\n\n      // TODO 鍏煎 type 灞炴�� 锛屽悗缁細搴熷純\n      if (type) return;\n      this.showPopup = true;\n      this.showTrans = true;\n    },\n    right: function right(type) {\n      this.popupstyle = 'right';\n      this.ani = ['slide-right'];\n      this.transClass = {\n        position: 'fixed',\n        bottom: 0,\n        right: 0,\n        top: 0,\n        backgroundColor: this.bg,\n\n        display: 'flex',\n        flexDirection: 'column' };\n\n\n      // TODO 鍏煎 type 灞炴�� 锛屽悗缁細搴熷純\n      if (type) return;\n      this.showPopup = true;\n      this.showTrans = true;\n    } } };exports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 10)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdW5pLXBvcHVwL2NvbXBvbmVudHMvdW5pLXBvcHVwL3VuaS1wb3B1cC52dWUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW1CQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUF1QkE7QUFDQSxrQkFEQTtBQUVBLGdCQUZBOzs7OztBQU9BLGdDQVBBO0FBUUE7QUFDQTtBQUNBO0FBQ0EsbUJBREE7QUFFQSxtQkFGQSxFQUZBOztBQU1BO0FBQ0E7QUFDQTtBQUNBLGtCQURBO0FBRUEsdUJBRkEsRUFSQTs7QUFZQTtBQUNBO0FBQ0EsbUJBREE7QUFFQSxtQkFGQSxFQWJBOztBQWlCQTtBQUNBO0FBQ0EsbUJBREE7QUFFQSxtQkFGQSxFQWxCQTs7QUFzQkE7QUFDQSxrQkFEQTtBQUVBLHFCQUZBLEVBdEJBOztBQTBCQTtBQUNBLG1CQURBO0FBRUEsbUJBRkEsRUExQkE7O0FBOEJBO0FBQ0Esa0JBREE7QUFFQSxtQ0FGQSxFQTlCQSxFQVJBOzs7O0FBNENBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FKQTtBQUtBLHFCQUxBLEVBSkE7O0FBV0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUpBO0FBS0EscUJBTEEsRUFYQTs7QUFrQkE7Ozs7QUFJQTtBQUNBO0FBQ0E7QUFDQSxPQUhBO0FBSUEscUJBSkEsRUF0QkE7O0FBNEJBO0FBQ0E7QUFDQTtBQUNBLE9BSEE7QUFJQSxxQkFKQSxFQTVCQTs7QUFrQ0E7QUFDQSxhQW5DQSxxQkFtQ0EsSUFuQ0EsRUFtQ0E7Ozs7O0FBS0EsS0F4Q0EsRUE1Q0E7O0FBc0ZBLE1BdEZBLGtCQXNGQTtBQUNBO0FBQ0EsbUJBREE7QUFFQSxhQUZBO0FBR0Esc0JBSEE7QUFJQSxzQkFKQTtBQUtBLG1CQUxBO0FBTUEsb0JBTkE7QUFPQTtBQUNBLGtCQURBO0FBRUEsd0JBRkE7QUFHQSx3QkFIQTtBQUlBLG9CQUpBO0FBS0Esc0JBTEE7QUFNQSxz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QW5KQTtBQW9KQSxTQXBKQSxpQkFvSkEsSUFwSkEsRUFvSkE7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5QkFEQTtBQUVBLGlCQUZBO0FBR0EsZ0JBSEE7QUFJQSxjQUpBO0FBS0EsZ0NBTEE7O0FBT0EsdUJBUEE7QUFRQSwrQkFSQTs7O0FBV0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQXRLQSxFQWhMQSxFIiwiZmlsZSI6Ijg1LmpzIiwic291cmNlc0NvbnRlbnQiOlsiPHRlbXBsYXRlPlxyXG5cdDx2aWV3IHYtaWY9XCJzaG93UG9wdXBcIiBjbGFzcz1cInVuaS1wb3B1cFwiIDpjbGFzcz1cIltwb3B1cHN0eWxlLCBpc0Rlc2t0b3AgPyAnZml4Zm9ycGMtei1pbmRleCcgOiAnJ11cIiBAdG91Y2htb3ZlLnN0b3AucHJldmVudD1cImNsZWFyXCI+XHJcblx0XHQ8dmlldyBAdG91Y2hzdGFydD1cInRvdWNoc3RhcnRcIiA+XHJcblx0XHRcdDx1bmktdHJhbnNpdGlvbiBrZXk9XCIxXCIgdi1pZj1cIm1hc2tTaG93XCIgbmFtZT1cIm1hc2tcIiBtb2RlLWNsYXNzPVwiZmFkZVwiIDpzdHlsZXM9XCJtYXNrQ2xhc3NcIiA6ZHVyYXRpb249XCJkdXJhdGlvblwiIDpzaG93PVwic2hvd1RyYW5zXCIgQGNsaWNrPVwib25UYXBcIiAvPlxyXG5cdFx0XHQ8dW5pLXRyYW5zaXRpb24ga2V5PVwiMlwiIDptb2RlLWNsYXNzPVwiYW5pXCIgbmFtZT1cImNvbnRlbnRcIiA6c3R5bGVzPVwidHJhbnNDbGFzc1wiIDpkdXJhdGlvbj1cImR1cmF0aW9uXCIgOnNob3c9XCJzaG93VHJhbnNcIiBAY2xpY2s9XCJvblRhcFwiPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwidW5pLXBvcHVwX193cmFwcGVyXCIgOnN0eWxlPVwieyBiYWNrZ3JvdW5kQ29sb3I6IGJnIH1cIiA6Y2xhc3M9XCJbcG9wdXBzdHlsZV1cIiBAY2xpY2s9XCJjbGVhclwiPjxzbG90IC8+PC92aWV3PlxyXG5cdFx0XHQ8L3VuaS10cmFuc2l0aW9uPlxyXG5cdFx0PC92aWV3PlxyXG5cdFx0PCEtLSAjaWZkZWYgSDUgLS0+XHJcblx0XHQ8a2V5cHJlc3Mgdi1pZj1cIm1hc2tTaG93XCIgQGVzYz1cIm9uVGFwXCIgLz5cclxuXHRcdDwhLS0gI2VuZGlmIC0tPlxyXG5cdDwvdmlldz5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcbi8vICNpZmRlZiBINVxyXG5pbXBvcnQga2V5cHJlc3MgZnJvbSAnLi9rZXlwcmVzcy5qcydcclxuLy8gI2VuZGlmXHJcblxyXG4vKipcclxuICogUG9wVXAg5by55Ye65bGCXHJcbiAqIEBkZXNjcmlwdGlvbiDlvLnlh7rlsYLnu4Tku7bvvIzkuLrkuobop6PlhrPpga7nvanlvLnlsYLnmoTpl67pophcclxuICogQHR1dG9yaWFsIGh0dHBzOi8vZXh0LmRjbG91ZC5uZXQuY24vcGx1Z2luP2lkPTMyOVxyXG4gKiBAcHJvcGVydHkge1N0cmluZ30gdHlwZSA9IFt0b3B8Y2VudGVyfGJvdHRvbXxsZWZ0fHJpZ2h0fG1lc3NhZ2V8ZGlhbG9nfHNoYXJlXSDlvLnlh7rmlrnlvI9cclxuICogXHRAdmFsdWUgdG9wIOmhtumDqOW8ueWHulxyXG4gKiBcdEB2YWx1ZSBjZW50ZXIg5Lit6Ze05by55Ye6XHJcbiAqIFx0QHZhbHVlIGJvdHRvbSDlupXpg6jlvLnlh7pcclxuICogXHRAdmFsdWUgbGVmdFx0XHTlt6bkvqflvLnlh7pcclxuICogXHRAdmFsdWUgcmlnaHQgIOWPs+S+p+W8ueWHulxyXG4gKiBcdEB2YWx1ZSBtZXNzYWdlIOa2iOaBr+aPkOekulxyXG4gKiBcdEB2YWx1ZSBkaWFsb2cg5a+56K+d5qGGXHJcbiAqIFx0QHZhbHVlIHNoYXJlIOW6lemDqOWIhuS6q+ekuuS+i1xyXG4gKiBAcHJvcGVydHkge0Jvb2xlYW59IGFuaW1hdGlvbiA9IFt0cnVlfGZhbHNlXSDmmK/lkKblvIDlkK/liqjnlLtcclxuICogQHByb3BlcnR5IHtCb29sZWFufSBtYXNrQ2xpY2sgPSBbdHJ1ZXxmYWxzZV0g6JKZ54mI54K55Ye75piv5ZCm5YWz6Zet5by556qXKOW6n+W8gylcclxuICogQHByb3BlcnR5IHtCb29sZWFufSBpc01hc2tDbGljayA9IFt0cnVlfGZhbHNlXSDokpnniYjngrnlh7vmmK/lkKblhbPpl63lvLnnqpdcclxuICogQHByb3BlcnR5IHtTdHJpbmd9ICBiYWNrZ3JvdW5kQ29sb3Ig5Li756qX5Y+j6IOM5pmv6ImyXHJcbiAqIEBwcm9wZXJ0eSB7U3RyaW5nfSAgbWFza0JhY2tncm91bmRDb2xvciDokpnniYjpopzoibJcclxuICogQHByb3BlcnR5IHtCb29sZWFufSBzYWZlQXJlYVx0XHQgICDmmK/lkKbpgILphY3lupXpg6jlronlhajljLpcclxuICogQGV2ZW50IHtGdW5jdGlvbn0gY2hhbmdlIOaJk+W8gOWFs+mXreW8ueeql+inpuWPke+8jGU9e3Nob3c6IGZhbHNlfVxyXG4gKiBAZXZlbnQge0Z1bmN0aW9ufSBtYXNrQ2xpY2sg54K55Ye76YGu572p6Kem5Y+RXHJcbiAqL1xyXG5cclxuZXhwb3J0IGRlZmF1bHQge1xyXG5cdG5hbWU6ICd1bmlQb3B1cCcsXHJcblx0Y29tcG9uZW50czoge1xyXG5cdFx0Ly8gI2lmZGVmIEg1XHJcblx0XHRrZXlwcmVzc1xyXG5cdFx0Ly8gI2VuZGlmXHJcblx0fSxcclxuXHRlbWl0czpbJ2NoYW5nZScsJ21hc2tDbGljayddLFxyXG5cdHByb3BzOiB7XHJcblx0XHQvLyDlvIDlkK/liqjnlLtcclxuXHRcdGFuaW1hdGlvbjoge1xyXG5cdFx0XHR0eXBlOiBCb29sZWFuLFxyXG5cdFx0XHRkZWZhdWx0OiB0cnVlXHJcblx0XHR9LFxyXG5cdFx0Ly8g5by55Ye65bGC57G75Z6L77yM5Y+v6YCJ5YC877yMdG9wOiDpobbpg6jlvLnlh7rlsYLvvJtib3R0b23vvJrlupXpg6jlvLnlh7rlsYLvvJtjZW50ZXLvvJrlhajlsY/lvLnlh7rlsYJcclxuXHRcdC8vIG1lc3NhZ2U6IOa2iOaBr+aPkOekuiA7IGRpYWxvZyA6IOWvueivneahhlxyXG5cdFx0dHlwZToge1xyXG5cdFx0XHR0eXBlOiBTdHJpbmcsXHJcblx0XHRcdGRlZmF1bHQ6ICdjZW50ZXInXHJcblx0XHR9LFxyXG5cdFx0Ly8gbWFza0NsaWNrXHJcblx0XHRpc01hc2tDbGljazoge1xyXG5cdFx0XHR0eXBlOiBCb29sZWFuLFxyXG5cdFx0XHRkZWZhdWx0OiBudWxsXHJcblx0XHR9LFxyXG5cdFx0Ly8gVE9ETyAyIOS4queJiOacrOWQjuW6n+W8g+WxnuaApyDvvIzkvb/nlKggaXNNYXNrQ2xpY2tcclxuXHRcdG1hc2tDbGljazoge1xyXG5cdFx0XHR0eXBlOiBCb29sZWFuLFxyXG5cdFx0XHRkZWZhdWx0OiBudWxsXHJcblx0XHR9LFxyXG5cdFx0YmFja2dyb3VuZENvbG9yOiB7XHJcblx0XHRcdHR5cGU6IFN0cmluZyxcclxuXHRcdFx0ZGVmYXVsdDogJ25vbmUnXHJcblx0XHR9LFxyXG5cdFx0c2FmZUFyZWE6e1xyXG5cdFx0XHR0eXBlOiBCb29sZWFuLFxyXG5cdFx0XHRkZWZhdWx0OiB0cnVlXHJcblx0XHR9LFxyXG5cdFx0bWFza0JhY2tncm91bmRDb2xvcjoge1xyXG5cdFx0XHR0eXBlOiBTdHJpbmcsXHJcblx0XHRcdGRlZmF1bHQ6ICdyZ2JhKDAsIDAsIDAsIDAuNCknXHJcblx0XHR9LFxyXG5cdH0sXHJcblxyXG5cdHdhdGNoOiB7XHJcblx0XHQvKipcclxuXHRcdCAqIOebkeWQrHR5cGXnsbvlnotcclxuXHRcdCAqL1xyXG5cdFx0dHlwZToge1xyXG5cdFx0XHRoYW5kbGVyOiBmdW5jdGlvbih0eXBlKSB7XHJcblx0XHRcdFx0aWYgKCF0aGlzLmNvbmZpZ1t0eXBlXSkgcmV0dXJuXHJcblx0XHRcdFx0dGhpc1t0aGlzLmNvbmZpZ1t0eXBlXV0odHJ1ZSlcclxuXHRcdFx0fSxcclxuXHRcdFx0aW1tZWRpYXRlOiB0cnVlXHJcblx0XHR9LFxyXG5cdFx0aXNEZXNrdG9wOiB7XHJcblx0XHRcdGhhbmRsZXI6IGZ1bmN0aW9uKG5ld1ZhbCkge1xyXG5cdFx0XHRcdGlmICghdGhpcy5jb25maWdbbmV3VmFsXSkgcmV0dXJuXHJcblx0XHRcdFx0dGhpc1t0aGlzLmNvbmZpZ1t0aGlzLnR5cGVdXSh0cnVlKVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRpbW1lZGlhdGU6IHRydWVcclxuXHRcdH0sXHJcblx0XHQvKipcclxuXHRcdCAqIOebkeWQrOmBrue9qeaYr+WQpuWPr+eCueWHu1xyXG5cdFx0ICogQHBhcmFtIHtPYmplY3R9IHZhbFxyXG5cdFx0ICovXHJcblx0XHRtYXNrQ2xpY2s6IHtcclxuXHRcdFx0aGFuZGxlcjogZnVuY3Rpb24odmFsKSB7XHJcblx0XHRcdFx0dGhpcy5ta2NsaWNrID0gdmFsXHJcblx0XHRcdH0sXHJcblx0XHRcdGltbWVkaWF0ZTogdHJ1ZVxyXG5cdFx0fSxcclxuXHRcdGlzTWFza0NsaWNrOiB7XHJcblx0XHRcdGhhbmRsZXI6IGZ1bmN0aW9uKHZhbCkge1xyXG5cdFx0XHRcdHRoaXMubWtjbGljayA9IHZhbFxyXG5cdFx0XHR9LFxyXG5cdFx0XHRpbW1lZGlhdGU6IHRydWVcclxuXHRcdH0sXHJcblx0XHQvLyBINSDkuIvnpoHmraLlupXpg6jmu5rliqhcclxuXHRcdHNob3dQb3B1cChzaG93KSB7XHJcblx0XHRcdC8vICNpZmRlZiBINVxyXG5cdFx0XHQvLyBmaXggYnkgbWVoYW90aWFuIOWkhOeQhiBoNSDmu5rliqjnqb/pgI/nmoTpl67pophcclxuXHRcdFx0ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2JvZHknKVswXS5zdHlsZS5vdmVyZmxvdyA9IHNob3cgPyAnaGlkZGVuJyA6ICd2aXNpYmxlJ1xyXG5cdFx0XHQvLyAjZW5kaWZcclxuXHRcdH1cclxuXHR9LFxyXG5cdGRhdGEoKSB7XHJcblx0XHRyZXR1cm4ge1xyXG5cdFx0XHRkdXJhdGlvbjogMzAwLFxyXG5cdFx0XHRhbmk6IFtdLFxyXG5cdFx0XHRzaG93UG9wdXA6IGZhbHNlLFxyXG5cdFx0XHRzaG93VHJhbnM6IGZhbHNlLFxyXG5cdFx0XHRwb3B1cFdpZHRoOiAwLFxyXG5cdFx0XHRwb3B1cEhlaWdodDogMCxcclxuXHRcdFx0Y29uZmlnOiB7XHJcblx0XHRcdFx0dG9wOiAndG9wJyxcclxuXHRcdFx0XHRib3R0b206ICdib3R0b20nLFxyXG5cdFx0XHRcdGNlbnRlcjogJ2NlbnRlcicsXHJcblx0XHRcdFx0bGVmdDogJ2xlZnQnLFxyXG5cdFx0XHRcdHJpZ2h0OiAncmlnaHQnLFxyXG5cdFx0XHRcdG1lc3NhZ2U6ICd0b3AnLFxyXG5cdFx0XHRcdGRpYWxvZzogJ2NlbnRlcicsXHJcblx0XHRcdFx0c2hhcmU6ICdib3R0b20nXHJcblx0XHRcdH0sXHJcblx0XHRcdG1hc2tDbGFzczoge1xyXG5cdFx0XHRcdHBvc2l0aW9uOiAnZml4ZWQnLFxyXG5cdFx0XHRcdGJvdHRvbTogMCxcclxuXHRcdFx0XHR0b3A6IDAsXHJcblx0XHRcdFx0bGVmdDogMCxcclxuXHRcdFx0XHRyaWdodDogMCxcclxuXHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3I6ICdyZ2JhKDAsIDAsIDAsIDAuNCknXHJcblx0XHRcdH0sXHJcblx0XHRcdHRyYW5zQ2xhc3M6IHtcclxuXHRcdFx0XHRwb3NpdGlvbjogJ2ZpeGVkJyxcclxuXHRcdFx0XHRsZWZ0OiAwLFxyXG5cdFx0XHRcdHJpZ2h0OiAwXHJcblx0XHRcdH0sXHJcblx0XHRcdG1hc2tTaG93OiB0cnVlLFxyXG5cdFx0XHRta2NsaWNrOiB0cnVlLFxyXG5cdFx0XHRwb3B1cHN0eWxlOiB0aGlzLmlzRGVza3RvcCA/ICdmaXhmb3JwYy10b3AnIDogJ3RvcCdcclxuXHRcdH1cclxuXHR9LFxyXG5cdGNvbXB1dGVkOiB7XHJcblx0XHRpc0Rlc2t0b3AoKSB7XHJcblx0XHRcdHJldHVybiB0aGlzLnBvcHVwV2lkdGggPj0gNTAwICYmIHRoaXMucG9wdXBIZWlnaHQgPj0gNTAwXHJcblx0XHR9LFxyXG5cdFx0YmcoKSB7XHJcblx0XHRcdGlmICh0aGlzLmJhY2tncm91bmRDb2xvciA9PT0gJycgfHwgdGhpcy5iYWNrZ3JvdW5kQ29sb3IgPT09ICdub25lJykge1xyXG5cdFx0XHRcdHJldHVybiAndHJhbnNwYXJlbnQnXHJcblx0XHRcdH1cclxuXHRcdFx0cmV0dXJuIHRoaXMuYmFja2dyb3VuZENvbG9yXHJcblx0XHR9XHJcblx0fSxcclxuXHRtb3VudGVkKCkge1xyXG5cdFx0Y29uc3QgZml4U2l6ZSA9ICgpID0+IHtcclxuXHRcdFx0Y29uc3QgeyB3aW5kb3dXaWR0aCwgd2luZG93SGVpZ2h0LCB3aW5kb3dUb3AsIHNhZmVBcmVhLHNjcmVlbkhlaWdodCAsc2FmZUFyZWFJbnNldHMgfSA9IHVuaS5nZXRTeXN0ZW1JbmZvU3luYygpXHJcblx0XHRcdHRoaXMucG9wdXBXaWR0aCA9IHdpbmRvd1dpZHRoXHJcblx0XHRcdHRoaXMucG9wdXBIZWlnaHQgPSB3aW5kb3dIZWlnaHQgKyB3aW5kb3dUb3BcclxuXHRcdFx0Ly8gVE9ETyBmaXggYnkgbWVoYW90aWFuIOaYr+WQpumAgumFjeW6lemDqOWuieWFqOWMuiAs55uu5YmN5b6u5L+haW9zIOOAgeWSjCBhcHAgaW9zIOiuoeeul+acieW3ruW8gu+8jOmcgOimgeahhuaetuS/ruWkjVxyXG5cdFx0XHRpZihzYWZlQXJlYSl7XHJcblx0XHRcdFx0Ly8gI2lmZGVmIE1QLVdFSVhJTlxyXG5cdFx0XHRcdHRoaXMuc2FmZUFyZWFJbnNldHMgPSBzY3JlZW5IZWlnaHQgLSBzYWZlQXJlYS5ib3R0b21cclxuXHRcdFx0XHQvLyAjZW5kaWZcclxuXHRcdFx0XHQvLyAjaWZuZGVmIE1QLVdFSVhJTlxyXG5cdFx0XHRcdHRoaXMuc2FmZUFyZWFJbnNldHMgPSBzYWZlQXJlYUluc2V0cy5ib3R0b21cclxuXHRcdFx0XHQvLyAjZW5kaWZcclxuXHRcdFx0fWVsc2V7XHJcblx0XHRcdFx0dGhpcy5zYWZlQXJlYUluc2V0cyA9IDBcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0Zml4U2l6ZSgpXHJcblx0XHQvLyAjaWZkZWYgSDVcclxuXHRcdC8vIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCBmaXhTaXplKVxyXG5cdFx0Ly8gdGhpcy4kb25jZSgnaG9vazpiZWZvcmVEZXN0cm95JywgKCkgPT4ge1xyXG5cdFx0Ly8gXHR3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgZml4U2l6ZSlcclxuXHRcdC8vIH0pXHJcblx0XHQvLyAjZW5kaWZcclxuXHR9LFxyXG5cdGNyZWF0ZWQoKSB7XHJcblx0XHQvLyB0aGlzLm1rY2xpY2sgPSAgdGhpcy5pc01hc2tDbGljayB8fCB0aGlzLm1hc2tDbGlja1xyXG5cdFx0aWYodGhpcy5pc01hc2tDbGljayA9PT0gbnVsbCAmJiB0aGlzLm1hc2tDbGljayA9PT0gbnVsbCl7XHJcblx0XHRcdHRoaXMubWtjbGljayAgPSB0cnVlXHJcblx0XHR9ZWxzZXtcclxuXHRcdFx0dGhpcy5ta2NsaWNrID0gdGhpcy5pc01hc2tDbGljayAhPT0gbnVsbCA/IHRoaXMuaXNNYXNrQ2xpY2sgOiB0aGlzLm1hc2tDbGlja1xyXG5cdFx0fVxyXG5cdFx0aWYgKHRoaXMuYW5pbWF0aW9uKSB7XHJcblx0XHRcdHRoaXMuZHVyYXRpb24gPSAzMDBcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHRoaXMuZHVyYXRpb24gPSAwXHJcblx0XHR9XHJcblx0XHQvLyBUT0RPIOWkhOeQhiBtZXNzYWdlIOe7hOS7tueUn+WRveWRqOacn+W8guW4uOeahOmXrumimFxyXG5cdFx0dGhpcy5tZXNzYWdlQ2hpbGQgPSBudWxsXHJcblx0XHQvLyBUT0RPIOino+WGs+WktOadoeWGkuazoeeahOmXrumimFxyXG5cdFx0dGhpcy5jbGVhclByb3BhZ2F0aW9uID0gZmFsc2VcclxuXHRcdHRoaXMubWFza0NsYXNzLmJhY2tncm91bmRDb2xvciA9IHRoaXMubWFza0JhY2tncm91bmRDb2xvclxyXG5cdH0sXHJcblx0bWV0aG9kczoge1xyXG5cdFx0LyoqXHJcblx0XHQgKiDlhaznlKjmlrnms5XvvIzkuI3mmL7npLrpga7nvanlsYJcclxuXHRcdCAqL1xyXG5cdFx0Y2xvc2VNYXNrKCkge1xyXG5cdFx0XHR0aGlzLm1hc2tTaG93ID0gZmFsc2VcclxuXHRcdH0sXHJcblx0XHQvKipcclxuXHRcdCAqIOWFrOeUqOaWueazle+8jOmBrue9qeWxguemgeatoueCueWHu1xyXG5cdFx0ICovXHJcblx0XHRkaXNhYmxlTWFzaygpIHtcclxuXHRcdFx0dGhpcy5ta2NsaWNrID0gZmFsc2VcclxuXHRcdH0sXHJcblx0XHQvLyBUT0RPIG52dWUg5Y+W5raI5YaS5rOhXHJcblx0XHRjbGVhcihlKSB7XHJcblx0XHRcdC8vICNpZm5kZWYgQVBQLU5WVUVcclxuXHRcdFx0ZS5zdG9wUHJvcGFnYXRpb24oKVxyXG5cdFx0XHQvLyAjZW5kaWZcclxuXHRcdFx0dGhpcy5jbGVhclByb3BhZ2F0aW9uID0gdHJ1ZVxyXG5cdFx0fSxcclxuXHJcblx0XHRvcGVuKGRpcmVjdGlvbikge1xyXG5cdFx0XHRsZXQgaW5uZXJUeXBlID0gWyd0b3AnLCAnY2VudGVyJywgJ2JvdHRvbScsICdsZWZ0JywgJ3JpZ2h0JywgJ21lc3NhZ2UnLCAnZGlhbG9nJywgJ3NoYXJlJ11cclxuXHRcdFx0aWYgKCEoZGlyZWN0aW9uICYmIGlubmVyVHlwZS5pbmRleE9mKGRpcmVjdGlvbikgIT09IC0xKSkge1xyXG5cdFx0XHRcdGRpcmVjdGlvbiA9IHRoaXMudHlwZVxyXG5cdFx0XHR9XHJcblx0XHRcdGlmICghdGhpcy5jb25maWdbZGlyZWN0aW9uXSkge1xyXG5cdFx0XHRcdGNvbnNvbGUuZXJyb3IoJ+e8uuWwkeexu+Wei++8micsIGRpcmVjdGlvbilcclxuXHRcdFx0XHRyZXR1cm5cclxuXHRcdFx0fVxyXG5cdFx0XHR0aGlzW3RoaXMuY29uZmlnW2RpcmVjdGlvbl1dKClcclxuXHRcdFx0dGhpcy4kZW1pdCgnY2hhbmdlJywge1xyXG5cdFx0XHRcdHNob3c6IHRydWUsXHJcblx0XHRcdFx0dHlwZTogZGlyZWN0aW9uXHJcblx0XHRcdH0pXHJcblx0XHR9LFxyXG5cdFx0Y2xvc2UodHlwZSkge1xyXG5cdFx0XHR0aGlzLnNob3dUcmFucyA9IGZhbHNlXHJcblx0XHRcdHRoaXMuJGVtaXQoJ2NoYW5nZScsIHtcclxuXHRcdFx0XHRzaG93OiBmYWxzZSxcclxuXHRcdFx0XHR0eXBlOiB0aGlzLnR5cGVcclxuXHRcdFx0fSlcclxuXHRcdFx0Y2xlYXJUaW1lb3V0KHRoaXMudGltZXIpXHJcblx0XHRcdC8vIC8vIOiHquWumuS5ieWFs+mXreS6i+S7tlxyXG5cdFx0XHQvLyB0aGlzLmN1c3RvbU9wZW4gJiYgdGhpcy5jdXN0b21DbG9zZSgpXHJcblx0XHRcdHRoaXMudGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuXHRcdFx0XHR0aGlzLnNob3dQb3B1cCA9IGZhbHNlXHJcblx0XHRcdH0sIDMwMClcclxuXHRcdH0sXHJcblx0XHQvLyBUT0RPIOWkhOeQhuWGkuazoeS6i+S7tu+8jOWktOadoeeahOWGkuazoeS6i+S7tuaciemXrumimCDvvIzlhYjov5nmoLflhbzlrrlcclxuXHRcdHRvdWNoc3RhcnQoKXtcclxuXHRcdFx0dGhpcy5jbGVhclByb3BhZ2F0aW9uID0gZmFsc2VcclxuXHRcdH0sXHJcblxyXG5cdFx0b25UYXAoKSB7XHJcblx0XHRcdGlmICh0aGlzLmNsZWFyUHJvcGFnYXRpb24pIHtcclxuXHRcdFx0XHQvLyBmaXggYnkgbWVoYW90aWFuIOWFvOWuuSBudnVlXHJcblx0XHRcdFx0dGhpcy5jbGVhclByb3BhZ2F0aW9uID0gZmFsc2VcclxuXHRcdFx0XHRyZXR1cm5cclxuXHRcdFx0fVxyXG5cdFx0XHR0aGlzLiRlbWl0KCdtYXNrQ2xpY2snKVxyXG5cdFx0XHRpZiAoIXRoaXMubWtjbGljaykgcmV0dXJuXHJcblx0XHRcdHRoaXMuY2xvc2UoKVxyXG5cdFx0fSxcclxuXHRcdC8qKlxyXG5cdFx0ICog6aG26YOo5by55Ye65qC35byP5aSE55CGXHJcblx0XHQgKi9cclxuXHRcdHRvcCh0eXBlKSB7XHJcblx0XHRcdHRoaXMucG9wdXBzdHlsZSA9IHRoaXMuaXNEZXNrdG9wID8gJ2ZpeGZvcnBjLXRvcCcgOiAndG9wJ1xyXG5cdFx0XHR0aGlzLmFuaSA9IFsnc2xpZGUtdG9wJ11cclxuXHRcdFx0dGhpcy50cmFuc0NsYXNzID0ge1xyXG5cdFx0XHRcdHBvc2l0aW9uOiAnZml4ZWQnLFxyXG5cdFx0XHRcdGxlZnQ6IDAsXHJcblx0XHRcdFx0cmlnaHQ6IDAsXHJcblx0XHRcdFx0YmFja2dyb3VuZENvbG9yOiB0aGlzLmJnXHJcblx0XHRcdH1cclxuXHRcdFx0Ly8gVE9ETyDlhbzlrrkgdHlwZSDlsZ7mgKcg77yM5ZCO57ut5Lya5bqf5byDXHJcblx0XHRcdGlmICh0eXBlKSByZXR1cm5cclxuXHRcdFx0dGhpcy5zaG93UG9wdXAgPSB0cnVlXHJcblx0XHRcdHRoaXMuc2hvd1RyYW5zID0gdHJ1ZVxyXG5cdFx0XHR0aGlzLiRuZXh0VGljaygoKSA9PiB7XHJcblx0XHRcdFx0aWYgKHRoaXMubWVzc2FnZUNoaWxkICYmIHRoaXMudHlwZSA9PT0gJ21lc3NhZ2UnKSB7XHJcblx0XHRcdFx0XHR0aGlzLm1lc3NhZ2VDaGlsZC50aW1lckNsb3NlKClcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0pXHJcblx0XHR9LFxyXG5cdFx0LyoqXHJcblx0XHQgKiDlupXpg6jlvLnlh7rmoLflvI/lpITnkIZcclxuXHRcdCAqL1xyXG5cdFx0Ym90dG9tKHR5cGUpIHtcclxuXHRcdFx0dGhpcy5wb3B1cHN0eWxlID0gJ2JvdHRvbSdcclxuXHRcdFx0dGhpcy5hbmkgPSBbJ3NsaWRlLWJvdHRvbSddXHJcblx0XHRcdHRoaXMudHJhbnNDbGFzcyA9IHtcclxuXHRcdFx0XHRwb3NpdGlvbjogJ2ZpeGVkJyxcclxuXHRcdFx0XHRsZWZ0OiAwLFxyXG5cdFx0XHRcdHJpZ2h0OiAwLFxyXG5cdFx0XHRcdGJvdHRvbTogMCxcclxuXHRcdFx0XHRwYWRkaW5nQm90dG9tOiB0aGlzLnNhZmVBcmVhSW5zZXRzKydweCcsXHJcblx0XHRcdFx0YmFja2dyb3VuZENvbG9yOiB0aGlzLmJnXHJcblx0XHRcdH1cclxuXHRcdFx0Ly8gVE9ETyDlhbzlrrkgdHlwZSDlsZ7mgKcg77yM5ZCO57ut5Lya5bqf5byDXHJcblx0XHRcdGlmICh0eXBlKSByZXR1cm5cclxuXHRcdFx0dGhpcy5zaG93UG9wdXAgPSB0cnVlXHJcblx0XHRcdHRoaXMuc2hvd1RyYW5zID0gdHJ1ZVxyXG5cdFx0fSxcclxuXHRcdC8qKlxyXG5cdFx0ICog5Lit6Ze05by55Ye65qC35byP5aSE55CGXHJcblx0XHQgKi9cclxuXHRcdGNlbnRlcih0eXBlKSB7XHJcblx0XHRcdHRoaXMucG9wdXBzdHlsZSA9ICdjZW50ZXInXHJcblx0XHRcdHRoaXMuYW5pID0gWyd6b29tLW91dCcsICdmYWRlJ11cclxuXHRcdFx0dGhpcy50cmFuc0NsYXNzID0ge1xyXG5cdFx0XHRcdHBvc2l0aW9uOiAnZml4ZWQnLFxyXG5cdFx0XHRcdC8qICNpZm5kZWYgQVBQLU5WVUUgKi9cclxuXHRcdFx0XHRkaXNwbGF5OiAnZmxleCcsXHJcblx0XHRcdFx0ZmxleERpcmVjdGlvbjogJ2NvbHVtbicsXHJcblx0XHRcdFx0LyogI2VuZGlmICovXHJcblx0XHRcdFx0Ym90dG9tOiAwLFxyXG5cdFx0XHRcdGxlZnQ6IDAsXHJcblx0XHRcdFx0cmlnaHQ6IDAsXHJcblx0XHRcdFx0dG9wOiAwLFxyXG5cdFx0XHRcdGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcclxuXHRcdFx0XHRhbGlnbkl0ZW1zOiAnY2VudGVyJ1xyXG5cdFx0XHR9XHJcblx0XHRcdC8vIFRPRE8g5YW85a65IHR5cGUg5bGe5oCnIO+8jOWQjue7reS8muW6n+W8g1xyXG5cdFx0XHRpZiAodHlwZSkgcmV0dXJuXHJcblx0XHRcdHRoaXMuc2hvd1BvcHVwID0gdHJ1ZVxyXG5cdFx0XHR0aGlzLnNob3dUcmFucyA9IHRydWVcclxuXHRcdH0sXHJcblx0XHRsZWZ0KHR5cGUpIHtcclxuXHRcdFx0dGhpcy5wb3B1cHN0eWxlID0gJ2xlZnQnXHJcblx0XHRcdHRoaXMuYW5pID0gWydzbGlkZS1sZWZ0J11cclxuXHRcdFx0dGhpcy50cmFuc0NsYXNzID0ge1xyXG5cdFx0XHRcdHBvc2l0aW9uOiAnZml4ZWQnLFxyXG5cdFx0XHRcdGxlZnQ6IDAsXHJcblx0XHRcdFx0Ym90dG9tOiAwLFxyXG5cdFx0XHRcdHRvcDogMCxcclxuXHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3I6IHRoaXMuYmcsXHJcblx0XHRcdFx0LyogI2lmbmRlZiBBUFAtTlZVRSAqL1xyXG5cdFx0XHRcdGRpc3BsYXk6ICdmbGV4JyxcclxuXHRcdFx0XHRmbGV4RGlyZWN0aW9uOiAnY29sdW1uJ1xyXG5cdFx0XHRcdC8qICNlbmRpZiAqL1xyXG5cdFx0XHR9XHJcblx0XHRcdC8vIFRPRE8g5YW85a65IHR5cGUg5bGe5oCnIO+8jOWQjue7reS8muW6n+W8g1xyXG5cdFx0XHRpZiAodHlwZSkgcmV0dXJuXHJcblx0XHRcdHRoaXMuc2hvd1BvcHVwID0gdHJ1ZVxyXG5cdFx0XHR0aGlzLnNob3dUcmFucyA9IHRydWVcclxuXHRcdH0sXHJcblx0XHRyaWdodCh0eXBlKSB7XHJcblx0XHRcdHRoaXMucG9wdXBzdHlsZSA9ICdyaWdodCdcclxuXHRcdFx0dGhpcy5hbmkgPSBbJ3NsaWRlLXJpZ2h0J11cclxuXHRcdFx0dGhpcy50cmFuc0NsYXNzID0ge1xyXG5cdFx0XHRcdHBvc2l0aW9uOiAnZml4ZWQnLFxyXG5cdFx0XHRcdGJvdHRvbTogMCxcclxuXHRcdFx0XHRyaWdodDogMCxcclxuXHRcdFx0XHR0b3A6IDAsXHJcblx0XHRcdFx0YmFja2dyb3VuZENvbG9yOiB0aGlzLmJnLFxyXG5cdFx0XHRcdC8qICNpZm5kZWYgQVBQLU5WVUUgKi9cclxuXHRcdFx0XHRkaXNwbGF5OiAnZmxleCcsXHJcblx0XHRcdFx0ZmxleERpcmVjdGlvbjogJ2NvbHVtbidcclxuXHRcdFx0XHQvKiAjZW5kaWYgKi9cclxuXHRcdFx0fVxyXG5cdFx0XHQvLyBUT0RPIOWFvOWuuSB0eXBlIOWxnuaApyDvvIzlkI7nu63kvJrlup/lvINcclxuXHRcdFx0aWYgKHR5cGUpIHJldHVyblxyXG5cdFx0XHR0aGlzLnNob3dQb3B1cCA9IHRydWVcclxuXHRcdFx0dGhpcy5zaG93VHJhbnMgPSB0cnVlXHJcblx0XHR9XHJcblx0fVxyXG59XHJcbjwvc2NyaXB0PlxyXG48c3R5bGUgbGFuZz1cInNjc3NcIiA+XHJcbi51bmktcG9wdXAge1xyXG5cdHBvc2l0aW9uOiBmaXhlZDtcclxuXHQvKiAjaWZuZGVmIEFQUC1OVlVFICovXHJcblx0ei1pbmRleDogOTk7XHJcblx0LyogI2VuZGlmICovXHJcblx0Ji50b3AsXHJcblx0Ji5sZWZ0LFxyXG5cdCYucmlnaHQge1xyXG5cdFx0LyogI2lmZGVmIEg1ICovXHJcblx0XHR0b3A6IHZhcigtLXdpbmRvdy10b3ApO1xyXG5cdFx0LyogI2VuZGlmICovXHJcblx0XHQvKiAjaWZuZGVmIEg1ICovXHJcblx0XHR0b3A6IDA7XHJcblx0XHQvKiAjZW5kaWYgKi9cclxuXHR9XHJcblx0LnVuaS1wb3B1cF9fd3JhcHBlciB7XHJcblx0XHQvKiAjaWZuZGVmIEFQUC1OVlVFICovXHJcblx0XHRkaXNwbGF5OiBibG9jaztcclxuXHRcdC8qICNlbmRpZiAqL1xyXG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdFx0LyogaXBob25leCDnrYnlronlhajljLrorr7nva7vvIzlupXpg6jlronlhajljLrpgILphY0gKi9cclxuXHRcdC8qICNpZm5kZWYgQVBQLU5WVUUgKi9cclxuXHRcdC8vIHBhZGRpbmctYm90dG9tOiBjb25zdGFudChzYWZlLWFyZWEtaW5zZXQtYm90dG9tKTtcclxuXHRcdC8vIHBhZGRpbmctYm90dG9tOiBlbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSk7XHJcblx0XHQvKiAjZW5kaWYgKi9cclxuXHRcdCYubGVmdCxcclxuXHRcdCYucmlnaHQge1xyXG5cdFx0XHQvKiAjaWZkZWYgSDUgKi9cclxuXHRcdFx0cGFkZGluZy10b3A6IHZhcigtLXdpbmRvdy10b3ApO1xyXG5cdFx0XHQvKiAjZW5kaWYgKi9cclxuXHRcdFx0LyogI2lmbmRlZiBINSAqL1xyXG5cdFx0XHRwYWRkaW5nLXRvcDogMDtcclxuXHRcdFx0LyogI2VuZGlmICovXHJcblx0XHRcdGZsZXg6IDE7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG4uZml4Zm9ycGMtei1pbmRleCB7XHJcblx0LyogI2lmbmRlZiBBUFAtTlZVRSAqL1xyXG5cdHotaW5kZXg6IDk5OTtcclxuXHQvKiAjZW5kaWYgKi9cclxufVxyXG5cclxuLmZpeGZvcnBjLXRvcCB7XHJcblx0dG9wOiAwO1xyXG59XHJcbjwvc3R5bGU+XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///85\n");
 
 /***/ }),
-/* 81 */
+/* 86 */
 /*!******************************************************************************************************************!*\
   !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue ***!
   \******************************************************************************************************************/
@@ -5647,10 +6191,10 @@
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 
 "use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _uni_popup_dialog_vue_vue_type_template_id_6f54520a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./uni-popup-dialog.vue?vue&type=template&id=6f54520a& */ 82);\n/* harmony import */ var _uni_popup_dialog_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./uni-popup-dialog.vue?vue&type=script&lang=js& */ 84);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _uni_popup_dialog_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _uni_popup_dialog_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 12);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n  _uni_popup_dialog_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n  _uni_popup_dialog_vue_vue_type_template_id_6f54520a___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n  _uni_popup_dialog_vue_vue_type_template_id_6f54520a___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n  false,\n  null,\n  null,\n  null,\n  false,\n  _uni_popup_dialog_vue_vue_type_template_id_6f54520a___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n  renderjs\n)\n\ncomponent.options.__file = \"uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBNkg7QUFDN0g7QUFDb0U7QUFDTDs7O0FBRy9EO0FBQzZNO0FBQzdNLGdCQUFnQiwyTUFBVTtBQUMxQixFQUFFLHNGQUFNO0FBQ1IsRUFBRSwyRkFBTTtBQUNSLEVBQUUsb0dBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsK0ZBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiODEuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL3VuaS1wb3B1cC1kaWFsb2cudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTZmNTQ1MjBhJlwiXG52YXIgcmVuZGVyanNcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vdW5pLXBvcHVwLWRpYWxvZy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmV4cG9ydCAqIGZyb20gXCIuL3VuaS1wb3B1cC1kaWFsb2cudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIG51bGwsXG4gIG51bGwsXG4gIGZhbHNlLFxuICBjb21wb25lbnRzLFxuICByZW5kZXJqc1xuKVxuXG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInVuaV9tb2R1bGVzL3VuaS1wb3B1cC9jb21wb25lbnRzL3VuaS1wb3B1cC1kaWFsb2cvdW5pLXBvcHVwLWRpYWxvZy52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///81\n");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _uni_popup_dialog_vue_vue_type_template_id_6f54520a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./uni-popup-dialog.vue?vue&type=template&id=6f54520a& */ 87);\n/* harmony import */ var _uni_popup_dialog_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./uni-popup-dialog.vue?vue&type=script&lang=js& */ 89);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _uni_popup_dialog_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _uni_popup_dialog_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 12);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n  _uni_popup_dialog_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n  _uni_popup_dialog_vue_vue_type_template_id_6f54520a___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n  _uni_popup_dialog_vue_vue_type_template_id_6f54520a___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n  false,\n  null,\n  null,\n  null,\n  false,\n  _uni_popup_dialog_vue_vue_type_template_id_6f54520a___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n  renderjs\n)\n\ncomponent.options.__file = \"uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBNkg7QUFDN0g7QUFDb0U7QUFDTDs7O0FBRy9EO0FBQzZNO0FBQzdNLGdCQUFnQiwyTUFBVTtBQUMxQixFQUFFLHNGQUFNO0FBQ1IsRUFBRSwyRkFBTTtBQUNSLEVBQUUsb0dBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsK0ZBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiODYuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL3VuaS1wb3B1cC1kaWFsb2cudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTZmNTQ1MjBhJlwiXG52YXIgcmVuZGVyanNcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vdW5pLXBvcHVwLWRpYWxvZy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmV4cG9ydCAqIGZyb20gXCIuL3VuaS1wb3B1cC1kaWFsb2cudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIG51bGwsXG4gIG51bGwsXG4gIGZhbHNlLFxuICBjb21wb25lbnRzLFxuICByZW5kZXJqc1xuKVxuXG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInVuaV9tb2R1bGVzL3VuaS1wb3B1cC9jb21wb25lbnRzL3VuaS1wb3B1cC1kaWFsb2cvdW5pLXBvcHVwLWRpYWxvZy52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///86\n");
 
 /***/ }),
-/* 82 */
+/* 87 */
 /*!*************************************************************************************************************************************************!*\
   !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue?vue&type=template&id=6f54520a& ***!
   \*************************************************************************************************************************************************/
@@ -5659,7 +6203,7 @@
 
 "use strict";
 __webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_dialog_vue_vue_type_template_id_6f54520a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./uni-popup-dialog.vue?vue&type=template&id=6f54520a& */ 83);
+/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_dialog_vue_vue_type_template_id_6f54520a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./uni-popup-dialog.vue?vue&type=template&id=6f54520a& */ 88);
 /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_dialog_vue_vue_type_template_id_6f54520a___WEBPACK_IMPORTED_MODULE_0__["render"]; });
 
 /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_10_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_dialog_vue_vue_type_template_id_6f54520a___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
@@ -5671,7 +6215,7 @@
 
 
 /***/ }),
-/* 83 */
+/* 88 */
 /*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
   !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--10-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Workspace/zy/private/Monitor-APP/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue?vue&type=template&id=6f54520a& ***!
   \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
@@ -5841,7 +6385,7 @@
 
 
 /***/ }),
-/* 84 */
+/* 89 */
 /*!*******************************************************************************************************************************************!*\
   !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue?vue&type=script&lang=js& ***!
   \*******************************************************************************************************************************************/
@@ -5849,10 +6393,10 @@
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 
 "use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_dialog_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./uni-popup-dialog.vue?vue&type=script&lang=js& */ 85);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_dialog_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_dialog_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_dialog_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_dialog_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_dialog_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQW90QixDQUFnQiw4ckJBQUcsRUFBQyIsImZpbGUiOiI4NC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNi0xIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL3VuaS1wb3B1cC1kaWFsb2cudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTYtMSEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi91bmktcG9wdXAtZGlhbG9nLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///84\n");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_dialog_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./uni-popup-dialog.vue?vue&type=script&lang=js& */ 90);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_dialog_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_dialog_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_dialog_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_dialog_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_popup_dialog_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQW90QixDQUFnQiw4ckJBQUcsRUFBQyIsImZpbGUiOiI4OS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNi0xIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL3VuaS1wb3B1cC1kaWFsb2cudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTYtMSEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi91bmktcG9wdXAtZGlhbG9nLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///89\n");
 
 /***/ }),
-/* 85 */
+/* 90 */
 /*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
   !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Workspace/zy/private/Monitor-APP/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue?vue&type=script&lang=js& ***!
   \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
@@ -5860,10 +6404,10 @@
 /***/ (function(module, exports, __webpack_require__) {
 
 "use strict";
-eval("Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0;\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar _popup = _interopRequireDefault(__webpack_require__(/*! ../uni-popup/popup.js */ 86));\nvar _uniI18n = __webpack_require__(/*! @dcloudio/uni-i18n */ 70);\n\n\nvar _index = _interopRequireDefault(__webpack_require__(/*! ../uni-popup/i18n/index.js */ 87));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _initVueI18n = (0, _uniI18n.initVueI18n)(_index.default),t = _initVueI18n.t; /**\n                                                                                  * PopUp 寮瑰嚭灞�-瀵硅瘽妗嗘牱寮廫n                                                                                  * @description 寮瑰嚭灞�-瀵硅瘽妗嗘牱寮廫n                                                                                  * @tutorial https://ext.dcloud.net.cn/plugin?id=329\n                                                                                  * @property {String} value input 妯″紡涓嬬殑榛樿鍊糪n                                                                                  * @property {String} placeholder input 妯″紡涓嬭緭鍏ユ彁绀篭n                                                                                  * @property {String} type = [success|warning|info|error] 涓婚鏍峰紡\n                                                                                  *  @value success 鎴愬姛\n                                                                                  * \t@value warning 鎻愮ず\n                                                                                  * \t@value info 娑堟伅\n                                                                                  * \t@value error 閿欒\n                                                                                  * @property {String} mode = [base|input] 妯″紡銆乗n                                                                                  * \t@value base 鍩虹瀵硅瘽妗哱n                                                                                  * \t@value input 鍙緭鍏ュ璇濇\n                                                                                  * @property {String} content 瀵硅瘽妗嗗唴瀹筡n                                                                                  * @property {Boolean} beforeClose 鏄惁鎷︽埅鍙栨秷浜嬩欢\n                                                                                  * @event {Function} confirm 鐐瑰嚮纭鎸夐挳瑙﹀彂\n                                                                                  * @event {Function} close 鐐瑰嚮鍙栨秷鎸夐挳瑙﹀彂\n                                                                                  */var _default = { name: \"uniPopupDialog\", mixins: [_popup.default], emits: ['confirm', 'close'], props: { value: { type: [String, Number], default: '' }, placeholder: { type: [String, Number], default: '' }, type: { type: String, default: 'error' }, mode: { type: String, default: 'base' }, title: { type: String, default: '' },\n\n    content: {\n      type: String,\n      default: '' },\n\n    beforeClose: {\n      type: Boolean,\n      default: false },\n\n    cancelText: {\n      type: String,\n      default: '' },\n\n    confirmText: {\n      type: String,\n      default: '' } },\n\n\n  data: function data() {\n    return {\n      dialogType: 'error',\n      focus: false,\n      val: \"\" };\n\n  },\n  computed: {\n    okText: function okText() {\n      return this.confirmText || t(\"uni-popup.ok\");\n    },\n    closeText: function closeText() {\n      return this.cancelText || t(\"uni-popup.cancel\");\n    },\n    placeholderText: function placeholderText() {\n      return this.placeholder || t(\"uni-popup.placeholder\");\n    },\n    titleText: function titleText() {\n      return this.title || t(\"uni-popup.title\");\n    } },\n\n  watch: {\n    type: function type(val) {\n      this.dialogType = val;\n    },\n    mode: function mode(val) {\n      if (val === 'input') {\n        this.dialogType = 'info';\n      }\n    },\n    value: function value(val) {\n      this.val = val;\n    } },\n\n  created: function created() {\n    // 瀵硅瘽妗嗛伄缃╀笉鍙偣鍑籠n    this.popup.disableMask();\n    // this.popup.closeMask()\n    if (this.mode === 'input') {\n      this.dialogType = 'info';\n      this.val = this.value;\n    } else {\n      this.dialogType = this.type;\n    }\n  },\n  mounted: function mounted() {\n    this.focus = true;\n  },\n  methods: {\n    /**\n              * 鐐瑰嚮纭鎸夐挳\n              */\n    onOk: function onOk() {\n      if (this.mode === 'input') {\n        this.$emit('confirm', this.val);\n      } else {\n        this.$emit('confirm');\n      }\n      if (this.beforeClose) return;\n      this.popup.close();\n    },\n    /**\n        * 鐐瑰嚮鍙栨秷鎸夐挳\n        */\n    closeDialog: function closeDialog() {\n      this.$emit('close');\n      if (this.beforeClose) return;\n      this.popup.close();\n    },\n    close: function close() {\n      this.popup.close();\n    } } };exports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdW5pLXBvcHVwL2NvbXBvbmVudHMvdW5pLXBvcHVwLWRpYWxvZy91bmktcG9wdXAtZGlhbG9nLnZ1ZSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBNEJBO0FBQ0E7OztBQUdBLCtGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7bUJBQ0EseUMsQ0FBQSxDLGdCQUFBLEMsRUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7O21HQW9CQSxFQUNBLHNCQURBLEVBRUEsd0JBRkEsRUFHQSwyQkFIQSxFQUlBLFNBQ0EsU0FDQSxzQkFEQSxFQUVBLFdBRkEsRUFEQSxFQUtBLGVBQ0Esc0JBREEsRUFFQSxXQUZBLEVBTEEsRUFTQSxRQUNBLFlBREEsRUFFQSxnQkFGQSxFQVRBLEVBYUEsUUFDQSxZQURBLEVBRUEsZUFGQSxFQWJBLEVBaUJBLFNBQ0EsWUFEQSxFQUVBLFdBRkEsRUFqQkE7O0FBcUJBO0FBQ0Esa0JBREE7QUFFQSxpQkFGQSxFQXJCQTs7QUF5QkE7QUFDQSxtQkFEQTtBQUVBLG9CQUZBLEVBekJBOztBQTZCQTtBQUNBLGtCQURBO0FBRUEsaUJBRkEsRUE3QkE7O0FBaUNBO0FBQ0Esa0JBREE7QUFFQSxpQkFGQSxFQWpDQSxFQUpBOzs7QUEwQ0EsTUExQ0Esa0JBMENBO0FBQ0E7QUFDQSx5QkFEQTtBQUVBLGtCQUZBO0FBR0EsYUFIQTs7QUFLQSxHQWhEQTtBQWlEQTtBQUNBLFVBREEsb0JBQ0E7QUFDQTtBQUNBLEtBSEE7QUFJQSxhQUpBLHVCQUlBO0FBQ0E7QUFDQSxLQU5BO0FBT0EsbUJBUEEsNkJBT0E7QUFDQTtBQUNBLEtBVEE7QUFVQSxhQVZBLHVCQVVBO0FBQ0E7QUFDQSxLQVpBLEVBakRBOztBQStEQTtBQUNBLFFBREEsZ0JBQ0EsR0FEQSxFQUNBO0FBQ0E7QUFDQSxLQUhBO0FBSUEsUUFKQSxnQkFJQSxHQUpBLEVBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQVJBO0FBU0EsU0FUQSxpQkFTQSxHQVRBLEVBU0E7QUFDQTtBQUNBLEtBWEEsRUEvREE7O0FBNEVBLFNBNUVBLHFCQTRFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBSEEsTUFHQTtBQUNBO0FBQ0E7QUFDQSxHQXRGQTtBQXVGQSxTQXZGQSxxQkF1RkE7QUFDQTtBQUNBLEdBekZBO0FBMEZBO0FBQ0E7OztBQUdBLFFBSkEsa0JBSUE7QUFDQTtBQUNBO0FBQ0EsT0FGQSxNQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQVpBO0FBYUE7OztBQUdBLGVBaEJBLHlCQWdCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBcEJBO0FBcUJBLFNBckJBLG1CQXFCQTtBQUNBO0FBQ0EsS0F2QkEsRUExRkEsRSIsImZpbGUiOiI4NS5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuXHQ8dmlldyBjbGFzcz1cInVuaS1wb3B1cC1kaWFsb2dcIj5cclxuXHRcdDx2aWV3IGNsYXNzPVwidW5pLWRpYWxvZy10aXRsZVwiPlxyXG5cdFx0XHQ8dGV4dCBjbGFzcz1cInVuaS1kaWFsb2ctdGl0bGUtdGV4dFwiIDpjbGFzcz1cIlsndW5pLXBvcHVwX18nK2RpYWxvZ1R5cGVdXCI+e3t0aXRsZVRleHR9fTwvdGV4dD5cclxuXHRcdDwvdmlldz5cclxuXHRcdDx2aWV3IHYtaWY9XCJtb2RlID09PSAnYmFzZSdcIiBjbGFzcz1cInVuaS1kaWFsb2ctY29udGVudFwiPlxyXG5cdFx0XHQ8c2xvdD5cclxuXHRcdFx0XHQ8dGV4dCBjbGFzcz1cInVuaS1kaWFsb2ctY29udGVudC10ZXh0XCI+e3tjb250ZW50fX08L3RleHQ+XHJcblx0XHRcdDwvc2xvdD5cclxuXHRcdDwvdmlldz5cclxuXHRcdDx2aWV3IHYtZWxzZSBjbGFzcz1cInVuaS1kaWFsb2ctY29udGVudFwiPlxyXG5cdFx0XHQ8c2xvdD5cclxuXHRcdFx0XHQ8aW5wdXQgY2xhc3M9XCJ1bmktZGlhbG9nLWlucHV0XCIgdi1tb2RlbD1cInZhbFwiIHR5cGU9XCJ0ZXh0XCIgOnBsYWNlaG9sZGVyPVwicGxhY2Vob2xkZXJUZXh0XCIgOmZvY3VzPVwiZm9jdXNcIiA+XHJcblx0XHRcdDwvc2xvdD5cclxuXHRcdDwvdmlldz5cclxuXHRcdDx2aWV3IGNsYXNzPVwidW5pLWRpYWxvZy1idXR0b24tZ3JvdXBcIj5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJ1bmktZGlhbG9nLWJ1dHRvblwiIEBjbGljaz1cImNsb3NlRGlhbG9nXCI+XHJcblx0XHRcdFx0PHRleHQgY2xhc3M9XCJ1bmktZGlhbG9nLWJ1dHRvbi10ZXh0XCI+e3tjbG9zZVRleHR9fTwvdGV4dD5cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cInVuaS1kaWFsb2ctYnV0dG9uIHVuaS1ib3JkZXItbGVmdFwiIEBjbGljaz1cIm9uT2tcIj5cclxuXHRcdFx0XHQ8dGV4dCBjbGFzcz1cInVuaS1kaWFsb2ctYnV0dG9uLXRleHQgdW5pLWJ1dHRvbi1jb2xvclwiPnt7b2tUZXh0fX08L3RleHQ+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdDwvdmlldz5cclxuXHJcblx0PC92aWV3PlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuXHRpbXBvcnQgcG9wdXAgZnJvbSAnLi4vdW5pLXBvcHVwL3BvcHVwLmpzJ1xyXG5cdGltcG9ydCB7XHJcblx0aW5pdFZ1ZUkxOG5cclxuXHR9IGZyb20gJ0BkY2xvdWRpby91bmktaTE4bidcclxuXHRpbXBvcnQgbWVzc2FnZXMgZnJvbSAnLi4vdW5pLXBvcHVwL2kxOG4vaW5kZXguanMnXHJcblx0Y29uc3Qge1x0dCB9ID0gaW5pdFZ1ZUkxOG4obWVzc2FnZXMpXHJcblx0LyoqXHJcblx0ICogUG9wVXAg5by55Ye65bGCLeWvueivneahhuagt+W8j1xyXG5cdCAqIEBkZXNjcmlwdGlvbiDlvLnlh7rlsYIt5a+56K+d5qGG5qC35byPXHJcblx0ICogQHR1dG9yaWFsIGh0dHBzOi8vZXh0LmRjbG91ZC5uZXQuY24vcGx1Z2luP2lkPTMyOVxyXG5cdCAqIEBwcm9wZXJ0eSB7U3RyaW5nfSB2YWx1ZSBpbnB1dCDmqKHlvI/kuIvnmoTpu5jorqTlgLxcclxuXHQgKiBAcHJvcGVydHkge1N0cmluZ30gcGxhY2Vob2xkZXIgaW5wdXQg5qih5byP5LiL6L6T5YWl5o+Q56S6XHJcblx0ICogQHByb3BlcnR5IHtTdHJpbmd9IHR5cGUgPSBbc3VjY2Vzc3x3YXJuaW5nfGluZm98ZXJyb3JdIOS4u+mimOagt+W8j1xyXG5cdCAqICBAdmFsdWUgc3VjY2VzcyDmiJDlip9cclxuXHQgKiBcdEB2YWx1ZSB3YXJuaW5nIOaPkOekulxyXG5cdCAqIFx0QHZhbHVlIGluZm8g5raI5oGvXHJcblx0ICogXHRAdmFsdWUgZXJyb3Ig6ZSZ6K+vXHJcblx0ICogQHByb3BlcnR5IHtTdHJpbmd9IG1vZGUgPSBbYmFzZXxpbnB1dF0g5qih5byP44CBXHJcblx0ICogXHRAdmFsdWUgYmFzZSDln7rnoYDlr7nor53moYZcclxuXHQgKiBcdEB2YWx1ZSBpbnB1dCDlj6/ovpPlhaXlr7nor53moYZcclxuXHQgKiBAcHJvcGVydHkge1N0cmluZ30gY29udGVudCDlr7nor53moYblhoXlrrlcclxuXHQgKiBAcHJvcGVydHkge0Jvb2xlYW59IGJlZm9yZUNsb3NlIOaYr+WQpuaLpuaIquWPlua2iOS6i+S7tlxyXG5cdCAqIEBldmVudCB7RnVuY3Rpb259IGNvbmZpcm0g54K55Ye756Gu6K6k5oyJ6ZKu6Kem5Y+RXHJcblx0ICogQGV2ZW50IHtGdW5jdGlvbn0gY2xvc2Ug54K55Ye75Y+W5raI5oyJ6ZKu6Kem5Y+RXHJcblx0ICovXHJcblxyXG5cdGV4cG9ydCBkZWZhdWx0IHtcclxuXHRcdG5hbWU6IFwidW5pUG9wdXBEaWFsb2dcIixcclxuXHRcdG1peGluczogW3BvcHVwXSxcclxuXHRcdGVtaXRzOlsnY29uZmlybScsJ2Nsb3NlJ10sXHJcblx0XHRwcm9wczoge1xyXG5cdFx0XHR2YWx1ZToge1xyXG5cdFx0XHRcdHR5cGU6IFtTdHJpbmcsIE51bWJlcl0sXHJcblx0XHRcdFx0ZGVmYXVsdDogJydcclxuXHRcdFx0fSxcclxuXHRcdFx0cGxhY2Vob2xkZXI6IHtcclxuXHRcdFx0XHR0eXBlOiBbU3RyaW5nLCBOdW1iZXJdLFxyXG5cdFx0XHRcdGRlZmF1bHQ6ICcnXHJcblx0XHRcdH0sXHJcblx0XHRcdHR5cGU6IHtcclxuXHRcdFx0XHR0eXBlOiBTdHJpbmcsXHJcblx0XHRcdFx0ZGVmYXVsdDogJ2Vycm9yJ1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRtb2RlOiB7XHJcblx0XHRcdFx0dHlwZTogU3RyaW5nLFxyXG5cdFx0XHRcdGRlZmF1bHQ6ICdiYXNlJ1xyXG5cdFx0XHR9LFxyXG5cdFx0XHR0aXRsZToge1xyXG5cdFx0XHRcdHR5cGU6IFN0cmluZyxcclxuXHRcdFx0XHRkZWZhdWx0OiAnJ1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRjb250ZW50OiB7XHJcblx0XHRcdFx0dHlwZTogU3RyaW5nLFxyXG5cdFx0XHRcdGRlZmF1bHQ6ICcnXHJcblx0XHRcdH0sXHJcblx0XHRcdGJlZm9yZUNsb3NlOiB7XHJcblx0XHRcdFx0dHlwZTogQm9vbGVhbixcclxuXHRcdFx0XHRkZWZhdWx0OiBmYWxzZVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRjYW5jZWxUZXh0OntcclxuXHRcdFx0XHR0eXBlOiBTdHJpbmcsXHJcblx0XHRcdFx0ZGVmYXVsdDogJydcclxuXHRcdFx0fSxcclxuXHRcdFx0Y29uZmlybVRleHQ6e1xyXG5cdFx0XHRcdHR5cGU6IFN0cmluZyxcclxuXHRcdFx0XHRkZWZhdWx0OiAnJ1xyXG5cdFx0XHR9XHJcblx0XHR9LFxyXG5cdFx0ZGF0YSgpIHtcclxuXHRcdFx0cmV0dXJuIHtcclxuXHRcdFx0XHRkaWFsb2dUeXBlOiAnZXJyb3InLFxyXG5cdFx0XHRcdGZvY3VzOiBmYWxzZSxcclxuXHRcdFx0XHR2YWw6IFwiXCJcclxuXHRcdFx0fVxyXG5cdFx0fSxcclxuXHRcdGNvbXB1dGVkOiB7XHJcblx0XHRcdG9rVGV4dCgpIHtcclxuXHRcdFx0XHRyZXR1cm4gdGhpcy5jb25maXJtVGV4dCB8fCB0KFwidW5pLXBvcHVwLm9rXCIpXHJcblx0XHRcdH0sXHJcblx0XHRcdGNsb3NlVGV4dCgpIHtcclxuXHRcdFx0XHRyZXR1cm4gdGhpcy5jYW5jZWxUZXh0IHx8IHQoXCJ1bmktcG9wdXAuY2FuY2VsXCIpXHJcblx0XHRcdH0sXHJcblx0XHRcdHBsYWNlaG9sZGVyVGV4dCgpIHtcclxuXHRcdFx0XHRyZXR1cm4gdGhpcy5wbGFjZWhvbGRlciB8fCB0KFwidW5pLXBvcHVwLnBsYWNlaG9sZGVyXCIpXHJcblx0XHRcdH0sXHJcblx0XHRcdHRpdGxlVGV4dCgpIHtcclxuXHRcdFx0XHRyZXR1cm4gdGhpcy50aXRsZSB8fCB0KFwidW5pLXBvcHVwLnRpdGxlXCIpXHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHR3YXRjaDoge1xyXG5cdFx0XHR0eXBlKHZhbCkge1xyXG5cdFx0XHRcdHRoaXMuZGlhbG9nVHlwZSA9IHZhbFxyXG5cdFx0XHR9LFxyXG5cdFx0XHRtb2RlKHZhbCkge1xyXG5cdFx0XHRcdGlmICh2YWwgPT09ICdpbnB1dCcpIHtcclxuXHRcdFx0XHRcdHRoaXMuZGlhbG9nVHlwZSA9ICdpbmZvJ1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0dmFsdWUodmFsKSB7XHJcblx0XHRcdFx0dGhpcy52YWwgPSB2YWxcclxuXHRcdFx0fVxyXG5cdFx0fSxcclxuXHRcdGNyZWF0ZWQoKSB7XHJcblx0XHRcdC8vIOWvueivneahhumBrue9qeS4jeWPr+eCueWHu1xyXG5cdFx0XHR0aGlzLnBvcHVwLmRpc2FibGVNYXNrKClcclxuXHRcdFx0Ly8gdGhpcy5wb3B1cC5jbG9zZU1hc2soKVxyXG5cdFx0XHRpZiAodGhpcy5tb2RlID09PSAnaW5wdXQnKSB7XHJcblx0XHRcdFx0dGhpcy5kaWFsb2dUeXBlID0gJ2luZm8nXHJcblx0XHRcdFx0dGhpcy52YWwgPSB0aGlzLnZhbHVlXHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0dGhpcy5kaWFsb2dUeXBlID0gdGhpcy50eXBlXHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHRtb3VudGVkKCkge1xyXG5cdFx0XHR0aGlzLmZvY3VzID0gdHJ1ZVxyXG5cdFx0fSxcclxuXHRcdG1ldGhvZHM6IHtcclxuXHRcdFx0LyoqXHJcblx0XHRcdCAqIOeCueWHu+ehruiupOaMiemSrlxyXG5cdFx0XHQgKi9cclxuXHRcdFx0b25PaygpIHtcclxuXHRcdFx0XHRpZiAodGhpcy5tb2RlID09PSAnaW5wdXQnKXtcclxuXHRcdFx0XHRcdHRoaXMuJGVtaXQoJ2NvbmZpcm0nLCB0aGlzLnZhbClcclxuXHRcdFx0XHR9ZWxzZXtcclxuXHRcdFx0XHRcdHRoaXMuJGVtaXQoJ2NvbmZpcm0nKVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRpZih0aGlzLmJlZm9yZUNsb3NlKSByZXR1cm5cclxuXHRcdFx0XHR0aGlzLnBvcHVwLmNsb3NlKClcclxuXHRcdFx0fSxcclxuXHRcdFx0LyoqXHJcblx0XHRcdCAqIOeCueWHu+WPlua2iOaMiemSrlxyXG5cdFx0XHQgKi9cclxuXHRcdFx0Y2xvc2VEaWFsb2coKSB7XHJcblx0XHRcdFx0dGhpcy4kZW1pdCgnY2xvc2UnKVxyXG5cdFx0XHRcdGlmKHRoaXMuYmVmb3JlQ2xvc2UpIHJldHVyblxyXG5cdFx0XHRcdHRoaXMucG9wdXAuY2xvc2UoKVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRjbG9zZSgpe1xyXG5cdFx0XHRcdHRoaXMucG9wdXAuY2xvc2UoKVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBsYW5nPVwic2Nzc1wiID5cclxuXHQudW5pLXBvcHVwLWRpYWxvZyB7XHJcblx0XHR3aWR0aDogMzAwcHg7XHJcblx0XHRib3JkZXItcmFkaXVzOiAxMXB4O1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuXHR9XHJcblxyXG5cdC51bmktZGlhbG9nLXRpdGxlIHtcclxuXHRcdC8qICNpZm5kZWYgQVBQLU5WVUUgKi9cclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHQvKiAjZW5kaWYgKi9cclxuXHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHRcdHBhZGRpbmctdG9wOiAyNXB4O1xyXG5cdH1cclxuXHJcblx0LnVuaS1kaWFsb2ctdGl0bGUtdGV4dCB7XHJcblx0XHRmb250LXNpemU6IDE2cHg7XHJcblx0XHRmb250LXdlaWdodDogNTAwO1xyXG5cdH1cclxuXHJcblx0LnVuaS1kaWFsb2ctY29udGVudCB7XHJcblx0XHQvKiAjaWZuZGVmIEFQUC1OVlVFICovXHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0LyogI2VuZGlmICovXHJcblx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xyXG5cdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdFx0cGFkZGluZzogMjBweDtcclxuXHR9XHJcblxyXG5cdC51bmktZGlhbG9nLWNvbnRlbnQtdGV4dCB7XHJcblx0XHRmb250LXNpemU6IDE0cHg7XHJcblx0XHRjb2xvcjogIzZDNkM2QztcclxuXHR9XHJcblxyXG5cdC51bmktZGlhbG9nLWJ1dHRvbi1ncm91cCB7XHJcblx0XHQvKiAjaWZuZGVmIEFQUC1OVlVFICovXHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0LyogI2VuZGlmICovXHJcblx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xyXG5cdFx0Ym9yZGVyLXRvcC1jb2xvcjogI2Y1ZjVmNTtcclxuXHRcdGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xyXG5cdFx0Ym9yZGVyLXRvcC13aWR0aDogMXB4O1xyXG5cdH1cclxuXHJcblx0LnVuaS1kaWFsb2ctYnV0dG9uIHtcclxuXHRcdC8qICNpZm5kZWYgQVBQLU5WVUUgKi9cclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHQvKiAjZW5kaWYgKi9cclxuXHJcblx0XHRmbGV4OiAxO1xyXG5cdFx0ZmxleC1kaXJlY3Rpb246IHJvdztcclxuXHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRcdGhlaWdodDogNDVweDtcclxuXHR9XHJcblxyXG5cdC51bmktYm9yZGVyLWxlZnQge1xyXG5cdFx0Ym9yZGVyLWxlZnQtY29sb3I6ICNmMGYwZjA7XHJcblx0XHRib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XHJcblx0XHRib3JkZXItbGVmdC13aWR0aDogMXB4O1xyXG5cdH1cclxuXHJcblx0LnVuaS1kaWFsb2ctYnV0dG9uLXRleHQge1xyXG5cdFx0Zm9udC1zaXplOiAxNnB4O1xyXG5cdFx0Y29sb3I6ICMzMzM7XHJcblx0fVxyXG5cclxuXHQudW5pLWJ1dHRvbi1jb2xvciB7XHJcblx0XHRjb2xvcjogIzAwN2FmZjtcclxuXHR9XHJcblxyXG5cdC51bmktZGlhbG9nLWlucHV0IHtcclxuXHRcdGZsZXg6IDE7XHJcblx0XHRmb250LXNpemU6IDE0cHg7XHJcblx0XHRib3JkZXI6IDFweCAjZWVlIHNvbGlkO1xyXG5cdFx0aGVpZ2h0OiA0MHB4O1xyXG5cdFx0cGFkZGluZzogMCAxMHB4O1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogNXB4O1xyXG5cdFx0Y29sb3I6ICM1NTU7XHJcblx0fVxyXG5cclxuXHQudW5pLXBvcHVwX19zdWNjZXNzIHtcclxuXHRcdGNvbG9yOiAjNGNkOTY0O1xyXG5cdH1cclxuXHJcblx0LnVuaS1wb3B1cF9fd2FybiB7XHJcblx0XHRjb2xvcjogI2YwYWQ0ZTtcclxuXHR9XHJcblxyXG5cdC51bmktcG9wdXBfX2Vycm9yIHtcclxuXHRcdGNvbG9yOiAjZGQ1MjRkO1xyXG5cdH1cclxuXHJcblx0LnVuaS1wb3B1cF9faW5mbyB7XHJcblx0XHRjb2xvcjogIzkwOTM5OTtcclxuXHR9XHJcbjwvc3R5bGU+XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///85\n");
+eval("Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0;\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar _popup = _interopRequireDefault(__webpack_require__(/*! ../uni-popup/popup.js */ 91));\nvar _uniI18n = __webpack_require__(/*! @dcloudio/uni-i18n */ 65);\n\n\nvar _index = _interopRequireDefault(__webpack_require__(/*! ../uni-popup/i18n/index.js */ 92));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _initVueI18n = (0, _uniI18n.initVueI18n)(_index.default),t = _initVueI18n.t; /**\n                                                                                  * PopUp 寮瑰嚭灞�-瀵硅瘽妗嗘牱寮廫n                                                                                  * @description 寮瑰嚭灞�-瀵硅瘽妗嗘牱寮廫n                                                                                  * @tutorial https://ext.dcloud.net.cn/plugin?id=329\n                                                                                  * @property {String} value input 妯″紡涓嬬殑榛樿鍊糪n                                                                                  * @property {String} placeholder input 妯″紡涓嬭緭鍏ユ彁绀篭n                                                                                  * @property {String} type = [success|warning|info|error] 涓婚鏍峰紡\n                                                                                  *  @value success 鎴愬姛\n                                                                                  * \t@value warning 鎻愮ず\n                                                                                  * \t@value info 娑堟伅\n                                                                                  * \t@value error 閿欒\n                                                                                  * @property {String} mode = [base|input] 妯″紡銆乗n                                                                                  * \t@value base 鍩虹瀵硅瘽妗哱n                                                                                  * \t@value input 鍙緭鍏ュ璇濇\n                                                                                  * @property {String} content 瀵硅瘽妗嗗唴瀹筡n                                                                                  * @property {Boolean} beforeClose 鏄惁鎷︽埅鍙栨秷浜嬩欢\n                                                                                  * @event {Function} confirm 鐐瑰嚮纭鎸夐挳瑙﹀彂\n                                                                                  * @event {Function} close 鐐瑰嚮鍙栨秷鎸夐挳瑙﹀彂\n                                                                                  */var _default = { name: \"uniPopupDialog\", mixins: [_popup.default], emits: ['confirm', 'close'], props: { value: { type: [String, Number], default: '' }, placeholder: { type: [String, Number], default: '' }, type: { type: String, default: 'error' }, mode: { type: String, default: 'base' }, title: { type: String, default: '' },\n\n    content: {\n      type: String,\n      default: '' },\n\n    beforeClose: {\n      type: Boolean,\n      default: false },\n\n    cancelText: {\n      type: String,\n      default: '' },\n\n    confirmText: {\n      type: String,\n      default: '' } },\n\n\n  data: function data() {\n    return {\n      dialogType: 'error',\n      focus: false,\n      val: \"\" };\n\n  },\n  computed: {\n    okText: function okText() {\n      return this.confirmText || t(\"uni-popup.ok\");\n    },\n    closeText: function closeText() {\n      return this.cancelText || t(\"uni-popup.cancel\");\n    },\n    placeholderText: function placeholderText() {\n      return this.placeholder || t(\"uni-popup.placeholder\");\n    },\n    titleText: function titleText() {\n      return this.title || t(\"uni-popup.title\");\n    } },\n\n  watch: {\n    type: function type(val) {\n      this.dialogType = val;\n    },\n    mode: function mode(val) {\n      if (val === 'input') {\n        this.dialogType = 'info';\n      }\n    },\n    value: function value(val) {\n      this.val = val;\n    } },\n\n  created: function created() {\n    // 瀵硅瘽妗嗛伄缃╀笉鍙偣鍑籠n    this.popup.disableMask();\n    // this.popup.closeMask()\n    if (this.mode === 'input') {\n      this.dialogType = 'info';\n      this.val = this.value;\n    } else {\n      this.dialogType = this.type;\n    }\n  },\n  mounted: function mounted() {\n    this.focus = true;\n  },\n  methods: {\n    /**\n              * 鐐瑰嚮纭鎸夐挳\n              */\n    onOk: function onOk() {\n      if (this.mode === 'input') {\n        this.$emit('confirm', this.val);\n      } else {\n        this.$emit('confirm');\n      }\n      if (this.beforeClose) return;\n      this.popup.close();\n    },\n    /**\n        * 鐐瑰嚮鍙栨秷鎸夐挳\n        */\n    closeDialog: function closeDialog() {\n      this.$emit('close');\n      if (this.beforeClose) return;\n      this.popup.close();\n    },\n    close: function close() {\n      this.popup.close();\n    } } };exports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdW5pLXBvcHVwL2NvbXBvbmVudHMvdW5pLXBvcHVwLWRpYWxvZy91bmktcG9wdXAtZGlhbG9nLnZ1ZSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBNEJBO0FBQ0E7OztBQUdBLCtGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7bUJBQ0EseUMsQ0FBQSxDLGdCQUFBLEMsRUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7O21HQW9CQSxFQUNBLHNCQURBLEVBRUEsd0JBRkEsRUFHQSwyQkFIQSxFQUlBLFNBQ0EsU0FDQSxzQkFEQSxFQUVBLFdBRkEsRUFEQSxFQUtBLGVBQ0Esc0JBREEsRUFFQSxXQUZBLEVBTEEsRUFTQSxRQUNBLFlBREEsRUFFQSxnQkFGQSxFQVRBLEVBYUEsUUFDQSxZQURBLEVBRUEsZUFGQSxFQWJBLEVBaUJBLFNBQ0EsWUFEQSxFQUVBLFdBRkEsRUFqQkE7O0FBcUJBO0FBQ0Esa0JBREE7QUFFQSxpQkFGQSxFQXJCQTs7QUF5QkE7QUFDQSxtQkFEQTtBQUVBLG9CQUZBLEVBekJBOztBQTZCQTtBQUNBLGtCQURBO0FBRUEsaUJBRkEsRUE3QkE7O0FBaUNBO0FBQ0Esa0JBREE7QUFFQSxpQkFGQSxFQWpDQSxFQUpBOzs7QUEwQ0EsTUExQ0Esa0JBMENBO0FBQ0E7QUFDQSx5QkFEQTtBQUVBLGtCQUZBO0FBR0EsYUFIQTs7QUFLQSxHQWhEQTtBQWlEQTtBQUNBLFVBREEsb0JBQ0E7QUFDQTtBQUNBLEtBSEE7QUFJQSxhQUpBLHVCQUlBO0FBQ0E7QUFDQSxLQU5BO0FBT0EsbUJBUEEsNkJBT0E7QUFDQTtBQUNBLEtBVEE7QUFVQSxhQVZBLHVCQVVBO0FBQ0E7QUFDQSxLQVpBLEVBakRBOztBQStEQTtBQUNBLFFBREEsZ0JBQ0EsR0FEQSxFQUNBO0FBQ0E7QUFDQSxLQUhBO0FBSUEsUUFKQSxnQkFJQSxHQUpBLEVBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQVJBO0FBU0EsU0FUQSxpQkFTQSxHQVRBLEVBU0E7QUFDQTtBQUNBLEtBWEEsRUEvREE7O0FBNEVBLFNBNUVBLHFCQTRFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBSEEsTUFHQTtBQUNBO0FBQ0E7QUFDQSxHQXRGQTtBQXVGQSxTQXZGQSxxQkF1RkE7QUFDQTtBQUNBLEdBekZBO0FBMEZBO0FBQ0E7OztBQUdBLFFBSkEsa0JBSUE7QUFDQTtBQUNBO0FBQ0EsT0FGQSxNQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQVpBO0FBYUE7OztBQUdBLGVBaEJBLHlCQWdCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBcEJBO0FBcUJBLFNBckJBLG1CQXFCQTtBQUNBO0FBQ0EsS0F2QkEsRUExRkEsRSIsImZpbGUiOiI5MC5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuXHQ8dmlldyBjbGFzcz1cInVuaS1wb3B1cC1kaWFsb2dcIj5cclxuXHRcdDx2aWV3IGNsYXNzPVwidW5pLWRpYWxvZy10aXRsZVwiPlxyXG5cdFx0XHQ8dGV4dCBjbGFzcz1cInVuaS1kaWFsb2ctdGl0bGUtdGV4dFwiIDpjbGFzcz1cIlsndW5pLXBvcHVwX18nK2RpYWxvZ1R5cGVdXCI+e3t0aXRsZVRleHR9fTwvdGV4dD5cclxuXHRcdDwvdmlldz5cclxuXHRcdDx2aWV3IHYtaWY9XCJtb2RlID09PSAnYmFzZSdcIiBjbGFzcz1cInVuaS1kaWFsb2ctY29udGVudFwiPlxyXG5cdFx0XHQ8c2xvdD5cclxuXHRcdFx0XHQ8dGV4dCBjbGFzcz1cInVuaS1kaWFsb2ctY29udGVudC10ZXh0XCI+e3tjb250ZW50fX08L3RleHQ+XHJcblx0XHRcdDwvc2xvdD5cclxuXHRcdDwvdmlldz5cclxuXHRcdDx2aWV3IHYtZWxzZSBjbGFzcz1cInVuaS1kaWFsb2ctY29udGVudFwiPlxyXG5cdFx0XHQ8c2xvdD5cclxuXHRcdFx0XHQ8aW5wdXQgY2xhc3M9XCJ1bmktZGlhbG9nLWlucHV0XCIgdi1tb2RlbD1cInZhbFwiIHR5cGU9XCJ0ZXh0XCIgOnBsYWNlaG9sZGVyPVwicGxhY2Vob2xkZXJUZXh0XCIgOmZvY3VzPVwiZm9jdXNcIiA+XHJcblx0XHRcdDwvc2xvdD5cclxuXHRcdDwvdmlldz5cclxuXHRcdDx2aWV3IGNsYXNzPVwidW5pLWRpYWxvZy1idXR0b24tZ3JvdXBcIj5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJ1bmktZGlhbG9nLWJ1dHRvblwiIEBjbGljaz1cImNsb3NlRGlhbG9nXCI+XHJcblx0XHRcdFx0PHRleHQgY2xhc3M9XCJ1bmktZGlhbG9nLWJ1dHRvbi10ZXh0XCI+e3tjbG9zZVRleHR9fTwvdGV4dD5cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cInVuaS1kaWFsb2ctYnV0dG9uIHVuaS1ib3JkZXItbGVmdFwiIEBjbGljaz1cIm9uT2tcIj5cclxuXHRcdFx0XHQ8dGV4dCBjbGFzcz1cInVuaS1kaWFsb2ctYnV0dG9uLXRleHQgdW5pLWJ1dHRvbi1jb2xvclwiPnt7b2tUZXh0fX08L3RleHQ+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdDwvdmlldz5cclxuXHJcblx0PC92aWV3PlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuXHRpbXBvcnQgcG9wdXAgZnJvbSAnLi4vdW5pLXBvcHVwL3BvcHVwLmpzJ1xyXG5cdGltcG9ydCB7XHJcblx0aW5pdFZ1ZUkxOG5cclxuXHR9IGZyb20gJ0BkY2xvdWRpby91bmktaTE4bidcclxuXHRpbXBvcnQgbWVzc2FnZXMgZnJvbSAnLi4vdW5pLXBvcHVwL2kxOG4vaW5kZXguanMnXHJcblx0Y29uc3Qge1x0dCB9ID0gaW5pdFZ1ZUkxOG4obWVzc2FnZXMpXHJcblx0LyoqXHJcblx0ICogUG9wVXAg5by55Ye65bGCLeWvueivneahhuagt+W8j1xyXG5cdCAqIEBkZXNjcmlwdGlvbiDlvLnlh7rlsYIt5a+56K+d5qGG5qC35byPXHJcblx0ICogQHR1dG9yaWFsIGh0dHBzOi8vZXh0LmRjbG91ZC5uZXQuY24vcGx1Z2luP2lkPTMyOVxyXG5cdCAqIEBwcm9wZXJ0eSB7U3RyaW5nfSB2YWx1ZSBpbnB1dCDmqKHlvI/kuIvnmoTpu5jorqTlgLxcclxuXHQgKiBAcHJvcGVydHkge1N0cmluZ30gcGxhY2Vob2xkZXIgaW5wdXQg5qih5byP5LiL6L6T5YWl5o+Q56S6XHJcblx0ICogQHByb3BlcnR5IHtTdHJpbmd9IHR5cGUgPSBbc3VjY2Vzc3x3YXJuaW5nfGluZm98ZXJyb3JdIOS4u+mimOagt+W8j1xyXG5cdCAqICBAdmFsdWUgc3VjY2VzcyDmiJDlip9cclxuXHQgKiBcdEB2YWx1ZSB3YXJuaW5nIOaPkOekulxyXG5cdCAqIFx0QHZhbHVlIGluZm8g5raI5oGvXHJcblx0ICogXHRAdmFsdWUgZXJyb3Ig6ZSZ6K+vXHJcblx0ICogQHByb3BlcnR5IHtTdHJpbmd9IG1vZGUgPSBbYmFzZXxpbnB1dF0g5qih5byP44CBXHJcblx0ICogXHRAdmFsdWUgYmFzZSDln7rnoYDlr7nor53moYZcclxuXHQgKiBcdEB2YWx1ZSBpbnB1dCDlj6/ovpPlhaXlr7nor53moYZcclxuXHQgKiBAcHJvcGVydHkge1N0cmluZ30gY29udGVudCDlr7nor53moYblhoXlrrlcclxuXHQgKiBAcHJvcGVydHkge0Jvb2xlYW59IGJlZm9yZUNsb3NlIOaYr+WQpuaLpuaIquWPlua2iOS6i+S7tlxyXG5cdCAqIEBldmVudCB7RnVuY3Rpb259IGNvbmZpcm0g54K55Ye756Gu6K6k5oyJ6ZKu6Kem5Y+RXHJcblx0ICogQGV2ZW50IHtGdW5jdGlvbn0gY2xvc2Ug54K55Ye75Y+W5raI5oyJ6ZKu6Kem5Y+RXHJcblx0ICovXHJcblxyXG5cdGV4cG9ydCBkZWZhdWx0IHtcclxuXHRcdG5hbWU6IFwidW5pUG9wdXBEaWFsb2dcIixcclxuXHRcdG1peGluczogW3BvcHVwXSxcclxuXHRcdGVtaXRzOlsnY29uZmlybScsJ2Nsb3NlJ10sXHJcblx0XHRwcm9wczoge1xyXG5cdFx0XHR2YWx1ZToge1xyXG5cdFx0XHRcdHR5cGU6IFtTdHJpbmcsIE51bWJlcl0sXHJcblx0XHRcdFx0ZGVmYXVsdDogJydcclxuXHRcdFx0fSxcclxuXHRcdFx0cGxhY2Vob2xkZXI6IHtcclxuXHRcdFx0XHR0eXBlOiBbU3RyaW5nLCBOdW1iZXJdLFxyXG5cdFx0XHRcdGRlZmF1bHQ6ICcnXHJcblx0XHRcdH0sXHJcblx0XHRcdHR5cGU6IHtcclxuXHRcdFx0XHR0eXBlOiBTdHJpbmcsXHJcblx0XHRcdFx0ZGVmYXVsdDogJ2Vycm9yJ1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRtb2RlOiB7XHJcblx0XHRcdFx0dHlwZTogU3RyaW5nLFxyXG5cdFx0XHRcdGRlZmF1bHQ6ICdiYXNlJ1xyXG5cdFx0XHR9LFxyXG5cdFx0XHR0aXRsZToge1xyXG5cdFx0XHRcdHR5cGU6IFN0cmluZyxcclxuXHRcdFx0XHRkZWZhdWx0OiAnJ1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRjb250ZW50OiB7XHJcblx0XHRcdFx0dHlwZTogU3RyaW5nLFxyXG5cdFx0XHRcdGRlZmF1bHQ6ICcnXHJcblx0XHRcdH0sXHJcblx0XHRcdGJlZm9yZUNsb3NlOiB7XHJcblx0XHRcdFx0dHlwZTogQm9vbGVhbixcclxuXHRcdFx0XHRkZWZhdWx0OiBmYWxzZVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRjYW5jZWxUZXh0OntcclxuXHRcdFx0XHR0eXBlOiBTdHJpbmcsXHJcblx0XHRcdFx0ZGVmYXVsdDogJydcclxuXHRcdFx0fSxcclxuXHRcdFx0Y29uZmlybVRleHQ6e1xyXG5cdFx0XHRcdHR5cGU6IFN0cmluZyxcclxuXHRcdFx0XHRkZWZhdWx0OiAnJ1xyXG5cdFx0XHR9XHJcblx0XHR9LFxyXG5cdFx0ZGF0YSgpIHtcclxuXHRcdFx0cmV0dXJuIHtcclxuXHRcdFx0XHRkaWFsb2dUeXBlOiAnZXJyb3InLFxyXG5cdFx0XHRcdGZvY3VzOiBmYWxzZSxcclxuXHRcdFx0XHR2YWw6IFwiXCJcclxuXHRcdFx0fVxyXG5cdFx0fSxcclxuXHRcdGNvbXB1dGVkOiB7XHJcblx0XHRcdG9rVGV4dCgpIHtcclxuXHRcdFx0XHRyZXR1cm4gdGhpcy5jb25maXJtVGV4dCB8fCB0KFwidW5pLXBvcHVwLm9rXCIpXHJcblx0XHRcdH0sXHJcblx0XHRcdGNsb3NlVGV4dCgpIHtcclxuXHRcdFx0XHRyZXR1cm4gdGhpcy5jYW5jZWxUZXh0IHx8IHQoXCJ1bmktcG9wdXAuY2FuY2VsXCIpXHJcblx0XHRcdH0sXHJcblx0XHRcdHBsYWNlaG9sZGVyVGV4dCgpIHtcclxuXHRcdFx0XHRyZXR1cm4gdGhpcy5wbGFjZWhvbGRlciB8fCB0KFwidW5pLXBvcHVwLnBsYWNlaG9sZGVyXCIpXHJcblx0XHRcdH0sXHJcblx0XHRcdHRpdGxlVGV4dCgpIHtcclxuXHRcdFx0XHRyZXR1cm4gdGhpcy50aXRsZSB8fCB0KFwidW5pLXBvcHVwLnRpdGxlXCIpXHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHR3YXRjaDoge1xyXG5cdFx0XHR0eXBlKHZhbCkge1xyXG5cdFx0XHRcdHRoaXMuZGlhbG9nVHlwZSA9IHZhbFxyXG5cdFx0XHR9LFxyXG5cdFx0XHRtb2RlKHZhbCkge1xyXG5cdFx0XHRcdGlmICh2YWwgPT09ICdpbnB1dCcpIHtcclxuXHRcdFx0XHRcdHRoaXMuZGlhbG9nVHlwZSA9ICdpbmZvJ1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0dmFsdWUodmFsKSB7XHJcblx0XHRcdFx0dGhpcy52YWwgPSB2YWxcclxuXHRcdFx0fVxyXG5cdFx0fSxcclxuXHRcdGNyZWF0ZWQoKSB7XHJcblx0XHRcdC8vIOWvueivneahhumBrue9qeS4jeWPr+eCueWHu1xyXG5cdFx0XHR0aGlzLnBvcHVwLmRpc2FibGVNYXNrKClcclxuXHRcdFx0Ly8gdGhpcy5wb3B1cC5jbG9zZU1hc2soKVxyXG5cdFx0XHRpZiAodGhpcy5tb2RlID09PSAnaW5wdXQnKSB7XHJcblx0XHRcdFx0dGhpcy5kaWFsb2dUeXBlID0gJ2luZm8nXHJcblx0XHRcdFx0dGhpcy52YWwgPSB0aGlzLnZhbHVlXHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0dGhpcy5kaWFsb2dUeXBlID0gdGhpcy50eXBlXHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHRtb3VudGVkKCkge1xyXG5cdFx0XHR0aGlzLmZvY3VzID0gdHJ1ZVxyXG5cdFx0fSxcclxuXHRcdG1ldGhvZHM6IHtcclxuXHRcdFx0LyoqXHJcblx0XHRcdCAqIOeCueWHu+ehruiupOaMiemSrlxyXG5cdFx0XHQgKi9cclxuXHRcdFx0b25PaygpIHtcclxuXHRcdFx0XHRpZiAodGhpcy5tb2RlID09PSAnaW5wdXQnKXtcclxuXHRcdFx0XHRcdHRoaXMuJGVtaXQoJ2NvbmZpcm0nLCB0aGlzLnZhbClcclxuXHRcdFx0XHR9ZWxzZXtcclxuXHRcdFx0XHRcdHRoaXMuJGVtaXQoJ2NvbmZpcm0nKVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRpZih0aGlzLmJlZm9yZUNsb3NlKSByZXR1cm5cclxuXHRcdFx0XHR0aGlzLnBvcHVwLmNsb3NlKClcclxuXHRcdFx0fSxcclxuXHRcdFx0LyoqXHJcblx0XHRcdCAqIOeCueWHu+WPlua2iOaMiemSrlxyXG5cdFx0XHQgKi9cclxuXHRcdFx0Y2xvc2VEaWFsb2coKSB7XHJcblx0XHRcdFx0dGhpcy4kZW1pdCgnY2xvc2UnKVxyXG5cdFx0XHRcdGlmKHRoaXMuYmVmb3JlQ2xvc2UpIHJldHVyblxyXG5cdFx0XHRcdHRoaXMucG9wdXAuY2xvc2UoKVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRjbG9zZSgpe1xyXG5cdFx0XHRcdHRoaXMucG9wdXAuY2xvc2UoKVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBsYW5nPVwic2Nzc1wiID5cclxuXHQudW5pLXBvcHVwLWRpYWxvZyB7XHJcblx0XHR3aWR0aDogMzAwcHg7XHJcblx0XHRib3JkZXItcmFkaXVzOiAxMXB4O1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuXHR9XHJcblxyXG5cdC51bmktZGlhbG9nLXRpdGxlIHtcclxuXHRcdC8qICNpZm5kZWYgQVBQLU5WVUUgKi9cclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHQvKiAjZW5kaWYgKi9cclxuXHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHRcdHBhZGRpbmctdG9wOiAyNXB4O1xyXG5cdH1cclxuXHJcblx0LnVuaS1kaWFsb2ctdGl0bGUtdGV4dCB7XHJcblx0XHRmb250LXNpemU6IDE2cHg7XHJcblx0XHRmb250LXdlaWdodDogNTAwO1xyXG5cdH1cclxuXHJcblx0LnVuaS1kaWFsb2ctY29udGVudCB7XHJcblx0XHQvKiAjaWZuZGVmIEFQUC1OVlVFICovXHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0LyogI2VuZGlmICovXHJcblx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xyXG5cdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdFx0cGFkZGluZzogMjBweDtcclxuXHR9XHJcblxyXG5cdC51bmktZGlhbG9nLWNvbnRlbnQtdGV4dCB7XHJcblx0XHRmb250LXNpemU6IDE0cHg7XHJcblx0XHRjb2xvcjogIzZDNkM2QztcclxuXHR9XHJcblxyXG5cdC51bmktZGlhbG9nLWJ1dHRvbi1ncm91cCB7XHJcblx0XHQvKiAjaWZuZGVmIEFQUC1OVlVFICovXHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0LyogI2VuZGlmICovXHJcblx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xyXG5cdFx0Ym9yZGVyLXRvcC1jb2xvcjogI2Y1ZjVmNTtcclxuXHRcdGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xyXG5cdFx0Ym9yZGVyLXRvcC13aWR0aDogMXB4O1xyXG5cdH1cclxuXHJcblx0LnVuaS1kaWFsb2ctYnV0dG9uIHtcclxuXHRcdC8qICNpZm5kZWYgQVBQLU5WVUUgKi9cclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHQvKiAjZW5kaWYgKi9cclxuXHJcblx0XHRmbGV4OiAxO1xyXG5cdFx0ZmxleC1kaXJlY3Rpb246IHJvdztcclxuXHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRcdGhlaWdodDogNDVweDtcclxuXHR9XHJcblxyXG5cdC51bmktYm9yZGVyLWxlZnQge1xyXG5cdFx0Ym9yZGVyLWxlZnQtY29sb3I6ICNmMGYwZjA7XHJcblx0XHRib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XHJcblx0XHRib3JkZXItbGVmdC13aWR0aDogMXB4O1xyXG5cdH1cclxuXHJcblx0LnVuaS1kaWFsb2ctYnV0dG9uLXRleHQge1xyXG5cdFx0Zm9udC1zaXplOiAxNnB4O1xyXG5cdFx0Y29sb3I6ICMzMzM7XHJcblx0fVxyXG5cclxuXHQudW5pLWJ1dHRvbi1jb2xvciB7XHJcblx0XHRjb2xvcjogIzAwN2FmZjtcclxuXHR9XHJcblxyXG5cdC51bmktZGlhbG9nLWlucHV0IHtcclxuXHRcdGZsZXg6IDE7XHJcblx0XHRmb250LXNpemU6IDE0cHg7XHJcblx0XHRib3JkZXI6IDFweCAjZWVlIHNvbGlkO1xyXG5cdFx0aGVpZ2h0OiA0MHB4O1xyXG5cdFx0cGFkZGluZzogMCAxMHB4O1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogNXB4O1xyXG5cdFx0Y29sb3I6ICM1NTU7XHJcblx0fVxyXG5cclxuXHQudW5pLXBvcHVwX19zdWNjZXNzIHtcclxuXHRcdGNvbG9yOiAjNGNkOTY0O1xyXG5cdH1cclxuXHJcblx0LnVuaS1wb3B1cF9fd2FybiB7XHJcblx0XHRjb2xvcjogI2YwYWQ0ZTtcclxuXHR9XHJcblxyXG5cdC51bmktcG9wdXBfX2Vycm9yIHtcclxuXHRcdGNvbG9yOiAjZGQ1MjRkO1xyXG5cdH1cclxuXHJcblx0LnVuaS1wb3B1cF9faW5mbyB7XHJcblx0XHRjb2xvcjogIzkwOTM5OTtcclxuXHR9XHJcbjwvc3R5bGU+XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///90\n");
 
 /***/ }),
-/* 86 */
+/* 91 */
 /*!***********************************************************************************************!*\
   !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/uni-popup/components/uni-popup/popup.js ***!
   \***********************************************************************************************/
@@ -5871,10 +6415,10 @@
 /***/ (function(module, exports, __webpack_require__) {
 
 "use strict";
-eval("Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0;var _default =\n{\n  data: function data() {\n    return {};\n\n\n  },\n  created: function created() {\n    this.popup = this.getParent();\n  },\n  methods: {\n    /**\r\n              * 鑾峰彇鐖跺厓绱犲疄渚媆r\n              */\n    getParent: function getParent() {var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'uniPopup';\n      var parent = this.$parent;\n      var parentName = parent.$options.name;\n      while (parentName !== name) {\n        parent = parent.$parent;\n        if (!parent) return false;\n        parentName = parent.$options.name;\n      }\n      return parent;\n    } } };exports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdW5pLXBvcHVwL2NvbXBvbmVudHMvdW5pLXBvcHVwL3BvcHVwLmpzIl0sIm5hbWVzIjpbImRhdGEiLCJjcmVhdGVkIiwicG9wdXAiLCJnZXRQYXJlbnQiLCJtZXRob2RzIiwibmFtZSIsInBhcmVudCIsIiRwYXJlbnQiLCJwYXJlbnROYW1lIiwiJG9wdGlvbnMiXSwibWFwcGluZ3MiOiI7QUFDZTtBQUNkQSxNQURjLGtCQUNQO0FBQ04sV0FBTyxFQUFQOzs7QUFHQSxHQUxhO0FBTWRDLFNBTmMscUJBTUw7QUFDUixTQUFLQyxLQUFMLEdBQWEsS0FBS0MsU0FBTCxFQUFiO0FBQ0EsR0FSYTtBQVNkQyxTQUFPLEVBQUM7QUFDUDs7O0FBR0FELGFBSk8sdUJBSXNCLEtBQW5CRSxJQUFtQix1RUFBWixVQUFZO0FBQzVCLFVBQUlDLE1BQU0sR0FBRyxLQUFLQyxPQUFsQjtBQUNBLFVBQUlDLFVBQVUsR0FBR0YsTUFBTSxDQUFDRyxRQUFQLENBQWdCSixJQUFqQztBQUNBLGFBQU9HLFVBQVUsS0FBS0gsSUFBdEIsRUFBNEI7QUFDM0JDLGNBQU0sR0FBR0EsTUFBTSxDQUFDQyxPQUFoQjtBQUNBLFlBQUksQ0FBQ0QsTUFBTCxFQUFhLE9BQU8sS0FBUDtBQUNiRSxrQkFBVSxHQUFHRixNQUFNLENBQUNHLFFBQVAsQ0FBZ0JKLElBQTdCO0FBQ0E7QUFDRCxhQUFPQyxNQUFQO0FBQ0EsS0FiTSxFQVRNLEUiLCJmaWxlIjoiODYuanMiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuZXhwb3J0IGRlZmF1bHQge1xyXG5cdGRhdGEoKSB7XHJcblx0XHRyZXR1cm4ge1xyXG5cdFx0XHRcclxuXHRcdH1cclxuXHR9LFxyXG5cdGNyZWF0ZWQoKXtcclxuXHRcdHRoaXMucG9wdXAgPSB0aGlzLmdldFBhcmVudCgpXHJcblx0fSxcclxuXHRtZXRob2RzOntcclxuXHRcdC8qKlxyXG5cdFx0ICog6I635Y+W54i25YWD57Sg5a6e5L6LXHJcblx0XHQgKi9cclxuXHRcdGdldFBhcmVudChuYW1lID0gJ3VuaVBvcHVwJykge1xyXG5cdFx0XHRsZXQgcGFyZW50ID0gdGhpcy4kcGFyZW50O1xyXG5cdFx0XHRsZXQgcGFyZW50TmFtZSA9IHBhcmVudC4kb3B0aW9ucy5uYW1lO1xyXG5cdFx0XHR3aGlsZSAocGFyZW50TmFtZSAhPT0gbmFtZSkge1xyXG5cdFx0XHRcdHBhcmVudCA9IHBhcmVudC4kcGFyZW50O1xyXG5cdFx0XHRcdGlmICghcGFyZW50KSByZXR1cm4gZmFsc2VcclxuXHRcdFx0XHRwYXJlbnROYW1lID0gcGFyZW50LiRvcHRpb25zLm5hbWU7XHJcblx0XHRcdH1cclxuXHRcdFx0cmV0dXJuIHBhcmVudDtcclxuXHRcdH0sXHJcblx0fVxyXG59XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///86\n");
+eval("Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0;var _default =\n{\n  data: function data() {\n    return {};\n\n\n  },\n  created: function created() {\n    this.popup = this.getParent();\n  },\n  methods: {\n    /**\r\n              * 鑾峰彇鐖跺厓绱犲疄渚媆r\n              */\n    getParent: function getParent() {var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'uniPopup';\n      var parent = this.$parent;\n      var parentName = parent.$options.name;\n      while (parentName !== name) {\n        parent = parent.$parent;\n        if (!parent) return false;\n        parentName = parent.$options.name;\n      }\n      return parent;\n    } } };exports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdW5pLXBvcHVwL2NvbXBvbmVudHMvdW5pLXBvcHVwL3BvcHVwLmpzIl0sIm5hbWVzIjpbImRhdGEiLCJjcmVhdGVkIiwicG9wdXAiLCJnZXRQYXJlbnQiLCJtZXRob2RzIiwibmFtZSIsInBhcmVudCIsIiRwYXJlbnQiLCJwYXJlbnROYW1lIiwiJG9wdGlvbnMiXSwibWFwcGluZ3MiOiI7QUFDZTtBQUNkQSxNQURjLGtCQUNQO0FBQ04sV0FBTyxFQUFQOzs7QUFHQSxHQUxhO0FBTWRDLFNBTmMscUJBTUw7QUFDUixTQUFLQyxLQUFMLEdBQWEsS0FBS0MsU0FBTCxFQUFiO0FBQ0EsR0FSYTtBQVNkQyxTQUFPLEVBQUM7QUFDUDs7O0FBR0FELGFBSk8sdUJBSXNCLEtBQW5CRSxJQUFtQix1RUFBWixVQUFZO0FBQzVCLFVBQUlDLE1BQU0sR0FBRyxLQUFLQyxPQUFsQjtBQUNBLFVBQUlDLFVBQVUsR0FBR0YsTUFBTSxDQUFDRyxRQUFQLENBQWdCSixJQUFqQztBQUNBLGFBQU9HLFVBQVUsS0FBS0gsSUFBdEIsRUFBNEI7QUFDM0JDLGNBQU0sR0FBR0EsTUFBTSxDQUFDQyxPQUFoQjtBQUNBLFlBQUksQ0FBQ0QsTUFBTCxFQUFhLE9BQU8sS0FBUDtBQUNiRSxrQkFBVSxHQUFHRixNQUFNLENBQUNHLFFBQVAsQ0FBZ0JKLElBQTdCO0FBQ0E7QUFDRCxhQUFPQyxNQUFQO0FBQ0EsS0FiTSxFQVRNLEUiLCJmaWxlIjoiOTEuanMiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuZXhwb3J0IGRlZmF1bHQge1xyXG5cdGRhdGEoKSB7XHJcblx0XHRyZXR1cm4ge1xyXG5cdFx0XHRcclxuXHRcdH1cclxuXHR9LFxyXG5cdGNyZWF0ZWQoKXtcclxuXHRcdHRoaXMucG9wdXAgPSB0aGlzLmdldFBhcmVudCgpXHJcblx0fSxcclxuXHRtZXRob2RzOntcclxuXHRcdC8qKlxyXG5cdFx0ICog6I635Y+W54i25YWD57Sg5a6e5L6LXHJcblx0XHQgKi9cclxuXHRcdGdldFBhcmVudChuYW1lID0gJ3VuaVBvcHVwJykge1xyXG5cdFx0XHRsZXQgcGFyZW50ID0gdGhpcy4kcGFyZW50O1xyXG5cdFx0XHRsZXQgcGFyZW50TmFtZSA9IHBhcmVudC4kb3B0aW9ucy5uYW1lO1xyXG5cdFx0XHR3aGlsZSAocGFyZW50TmFtZSAhPT0gbmFtZSkge1xyXG5cdFx0XHRcdHBhcmVudCA9IHBhcmVudC4kcGFyZW50O1xyXG5cdFx0XHRcdGlmICghcGFyZW50KSByZXR1cm4gZmFsc2VcclxuXHRcdFx0XHRwYXJlbnROYW1lID0gcGFyZW50LiRvcHRpb25zLm5hbWU7XHJcblx0XHRcdH1cclxuXHRcdFx0cmV0dXJuIHBhcmVudDtcclxuXHRcdH0sXHJcblx0fVxyXG59XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///91\n");
 
 /***/ }),
-/* 87 */
+/* 92 */
 /*!****************************************************************************************************!*\
   !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/uni-popup/components/uni-popup/i18n/index.js ***!
   \****************************************************************************************************/
@@ -5882,110 +6426,70 @@
 /***/ (function(module, exports, __webpack_require__) {
 
 "use strict";
-eval("Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0;var _en = _interopRequireDefault(__webpack_require__(/*! ./en.json */ 88));\nvar _zhHans = _interopRequireDefault(__webpack_require__(/*! ./zh-Hans.json */ 89));\nvar _zhHant = _interopRequireDefault(__webpack_require__(/*! ./zh-Hant.json */ 90));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}var _default =\n{\n  en: _en.default,\n  'zh-Hans': _zhHans.default,\n  'zh-Hant': _zhHant.default };exports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdW5pLXBvcHVwL2NvbXBvbmVudHMvdW5pLXBvcHVwL2kxOG4vaW5kZXguanMiXSwibmFtZXMiOlsiZW4iLCJ6aEhhbnMiLCJ6aEhhbnQiXSwibWFwcGluZ3MiOiJ1RkFBQTtBQUNBO0FBQ0Esb0Y7QUFDZTtBQUNkQSxJQUFFLEVBQUZBLFdBRGM7QUFFZCxhQUFXQyxlQUZHO0FBR2QsYUFBV0MsZUFIRyxFIiwiZmlsZSI6Ijg3LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGVuIGZyb20gJy4vZW4uanNvbidcclxuaW1wb3J0IHpoSGFucyBmcm9tICcuL3poLUhhbnMuanNvbidcclxuaW1wb3J0IHpoSGFudCBmcm9tICcuL3poLUhhbnQuanNvbidcclxuZXhwb3J0IGRlZmF1bHQge1xyXG5cdGVuLFxyXG5cdCd6aC1IYW5zJzogemhIYW5zLFxyXG5cdCd6aC1IYW50JzogemhIYW50XHJcbn1cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///87\n");
+eval("Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0;var _en = _interopRequireDefault(__webpack_require__(/*! ./en.json */ 93));\nvar _zhHans = _interopRequireDefault(__webpack_require__(/*! ./zh-Hans.json */ 94));\nvar _zhHant = _interopRequireDefault(__webpack_require__(/*! ./zh-Hant.json */ 95));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}var _default =\n{\n  en: _en.default,\n  'zh-Hans': _zhHans.default,\n  'zh-Hant': _zhHant.default };exports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdW5pLXBvcHVwL2NvbXBvbmVudHMvdW5pLXBvcHVwL2kxOG4vaW5kZXguanMiXSwibmFtZXMiOlsiZW4iLCJ6aEhhbnMiLCJ6aEhhbnQiXSwibWFwcGluZ3MiOiJ1RkFBQTtBQUNBO0FBQ0Esb0Y7QUFDZTtBQUNkQSxJQUFFLEVBQUZBLFdBRGM7QUFFZCxhQUFXQyxlQUZHO0FBR2QsYUFBV0MsZUFIRyxFIiwiZmlsZSI6IjkyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGVuIGZyb20gJy4vZW4uanNvbidcclxuaW1wb3J0IHpoSGFucyBmcm9tICcuL3poLUhhbnMuanNvbidcclxuaW1wb3J0IHpoSGFudCBmcm9tICcuL3poLUhhbnQuanNvbidcclxuZXhwb3J0IGRlZmF1bHQge1xyXG5cdGVuLFxyXG5cdCd6aC1IYW5zJzogemhIYW5zLFxyXG5cdCd6aC1IYW50JzogemhIYW50XHJcbn1cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///92\n");
 
 /***/ }),
-/* 88 */
+/* 93 */
 /*!***************************************************************************************************!*\
   !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/uni-popup/components/uni-popup/i18n/en.json ***!
   \***************************************************************************************************/
 /*! exports provided: uni-popup.cancel, uni-popup.ok, uni-popup.placeholder, uni-popup.title, uni-popup.shareTitle, default */
 /***/ (function(module) {
 
-eval("module.exports = JSON.parse(\"{\\\"uni-popup.cancel\\\":\\\"cancel\\\",\\\"uni-popup.ok\\\":\\\"ok\\\",\\\"uni-popup.placeholder\\\":\\\"pleace enter\\\",\\\"uni-popup.title\\\":\\\"Hint\\\",\\\"uni-popup.shareTitle\\\":\\\"Share to\\\"}\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiI4OC5qcyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///88\n");
+eval("module.exports = JSON.parse(\"{\\\"uni-popup.cancel\\\":\\\"cancel\\\",\\\"uni-popup.ok\\\":\\\"ok\\\",\\\"uni-popup.placeholder\\\":\\\"pleace enter\\\",\\\"uni-popup.title\\\":\\\"Hint\\\",\\\"uni-popup.shareTitle\\\":\\\"Share to\\\"}\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiI5My5qcyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///93\n");
 
 /***/ }),
-/* 89 */
+/* 94 */
 /*!********************************************************************************************************!*\
   !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hans.json ***!
   \********************************************************************************************************/
 /*! exports provided: uni-popup.cancel, uni-popup.ok, uni-popup.placeholder, uni-popup.title, uni-popup.shareTitle, default */
 /***/ (function(module) {
 
-eval("module.exports = JSON.parse(\"{\\\"uni-popup.cancel\\\":\\\"鍙栨秷\\\",\\\"uni-popup.ok\\\":\\\"纭畾\\\",\\\"uni-popup.placeholder\\\":\\\"璇疯緭鍏\\",\\\"uni-popup.title\\\":\\\"鎻愮ず\\\",\\\"uni-popup.shareTitle\\\":\\\"鍒嗕韩鍒癨\\"}\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiI4OS5qcyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///89\n");
+eval("module.exports = JSON.parse(\"{\\\"uni-popup.cancel\\\":\\\"鍙栨秷\\\",\\\"uni-popup.ok\\\":\\\"纭畾\\\",\\\"uni-popup.placeholder\\\":\\\"璇疯緭鍏\\",\\\"uni-popup.title\\\":\\\"鎻愮ず\\\",\\\"uni-popup.shareTitle\\\":\\\"鍒嗕韩鍒癨\\"}\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiI5NC5qcyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///94\n");
 
 /***/ }),
-/* 90 */
+/* 95 */
 /*!********************************************************************************************************!*\
   !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hant.json ***!
   \********************************************************************************************************/
 /*! exports provided: uni-popup.cancel, uni-popup.ok, uni-popup.placeholder, uni-popup.title, uni-popup.shareTitle, default */
 /***/ (function(module) {
 
-eval("module.exports = JSON.parse(\"{\\\"uni-popup.cancel\\\":\\\"鍙栨秷\\\",\\\"uni-popup.ok\\\":\\\"纰哄畾\\\",\\\"uni-popup.placeholder\\\":\\\"璜嬭几鍏\\",\\\"uni-popup.title\\\":\\\"鎻愮ず\\\",\\\"uni-popup.shareTitle\\\":\\\"鍒嗕韩鍒癨\\"}\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiI5MC5qcyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///90\n");
+eval("module.exports = JSON.parse(\"{\\\"uni-popup.cancel\\\":\\\"鍙栨秷\\\",\\\"uni-popup.ok\\\":\\\"纰哄畾\\\",\\\"uni-popup.placeholder\\\":\\\"璜嬭几鍏\\",\\\"uni-popup.title\\\":\\\"鎻愮ず\\\",\\\"uni-popup.shareTitle\\\":\\\"鍒嗕韩鍒癨\\"}\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiI5NS5qcyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///95\n");
 
 /***/ }),
-/* 91 */
-/*!*********************************************************!*\
-  !*** D:/Workspace/zy/private/Monitor-APP/static/a1.png ***!
-  \*********************************************************/
-/*! no static exports found */
-/***/ (function(module, exports) {
-
-eval("module.exports = \"/static/a1.png\";//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6IjkxLmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBcIi9zdGF0aWMvYTEucG5nXCI7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///91\n");
-
-/***/ }),
-/* 92 */
-/*!*********************************************************!*\
-  !*** D:/Workspace/zy/private/Monitor-APP/static/b1.png ***!
-  \*********************************************************/
-/*! no static exports found */
-/***/ (function(module, exports) {
-
-eval("module.exports = \"/static/b1.png\";//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6IjkyLmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBcIi9zdGF0aWMvYjEucG5nXCI7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///92\n");
-
-/***/ }),
-/* 93 */
-/*!*********************************************************!*\
-  !*** D:/Workspace/zy/private/Monitor-APP/static/c1.png ***!
-  \*********************************************************/
-/*! no static exports found */
-/***/ (function(module, exports) {
-
-eval("module.exports = \"/static/c1.png\";//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6IjkzLmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBcIi9zdGF0aWMvYzEucG5nXCI7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///93\n");
-
-/***/ }),
-/* 94 */
-/*!*********************************************************!*\
-  !*** D:/Workspace/zy/private/Monitor-APP/static/d1.png ***!
-  \*********************************************************/
-/*! no static exports found */
-/***/ (function(module, exports) {
-
-eval("module.exports = \"/static/d1.png\";//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6Ijk0LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBcIi9zdGF0aWMvZDEucG5nXCI7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///94\n");
-
-/***/ }),
-/* 95 */
+/* 96 */
 /*!*********************************************************!*\
   !*** D:/Workspace/zy/private/Monitor-APP/static/g1.png ***!
   \*********************************************************/
 /*! no static exports found */
 /***/ (function(module, exports) {
 
-eval("module.exports = \"/static/g1.png\";//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6Ijk1LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBcIi9zdGF0aWMvZzEucG5nXCI7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///95\n");
+eval("module.exports = \"/static/g1.png\";//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6Ijk2LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBcIi9zdGF0aWMvZzEucG5nXCI7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///96\n");
 
 /***/ }),
-/* 96 */
+/* 97 */
 /*!*********************************************************!*\
   !*** D:/Workspace/zy/private/Monitor-APP/static/f1.png ***!
   \*********************************************************/
 /*! no static exports found */
 /***/ (function(module, exports) {
 
-eval("module.exports = \"/static/f1.png\";//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6Ijk2LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBcIi9zdGF0aWMvZjEucG5nXCI7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///96\n");
+eval("module.exports = \"/static/f1.png\";//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6Ijk3LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBcIi9zdGF0aWMvZjEucG5nXCI7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///97\n");
 
 /***/ }),
-/* 97 */
+/* 98 */
 /*!*********************************************************!*\
   !*** D:/Workspace/zy/private/Monitor-APP/static/e1.png ***!
   \*********************************************************/
 /*! no static exports found */
 /***/ (function(module, exports) {
 
-eval("module.exports = \"/static/e1.png\";//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6Ijk3LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBcIi9zdGF0aWMvZTEucG5nXCI7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///97\n");
+eval("module.exports = \"/static/e1.png\";//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6Ijk4LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBcIi9zdGF0aWMvZTEucG5nXCI7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///98\n");
 
 /***/ }),
-/* 98 */
+/* 99 */
 /*!*****************************************************************************************************!*\
   !*** D:/Workspace/zy/private/Monitor-APP/pages/index/index.vue?vue&type=script&lang=js&mpType=page ***!
   \*****************************************************************************************************/
@@ -5993,10 +6497,10 @@
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 
 "use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./index.vue?vue&type=script&lang=js&mpType=page */ 99);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQTRyQixDQUFnQiw4ckJBQUcsRUFBQyIsImZpbGUiOiI5OC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNi0xIS4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2luZGV4LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZtcFR5cGU9cGFnZVwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTYtMSEuLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9pbmRleC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmbXBUeXBlPXBhZ2VcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///98\n");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./index.vue?vue&type=script&lang=js&mpType=page */ 100);\n/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQTRyQixDQUFnQiw4ckJBQUcsRUFBQyIsImZpbGUiOiI5OS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNi0xIS4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2luZGV4LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZtcFR5cGU9cGFnZVwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL0FQUC9IQnVpbGRlclguMy40LjE4LjIwMjIwNjMwL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vQVBQL0hCdWlsZGVyWC4zLjQuMTguMjAyMjA2MzAvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTYtMSEuLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi8uLi9BUFAvSEJ1aWxkZXJYLjMuNC4xOC4yMDIyMDYzMC9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9pbmRleC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmbXBUeXBlPXBhZ2VcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///99\n");
 
 /***/ }),
-/* 99 */
+/* 100 */
 /*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
   !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/Workspace/zy/private/Monitor-APP/pages/index/index.vue?vue&type=script&lang=js&mpType=page ***!
   \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
@@ -6004,27 +6508,17 @@
 /***/ (function(module, exports, __webpack_require__) {
 
 "use strict";
-eval("/* WEBPACK VAR INJECTION */(function(__f__) {Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0;\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar _data = _interopRequireDefault(__webpack_require__(/*! @/pages/index/data.json */ 100));\nvar _demodata = _interopRequireDefault(__webpack_require__(/*! @/mockdata/demodata.json */ 101));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default = { data: function data() {return { commonUrl: null, // 閫氱敤url\n      show: true, modeClass: 'fade', styles: {}, baseIP: '', baseLedId: '', basePort: '', crnId: '', value: '', xDistance: 0, yDistance: 0, xDuration: 0, yDuration: 0, used: 317, usedPr: 90, stockCount: 0, emptyCount: 0, noneCount: 0, chartsData: { \"Line\": { \"categories\": [], \"series\": [] }, \"Pie\": { \"series\": [{ \"data\": [] }] } }, chartsDataLine1: {}, chartsDataPie2: {}, ringOpts: {}, year: 2022, month: 4, day: 14, hours: 13, minutes: 38, seconds: 13, week: '鏄熸湡鍥�', ani: '', // move: 'upMove 1.5s 1;',\n      move: false, topMove: 'topUp', floorMove: '', version: '', // newspaper:'鎷f枡鍑哄簱锛�4426)\\n婧愬簱浣嶏細1200101\\n鐩爣绔欙細186\\n1101842-10000-22047518517\\n\\n',\t\n      newspaper: '', errorPaper: '', title: '', staNo: '', matnr: '', maknx: '', count: '', orderNo: null, doneOfTray: '', totalOfTray: '', doneOfUnit: '', totalOfUnit: '', errorMsg: null, width: 'full-width', errorShow: '', pakinShow: '', pakinGun: '', orderShow: false, swiper: 'swiper-here', autoplay: true, // 鑷姩寰幆\n      interval: 1000, // 璋冪敤鏃堕暱\n      duration: 8000, // 绉诲姩閫熷害\n      matList: [], // 璁㈠崟鍒楄〃\n      ejectShow: false };}, mounted: function mounted() {var that = this;var BaseIP = uni.getStorageSync('BaseIp');var BaseLedId = uni.getStorageSync('BaseLedId');var BasePort = uni.getStorageSync('BasePort');var BaseCrnId = uni.getStorageSync('BaseCrnId');that.baseIP = BaseIP;that.baseLedId = BaseLedId;that.basePort = BasePort;that.baseCrnId = BaseCrnId;this.getUrl();}, onReady: function onReady() {var _this = this;setInterval(function () {// 鑾峰緱鍒濆鏁版嵁\n      _this.initlineChart();_this.initPieChart(); // 涓婚〉淇℃伅\n      _this.getServerData();_this.getOther(); // 鍏朵粬淇℃伅\n      _this.getDate();_this.getPakin();_this.getError(); // this.getYYY();\n      // this.getEEE();\n      _this.animation();}, 1000);}, methods: { // 鑾峰彇url\n    getUrl: function getUrl() {this.commonUrl = this.baseHttp + this.baseIP + ':' + this.basePort + this.baseUrl;}, // 鑾峰彇閿欒淇℃伅\n    getYYY: function getYYY() {var that = this;var result = _data.default.dataEEE; // 娴嬭瘯鐢� 鈫揬n      var res = result.data; // 娴嬭瘯鐢� 鈫慭n      // 杩斿洖缁撴灉鏈夊�� 涓斿�间笉绛変簬绌哄�� 灏辨槸鏈夐敊璇俊鎭渶瑕佸睍绀篭n      if (res.data && res.data !== \"\") {that.errorMsg = res.data;that.errorShow = true;that.move = false; // 鏄剧ず\n      } else {that.errorPaper = '';that.errorShow = false;if (that.pakinShow) {return;} else {that.move = true; // 闅愯棌\n        }}}, getEEE: function getEEE() {var that = this;var newsData = '';var str = '';var result = _data.default.dataYYY; // 娴嬭瘯鐢� 鈫揬n      var res = result.data; // 娴嬭瘯鐢� 鈫慭n      if (res.data && res.data !== null) {if (res.data[0].ioType === 101) {that.title = '鍏ㄦ澘鍑哄簱';} else if (res.data[0].ioType === 103) {that.title = '妫�鏂欏嚭搴�';}that.staNo = '鐩爣绔�:' + res.data[0].staNo;that.matnr = '鍟嗗搧缂栧彿锛�' + res.data[0].matDtos[0].matnr;that.maknx = '鍟嗗搧鍚嶇О锛�' + res.data[0].matDtos[0].maknx;that.count = '鍑哄簱鏁伴噺锛�' + res.data[0].matDtos[0].count;if (res.data[0].orderNo) {that.orderNo = \"璁㈠崟鍙凤細\" + res.data[0].orderNo;that.orderShow = true;that.width = 'half-width';} else {that.orderNo = null;that.orderShow = false;that.width = 'full-width';}that.doneOfTray = '宸插嚭鎵樼洏鏁�:' + res.data[0].doneOfTray;that.totalOfTray = '鎵樼洏鎬绘暟閲忥細' + res.data[0].totalOfTray;that.doneOfUnit = '宸插嚭绠辨暟锛�' + res.data[0].doneOfUnit;that.totalOfUnit = '鎬荤鏁帮細' + res.data[0].totalOfUnit;if (that.errorShow) {return;} else {that.newspaper = newsData;that.move = false;}} else {that.move = true;}}, // 鑾峰彇閿欒淇℃伅\n    getError: function getError() {var that = this;var res;uni.request({ url: that.commonUrl + \"/monitor/led/error\", data: { ledId: that.baseLedId }, method: 'GET', success: function success(result) {res = result.data;if (res.data && res.data !== \"\") {that.errorMsg = res.data;that.errorShow = true;that.move = false; // 鏄剧ず\n          } else {that.errorShow = false; // if (that.pakinShow) {\n            // \treturn;\n            // } else {\n            // \t// that.move = true // 闅愯棌\n            // }\n          }} });}, getPakin: function getPakin() {var that = this;that.matList = []; // 娓呯┖鏉$爜鍒楄〃\n      var newsData = '';var str = '';var res;uni.request({ url: that.commonUrl + \"/monitor/led\", data: { ledId: that.baseLedId }, method: 'GET', success: function success(result) {res = result.data;if (that.errorShow) {return; // 鏈夐敊璇俊鎭痋n          }if (res.data && res.data !== null) {if (res.data[0].ioType === 101) {that.title = '鍏ㄦ澘鍑哄簱';} else if (res.data[0].ioType === 103) {that.title = '妫�鏂欏嚭搴�';} else that.title = res.data[0].title;that.staNo = '鐩爣绔�:' + res.data[0].staNo;that.matnr = '鍟嗗搧缂栧彿锛�' + res.data[0].matDtos[0].matnr;that.maknx = '鍟嗗搧鍚嶇О锛�' + res.data[0].matDtos[0].maknx;that.count = '鍑哄簱鏁伴噺锛�' + res.data[0].matDtos[0].count;if (res.data[0].orderNo) {that.orderNo = \"璁㈠崟鍙凤細\" + res.data[0].orderNo;that.orderShow = true;that.width = 'half-width';} else {that.orderNo = null;that.orderShow = false;that.width = 'full-width';}that.doneOfTray = '宸插嚭鎵樼洏鏁�:' + res.data[0].doneOfTray;that.totalOfTray = '鎵樼洏鎬绘暟閲忥細' + res.data[0].totalOfTray;that.doneOfUnit = '宸插嚭绠辨暟锛�' + res.data[0].doneOfUnit;that.totalOfUnit = '鎬荤鏁帮細' + res.data[0].totalOfUnit;that.newspaper = newsData;that.move = false;} else {that.move = true;}} });}, animation: function animation() {__f__(\"log\", this.move, \" at pages/index/index.vue:553\");if (this.move) {this.topMove = 'topUp';this.floorMove = 'floorUp';} else {this.topMove = 'topDown';this.floorMove = 'floorDown';}}, getDateFormat: function getDateFormat(value) {var date = new Date(); // 鑾峰彇褰撳墠鏃堕棿\n      date.setDate(date.getDate() + value); // 璁剧疆澶╂暟 -1 澶‐n      var m = date.getMonth() + 1;var d = date.getDate();var newDate = m + '-' + d;return newDate;}, /*************** 鎶樼嚎鍥� *****************************************************************************************************/initlineChart: function initlineChart() {var that = this;uni.request({ url: that.commonUrl + \"/monitor/line/charts\", method: 'GET', success: function success(result) {var res = result.data;if (res.code === 200) {that.chartsData.Line.categories = [that.getDateFormat(-11), that.getDateFormat(-10), that.getDateFormat(-9), that.getDateFormat(-8), that.getDateFormat(-7), that.getDateFormat(-6), that.getDateFormat(-5), that.getDateFormat(-4), that.getDateFormat(-3), that.getDateFormat(-2), that.getDateFormat(-1), that.getDateFormat(0)];that.chartsData.Line.series = res.data.rows;}} });}, /*************** 楗煎浘 *****************************************************************************************************/initPieChart: function initPieChart() {var that = this;uni.request({ url: that.commonUrl + \"/monitor/loc/rep\", method: 'GET', success: function success(result) {var res = result.data;if (res.code === 200) {that.chartsData.Pie.series[0].data = res.data.pie;that.stockCount = res.data.stockCunt;that.emptyCount = res.data.emptyCount;that.noneCount = res.data.noneCount;that.used = res.data.used;that.usedPr = res.data.usedPr;}} });}, getOther: function getOther() {var that = this;uni.request({ // http://10.10.0.222:9090/jkwcs/monitor/led?ledId=186\n        url: that.commonUrl + \"/monitor/other\", data: { crnId: that.baseCrnId, ledId: 1 }, success: function success(result) {__f__(\"log\", result, \" at pages/index/index.vue:617\");var res = result.data;if (res.code === 200) {that.xDistance = res.data.xDistance;that.yDistance = res.data.yDistance;that.xDuration = res.data.xDuration;that.yDuration = res.data.yDuration;} else if (res.code === 403) {} else {}} });\n    },\n    ejected: function ejected() {\n      this.ejectShow = true;\n    },\n    // 寮瑰嚭灞傜‘璁n    ejectConfirm: function ejectConfirm() {\n      uni.setStorageSync('BaseIp', this.baseIP);\n      uni.setStorageSync('BaseLedId', this.baseLedId);\n      uni.setStorageSync('BasePort', this.basePort);\n      uni.setStorageSync('BaseCrnId', this.baseCrnId);\n      this.getUrl();\n      this.ejectShow = false;\n    },\n    // 寮瑰嚭灞傚彇娑圽n    ejectClose: function ejectClose() {\n      this.ejectShow = false;\n    },\n    getServerData: function getServerData() {\n      this.chartsDataLine1 = JSON.parse(JSON.stringify(this.chartsData.Line));\n      this.chartsDataPie2 = JSON.parse(JSON.stringify(this.chartsData.Pie));\n    },\n    complete: function complete(e) {\n      __f__(\"log\", \"娓叉煋瀹屾垚浜嬩欢\", e, \" at pages/index/index.vue:653\");\n    },\n    getDate: function getDate() {\n      var dt = new Date();\n      this.year = dt.getFullYear();\n      this.month = dt.getMonth() + 1 < 10 ? '0' + (dt.getMonth() + 1) : dt.getMonth() + 1;\n      this.day = dt.getDate() < 10 ? '0' + dt.getDate() : dt.getDate();\n      this.hours = dt.getHours() < 10 ? '0' + dt.getHours() : dt.getHours();\n      this.minutes = dt.getMinutes() < 10 ? '0' + dt.getMinutes() : dt.getMinutes();\n      this.seconds = dt.getSeconds() < 10 ? '0' + dt.getSeconds() : dt.getSeconds();\n      this.weeks = dt.getDay();\n      switch (this.weeks) {\n        case 0:this.week = \"鏄熸湡鏃";break;\n        case 1:this.week = \"鏄熸湡涓�\";break;\n        case 2:this.week = \"鏄熸湡浜孿";break;\n        case 3:this.week = \"鏄熸湡涓塡";break;\n        case 4:this.week = \"鏄熸湡鍥沑";break;\n        case 5:this.week = \"鏄熸湡浜擻";break;\n        default:this.week = \"鏄熸湡鍏璡";}\n\n    } } };exports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 10)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaW5kZXgvaW5kZXgudnVlIl0sIm5hbWVzIjpbImRhdGEiLCJjb21tb25VcmwiLCJzaG93IiwibW9kZUNsYXNzIiwic3R5bGVzIiwiYmFzZUlQIiwiYmFzZUxlZElkIiwiYmFzZVBvcnQiLCJjcm5JZCIsInZhbHVlIiwieERpc3RhbmNlIiwieURpc3RhbmNlIiwieER1cmF0aW9uIiwieUR1cmF0aW9uIiwidXNlZCIsInVzZWRQciIsInN0b2NrQ291bnQiLCJlbXB0eUNvdW50Iiwibm9uZUNvdW50IiwiY2hhcnRzRGF0YSIsImNoYXJ0c0RhdGFMaW5lMSIsImNoYXJ0c0RhdGFQaWUyIiwicmluZ09wdHMiLCJ5ZWFyIiwibW9udGgiLCJkYXkiLCJob3VycyIsIm1pbnV0ZXMiLCJzZWNvbmRzIiwid2VlayIsImFuaSIsIm1vdmUiLCJ0b3BNb3ZlIiwiZmxvb3JNb3ZlIiwidmVyc2lvbiIsIm5ld3NwYXBlciIsImVycm9yUGFwZXIiLCJ0aXRsZSIsInN0YU5vIiwibWF0bnIiLCJtYWtueCIsImNvdW50Iiwib3JkZXJObyIsImRvbmVPZlRyYXkiLCJ0b3RhbE9mVHJheSIsImRvbmVPZlVuaXQiLCJ0b3RhbE9mVW5pdCIsImVycm9yTXNnIiwid2lkdGgiLCJlcnJvclNob3ciLCJwYWtpblNob3ciLCJwYWtpbkd1biIsIm9yZGVyU2hvdyIsInN3aXBlciIsImF1dG9wbGF5IiwiaW50ZXJ2YWwiLCJkdXJhdGlvbiIsIm1hdExpc3QiLCJlamVjdFNob3ciLCJtb3VudGVkIiwidGhhdCIsIkJhc2VJUCIsInVuaSIsImdldFN0b3JhZ2VTeW5jIiwiQmFzZUxlZElkIiwiQmFzZVBvcnQiLCJCYXNlQ3JuSWQiLCJiYXNlQ3JuSWQiLCJnZXRVcmwiLCJvblJlYWR5Iiwic2V0SW50ZXJ2YWwiLCJpbml0bGluZUNoYXJ0IiwiaW5pdFBpZUNoYXJ0IiwiZ2V0U2VydmVyRGF0YSIsImdldE90aGVyIiwiZ2V0RGF0ZSIsImdldFBha2luIiwiZ2V0RXJyb3IiLCJhbmltYXRpb24iLCJtZXRob2RzIiwiYmFzZUh0dHAiLCJiYXNlVXJsIiwiZ2V0WVlZIiwicmVzdWx0IiwieWNxZGF0YSIsImRhdGFFRUUiLCJyZXMiLCJnZXRFRUUiLCJuZXdzRGF0YSIsInN0ciIsImRhdGFZWVkiLCJpb1R5cGUiLCJtYXREdG9zIiwicmVxdWVzdCIsInVybCIsImxlZElkIiwibWV0aG9kIiwic3VjY2VzcyIsImdldERhdGVGb3JtYXQiLCJkYXRlIiwiRGF0ZSIsInNldERhdGUiLCJtIiwiZ2V0TW9udGgiLCJkIiwibmV3RGF0ZSIsImNvZGUiLCJMaW5lIiwiY2F0ZWdvcmllcyIsInNlcmllcyIsInJvd3MiLCJQaWUiLCJwaWUiLCJzdG9ja0N1bnQiLCJlamVjdGVkIiwiZWplY3RDb25maXJtIiwic2V0U3RvcmFnZVN5bmMiLCJlamVjdENsb3NlIiwiSlNPTiIsInBhcnNlIiwic3RyaW5naWZ5IiwiY29tcGxldGUiLCJlIiwiZHQiLCJnZXRGdWxsWWVhciIsImdldEhvdXJzIiwiZ2V0TWludXRlcyIsImdldFNlY29uZHMiLCJ3ZWVrcyIsImdldERheSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQTBTQztBQUNBLGlHLDhGQTNTRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFD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LENBQUNoRCxPQUFILEVBQXhCLEdBQXVDZ0QsRUFBRSxDQUFDaEQsT0FBSCxFQUFsRDtBQUNBLFdBQUtqRCxLQUFMLEdBQWFpRyxFQUFFLENBQUNFLFFBQUgsS0FBZ0IsRUFBaEIsR0FBcUIsTUFBTUYsRUFBRSxDQUFDRSxRQUFILEVBQTNCLEdBQTJDRixFQUFFLENBQUNFLFFBQUgsRUFBeEQ7QUFDQSxXQUFLbEcsT0FBTCxHQUFlZ0csRUFBRSxDQUFDRyxVQUFILEtBQWtCLEVBQWxCLEdBQXVCLE1BQU1ILEVBQUUsQ0FBQ0csVUFBSCxFQUE3QixHQUErQ0gsRUFBRSxDQUFDRyxVQUFILEVBQTlEO0FBQ0EsV0FBS2xHLE9BQUwsR0FBZStGLEVBQUUsQ0FBQ0ksVUFBSCxLQUFrQixFQUFsQixHQUF1QixNQUFNSixFQUFFLENBQUNJLFVBQUgsRUFBN0IsR0FBK0NKLEVBQUUsQ0FBQ0ksVUFBSCxFQUE5RDtBQUNBLFdBQUtDLEtBQUwsR0FBYUwsRUFBRSxDQUFDTSxNQUFILEVBQWI7QUFDQSxjQUFRLEtBQUtELEtBQWI7QUFDQyxhQUFLLENBQUwsQ0FBUSxLQUFLbkcsSUFBTCxHQUFZLEtBQVosQ0FBbUI7QUFDM0IsYUFBSyxDQUFMLENBQVEsS0FBS0EsSUFBTCxHQUFZLEtBQVosQ0FBbUI7QUFDM0IsYUFBSyxDQUFMLENBQVEsS0FBS0EsSUFBTCxHQUFZLEtBQVosQ0FBbUI7QUFDM0IsYUFBSyxDQUFMLENBQVEsS0FBS0EsSUFBTCxHQUFZLEtBQVosQ0FBbUI7QUFDM0IsYUFBSyxDQUFMLENBQVEsS0FBS0EsSUFBTCxHQUFZLEtBQVosQ0FBbUI7QUFDM0IsYUFBSyxDQUFMLENBQVEsS0FBS0EsSUFBTCxHQUFZLEtBQVosQ0FBbUI7QUFDM0IsZ0JBQVUsS0FBS0EsSUFBTCxHQUFZLEtBQVosQ0FQWDs7QUFTQSxLQTNRTyxFQXpHSyxFIiwiZmlsZSI6Ijk5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuXG5cdGltcG9ydCB5Y3FkYXRhIGZyb20gJ0AvcGFnZXMvaW5kZXgvZGF0YS5qc29uJztcblx0aW1wb3J0IGRlbW9kYXRhIGZyb20gJ0AvbW9ja2RhdGEvZGVtb2RhdGEuanNvbic7XG5cdGV4cG9ydCBkZWZhdWx0IHtcblx0XHRkYXRhKCkge1xuXHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0Y29tbW9uVXJsOm51bGwsIC8vIOmAmueUqHVybFxuXHRcdFx0XHRzaG93OiB0cnVlLFxuXHRcdFx0XHRtb2RlQ2xhc3M6ICdmYWRlJyxcblx0XHRcdFx0c3R5bGVzOiB7fSxcblx0XHRcdFx0YmFzZUlQOicnLFxuXHRcdFx0XHRiYXNlTGVkSWQ6JycsXG5cdFx0XHRcdGJhc2VQb3J0OicnLFxuXHRcdFx0XHRjcm5JZDonJyxcblx0XHRcdFx0dmFsdWU6ICcnLFxuXHRcdFx0XHR4RGlzdGFuY2U6IDAsXG5cdFx0XHRcdHlEaXN0YW5jZTowLFxuXHRcdFx0XHR4RHVyYXRpb246MCxcblx0XHRcdFx0eUR1cmF0aW9uOjAsXG5cdFx0XHRcdHVzZWQ6MzE3LFxuXHRcdFx0XHR1c2VkUHI6IDkwLFxuXHRcdFx0XHRzdG9ja0NvdW50OjAsXG5cdFx0XHRcdGVtcHR5Q291bnQ6MCxcblx0XHRcdFx0bm9uZUNvdW50OjAsXG5cdFx0XHRcdGNoYXJ0c0RhdGE6IHtcblx0XHRcdFx0XHRcIkxpbmVcIjoge1xuXHRcdFx0XHRcdFx0XCJjYXRlZ29yaWVzXCI6IFtdLFxuXHRcdFx0XHRcdFx0XCJzZXJpZXNcIjogW11cblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFwiUGllXCI6IHtcblx0XHRcdFx0XHRcdFwic2VyaWVzXCI6IFt7XG5cdFx0XHRcdFx0XHRcdFwiZGF0YVwiOiBbXVxuXHRcdFx0XHRcdFx0fV1cblx0XHRcdFx0XHR9LFxuXHRcdFx0XHR9LFxuXHRcdFx0XHRjaGFydHNEYXRhTGluZTE6IHt9LFxuXHRcdFx0XHRjaGFydHNEYXRhUGllMjoge30sXG5cdFx0XHRcdHJpbmdPcHRzOnt9LFxuXHRcdFx0XHR5ZWFyOjIwMjIsXG5cdFx0XHRcdG1vbnRoOjQsXG5cdFx0XHRcdGRheToxNCxcblx0XHRcdFx0aG91cnM6MTMsXG5cdFx0XHRcdG1pbnV0ZXM6MzgsXG5cdFx0XHRcdHNlY29uZHM6MTMsXG5cdFx0XHRcdHdlZWs6J+aYn+acn+WbmycsXG5cdFx0XHRcdGFuaTonJyxcblx0XHRcdFx0Ly8gbW92ZTogJ3VwTW92ZSAxLjVzIDE7Jyxcblx0XHRcdFx0bW92ZTpmYWxzZSxcblx0XHRcdFx0dG9wTW92ZTondG9wVXAnLFxuXHRcdFx0XHRmbG9vck1vdmU6JycsXG5cdFx0XHRcdHZlcnNpb246JycsXG5cdFx0XHRcdC8vIG5ld3NwYXBlcjon5ouj5paZ5Ye65bqT77yINDQyNilcXG7mupDlupPkvY3vvJoxMjAwMTAxXFxu55uu5qCH56uZ77yaMTg2XFxuMTEwMTg0Mi0xMDAwMC0yMjA0NzUxODUxN1xcblxcbicsXHRcblx0XHRcdFx0bmV3c3BhcGVyOicnLFxuXHRcdFx0XHRlcnJvclBhcGVyOicnLFxuXHRcdFx0XHR0aXRsZTonJyxcblx0XHRcdFx0c3RhTm86JycsXG5cdFx0XHRcdG1hdG5yOicnLFxuXHRcdFx0XHRtYWtueDonJyxcblx0XHRcdFx0Y291bnQ6JycsXG5cdFx0XHRcdG9yZGVyTm86bnVsbCxcblx0XHRcdFx0ZG9uZU9mVHJheTonJyxcblx0XHRcdFx0dG90YWxPZlRyYXk6JycsXG5cdFx0XHRcdGRvbmVPZlVuaXQ6JycsXG5cdFx0XHRcdHRvdGFsT2ZVbml0OicnLFxuXHRcdFx0XHRlcnJvck1zZzpudWxsLFxuXHRcdFx0XHR3aWR0aDonZnVsbC13aWR0aCcsXG5cdFx0XHRcdGVycm9yU2hvdzonJyxcblx0XHRcdFx0cGFraW5TaG93OicnLFxuXHRcdFx0XHRwYWtpbkd1bjonJyxcblx0XHRcdFx0b3JkZXJTaG93OmZhbHNlLFxuXHRcdFx0XHRzd2lwZXI6J3N3aXBlci1oZXJlJyxcblx0XHRcdFx0YXV0b3BsYXk6dHJ1ZSwgLy8g6Ieq5Yqo5b6q546vXG5cdFx0XHRcdGludGVydmFsOjEwMDAsIC8vIOiwg+eUqOaXtumVv1xuXHRcdFx0XHRkdXJhdGlvbjo4MDAwLCAvLyDnp7vliqjpgJ/luqZcblx0XHRcdFx0bWF0TGlzdDpbXSwgLy8g6K6i5Y2V5YiX6KGoXG5cdFx0XHRcdGVqZWN0U2hvdzogZmFsc2UsXG5cdFx0XHRcdFxuXHRcdFx0fVxuXHRcdH0sXG5cdFx0bW91bnRlZCgpIHtcblx0XHRcdGxldCB0aGF0ID0gdGhpc1xuXHRcdFx0Y29uc3QgQmFzZUlQID0gdW5pLmdldFN0b3JhZ2VTeW5jKCdCYXNlSXAnKTtcblx0XHRcdGNvbnN0IEJhc2VMZWRJZCA9IHVuaS5nZXRTdG9yYWdlU3luYygnQmFzZUxlZElkJyk7XG5cdFx0XHRjb25zdCBCYXNlUG9ydCA9IHVuaS5nZXRTdG9yYWdlU3luYygnQmFzZVBvcnQnKTtcblx0XHRcdGNvbnN0IEJhc2VDcm5JZCA9IHVuaS5nZXRTdG9yYWdlU3luYygnQmFzZUNybklkJyk7XG5cdFx0XHRcdHRoYXQuYmFzZUlQID0gQmFzZUlQXG5cdFx0XHRcdHRoYXQuYmFzZUxlZElkID0gQmFzZUxlZElkXG5cdFx0XHRcdHRoYXQuYmFzZVBvcnQgPSBCYXNlUG9ydFxuXHRcdFx0XHR0aGF0LmJhc2VDcm5JZCA9IEJhc2VDcm5JZFxuXHRcdFx0dGhpcy5nZXRVcmwoKVxuXHRcdH0sXG5cdFx0b25SZWFkeSgpIHtcblx0XHRcdHNldEludGVydmFsKCgpID0+IHtcblx0XHRcdFx0Ly8g6I635b6X5Yid5aeL5pWw5o2uXG5cdFx0XHRcdHRoaXMuaW5pdGxpbmVDaGFydCgpO1xuXHRcdFx0XHR0aGlzLmluaXRQaWVDaGFydCgpO1xuXHRcdFx0XHQvLyDkuLvpobXkv6Hmga9cblx0XHRcdFx0dGhpcy5nZXRTZXJ2ZXJEYXRhKCk7XG5cdFx0XHRcdHRoaXMuZ2V0T3RoZXIoKTtcblx0XHRcdFx0Ly8g5YW25LuW5L+h5oGvXG5cdFx0XHRcdHRoaXMuZ2V0RGF0ZSgpO1xuXHRcdFx0XHR0aGlzLmdldFBha2luKCk7XG5cdFx0XHRcdHRoaXMuZ2V0RXJyb3IoKTtcblx0XHRcdFx0Ly8gdGhpcy5nZXRZWVkoKTtcblx0XHRcdFx0Ly8gdGhpcy5nZXRFRUUoKTtcblx0XHRcdFx0dGhpcy5hbmltYXRpb24oKTtcblx0XHRcdH0sMTAwMClcblx0XHR9LFxuXHRcdG1ldGhvZHM6IHtcblx0XHRcdC8vIOiOt+WPlnVybFxuXHRcdFx0Z2V0VXJsKCkge1xuXHRcdFx0XHR0aGlzLmNvbW1vblVybCA9IHRoaXMuYmFzZUh0dHAgKyB0aGlzLmJhc2VJUCArICc6JyArdGhpcy5iYXNlUG9ydCArIHRoaXMuYmFzZVVybFxuXHRcdFx0fSxcblx0XHRcdC8vIOiOt+WPlumUmeivr+S/oeaBr1xuXHRcdFx0Z2V0WVlZKCkge1xuXHRcdFx0XHRsZXQgdGhhdCA9IHRoaXNcblx0XHRcdFx0dmFyIHJlc3VsdCA9IHljcWRhdGEuZGF0YUVFRVxuXHRcdFx0XHQvLyDmtYvor5XnlKgg4oaTXG5cdFx0XHRcdHZhclx0cmVzID0gcmVzdWx0LmRhdGFcblx0XHRcdFx0Ly8g5rWL6K+V55SoIOKGkVxuXHRcdFx0XHQvLyDov5Tlm57nu5PmnpzmnInlgLwg5LiU5YC85LiN562J5LqO56m65YC8IOWwseaYr+aciemUmeivr+S/oeaBr+mcgOimgeWxleekulxuXHRcdFx0XHRpZiAocmVzLmRhdGEgJiYgcmVzLmRhdGEgIT09IFwiXCIpIHtcblx0XHRcdFx0XHR0aGF0LmVycm9yTXNnID0gcmVzLmRhdGFcblx0XHRcdFx0XHR0aGF0LmVycm9yU2hvdyA9IHRydWVcblx0XHRcdFx0XHR0aGF0Lm1vdmUgPSBmYWxzZSAvLyDmmL7npLpcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHR0aGF0LmVycm9yUGFwZXIgPSAnJ1xuXHRcdFx0XHRcdHRoYXQuZXJyb3JTaG93ID0gZmFsc2Vcblx0XHRcdFx0XHRpZiAodGhhdC5wYWtpblNob3cpIHtcblx0XHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0dGhhdC5tb3ZlID0gdHJ1ZSAvLyDpmpDol49cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH0sXG5cdFx0XHRnZXRFRUUgKCkge1xuXHRcdFx0XHRsZXQgdGhhdCA9IHRoaXNcblx0XHRcdFx0dmFyIG5ld3NEYXRhID0gJydcblx0XHRcdFx0dmFyIHN0ciA9ICcnXG5cdFx0XHRcdGxldCByZXN1bHQgPSB5Y3FkYXRhLmRhdGFZWVlcblx0XHRcdFx0XHRcdC8vIOa1i+ivleeUqCDihpNcblx0XHRcdFx0bGV0XHRyZXMgPSByZXN1bHQuZGF0YVxuXHRcdFx0XHRcdFx0Ly8g5rWL6K+V55SoIOKGkVxuXHRcdFx0XHRcdGlmKHJlcy5kYXRhICYmIHJlcy5kYXRhICE9PSBudWxsKSB7XG5cdFx0XHRcdFx0XHRpZiAocmVzLmRhdGFbMF0uaW9UeXBlID09PSAxMDEpIHtcblx0XHRcdFx0XHRcdFx0dGhhdC50aXRsZSA9ICflhajmnb/lh7rlupMnXG5cdFx0XHRcdFx0XHR9IGVsc2UgaWYocmVzLmRhdGFbMF0uaW9UeXBlID09PSAxMDMpIHtcblx0XHRcdFx0XHRcdFx0dGhhdC50aXRsZSA9ICfmo4Dmlpnlh7rlupMnXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR0aGF0LnN0YU5vID0gJ+ebruagh+ermTonICsgcmVzLmRhdGFbMF0uc3RhTm9cblx0XHRcdFx0XHRcdHRoYXQubWF0bnIgPSAn5ZWG5ZOB57yW5Y+377yaJyArIHJlcy5kYXRhWzBdLm1hdER0b3NbMF0ubWF0bnJcblx0XHRcdFx0XHRcdHRoYXQubWFrbnggPSAn5ZWG5ZOB5ZCN56ew77yaJyArIHJlcy5kYXRhWzBdLm1hdER0b3NbMF0ubWFrbnhcblx0XHRcdFx0XHRcdHRoYXQuY291bnQgPSAn5Ye65bqT5pWw6YeP77yaJyArIHJlcy5kYXRhWzBdLm1hdER0b3NbMF0uY291bnRcblx0XHRcdFx0XHRcdGlmIChyZXMuZGF0YVswXS5vcmRlck5vKSB7XG5cdFx0XHRcdFx0XHRcdHRoYXQub3JkZXJObyA9IFwi6K6i5Y2V5Y+377yaXCIgKyByZXMuZGF0YVswXS5vcmRlck5vXG5cdFx0XHRcdFx0XHRcdHRoYXQub3JkZXJTaG93ID0gdHJ1ZVxuXHRcdFx0XHRcdFx0XHR0aGF0LndpZHRoID0gJ2hhbGYtd2lkdGgnXG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHR0aGF0Lm9yZGVyTm8gPSBudWxsO1xuXHRcdFx0XHRcdFx0XHR0aGF0Lm9yZGVyU2hvdyA9IGZhbHNlXG5cdFx0XHRcdFx0XHRcdHRoYXQud2lkdGggPSAnZnVsbC13aWR0aCdcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdHRoYXQuZG9uZU9mVHJheSA9ICflt7Llh7rmiZjnm5jmlbA6JyArIHJlcy5kYXRhWzBdLmRvbmVPZlRyYXlcblx0XHRcdFx0XHRcdHRoYXQudG90YWxPZlRyYXkgPSAn5omY55uY5oC75pWw6YeP77yaJyArIHJlcy5kYXRhWzBdLnRvdGFsT2ZUcmF5XG5cdFx0XHRcdFx0XHR0aGF0LmRvbmVPZlVuaXQgPSAn5bey5Ye6566x5pWw77yaJyArIHJlcy5kYXRhWzBdLmRvbmVPZlVuaXRcblx0XHRcdFx0XHRcdHRoYXQudG90YWxPZlVuaXQgPSAn5oC7566x5pWw77yaJyArIHJlcy5kYXRhWzBdLnRvdGFsT2ZVbml0XG5cdFx0XHRcdFx0XHRpZiAodGhhdC5lcnJvclNob3cpIHtcblx0XHRcdFx0XHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdFx0dGhhdC5uZXdzcGFwZXIgPSBuZXdzRGF0YVxuXHRcdFx0XHRcdFx0XHRcdFx0dGhhdC5tb3ZlID0gZmFsc2Vcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fWVsc2Uge1xuXHRcdFx0XHRcdFx0dGhhdC5tb3ZlID0gdHJ1ZVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcblx0XHRcdFx0XHRcblx0XHRcdH0sXG5cdFx0XHQvLyDojrflj5bplJnor6/kv6Hmga9cblx0XHRcdGdldEVycm9yKCkge1xuXHRcdFx0XHRsZXQgdGhhdCA9IHRoaXNcblx0XHRcdFx0dmFyIHJlc1xuXHRcdFx0XHR1bmkucmVxdWVzdCh7XG5cdFx0XHRcdFx0dXJsOiB0aGF0LmNvbW1vblVybCArIFwiL21vbml0b3IvbGVkL2Vycm9yXCIsXG5cdFx0XHRcdFx0ZGF0YToge1xuXHRcdFx0XHRcdFx0bGVkSWQ6dGhhdC5iYXNlTGVkSWRcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdG1ldGhvZDonR0VUJyxcblx0XHRcdFx0XHRzdWNjZXNzKHJlc3VsdCkge1xuXHRcdFx0XHRcdFx0cmVzID0gcmVzdWx0LmRhdGEgXG5cdFx0XHRcdFx0XHRpZiAocmVzLmRhdGEgJiYgcmVzLmRhdGEgIT09IFwiXCIpIHtcblx0XHRcdFx0XHRcdFx0dGhhdC5lcnJvck1zZyA9IHJlcy5kYXRhXG5cdFx0XHRcdFx0XHRcdHRoYXQuZXJyb3JTaG93ID0gdHJ1ZVxuXHRcdFx0XHRcdFx0XHR0aGF0Lm1vdmUgPSBmYWxzZSAvLyDmmL7npLpcblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdHRoYXQuZXJyb3JTaG93ID0gZmFsc2Vcblx0XHRcdFx0XHRcdFx0Ly8gaWYgKHRoYXQucGFraW5TaG93KSB7XG5cdFx0XHRcdFx0XHRcdC8vIFx0cmV0dXJuO1xuXHRcdFx0XHRcdFx0XHQvLyB9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHQvLyBcdC8vIHRoYXQubW92ZSA9IHRydWUgLy8g6ZqQ6JePXG5cdFx0XHRcdFx0XHRcdC8vIH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSxcblx0XHRcdGdldFBha2luICgpIHtcblx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzXG5cdFx0XHRcdHRoYXQubWF0TGlzdCA9IFtdIC8vIOa4heepuuadoeeggeWIl+ihqFxuXHRcdFx0XHR2YXIgbmV3c0RhdGEgPSAnJ1xuXHRcdFx0XHR2YXIgc3RyID0gJydcblx0XHRcdFx0bGV0IHJlcyBcblx0XHRcdFx0dW5pLnJlcXVlc3Qoe1xuXHRcdFx0XHRcdHVybDogdGhhdC5jb21tb25VcmwgKyBcIi9tb25pdG9yL2xlZFwiLFxuXHRcdFx0XHRcdGRhdGE6IHtcblx0XHRcdFx0XHRcdGxlZElkOnRoYXQuYmFzZUxlZElkXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRtZXRob2Q6J0dFVCcsXG5cdFx0XHRcdFx0c3VjY2VzcyhyZXN1bHQpIHtcblx0XHRcdFx0XHRcdHJlcyA9IHJlc3VsdC5kYXRhXG5cdFx0XHRcdFx0XHRpZiAodGhhdC5lcnJvclNob3cpIHtcblx0XHRcdFx0XHRcdFx0cmV0dXJuOyAgLy8g5pyJ6ZSZ6K+v5L+h5oGvXG5cdFx0XHRcdFx0XHR9IFxuXHRcdFx0XHRcdFx0aWYocmVzLmRhdGEgJiYgcmVzLmRhdGEgIT09IG51bGwpIHtcblx0XHRcdFx0XHRcdFx0aWYgKHJlcy5kYXRhWzBdLmlvVHlwZSA9PT0gMTAxKSB7XG5cdFx0XHRcdFx0XHRcdFx0dGhhdC50aXRsZSA9ICflhajmnb/lh7rlupMnXG5cdFx0XHRcdFx0XHRcdH0gZWxzZSBpZihyZXMuZGF0YVswXS5pb1R5cGUgPT09IDEwMykge1xuXHRcdFx0XHRcdFx0XHRcdHRoYXQudGl0bGUgPSAn5qOA5paZ5Ye65bqTJ1xuXHRcdFx0XHRcdFx0XHR9IGVsc2Vcblx0XHRcdFx0XHRcdFx0dGhhdC50aXRsZSA9IHJlcy5kYXRhWzBdLnRpdGxlXG5cdFx0XHRcdFx0XHRcdHRoYXQuc3RhTm8gPSAn55uu5qCH56uZOicgKyByZXMuZGF0YVswXS5zdGFOb1xuXHRcdFx0XHRcdFx0XHR0aGF0Lm1hdG5yID0gJ+WVhuWTgee8luWPt++8micgKyByZXMuZGF0YVswXS5tYXREdG9zWzBdLm1hdG5yXG5cdFx0XHRcdFx0XHRcdHRoYXQubWFrbnggPSAn5ZWG5ZOB5ZCN56ew77yaJyArIHJlcy5kYXRhWzBdLm1hdER0b3NbMF0ubWFrbnhcblx0XHRcdFx0XHRcdFx0dGhhdC5jb3VudCA9ICflh7rlupPmlbDph4/vvJonICsgcmVzLmRhdGFbMF0ubWF0RHRvc1swXS5jb3VudFxuXHRcdFx0XHRcdFx0XHRpZiAocmVzLmRhdGFbMF0ub3JkZXJObykge1xuXHRcdFx0XHRcdFx0XHRcdHRoYXQub3JkZXJObyA9IFwi6K6i5Y2V5Y+377yaXCIgKyByZXMuZGF0YVswXS5vcmRlck5vXG5cdFx0XHRcdFx0XHRcdFx0dGhhdC5vcmRlclNob3cgPSB0cnVlXG5cdFx0XHRcdFx0XHRcdFx0dGhhdC53aWR0aCA9ICdoYWxmLXdpZHRoJ1xuXHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdHRoYXQub3JkZXJObyA9IG51bGw7XG5cdFx0XHRcdFx0XHRcdFx0dGhhdC5vcmRlclNob3cgPSBmYWxzZVxuXHRcdFx0XHRcdFx0XHRcdHRoYXQud2lkdGggPSAnZnVsbC13aWR0aCdcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR0aGF0LmRvbmVPZlRyYXkgPSAn5bey5Ye65omY55uY5pWwOicgKyByZXMuZGF0YVswXS5kb25lT2ZUcmF5XG5cdFx0XHRcdFx0XHRcdHRoYXQudG90YWxPZlRyYXkgPSAn5omY55uY5oC75pWw6YeP77yaJyArIHJlcy5kYXRhWzBdLnRvdGFsT2ZUcmF5XG5cdFx0XHRcdFx0XHRcdHRoYXQuZG9uZU9mVW5pdCA9ICflt7Llh7rnrrHmlbDvvJonICsgcmVzLmRhdGFbMF0uZG9uZU9mVW5pdFxuXHRcdFx0XHRcdFx0XHR0aGF0LnRvdGFsT2ZVbml0ID0gJ+aAu+euseaVsO+8micgKyByZXMuZGF0YVswXS50b3RhbE9mVW5pdFxuXHRcdFx0XHRcdFx0XHR0aGF0Lm5ld3NwYXBlciA9IG5ld3NEYXRhXG5cdFx0XHRcdFx0XHRcdHRoYXQubW92ZSA9IGZhbHNlXG5cdFx0XHRcdFx0XHR9ZWxzZSB7XG5cdFx0XHRcdFx0XHRcdHRoYXQubW92ZSA9IHRydWVcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSxcblx0XHRcdGFuaW1hdGlvbigpIHtcblx0XHRcdFx0Y29uc29sZS5sb2codGhpcy5tb3ZlKTtcblx0XHRcdFx0aWYgKHRoaXMubW92ZSkgeyBcblx0XHRcdFx0XHR0aGlzLnRvcE1vdmUgPSAndG9wVXAnXG5cdFx0XHRcdFx0dGhpcy5mbG9vck1vdmUgPSAnZmxvb3JVcCdcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHR0aGlzLnRvcE1vdmUgPSAndG9wRG93bidcblx0XHRcdFx0XHR0aGlzLmZsb29yTW92ZSA9ICdmbG9vckRvd24nXG5cdFx0XHRcdH1cblx0XHRcdH0sXG5cdFx0XHRnZXREYXRlRm9ybWF0KHZhbHVlKSB7XG5cdFx0XHRcdHZhciBkYXRlID0gbmV3IERhdGUoKTsvLyDojrflj5blvZPliY3ml7bpl7Rcblx0XHRcdFx0ZGF0ZS5zZXREYXRlKGRhdGUuZ2V0RGF0ZSgpICsgdmFsdWUpOy8vIOiuvue9ruWkqeaVsCAtMSDlpKlcblx0XHRcdFx0dmFyIG0gPSBkYXRlLmdldE1vbnRoKCkgKyAxXG5cdFx0XHRcdHZhciBkID0gZGF0ZS5nZXREYXRlKClcblx0XHRcdFx0dmFyIG5ld0RhdGUgPSBtICsgJy0nICsgZFxuXHRcdFx0XHRyZXR1cm4gbmV3RGF0ZVxuXHRcdFx0fSxcbi8qKioqKioqKioqKioqKiog5oqY57q/5Zu+ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXHRcdFx0aW5pdGxpbmVDaGFydCgpIHtcblx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzXG5cdFx0XHRcdHVuaS5yZXF1ZXN0KHtcblx0XHRcdFx0XHR1cmw6IHRoYXQuY29tbW9uVXJsICsgXCIvbW9uaXRvci9saW5lL2NoYXJ0c1wiLFxuXHRcdFx0XHRcdG1ldGhvZDonR0VUJyxcblx0XHRcdFx0XHRzdWNjZXNzKHJlc3VsdCkge1xuXHRcdFx0XHRcdFx0dmFyIHJlcyA9IHJlc3VsdC5kYXRhXG5cdFx0XHRcdFx0XHRpZiAocmVzLmNvZGUgPT09IDIwMCkge1xuXHRcdFx0XHRcdFx0XHR0aGF0LmNoYXJ0c0RhdGEuTGluZS5jYXRlZ29yaWVzID0gW1xuXHRcdFx0XHRcdFx0XHRcdHRoYXQuZ2V0RGF0ZUZvcm1hdCgtMTEpLHRoYXQuZ2V0RGF0ZUZvcm1hdCgtMTApLHRoYXQuZ2V0RGF0ZUZvcm1hdCgtOSksdGhhdC5nZXREYXRlRm9ybWF0KC04KSxcblx0XHRcdFx0XHRcdFx0XHR0aGF0LmdldERhdGVGb3JtYXQoLTcpLHRoYXQuZ2V0RGF0ZUZvcm1hdCgtNiksdGhhdC5nZXREYXRlRm9ybWF0KC01KSx0aGF0LmdldERhdGVGb3JtYXQoLTQpLFxuXHRcdFx0XHRcdFx0XHRcdHRoYXQuZ2V0RGF0ZUZvcm1hdCgtMyksdGhhdC5nZXREYXRlRm9ybWF0KC0yKSx0aGF0LmdldERhdGVGb3JtYXQoLTEpLHRoYXQuZ2V0RGF0ZUZvcm1hdCgwKSxdXG5cdFx0XHRcdFx0XHRcdHRoYXQuY2hhcnRzRGF0YS5MaW5lLnNlcmllcyA9IHJlcy5kYXRhLnJvd3Ncblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pXG5cdFx0XHR9LFxuLyoqKioqKioqKioqKioqKiDppbzlm74gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cdFx0XHRpbml0UGllQ2hhcnQoKSB7XG5cdFx0XHRcdGxldCB0aGF0ID0gdGhpc1xuXHRcdFx0XHR1bmkucmVxdWVzdCh7XG5cdFx0XHRcdFx0dXJsOiB0aGF0LmNvbW1vblVybCArIFwiL21vbml0b3IvbG9jL3JlcFwiLFxuXHRcdFx0XHRcdG1ldGhvZDonR0VUJyxcblx0XHRcdFx0XHRzdWNjZXNzKHJlc3VsdCkge1xuXHRcdFx0XHRcdFx0dmFyIHJlcyA9IHJlc3VsdC5kYXRhXG5cdFx0XHRcdFx0XHRpZiAocmVzLmNvZGUgPT09IDIwMCkge1xuXHRcdFx0XHRcdFx0XHR0aGF0LmNoYXJ0c0RhdGEuUGllLnNlcmllc1swXS5kYXRhID0gcmVzLmRhdGEucGllXG5cdFx0XHRcdFx0XHRcdHRoYXQuc3RvY2tDb3VudCA9IHJlcy5kYXRhLnN0b2NrQ3VudFxuXHRcdFx0XHRcdFx0XHR0aGF0LmVtcHR5Q291bnQgPSByZXMuZGF0YS5lbXB0eUNvdW50XG5cdFx0XHRcdFx0XHRcdHRoYXQubm9uZUNvdW50ID0gcmVzLmRhdGEubm9uZUNvdW50XG5cdFx0XHRcdFx0XHRcdHRoYXQudXNlZCA9IHJlcy5kYXRhLnVzZWRcblx0XHRcdFx0XHRcdFx0dGhhdC51c2VkUHIgPSByZXMuZGF0YS51c2VkUHJcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pXG5cdFx0XHR9LFxuXHRcdFx0Z2V0T3RoZXIoKSB7XG5cdFx0XHRcdGxldCB0aGF0ID0gdGhpc1xuXHRcdFx0XHR1bmkucmVxdWVzdCh7XG5cdFx0XHRcdFx0Ly8gaHR0cDovLzEwLjEwLjAuMjIyOjkwOTAvamt3Y3MvbW9uaXRvci9sZWQ/bGVkSWQ9MTg2XG5cdFx0XHRcdFx0dXJsOiB0aGF0LmNvbW1vblVybCArIFwiL21vbml0b3Ivb3RoZXJcIixcblx0XHRcdFx0XHRkYXRhOiB7XG5cdFx0XHRcdFx0XHRjcm5JZDogdGhhdC5iYXNlQ3JuSWQsIFxuXHRcdFx0XHRcdFx0bGVkSWQ6IDEsXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRzdWNjZXNzKHJlc3VsdCkge1xuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2cocmVzdWx0KTtcblx0XHRcdFx0XHRcdHZhciByZXMgPSByZXN1bHQuZGF0YVxuXHRcdFx0XHRcdFx0aWYgKHJlcy5jb2RlID09PSAyMDApIHtcblx0XHRcdFx0XHRcdFx0dGhhdC54RGlzdGFuY2UgPSByZXMuZGF0YS54RGlzdGFuY2Vcblx0XHRcdFx0XHRcdFx0dGhhdC55RGlzdGFuY2UgPSByZXMuZGF0YS55RGlzdGFuY2Vcblx0XHRcdFx0XHRcdFx0dGhhdC54RHVyYXRpb24gPSByZXMuZGF0YS54RHVyYXRpb25cblx0XHRcdFx0XHRcdFx0dGhhdC55RHVyYXRpb24gPSByZXMuZGF0YS55RHVyYXRpb25cblx0XHRcdFx0XHRcdH0gZWxzZSBpZiAocmVzLmNvZGUgPT09IDQwMykge1xuXHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSlcblx0XHRcdH0sXG5cdFx0XHRlamVjdGVkICgpIHtcblx0XHRcdFx0dGhpcy5lamVjdFNob3cgPSB0cnVlXG5cdFx0XHR9LFxuXHRcdFx0Ly8g5by55Ye65bGC56Gu6K6kXG5cdFx0XHRlamVjdENvbmZpcm0oKSB7XG5cdFx0XHRcdHVuaS5zZXRTdG9yYWdlU3luYygnQmFzZUlwJywgdGhpcy5iYXNlSVApO1xuXHRcdFx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ0Jhc2VMZWRJZCcsIHRoaXMuYmFzZUxlZElkKTtcblx0XHRcdFx0dW5pLnNldFN0b3JhZ2VTeW5jKCdCYXNlUG9ydCcsdGhpcy5iYXNlUG9ydCk7XG5cdFx0XHRcdHVuaS5zZXRTdG9yYWdlU3luYygnQmFzZUNybklkJyx0aGlzLmJhc2VDcm5JZCk7XG5cdFx0XHRcdHRoaXMuZ2V0VXJsKClcblx0XHRcdFx0dGhpcy5lamVjdFNob3cgPSBmYWxzZVxuXHRcdFx0fSxcblx0XHRcdC8vIOW8ueWHuuWxguWPlua2iFxuXHRcdFx0ZWplY3RDbG9zZSgpIHtcblx0XHRcdFx0dGhpcy5lamVjdFNob3cgPSBmYWxzZVxuXHRcdFx0fSxcblx0XHRcdGdldFNlcnZlckRhdGEoKSB7XG5cdFx0XHRcdHRoaXMuY2hhcnRzRGF0YUxpbmUxPUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5jaGFydHNEYXRhLkxpbmUpKVxuXHRcdFx0XHR0aGlzLmNoYXJ0c0RhdGFQaWUyPUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5jaGFydHNEYXRhLlBpZSkpXG5cdFx0XHR9LFxuXHRcdFx0Y29tcGxldGUoZSkge1xuXHRcdFx0XHRjb25zb2xlLmxvZyhcIua4suafk+WujOaIkOS6i+S7tlwiLGUpO1xuXHRcdFx0fSxcblx0XHRcdGdldERhdGUoKSB7XG5cdFx0XHRcdHZhciBkdCA9IG5ldyBEYXRlKCk7XG5cdFx0XHRcdHRoaXMueWVhciA9IGR0LmdldEZ1bGxZZWFyKCk7XG5cdFx0XHRcdHRoaXMubW9udGggPSAoZHQuZ2V0TW9udGgoKSsxKSA8IDEwID8gJzAnKyAoZHQuZ2V0TW9udGgoKSsxKSA6IChkdC5nZXRNb250aCgpKzEpO1xuXHRcdFx0XHR0aGlzLmRheSA9IGR0LmdldERhdGUoKSA8IDEwID8gJzAnK2R0LmdldERhdGUoKSA6IGR0LmdldERhdGUoKTtcblx0XHRcdFx0dGhpcy5ob3VycyA9IGR0LmdldEhvdXJzKCkgPCAxMCA/ICcwJyArIGR0LmdldEhvdXJzKCkgOiBkdC5nZXRIb3VycygpO1xuXHRcdFx0XHR0aGlzLm1pbnV0ZXMgPSBkdC5nZXRNaW51dGVzKCkgPCAxMCA/ICcwJyArIGR0LmdldE1pbnV0ZXMoKSA6IGR0LmdldE1pbnV0ZXMoKTtcblx0XHRcdFx0dGhpcy5zZWNvbmRzID0gZHQuZ2V0U2Vjb25kcygpIDwgMTAgPyAnMCcgKyBkdC5nZXRTZWNvbmRzKCkgOiBkdC5nZXRTZWNvbmRzKCk7IFxuXHRcdFx0XHR0aGlzLndlZWtzID0gZHQuZ2V0RGF5KCk7IFxuXHRcdFx0XHRzd2l0Y2ggKHRoaXMud2Vla3MpIHtcblx0XHRcdFx0XHRjYXNlIDA6IHRoaXMud2VlayA9IFwi5pif5pyf5pelXCI7IGJyZWFrO1xuXHRcdFx0XHRcdGNhc2UgMTogdGhpcy53ZWVrID0gXCLmmJ/mnJ/kuIBcIjsgYnJlYWs7XG5cdFx0XHRcdFx0Y2FzZSAyOiB0aGlzLndlZWsgPSBcIuaYn+acn+S6jFwiOyBicmVhaztcblx0XHRcdFx0XHRjYXNlIDM6IHRoaXMud2VlayA9IFwi5pif5pyf5LiJXCI7IGJyZWFrO1xuXHRcdFx0XHRcdGNhc2UgNDogdGhpcy53ZWVrID0gXCLmmJ/mnJ/lm5tcIjsgYnJlYWs7XG5cdFx0XHRcdFx0Y2FzZSA1OiB0aGlzLndlZWsgPSBcIuaYn+acn+S6lFwiOyBicmVhaztcblx0XHRcdFx0XHRkZWZhdWx0IDogdGhpcy53ZWVrID0gXCLmmJ/mnJ/lha1cIjtcblx0XHRcdFx0fVxuXHRcdFx0fSxcblx0XHR9XG5cdH1cbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///99\n");
+eval("/* WEBPACK VAR INJECTION */(function(__f__) {Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0;\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar _data = _interopRequireDefault(__webpack_require__(/*! @/pages/index/data.json */ 101));\nvar _demodata = _interopRequireDefault(__webpack_require__(/*! @/mockdata/demodata.json */ 77));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default = { data: function data() {return { commonUrl: null, // 閫氱敤url\n      show: true, modeClass: 'fade', styles: {}, baseIP: '', baseLedId: '', basePort: '', crnId: '', value: '', xDistance: 0, yDistance: 0, xDuration: 0, yDuration: 0, used: 317, usedPr: 90, stockCount: 0, emptyCount: 0, noneCount: 0, chartsData: { \"Line\": { \"categories\": [], \"series\": [] }, \"Pie\": { \"series\": [{ \"data\": [] }] } }, chartsDataLine1: {}, chartsDataPie2: {}, ringOpts: {}, year: 2022, month: 4, day: 14, hours: 13, minutes: 38, seconds: 13, week: '鏄熸湡鍥�', ani: '', // move: 'upMove 1.5s 1;',\n      move: false, topMove: 'topUp', floorMove: '', version: '', // newspaper:'鎷f枡鍑哄簱锛�4426)\\n婧愬簱浣嶏細1200101\\n鐩爣绔欙細186\\n1101842-10000-22047518517\\n\\n',\t\n      newspaper: '', errorPaper: '', title: '', staNo: '', matnr: '', maknx: '', count: '', orderNo: null, doneOfTray: '', totalOfTray: '', doneOfUnit: '', totalOfUnit: '', errorMsg: null, width: 'full-width', errorShow: '', pakinShow: '', pakinGun: '', orderShow: false, swiper: 'swiper-here', autoplay: true, // 鑷姩寰幆\n      interval: 1000, // 璋冪敤鏃堕暱\n      duration: 8000, // 绉诲姩閫熷害\n      matList: [], // 璁㈠崟鍒楄〃\n      ejectShow: false };}, mounted: function mounted() {var that = this;var BaseIP = uni.getStorageSync('BaseIp');var BaseLedId = uni.getStorageSync('BaseLedId');var BasePort = uni.getStorageSync('BasePort');var BaseCrnId = uni.getStorageSync('BaseCrnId');that.baseIP = BaseIP;that.baseLedId = BaseLedId;that.basePort = BasePort;that.baseCrnId = BaseCrnId;this.getUrl();}, onReady: function onReady() {var _this = this;setInterval(function () {// 鑾峰緱鍒濆鏁版嵁\n      _this.initlineChart();_this.initPieChart(); // 涓婚〉淇℃伅\n      _this.getServerData();_this.getOther(); // 鍏朵粬淇℃伅\n      _this.getDate();_this.getPakin();_this.getError(); // this.getYYY();\n      // this.getEEE();\n      _this.animation();}, 1000);}, methods: { // 鑾峰彇url\n    getUrl: function getUrl() {this.commonUrl = this.baseHttp + this.baseIP + ':' + this.basePort + this.baseUrl;}, // 鑾峰彇閿欒淇℃伅\n    getYYY: function getYYY() {var that = this;var result = _data.default.dataEEE; // 娴嬭瘯鐢� 鈫揬n      var res = result.data; // 娴嬭瘯鐢� 鈫慭n      // 杩斿洖缁撴灉鏈夊�� 涓斿�间笉绛変簬绌哄�� 灏辨槸鏈夐敊璇俊鎭渶瑕佸睍绀篭n      if (res.data && res.data !== \"\") {that.errorMsg = res.data;that.errorShow = true;that.move = false; // 鏄剧ず\n      } else {that.errorPaper = '';that.errorShow = false;if (that.pakinShow) {return;} else {that.move = true; // 闅愯棌\n        }}}, getEEE: function getEEE() {var that = this;var newsData = '';var str = '';var result = _data.default.dataYYY; // 娴嬭瘯鐢� 鈫揬n      var res = result.data; // 娴嬭瘯鐢� 鈫慭n      if (res.data && res.data !== null) {if (res.data[0].ioType === 101) {that.title = '鍏ㄦ澘鍑哄簱';} else if (res.data[0].ioType === 103) {that.title = '妫�鏂欏嚭搴�';}that.staNo = '鐩爣绔�:' + res.data[0].staNo;that.matnr = '鍟嗗搧缂栧彿锛�' + res.data[0].matDtos[0].matnr;that.maknx = '鍟嗗搧鍚嶇О锛�' + res.data[0].matDtos[0].maknx;that.count = '鍑哄簱鏁伴噺锛�' + res.data[0].matDtos[0].count;if (res.data[0].orderNo) {that.orderNo = \"璁㈠崟鍙凤細\" + res.data[0].orderNo;that.orderShow = true;that.width = 'half-width';} else {that.orderNo = null;that.orderShow = false;that.width = 'full-width';}that.doneOfTray = '宸插嚭鎵樼洏鏁�:' + res.data[0].doneOfTray;that.totalOfTray = '鎵樼洏鎬绘暟閲忥細' + res.data[0].totalOfTray;that.doneOfUnit = '宸插嚭绠辨暟锛�' + res.data[0].doneOfUnit;that.totalOfUnit = '鎬荤鏁帮細' + res.data[0].totalOfUnit;if (that.errorShow) {return;} else {that.newspaper = newsData;that.move = false;}} else {that.move = true;}}, // 鑾峰彇閿欒淇℃伅\n    getError: function getError() {var that = this;var res;uni.request({ url: that.commonUrl + \"/monitor/led/error\", data: { ledId: that.baseLedId }, method: 'GET', success: function success(result) {res = result.data;if (res.data && res.data !== \"\") {that.errorMsg = res.data;that.errorShow = true;that.move = false; // 鏄剧ず\n          } else {that.errorShow = false; // if (that.pakinShow) {\n            // \treturn;\n            // } else {\n            // \t// that.move = true // 闅愯棌\n            // }\n          }} });}, getPakin: function getPakin() {var that = this;that.matList = []; // 娓呯┖鏉$爜鍒楄〃\n      var newsData = '';var str = '';var res;uni.request({ url: that.commonUrl + \"/monitor/led\", data: { ledId: that.baseLedId }, method: 'GET', success: function success(result) {res = result.data;if (that.errorShow) {return; // 鏈夐敊璇俊鎭痋n          }if (res.data && res.data !== null) {if (res.data[0].ioType === 101) {that.title = '鍏ㄦ澘鍑哄簱';} else if (res.data[0].ioType === 103) {that.title = '妫�鏂欏嚭搴�';} else that.title = res.data[0].title;that.staNo = '鐩爣绔�:' + res.data[0].staNo;that.matnr = '鍟嗗搧缂栧彿锛�' + res.data[0].matDtos[0].matnr;that.maknx = '鍟嗗搧鍚嶇О锛�' + res.data[0].matDtos[0].maknx;that.count = '鍑哄簱鏁伴噺锛�' + res.data[0].matDtos[0].count;if (res.data[0].orderNo) {that.orderNo = \"璁㈠崟鍙凤細\" + res.data[0].orderNo;that.orderShow = true;that.width = 'half-width';} else {that.orderNo = null;that.orderShow = false;that.width = 'full-width';}that.doneOfTray = '宸插嚭鎵樼洏鏁�:' + res.data[0].doneOfTray;that.totalOfTray = '鎵樼洏鎬绘暟閲忥細' + res.data[0].totalOfTray;that.doneOfUnit = '宸插嚭绠辨暟锛�' + res.data[0].doneOfUnit;that.totalOfUnit = '鎬荤鏁帮細' + res.data[0].totalOfUnit;that.newspaper = newsData;that.move = false;} else {that.move = true;}} });}, animation: function animation() {__f__(\"log\", this.move, \" at pages/index/index.vue:552\");if (this.move) {this.topMove = 'topUp';this.floorMove = 'floorUp';} else {this.topMove = 'topDown';this.floorMove = 'floorDown';}}, getDateFormat: function getDateFormat(value) {var date = new Date(); // 鑾峰彇褰撳墠鏃堕棿\n      date.setDate(date.getDate() + value); // 璁剧疆澶╂暟 -1 澶‐n      var m = date.getMonth() + 1;var d = date.getDate();var newDate = m + '-' + d;return newDate;}, /*************** 鎶樼嚎鍥� *****************************************************************************************************/initlineChart: function initlineChart() {var that = this;uni.request({ url: that.commonUrl + \"/monitor/line/charts\", method: 'GET', success: function success(result) {var res = result.data;if (res.code === 200) {that.chartsData.Line.categories = [that.getDateFormat(-11), that.getDateFormat(-10), that.getDateFormat(-9), that.getDateFormat(-8), that.getDateFormat(-7), that.getDateFormat(-6), that.getDateFormat(-5), that.getDateFormat(-4), that.getDateFormat(-3), that.getDateFormat(-2), that.getDateFormat(-1), that.getDateFormat(0)];that.chartsData.Line.series = res.data.rows;}} });}, /*************** 楗煎浘 *****************************************************************************************************/initPieChart: function initPieChart() {var that = this;uni.request({ url: that.commonUrl + \"/monitor/loc/rep\", method: 'GET', success: function success(result) {var res = result.data;if (res.code === 200) {that.chartsData.Pie.series[0].data = res.data.pie;that.stockCount = res.data.stockCunt;that.emptyCount = res.data.emptyCount;that.noneCount = res.data.noneCount;that.used = res.data.used;that.usedPr = res.data.usedPr;}} });}, getOther: function getOther() {var that = this;uni.request({ // http://10.10.0.222:9090/jkwcs/monitor/led?ledId=186\n        url: that.commonUrl + \"/monitor/other\", data: { crnId: that.baseCrnId, ledId: 1 }, success: function success(result) {__f__(\"log\", result, \" at pages/index/index.vue:616\");var res = result.data;if (res.code === 200) {that.xDistance = res.data.xDistance;that.yDistance = res.data.yDistance;that.xDuration = res.data.xDuration;that.yDuration = res.data.yDuration;} else if (res.code === 403) {} else {}} });\n\n    },\n    ejected: function ejected() {\n      this.ejectShow = true;\n    },\n    // 寮瑰嚭灞傜‘璁n    ejectConfirm: function ejectConfirm() {\n      uni.setStorageSync('BaseIp', this.baseIP);\n      uni.setStorageSync('BaseLedId', this.baseLedId);\n      uni.setStorageSync('BasePort', this.basePort);\n      uni.setStorageSync('BaseCrnId', this.baseCrnId);\n      this.getUrl();\n      this.ejectShow = false;\n    },\n    // 寮瑰嚭灞傚彇娑圽n    ejectClose: function ejectClose() {\n      this.ejectShow = false;\n    },\n    getServerData: function getServerData() {\n      this.chartsDataLine1 = JSON.parse(JSON.stringify(this.chartsData.Line));\n      this.chartsDataPie2 = JSON.parse(JSON.stringify(this.chartsData.Pie));\n    },\n    complete: function complete(e) {\n      __f__(\"log\", \"娓叉煋瀹屾垚浜嬩欢\", e, \" at pages/index/index.vue:652\");\n    },\n    getDate: function getDate() {\n      var dt = new Date();\n      this.year = dt.getFullYear();\n      this.month = dt.getMonth() + 1 < 10 ? '0' + (dt.getMonth() + 1) : dt.getMonth() + 1;\n      this.day = dt.getDate() < 10 ? '0' + dt.getDate() : dt.getDate();\n      this.hours = dt.getHours() < 10 ? '0' + dt.getHours() : dt.getHours();\n      this.minutes = dt.getMinutes() < 10 ? '0' + dt.getMinutes() : dt.getMinutes();\n      this.seconds = dt.getSeconds() < 10 ? '0' + dt.getSeconds() : dt.getSeconds();\n      this.weeks = dt.getDay();\n      switch (this.weeks) {\n        case 0:this.week = \"鏄熸湡鏃";break;\n        case 1:this.week = \"鏄熸湡涓�\";break;\n        case 2:this.week = \"鏄熸湡浜孿";break;\n        case 3:this.week = \"鏄熸湡涓塡";break;\n        case 4:this.week = \"鏄熸湡鍥沑";break;\n        case 5:this.week = \"鏄熸湡浜擻";break;\n        default:this.week = \"鏄熸湡鍏璡";}\n\n    } } };exports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 10)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaW5kZXgvaW5kZXgudnVlIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXlTQTtBQUNBLGdHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztlQUNBLEVBQ0EsSUFEQSxrQkFDQSxDQUNBLFNBQ0EsZUFEQSxFQUNBO0FBQ0EsZ0JBRkEsRUFHQSxpQkFIQSxFQUlBLFVBSkEsRUFLQSxVQUxBLEVBTUEsYUFOQSxFQU9BLFlBUEEsRUFRQSxTQVJBLEVBU0EsU0FUQSxFQVVBLFlBVkEsRUFXQSxZQVhBLEVBWUEsWUFaQSxFQWFBLFlBYkEsRUFjQSxTQWRBLEVBZUEsVUFmQSxFQWdCQSxhQWhCQSxFQWlCQSxhQWpCQSxFQWtC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QUNBLHNEQUNBLHNCQUNBLHVCQUNBLG9DQUNBLG9DQUNBLG9DQUNBLG9DQUNBLENBTEEsTUFLQSx1QkFFQSxDQUZBLE1BRUEsQ0FFQSxDQUNBLENBcEJBOztBQXNCQSxLQWpPQTtBQWtPQSxXQWxPQSxxQkFrT0E7QUFDQTtBQUNBLEtBcE9BO0FBcU9BO0FBQ0EsZ0JBdE9BLDBCQXNPQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBN09BO0FBOE9BO0FBQ0EsY0EvT0Esd0JBK09BO0FBQ0E7QUFDQSxLQWpQQTtBQWtQQSxpQkFsUEEsMkJBa1BBO0FBQ0E7QUFDQTtBQUNBLEtBclBBO0FBc1BBLFlBdFBBLG9CQXNQQSxDQXRQQSxFQXNQQTtBQUNBO0FBQ0EsS0F4UEE7QUF5UEEsV0F6UEEscUJBeVBBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0NBUEE7O0FBU0EsS0EzUUEsRUF6R0EsRSIsImZpbGUiOiIxMDAuanMiLCJzb3VyY2VzQ29udGVudCI6WyI8dGVtcGxhdGU+XHJcblx0PHZpZXcgY2xhc3M9XCJjb250YWluZXJcIj5cclxuXHRcdDwhLS0g6Lez5Yqo5L+h5oGv5p2/IC0tPlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJmbG9vci1zY3JlZW5cIiA6Y2xhc3M9XCJmbG9vck1vdmVcIiA+XHJcblx0XHRcdDwhLS0g5aS06YOoIC0tPlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cImhlYWRcIj5cclxuXHRcdFx0XHQ8dGV4dCBAY2xpY2s9XCJwb3J0KClcIj7oh6rliqjku5PlupNXQ1Pnm5HmjqflubPlj7A8L3RleHQ+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0aW1lLXRvb2xzXCI+e3t5ZWFyfX0te3ttb250aH19LXt7ZGF5fX0mbmJzcHt7aG91cnN9fTp7e21pbnV0ZXN9fTp7e3NlY29uZHN9fSZuYnNwe3t3ZWVrfX08L3ZpZXc+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJidXR0b24tbGVmdFwiIEBjbGljaz1cImVqZWN0ZWQoKVwiPjwvdmlldz5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cImJ1dHRvbi1yaWdodFwiIEBjbGljaz1cImxlZElkKClcIj48L3ZpZXc+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJtYWluXCI+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJtYWluLXNpZGVzXCIgc3R5bGU9XCJ3aWR0aDogMTAwJTtcIj5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiYm94XCIgc3R5bGU9XCJoZWlnaHQ6IDkwJTtcIj5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJib3gtYm9yZGVyIGJveC1ib3JkZXIxXCI+PC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJveC1ib3JkZXIgYm94LWJvcmRlcjJcIj48L3ZpZXc+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiYm94LWJvcmRlciBib3gtYm9yZGVyM1wiPjwvdmlldz5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJib3gtYm9yZGVyIGJveC1ib3JkZXI0XCI+PC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBzdHlsZT1cIndpZHRoOiAxMDAlO2hlaWdodDogMTAwJTtcIiB2LXNob3c9XCIhZXJyb3JTaG93XCI+XHJcblx0XHRcdFx0XHRcdFx0PCEtLSDliIbmnInml6DorqLljZXliJLliIbkuKTpg6jliIYgLS0+XHJcblx0XHRcdFx0XHRcdFx0PCEtLSDlt6bkvqfkv6Hmga8gLS0+XHJcblx0XHRcdFx0XHRcdFx0PHZpZXcgc3R5bGU9XCJcIiA6Y2xhc3M9XCJ3aWR0aFwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0PCEtLSDlhajmnb/lh7rlupMgLS0+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJveC1pdGVtc1wiPnt7dGl0bGV9fTwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdDwhLS0g55uu5qCH56uZIC0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJib3gtaXRlbXNcIj57e3N0YU5vfX08L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHQ8IS0tIOWVhuWTgee8luWPtyAtLT5cclxuXHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiYm94LWl0ZW1zXCI+e3ttYXRucn19PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0PCEtLSDllYblk4HlkI3np7AgLS0+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJveC1pdGVtc1wiPnt7bWFrbnh9fTwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdDwhLS0g5Ye65bqT5pWw6YePIC0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJib3gtaXRlbXNcIj57e2NvdW50fX08L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdDx2aWV3IHN0eWxlPVwid2lkdGg6IDUwJTtoZWlnaHQ6IDEwMCU7ZGlzcGxheTogaW5saW5lLWJsb2NrO2Zsb2F0OiBsZWZ0O1wiIHYtc2hvdz1cIm9yZGVyU2hvd1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0PCEtLSDorqLljZXlj7cgLS0+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJveC1pdGVtc1wiPnt7b3JkZXJOb319PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0PCEtLSDlt7Llh7rmiZjnm5jmlbAgLS0+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJveC1pdGVtc1wiPnt7ZG9uZU9mVHJheX19PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0PCEtLSDmiZjnm5jmgLvmlbDph48gLS0+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJveC1pdGVtc1wiPnt7dG90YWxPZlRyYXl9fTwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdDwhLS0g5bey5Ye6566x5pWwIC0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJib3gtaXRlbXNcIj57e2RvbmVPZlVuaXR9fTwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdDwhLS0g5oC7566x5pWwIC0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJib3gtaXRlbXNcIj57e3RvdGFsT2ZVbml0fX08L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdDx2aWV3IHN0eWxlPVwid2lkdGg6IDEwMCU7aGVpZ2h0OiAxMDAlO1wiIHYtc2hvdz1cImVycm9yU2hvd1wiPlxyXG5cdFx0XHRcdFx0XHRcdDx2aWV3IHN0eWxlPVwibGluZS1oZWlnaHQ6IDcwMHB4O2ZvbnQtc2l6ZTogMTc1cnB4O1wiPnt7ZXJyb3JNc2d9fTwvdmlldz5cclxuXHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFx0PCEtLSDlhajmnb/lh7rlupMgLS0+XHJcblx0XHRcdFx0XHRcdDwhLS0gPHZpZXcgc3R5bGU9XCJ3aWR0aDogMTAlO2hlaWdodDogMTAwJTtkaXNwbGF5OmlubGluZS1ibG9jaztmbG9hdDogbGVmdDt0ZXh0LWFsaWduOiBjZW50ZXI7cGFkZGluZy10b3A6IDE4MHB4O1wiPlxyXG5cdFx0XHRcdFx0XHRcdDx0ZXh0Pnt7dGl0bGV9fTwvdGV4dD5cclxuXHRcdFx0XHRcdFx0PC92aWV3PiAtLT5cclxuXHRcdFx0XHRcdFx0PCEtLSDmu5rliqjljLrln58gLS0+XHJcblx0XHRcdFx0XHRcdDwhLS0gPHZpZXcgc3R5bGU9XCJ3aWR0aDogODAlO2hlaWdodDogMTAwJTtkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XCI+IC0tPlxyXG5cdFx0XHRcdFx0XHRcdDwhLS3mmL7npLpvcmRlcuiuouWNlee8luWPtyAtLT5cclxuXHRcdFx0XHRcdFx0XHQ8IS0tIDx0ZXh0IHYtc2hvdz1cIm9yZGVyU2hvd1wiIHN0eWxlPVwiZGlzcGxheTogYmxvY2s7Zm9udC1zaXplOiAxNDBycHg7XCIgPnt7b3JkZXJOb319PC90ZXh0PlxyXG5cdFx0XHRcdFx0XHRcdDxzd2lwZXIgOmNsYXNzPVwic3dpcGVyXCIgY2lyY3VsYXI9XCJ0cnVlXCIgdmVydGljYWw9XCJ0cnVlXCIgZGlzcGxheS1tdWx0aXBsZS1pdGVtcz1cIjZcIiA6YXV0b3BsYXk9XCJhdXRvcGxheVwiIDppbnRlcnZhbD1cImludGVydmFsXCIgOmR1cmF0aW9uPVwiZHVyYXRpb25cIj5cclxuXHRcdFx0XHRcdFx0XHRcdDxzd2lwZXItaXRlbSB2LWZvcj1cIihpdGVtLGluZGV4KSBpbiBtYXRMaXN0XCIgOmtleT1cImluZGV4XCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IHN0eWxlPVwiZm9udC1zaXplOiAxNjBycHg7XCI+e3tpdGVtfX08L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L3N3aXBlci1pdGVtPlxyXG5cdFx0XHRcdFx0XHRcdDwvc3dpcGVyPlxyXG5cdFx0XHRcdFx0XHQ8L3ZpZXc+IC0tPlxyXG5cdFx0XHRcdFx0XHQ8IS0tIOermeWPsOWPtyAtLT5cclxuXHRcdFx0XHRcdFx0PCEtLSA8dmlldyBzdHlsZT1cIndpZHRoOiAxMCU7aGVpZ2h0OiAxMDAlO2Rpc3BsYXk6IGlubGluZS1ibG9jaztmbG9hdDogcmlnaHQ7cGFkZGluZy10b3A6IDE4MHB4O1wiPlxyXG5cdFx0XHRcdFx0XHRcdDx0ZXh0Pnt7c3RhTm99fTwvdGV4dD5cclxuXHRcdFx0XHRcdFx0PC92aWV3PiAtLT5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdDwvdmlldz5cclxuXHRcdDx2aWV3IGNsYXNzPVwidG9wLXNjcmVlblwiIDpjbGFzcz1cInRvcE1vdmVcIj5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJoZWFkXCI+XHJcblx0XHRcdFx0PHRleHQgQGNsaWNrPVwicG9ydCgpXCI+6Ieq5Yqo5LuT5bqTV0NT55uR5o6n5bmz5Y+wPC90ZXh0PlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwidGltZS10b29sc1wiPnt7eWVhcn19LXt7bW9udGh9fS17e2RheX19Jm5ic3B7e2hvdXJzfX06e3ttaW51dGVzfX06e3tzZWNvbmRzfX0mbmJzcHt7d2Vla319PC92aWV3PlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiYnV0dG9uLWxlZnRcIiBAY2xpY2s9XCJlamVjdGVkKClcIj48L3ZpZXc+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJidXR0b24tcmlnaHRcIiBAY2xpY2s9XCJsZWRJZCgpXCI+PC92aWV3PlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwibWFpblwiPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwibWFpbi1zaWRlc1wiPlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJib3ggYm94LWxnXCI+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiYm94LWJvcmRlciBib3gtYm9yZGVyMVwiPjwvdmlldz5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJib3gtYm9yZGVyIGJveC1ib3JkZXIyXCI+PC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJveC1ib3JkZXIgYm94LWJvcmRlcjNcIj48L3ZpZXc+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiYm94LWJvcmRlciBib3gtYm9yZGVyNFwiPjwvdmlldz5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJib3gtaXRlbSBpbnRyb2R1Y2VcIj5cclxuXHRcdFx0XHRcdFx0XHQ8aDM+6Ieq5Yqo5YyW56uL5L2T5LuT5bqTPC9oMz5cclxuXHRcdFx0XHRcdFx0XHQ8cCBjbGFzcz1cImVuZ2xpc2hcIj5BdXRvbWF0aWMgU3RvcmFnZWFuZCBSZXRyaWV2YWwgU3lzdGVtPC9wPlxyXG5cdFx0XHRcdFx0XHRcdDxwIGNsYXNzPVwiaW50cm9kdWNlLWNvbnRlbnRcIj4gIOWIqeeUqOeri+S9k+S7k+W6k+iuvuWkh+WPr+WunueOsOS7k+W6k+mrmOWxguWQiOeQhuWMluOAgeWtmOWPluiHquWKqOWMluOAgeaTjeS9nOeugOS+v+WMlu+8m+iHquWKqOWMlueri+S9k+S7k+W6k+aYr+W9k+WJjeaKgOacr+awtOW5s+i+g+mrmOeahOW9ouW8j+OAglxyXG5cdFx0XHRcdFx0XHRcdOiHquWKqOWMlueri+S9k+S7k+W6k+eahOS4u+S9k+eUsei0p+aetuOAgeW3t+mBk+W8j+WghuWem+i1t+mHjeacuuOAgeWFpe+8iOWHuu+8ieW6k+W3peS9nOWPsOWSjOiHquWKqOi/kOi/m++8iOWHuu+8ieWPiuaTjeS9nOaOp+WItuezu+e7n+e7hOaIkOOAglxyXG5cdFx0XHRcdFx0XHRcdOi0p+aetuaYr+mSoue7k+aehOaIlumSoueti+a3t+WHneWcn+e7k+aehOeahOW7uuetkeeJqeaIlue7k+aehOS9k++8jOi0p+aetuWGheaYr+agh+WHhuWwuuWvuOeahOi0p+S9jeepuumXtO+8jOW3t+mBk+WghuWem+i1t+mHjeacuuepv+ihjOS6jui0p+aetuS5i+mXtOeahOW3t+mBk+S4re+8jOWujOaIkOWtmOOAgeWPlui0p+eahOW3peS9nOOAgueuoeeQhuS4iumHh+eUqOiuoeeul+acuuWPiuadoeW9oueggeaKgOacr+OAgjwvcD5cclxuXHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJveC1pdGVtIGNoYXJnZS1pbmZvXCI+XHJcblx0XHRcdFx0XHRcdFx0PGgzPuS7k+W6k+aVsOaNrjwvaDM+XHJcblx0XHRcdFx0XHRcdFx0PHAgY2xhc3M9XCJlbmdsaXNoXCI+d2FyZWhvdXNlIGRhdGE8L3A+XHJcblx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJjaGFyZ2UtaW5mby1pdGVtXCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8aW1hZ2Ugc3JjPVwiLi4vLi4vc3RhdGljL2ExLnBuZ1wiIG1vZGU9XCJhc3BlY3RGaXRcIj48L2ltYWdlPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwiY291bnRcIj57e3hEaXN0YW5jZX19PC90ZXh0PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cInVuaXRcIj5tPC90ZXh0PlxyXG5cdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0PHZpZXc+57Sv6K6h6LWw6KGM6Led56a7KOexsyk8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiY2hhcmdlLWluZm8taXRlbVwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0PGltYWdlIHNyYz1cIi4uLy4uL3N0YXRpYy9iMS5wbmdcIiBtb2RlPVwiYXNwZWN0Rml0XCI+PC9pbWFnZT5cclxuXHRcdFx0XHRcdFx0XHRcdDx2aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cImNvdW50XCI+e3t5RGlzdGFuY2V9fTwvdGV4dD5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJ1bml0XCI+bTwvdGV4dD5cclxuXHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdDx2aWV3Pue0r+iuoeWNh+mZjei3neemuyjnsbMpPC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImNoYXJnZS1pbmZvLWl0ZW1cIj5cclxuXHRcdFx0XHRcdFx0XHRcdDxpbWFnZSBzcmM9XCIuLi8uLi9zdGF0aWMvYzEucG5nXCIgbW9kZT1cImFzcGVjdEZpdFwiPjwvaW1hZ2U+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJjb3VudFwiPnt7eER1cmF0aW9ufX08L3RleHQ+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwidW5pdFwiPm08L3RleHQ+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dmlldz7ntK/orqHotbDooYzml7bplb8o56eSKTwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJjaGFyZ2UtaW5mby1pdGVtXCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8aW1hZ2Ugc3JjPVwiLi4vLi4vc3RhdGljL2QxLnBuZ1wiIG1vZGU9XCJhc3BlY3RGaXRcIj48L2ltYWdlPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwiY291bnRcIj57e3lEdXJhdGlvbn19PC90ZXh0PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cInVuaXRcIj5tPC90ZXh0PlxyXG5cdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0PHZpZXc+57Sv6K6h5Y2H6ZmN5pe26ZW/KOenkik8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiYm94LWl0ZW0gdXNlLWluZm9cIj5cclxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInVzZS1sZWZ0XCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8aDM+5bqT5L2N5L2/55So546HPC9oMz5cclxuXHRcdFx0XHRcdFx0XHRcdDxwIGNsYXNzPVwiZW5nbGlzaFwiPkVRVUlQTUVOVCBVU0FHRSBUSElTIE1PTlRIPC9wPlxyXG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInVzZS1yaWdodFwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0PGgzPnt7dXNlZFByfX0lPC9oMz5cclxuXHRcdFx0XHRcdFx0XHRcdDxwIGNsYXNzPVwiZW5nbGlzaFwiPuWQjOavlOS4iuaciCArIDUlPC9wPlxyXG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInVzZS1tYWluXCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImxlZnRcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJwcm9ncmVzc0JhclwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwicHJvZ3Jlc3NcIiA6c3R5bGU9XCInd2lkdGg6JysgdXNlZFByICsgJyUnXCI+PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDwhLS0gPHByb2dyZXNzIHBlcmNlbnQ9XCIyMFwiYWN0aXZlQ29sb3I9XCIjRkY1NzIyXCIgYmFja2dyb3VuZENvbG9yPVwiIzIzMzc1MVwiIHN0cm9rZS13aWR0aD1cIjMwXCI+PC9wcm9ncmVzcz4gLS0+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInJpZ2h0XCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdHt7dXNlZH19XHJcblx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwibWFpbi1zaWRlc1wiPlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJib3ggYm94LXRwXCI+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiYm94LWJvcmRlciBib3gtYm9yZGVyMVwiPjwvdmlldz5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJib3gtYm9yZGVyIGJveC1ib3JkZXIyXCI+PC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJveC1ib3JkZXIgYm94LWJvcmRlcjNcIj48L3ZpZXc+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiYm94LWJvcmRlciBib3gtYm9yZGVyNFwiPjwvdmlldz5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJib3gtaXRlbSByaWdodC1pdGVtXCI+XHJcblx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJzdWItbGVmdFwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0PGgzPuWFpeWHuuW6k+e7n+iuoTwvaDM+XHJcblx0XHRcdFx0XHRcdFx0XHQ8cCBjbGFzcz1cImVuZ2xpc2hcIj5PUkRFUiBTVEFUSVNUSUNTPC9wPlxyXG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInN1Yi1yaWdodFwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0PGgzPjMxPC9oMz5cclxuXHRcdFx0XHRcdFx0XHRcdDxwIGNsYXNzPVwiZW5nbGlzaFwiPuS7iuaXpeiuouWNleaVsDwvcD5cclxuXHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJzdWItbWFpblwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJjaGFydHMtYm94XCI+XHJcblx0XHRcdFx0XHRcdFx0XHQgIDxxaXVuLWRhdGEtY2hhcnRzIHR5cGU9XCJsaW5lXCIgOmNoYXJ0RGF0YT1cImNoYXJ0c0RhdGFMaW5lMVwiIDplY2hhcnRzSDU9XCJ0cnVlXCIgOmVjaGFydHNBcHA9XCJ0cnVlXCIvPlxyXG5cdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJib3ggYm94LW1kXCI+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiYm94LWJvcmRlciBib3gtYm9yZGVyMVwiPjwvdmlldz5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJib3gtYm9yZGVyIGJveC1ib3JkZXIyXCI+PC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJveC1ib3JkZXIgYm94LWJvcmRlcjNcIj48L3ZpZXc+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiYm94LWJvcmRlciBib3gtYm9yZGVyNFwiPjwvdmlldz5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJib3gtaXRlbSByaWdodC1pdGVtXCI+XHJcblx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJzdWItbGVmdFwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0PGgzPuW6k+WtmOexu+WeizwvaDM+XHJcblx0XHRcdFx0XHRcdFx0XHQ8cCBjbGFzcz1cImVuZ2xpc2hcIj5JTkNPTUUgREFURTwvcD5cclxuXHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJzdWItcmlnaHRcIj5cclxuXHRcdFx0XHRcdFx0XHRcdDxoMz7ku4rlpKk8L2gzPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHAgY2xhc3M9XCJlbmdsaXNoXCI+VG9kYXk8L3A+XHJcblx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwic3ViLW1haW5cIj5cclxuXHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiY2hhcnRzLWJveCByaW5nXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDxxaXVuLWRhdGEtY2hhcnRzIHR5cGU9XCJyaW5nXCIgOm9wdHM9XCJ7bGVnZW5kOntwb3NpdGlvbjonYm90dG9tJ319XCIgOmVvcHRzPVwicmluZ09wdHNcIiA6Y2hhcnREYXRhPVwiY2hhcnRzRGF0YVBpZTJcIiA6ZWNoYXJ0c0g1PVwidHJ1ZVwiIDplY2hhcnRzQXBwPVwidHJ1ZVwiLz5cclxuXHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwic3ViLW1haW4tcmlnaHRcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJzdWItaW5mb1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxpbWFnZSBzcmM9XCIuLi8uLi9zdGF0aWMvZzEucG5nXCIgbW9kZT1cImFzcGVjdEZpdFwiPjwvaW1hZ2U+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PHRleHQ+5Zyo5bqTPC90ZXh0PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDx0ZXh0Pnt7c3RvY2tDb3VudH19PC90ZXh0PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwic3ViLWluZm9cIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8aW1hZ2Ugc3JjPVwiLi4vLi4vc3RhdGljL2YxLnBuZ1wiIG1vZGU9XCJhc3BlY3RGaXRcIj48L2ltYWdlPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDx0ZXh0PuepuuW6kzwvdGV4dD5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8dGV4dD57e2VtcHR5Q291bnR9fTwvdGV4dD5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInN1Yi1pbmZvXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PGltYWdlIHNyYz1cIi4uLy4uL3N0YXRpYy9lMS5wbmdcIiBtb2RlPVwiYXNwZWN0Rml0XCI+PC9pbWFnZT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8dGV4dD7npoHnlKg8L3RleHQ+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PHRleHQ+e3tub25lQ291bnR9fTwvdGV4dD5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJib3ggYm94LWJ0XCI+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiYm94LWJvcmRlciBib3gtYm9yZGVyMVwiPjwvdmlldz5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJib3gtYm9yZGVyIGJveC1ib3JkZXIyXCI+PC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJveC1ib3JkZXIgYm94LWJvcmRlcjNcIj48L3ZpZXc+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiYm94LWJvcmRlciBib3gtYm9yZGVyNFwiPjwvdmlldz5cclxuXHRcdFx0XHRcdFx0PCEtLSA8dGV4dD7mtZnmsZ/kuK3miaznq4vlupPmioDmnK/mnInpmZDlhazlj7g8L3RleHQ+XHJcblx0XHRcdFx0XHRcdDx0ZXh0PuW9k+WJjeeJiOacrOWPtzwvdGV4dD4gLS0+XHJcblx0XHRcdFx0XHRcdDx2aWV3IEBjbGljaz1cImNybigpXCI+5ZiJ5ZaE6L656ZSL5py65qKw6IKh5Lu95pyJ6ZmQ5YWs5Y+4PC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8IS0tIDxpbWFnZSBzcmM9XCIuLi8uLi9zdGF0aWMvYmFyY29kZS5wbmdcIiBtb2RlPVwiYXNwZWN0Rml0XCI+PC9pbWFnZT4gLS0+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHQ8L3ZpZXc+XHJcblx0XHQ8dmlldz5cclxuXHRcdFx0PCEtLSDovpPlhaV1cmwgLS0+XHJcblx0XHRcdDx1bmktcG9wdXAgcmVmPVwidXJsXCIgdHlwZT1cImRpYWxvZ1wiPlxyXG5cdFx0XHRcdDx1bmktcG9wdXAtZGlhbG9nIHJlZj1cImlucHV0Q2xvc2VcIiBtb2RlPVwiaW5wdXRcIiB0aXRsZT1cIumFjee9rnVybFwiIDp2YWx1ZT1cImJhc2VJUFwiXHJcblx0XHRcdFx0XHRwbGFjZWhvbGRlcj1cIuekuuS+izoxOTIuMTY4LjEuMVwiIEBjb25maXJtPVwiYmFzZVVybENvbmZpcm1cIj48L3VuaS1wb3B1cC1kaWFsb2c+XHJcblx0XHRcdDwvdW5pLXBvcHVwPlxyXG5cdFx0PC92aWV3PlxyXG5cdFx0PHZpZXc+XHJcblx0XHRcdDwhLS0g6L6T5YWlbGVkSWQgLS0+XHJcblx0XHRcdDx1bmktcG9wdXAgcmVmPVwibGVkSWRcIiB0eXBlPVwiZGlhbG9nXCI+XHJcblx0XHRcdFx0PHVuaS1wb3B1cC1kaWFsb2cgcmVmPVwiaW5wdXRDbG9zZVwiIG1vZGU9XCJpbnB1dFwiIHRpdGxlPVwi6YWN572ubGVkSWRcIiA6dmFsdWU9XCJiYXNlTGVkSWRcIlxyXG5cdFx0XHRcdFx0cGxhY2Vob2xkZXI9XCLnpLrkvos6MTg4XCIgQGNvbmZpcm09XCJsZWRJZENvbmZpcm1cIj48L3VuaS1wb3B1cC1kaWFsb2c+XHJcblx0XHRcdDwvdW5pLXBvcHVwPlxyXG5cdFx0PC92aWV3PlxyXG5cdFx0PHZpZXc+XHJcblx0XHRcdDwhLS0g6L6T5YWlcG9ydCAtLT5cclxuXHRcdFx0PHVuaS1wb3B1cCByZWY9XCJwb3J0XCIgdHlwZT1cImRpYWxvZ1wiPlxyXG5cdFx0XHRcdDx1bmktcG9wdXAtZGlhbG9nIHJlZj1cImlucHV0Q2xvc2VcIiBtb2RlPVwiaW5wdXRcIiB0aXRsZT1cIumFjee9ruerr+WPo+WPt1wiIDp2YWx1ZT1cImJhc2VQb3J0XCJcclxuXHRcdFx0XHRcdHBsYWNlaG9sZGVyPVwi56S65L6LOjkwOTBcIiBAY29uZmlybT1cInBvcnRDb25maXJtXCI+PC91bmktcG9wdXAtZGlhbG9nPlxyXG5cdFx0XHQ8L3VuaS1wb3B1cD5cclxuXHRcdDwvdmlldz5cclxuXHRcdDx2aWV3PlxyXG5cdFx0XHQ8IS0tIOi+k+WFpWNybklkIC0tPlxyXG5cdFx0XHQ8dW5pLXBvcHVwIHJlZj1cImNybklkXCIgdHlwZT1cImRpYWxvZ1wiPlxyXG5cdFx0XHRcdDx1bmktcG9wdXAtZGlhbG9nIHJlZj1cImlucHV0Q2xvc2VcIiBtb2RlPVwiaW5wdXRcIiB0aXRsZT1cIumFjee9ruWghuWem+aculwiIDp2YWx1ZT1cImNybklkXCJcclxuXHRcdFx0XHRcdHBsYWNlaG9sZGVyPVwi56S65L6LOjFcIiBAY29uZmlybT1cImNybkNvbmZpcm1cIj48L3VuaS1wb3B1cC1kaWFsb2c+XHJcblx0XHRcdDwvdW5pLXBvcHVwPlxyXG5cdFx0PC92aWV3PlxyXG5cdFx0PCEtLSDoh6rlrprkuYnlvLnlh7rlsYIgLS0+XHJcblx0XHQ8dmlldyBjbGFzcz1cImVqZWN0LW1hc2tcIiB2LXNob3c9XCJlamVjdFNob3dcIj5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJlamVjdFwiPlxyXG5cdFx0XHRcdDwhLS0g5by55Ye6dGl0bGUgLS0+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJlamVjdC10aXRsZVwiPuS/ruaUuSAvIOmFjee9rjwvdmlldz5cclxuXHRcdFx0XHQ8IS0tIGlucHV0IC0tPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiZWplY3QtaW5wdXRcIj5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiaXRlbVwiPlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImRlc2NcIj5pcO+8mjwvdmlldz5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpbnB1dFwiPlxyXG5cdFx0XHRcdFx0XHRcdDxpbnB1dCB0eXBlPVwidGV4dFwiIHYtbW9kZWw9XCJiYXNlSVBcIj5cclxuXHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpdGVtXCI+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZGVzY1wiPnBvcnTvvJo8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiaW5wdXRcIj5cclxuXHRcdFx0XHRcdFx0XHQ8aW5wdXQgdHlwZT1cInRleHRcIiB2LW1vZGVsPVwiYmFzZVBvcnRcIj5cclxuXHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpdGVtXCI+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZGVzY1wiPmxlZElk77yaPC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImlucHV0XCI+XHJcblx0XHRcdFx0XHRcdFx0PGlucHV0IHR5cGU9XCJ0ZXh0XCIgdi1tb2RlbD1cImJhc2VMZWRJZFwiPlxyXG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIml0ZW1cIj5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJkZXNjXCI+Q3JuSWTvvJo8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiaW5wdXRcIj5cclxuXHRcdFx0XHRcdFx0XHQ8aW5wdXQgdHlwZT1cInRleHRcIiB2LW1vZGVsPVwiYmFzZUNybklkXCI+XHJcblx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PCEtLSBidXR0b24gLS0+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJlamVjdC1idXR0b25cIj5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiYnV0dG9uLWl0ZW1cIiBAY2xpY2s9XCJlamVjdENsb3NlXCI+5Y+WIOa2iDwvdmlldz5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiYnV0dG9uLWl0ZW1cIiBAY2xpY2s9XCJlamVjdENvbmZpcm1cIj7noa4g6K6kPC92aWV3PlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcclxuXHRcdDwvdmlldz5cclxuXHQ8L3ZpZXc+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0PlxyXG5cdGltcG9ydCB5Y3FkYXRhIGZyb20gJ0AvcGFnZXMvaW5kZXgvZGF0YS5qc29uJztcclxuXHRpbXBvcnQgZGVtb2RhdGEgZnJvbSAnQC9tb2NrZGF0YS9kZW1vZGF0YS5qc29uJztcclxuXHRleHBvcnQgZGVmYXVsdCB7XHJcblx0XHRkYXRhKCkge1xyXG5cdFx0XHRyZXR1cm4ge1xyXG5cdFx0XHRcdGNvbW1vblVybDpudWxsLCAvLyDpgJrnlKh1cmxcclxuXHRcdFx0XHRzaG93OiB0cnVlLFxyXG5cdFx0XHRcdG1vZGVDbGFzczogJ2ZhZGUnLFxyXG5cdFx0XHRcdHN0eWxlczoge30sXHJcblx0XHRcdFx0YmFzZUlQOicnLFxyXG5cdFx0XHRcdGJhc2VMZWRJZDonJyxcclxuXHRcdFx0XHRiYXNlUG9ydDonJyxcclxuXHRcdFx0XHRjcm5JZDonJyxcclxuXHRcdFx0XHR2YWx1ZTogJycsXHJcblx0XHRcdFx0eERpc3RhbmNlOiAwLFxyXG5cdFx0XHRcdHlEaXN0YW5jZTowLFxyXG5cdFx0XHRcdHhEdXJhdGlvbjowLFxyXG5cdFx0XHRcdHlEdXJhdGlvbjowLFxyXG5cdFx0XHRcdHVzZWQ6MzE3LFxyXG5cdFx0XHRcdHVzZWRQcjogOTAsXHJcblx0XHRcdFx0c3RvY2tDb3VudDowLFxyXG5cdFx0XHRcdGVtcHR5Q291bnQ6MCxcclxuXHRcdFx0XHRub25lQ291bnQ6MCxcclxuXHRcdFx0XHRjaGFydHNEYXRhOiB7XHJcblx0XHRcdFx0XHRcIkxpbmVcIjoge1xyXG5cdFx0XHRcdFx0XHRcImNhdGVnb3JpZXNcIjogW10sXHJcblx0XHRcdFx0XHRcdFwic2VyaWVzXCI6IFtdXHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0XCJQaWVcIjoge1xyXG5cdFx0XHRcdFx0XHRcInNlcmllc1wiOiBbe1xyXG5cdFx0XHRcdFx0XHRcdFwiZGF0YVwiOiBbXVxyXG5cdFx0XHRcdFx0XHR9XVxyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdGNoYXJ0c0RhdGFMaW5lMToge30sXHJcblx0XHRcdFx0Y2hhcnRzRGF0YVBpZTI6IHt9LFxyXG5cdFx0XHRcdHJpbmdPcHRzOnt9LFxyXG5cdFx0XHRcdHllYXI6MjAyMixcclxuXHRcdFx0XHRtb250aDo0LFxyXG5cdFx0XHRcdGRheToxNCxcclxuXHRcdFx0XHRob3VyczoxMyxcclxuXHRcdFx0XHRtaW51dGVzOjM4LFxyXG5cdFx0XHRcdHNlY29uZHM6MTMsXHJcblx0XHRcdFx0d2Vlazon5pif5pyf5ZubJyxcclxuXHRcdFx0XHRhbmk6JycsXHJcblx0XHRcdFx0Ly8gbW92ZTogJ3VwTW92ZSAxLjVzIDE7JyxcclxuXHRcdFx0XHRtb3ZlOmZhbHNlLFxyXG5cdFx0XHRcdHRvcE1vdmU6J3RvcFVwJyxcclxuXHRcdFx0XHRmbG9vck1vdmU6JycsXHJcblx0XHRcdFx0dmVyc2lvbjonJyxcclxuXHRcdFx0XHQvLyBuZXdzcGFwZXI6J+aLo+aWmeWHuuW6k++8iDQ0MjYpXFxu5rqQ5bqT5L2N77yaMTIwMDEwMVxcbuebruagh+erme+8mjE4NlxcbjExMDE4NDItMTAwMDAtMjIwNDc1MTg1MTdcXG5cXG4nLFx0XHJcblx0XHRcdFx0bmV3c3BhcGVyOicnLFxyXG5cdFx0XHRcdGVycm9yUGFwZXI6JycsXHJcblx0XHRcdFx0dGl0bGU6JycsXHJcblx0XHRcdFx0c3RhTm86JycsXHJcblx0XHRcdFx0bWF0bnI6JycsXHJcblx0XHRcdFx0bWFrbng6JycsXHJcblx0XHRcdFx0Y291bnQ6JycsXHJcblx0XHRcdFx0b3JkZXJObzpudWxsLFxyXG5cdFx0XHRcdGRvbmVPZlRyYXk6JycsXHJcblx0XHRcdFx0dG90YWxPZlRyYXk6JycsXHJcblx0XHRcdFx0ZG9uZU9mVW5pdDonJyxcclxuXHRcdFx0XHR0b3RhbE9mVW5pdDonJyxcclxuXHRcdFx0XHRlcnJvck1zZzpudWxsLFxyXG5cdFx0XHRcdHdpZHRoOidmdWxsLXdpZHRoJyxcclxuXHRcdFx0XHRlcnJvclNob3c6JycsXHJcblx0XHRcdFx0cGFraW5TaG93OicnLFxyXG5cdFx0XHRcdHBha2luR3VuOicnLFxyXG5cdFx0XHRcdG9yZGVyU2hvdzpmYWxzZSxcclxuXHRcdFx0XHRzd2lwZXI6J3N3aXBlci1oZXJlJyxcclxuXHRcdFx0XHRhdXRvcGxheTp0cnVlLCAvLyDoh6rliqjlvqrnjq9cclxuXHRcdFx0XHRpbnRlcnZhbDoxMDAwLCAvLyDosIPnlKjml7bplb9cclxuXHRcdFx0XHRkdXJhdGlvbjo4MDAwLCAvLyDnp7vliqjpgJ/luqZcclxuXHRcdFx0XHRtYXRMaXN0OltdLCAvLyDorqLljZXliJfooahcclxuXHRcdFx0XHRlamVjdFNob3c6IGZhbHNlLFxyXG5cdFx0XHRcdFxyXG5cdFx0XHR9XHJcblx0XHR9LFxyXG5cdFx0bW91bnRlZCgpIHtcclxuXHRcdFx0bGV0IHRoYXQgPSB0aGlzXHJcblx0XHRcdGNvbnN0IEJhc2VJUCA9IHVuaS5nZXRTdG9yYWdlU3luYygnQmFzZUlwJyk7XHJcblx0XHRcdGNvbnN0IEJhc2VMZWRJZCA9IHVuaS5nZXRTdG9yYWdlU3luYygnQmFzZUxlZElkJyk7XHJcblx0XHRcdGNvbnN0IEJhc2VQb3J0ID0gdW5pLmdldFN0b3JhZ2VTeW5jKCdCYXNlUG9ydCcpO1xyXG5cdFx0XHRjb25zdCBCYXNlQ3JuSWQgPSB1bmkuZ2V0U3RvcmFnZVN5bmMoJ0Jhc2VDcm5JZCcpO1xyXG5cdFx0XHRcdHRoYXQuYmFzZUlQID0gQmFzZUlQXHJcblx0XHRcdFx0dGhhdC5iYXNlTGVkSWQgPSBCYXNlTGVkSWRcclxuXHRcdFx0XHR0aGF0LmJhc2VQb3J0ID0gQmFzZVBvcnRcclxuXHRcdFx0XHR0aGF0LmJhc2VDcm5JZCA9IEJhc2VDcm5JZFxyXG5cdFx0XHR0aGlzLmdldFVybCgpXHJcblx0XHR9LFxyXG5cdFx0b25SZWFkeSgpIHtcclxuXHRcdFx0c2V0SW50ZXJ2YWwoKCkgPT4ge1xyXG5cdFx0XHRcdC8vIOiOt+W+l+WIneWni+aVsOaNrlxyXG5cdFx0XHRcdHRoaXMuaW5pdGxpbmVDaGFydCgpO1xyXG5cdFx0XHRcdHRoaXMuaW5pdFBpZUNoYXJ0KCk7XHJcblx0XHRcdFx0Ly8g5Li76aG15L+h5oGvXHJcblx0XHRcdFx0dGhpcy5nZXRTZXJ2ZXJEYXRhKCk7XHJcblx0XHRcdFx0dGhpcy5nZXRPdGhlcigpO1xyXG5cdFx0XHRcdC8vIOWFtuS7luS/oeaBr1xyXG5cdFx0XHRcdHRoaXMuZ2V0RGF0ZSgpO1xyXG5cdFx0XHRcdHRoaXMuZ2V0UGFraW4oKTtcclxuXHRcdFx0XHR0aGlzLmdldEVycm9yKCk7XHJcblx0XHRcdFx0Ly8gdGhpcy5nZXRZWVkoKTtcclxuXHRcdFx0XHQvLyB0aGlzLmdldEVFRSgpO1xyXG5cdFx0XHRcdHRoaXMuYW5pbWF0aW9uKCk7XHJcblx0XHRcdH0sMTAwMClcclxuXHRcdH0sXHJcblx0XHRtZXRob2RzOiB7XHJcblx0XHRcdC8vIOiOt+WPlnVybFxyXG5cdFx0XHRnZXRVcmwoKSB7XHJcblx0XHRcdFx0dGhpcy5jb21tb25VcmwgPSB0aGlzLmJhc2VIdHRwICsgdGhpcy5iYXNlSVAgKyAnOicgK3RoaXMuYmFzZVBvcnQgKyB0aGlzLmJhc2VVcmxcclxuXHRcdFx0fSxcclxuXHRcdFx0Ly8g6I635Y+W6ZSZ6K+v5L+h5oGvXHJcblx0XHRcdGdldFlZWSgpIHtcclxuXHRcdFx0XHRsZXQgdGhhdCA9IHRoaXNcclxuXHRcdFx0XHR2YXIgcmVzdWx0ID0geWNxZGF0YS5kYXRhRUVFXHJcblx0XHRcdFx0Ly8g5rWL6K+V55SoIOKGk1xyXG5cdFx0XHRcdHZhclx0cmVzID0gcmVzdWx0LmRhdGFcclxuXHRcdFx0XHQvLyDmtYvor5XnlKgg4oaRXHJcblx0XHRcdFx0Ly8g6L+U5Zue57uT5p6c5pyJ5YC8IOS4lOWAvOS4jeetieS6juepuuWAvCDlsLHmmK/mnInplJnor6/kv6Hmga/pnIDopoHlsZXnpLpcclxuXHRcdFx0XHRpZiAocmVzLmRhdGEgJiYgcmVzLmRhdGEgIT09IFwiXCIpIHtcclxuXHRcdFx0XHRcdHRoYXQuZXJyb3JNc2cgPSByZXMuZGF0YVxyXG5cdFx0XHRcdFx0dGhhdC5lcnJvclNob3cgPSB0cnVlXHJcblx0XHRcdFx0XHR0aGF0Lm1vdmUgPSBmYWxzZSAvLyDmmL7npLpcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0dGhhdC5lcnJvclBhcGVyID0gJydcclxuXHRcdFx0XHRcdHRoYXQuZXJyb3JTaG93ID0gZmFsc2VcclxuXHRcdFx0XHRcdGlmICh0aGF0LnBha2luU2hvdykge1xyXG5cdFx0XHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHR0aGF0Lm1vdmUgPSB0cnVlIC8vIOmakOiXj1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0Z2V0RUVFICgpIHtcclxuXHRcdFx0XHRsZXQgdGhhdCA9IHRoaXNcclxuXHRcdFx0XHR2YXIgbmV3c0RhdGEgPSAnJ1xyXG5cdFx0XHRcdHZhciBzdHIgPSAnJ1xyXG5cdFx0XHRcdGxldCByZXN1bHQgPSB5Y3FkYXRhLmRhdGFZWVlcclxuXHRcdFx0XHRcdFx0Ly8g5rWL6K+V55SoIOKGk1xyXG5cdFx0XHRcdGxldFx0cmVzID0gcmVzdWx0LmRhdGFcclxuXHRcdFx0XHRcdFx0Ly8g5rWL6K+V55SoIOKGkVxyXG5cdFx0XHRcdFx0aWYocmVzLmRhdGEgJiYgcmVzLmRhdGEgIT09IG51bGwpIHtcclxuXHRcdFx0XHRcdFx0aWYgKHJlcy5kYXRhWzBdLmlvVHlwZSA9PT0gMTAxKSB7XHJcblx0XHRcdFx0XHRcdFx0dGhhdC50aXRsZSA9ICflhajmnb/lh7rlupMnXHJcblx0XHRcdFx0XHRcdH0gZWxzZSBpZihyZXMuZGF0YVswXS5pb1R5cGUgPT09IDEwMykge1xyXG5cdFx0XHRcdFx0XHRcdHRoYXQudGl0bGUgPSAn5qOA5paZ5Ye65bqTJ1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdHRoYXQuc3RhTm8gPSAn55uu5qCH56uZOicgKyByZXMuZGF0YVswXS5zdGFOb1xyXG5cdFx0XHRcdFx0XHR0aGF0Lm1hdG5yID0gJ+WVhuWTgee8luWPt++8micgKyByZXMuZGF0YVswXS5tYXREdG9zWzBdLm1hdG5yXHJcblx0XHRcdFx0XHRcdHRoYXQubWFrbnggPSAn5ZWG5ZOB5ZCN56ew77yaJyArIHJlcy5kYXRhWzBdLm1hdER0b3NbMF0ubWFrbnhcclxuXHRcdFx0XHRcdFx0dGhhdC5jb3VudCA9ICflh7rlupPmlbDph4/vvJonICsgcmVzLmRhdGFbMF0ubWF0RHRvc1swXS5jb3VudFxyXG5cdFx0XHRcdFx0XHRpZiAocmVzLmRhdGFbMF0ub3JkZXJObykge1xyXG5cdFx0XHRcdFx0XHRcdHRoYXQub3JkZXJObyA9IFwi6K6i5Y2V5Y+377yaXCIgKyByZXMuZGF0YVswXS5vcmRlck5vXHJcblx0XHRcdFx0XHRcdFx0dGhhdC5vcmRlclNob3cgPSB0cnVlXHJcblx0XHRcdFx0XHRcdFx0dGhhdC53aWR0aCA9ICdoYWxmLXdpZHRoJ1xyXG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdHRoYXQub3JkZXJObyA9IG51bGw7XHJcblx0XHRcdFx0XHRcdFx0dGhhdC5vcmRlclNob3cgPSBmYWxzZVxyXG5cdFx0XHRcdFx0XHRcdHRoYXQud2lkdGggPSAnZnVsbC13aWR0aCdcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR0aGF0LmRvbmVPZlRyYXkgPSAn5bey5Ye65omY55uY5pWwOicgKyByZXMuZGF0YVswXS5kb25lT2ZUcmF5XHJcblx0XHRcdFx0XHRcdHRoYXQudG90YWxPZlRyYXkgPSAn5omY55uY5oC75pWw6YeP77yaJyArIHJlcy5kYXRhWzBdLnRvdGFsT2ZUcmF5XHJcblx0XHRcdFx0XHRcdHRoYXQuZG9uZU9mVW5pdCA9ICflt7Llh7rnrrHmlbDvvJonICsgcmVzLmRhdGFbMF0uZG9uZU9mVW5pdFxyXG5cdFx0XHRcdFx0XHR0aGF0LnRvdGFsT2ZVbml0ID0gJ+aAu+euseaVsO+8micgKyByZXMuZGF0YVswXS50b3RhbE9mVW5pdFxyXG5cdFx0XHRcdFx0XHRpZiAodGhhdC5lcnJvclNob3cpIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0dGhhdC5uZXdzcGFwZXIgPSBuZXdzRGF0YVxyXG5cdFx0XHRcdFx0XHRcdFx0XHR0aGF0Lm1vdmUgPSBmYWxzZVxyXG5cdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fWVsc2Uge1xyXG5cdFx0XHRcdFx0XHR0aGF0Lm1vdmUgPSB0cnVlXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFxyXG5cdFx0XHR9LFxyXG5cdFx0XHQvLyDojrflj5bplJnor6/kv6Hmga9cclxuXHRcdFx0Z2V0RXJyb3IoKSB7XHJcblx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzXHJcblx0XHRcdFx0dmFyIHJlc1xyXG5cdFx0XHRcdHVuaS5yZXF1ZXN0KHtcclxuXHRcdFx0XHRcdHVybDogdGhhdC5jb21tb25VcmwgKyBcIi9tb25pdG9yL2xlZC9lcnJvclwiLFxyXG5cdFx0XHRcdFx0ZGF0YToge1xyXG5cdFx0XHRcdFx0XHRsZWRJZDp0aGF0LmJhc2VMZWRJZFxyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdG1ldGhvZDonR0VUJyxcclxuXHRcdFx0XHRcdHN1Y2Nlc3MocmVzdWx0KSB7XHJcblx0XHRcdFx0XHRcdHJlcyA9IHJlc3VsdC5kYXRhIFxyXG5cdFx0XHRcdFx0XHRpZiAocmVzLmRhdGEgJiYgcmVzLmRhdGEgIT09IFwiXCIpIHtcclxuXHRcdFx0XHRcdFx0XHR0aGF0LmVycm9yTXNnID0gcmVzLmRhdGFcclxuXHRcdFx0XHRcdFx0XHR0aGF0LmVycm9yU2hvdyA9IHRydWVcclxuXHRcdFx0XHRcdFx0XHR0aGF0Lm1vdmUgPSBmYWxzZSAvLyDmmL7npLpcclxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHR0aGF0LmVycm9yU2hvdyA9IGZhbHNlXHJcblx0XHRcdFx0XHRcdFx0Ly8gaWYgKHRoYXQucGFraW5TaG93KSB7XHJcblx0XHRcdFx0XHRcdFx0Ly8gXHRyZXR1cm47XHJcblx0XHRcdFx0XHRcdFx0Ly8gfSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHQvLyBcdC8vIHRoYXQubW92ZSA9IHRydWUgLy8g6ZqQ6JePXHJcblx0XHRcdFx0XHRcdFx0Ly8gfVxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdH0sXHJcblx0XHRcdGdldFBha2luICgpIHtcclxuXHRcdFx0XHRsZXQgdGhhdCA9IHRoaXNcclxuXHRcdFx0XHR0aGF0Lm1hdExpc3QgPSBbXSAvLyDmuIXnqbrmnaHnoIHliJfooahcclxuXHRcdFx0XHR2YXIgbmV3c0RhdGEgPSAnJ1xyXG5cdFx0XHRcdHZhciBzdHIgPSAnJ1xyXG5cdFx0XHRcdGxldCByZXMgXHJcblx0XHRcdFx0dW5pLnJlcXVlc3Qoe1xyXG5cdFx0XHRcdFx0dXJsOiB0aGF0LmNvbW1vblVybCArIFwiL21vbml0b3IvbGVkXCIsXHJcblx0XHRcdFx0XHRkYXRhOiB7XHJcblx0XHRcdFx0XHRcdGxlZElkOnRoYXQuYmFzZUxlZElkXHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0bWV0aG9kOidHRVQnLFxyXG5cdFx0XHRcdFx0c3VjY2VzcyhyZXN1bHQpIHtcclxuXHRcdFx0XHRcdFx0cmVzID0gcmVzdWx0LmRhdGFcclxuXHRcdFx0XHRcdFx0aWYgKHRoYXQuZXJyb3JTaG93KSB7XHJcblx0XHRcdFx0XHRcdFx0cmV0dXJuOyAgLy8g5pyJ6ZSZ6K+v5L+h5oGvXHJcblx0XHRcdFx0XHRcdH0gXHJcblx0XHRcdFx0XHRcdGlmKHJlcy5kYXRhICYmIHJlcy5kYXRhICE9PSBudWxsKSB7XHJcblx0XHRcdFx0XHRcdFx0aWYgKHJlcy5kYXRhWzBdLmlvVHlwZSA9PT0gMTAxKSB7XHJcblx0XHRcdFx0XHRcdFx0XHR0aGF0LnRpdGxlID0gJ+WFqOadv+WHuuW6kydcclxuXHRcdFx0XHRcdFx0XHR9IGVsc2UgaWYocmVzLmRhdGFbMF0uaW9UeXBlID09PSAxMDMpIHtcclxuXHRcdFx0XHRcdFx0XHRcdHRoYXQudGl0bGUgPSAn5qOA5paZ5Ye65bqTJ1xyXG5cdFx0XHRcdFx0XHRcdH0gZWxzZVxyXG5cdFx0XHRcdFx0XHRcdHRoYXQudGl0bGUgPSByZXMuZGF0YVswXS50aXRsZVxyXG5cdFx0XHRcdFx0XHRcdHRoYXQuc3RhTm8gPSAn55uu5qCH56uZOicgKyByZXMuZGF0YVswXS5zdGFOb1xyXG5cdFx0XHRcdFx0XHRcdHRoYXQubWF0bnIgPSAn5ZWG5ZOB57yW5Y+377yaJyArIHJlcy5kYXRhWzBdLm1hdER0b3NbMF0ubWF0bnJcclxuXHRcdFx0XHRcdFx0XHR0aGF0Lm1ha254ID0gJ+WVhuWTgeWQjeensO+8micgKyByZXMuZGF0YVswXS5tYXREdG9zWzBdLm1ha254XHJcblx0XHRcdFx0XHRcdFx0dGhhdC5jb3VudCA9ICflh7rlupPmlbDph4/vvJonICsgcmVzLmRhdGFbMF0ubWF0RHRvc1swXS5jb3VudFxyXG5cdFx0XHRcdFx0XHRcdGlmIChyZXMuZGF0YVswXS5vcmRlck5vKSB7XHJcblx0XHRcdFx0XHRcdFx0XHR0aGF0Lm9yZGVyTm8gPSBcIuiuouWNleWPt++8mlwiICsgcmVzLmRhdGFbMF0ub3JkZXJOb1xyXG5cdFx0XHRcdFx0XHRcdFx0dGhhdC5vcmRlclNob3cgPSB0cnVlXHJcblx0XHRcdFx0XHRcdFx0XHR0aGF0LndpZHRoID0gJ2hhbGYtd2lkdGgnXHJcblx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRcdHRoYXQub3JkZXJObyA9IG51bGw7XHJcblx0XHRcdFx0XHRcdFx0XHR0aGF0Lm9yZGVyU2hvdyA9IGZhbHNlXHJcblx0XHRcdFx0XHRcdFx0XHR0aGF0LndpZHRoID0gJ2Z1bGwtd2lkdGgnXHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdHRoYXQuZG9uZU9mVHJheSA9ICflt7Llh7rmiZjnm5jmlbA6JyArIHJlcy5kYXRhWzBdLmRvbmVPZlRyYXlcclxuXHRcdFx0XHRcdFx0XHR0aGF0LnRvdGFsT2ZUcmF5ID0gJ+aJmOebmOaAu+aVsOmHj++8micgKyByZXMuZGF0YVswXS50b3RhbE9mVHJheVxyXG5cdFx0XHRcdFx0XHRcdHRoYXQuZG9uZU9mVW5pdCA9ICflt7Llh7rnrrHmlbDvvJonICsgcmVzLmRhdGFbMF0uZG9uZU9mVW5pdFxyXG5cdFx0XHRcdFx0XHRcdHRoYXQudG90YWxPZlVuaXQgPSAn5oC7566x5pWw77yaJyArIHJlcy5kYXRhWzBdLnRvdGFsT2ZVbml0XHJcblx0XHRcdFx0XHRcdFx0dGhhdC5uZXdzcGFwZXIgPSBuZXdzRGF0YVxyXG5cdFx0XHRcdFx0XHRcdHRoYXQubW92ZSA9IGZhbHNlXHJcblx0XHRcdFx0XHRcdH1lbHNlIHtcclxuXHRcdFx0XHRcdFx0XHR0aGF0Lm1vdmUgPSB0cnVlXHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0fSxcclxuXHRcdFx0YW5pbWF0aW9uKCkge1xyXG5cdFx0XHRcdGNvbnNvbGUubG9nKHRoaXMubW92ZSk7XHJcblx0XHRcdFx0aWYgKHRoaXMubW92ZSkgeyBcclxuXHRcdFx0XHRcdHRoaXMudG9wTW92ZSA9ICd0b3BVcCdcclxuXHRcdFx0XHRcdHRoaXMuZmxvb3JNb3ZlID0gJ2Zsb29yVXAnXHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdHRoaXMudG9wTW92ZSA9ICd0b3BEb3duJ1xyXG5cdFx0XHRcdFx0dGhpcy5mbG9vck1vdmUgPSAnZmxvb3JEb3duJ1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0Z2V0RGF0ZUZvcm1hdCh2YWx1ZSkge1xyXG5cdFx0XHRcdHZhciBkYXRlID0gbmV3IERhdGUoKTsvLyDojrflj5blvZPliY3ml7bpl7RcclxuXHRcdFx0XHRkYXRlLnNldERhdGUoZGF0ZS5nZXREYXRlKCkgKyB2YWx1ZSk7Ly8g6K6+572u5aSp5pWwIC0xIOWkqVxyXG5cdFx0XHRcdHZhciBtID0gZGF0ZS5nZXRNb250aCgpICsgMVxyXG5cdFx0XHRcdHZhciBkID0gZGF0ZS5nZXREYXRlKClcclxuXHRcdFx0XHR2YXIgbmV3RGF0ZSA9IG0gKyAnLScgKyBkXHJcblx0XHRcdFx0cmV0dXJuIG5ld0RhdGVcclxuXHRcdFx0fSxcclxuLyoqKioqKioqKioqKioqKiDmipjnur/lm74gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcblx0XHRcdGluaXRsaW5lQ2hhcnQoKSB7XHJcblx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzXHJcblx0XHRcdFx0dW5pLnJlcXVlc3Qoe1xyXG5cdFx0XHRcdFx0dXJsOiB0aGF0LmNvbW1vblVybCArIFwiL21vbml0b3IvbGluZS9jaGFydHNcIixcclxuXHRcdFx0XHRcdG1ldGhvZDonR0VUJyxcclxuXHRcdFx0XHRcdHN1Y2Nlc3MocmVzdWx0KSB7XHJcblx0XHRcdFx0XHRcdHZhciByZXMgPSByZXN1bHQuZGF0YVxyXG5cdFx0XHRcdFx0XHRpZiAocmVzLmNvZGUgPT09IDIwMCkge1xyXG5cdFx0XHRcdFx0XHRcdHRoYXQuY2hhcnRzRGF0YS5MaW5lLmNhdGVnb3JpZXMgPSBbXHJcblx0XHRcdFx0XHRcdFx0XHR0aGF0LmdldERhdGVGb3JtYXQoLTExKSx0aGF0LmdldERhdGVGb3JtYXQoLTEwKSx0aGF0LmdldERhdGVGb3JtYXQoLTkpLHRoYXQuZ2V0RGF0ZUZvcm1hdCgtOCksXHJcblx0XHRcdFx0XHRcdFx0XHR0aGF0LmdldERhdGVGb3JtYXQoLTcpLHRoYXQuZ2V0RGF0ZUZvcm1hdCgtNiksdGhhdC5nZXREYXRlRm9ybWF0KC01KSx0aGF0LmdldERhdGVGb3JtYXQoLTQpLFxyXG5cdFx0XHRcdFx0XHRcdFx0dGhhdC5nZXREYXRlRm9ybWF0KC0zKSx0aGF0LmdldERhdGVGb3JtYXQoLTIpLHRoYXQuZ2V0RGF0ZUZvcm1hdCgtMSksdGhhdC5nZXREYXRlRm9ybWF0KDApLF1cclxuXHRcdFx0XHRcdFx0XHR0aGF0LmNoYXJ0c0RhdGEuTGluZS5zZXJpZXMgPSByZXMuZGF0YS5yb3dzXHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9LFxyXG4vKioqKioqKioqKioqKioqIOmlvOWbviAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuXHRcdFx0aW5pdFBpZUNoYXJ0KCkge1xyXG5cdFx0XHRcdGxldCB0aGF0ID0gdGhpc1xyXG5cdFx0XHRcdHVuaS5yZXF1ZXN0KHtcclxuXHRcdFx0XHRcdHVybDogdGhhdC5jb21tb25VcmwgKyBcIi9tb25pdG9yL2xvYy9yZXBcIixcclxuXHRcdFx0XHRcdG1ldGhvZDonR0VUJyxcclxuXHRcdFx0XHRcdHN1Y2Nlc3MocmVzdWx0KSB7XHJcblx0XHRcdFx0XHRcdHZhciByZXMgPSByZXN1bHQuZGF0YVxyXG5cdFx0XHRcdFx0XHRpZiAocmVzLmNvZGUgPT09IDIwMCkge1xyXG5cdFx0XHRcdFx0XHRcdHRoYXQuY2hhcnRzRGF0YS5QaWUuc2VyaWVzWzBdLmRhdGEgPSByZXMuZGF0YS5waWVcclxuXHRcdFx0XHRcdFx0XHR0aGF0LnN0b2NrQ291bnQgPSByZXMuZGF0YS5zdG9ja0N1bnRcclxuXHRcdFx0XHRcdFx0XHR0aGF0LmVtcHR5Q291bnQgPSByZXMuZGF0YS5lbXB0eUNvdW50XHJcblx0XHRcdFx0XHRcdFx0dGhhdC5ub25lQ291bnQgPSByZXMuZGF0YS5ub25lQ291bnRcclxuXHRcdFx0XHRcdFx0XHR0aGF0LnVzZWQgPSByZXMuZGF0YS51c2VkXHJcblx0XHRcdFx0XHRcdFx0dGhhdC51c2VkUHIgPSByZXMuZGF0YS51c2VkUHJcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdH0sXHJcblx0XHRcdGdldE90aGVyKCkge1xyXG5cdFx0XHRcdGxldCB0aGF0ID0gdGhpc1xyXG5cdFx0XHRcdHVuaS5yZXF1ZXN0KHtcclxuXHRcdFx0XHRcdC8vIGh0dHA6Ly8xMC4xMC4wLjIyMjo5MDkwL2prd2NzL21vbml0b3IvbGVkP2xlZElkPTE4NlxyXG5cdFx0XHRcdFx0dXJsOiB0aGF0LmNvbW1vblVybCArIFwiL21vbml0b3Ivb3RoZXJcIixcclxuXHRcdFx0XHRcdGRhdGE6IHtcclxuXHRcdFx0XHRcdFx0Y3JuSWQ6IHRoYXQuYmFzZUNybklkLCBcclxuXHRcdFx0XHRcdFx0bGVkSWQ6IDEsXHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0c3VjY2VzcyhyZXN1bHQpIHtcclxuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2cocmVzdWx0KTtcclxuXHRcdFx0XHRcdFx0dmFyIHJlcyA9IHJlc3VsdC5kYXRhXHJcblx0XHRcdFx0XHRcdGlmIChyZXMuY29kZSA9PT0gMjAwKSB7XHJcblx0XHRcdFx0XHRcdFx0dGhhdC54RGlzdGFuY2UgPSByZXMuZGF0YS54RGlzdGFuY2VcclxuXHRcdFx0XHRcdFx0XHR0aGF0LnlEaXN0YW5jZSA9IHJlcy5kYXRhLnlEaXN0YW5jZVxyXG5cdFx0XHRcdFx0XHRcdHRoYXQueER1cmF0aW9uID0gcmVzLmRhdGEueER1cmF0aW9uXHJcblx0XHRcdFx0XHRcdFx0dGhhdC55RHVyYXRpb24gPSByZXMuZGF0YS55RHVyYXRpb25cclxuXHRcdFx0XHRcdFx0fSBlbHNlIGlmIChyZXMuY29kZSA9PT0gNDAzKSB7XHJcblx0XHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRlamVjdGVkICgpIHtcclxuXHRcdFx0XHR0aGlzLmVqZWN0U2hvdyA9IHRydWVcclxuXHRcdFx0fSxcclxuXHRcdFx0Ly8g5by55Ye65bGC56Gu6K6kXHJcblx0XHRcdGVqZWN0Q29uZmlybSgpIHtcclxuXHRcdFx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ0Jhc2VJcCcsIHRoaXMuYmFzZUlQKTtcclxuXHRcdFx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ0Jhc2VMZWRJZCcsIHRoaXMuYmFzZUxlZElkKTtcclxuXHRcdFx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ0Jhc2VQb3J0Jyx0aGlzLmJhc2VQb3J0KTtcclxuXHRcdFx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ0Jhc2VDcm5JZCcsdGhpcy5iYXNlQ3JuSWQpO1xyXG5cdFx0XHRcdHRoaXMuZ2V0VXJsKClcclxuXHRcdFx0XHR0aGlzLmVqZWN0U2hvdyA9IGZhbHNlXHJcblx0XHRcdH0sXHJcblx0XHRcdC8vIOW8ueWHuuWxguWPlua2iFxyXG5cdFx0XHRlamVjdENsb3NlKCkge1xyXG5cdFx0XHRcdHRoaXMuZWplY3RTaG93ID0gZmFsc2VcclxuXHRcdFx0fSxcclxuXHRcdFx0Z2V0U2VydmVyRGF0YSgpIHtcclxuXHRcdFx0XHR0aGlzLmNoYXJ0c0RhdGFMaW5lMT1KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuY2hhcnRzRGF0YS5MaW5lKSlcclxuXHRcdFx0XHR0aGlzLmNoYXJ0c0RhdGFQaWUyPUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5jaGFydHNEYXRhLlBpZSkpXHJcblx0XHRcdH0sXHJcblx0XHRcdGNvbXBsZXRlKGUpIHtcclxuXHRcdFx0XHRjb25zb2xlLmxvZyhcIua4suafk+WujOaIkOS6i+S7tlwiLGUpO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRnZXREYXRlKCkge1xyXG5cdFx0XHRcdHZhciBkdCA9IG5ldyBEYXRlKCk7XHJcblx0XHRcdFx0dGhpcy55ZWFyID0gZHQuZ2V0RnVsbFllYXIoKTtcclxuXHRcdFx0XHR0aGlzLm1vbnRoID0gKGR0LmdldE1vbnRoKCkrMSkgPCAxMCA/ICcwJysgKGR0LmdldE1vbnRoKCkrMSkgOiAoZHQuZ2V0TW9udGgoKSsxKTtcclxuXHRcdFx0XHR0aGlzLmRheSA9IGR0LmdldERhdGUoKSA8IDEwID8gJzAnK2R0LmdldERhdGUoKSA6IGR0LmdldERhdGUoKTtcclxuXHRcdFx0XHR0aGlzLmhvdXJzID0gZHQuZ2V0SG91cnMoKSA8IDEwID8gJzAnICsgZHQuZ2V0SG91cnMoKSA6IGR0LmdldEhvdXJzKCk7XHJcblx0XHRcdFx0dGhpcy5taW51dGVzID0gZHQuZ2V0TWludXRlcygpIDwgMTAgPyAnMCcgKyBkdC5nZXRNaW51dGVzKCkgOiBkdC5nZXRNaW51dGVzKCk7XHJcblx0XHRcdFx0dGhpcy5zZWNvbmRzID0gZHQuZ2V0U2Vjb25kcygpIDwgMTAgPyAnMCcgKyBkdC5nZXRTZWNvbmRzKCkgOiBkdC5nZXRTZWNvbmRzKCk7IFxyXG5cdFx0XHRcdHRoaXMud2Vla3MgPSBkdC5nZXREYXkoKTsgXHJcblx0XHRcdFx0c3dpdGNoICh0aGlzLndlZWtzKSB7XHJcblx0XHRcdFx0XHRjYXNlIDA6IHRoaXMud2VlayA9IFwi5pif5pyf5pelXCI7IGJyZWFrO1xyXG5cdFx0XHRcdFx0Y2FzZSAxOiB0aGlzLndlZWsgPSBcIuaYn+acn+S4gFwiOyBicmVhaztcclxuXHRcdFx0XHRcdGNhc2UgMjogdGhpcy53ZWVrID0gXCLmmJ/mnJ/kuoxcIjsgYnJlYWs7XHJcblx0XHRcdFx0XHRjYXNlIDM6IHRoaXMud2VlayA9IFwi5pif5pyf5LiJXCI7IGJyZWFrO1xyXG5cdFx0XHRcdFx0Y2FzZSA0OiB0aGlzLndlZWsgPSBcIuaYn+acn+Wbm1wiOyBicmVhaztcclxuXHRcdFx0XHRcdGNhc2UgNTogdGhpcy53ZWVrID0gXCLmmJ/mnJ/kupRcIjsgYnJlYWs7XHJcblx0XHRcdFx0XHRkZWZhdWx0IDogdGhpcy53ZWVrID0gXCLmmJ/mnJ/lha1cIjtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHR9XHJcblx0fVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZT5cclxuXHQvKiDlvLnlh7o66YWN572u5Yy65Z+fICovXHJcblx0LmVqZWN0LW1hc2sge1xyXG5cdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRoZWlnaHQ6IDEwMCU7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNSk7XHJcblx0XHRwb3NpdGlvbjogZml4ZWQ7XHJcblx0XHR0b3A6IDA7XHJcblx0XHRsZWZ0OiAwO1xyXG5cdFx0ei1pbmRleDogOTk5O1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcdFxyXG5cdH1cclxuXHQuZWplY3R7XHJcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0XHR3aWR0aDogNjAwcHg7XHJcblx0XHRoZWlnaHQ6IDM1MHB4O1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2VhZWFlYTtcclxuXHRcdGJvcmRlci1yYWRpdXM6IDI1cnB4O1xyXG5cdH1cclxuXHQuZWplY3QtdGl0bGUge1xyXG5cdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRoZWlnaHQ6IDEwMHB4O1xyXG5cdFx0bGluZS1oZWlnaHQ6IDEwMHB4O1xyXG5cdFx0Zm9udC1zaXplOiAyMHB4O1xyXG5cdFx0Zm9udC13ZWlnaHQ6IDcwMDtcclxuXHRcdGNvbG9yOiBcdCM2MDYyNjY7XHJcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0fVxyXG5cdC5lamVjdC1pbnB1dCB7XHJcblx0XHRcclxuXHR9XHJcblx0Lml0ZW0ge1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblx0XHRtYXJnaW46IDEwcHggMCAwIDA7XHJcblx0fVxyXG5cdC5kZXNjIHtcclxuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdHdpZHRoOiA0MCU7XHJcblx0XHR0ZXh0LWFsaWduOiByaWdodDtcclxuXHRcdGNvbG9yOiAjNjA2MjY2O1xyXG5cdFx0Zm9udC1zaXplOiAxOHB4O1xyXG5cdH1cclxuXHQuaW5wdXQge1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblx0XHRwYWRkaW5nLWxlZnQ6IDVweDtcclxuXHRcdHBhZGRpbmctcmlnaHQ6IDVweDtcclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0aGVpZ2h0OiAzMHB4O1xyXG5cdFx0Ym9yZGVyOiAxcHggc29saWQgI0MwQzRDQztcclxuXHRcdG1hcmdpbi1yaWdodDogNTBweDtcclxuXHR9XHJcblx0LmVqZWN0LWlucHV0IGlucHV0IHtcclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0XHJcblx0XHRcclxuXHR9XHJcblx0LmVqZWN0LWJ1dHRvbiB7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdGJvdHRvbTogMDtcclxuXHRcdGhlaWdodDogNjBweDtcclxuXHRcdGxpbmUtaGVpZ2h0OiA2MHB4O1xyXG5cdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRib3JkZXItdG9wOiAxcHggc29saWQgI2NjYztcclxuXHR9XHJcblx0LmJ1dHRvbi1pdGVtIHtcclxuXHRcdHdpZHRoOiA1MCU7XHJcblx0XHRoZWlnaHQ6IDEwMCU7XHJcblx0XHRmb250LXNpemU6IDIwcHg7XHJcblx0XHRmb250LXdlaWdodDogYm9sZDtcclxuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHRcdGNvbG9yOiAjOTA5Mzk5O1xyXG5cdH1cclxuXHQuYnV0dG9uLWl0ZW06bGFzdC1jaGlsZCB7XHJcblx0XHRjb2xvcjogIzY3QzIzQTtcclxuXHRcdFxyXG5cdFx0Ym9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjO1xyXG5cdH1cclxuXHQuZnVsbC13aWR0aCB7XHJcblx0XHR3aWR0aDogMTAwJTtcclxuXHRcdGhlaWdodDogMTAwJTtcclxuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdGZsb2F0OiBsZWZ0O1xyXG5cdH1cclxuXHQuaGFsZi13aWR0aCB7XHJcblx0XHR3aWR0aDogNTAlO1xyXG5cdFx0aGVpZ2h0OiAxMDAlO1xyXG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0ZmxvYXQ6IGxlZnQ7XHJcblx0fVxyXG5cdC5ib3gtaXRlbXMge1xyXG5cdFx0aGVpZ2h0OiAyMCU7XHJcblx0XHR3aWR0aDogMTAwJTtcclxuXHRcdC8qIGJhY2tncm91bmQtY29sb3I6ICMyMzM3NTE7ICovXHJcblx0XHRsaW5lLWhlaWdodDogMzAwcnB4O1xyXG5cdH1cclxuXHQvKiDlvZPliY3pobXpnaLml6Agb3JkZXJObyAqL1xyXG5cdC5zd2lwZXItaGVyZSB7XHJcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHRtYXJnaW46IDAgYXV0bztcclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0aGVpZ2h0OiAxMDAlO1xyXG5cdH1cclxuXHQvKiDlvZPliY3pobXpnaLmnIkgb3JkZXJObyAqL1xyXG5cdC5zd2lwZXItaGVyZS1vTntcclxuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdC8qIGJhY2tncm91bmQtY29sb3I6ICMwNjNBN0I7ICovXHJcblx0XHRtYXJnaW46IDAgYXV0bztcclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0aGVpZ2h0OiA5MCU7XHJcblx0fVxyXG5cdC8qIOW9k+WJjemhtemdouaciSBlcnJvcuaPkOekuiAqL1xyXG5cdC5zd2lwZXItaGVyZS1lcnJvciB7XHJcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHQvKiBiYWNrZ3JvdW5kLWNvbG9yOiAjMDYzQTdCOyAqL1xyXG5cdFx0LyogbWFyZ2luOiAwIGF1dG87ICovXHJcblx0XHRtYXJnaW4tdG9wOiAyMCU7XHJcblx0XHR3aWR0aDogMTAwJTtcclxuXHRcdGhlaWdodDogMTAwJTtcclxuXHR9XHJcblx0LmFuaW1hdGUge1xyXG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdCAgICAgICAgICAgIC8qIHdoaXRlLXNwYWNlOiBub3dyYXA7ICovXHJcblx0ICAgICAgICAgICAgYW5pbWF0aW9uOiAyNXMgd29yZHNMb29wIGxpbmVhciBpbmZpbml0ZSBub3JtYWw7XHJcblx0ICAgICAgICB9XHJcblx0IFxyXG5cdCAgICAgICAgQGtleWZyYW1lcyB3b3Jkc0xvb3Age1xyXG5cdCAgICAgICAgICAgIDAlIHtcclxuXHQgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMHB4KTtcclxuXHQgICAgICAgICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAwcHgpO1xyXG5cdCAgICAgICAgICAgIH1cclxuXHQgICAgICAgICAgICAxMDAlIHtcclxuXHQgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTtcclxuXHQgICAgICAgICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpO1xyXG5cdCAgICAgICAgICAgIH1cclxuXHQgICAgICAgIH1cclxuXHQgXHJcblx0ICAgICAgICBALXdlYmtpdC1rZXlmcmFtZXMgd29yZHNMb29wIHtcclxuXHQgICAgICAgICAgICAwJSB7XHJcblx0ICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDBweCk7XHJcblx0ICAgICAgICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMHB4KTtcclxuXHQgICAgICAgICAgICB9XHJcblx0ICAgICAgICAgICAgMTAwJSB7XHJcblx0ICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7XHJcblx0ICAgICAgICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTtcclxuXHQgICAgICAgICAgICB9XHJcblx0ICAgICAgICB9XHJcblx0LyogYW5pbWF0aW9uOnVwTW92ZSAxLjVzIDE7ICovXHJcblx0LyogZG93bk1vdmUgKi9cclxuXHQvKiDkuIrlsYLlkJHkuIogKi9cclxuXHQudG9wVXAge1xyXG5cdFx0YW5pbWF0aW9uOiB0b3BVcCAxLjVzIDE7XHJcblx0XHRhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoO1xyXG5cdH1cclxuXHRAa2V5ZnJhbWVzIHRvcFVwIHtcclxuXHRcdGZyb20ge1xyXG5cdFx0XHRvcGFjaXR5OiAwLjU7XHJcblx0XHRcdC8qIGJhY2tncm91bmQtY29sb3I6Ymx1ZTsgKi9cclxuXHRcdFx0dG9wOi0xMDgwcHhcclxuXHRcdFx0fVxyXG5cdFx0dG8ge1xyXG5cdFx0XHRvcGFjaXR5OiAxO1xyXG5cdFx0XHQvKiBiYWNrZ3JvdW5kLWNvbG9yOnJlZDsgKi9cclxuXHRcdFx0dG9wOiAwO1xyXG5cdFx0fVxyXG5cdH1cclxuXHQvKiDkuIrlsYLlkJHkuIsgKi9cclxuXHQudG9wRG93biB7XHJcblx0XHRhbmltYXRpb246IHRvcERvd24gMS41cyAxO1xyXG5cdFx0YW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcclxuXHR9XHJcblx0QGtleWZyYW1lcyB0b3BEb3duXHJcblx0XHR7XHJcblx0XHRmcm9tIHtcclxuXHRcdFx0b3BhY2l0eTogMTtcclxuXHRcdFx0LyogYmFja2dyb3VuZC1jb2xvcjpyZWQ7ICovXHJcblx0XHRcdHRvcDogMDtcclxuXHRcdH1cclxuXHRcdHRvIHtcclxuXHRcdFx0b3BhY2l0eTogMC41O1xyXG5cdFx0XHQvKiBiYWNrZ3JvdW5kLWNvbG9yOmJsdWU7ICovXHJcblx0XHRcdHRvcDotMTA4MHB4XHJcblx0XHR9XHJcblx0fVxyXG5cdC8qIOS4i+WxguWQkeS4iiAqL1xyXG5cdC5mbG9vclVwIHtcclxuXHRcdGFuaW1hdGlvbjogZmxvb3JVcCAxLjVzIDE7XHJcblx0XHRhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoO1xyXG5cdH1cclxuXHRAa2V5ZnJhbWVzIGZsb29yVXAge1xyXG5cdFx0ZnJvbSB7XHJcblx0XHRcdG9wYWNpdHk6IDAuNTtcclxuXHRcdFx0LyogYmFja2dyb3VuZC1jb2xvcjpibHVlOyAqL1xyXG5cdFx0XHR0b3A6IDBweDtcclxuXHRcdFx0fVxyXG5cdFx0dG8ge1xyXG5cdFx0XHRvcGFjaXR5OiAxO1xyXG5cdFx0XHQvKiBiYWNrZ3JvdW5kLWNvbG9yOnJlZDsgKi9cclxuXHRcdFx0dG9wOiAxMDgwcHg7XHJcblx0XHR9XHJcblx0fVxyXG5cdC8qIOS4i+WxguWQkeS4iyAqL1xyXG5cdC5mbG9vckRvd24ge1xyXG5cdFx0YW5pbWF0aW9uOiBmbG9vckRvd24gMS41cyAxO1xyXG5cdFx0YW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcclxuXHR9XHJcblx0QGtleWZyYW1lcyBmbG9vckRvd24ge1xyXG5cdFx0ZnJvbSB7XHJcblx0XHRcdG9wYWNpdHk6IDAuNTtcclxuXHRcdFx0LyogYmFja2dyb3VuZC1jb2xvcjpibHVlOyAqL1xyXG5cdFx0XHR0b3A6IDEwODBweDtcclxuXHRcdFx0fVxyXG5cdFx0dG8ge1xyXG5cdFx0XHRvcGFjaXR5OiAxO1xyXG5cdFx0XHQvKiBiYWNrZ3JvdW5kLWNvbG9yOnJlZDsgKi9cclxuXHRcdFx0dG9wOiAtMHB4O1xyXG5cdFx0fVxyXG5cdH1cclxuXHQudG9wLXNjcmVlbiB7XHJcblx0XHRwb3NpdGlvbjogZml4ZWQ7XHJcblx0XHR3aWR0aDogMTkyMHB4O1xyXG5cdFx0aGVpZ2h0OiAxMDgwcHg7XHJcblx0XHQvKiB0b3A6IC0xMDAwcHg7ICovXHJcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vLi4vc3RhdGljL2JhY2tncm91bmQucG5nKTtcclxuXHRcdC8qIGJhY2tncm91bmQ6cmVkOyAqL1xyXG5cdFx0LyogYW5pbWF0aW9uOnVwTW92ZSAxLjVzIDE7ICovXHJcblx0XHR6LWluZGV4OiA5OTk7XHJcblx0fVxyXG5cdC5mbG9vci1zY3JlZW4ge1xyXG5cdFx0d2lkdGg6IDE5MjBweDtcclxuXHRcdGhlaWdodDogMTA4MHB4O1xyXG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdFx0Y29sb3I6ICNGRkZGRkY7XHJcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0XHRmb250LXNpemU6IDEyMHJweDtcclxuXHRcdGxldHRlci1zcGFjaW5nOiA1cnB4O1xyXG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKC4uLy4uL3N0YXRpYy9iYWNrZ3JvdW5kLnBuZyk7XHJcblx0fVxyXG5cdC5jb250YWluZXIge1xyXG5cdFx0d2lkdGg6IDE5MjBweDtcclxuXHRcdGhlaWdodDogMTA4MHB4O1xyXG5cdFx0XHJcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0XHQvKiBiYWNrZ3JvdW5kOiAjMDAwNDI4OyAgXHJcblx0XHRiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0byByaWdodCwgIzAwNGU5MiwgIzAwMDQyOCk7ICBcclxuXHRcdGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgIzAwNGU5MiwgIzAwMDQyOCk7ICovXHJcblx0fVxyXG5cdC5oZWFkIHtcclxuXHRcdC8qIGJhY2tncm91bmQtY29sb3I6ICM1NWFhZmY7ICovXHJcblx0XHR3aWR0aDogMTAwJTtcclxuXHRcdGhlaWdodDogMTAlO1xyXG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdFx0bGluZS1oZWlnaHQ6IDExMHB4O1xyXG5cdFx0Y29sb3I6ICNGRkZGRkY7XHJcblx0XHRmb250LXNpemU6IDQwcHg7XHJcblx0XHRmb250LXdlaWdodDogNzAwO1xyXG5cdFx0bGV0dGVyLXNwYWNpbmc6IDVweDtcclxuXHR9XHJcblx0LmhlYWQgdGV4dCB7XHJcblx0XHR0cmFuc2Zvcm06IHNjYWxlKDEsMC45KTtcclxuXHR9XHJcblx0LnRpbWUtdG9vbHMge1xyXG5cdFx0aGVpZ2h0OiA1JTtcclxuXHRcdC8qIGJhY2tncm91bmQtY29sb3I6ICMwMDdBRkY7ICovXHJcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHR0b3A6IDA7XHJcblx0XHRmbG9hdDogcmlnaHQ7XHJcblx0XHRyaWdodDogNTBweDtcclxuXHRcdGZvbnQtc2l6ZTogMTZweDtcclxuXHRcdGZvbnQtd2VpZ2h0OiA0MDA7XHJcblx0XHRsaW5lLWhlaWdodDogNzBweDtcclxuXHRcdGxldHRlci1zcGFjaW5nOiAxcHg7XHJcblx0fVxyXG5cdC5idXR0b24tbGVmdCB7XHJcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vLi4vc3RhdGljL3JpZ2h0LnBuZyk7XHJcblx0XHRiYWNrZ3JvdW5kLXNpemU6IDEwMCUgMTAwJTtcclxuXHRcdHRvcDogMS44JTtcclxuXHRcdGxlZnQ6IDIxLjMlO1xyXG5cdFx0d2lkdGg6IDEzLjUlO1xyXG5cdFx0aGVpZ2h0OiA4LjUlO1xyXG5cdFx0dHJhbnNmb3JtOiBzY2FsZVgoLTEpO1xyXG5cdH1cclxuXHQuYnV0dG9uLXJpZ2h0IHtcclxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi8uLi9zdGF0aWMvcmlnaHQucG5nKTtcclxuXHRcdGJhY2tncm91bmQtc2l6ZTogMTAwJSAxMDAlO1xyXG5cdFx0dG9wOiAxLjglO1xyXG5cdFx0bGVmdDogNjUlO1xyXG5cdFx0d2lkdGg6IDEzLjUlO1xyXG5cdFx0aGVpZ2h0OiA4LjUlO1xyXG5cdH1cclxuXHQubWFpbiB7XHJcblx0XHQvKiBiYWNrZ3JvdW5kLWNvbG9yOiAjM0Y1MzZFOyAqL1xyXG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRoZWlnaHQ6IDkwJTtcclxuXHR9XHJcblx0Lm1haW4tc2lkZXMge1xyXG5cdFx0LyogYmFja2dyb3VuZC1jb2xvcjogIzAwNEU5MjsgKi9cclxuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdGZsb2F0OiBsZWZ0O1xyXG5cdFx0d2lkdGg6IDUwJTtcclxuXHRcdGhlaWdodDogMTAwJTtcclxuXHRcdC8qIG1hcmdpbjogMiUgYXV0byAwIDMuMiU7XHJcblx0XHRib3JkZXI6IDFweCBzb2xpZCByZ2JhKDIwLCA4MCwgMTM2LCAxKTsgKi9cclxuXHR9XHJcblx0LmJveCB7XHJcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0XHQvKiBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOyAqL1xyXG5cdFx0bWFyZ2luOiAzJSAyJSAwIDIlO1xyXG5cdFx0d2lkdGg6IDk2JTtcclxuXHRcdGhlaWdodDogMzAlO1xyXG5cdFx0Ym9yZGVyOiAxcHggc29saWQgcmdiYSgyMCwgODAsIDEzNiwgMSk7XHJcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xyXG5cdH1cclxuXHQuYm94LWxnIHtcclxuXHRcdGhlaWdodDogOTQlO1xyXG5cdH1cclxuXHQuYm94LWJvcmRlciB7XHJcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHQvKiBiYWNrZ3JvdW5kLWNvbG9yOiAjNENEOTY0OyAqL1xyXG5cdFx0d2lkdGg6IDEwcHg7XHJcblx0XHRoZWlnaHQ6IDEwcHg7XHJcblx0fVxyXG5cdC5ib3gtYm9yZGVyMSB7XHJcblx0XHR0b3A6IDA7XHJcblx0XHRsZWZ0OiAwO1xyXG5cdFx0Ym9yZGVyLWxlZnQ6IDJweCBzb2xpZCAjMzFjNGM0O1xyXG5cdFx0Ym9yZGVyLXRvcDogMnB4IHNvbGlkICMzMWM0YzQ7XHJcblx0fVxyXG5cdC5ib3gtYm9yZGVyMiB7XHJcblx0XHR0b3A6IDA7XHJcblx0XHRyaWdodDogMDtcclxuXHRcdGJvcmRlci1yaWdodDogMnB4IHNvbGlkICMzMWM0YzQ7XHJcblx0XHRib3JkZXItdG9wOiAycHggc29saWQgIzMxYzRjNDtcclxuXHR9XHJcblx0LmJveC1ib3JkZXIzIHtcclxuXHRcdGJvdHRvbTogMDtcclxuXHRcdGxlZnQ6IDA7XHJcblx0XHRib3JkZXItYm90dG9tOiAycHggc29saWQgIzMxYzRjNDtcclxuXHRcdGJvcmRlci1sZWZ0OiAycHggc29saWQgIzMxYzRjNDtcclxuXHR9XHJcblx0LmJveC1ib3JkZXI0IHtcclxuXHRcdGJvdHRvbTogMDtcclxuXHRcdHJpZ2h0OiAwO1xyXG5cdFx0Ym9yZGVyLXJpZ2h0OiAycHggc29saWQgIzMxYzRjNDtcclxuXHRcdGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjMzFjNGM0O1xyXG5cdH1cclxuXHQuY29udGVudCB7XHJcblx0ICBkaXNwbGF5OiBmbGV4O1xyXG5cdCAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuXHQgIGZsZXg6IDE7XHJcblx0fVxyXG5cdFxyXG5cdC5jaGFydHMtYm94IHtcclxuXHQgIHdpZHRoOiA4MCU7XHJcblx0ICBoZWlnaHQ6IDIzMHB4O1xyXG5cdCAgbWFyZ2luLWxlZnQ6IDEwJTtcclxuXHQgIC8qIGJhY2tncm91bmQtY29sb3I6ICNmZmY7ICovXHJcblx0fVxyXG5cdC5yaW5nIHtcclxuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdGZsb2F0OiBsZWZ0O1xyXG5cdFx0d2lkdGg6IDYwJTtcclxuXHRcdGhlaWdodDogMzAwcHg7XHJcblx0XHRtYXJnaW4tbGVmdDogLTEwJTtcclxuXHR9XHJcblx0LmJveC1pdGVtIHtcclxuXHRcdC8qIGJhY2tncm91bmQtY29sb3I6ICMyQzQwNUE7ICovXHJcblx0XHR3aWR0aDogOTIlO1xyXG5cdFx0aGVpZ2h0OiAyMCU7XHJcblx0XHRtYXJnaW4tbGVmdDogNCU7XHJcblx0XHRwYWRkaW5nLXRvcDogMWVtO1xyXG5cdFx0Y29sb3I6ICNGRkZGRkY7XHJcblx0fVxyXG5cdC5pbnRyb2R1Y2Uge1xyXG5cdFx0aGVpZ2h0OiAzMCU7XHJcblx0fVxyXG5cdC5pbnRyb2R1Y2UgaDIge1xyXG5cdFx0bGV0dGVyLXNwYWNpbmc6IDVweDtcclxuXHRcdFxyXG5cdH1cclxuXHQuZW5nbGlzaCB7XHJcblx0XHRmb250LXNpemU6IDE0cHg7XHJcblx0fVxyXG5cdC5pbnRyb2R1Y2UtY29udGVudCB7XHJcblx0XHRmb250LXNpemU6IDIwcHg7XHJcblx0XHRwYWRkaW5nLXRvcDogMmVtO1xyXG5cdFx0dGV4dC1pbmRlbnQ6IDJlbTtcclxuXHRcdGxpbmUtaGVpZ2h0OiAyZW07XHJcblx0fVxyXG5cdC5jaGFyZ2UtaW5mbyB7XHJcblx0XHQvKiBiYWNrZ3JvdW5kLWNvbG9yOiAjMkM0MDVBOyAqL1xyXG5cdFx0aGVpZ2h0OiA0NSU7XHJcblx0fVxyXG5cdC5jaGFyZ2UtaW5mby1pdGVtIHtcclxuXHRcdC8qIGJhY2tncm91bmQtY29sb3I6ICNFRTY2NjY7ICovXHJcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHR3aWR0aDogNTAlO1xyXG5cdFx0aGVpZ2h0OiA0MCU7XHJcblx0fVxyXG5cdC5jaGFyZ2UtaW5mby1pdGVtIGltYWdlIHtcclxuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdGZsb2F0OiBsZWZ0O1xyXG5cdFx0LyogYmFja2dyb3VuZC1jb2xvcjogIzRDRDk2NDsgKi9cclxuXHRcdGhlaWdodDogMTAwJTtcclxuXHRcdHdpZHRoOiAyMCU7XHJcblx0fVxyXG5cdC5jaGFyZ2UtaW5mby1pdGVtIHZpZXcge1xyXG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdFx0bWFyZ2luLWxlZnQ6IDEwJTtcclxuXHRcdHdpZHRoOiA3MCU7XHJcblx0XHRoZWlnaHQ6IDQ5JTtcclxuXHRcdC8qIGJhY2tncm91bmQtY29sb3I6ICMxODkwRkY7ICovXHJcblx0fVxyXG5cdC5jaGFyZ2UtaW5mby1pdGVtIC5jb3VudCwgLmNoYXJnZS1pbmZvLWl0ZW0gLnVuaXR7XHJcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHRmb250LXNpemU6IDMycHg7XHJcblx0XHRib3R0b206IDA7XHJcblx0XHRwYWRkaW5nLWxlZnQ6IDUlO1xyXG5cdH1cclxuXHQuY2hhcmdlLWluZm8taXRlbSAudW5pdCB7XHJcblx0XHRmb250LXNpemU6IDE2cHg7XHJcblx0XHRmbG9hdDogcmlnaHQ7XHJcblx0XHRyaWdodDogMjAlO1xyXG5cdH1cclxuXHQuZm9vdGVyIHtcclxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjAsIDgwLCAxMzYsIDEpO1xyXG5cdFx0aGVpZ2h0OiAxNSU7XHJcblx0fVxyXG5cdC51c2UtaW5mbyB7XHJcblx0XHQvKiBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3QUZGOyAqL1xyXG5cdH1cclxuXHQudXNlLWxlZnQge1xyXG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0LyogYmFja2dyb3VuZC1jb2xvcjogIzJDNDA1QTsgKi9cclxuXHRcdHdpZHRoOiA0MCU7XHJcblx0fVxyXG5cdC51c2UtcmlnaHQge1xyXG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0LyogYmFja2dyb3VuZC1jb2xvcjogIzJDNDA1QTsgKi9cclxuXHRcdGZsb2F0OiByaWdodDtcclxuXHRcdHdpZHRoOiAyMCU7XHJcblx0fVxyXG5cdC51c2UtbWFpbiB7XHJcblx0XHR3aWR0aDogMTAwJTtcclxuXHRcdGhlaWdodDogNzUlO1xyXG5cdFx0LyogYmFja2dyb3VuZC1jb2xvcjogIzRDRDk2NDsgKi9cclxuXHR9XHJcblx0LnVzZS1tYWluIC5sZWZ0IHtcclxuXHRcdC8qIGJhY2tncm91bmQtY29sb3I6ICNmZmFhN2Y7ICovXHJcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHRmbG9hdDogbGVmdDtcclxuXHRcdGhlaWdodDogMTAwJTtcclxuXHRcdHdpZHRoOiA3MCU7XHJcblx0XHRsaW5lLWhlaWdodDogMjBweDtcclxuXHR9XHJcblx0LmxlZnQgLnByb2dyZXNzQmFyIHtcclxuXHRcdC8qIG1hcmdpbi1sZWZ0OiA7ICovXHJcblx0XHRtYXJnaW4tdG9wOiA5JTtcclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0aGVpZ2h0OiAyMCU7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjMjMzNzUxO1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogMjBweDtcclxuXHR9XHJcblx0LmxlZnQgLnByb2dyZXNzIHtcclxuXHRcdC8qIHdpZHRoOiA5MCU7ICovXHJcblx0XHRoZWlnaHQ6IDEwMCU7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjRkY1NzIyO1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogMjBweDtcclxuXHR9XHJcblx0LmxlZnQgcHJvZ3Jlc3Mge1xyXG5cdFx0bWFyZ2luLWxlZnQ6IDEwJTtcclxuXHRcdG1hcmdpbi10b3A6IDEwJTtcclxuXHRcdGRpc3BsYXk6IGJsb2NrO1xyXG5cdH1cclxuXHQudXNlLW1haW4gLnJpZ2h0IHtcclxuXHRcdC8qIGJhY2tncm91bmQtY29sb3I6ICNmZmFhZmY7ICovXHJcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHRmbG9hdDogcmlnaHQ7XHJcblx0XHRoZWlnaHQ6IDEwMCU7XHJcblx0XHR3aWR0aDogMjAlO1xyXG5cdFx0Zm9udC1zaXplOiA0MHB4O1xyXG5cdFx0Y29sb3I6ICNGRjU3MjI7XHJcblx0XHRsaW5lLWhlaWdodDogMTMwcHg7XHJcblx0fVxyXG5cdC5ib3gtdHAge1xyXG5cdFx0aGVpZ2h0OiAzMCU7XHJcblx0fVxyXG5cdC5ib3gtdHAgLnN1Yi1tYWluIHtcclxuXHRcdC8qIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7ICovXHJcblx0fVxyXG5cdC5ib3gtbWQge1xyXG5cdFx0aGVpZ2h0OiA0MyU7XHJcblx0fVxyXG5cdC5ib3gtbWQgLnN1Yi1tYWluIHtcclxuXHR9XHJcblx0LnN1Yi1tYWluLXJpZ2h0IHtcclxuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdGhlaWdodDogMTAwJTtcclxuXHRcdHdpZHRoOiA1MCU7XHJcblx0fVxyXG5cdC5zdWItaW5mbyB7XHJcblx0XHR3aWR0aDogMTAwJTtcclxuXHRcdGhlaWdodDogMzMlO1xyXG5cdH1cclxuXHQuc3ViLWluZm8gaW1hZ2Uge1xyXG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0ZmxvYXQ6IGxlZnQ7XHJcblx0XHRoZWlnaHQ6IDEwMCU7XHJcblx0XHR3aWR0aDogMTUlO1xyXG5cdH1cclxuXHQuc3ViLWluZm8gdGV4dCB7XHJcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHR3aWR0aDogNDAlO1xyXG5cdFx0aGVpZ2h0OiAxMDAlO1xyXG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdFx0bGluZS1oZWlnaHQ6IDEyMHB4O1xyXG5cdFx0Zm9udC1zaXplOiAyMHB4O1xyXG5cdH1cclxuXHQuYm94LWJ0IHtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICMwNjNBN0I7XHJcblx0XHRib3JkZXI6IG5vbmU7XHJcblx0XHRoZWlnaHQ6IDE1JTtcclxuXHRcdGNvbG9yOiAjRkZGRkZGO1xyXG5cdH1cclxuXHQuYm94LWJ0IGltYWdlIHtcclxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdGZsb2F0OiByaWdodDtcclxuXHRcdHJpZ2h0OiAwO1xyXG5cdFx0dG9wOiAwO1xyXG5cdFx0d2lkdGg6IDIwJTtcclxuXHRcdGhlaWdodDogMTAwJTtcclxuXHR9XHJcblx0LmJveC1idCB7XHJcblx0XHRmb250LXNpemU6IDM2cHg7XHJcblx0XHRsaW5lLWhlaWdodDogMTQwcHg7XHJcblx0XHR0ZXh0LWluZGVudDogNWVtO1xyXG5cdH1cclxuXHQucmlnaHQtaXRlbSB7XHJcblx0XHRoZWlnaHQ6IDk0JTtcclxuXHR9XHJcblx0LnN1Yi1sZWZ0IHtcclxuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdGZsb2F0OiBsZWZ0O1xyXG5cdFx0d2lkdGg6IDQwJTtcclxuXHR9XHJcblx0LnN1Yi1yaWdodCB7XHJcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHRmbG9hdDogcmlnaHQ7XHJcblx0XHR3aWR0aDogMjAlO1xyXG5cdH1cclxuXHQuc3ViLW1haW4ge1xyXG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0LyogYmFja2dyb3VuZC1jb2xvcjogIzMxQzRDNDsgKi9cclxuXHRcdHdpZHRoOiA5MiU7XHJcblx0XHRoZWlnaHQ6IDgwJTtcclxuXHRcdGJvdHRvbTogMDtcclxuXHR9XHJcbjwvc3R5bGU+XHJcbjwhLS0ge1wibWF0bnJcIjpcIjExMDAzNDktMTAwMDBcIixcIm1ha254XCI6XCJDNVMtNC1NMDMvMzMzL0tTXCIsXCJiYXRjaFwiOlwiMjIwMzc1MDIzMDBcIixcImNvdW50XCI6MS4wfSxcclxuXHRcdFx0XHRcdHtcIm1hdG5yXCI6XCIxMTAwMzQ5LTEwMDAwXCIsXCJtYWtueFwiOlwiQzVTLTQtTTAzLzMzMy9LU1wiLFwiYmF0Y2hcIjpcIjIyMDM3NTA1MTQ2XCIsXCJjb3VudFwiOjEuMH0sXHJcblx0XHRcdFx0XHR7XCJtYXRuclwiOlwiMTEwMDM0OS0xMDAwMFwiLFwibWFrbnhcIjpcIkM1Uy00LU0wMy8zMzMvS1NcIixcImJhdGNoXCI6XCIyMjAyNzUwNDgwMVwiLFwiY291bnRcIjoxLjB9LFxyXG5cdFx0XHRcdFx0e1wibWF0bnJcIjpcIjExMDAzNDktMTAwMDBcIixcIm1ha254XCI6XCJDNVMtNC1NMDMvMzMzL0tTXCIsXCJiYXRjaFwiOlwiMjIwMjc1MDc3MjlcIixcImNvdW50XCI6MS4wfSxcclxuXHRcdFx0XHRcdHtcIm1hdG5yXCI6XCIxMTAwMzQ5LTEwMDAwXCIsXCJtYWtueFwiOlwiQzVTLTQtTTAzLzMzMy9LU1wiLFwiYmF0Y2hcIjpcIjIyMDI3NTA3NzI3XCIsXCJjb3VudFwiOjEuMH0sXHJcblx0XHRcdFx0XHR7XCJtYXRuclwiOlwiMTEwMDM0OS0xMDAwMFwiLFwibWFrbnhcIjpcIkM1Uy00LU0wMy8zMzMvS1NcIixcImJhdGNoXCI6XCIyMjAyNzUwNzczMVwiLFwiY291bnRcIjoxLjB9LFxyXG5cdFx0XHRcdFx0e1wibWF0bnJcIjpcIjExMDAzNDktMTAwMDBcIixcIm1ha254XCI6XCJDNVMtNC1NMDMvMzMzL0tTXCIsXCJiYXRjaFwiOlwiMjIwMjc1MDQ4MDdcIixcImNvdW50XCI6MS4wfSxcclxuXHRcdFx0XHRcdHtcIm1hdG5yXCI6XCIxMTAwMzQ5LTEwMDAwXCIsXCJtYWtueFwiOlwiQzVTLTQtTTAzLzMzMy9LU1wiLFwiYmF0Y2hcIjpcIjIyMDI3NTA0ODA1XCIsXCJjb3VudFwiOjEuMH0sXHJcblx0XHRcdFx0XHR7XCJtYXRuclwiOlwiMTEwMDM0OS0xMDAwMFwiLFwibWFrbnhcIjpcIkM1Uy00LU0wMy8zMzMvS1NcIixcImJhdGNoXCI6XCIyMjAyNzUwNDc5N1wiLFwiY291bnRcIjoxLjB9LFxyXG5cdFx0XHRcdFx0e1wibWF0bnJcIjpcIjExMDAzNDktMTAwMDBcIixcIm1ha254XCI6XCJDNVMtNC1NMDMvMzMzL0tTXCIsXCJiYXRjaFwiOlwiMjIwMjc1MDQ3OTRcIixcImNvdW50XCI6MS4wfSxcclxuXHRcdFx0XHRcdHtcIm1hdG5yXCI6XCIxMTAwMzQ5LTEwMDAwXCIsXCJtYWtueFwiOlwiQzVTLTQtTTAzLzMzMy9LU1wiLFwiYmF0Y2hcIjpcIjIyMDI3NTA0NzkxXCIsXCJjb3VudFwiOjEuMH0sXHJcblx0XHRcdFx0XHR7XCJtYXRuclwiOlwiMTEwMDM0OS0xMDAwMFwiLFwibWFrbnhcIjpcIkM1Uy00LU0wMy8zMzMvS1NcIixcImJhdGNoXCI6XCIyMjAyNzUwNDc5M1wiLFwiY291bnRcIjoxLjB9LFxyXG5cdFx0XHRcdFx0e1wibWF0bnJcIjpcIjExMDAzNDktMTAwMDBcIixcIm1ha254XCI6XCJDNVMtNC1NMDMvMzMzL0tTXCIsXCJiYXRjaFwiOlwiMjIwMzc1MDUxNDFcIixcImNvdW50XCI6MS4wfSxcclxuXHRcdFx0XHRcdHtcIm1hdG5yXCI6XCIxMTAwMzQ5LTEwMDAwXCIsXCJtYWtueFwiOlwiQzVTLTQtTTAzLzMzMy9LU1wiLFwiYmF0Y2hcIjpcIjIyMDI3NTA3NzI4XCIsXCJjb3VudFwiOjEuMH0sXHJcblx0XHRcdFx0XHR7XCJtYXRuclwiOlwiMTEwMDM0OS0xMDAwMFwiLFwibWFrbnhcIjpcIkM1Uy00LU0wMy8zMzMvS1NcIixcImJhdGNoXCI6XCIyMjAyNzUwNDgxMFwiLFwiY291bnRcIjoxLjB9LFxyXG5cdFx0XHRcdFx0e1wibWF0bnJcIjpcIjExMDAzNDktMTAwMDBcIixcIm1ha254XCI6XCJDNVMtNC1NMDMvMzMzL0tTXCIsXCJiYXRjaFwiOlwiMjIwMzc1MDUxNDhcIixcImNvdW50XCI6MS4wfSAtLT4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///100\n");
 
 /***/ }),
-/* 100 */
+/* 101 */
 /*!*****************************************************************!*\
   !*** D:/Workspace/zy/private/Monitor-APP/pages/index/data.json ***!
   \*****************************************************************/
 /*! exports provided: dataYYY, dataEEE, default */
 /***/ (function(module) {
 
-eval("module.exports = JSON.parse(\"{\\\"dataYYY\\\":{\\\"data\\\":{\\\"msg\\\":\\\"鎿嶄綔鎴愬姛\\\",\\\"code\\\":200,\\\"data\\\":[{\\\"title\\\":\\\"鍏ㄦ澘鍑哄簱\\\",\\\"workNo\\\":8046,\\\"staNo\\\":200,\\\"sourceStaNo\\\":null,\\\"locNo\\\":null,\\\"sourceLocNo\\\":\\\"1500502\\\",\\\"matDtos\\\":[{\\\"matnr\\\":\\\"LPJ.SLJ.XG.037\\\",\\\"maknx\\\":\\\"宸ョ▼濉戞枡涓嬪集澶碶\\",\\\"batch\\\":null,\\\"count\\\":40}],\\\"emptyMk\\\":false,\\\"ioType\\\":101}]}},\\\"dataEEE\\\":{\\\"data\\\":{\\\"msg\\\":\\\"鎿嶄綔鎴愬姛\\\",\\\"code\\\":200,\\\"data\\\":\\\"\\\"}}}\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiIxMDAuanMiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///100\n");
-
-/***/ }),
-/* 101 */
-/*!******************************************************************!*\
-  !*** D:/Workspace/zy/private/Monitor-APP/mockdata/demodata.json ***!
-  \******************************************************************/
-/*! exports provided: localdata, localdataB, TLine, Scatter, Bubble, Column, ColumnA, Mix, Line, Pie, PieA, Radar, Arcbar1, Arcbar2, Gauge, Candle, CandleColumn, Word, default */
-/***/ (function(module) {
-
-eval("module.exports = JSON.parse(\"{\\\"localdata\\\":[{\\\"value\\\":35,\\\"text\\\":\\\"2016\\\",\\\"group\\\":\\\"鐩爣鍊糪\\"},{\\\"value\\\":18,\\\"text\\\":\\\"2016\\\",\\\"group\\\":\\\"瀹屾垚閲廫\\"},{\\\"value\\\":36,\\\"text\\\":\\\"2017\\\",\\\"group\\\":\\\"鐩爣鍊糪\\"},{\\\"value\\\":27,\\\"text\\\":\\\"2017\\\",\\\"group\\\":\\\"瀹屾垚閲廫\\"},{\\\"value\\\":31,\\\"text\\\":\\\"2018\\\",\\\"group\\\":\\\"鐩爣鍊糪\\"},{\\\"value\\\":21,\\\"text\\\":\\\"2018\\\",\\\"group\\\":\\\"瀹屾垚閲廫\\"},{\\\"value\\\":33,\\\"text\\\":\\\"2019\\\",\\\"group\\\":\\\"鐩爣鍊糪\\"},{\\\"value\\\":24,\\\"text\\\":\\\"2019\\\",\\\"group\\\":\\\"瀹屾垚閲廫\\"},{\\\"value\\\":13,\\\"text\\\":\\\"2020\\\",\\\"group\\\":\\\"鐩爣鍊糪\\"},{\\\"value\\\":6,\\\"text\\\":\\\"2020\\\",\\\"group\\\":\\\"瀹屾垚閲廫\\"},{\\\"value\\\":34,\\\"text\\\":\\\"2021\\\",\\\"group\\\":\\\"鐩爣鍊糪\\"},{\\\"value\\\":28,\\\"text\\\":\\\"2021\\\",\\\"group\\\":\\\"瀹屾垚閲廫\\"}],\\\"localdataB\\\":[{\\\"value\\\":50,\\\"text\\\":\\\"涓�鐝璡\\"},{\\\"value\\\":30,\\\"text\\\":\\\"浜岀彮\\\"},{\\\"value\\\":20,\\\"text\\\":\\\"涓夌彮\\\"},{\\\"value\\\":18,\\\"text\\\":\\\"鍥涚彮\\\"},{\\\"value\\\":8,\\\"text\\\":\\\"浜旂彮\\\"}],\\\"TLine\\\":{\\\"series\\\":[{\\\"name\\\":\\\"鏃堕棿杞�1\\\",\\\"data\\\":[[10000,55],[30000,25],[50000,55],[70000,25],[90000,55]]},{\\\"name\\\":\\\"鏃堕棿杞�2\\\",\\\"data\\\":[[0,25],[20000,55],[40000,25],[60000,55],[80000,25]]},{\\\"name\\\":\\\"鏃堕棿杞�3\\\",\\\"data\\\":[[0,55],[15000,25],[30000,55],[45000,25],[60000,55]]}]},\\\"Scatter\\\":{\\\"series\\\":[{\\\"name\\\":\\\"鏁g偣涓�\\\",\\\"data\\\":[[10,8.04],[8.07,6.95],[13,7.58],[9.05,8.81],[11,8.33],[14,7.66],[13.4,6.81],[10,6.33],[14,8.96],[12.5,6.82]]},{\\\"name\\\":\\\"鏁g偣浜孿\\",\\\"data\\\":[[9.15,7.2],[11.5,7.2],[3.03,4.23],[12.2,7.83],[2.02,4.47],[1.05,3.33],[4.05,4.96],[6.03,7.24],[12,6.26],[12,8.84],[7.08,5.82],[5.02,5.68]]}]},\\\"Bubble\\\":{\\\"series\\\":[{\\\"name\\\":\\\"姘旀场涓�\\\",\\\"data\\\":[[95,95,23,\\\"鏍囬1\\\"],[30,55,33,\\\"鏍囬2\\\"]]},{\\\"name\\\":\\\"姘旀场浜孿\\",\\\"data\\\":[[130,30,30,\\\"鏍囬3\\\"],[200,90,40,\\\"鏍囬4\\\"]]}]},\\\"Column\\\":{\\\"categories\\\":[\\\"2016\\\",\\\"2017\\\",\\\"2018\\\",\\\"2019\\\",\\\"2020\\\",\\\"2021\\\"],\\\"series\\\":[{\\\"name\\\":\\\"鐩爣鍊糪\\",\\\"data\\\":[35,36,31,33,13,34]},{\\\"name\\\":\\\"瀹屾垚閲廫\\",\\\"data\\\":[18,27,21,24,6,28]}]},\\\"ColumnA\\\":{\\\"categories\\\":[\\\"2016\\\",\\\"2017\\\",\\\"2018\\\",\\\"2019\\\",\\\"2020\\\",\\\"2021\\\"],\\\"series\\\":[{\\\"name\\\":\\\"鎴愪氦閲�1\\\",\\\"data\\\":[15,{\\\"value\\\":20,\\\"color\\\":\\\"#f04864\\\"},45,37,43,34]},{\\\"name\\\":\\\"鎴愪氦閲�2\\\",\\\"data\\\":[30,{\\\"value\\\":40,\\\"color\\\":\\\"#facc14\\\"},25,14,34,18]}]},\\\"Mix\\\":{\\\"categories\\\":[\\\"2016\\\",\\\"2017\\\",\\\"2018\\\",\\\"2019\\\",\\\"2020\\\",\\\"2021\\\"],\\\"series\\\":[{\\\"name\\\":\\\"鏇查潰\\\",\\\"data\\\":[70,50,85,130,64,88],\\\"type\\\":\\\"area\\\",\\\"style\\\":\\\"curve\\\"},{\\\"name\\\":\\\"鏌�1\\\",\\\"index\\\":1,\\\"data\\\":[40,{\\\"value\\\":30,\\\"color\\\":\\\"#f04864\\\"},55,110,24,58],\\\"type\\\":\\\"column\\\"},{\\\"name\\\":\\\"鏌�2\\\",\\\"index\\\":1,\\\"data\\\":[50,20,75,60,34,38],\\\"type\\\":\\\"column\\\"},{\\\"name\\\":\\\"鏇茬嚎\\\",\\\"data\\\":[70,50,85,130,64,88],\\\"type\\\":\\\"line\\\",\\\"style\\\":\\\"curve\\\",\\\"color\\\":\\\"#1890ff\\\",\\\"disableLegend\\\":true},{\\\"name\\\":\\\"鎶樼嚎\\\",\\\"data\\\":[120,140,105,170,95,160],\\\"type\\\":\\\"line\\\",\\\"color\\\":\\\"#2fc25b\\\"},{\\\"name\\\":\\\"鐐筡\\",\\\"index\\\":2,\\\"data\\\":[100,80,125,150,112,132],\\\"type\\\":\\\"point\\\",\\\"color\\\":\\\"#f04864\\\"}]},\\\"Line\\\":{\\\"categories\\\":[\\\"2016\\\",\\\"2017\\\",\\\"2018\\\",\\\"2019\\\",\\\"2020\\\",\\\"2021\\\"],\\\"series\\\":[{\\\"name\\\":\\\"鎴愪氦閲廇\\\",\\\"data\\\":[35,8,25,37,4,20]},{\\\"name\\\":\\\"鎴愪氦閲廈\\\",\\\"data\\\":[70,40,65,100,44,68]}]},\\\"Pie\\\":{\\\"series\\\":[{\\\"name\\\":\\\"涓�鐝璡\\",\\\"data\\\":50},{\\\"name\\\":\\\"浜岀彮\\\",\\\"data\\\":30},{\\\"name\\\":\\\"涓夌彮\\\",\\\"data\\\":20},{\\\"name\\\":\\\"鍥涚彮\\\",\\\"data\\\":18},{\\\"name\\\":\\\"浜旂彮\\\",\\\"data\\\":8}]},\\\"PieA\\\":{\\\"series\\\":[{\\\"data\\\":[{\\\"name\\\":\\\"鍦ㄥ簱\\\",\\\"value\\\":314},{\\\"name\\\":\\\"绌篭\\",\\\"value\\\":1175},{\\\"name\\\":\\\"绂佺敤\\\",\\\"value\\\":96}]}]},\\\"Radar\\\":{\\\"categories\\\":[\\\"缁村害1\\\",\\\"缁村害2\\\",\\\"缁村害3\\\",\\\"缁村害4\\\",\\\"缁村害5\\\",\\\"缁村害6\\\"],\\\"series\\\":[{\\\"name\\\":\\\"鎴愪氦閲�1\\\",\\\"data\\\":[90,110,165,195,187,172]},{\\\"name\\\":\\\"鎴愪氦閲�2\\\",\\\"data\\\":[190,210,105,35,27,102]}]},\\\"Arcbar1\\\":{\\\"series\\\":[{\\\"name\\\":\\\"姝g‘鐜嘰\\",\\\"data\\\":0.8,\\\"color\\\":\\\"#2fc25b\\\"}]},\\\"Arcbar2\\\":{\\\"series\\\":[{\\\"name\\\":\\\"涓�鐝璡\\",\\\"data\\\":0.8},{\\\"name\\\":\\\"浜岀彮\\\",\\\"data\\\":0.6},{\\\"name\\\":\\\"涓夌彮\\\",\\\"data\\\":0.45},{\\\"name\\\":\\\"鍥涚彮\\\",\\\"data\\\":0.3},{\\\"name\\\":\\\"浜旂彮\\\",\\\"data\\\":0.15}]},\\\"Gauge\\\":{\\\"categories\\\":[{\\\"value\\\":0.2,\\\"color\\\":\\\"#1890ff\\\"},{\\\"value\\\":0.8,\\\"color\\\":\\\"#2fc25b\\\"},{\\\"value\\\":1,\\\"color\\\":\\\"#f04864\\\"}],\\\"series\\\":[{\\\"name\\\":\\\"瀹屾垚鐜嘰\\",\\\"data\\\":0.66}]},\\\"Candle\\\":{\\\"categories\\\":[\\\"2020/1/24\\\",\\\"2020/1/25\\\",\\\"2020/1/28\\\",\\\"2020/1/29\\\",\\\"2020/1/30\\\",\\\"2020/1/31\\\",\\\"2020/2/1\\\",\\\"2020/2/4\\\",\\\"2020/2/5\\\",\\\"2020/2/6\\\",\\\"2020/2/7\\\",\\\"2020/2/8\\\",\\\"2020/2/18\\\",\\\"2020/2/19\\\",\\\"2020/2/20\\\",\\\"2020/2/21\\\",\\\"2020/2/22\\\",\\\"2020/2/25\\\",\\\"2020/2/26\\\",\\\"2020/2/27\\\",\\\"2020/2/28\\\",\\\"2020/3/1\\\",\\\"2020/3/4\\\",\\\"2020/3/5\\\",\\\"2020/3/6\\\",\\\"2020/3/7\\\",\\\"2020/3/8\\\",\\\"2020/3/11\\\",\\\"2020/3/12\\\",\\\"2020/3/13\\\",\\\"2020/3/14\\\",\\\"2020/3/15\\\",\\\"2020/3/18\\\",\\\"2020/3/19\\\",\\\"2020/3/20\\\",\\\"2020/3/21\\\",\\\"2020/3/22\\\",\\\"2020/3/25\\\",\\\"2020/3/26\\\",\\\"2020/3/27\\\",\\\"2020/3/28\\\",\\\"2020/3/29\\\",\\\"2020/4/1\\\",\\\"2020/4/2\\\",\\\"2020/4/3\\\",\\\"2020/4/8\\\",\\\"2020/4/9\\\",\\\"2020/4/10\\\",\\\"2020/4/11\\\",\\\"2020/4/12\\\",\\\"2020/4/15\\\",\\\"2020/4/16\\\",\\\"2020/4/17\\\",\\\"2020/4/18\\\",\\\"2020/4/19\\\",\\\"2020/4/22\\\",\\\"2020/4/23\\\",\\\"2020/4/24\\\",\\\"2020/4/25\\\",\\\"2020/4/26\\\",\\\"2020/5/2\\\",\\\"2020/5/3\\\",\\\"2020/5/6\\\",\\\"2020/5/7\\\",\\\"2020/5/8\\\",\\\"2020/5/9\\\",\\\"2020/5/10\\\",\\\"2020/5/13\\\",\\\"2020/5/14\\\",\\\"2020/5/15\\\",\\\"2020/5/16\\\",\\\"2020/5/17\\\",\\\"2020/5/20\\\",\\\"2020/5/21\\\",\\\"2020/5/22\\\",\\\"2020/5/23\\\",\\\"2020/5/24\\\",\\\"2020/5/27\\\",\\\"2020/5/28\\\",\\\"2020/5/29\\\",\\\"2020/5/30\\\",\\\"2020/5/31\\\",\\\"2020/6/3\\\",\\\"2020/6/4\\\",\\\"2020/6/5\\\",\\\"2020/6/6\\\",\\\"2020/6/7\\\",\\\"2020/6/13\\\"],\\\"series\\\":[{\\\"name\\\":\\\"涓婅瘉鎸囨暟\\\",\\\"data\\\":[[2320.26,2302.6,2287.3,2362.94],[2300,2291.3,2288.26,2308.38],[2295.35,2346.5,2295.35,2346.92],[2347.22,2358.98,2337.35,2363.8],[2360.75,2382.48,2347.89,2383.76],[2383.43,2385.42,2371.23,2391.82],[2377.41,2419.02,2369.57,2421.15],[2425.92,2428.15,2417.58,2440.38],[2411,2433.13,2403.3,2437.42],[2432.68,2434.48,2427.7,2441.73],[2430.69,2418.53,2394.22,2433.89],[2416.62,2432.4,2414.4,2443.03],[2441.91,2421.56,2415.43,2444.8],[2420.26,2382.91,2373.53,2427.07],[2383.49,2397.18,2370.61,2397.94],[2378.82,2325.95,2309.17,2378.82],[2322.94,2314.16,2308.76,2330.88],[2320.62,2325.82,2315.01,2338.78],[2313.74,2293.34,2289.89,2340.71],[2297.77,2313.22,2292.03,2324.63],[2322.32,2365.59,2308.92,2366.16],[2364.54,2359.51,2330.86,2369.65],[2332.08,2273.4,2259.25,2333.54],[2274.81,2326.31,2270.1,2328.14],[2333.61,2347.18,2321.6,2351.44],[2340.44,2324.29,2304.27,2352.02],[2326.42,2318.61,2314.59,2333.67],[2314.68,2310.59,2296.58,2320.96],[2309.16,2286.6,2264.83,2333.29],[2282.17,2263.97,2253.25,2286.33],[2255.77,2270.28,2253.31,2276.22],[2269.31,2278.4,2250,2312.08],[2267.29,2240.02,2239.21,2276.05],[2244.26,2257.43,2232.02,2261.31],[2257.74,2317.37,2257.42,2317.86],[2318.21,2324.24,2311.6,2330.81],[2321.4,2328.28,2314.97,2332],[2334.74,2326.72,2319.91,2344.89],[2318.58,2297.67,2281.12,2319.99],[2299.38,2301.26,2289,2323.48],[2273.55,2236.3,2232.91,2273.55],[2238.49,2236.62,2228.81,2246.87],[2229.46,2234.4,2227.31,2243.95],[2234.9,2227.74,2220.44,2253.42],[2232.69,2225.29,2217.25,2241.34],[2196.24,2211.59,2180.67,2212.59],[2215.47,2225.77,2215.47,2234.73],[2224.93,2226.13,2212.56,2233.04],[2236.98,2219.55,2217.26,2242.48],[2218.09,2206.78,2204.44,2226.26],[2199.91,2181.94,2177.39,2204.99],[2169.63,2194.85,2165.78,2196.43],[2195.03,2193.8,2178.47,2197.51],[2181.82,2197.6,2175.44,2206.03],[2201.12,2244.64,2200.58,2250.11],[2236.4,2242.17,2232.26,2245.12],[2242.62,2184.54,2182.81,2242.62],[2187.35,2218.32,2184.11,2226.12],[2213.19,2199.31,2191.85,2224.63],[2203.89,2177.91,2173.86,2210.58],[2170.78,2174.12,2161.14,2179.65],[2179.05,2205.5,2179.05,2222.81],[2212.5,2231.17,2212.5,2236.07],[2227.86,2235.57,2219.44,2240.26],[2242.39,2246.3,2235.42,2255.21],[2246.96,2232.97,2221.38,2247.86],[2228.82,2246.83,2225.81,2247.67],[2247.68,2241.92,2231.36,2250.85],[2238.9,2217.01,2205.87,2239.93],[2217.09,2224.8,2213.58,2225.19],[2221.34,2251.81,2210.77,2252.87],[2249.81,2282.87,2248.41,2288.09],[2286.33,2299.99,2281.9,2309.39],[2297.11,2305.11,2290.12,2305.3],[2303.75,2302.4,2292.43,2314.18],[2293.81,2275.67,2274.1,2304.95],[2281.45,2288.53,2270.25,2292.59],[2286.66,2293.08,2283.94,2301.7],[2293.4,2321.32,2281.47,2322.1],[2323.54,2324.02,2321.17,2334.33],[2316.25,2317.75,2310.49,2325.72],[2320.74,2300.59,2299.37,2325.53],[2300.21,2299.25,2294.11,2313.43],[2297.1,2272.42,2264.76,2297.1],[2270.71,2270.93,2260.87,2276.86],[2264.43,2242.11,2240.07,2266.69],[2242.26,2210.9,2205.07,2250.63],[2190.1,2148.35,2126.22,2190.1]]}]},\\\"CandleColumn\\\":{\\\"categories\\\":[\\\"2020/1/24\\\",\\\"2020/1/25\\\",\\\"2020/1/28\\\",\\\"2020/1/29\\\",\\\"2020/1/30\\\",\\\"2020/1/31\\\",\\\"2020/2/1\\\",\\\"2020/2/4\\\",\\\"2020/2/5\\\",\\\"2020/2/6\\\",\\\"2020/2/7\\\",\\\"2020/2/8\\\",\\\"2020/2/18\\\",\\\"2020/2/19\\\",\\\"2020/2/20\\\",\\\"2020/2/21\\\",\\\"2020/2/22\\\",\\\"2020/2/25\\\",\\\"2020/2/26\\\",\\\"2020/2/27\\\",\\\"2020/2/28\\\",\\\"2020/3/1\\\",\\\"2020/3/4\\\",\\\"2020/3/5\\\",\\\"2020/3/6\\\",\\\"2020/3/7\\\",\\\"2020/3/8\\\",\\\"2020/3/11\\\",\\\"2020/3/12\\\",\\\"2020/3/13\\\",\\\"2020/3/14\\\",\\\"2020/3/15\\\",\\\"2020/3/18\\\",\\\"2020/3/19\\\",\\\"2020/3/20\\\",\\\"2020/3/21\\\",\\\"2020/3/22\\\",\\\"2020/3/25\\\",\\\"2020/3/26\\\",\\\"2020/3/27\\\",\\\"2020/3/28\\\",\\\"2020/3/29\\\",\\\"2020/4/1\\\",\\\"2020/4/2\\\",\\\"2020/4/3\\\",\\\"2020/4/8\\\",\\\"2020/4/9\\\",\\\"2020/4/10\\\",\\\"2020/4/11\\\",\\\"2020/4/12\\\",\\\"2020/4/15\\\",\\\"2020/4/16\\\",\\\"2020/4/17\\\",\\\"2020/4/18\\\",\\\"2020/4/19\\\",\\\"2020/4/22\\\",\\\"2020/4/23\\\",\\\"2020/4/24\\\",\\\"2020/4/25\\\",\\\"2020/4/26\\\",\\\"2020/5/2\\\",\\\"2020/5/3\\\",\\\"2020/5/6\\\",\\\"2020/5/7\\\",\\\"2020/5/8\\\",\\\"2020/5/9\\\",\\\"2020/5/10\\\",\\\"2020/5/13\\\",\\\"2020/5/14\\\",\\\"2020/5/15\\\",\\\"2020/5/16\\\",\\\"2020/5/17\\\",\\\"2020/5/20\\\",\\\"2020/5/21\\\",\\\"2020/5/22\\\",\\\"2020/5/23\\\",\\\"2020/5/24\\\",\\\"2020/5/27\\\",\\\"2020/5/28\\\",\\\"2020/5/29\\\",\\\"2020/5/30\\\",\\\"2020/5/31\\\",\\\"2020/6/3\\\",\\\"2020/6/4\\\",\\\"2020/6/5\\\",\\\"2020/6/6\\\",\\\"2020/6/7\\\",\\\"2020/6/13\\\"],\\\"series\\\":[{\\\"name\\\":\\\"鎴愪氦閲�1\\\",\\\"data\\\":[15,20,45,37,43,15,20,45,37,43,15,20,45,37,43,15,20,45,37,43,15,20,45,37,43,15,20,45,37,43,15,20,45,37,43,15,20,45,37,43,15,20,45,37,43,15,20,45,37,43,15,20,45,37,43,15,20,45,37,43,15,20,45,37,43,15,20,45,37,43,15,20,45,37,43,15,20,45,37,43,15,20,45,37,43,15,20,45]}]},\\\"Word\\\":{\\\"series\\\":[{\\\"name\\\":\\\"璺ㄥ叏绔浘琛╘\\",\\\"textSize\\\":25},{\\\"name\\\":\\\"寰俊灏忕▼搴廫\\",\\\"textSize\\\":20},{\\\"name\\\":\\\"鏀粯瀹濆皬绋嬪簭\\\",\\\"textSize\\\":20},{\\\"name\\\":\\\"鐧惧害灏忕▼搴廫\\",\\\"textSize\\\":20},{\\\"name\\\":\\\"QQ灏忕▼搴廫\\",\\\"textSize\\\":20},{\\\"name\\\":\\\"澶存潯灏忕▼搴廫\\",\\\"textSize\\\":20},{\\\"name\\\":\\\"鎶栭煶灏忕▼搴廫\\",\\\"textSize\\\":20},{\\\"name\\\":\\\"360灏忕▼搴廫\\",\\\"textSize\\\":20},{\\\"name\\\":\\\"璺ㄥ叏绔痋\\",\\\"textSize\\\":10},{\\\"name\\\":\\\"璺ㄥ叏绔痋\\",\\\"textSize\\\":12},{\\\"name\\\":\\\"璺ㄥ叏绔痋\\",\\\"textSize\\\":10},{\\\"name\\\":\\\"璺ㄥ叏绔痋\\",\\\"textSize\\\":12},{\\\"name\\\":\\\"璺ㄥ叏绔痋\\",\\\"textSize\\\":10},{\\\"name\\\":\\\"璺ㄥ叏绔痋\\",\\\"textSize\\\":12},{\\\"name\\\":\\\"璺ㄥ叏绔痋\\",\\\"textSize\\\":10},{\\\"name\\\":\\\"璺ㄥ叏绔痋\\",\\\"textSize\\\":12}]}}\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiIxMDEuanMiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///101\n");
+eval("module.exports = JSON.parse(\"{\\\"dataYYY\\\":{\\\"data\\\":{\\\"msg\\\":\\\"鎿嶄綔鎴愬姛\\\",\\\"code\\\":200,\\\"data\\\":[{\\\"title\\\":\\\"鍏ㄦ澘鍑哄簱\\\",\\\"workNo\\\":8046,\\\"staNo\\\":200,\\\"sourceStaNo\\\":null,\\\"locNo\\\":null,\\\"sourceLocNo\\\":\\\"1500502\\\",\\\"matDtos\\\":[{\\\"matnr\\\":\\\"LPJ.SLJ.XG.037\\\",\\\"maknx\\\":\\\"宸ョ▼濉戞枡涓嬪集澶碶\\",\\\"batch\\\":null,\\\"count\\\":40}],\\\"emptyMk\\\":false,\\\"ioType\\\":101}]}},\\\"dataEEE\\\":{\\\"data\\\":{\\\"msg\\\":\\\"鎿嶄綔鎴愬姛\\\",\\\"code\\\":200,\\\"data\\\":\\\"\\\"}}}\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiIxMDEuanMiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///101\n");
 
 /***/ }),
 /* 102 */
@@ -6132,7 +6626,7 @@
 /***/ (function(module, exports, __webpack_require__) {
 
 "use strict";
-eval("Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0; //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default =\n{\n  name: '',\n  data: function data() {\n    return {\n      autoplay: true,\n      interval: 1000,\n      duration: 1000,\n      list: [\n      '璇风偣鍑诲彂琛岃彍鍗曡繘琛屽彂甯�',\n      '1',\n      '浣撶Н杈冨ぇ锛涜嫢瑕佹寮忓彂甯�',\n      '2',\n      '杩愯妯″紡涓嬩笉鍘嬬缉浠g爜涓斿惈鏈塻ourcemap',\n      '3',\n      '妫�鏌ユ槸鍚﹀惎鍔ㄥ涓井淇″紑鍙戣�呭伐鍏凤紝濡傛灉鏄垯鍏抽棴鎵�鏈夋墦寮�鐨勫井淇″紑鍙戣�呭伐鍏凤紝',\n      '4',\n      '鐒跺悗鍐嶉噸鏂拌繍琛�',\n      '5',\n      '濡傛灉鍑虹幇寰俊寮�鍙戣�呭伐鍏峰惎鍔ㄥ悗鐧藉睆鐨勯棶棰�',\n      '6',\n      '鎴栬�呭叧闂井淇″紑鍙戣�呭伐鍏凤紝鐒跺悗鍐嶄粠HBuilderX涓惎鍔ㄦ寚瀹氶〉闈�',\n      '7',\n      '鍙互閫氳繃寰俊寮�鍙戣�呭伐鍏峰垏鎹ages.json涓璫ondition閰嶇疆鐨勯〉闈�',\n      '8',\n      '涓慨鏀规枃浠跺苟淇濆瓨锛屼細鑷姩鍒锋柊寰俊妯℃嫙鍣�',\n      '9',\n      '寰俊寮�鍙戣�呭伐鍏峰凡鍚姩锛屽湪HBuilderX',\n      '10'] };\n\n\n  } };exports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaW5kZXgvbW9uaXRvci52dWUiXSwibmFtZXMiOlsibmFtZSIsImRhdGEiLCJhdXRvcGxheSIsImludGVydmFsIiwiZHVyYXRpb24iLCJsaXN0Il0sIm1hcHBpbmdzIjoid0ZBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRWtCO0FBQ1ZBLE1BQUksRUFBQyxFQURLO0FBRVZDLE1BRlUsa0JBRUo7QUFDRixXQUFNO0FBQ0ZDLGNBQVEsRUFBQyxJQURQO0FBRUZDLGNBQVEsRUFBQyxJQUZQO0FBR0ZDLGNBQVEsRUFBQyxJQUhQO0FBSUZDLFVBQUksRUFBQztBQUNELG1CQURDO0FBRWhCLFNBRmdCO0FBR0QsbUJBSEM7QUFJaEIsU0FKZ0I7QUFLRCw4QkFMQztBQU1oQixTQU5nQjtBQU9ELDJDQVBDO0FBUWhCLFNBUmdCO0FBU0QsZUFUQztBQVVoQixTQVZnQjtBQVdELDJCQVhDO0FBWWhCLFNBWmdCO0FBYUQsd0NBYkM7QUFjaEIsU0FkZ0I7QUFlRCw4Q0FmQztBQWdCaEIsU0FoQmdCO0FBaUJELDJCQWpCQztBQWtCaEIsU0FsQmdCO0FBbUJELDZCQW5CQztBQW9CaEIsVUFwQmdCLENBSkgsRUFBTjs7O0FBMkJILEdBOUJTLEUiLCJmaWxlIjoiMTA2LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cblxuICAgIGV4cG9ydCBkZWZhdWx0e1xuICAgICAgICBuYW1lOicnLFxuICAgICAgICBkYXRhKCl7XG4gICAgICAgICAgICByZXR1cm57XG4gICAgICAgICAgICAgICAgYXV0b3BsYXk6dHJ1ZSxcbiAgICAgICAgICAgICAgICBpbnRlcnZhbDoxMDAwLFxuICAgICAgICAgICAgICAgIGR1cmF0aW9uOjEwMDAsXG4gICAgICAgICAgICAgICAgbGlzdDpbXG4gICAgICAgICAgICAgICAgICAgICfor7fngrnlh7vlj5HooYzoj5zljZXov5vooYzlj5HluIMnLFxuXHRcdFx0XHRcdCcxJyxcbiAgICAgICAgICAgICAgICAgICAgJ+S9k+enr+i+g+Wkp++8m+iLpeimgeato+W8j+WPkeW4gycsXG5cdFx0XHRcdFx0JzInLFxuICAgICAgICAgICAgICAgICAgICAn6L+Q6KGM5qih5byP5LiL5LiN5Y6L57yp5Luj56CB5LiU5ZCr5pyJc291cmNlbWFwJyxcblx0XHRcdFx0XHQnMycsXG4gICAgICAgICAgICAgICAgICAgICfmo4Dmn6XmmK/lkKblkK/liqjlpJrkuKrlvq7kv6HlvIDlj5HogIXlt6XlhbfvvIzlpoLmnpzmmK/liJnlhbPpl63miYDmnInmiZPlvIDnmoTlvq7kv6HlvIDlj5HogIXlt6XlhbfvvIwnLFxuXHRcdFx0XHRcdCc0JyxcbiAgICAgICAgICAgICAgICAgICAgJ+eEtuWQjuWGjemHjeaWsOi/kOihjCcsXG5cdFx0XHRcdFx0JzUnLFxuICAgICAgICAgICAgICAgICAgICAn5aaC5p6c5Ye6546w5b6u5L+h5byA5Y+R6ICF5bel5YW35ZCv5Yqo5ZCO55m95bGP55qE6Zeu6aKYJyxcblx0XHRcdFx0XHQnNicsXG4gICAgICAgICAgICAgICAgICAgICfmiJbogIXlhbPpl63lvq7kv6HlvIDlj5HogIXlt6XlhbfvvIznhLblkI7lho3ku45IQnVpbGRlcljkuK3lkK/liqjmjIflrprpobXpnaInLFxuXHRcdFx0XHRcdCc3JyxcbiAgICAgICAgICAgICAgICAgICAgJ+WPr+S7pemAmui/h+W+ruS/oeW8gOWPkeiAheW3peWFt+WIh+aNonBhZ2VzLmpzb27kuK1jb25kaXRpb27phY3nva7nmoTpobXpnaInLFxuXHRcdFx0XHRcdCc4JyxcbiAgICAgICAgICAgICAgICAgICAgJ+S4reS/ruaUueaWh+S7tuW5tuS/neWtmO+8jOS8muiHquWKqOWIt+aWsOW+ruS/oeaooeaLn+WZqCcsXG5cdFx0XHRcdFx0JzknLFxuICAgICAgICAgICAgICAgICAgICAn5b6u5L+h5byA5Y+R6ICF5bel5YW35bey5ZCv5Yqo77yM5ZyoSEJ1aWxkZXJYJyxcblx0XHRcdFx0XHQnMTAnLFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgfVxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///106\n");
+eval("Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0; //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default =\n{\n  name: '',\n  data: function data() {\n    return {\n      autoplay: true,\n      interval: 1000,\n      duration: 1000,\n      list: [\n      '璇风偣鍑诲彂琛岃彍鍗曡繘琛屽彂甯�',\n      '1',\n      '浣撶Н杈冨ぇ锛涜嫢瑕佹寮忓彂甯�',\n      '2',\n      '杩愯妯″紡涓嬩笉鍘嬬缉浠g爜涓斿惈鏈塻ourcemap',\n      '3',\n      '妫�鏌ユ槸鍚﹀惎鍔ㄥ涓井淇″紑鍙戣�呭伐鍏凤紝濡傛灉鏄垯鍏抽棴鎵�鏈夋墦寮�鐨勫井淇″紑鍙戣�呭伐鍏凤紝',\n      '4',\n      '鐒跺悗鍐嶉噸鏂拌繍琛�',\n      '5',\n      '濡傛灉鍑虹幇寰俊寮�鍙戣�呭伐鍏峰惎鍔ㄥ悗鐧藉睆鐨勯棶棰�',\n      '6',\n      '鎴栬�呭叧闂井淇″紑鍙戣�呭伐鍏凤紝鐒跺悗鍐嶄粠HBuilderX涓惎鍔ㄦ寚瀹氶〉闈�',\n      '7',\n      '鍙互閫氳繃寰俊寮�鍙戣�呭伐鍏峰垏鎹ages.json涓璫ondition閰嶇疆鐨勯〉闈�',\n      '8',\n      '涓慨鏀规枃浠跺苟淇濆瓨锛屼細鑷姩鍒锋柊寰俊妯℃嫙鍣�',\n      '9',\n      '寰俊寮�鍙戣�呭伐鍏峰凡鍚姩锛屽湪HBuilderX',\n      '10'] };\n\n\n  } };exports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaW5kZXgvbW9uaXRvci52dWUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFjQTtBQUNBLFVBREE7QUFFQSxNQUZBLGtCQUVBO0FBQ0E7QUFDQSxvQkFEQTtBQUVBLG9CQUZBO0FBR0Esb0JBSEE7QUFJQTtBQUNBLG1CQURBO0FBRUEsU0FGQTtBQUdBLG1CQUhBO0FBSUEsU0FKQTtBQUtBLDhCQUxBO0FBTUEsU0FOQTtBQU9BLDJDQVBBO0FBUUEsU0FSQTtBQVNBLGVBVEE7QUFVQSxTQVZBO0FBV0EsMkJBWEE7QUFZQSxTQVpBO0FBYUEsd0NBYkE7QUFjQSxTQWRBO0FBZUEsOENBZkE7QUFnQkEsU0FoQkE7QUFpQkEsMkJBakJBO0FBa0JBLFNBbEJBO0FBbUJBLDZCQW5CQTtBQW9CQSxVQXBCQSxDQUpBOzs7QUEyQkEsR0E5QkEsRSIsImZpbGUiOiIxMDYuanMiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuPHRlbXBsYXRlPlxyXG4gICAgPHZpZXc+XHJcbiAgICAgICAgPHZpZXc+IFxyXG4gICAgICAgICAgICA8c3dpcGVyIHN0eWxlPVwiaGVpZ2h0OiA1MDBweDtcIiBjaXJjdWxhcj1cInRydWVcIiB2ZXJ0aWNhbD1cInRydWVcIiBkaXNwbGF5LW11bHRpcGxlLWl0ZW1zPVwiMTZcIiA6YXV0b3BsYXk9XCJhdXRvcGxheVwiIDppbnRlcnZhbD1cImludGVydmFsXCIgOmR1cmF0aW9uPVwiZHVyYXRpb25cIj5cclxuICAgICAgICAgICAgICAgIDxzd2lwZXItaXRlbSB2LWZvcj1cIihpdGVtLGluZGV4KSBpbiBsaXN0XCIgOmtleT1cImluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHZpZXc+e3tpdGVtfX08L3ZpZXc+XHJcbiAgICAgICAgICAgICAgICA8L3N3aXBlci1pdGVtPlxyXG4gICAgICAgICAgICA8L3N3aXBlcj5cclxuICAgICAgICA8L3ZpZXc+XHJcbiAgICA8L3ZpZXc+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0PlxyXG4gICAgZXhwb3J0IGRlZmF1bHR7XHJcbiAgICAgICAgbmFtZTonJyxcclxuICAgICAgICBkYXRhKCl7XHJcbiAgICAgICAgICAgIHJldHVybntcclxuICAgICAgICAgICAgICAgIGF1dG9wbGF5OnRydWUsXHJcbiAgICAgICAgICAgICAgICBpbnRlcnZhbDoxMDAwLFxyXG4gICAgICAgICAgICAgICAgZHVyYXRpb246MTAwMCxcclxuICAgICAgICAgICAgICAgIGxpc3Q6W1xyXG4gICAgICAgICAgICAgICAgICAgICfor7fngrnlh7vlj5HooYzoj5zljZXov5vooYzlj5HluIMnLFxyXG5cdFx0XHRcdFx0JzEnLFxyXG4gICAgICAgICAgICAgICAgICAgICfkvZPnp6/ovoPlpKfvvJvoi6XopoHmraPlvI/lj5HluIMnLFxyXG5cdFx0XHRcdFx0JzInLFxyXG4gICAgICAgICAgICAgICAgICAgICfov5DooYzmqKHlvI/kuIvkuI3ljovnvKnku6PnoIHkuJTlkKvmnIlzb3VyY2VtYXAnLFxyXG5cdFx0XHRcdFx0JzMnLFxyXG4gICAgICAgICAgICAgICAgICAgICfmo4Dmn6XmmK/lkKblkK/liqjlpJrkuKrlvq7kv6HlvIDlj5HogIXlt6XlhbfvvIzlpoLmnpzmmK/liJnlhbPpl63miYDmnInmiZPlvIDnmoTlvq7kv6HlvIDlj5HogIXlt6XlhbfvvIwnLFxyXG5cdFx0XHRcdFx0JzQnLFxyXG4gICAgICAgICAgICAgICAgICAgICfnhLblkI7lho3ph43mlrDov5DooYwnLFxyXG5cdFx0XHRcdFx0JzUnLFxyXG4gICAgICAgICAgICAgICAgICAgICflpoLmnpzlh7rnjrDlvq7kv6HlvIDlj5HogIXlt6XlhbflkK/liqjlkI7nmb3lsY/nmoTpl67popgnLFxyXG5cdFx0XHRcdFx0JzYnLFxyXG4gICAgICAgICAgICAgICAgICAgICfmiJbogIXlhbPpl63lvq7kv6HlvIDlj5HogIXlt6XlhbfvvIznhLblkI7lho3ku45IQnVpbGRlcljkuK3lkK/liqjmjIflrprpobXpnaInLFxyXG5cdFx0XHRcdFx0JzcnLFxyXG4gICAgICAgICAgICAgICAgICAgICflj6/ku6XpgJrov4flvq7kv6HlvIDlj5HogIXlt6XlhbfliIfmjaJwYWdlcy5qc29u5LitY29uZGl0aW9u6YWN572u55qE6aG16Z2iJyxcclxuXHRcdFx0XHRcdCc4JyxcclxuICAgICAgICAgICAgICAgICAgICAn5Lit5L+u5pS55paH5Lu25bm25L+d5a2Y77yM5Lya6Ieq5Yqo5Yi35paw5b6u5L+h5qih5ouf5ZmoJyxcclxuXHRcdFx0XHRcdCc5JyxcclxuICAgICAgICAgICAgICAgICAgICAn5b6u5L+h5byA5Y+R6ICF5bel5YW35bey5ZCv5Yqo77yM5ZyoSEJ1aWxkZXJYJyxcclxuXHRcdFx0XHRcdCcxMCcsXHJcbiAgICAgICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgIH1cclxuPC9zY3JpcHQ+XHJcblxyXG48c3R5bGUgc2NvcGVkIGxhbmc9XCJzY3NzXCI+XHJcbiAgICAuc2Nyb2xsX2JveHtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xyXG4gICAgICAgIG1hcmdpbjogMzBycHg7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTBycHg7XHJcbiAgICAgICAgLnN3aXBlcntcclxuICAgICAgICAgICAgbWFyZ2luLXRvcDogMjAwcHg7XHJcbiAgICAgICAgICAgIGhlaWdodDogNzBweDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbjwvc3R5bGU+Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///106\n");
 
 /***/ }),
 /* 107 */
diff --git a/Monitor-APP/unpackage/dist/dev/app-plus/app-view.js b/Monitor-APP/unpackage/dist/dev/app-plus/app-view.js
index 6cf92cd..198249e 100644
--- a/Monitor-APP/unpackage/dist/dev/app-plus/app-view.js
+++ b/Monitor-APP/unpackage/dist/dev/app-plus/app-view.js
@@ -158,7 +158,7 @@
   uni.restoreGlobal(weex, plus, setTimeout, clearTimeout, setInterval, clearInterval);
 }
 __definePage('pages/home/home', function () {return Vue.extend(__webpack_require__(/*! pages/home/home.vue?mpType=page */ 2).default);});
-__definePage('pages/index/index', function () {return Vue.extend(__webpack_require__(/*! pages/index/index.vue?mpType=page */ 30).default);});
+__definePage('pages/index/index', function () {return Vue.extend(__webpack_require__(/*! pages/index/index.vue?mpType=page */ 97).default);});
 __definePage('pages/index/monitor', function () {return Vue.extend(__webpack_require__(/*! pages/index/monitor.vue?mpType=page */ 121).default);});
 
 /***/ }),
@@ -172,9 +172,9 @@
 "use strict";
 __webpack_require__.r(__webpack_exports__);
 /* harmony import */ var _home_vue_vue_type_template_id_44021cb6_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./home.vue?vue&type=template&id=44021cb6&mpType=page */ 3);
-/* harmony import */ var _home_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./home.vue?vue&type=script&lang=js&mpType=page */ 22);
+/* harmony import */ var _home_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./home.vue?vue&type=script&lang=js&mpType=page */ 89);
 /* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _home_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _home_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));
-/* harmony import */ var _home_vue_vue_type_style_index_0_lang_css_mpType_page__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./home.vue?vue&type=style&index=0&lang=css&mpType=page */ 24);
+/* harmony import */ var _home_vue_vue_type_style_index_0_lang_css_mpType_page__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./home.vue?vue&type=style&index=0&lang=css&mpType=page */ 91);
 /* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 10);
 
 var renderjs
@@ -241,7 +241,9 @@
   components = {
     uniTransition: __webpack_require__(/*! @/uni_modules/uni-transition/components/uni-transition/uni-transition.vue */ 5)
       .default,
-    yBox: __webpack_require__(/*! @/components/y-box/y-box.vue */ 11).default
+    yBox: __webpack_require__(/*! @/components/y-box/y-box.vue */ 11).default,
+    qiunDataCharts: __webpack_require__(/*! @/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue */ 22)
+      .default
   }
 } catch (e) {
   if (
@@ -346,6 +348,7 @@
                                     "v-uni-text",
                                     {
                                       staticClass: _vm._$g(15, "sc"),
+                                      staticStyle: { "text-align": "left" },
                                       attrs: { _i: 15 }
                                     },
                                     [
@@ -403,8 +406,72 @@
                                           }),
                                           _c(
                                             "uni-view",
-                                            { attrs: { _i: 22 } },
-                                            [_vm._v("绱璧拌璺濈(绫�)")]
+                                            {
+                                              staticClass: _vm._$g(22, "sc"),
+                                              staticStyle: {
+                                                width: "calc(100% - 5vw)"
+                                              },
+                                              attrs: { _i: 22 }
+                                            },
+                                            [
+                                              _c(
+                                                "uni-view",
+                                                {
+                                                  staticClass: _vm._$g(
+                                                    23,
+                                                    "sc"
+                                                  ),
+                                                  staticStyle: {
+                                                    position: "relative"
+                                                  },
+                                                  attrs: { _i: 23 }
+                                                },
+                                                [
+                                                  _c(
+                                                    "uni-view",
+                                                    {
+                                                      staticStyle: {
+                                                        width: "2vw",
+                                                        "padding-left": "5vw",
+                                                        "font-size": "2vw"
+                                                      },
+                                                      attrs: { _i: 24 }
+                                                    },
+                                                    [
+                                                      _vm._v(
+                                                        _vm._$g(24, "t0-0")
+                                                      )
+                                                    ]
+                                                  ),
+                                                  _c(
+                                                    "uni-view",
+                                                    {
+                                                      staticStyle: {
+                                                        position: "absolute",
+                                                        bottom: "0",
+                                                        left: "7vw"
+                                                      },
+                                                      attrs: { _i: 25 }
+                                                    },
+                                                    [_vm._v("m")]
+                                                  )
+                                                ],
+                                                1
+                                              ),
+                                              _c(
+                                                "uni-view",
+                                                {
+                                                  staticStyle: {
+                                                    height: "100%",
+                                                    "text-align": "left",
+                                                    "text-indent": "2em"
+                                                  },
+                                                  attrs: { _i: 26 }
+                                                },
+                                                [_vm._v("绱璧拌璺濈(绫�)")]
+                                              )
+                                            ],
+                                            1
                                           )
                                         ],
                                         1
@@ -412,21 +479,85 @@
                                       _c(
                                         "uni-view",
                                         {
-                                          staticClass: _vm._$g(23, "sc"),
-                                          attrs: { _i: 23 }
+                                          staticClass: _vm._$g(27, "sc"),
+                                          attrs: { _i: 27 }
                                         },
                                         [
                                           _c("v-uni-image", {
                                             attrs: {
-                                              src: _vm._$g(24, "a-src"),
+                                              src: _vm._$g(28, "a-src"),
                                               mode: "aspectFit",
-                                              _i: 24
+                                              _i: 28
                                             }
                                           }),
                                           _c(
                                             "uni-view",
-                                            { attrs: { _i: 25 } },
-                                            [_vm._v("绱璧拌璺濈(绫�)")]
+                                            {
+                                              staticClass: _vm._$g(29, "sc"),
+                                              staticStyle: {
+                                                width: "calc(100% - 5vw)"
+                                              },
+                                              attrs: { _i: 29 }
+                                            },
+                                            [
+                                              _c(
+                                                "uni-view",
+                                                {
+                                                  staticClass: _vm._$g(
+                                                    30,
+                                                    "sc"
+                                                  ),
+                                                  staticStyle: {
+                                                    position: "relative"
+                                                  },
+                                                  attrs: { _i: 30 }
+                                                },
+                                                [
+                                                  _c(
+                                                    "uni-view",
+                                                    {
+                                                      staticStyle: {
+                                                        width: "2vw",
+                                                        "padding-left": "5vw",
+                                                        "font-size": "2vw"
+                                                      },
+                                                      attrs: { _i: 31 }
+                                                    },
+                                                    [
+                                                      _vm._v(
+                                                        _vm._$g(31, "t0-0")
+                                                      )
+                                                    ]
+                                                  ),
+                                                  _c(
+                                                    "uni-view",
+                                                    {
+                                                      staticStyle: {
+                                                        position: "absolute",
+                                                        bottom: "0",
+                                                        left: "7vw"
+                                                      },
+                                                      attrs: { _i: 32 }
+                                                    },
+                                                    [_vm._v("m")]
+                                                  )
+                                                ],
+                                                1
+                                              ),
+                                              _c(
+                                                "uni-view",
+                                                {
+                                                  staticStyle: {
+                                                    height: "100%",
+                                                    "text-align": "left",
+                                                    "text-indent": "2em"
+                                                  },
+                                                  attrs: { _i: 33 }
+                                                },
+                                                [_vm._v("绱鍗囬檷璺濈(绫�)")]
+                                              )
+                                            ],
+                                            1
                                           )
                                         ],
                                         1
@@ -434,21 +565,85 @@
                                       _c(
                                         "uni-view",
                                         {
-                                          staticClass: _vm._$g(26, "sc"),
-                                          attrs: { _i: 26 }
+                                          staticClass: _vm._$g(34, "sc"),
+                                          attrs: { _i: 34 }
                                         },
                                         [
                                           _c("v-uni-image", {
                                             attrs: {
-                                              src: _vm._$g(27, "a-src"),
+                                              src: _vm._$g(35, "a-src"),
                                               mode: "aspectFit",
-                                              _i: 27
+                                              _i: 35
                                             }
                                           }),
                                           _c(
                                             "uni-view",
-                                            { attrs: { _i: 28 } },
-                                            [_vm._v("绱璧拌璺濈(绫�)")]
+                                            {
+                                              staticClass: _vm._$g(36, "sc"),
+                                              staticStyle: {
+                                                width: "calc(100% - 5vw)"
+                                              },
+                                              attrs: { _i: 36 }
+                                            },
+                                            [
+                                              _c(
+                                                "uni-view",
+                                                {
+                                                  staticClass: _vm._$g(
+                                                    37,
+                                                    "sc"
+                                                  ),
+                                                  staticStyle: {
+                                                    position: "relative"
+                                                  },
+                                                  attrs: { _i: 37 }
+                                                },
+                                                [
+                                                  _c(
+                                                    "uni-view",
+                                                    {
+                                                      staticStyle: {
+                                                        width: "2vw",
+                                                        "padding-left": "5vw",
+                                                        "font-size": "2vw"
+                                                      },
+                                                      attrs: { _i: 38 }
+                                                    },
+                                                    [
+                                                      _vm._v(
+                                                        _vm._$g(38, "t0-0")
+                                                      )
+                                                    ]
+                                                  ),
+                                                  _c(
+                                                    "uni-view",
+                                                    {
+                                                      staticStyle: {
+                                                        position: "absolute",
+                                                        bottom: "0",
+                                                        left: "7vw"
+                                                      },
+                                                      attrs: { _i: 39 }
+                                                    },
+                                                    [_vm._v("s")]
+                                                  )
+                                                ],
+                                                1
+                                              ),
+                                              _c(
+                                                "uni-view",
+                                                {
+                                                  staticStyle: {
+                                                    height: "100%",
+                                                    "text-align": "left",
+                                                    "text-indent": "2em"
+                                                  },
+                                                  attrs: { _i: 40 }
+                                                },
+                                                [_vm._v("绱璧拌鏃堕暱(绉�)")]
+                                              )
+                                            ],
+                                            1
                                           )
                                         ],
                                         1
@@ -456,21 +651,85 @@
                                       _c(
                                         "uni-view",
                                         {
-                                          staticClass: _vm._$g(29, "sc"),
-                                          attrs: { _i: 29 }
+                                          staticClass: _vm._$g(41, "sc"),
+                                          attrs: { _i: 41 }
                                         },
                                         [
                                           _c("v-uni-image", {
                                             attrs: {
-                                              src: _vm._$g(30, "a-src"),
+                                              src: _vm._$g(42, "a-src"),
                                               mode: "aspectFit",
-                                              _i: 30
+                                              _i: 42
                                             }
                                           }),
                                           _c(
                                             "uni-view",
-                                            { attrs: { _i: 31 } },
-                                            [_vm._v("绱璧拌璺濈(绫�)")]
+                                            {
+                                              staticClass: _vm._$g(43, "sc"),
+                                              staticStyle: {
+                                                width: "calc(100% - 5vw)"
+                                              },
+                                              attrs: { _i: 43 }
+                                            },
+                                            [
+                                              _c(
+                                                "uni-view",
+                                                {
+                                                  staticClass: _vm._$g(
+                                                    44,
+                                                    "sc"
+                                                  ),
+                                                  staticStyle: {
+                                                    position: "relative"
+                                                  },
+                                                  attrs: { _i: 44 }
+                                                },
+                                                [
+                                                  _c(
+                                                    "uni-view",
+                                                    {
+                                                      staticStyle: {
+                                                        width: "2vw",
+                                                        "padding-left": "5vw",
+                                                        "font-size": "2vw"
+                                                      },
+                                                      attrs: { _i: 45 }
+                                                    },
+                                                    [
+                                                      _vm._v(
+                                                        _vm._$g(45, "t0-0")
+                                                      )
+                                                    ]
+                                                  ),
+                                                  _c(
+                                                    "uni-view",
+                                                    {
+                                                      staticStyle: {
+                                                        position: "absolute",
+                                                        bottom: "0",
+                                                        left: "7vw"
+                                                      },
+                                                      attrs: { _i: 46 }
+                                                    },
+                                                    [_vm._v("s")]
+                                                  )
+                                                ],
+                                                1
+                                              ),
+                                              _c(
+                                                "uni-view",
+                                                {
+                                                  staticStyle: {
+                                                    height: "100%",
+                                                    "text-align": "left",
+                                                    "text-indent": "2em"
+                                                  },
+                                                  attrs: { _i: 47 }
+                                                },
+                                                [_vm._v("绱鍗囬檷鏃堕暱(绉�)")]
+                                              )
+                                            ],
+                                            1
                                           )
                                         ],
                                         1
@@ -484,25 +743,170 @@
                               _c(
                                 "uni-view",
                                 {
-                                  staticClass: _vm._$g(32, "sc"),
-                                  attrs: { _i: 32 }
+                                  staticClass: _vm._$g(48, "sc"),
+                                  attrs: { _i: 48 }
                                 },
                                 [
                                   _c(
-                                    "v-uni-text",
+                                    "uni-view",
                                     {
-                                      staticClass: _vm._$g(33, "sc"),
-                                      attrs: { _i: 33 }
+                                      staticClass: _vm._$g(49, "sc"),
+                                      staticStyle: { width: "100%" },
+                                      attrs: { _i: 49 }
                                     },
-                                    [_vm._v("搴撲綅浣跨敤鐜�")]
+                                    [
+                                      _c(
+                                        "uni-view",
+                                        {
+                                          staticClass: _vm._$g(50, "sc"),
+                                          staticStyle: {
+                                            "align-items": "flex-start",
+                                            "justify-content": "flex-start"
+                                          },
+                                          attrs: { _i: 50 }
+                                        },
+                                        [
+                                          _c(
+                                            "v-uni-text",
+                                            {
+                                              staticClass: _vm._$g(51, "sc"),
+                                              attrs: { _i: 51 }
+                                            },
+                                            [_vm._v("搴撲綅浣跨敤鐜�")]
+                                          ),
+                                          _c(
+                                            "v-uni-text",
+                                            {
+                                              staticClass: _vm._$g(52, "sc"),
+                                              attrs: { _i: 52 }
+                                            },
+                                            [
+                                              _vm._v(
+                                                "EQUIPMENT USAGE THIS MONTH"
+                                              )
+                                            ]
+                                          )
+                                        ],
+                                        1
+                                      ),
+                                      _c(
+                                        "uni-view",
+                                        {
+                                          staticStyle: {
+                                            "margin-left": "auto"
+                                          },
+                                          attrs: { _i: 53 }
+                                        },
+                                        [
+                                          _c(
+                                            "uni-view",
+                                            {
+                                              staticClass: _vm._$g(54, "sc"),
+                                              staticStyle: {
+                                                "align-items": "flex-end",
+                                                "justify-content": "flex-end"
+                                              },
+                                              attrs: { _i: 54 }
+                                            },
+                                            [
+                                              _c(
+                                                "v-uni-text",
+                                                {
+                                                  staticClass: _vm._$g(
+                                                    55,
+                                                    "sc"
+                                                  ),
+                                                  attrs: { _i: 55 }
+                                                },
+                                                [
+                                                  _vm._v(
+                                                    _vm._$g(55, "t0-0") + "%"
+                                                  )
+                                                ]
+                                              ),
+                                              _c(
+                                                "v-uni-text",
+                                                {
+                                                  staticClass: _vm._$g(
+                                                    56,
+                                                    "sc"
+                                                  ),
+                                                  attrs: { _i: 56 }
+                                                },
+                                                [_vm._v("鍚屾瘮涓婃湀 + 5%")]
+                                              )
+                                            ],
+                                            1
+                                          )
+                                        ],
+                                        1
+                                      )
+                                    ],
+                                    1
                                   ),
                                   _c(
-                                    "v-uni-text",
+                                    "uni-view",
                                     {
-                                      staticClass: _vm._$g(34, "sc"),
-                                      attrs: { _i: 34 }
+                                      staticClass: _vm._$g(57, "sc"),
+                                      staticStyle: {
+                                        width: "100%",
+                                        "align-items": "flex-start",
+                                        position: "relative",
+                                        "font-size": "1vw"
+                                      },
+                                      attrs: { _i: 57 }
                                     },
-                                    [_vm._v("EQUIPMENT USAGE THIS MONTH")]
+                                    [
+                                      _c(
+                                        "uni-view",
+                                        {
+                                          staticClass: _vm._$g(58, "sc"),
+                                          staticStyle: {
+                                            width: "100%",
+                                            position: "relative",
+                                            "margin-top": "5%"
+                                          },
+                                          attrs: { _i: 58 }
+                                        },
+                                        [
+                                          _c(
+                                            "uni-view",
+                                            {
+                                              staticClass: _vm._$g(59, "sc"),
+                                              staticStyle: {
+                                                width: "80%",
+                                                height: "2vw"
+                                              },
+                                              attrs: { _i: 59 }
+                                            },
+                                            [
+                                              _c("uni-view", {
+                                                staticClass: _vm._$g(60, "sc"),
+                                                style: _vm._$g(60, "s"),
+                                                attrs: { _i: 60 }
+                                              })
+                                            ],
+                                            1
+                                          ),
+                                          _c(
+                                            "uni-view",
+                                            {
+                                              staticStyle: {
+                                                position: "absolute",
+                                                bottom: "0",
+                                                right: "0",
+                                                "font-size": "2.5vw",
+                                                color: "#FF5722"
+                                              },
+                                              attrs: { _i: 61 }
+                                            },
+                                            [_vm._v(_vm._$g(61, "t0-0"))]
+                                          )
+                                        ],
+                                        1
+                                      )
+                                    ],
+                                    1
                                   )
                                 ],
                                 1
@@ -518,52 +922,314 @@
                   ),
                   _c(
                     "uni-view",
-                    { staticClass: _vm._$g(35, "sc"), attrs: { _i: 35 } },
+                    { staticClass: _vm._$g(62, "sc"), attrs: { _i: 62 } },
                     [
                       _c(
                         "uni-view",
-                        { staticClass: _vm._$g(36, "sc"), attrs: { _i: 36 } },
+                        { staticClass: _vm._$g(63, "sc"), attrs: { _i: 63 } },
                         [
                           _c(
                             "uni-view",
                             {
                               staticStyle: { width: "100%", height: "100%" },
-                              attrs: { _i: 37 }
+                              attrs: { _i: 64 }
                             },
                             [
                               _c(
                                 "uni-view",
                                 {
-                                  staticStyle: { height: "38%" },
-                                  attrs: { _i: 38 }
+                                  staticStyle: { height: "40%" },
+                                  attrs: { _i: 65 }
                                 },
-                                [_c("y-box", { attrs: { _i: 39 } })],
+                                [
+                                  _c(
+                                    "y-box",
+                                    { attrs: { _i: 66 } },
+                                    [
+                                      _c(
+                                        "uni-view",
+                                        {
+                                          staticClass: _vm._$g(67, "sc"),
+                                          attrs: { _i: 67 }
+                                        },
+                                        [
+                                          _c(
+                                            "uni-view",
+                                            {
+                                              staticClass: _vm._$g(68, "sc"),
+                                              staticStyle: { width: "100%" },
+                                              attrs: { _i: 68 }
+                                            },
+                                            [
+                                              _c(
+                                                "uni-view",
+                                                {
+                                                  staticClass: _vm._$g(
+                                                    69,
+                                                    "sc"
+                                                  ),
+                                                  staticStyle: {
+                                                    "align-items": "flex-start",
+                                                    "justify-content":
+                                                      "flex-start"
+                                                  },
+                                                  attrs: { _i: 69 }
+                                                },
+                                                [
+                                                  _c(
+                                                    "v-uni-text",
+                                                    {
+                                                      staticClass: _vm._$g(
+                                                        70,
+                                                        "sc"
+                                                      ),
+                                                      attrs: { _i: 70 }
+                                                    },
+                                                    [_vm._v("鍏ュ嚭搴撶粺璁�")]
+                                                  ),
+                                                  _c(
+                                                    "v-uni-text",
+                                                    {
+                                                      staticClass: _vm._$g(
+                                                        71,
+                                                        "sc"
+                                                      ),
+                                                      attrs: { _i: 71 }
+                                                    },
+                                                    [_vm._v("ORDER STATISTICS")]
+                                                  )
+                                                ],
+                                                1
+                                              ),
+                                              _c(
+                                                "uni-view",
+                                                {
+                                                  staticStyle: {
+                                                    "margin-left": "auto"
+                                                  },
+                                                  attrs: { _i: 72 }
+                                                },
+                                                [
+                                                  _c(
+                                                    "uni-view",
+                                                    {
+                                                      staticClass: _vm._$g(
+                                                        73,
+                                                        "sc"
+                                                      ),
+                                                      staticStyle: {
+                                                        "align-items":
+                                                          "flex-end",
+                                                        "justify-content":
+                                                          "flex-end"
+                                                      },
+                                                      attrs: { _i: 73 }
+                                                    },
+                                                    [
+                                                      _c(
+                                                        "v-uni-text",
+                                                        {
+                                                          staticClass: _vm._$g(
+                                                            74,
+                                                            "sc"
+                                                          ),
+                                                          attrs: { _i: 74 }
+                                                        },
+                                                        [_vm._v("31")]
+                                                      ),
+                                                      _c(
+                                                        "v-uni-text",
+                                                        {
+                                                          staticClass: _vm._$g(
+                                                            75,
+                                                            "sc"
+                                                          ),
+                                                          attrs: { _i: 75 }
+                                                        },
+                                                        [_vm._v("浠婃棩璁㈠崟鏁�")]
+                                                      )
+                                                    ],
+                                                    1
+                                                  )
+                                                ],
+                                                1
+                                              )
+                                            ],
+                                            1
+                                          ),
+                                          _vm._$g(76, "i")
+                                            ? _c(
+                                                "uni-view",
+                                                {
+                                                  staticClass: _vm._$g(
+                                                    76,
+                                                    "sc"
+                                                  ),
+                                                  attrs: { _i: 76 }
+                                                },
+                                                [
+                                                  _c("qiun-data-charts", {
+                                                    attrs: { _i: 77 }
+                                                  })
+                                                ],
+                                                1
+                                              )
+                                            : _vm._e()
+                                        ],
+                                        1
+                                      )
+                                    ],
+                                    1
+                                  )
+                                ],
                                 1
                               ),
                               _c("uni-view", {
                                 staticStyle: { height: "2%" },
-                                attrs: { _i: 40 }
+                                attrs: { _i: 78 }
                               }),
                               _c(
                                 "uni-view",
                                 {
                                   staticStyle: { height: "38%" },
-                                  attrs: { _i: 41 }
+                                  attrs: { _i: 79 }
                                 },
-                                [_c("y-box", { attrs: { _i: 42 } })],
+                                [
+                                  _c(
+                                    "y-box",
+                                    { attrs: { _i: 80 } },
+                                    [
+                                      _c(
+                                        "uni-view",
+                                        {
+                                          staticClass: _vm._$g(81, "sc"),
+                                          attrs: { _i: 81 }
+                                        },
+                                        [
+                                          _c(
+                                            "uni-view",
+                                            {
+                                              staticClass: _vm._$g(82, "sc"),
+                                              staticStyle: { width: "100%" },
+                                              attrs: { _i: 82 }
+                                            },
+                                            [
+                                              _c(
+                                                "uni-view",
+                                                {
+                                                  staticClass: _vm._$g(
+                                                    83,
+                                                    "sc"
+                                                  ),
+                                                  staticStyle: {
+                                                    "align-items": "flex-start",
+                                                    "justify-content":
+                                                      "flex-start"
+                                                  },
+                                                  attrs: { _i: 83 }
+                                                },
+                                                [
+                                                  _c(
+                                                    "v-uni-text",
+                                                    {
+                                                      staticClass: _vm._$g(
+                                                        84,
+                                                        "sc"
+                                                      ),
+                                                      attrs: { _i: 84 }
+                                                    },
+                                                    [_vm._v("搴撳瓨绫诲瀷")]
+                                                  ),
+                                                  _c(
+                                                    "v-uni-text",
+                                                    {
+                                                      staticClass: _vm._$g(
+                                                        85,
+                                                        "sc"
+                                                      ),
+                                                      attrs: { _i: 85 }
+                                                    },
+                                                    [_vm._v("INCOME DATE")]
+                                                  )
+                                                ],
+                                                1
+                                              ),
+                                              _c(
+                                                "uni-view",
+                                                {
+                                                  staticStyle: {
+                                                    "margin-left": "auto"
+                                                  },
+                                                  attrs: { _i: 86 }
+                                                },
+                                                [
+                                                  _c(
+                                                    "uni-view",
+                                                    {
+                                                      staticClass: _vm._$g(
+                                                        87,
+                                                        "sc"
+                                                      ),
+                                                      staticStyle: {
+                                                        "align-items":
+                                                          "flex-end",
+                                                        "justify-content":
+                                                          "flex-end"
+                                                      },
+                                                      attrs: { _i: 87 }
+                                                    },
+                                                    [
+                                                      _c(
+                                                        "v-uni-text",
+                                                        {
+                                                          staticClass: _vm._$g(
+                                                            88,
+                                                            "sc"
+                                                          ),
+                                                          attrs: { _i: 88 }
+                                                        },
+                                                        [_vm._v("浠婂ぉ")]
+                                                      ),
+                                                      _c(
+                                                        "v-uni-text",
+                                                        {
+                                                          staticClass: _vm._$g(
+                                                            89,
+                                                            "sc"
+                                                          ),
+                                                          attrs: { _i: 89 }
+                                                        },
+                                                        [_vm._v("Today")]
+                                                      )
+                                                    ],
+                                                    1
+                                                  )
+                                                ],
+                                                1
+                                              )
+                                            ],
+                                            1
+                                          )
+                                        ],
+                                        1
+                                      )
+                                    ],
+                                    1
+                                  )
+                                ],
                                 1
                               ),
                               _c("uni-view", {
                                 staticStyle: { height: "2%" },
-                                attrs: { _i: 43 }
+                                attrs: { _i: 90 }
                               }),
                               _c(
                                 "uni-view",
                                 {
-                                  staticStyle: { height: "20%" },
-                                  attrs: { _i: 44 }
+                                  staticStyle: { height: "18%" },
+                                  attrs: { _i: 91 }
                                 },
-                                [_c("y-box", { attrs: { _i: 45 } })],
+                                [_c("y-box", { attrs: { _i: 92 } })],
                                 1
                               )
                             ],
@@ -1466,6 +2132,10506 @@
 
 /***/ }),
 /* 22 */
+/*!*************************************************************************************************************************!*\
+  !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue ***!
+  \*************************************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _qiun_data_charts_vue_vue_type_template_id_fe947b98_scoped_true_filter_modules_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjcyfX0_3D___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./qiun-data-charts.vue?vue&type=template&id=fe947b98&scoped=true&filter-modules=eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjcyfX0%3D& */ 23);
+/* harmony import */ var _qiun_data_charts_vue_vue_type_renderjs_module_rdcharts_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./qiun-data-charts.vue?vue&type=renderjs&module=rdcharts&lang=js& */ 78);
+/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _qiun_data_charts_vue_vue_type_renderjs_module_rdcharts_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _qiun_data_charts_vue_vue_type_renderjs_module_rdcharts_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));
+/* harmony import */ var _qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./qiun-data-charts.vue?vue&type=script&lang=js& */ 84);
+/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_2__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_2__[key]; }) }(__WEBPACK_IMPORT_KEY__));
+/* harmony import */ var _qiun_data_charts_vue_vue_type_style_index_0_id_fe947b98_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./qiun-data-charts.vue?vue&type=style&index=0&id=fe947b98&scoped=true&lang=css& */ 86);
+/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 10);
+
+
+_qiun_data_charts_vue_vue_type_renderjs_module_rdcharts_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"].__module = 'rdcharts'
+
+
+
+
+
+
+/* normalize component */
+
+var component = Object(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_4__["default"])(
+  _qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_2__["default"],
+  _qiun_data_charts_vue_vue_type_template_id_fe947b98_scoped_true_filter_modules_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjcyfX0_3D___WEBPACK_IMPORTED_MODULE_0__["render"],
+  _qiun_data_charts_vue_vue_type_template_id_fe947b98_scoped_true_filter_modules_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjcyfX0_3D___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
+  false,
+  null,
+  "fe947b98",
+  null,
+  false,
+  _qiun_data_charts_vue_vue_type_template_id_fe947b98_scoped_true_filter_modules_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjcyfX0_3D___WEBPACK_IMPORTED_MODULE_0__["components"],
+  _qiun_data_charts_vue_vue_type_renderjs_module_rdcharts_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"]
+)
+
+component.options.__file = "uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue"
+/* harmony default export */ __webpack_exports__["default"] = (component.exports);
+
+/***/ }),
+/* 23 */
+/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
+  !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue?vue&type=template&id=fe947b98&scoped=true&filter-modules=eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjcyfX0%3D& ***!
+  \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************/
+/*! exports provided: render, staticRenderFns, recyclableRender, components */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_data_charts_vue_vue_type_template_id_fe947b98_scoped_true_filter_modules_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjcyfX0_3D___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--16-0!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./qiun-data-charts.vue?vue&type=template&id=fe947b98&scoped=true&filter-modules=eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjcyfX0%3D& */ 24);
+/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_data_charts_vue_vue_type_template_id_fe947b98_scoped_true_filter_modules_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjcyfX0_3D___WEBPACK_IMPORTED_MODULE_0__["render"]; });
+
+/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_data_charts_vue_vue_type_template_id_fe947b98_scoped_true_filter_modules_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjcyfX0_3D___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
+
+/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_data_charts_vue_vue_type_template_id_fe947b98_scoped_true_filter_modules_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjcyfX0_3D___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; });
+
+/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_data_charts_vue_vue_type_template_id_fe947b98_scoped_true_filter_modules_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjcyfX0_3D___WEBPACK_IMPORTED_MODULE_0__["components"]; });
+
+
+
+/***/ }),
+/* 24 */
+/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
+  !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--16-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue?vue&type=template&id=fe947b98&scoped=true&filter-modules=eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjcyfX0%3D& ***!
+  \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
+/*! exports provided: render, staticRenderFns, recyclableRender, components */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; });
+var components
+try {
+  components = {
+    qiunLoading: __webpack_require__(/*! @/uni_modules/qiun-data-charts/components/qiun-loading/qiun-loading.vue */ 25)
+      .default,
+    qiunError: __webpack_require__(/*! @/uni_modules/qiun-data-charts/components/qiun-error/qiun-error.vue */ 70)
+      .default
+  }
+} catch (e) {
+  if (
+    e.message.indexOf("Cannot find module") !== -1 &&
+    e.message.indexOf(".vue") !== -1
+  ) {
+    console.error(e.message)
+    console.error("1. 鎺掓煡缁勪欢鍚嶇О鎷煎啓鏄惁姝g‘")
+    console.error(
+      "2. 鎺掓煡缁勪欢鏄惁绗﹀悎 easycom 瑙勮寖锛屾枃妗o細https://uniapp.dcloud.net.cn/collocation/pages?id=easycom"
+    )
+    console.error(
+      "3. 鑻ョ粍浠朵笉绗﹀悎 easycom 瑙勮寖锛岄渶鎵嬪姩寮曞叆锛屽苟鍦� components 涓敞鍐岃缁勪欢"
+    )
+  } else {
+    throw e
+  }
+}
+var render = function() {
+  var _vm = this
+  var _h = _vm.$createElement
+  var _c = _vm._self._c || _h
+  return _c(
+    "uni-view",
+    { staticClass: _vm._$g(0, "sc"), attrs: { id: _vm._$g(0, "a-id"), _i: 0 } },
+    [
+      _vm._$g(1, "i")
+        ? _c(
+            "uni-view",
+            { attrs: { _i: 1 } },
+            [_c("qiun-loading", { attrs: { _i: 2 } })],
+            1
+          )
+        : _vm._e(),
+      _vm._$g(3, "i")
+        ? _c(
+            "uni-view",
+            {
+              attrs: { _i: 3 },
+              on: {
+                click: function($event) {
+                  return _vm.$handleViewEvent($event)
+                }
+              }
+            },
+            [_c("qiun-error", { attrs: { _i: 4 } })],
+            1
+          )
+        : _vm._e(),
+      _vm._$g(5, "i")
+        ? [
+            _c("uni-view", {
+              directives: [
+                {
+                  name: "show",
+                  rawName: "v-show",
+                  value: _vm._$g(6, "v-show"),
+                  expression: "_$g(6,'v-show')"
+                }
+              ],
+              wxsProps: {
+                "change:resize": "echartsResize",
+                "change:prop": "echartsOpts"
+              },
+              staticStyle: { width: "100%", height: "100%" },
+              style: _vm._$g(6, "s"),
+              attrs: {
+                "data-directory": _vm._$g(6, "a-data-directory"),
+                id: _vm._$g(6, "a-id"),
+                prop: _vm._$gc(6, "change:echartsOpts"),
+                "change:prop": _vm.rdcharts.ecinit,
+                resize: _vm._$gc(6, "change:echartsResize"),
+                "change:resize": _vm.rdcharts.ecresize,
+                _i: 6
+              }
+            })
+          ]
+        : [
+            _c(
+              "uni-view",
+              {
+                wxsProps: { "change:prop": "uchartsOpts" },
+                attrs: {
+                  id: _vm._$g(8, "a-id"),
+                  prop: _vm._$gc(8, "change:uchartsOpts"),
+                  "change:prop": _vm.rdcharts.ucinit,
+                  _i: 8
+                },
+                on: {
+                  mousemove: function($event) {
+                    $event = _vm.$handleWxsEvent($event)
+                    _vm.rdcharts.mouseMove(
+                      $event,
+                      _vm.$getComponentDescriptor()
+                    )
+                  },
+                  mousedown: function($event) {
+                    $event = _vm.$handleWxsEvent($event)
+                    _vm.rdcharts.mouseDown(
+                      $event,
+                      _vm.$getComponentDescriptor()
+                    )
+                  },
+                  mouseup: function($event) {
+                    $event = _vm.$handleWxsEvent($event)
+                    _vm.rdcharts.mouseUp($event, _vm.$getComponentDescriptor())
+                  },
+                  touchstart: function($event) {
+                    $event = _vm.$handleWxsEvent($event)
+                    _vm.rdcharts.touchStart(
+                      $event,
+                      _vm.$getComponentDescriptor()
+                    )
+                  },
+                  touchmove: function($event) {
+                    $event = _vm.$handleWxsEvent($event)
+                    _vm.rdcharts.touchMove(
+                      $event,
+                      _vm.$getComponentDescriptor()
+                    )
+                  },
+                  touchend: function($event) {
+                    $event = _vm.$handleWxsEvent($event)
+                    _vm.rdcharts.touchEnd($event, _vm.$getComponentDescriptor())
+                  },
+                  click: function($event) {
+                    $event = _vm.$handleWxsEvent($event)
+                    _vm.rdcharts.tap($event, _vm.$getComponentDescriptor())
+                  }
+                }
+              },
+              [
+                _c("v-uni-canvas", {
+                  directives: [
+                    {
+                      name: "show",
+                      rawName: "v-show",
+                      value: _vm._$g(9, "v-show"),
+                      expression: "_$g(9,'v-show')"
+                    }
+                  ],
+                  style: _vm._$g(9, "s"),
+                  attrs: {
+                    id: _vm._$g(9, "a-id"),
+                    canvasId: _vm._$g(9, "a-canvasId"),
+                    "disable-scroll": _vm._$g(9, "a-disable-scroll"),
+                    _i: 9
+                  },
+                  on: {
+                    error: function($event) {
+                      return _vm.$handleViewEvent($event)
+                    }
+                  }
+                })
+              ],
+              1
+            )
+          ]
+    ],
+    2
+  )
+}
+var recyclableRender = false
+var staticRenderFns = []
+render._withStripped = true
+
+
+
+/***/ }),
+/* 25 */
+/*!*****************************************************************************************************************!*\
+  !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/qiun-loading.vue ***!
+  \*****************************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _qiun_loading_vue_vue_type_template_id_1c4fd998_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./qiun-loading.vue?vue&type=template&id=1c4fd998&scoped=true& */ 26);
+/* harmony import */ var _qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./qiun-loading.vue?vue&type=script&lang=js& */ 28);
+/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));
+/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 10);
+
+var renderjs
+
+
+
+
+/* normalize component */
+
+var component = Object(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])(
+  _qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
+  _qiun_loading_vue_vue_type_template_id_1c4fd998_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"],
+  _qiun_loading_vue_vue_type_template_id_1c4fd998_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
+  false,
+  null,
+  "1c4fd998",
+  null,
+  false,
+  _qiun_loading_vue_vue_type_template_id_1c4fd998_scoped_true___WEBPACK_IMPORTED_MODULE_0__["components"],
+  renderjs
+)
+
+component.options.__file = "uni_modules/qiun-data-charts/components/qiun-loading/qiun-loading.vue"
+/* harmony default export */ __webpack_exports__["default"] = (component.exports);
+
+/***/ }),
+/* 26 */
+/*!************************************************************************************************************************************************************!*\
+  !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/qiun-loading.vue?vue&type=template&id=1c4fd998&scoped=true& ***!
+  \************************************************************************************************************************************************************/
+/*! exports provided: render, staticRenderFns, recyclableRender, components */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_loading_vue_vue_type_template_id_1c4fd998_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--16-0!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./qiun-loading.vue?vue&type=template&id=1c4fd998&scoped=true& */ 27);
+/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_loading_vue_vue_type_template_id_1c4fd998_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; });
+
+/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_loading_vue_vue_type_template_id_1c4fd998_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
+
+/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_loading_vue_vue_type_template_id_1c4fd998_scoped_true___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; });
+
+/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_loading_vue_vue_type_template_id_1c4fd998_scoped_true___WEBPACK_IMPORTED_MODULE_0__["components"]; });
+
+
+
+/***/ }),
+/* 27 */
+/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
+  !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--16-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/qiun-loading.vue?vue&type=template&id=1c4fd998&scoped=true& ***!
+  \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
+/*! exports provided: render, staticRenderFns, recyclableRender, components */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; });
+var components
+var render = function() {
+  var _vm = this
+  var _h = _vm.$createElement
+  var _c = _vm._self._c || _h
+  return _c(
+    "uni-view",
+    { attrs: { _i: 0 } },
+    [
+      _vm._$g(1, "i") ? _c("Loading1", { attrs: { _i: 1 } }) : _vm._e(),
+      _vm._$g(2, "i") ? _c("Loading2", { attrs: { _i: 2 } }) : _vm._e(),
+      _vm._$g(3, "i") ? _c("Loading3", { attrs: { _i: 3 } }) : _vm._e(),
+      _vm._$g(4, "i") ? _c("Loading4", { attrs: { _i: 4 } }) : _vm._e(),
+      _vm._$g(5, "i") ? _c("Loading5", { attrs: { _i: 5 } }) : _vm._e()
+    ],
+    1
+  )
+}
+var recyclableRender = false
+var staticRenderFns = []
+render._withStripped = true
+
+
+
+/***/ }),
+/* 28 */
+/*!******************************************************************************************************************************************!*\
+  !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/qiun-loading.vue?vue&type=script&lang=js& ***!
+  \******************************************************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/script.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./qiun-loading.vue?vue&type=script&lang=js& */ 29);
+/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);
+/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
+ /* harmony default export */ __webpack_exports__["default"] = (_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); 
+
+/***/ }),
+/* 29 */
+/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
+  !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/script.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/qiun-loading.vue?vue&type=script&lang=js& ***!
+  \*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;
+var _loading = _interopRequireDefault(__webpack_require__(/*! ./loading1.vue */ 30));
+var _loading2 = _interopRequireDefault(__webpack_require__(/*! ./loading2.vue */ 38));
+var _loading3 = _interopRequireDefault(__webpack_require__(/*! ./loading3.vue */ 46));
+var _loading4 = _interopRequireDefault(__webpack_require__(/*! ./loading4.vue */ 54));
+var _loading5 = _interopRequireDefault(__webpack_require__(/*! ./loading5.vue */ 62));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}var _default =
+{
+  name: "qiun-loading", props: ["loadingType"],
+  data: function data() {
+    return {
+      wxsProps: {} };
+
+  },
+  components: {
+    'Loading1': _loading.default,
+    'Loading2': _loading2.default,
+    'Loading3': _loading3.default,
+    'Loading4': _loading4.default,
+    'Loading5': _loading5.default } };exports.default = _default;
+
+/***/ }),
+/* 30 */
+/*!*************************************************************************************************************!*\
+  !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading1.vue ***!
+  \*************************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _loading1_vue_vue_type_template_id_e4e769ee_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./loading1.vue?vue&type=template&id=e4e769ee&scoped=true& */ 31);
+/* harmony import */ var _loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./loading1.vue?vue&type=script&lang=js& */ 33);
+/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));
+/* harmony import */ var _loading1_vue_vue_type_style_index_0_id_e4e769ee_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./loading1.vue?vue&type=style&index=0&id=e4e769ee&scoped=true&lang=css& */ 35);
+/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 10);
+
+var renderjs
+
+
+
+
+
+/* normalize component */
+
+var component = Object(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])(
+  _loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
+  _loading1_vue_vue_type_template_id_e4e769ee_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"],
+  _loading1_vue_vue_type_template_id_e4e769ee_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
+  false,
+  null,
+  "e4e769ee",
+  null,
+  false,
+  _loading1_vue_vue_type_template_id_e4e769ee_scoped_true___WEBPACK_IMPORTED_MODULE_0__["components"],
+  renderjs
+)
+
+component.options.__file = "uni_modules/qiun-data-charts/components/qiun-loading/loading1.vue"
+/* harmony default export */ __webpack_exports__["default"] = (component.exports);
+
+/***/ }),
+/* 31 */
+/*!********************************************************************************************************************************************************!*\
+  !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading1.vue?vue&type=template&id=e4e769ee&scoped=true& ***!
+  \********************************************************************************************************************************************************/
+/*! exports provided: render, staticRenderFns, recyclableRender, components */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading1_vue_vue_type_template_id_e4e769ee_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--16-0!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./loading1.vue?vue&type=template&id=e4e769ee&scoped=true& */ 32);
+/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading1_vue_vue_type_template_id_e4e769ee_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; });
+
+/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading1_vue_vue_type_template_id_e4e769ee_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
+
+/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading1_vue_vue_type_template_id_e4e769ee_scoped_true___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; });
+
+/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading1_vue_vue_type_template_id_e4e769ee_scoped_true___WEBPACK_IMPORTED_MODULE_0__["components"]; });
+
+
+
+/***/ }),
+/* 32 */
+/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
+  !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--16-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading1.vue?vue&type=template&id=e4e769ee&scoped=true& ***!
+  \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
+/*! exports provided: render, staticRenderFns, recyclableRender, components */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; });
+var components
+var render = function() {
+  var _vm = this
+  var _h = _vm.$createElement
+  var _c = _vm._self._c || _h
+  return _c(
+    "uni-view",
+    { staticClass: _vm._$g(0, "sc"), attrs: { _i: 0 } },
+    [
+      _c("uni-view", { staticClass: _vm._$g(1, "sc"), attrs: { _i: 1 } }),
+      _c("uni-view", { staticClass: _vm._$g(2, "sc"), attrs: { _i: 2 } }),
+      _c("uni-view", { staticClass: _vm._$g(3, "sc"), attrs: { _i: 3 } }),
+      _c("uni-view", { staticClass: _vm._$g(4, "sc"), attrs: { _i: 4 } })
+    ],
+    1
+  )
+}
+var recyclableRender = false
+var staticRenderFns = []
+render._withStripped = true
+
+
+
+/***/ }),
+/* 33 */
+/*!**************************************************************************************************************************************!*\
+  !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading1.vue?vue&type=script&lang=js& ***!
+  \**************************************************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/script.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./loading1.vue?vue&type=script&lang=js& */ 34);
+/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);
+/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
+ /* harmony default export */ __webpack_exports__["default"] = (_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); 
+
+/***/ }),
+/* 34 */
+/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
+  !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/script.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading1.vue?vue&type=script&lang=js& ***!
+  \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;var _default =
+
+{
+  name: "loading1",
+  data: function data() {
+    return {
+      wxsProps: {} };
+
+  },
+  components: {} };exports.default = _default;
+
+/***/ }),
+/* 35 */
+/*!**********************************************************************************************************************************************************************!*\
+  !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading1.vue?vue&type=style&index=0&id=e4e769ee&scoped=true&lang=css& ***!
+  \**********************************************************************************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading1_vue_vue_type_style_index_0_id_e4e769ee_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/app-vue-style-loader??ref--6-oneOf-1-0!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/postcss-loader/src??ref--6-oneOf-1-3!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./loading1.vue?vue&type=style&index=0&id=e4e769ee&scoped=true&lang=css& */ 36);
+/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading1_vue_vue_type_style_index_0_id_e4e769ee_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading1_vue_vue_type_style_index_0_id_e4e769ee_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__);
+/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading1_vue_vue_type_style_index_0_id_e4e769ee_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading1_vue_vue_type_style_index_0_id_e4e769ee_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
+ /* harmony default export */ __webpack_exports__["default"] = (_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading1_vue_vue_type_style_index_0_id_e4e769ee_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a); 
+
+/***/ }),
+/* 36 */
+/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
+  !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/app-vue-style-loader??ref--6-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!./node_modules/postcss-loader/src??ref--6-oneOf-1-3!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading1.vue?vue&type=style&index=0&id=e4e769ee&scoped=true&lang=css& ***!
+  \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+// style-loader: Adds some css to the DOM by adding a <style> tag
+
+// load the styles
+var content = __webpack_require__(/*! !../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/postcss-loader/src??ref--6-oneOf-1-3!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./loading1.vue?vue&type=style&index=0&id=e4e769ee&scoped=true&lang=css& */ 37);
+if(content.__esModule) content = content.default;
+if(typeof content === 'string') content = [[module.i, content, '']];
+if(content.locals) module.exports = content.locals;
+// add the styles to the DOM
+var add = __webpack_require__(/*! ../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/app-vue-style-loader/lib/addStylesClient.js */ 20).default
+var update = add("089b80b6", content, false, {"sourceMap":false,"shadowMode":false});
+// Hot Module Replacement
+if(false) {}
+
+/***/ }),
+/* 37 */
+/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
+  !*** ./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!./node_modules/postcss-loader/src??ref--6-oneOf-1-3!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading1.vue?vue&type=style&index=0&id=e4e769ee&scoped=true&lang=css& ***!
+  \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+// Imports
+var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/runtime/api.js */ 19);
+exports = ___CSS_LOADER_API_IMPORT___(false);
+// Module
+exports.push([module.i, "\n.container[data-v-e4e769ee] {\r\n  width: 30px;\r\n  height: 30px;\r\n  position: relative;\n}\n.container.loading1[data-v-e4e769ee] {\r\n  -webkit-transform: rotate(45deg);\r\n          transform: rotate(45deg);\n}\n.container .shape[data-v-e4e769ee] {\r\n  position: absolute;\r\n  width: 10px;\r\n  height: 10px;\r\n  border-radius: 1px;\n}\n.container .shape.shape1[data-v-e4e769ee] {\r\n  left: 0;\r\n  background-color: #1890FF;\n}\n.container .shape.shape2[data-v-e4e769ee] {\r\n  right: 0;\r\n  background-color: #91CB74;\n}\n.container .shape.shape3[data-v-e4e769ee] {\r\n  bottom: 0;\r\n  background-color: #FAC858;\n}\n.container .shape.shape4[data-v-e4e769ee] {\r\n  bottom: 0;\r\n  right: 0;\r\n  background-color: #EE6666;\n}\n.loading1 .shape1[data-v-e4e769ee] {\r\n  -webkit-animation: animation1shape1-data-v-e4e769ee 0.5s ease 0s infinite alternate;\r\n          animation: animation1shape1-data-v-e4e769ee 0.5s ease 0s infinite alternate;\n}\n@-webkit-keyframes animation1shape1-data-v-e4e769ee {\nfrom {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\nto {\r\n    -webkit-transform: translate(16px, 16px);\r\n            transform: translate(16px, 16px);\n}\n}\n@keyframes animation1shape1-data-v-e4e769ee {\nfrom {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\nto {\r\n    -webkit-transform: translate(16px, 16px);\r\n            transform: translate(16px, 16px);\n}\n}\n.loading1 .shape2[data-v-e4e769ee] {\r\n  -webkit-animation: animation1shape2-data-v-e4e769ee 0.5s ease 0s infinite alternate;\r\n          animation: animation1shape2-data-v-e4e769ee 0.5s ease 0s infinite alternate;\n}\n@-webkit-keyframes animation1shape2-data-v-e4e769ee {\nfrom {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\nto {\r\n    -webkit-transform: translate(-16px, 16px);\r\n            transform: translate(-16px, 16px);\n}\n}\n@keyframes animation1shape2-data-v-e4e769ee {\nfrom {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\nto {\r\n    -webkit-transform: translate(-16px, 16px);\r\n            transform: translate(-16px, 16px);\n}\n}\n.loading1 .shape3[data-v-e4e769ee] {\r\n  -webkit-animation: animation1shape3-data-v-e4e769ee 0.5s ease 0s infinite alternate;\r\n          animation: animation1shape3-data-v-e4e769ee 0.5s ease 0s infinite alternate;\n}\n@-webkit-keyframes animation1shape3-data-v-e4e769ee {\nfrom {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\nto {\r\n    -webkit-transform: translate(16px, -16px);\r\n            transform: translate(16px, -16px);\n}\n}\n@keyframes animation1shape3-data-v-e4e769ee {\nfrom {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\nto {\r\n    -webkit-transform: translate(16px, -16px);\r\n            transform: translate(16px, -16px);\n}\n}\n.loading1 .shape4[data-v-e4e769ee] {\r\n  -webkit-animation: animation1shape4-data-v-e4e769ee 0.5s ease 0s infinite alternate;\r\n          animation: animation1shape4-data-v-e4e769ee 0.5s ease 0s infinite alternate;\n}\n@-webkit-keyframes animation1shape4-data-v-e4e769ee {\nfrom {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\nto {\r\n    -webkit-transform: translate(-16px, -16px);\r\n            transform: translate(-16px, -16px);\n}\n}\n@keyframes animation1shape4-data-v-e4e769ee {\nfrom {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\nto {\r\n    -webkit-transform: translate(-16px, -16px);\r\n            transform: translate(-16px, -16px);\n}\n}\r\n\r\n\r\n", ""]);
+// Exports
+module.exports = exports;
+
+
+/***/ }),
+/* 38 */
+/*!*************************************************************************************************************!*\
+  !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading2.vue ***!
+  \*************************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _loading2_vue_vue_type_template_id_e4cb3aec_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./loading2.vue?vue&type=template&id=e4cb3aec&scoped=true& */ 39);
+/* harmony import */ var _loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./loading2.vue?vue&type=script&lang=js& */ 41);
+/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));
+/* harmony import */ var _loading2_vue_vue_type_style_index_0_id_e4cb3aec_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./loading2.vue?vue&type=style&index=0&id=e4cb3aec&scoped=true&lang=css& */ 43);
+/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 10);
+
+var renderjs
+
+
+
+
+
+/* normalize component */
+
+var component = Object(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])(
+  _loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
+  _loading2_vue_vue_type_template_id_e4cb3aec_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"],
+  _loading2_vue_vue_type_template_id_e4cb3aec_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
+  false,
+  null,
+  "e4cb3aec",
+  null,
+  false,
+  _loading2_vue_vue_type_template_id_e4cb3aec_scoped_true___WEBPACK_IMPORTED_MODULE_0__["components"],
+  renderjs
+)
+
+component.options.__file = "uni_modules/qiun-data-charts/components/qiun-loading/loading2.vue"
+/* harmony default export */ __webpack_exports__["default"] = (component.exports);
+
+/***/ }),
+/* 39 */
+/*!********************************************************************************************************************************************************!*\
+  !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading2.vue?vue&type=template&id=e4cb3aec&scoped=true& ***!
+  \********************************************************************************************************************************************************/
+/*! exports provided: render, staticRenderFns, recyclableRender, components */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading2_vue_vue_type_template_id_e4cb3aec_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--16-0!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./loading2.vue?vue&type=template&id=e4cb3aec&scoped=true& */ 40);
+/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading2_vue_vue_type_template_id_e4cb3aec_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; });
+
+/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading2_vue_vue_type_template_id_e4cb3aec_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
+
+/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading2_vue_vue_type_template_id_e4cb3aec_scoped_true___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; });
+
+/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading2_vue_vue_type_template_id_e4cb3aec_scoped_true___WEBPACK_IMPORTED_MODULE_0__["components"]; });
+
+
+
+/***/ }),
+/* 40 */
+/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
+  !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--16-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading2.vue?vue&type=template&id=e4cb3aec&scoped=true& ***!
+  \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
+/*! exports provided: render, staticRenderFns, recyclableRender, components */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; });
+var components
+var render = function() {
+  var _vm = this
+  var _h = _vm.$createElement
+  var _c = _vm._self._c || _h
+  return _c(
+    "uni-view",
+    { staticClass: _vm._$g(0, "sc"), attrs: { _i: 0 } },
+    [
+      _c("uni-view", { staticClass: _vm._$g(1, "sc"), attrs: { _i: 1 } }),
+      _c("uni-view", { staticClass: _vm._$g(2, "sc"), attrs: { _i: 2 } }),
+      _c("uni-view", { staticClass: _vm._$g(3, "sc"), attrs: { _i: 3 } }),
+      _c("uni-view", { staticClass: _vm._$g(4, "sc"), attrs: { _i: 4 } })
+    ],
+    1
+  )
+}
+var recyclableRender = false
+var staticRenderFns = []
+render._withStripped = true
+
+
+
+/***/ }),
+/* 41 */
+/*!**************************************************************************************************************************************!*\
+  !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading2.vue?vue&type=script&lang=js& ***!
+  \**************************************************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/script.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./loading2.vue?vue&type=script&lang=js& */ 42);
+/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);
+/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
+ /* harmony default export */ __webpack_exports__["default"] = (_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); 
+
+/***/ }),
+/* 42 */
+/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
+  !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/script.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading2.vue?vue&type=script&lang=js& ***!
+  \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;var _default =
+
+{
+  name: "loading2",
+  data: function data() {
+    return {
+      wxsProps: {} };
+
+  },
+  components: {} };exports.default = _default;
+
+/***/ }),
+/* 43 */
+/*!**********************************************************************************************************************************************************************!*\
+  !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading2.vue?vue&type=style&index=0&id=e4cb3aec&scoped=true&lang=css& ***!
+  \**********************************************************************************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading2_vue_vue_type_style_index_0_id_e4cb3aec_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/app-vue-style-loader??ref--6-oneOf-1-0!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/postcss-loader/src??ref--6-oneOf-1-3!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./loading2.vue?vue&type=style&index=0&id=e4cb3aec&scoped=true&lang=css& */ 44);
+/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading2_vue_vue_type_style_index_0_id_e4cb3aec_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading2_vue_vue_type_style_index_0_id_e4cb3aec_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__);
+/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading2_vue_vue_type_style_index_0_id_e4cb3aec_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading2_vue_vue_type_style_index_0_id_e4cb3aec_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
+ /* harmony default export */ __webpack_exports__["default"] = (_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading2_vue_vue_type_style_index_0_id_e4cb3aec_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a); 
+
+/***/ }),
+/* 44 */
+/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
+  !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/app-vue-style-loader??ref--6-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!./node_modules/postcss-loader/src??ref--6-oneOf-1-3!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading2.vue?vue&type=style&index=0&id=e4cb3aec&scoped=true&lang=css& ***!
+  \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+// style-loader: Adds some css to the DOM by adding a <style> tag
+
+// load the styles
+var content = __webpack_require__(/*! !../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/postcss-loader/src??ref--6-oneOf-1-3!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./loading2.vue?vue&type=style&index=0&id=e4cb3aec&scoped=true&lang=css& */ 45);
+if(content.__esModule) content = content.default;
+if(typeof content === 'string') content = [[module.i, content, '']];
+if(content.locals) module.exports = content.locals;
+// add the styles to the DOM
+var add = __webpack_require__(/*! ../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/app-vue-style-loader/lib/addStylesClient.js */ 20).default
+var update = add("06cee57c", content, false, {"sourceMap":false,"shadowMode":false});
+// Hot Module Replacement
+if(false) {}
+
+/***/ }),
+/* 45 */
+/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
+  !*** ./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!./node_modules/postcss-loader/src??ref--6-oneOf-1-3!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading2.vue?vue&type=style&index=0&id=e4cb3aec&scoped=true&lang=css& ***!
+  \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+// Imports
+var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/runtime/api.js */ 19);
+exports = ___CSS_LOADER_API_IMPORT___(false);
+// Module
+exports.push([module.i, "\n.container[data-v-e4cb3aec] {\r\n  width: 30px;\r\n  height: 30px;\r\n  position: relative;\n}\n.container.loading2[data-v-e4cb3aec] {\r\n  -webkit-transform: rotate(10deg);\r\n          transform: rotate(10deg);\n}\n.container.loading2 .shape[data-v-e4cb3aec] {\r\n  border-radius: 5px;\n}\n.container.loading2[data-v-e4cb3aec]{\r\n  -webkit-animation: rotation 1s infinite;\r\n          animation: rotation 1s infinite;\n}\n.container .shape[data-v-e4cb3aec] {\r\n  position: absolute;\r\n  width: 10px;\r\n  height: 10px;\r\n  border-radius: 1px;\n}\n.container .shape.shape1[data-v-e4cb3aec] {\r\n  left: 0;\r\n  background-color: #1890FF;\n}\n.container .shape.shape2[data-v-e4cb3aec] {\r\n  right: 0;\r\n  background-color: #91CB74;\n}\n.container .shape.shape3[data-v-e4cb3aec] {\r\n  bottom: 0;\r\n  background-color: #FAC858;\n}\n.container .shape.shape4[data-v-e4cb3aec] {\r\n  bottom: 0;\r\n  right: 0;\r\n  background-color: #EE6666;\n}\n.loading2 .shape1[data-v-e4cb3aec] {\r\n  -webkit-animation: animation2shape1-data-v-e4cb3aec 0.5s ease 0s infinite alternate;\r\n          animation: animation2shape1-data-v-e4cb3aec 0.5s ease 0s infinite alternate;\n}\n@-webkit-keyframes animation2shape1-data-v-e4cb3aec {\nfrom {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\nto {\r\n    -webkit-transform: translate(20px, 20px);\r\n            transform: translate(20px, 20px);\n}\n}\n@keyframes animation2shape1-data-v-e4cb3aec {\nfrom {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\nto {\r\n    -webkit-transform: translate(20px, 20px);\r\n            transform: translate(20px, 20px);\n}\n}\n.loading2 .shape2[data-v-e4cb3aec] {\r\n  -webkit-animation: animation2shape2-data-v-e4cb3aec 0.5s ease 0s infinite alternate;\r\n          animation: animation2shape2-data-v-e4cb3aec 0.5s ease 0s infinite alternate;\n}\n@-webkit-keyframes animation2shape2-data-v-e4cb3aec {\nfrom {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\nto {\r\n    -webkit-transform: translate(-20px, 20px);\r\n            transform: translate(-20px, 20px);\n}\n}\n@keyframes animation2shape2-data-v-e4cb3aec {\nfrom {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\nto {\r\n    -webkit-transform: translate(-20px, 20px);\r\n            transform: translate(-20px, 20px);\n}\n}\n.loading2 .shape3[data-v-e4cb3aec] {\r\n  -webkit-animation: animation2shape3-data-v-e4cb3aec 0.5s ease 0s infinite alternate;\r\n          animation: animation2shape3-data-v-e4cb3aec 0.5s ease 0s infinite alternate;\n}\n@-webkit-keyframes animation2shape3-data-v-e4cb3aec {\nfrom {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\nto {\r\n    -webkit-transform: translate(20px, -20px);\r\n            transform: translate(20px, -20px);\n}\n}\n@keyframes animation2shape3-data-v-e4cb3aec {\nfrom {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\nto {\r\n    -webkit-transform: translate(20px, -20px);\r\n            transform: translate(20px, -20px);\n}\n}\n.loading2 .shape4[data-v-e4cb3aec] {\r\n  -webkit-animation: animation2shape4-data-v-e4cb3aec 0.5s ease 0s infinite alternate;\r\n          animation: animation2shape4-data-v-e4cb3aec 0.5s ease 0s infinite alternate;\n}\n@-webkit-keyframes animation2shape4-data-v-e4cb3aec {\nfrom {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\nto {\r\n    -webkit-transform: translate(-20px, -20px);\r\n            transform: translate(-20px, -20px);\n}\n}\n@keyframes animation2shape4-data-v-e4cb3aec {\nfrom {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\nto {\r\n    -webkit-transform: translate(-20px, -20px);\r\n            transform: translate(-20px, -20px);\n}\n}\r\n\r\n", ""]);
+// Exports
+module.exports = exports;
+
+
+/***/ }),
+/* 46 */
+/*!*************************************************************************************************************!*\
+  !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading3.vue ***!
+  \*************************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _loading3_vue_vue_type_template_id_e4af0bea_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./loading3.vue?vue&type=template&id=e4af0bea&scoped=true& */ 47);
+/* harmony import */ var _loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./loading3.vue?vue&type=script&lang=js& */ 49);
+/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));
+/* harmony import */ var _loading3_vue_vue_type_style_index_0_id_e4af0bea_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./loading3.vue?vue&type=style&index=0&id=e4af0bea&scoped=true&lang=css& */ 51);
+/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 10);
+
+var renderjs
+
+
+
+
+
+/* normalize component */
+
+var component = Object(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])(
+  _loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
+  _loading3_vue_vue_type_template_id_e4af0bea_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"],
+  _loading3_vue_vue_type_template_id_e4af0bea_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
+  false,
+  null,
+  "e4af0bea",
+  null,
+  false,
+  _loading3_vue_vue_type_template_id_e4af0bea_scoped_true___WEBPACK_IMPORTED_MODULE_0__["components"],
+  renderjs
+)
+
+component.options.__file = "uni_modules/qiun-data-charts/components/qiun-loading/loading3.vue"
+/* harmony default export */ __webpack_exports__["default"] = (component.exports);
+
+/***/ }),
+/* 47 */
+/*!********************************************************************************************************************************************************!*\
+  !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading3.vue?vue&type=template&id=e4af0bea&scoped=true& ***!
+  \********************************************************************************************************************************************************/
+/*! exports provided: render, staticRenderFns, recyclableRender, components */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading3_vue_vue_type_template_id_e4af0bea_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--16-0!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./loading3.vue?vue&type=template&id=e4af0bea&scoped=true& */ 48);
+/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading3_vue_vue_type_template_id_e4af0bea_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; });
+
+/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading3_vue_vue_type_template_id_e4af0bea_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
+
+/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading3_vue_vue_type_template_id_e4af0bea_scoped_true___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; });
+
+/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading3_vue_vue_type_template_id_e4af0bea_scoped_true___WEBPACK_IMPORTED_MODULE_0__["components"]; });
+
+
+
+/***/ }),
+/* 48 */
+/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
+  !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--16-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading3.vue?vue&type=template&id=e4af0bea&scoped=true& ***!
+  \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
+/*! exports provided: render, staticRenderFns, recyclableRender, components */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; });
+var components
+var render = function() {
+  var _vm = this
+  var _h = _vm.$createElement
+  var _c = _vm._self._c || _h
+  return _c(
+    "uni-view",
+    { staticClass: _vm._$g(0, "sc"), attrs: { _i: 0 } },
+    [
+      _c("uni-view", { staticClass: _vm._$g(1, "sc"), attrs: { _i: 1 } }),
+      _c("uni-view", { staticClass: _vm._$g(2, "sc"), attrs: { _i: 2 } }),
+      _c("uni-view", { staticClass: _vm._$g(3, "sc"), attrs: { _i: 3 } }),
+      _c("uni-view", { staticClass: _vm._$g(4, "sc"), attrs: { _i: 4 } })
+    ],
+    1
+  )
+}
+var recyclableRender = false
+var staticRenderFns = []
+render._withStripped = true
+
+
+
+/***/ }),
+/* 49 */
+/*!**************************************************************************************************************************************!*\
+  !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading3.vue?vue&type=script&lang=js& ***!
+  \**************************************************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/script.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./loading3.vue?vue&type=script&lang=js& */ 50);
+/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);
+/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
+ /* harmony default export */ __webpack_exports__["default"] = (_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); 
+
+/***/ }),
+/* 50 */
+/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
+  !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/script.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading3.vue?vue&type=script&lang=js& ***!
+  \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;var _default =
+
+{
+  name: "loading3",
+  data: function data() {
+    return {
+      wxsProps: {} };
+
+  },
+  components: {} };exports.default = _default;
+
+/***/ }),
+/* 51 */
+/*!**********************************************************************************************************************************************************************!*\
+  !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading3.vue?vue&type=style&index=0&id=e4af0bea&scoped=true&lang=css& ***!
+  \**********************************************************************************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading3_vue_vue_type_style_index_0_id_e4af0bea_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/app-vue-style-loader??ref--6-oneOf-1-0!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/postcss-loader/src??ref--6-oneOf-1-3!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./loading3.vue?vue&type=style&index=0&id=e4af0bea&scoped=true&lang=css& */ 52);
+/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading3_vue_vue_type_style_index_0_id_e4af0bea_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading3_vue_vue_type_style_index_0_id_e4af0bea_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__);
+/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading3_vue_vue_type_style_index_0_id_e4af0bea_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading3_vue_vue_type_style_index_0_id_e4af0bea_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
+ /* harmony default export */ __webpack_exports__["default"] = (_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading3_vue_vue_type_style_index_0_id_e4af0bea_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a); 
+
+/***/ }),
+/* 52 */
+/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
+  !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/app-vue-style-loader??ref--6-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!./node_modules/postcss-loader/src??ref--6-oneOf-1-3!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading3.vue?vue&type=style&index=0&id=e4af0bea&scoped=true&lang=css& ***!
+  \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+// style-loader: Adds some css to the DOM by adding a <style> tag
+
+// load the styles
+var content = __webpack_require__(/*! !../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/postcss-loader/src??ref--6-oneOf-1-3!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./loading3.vue?vue&type=style&index=0&id=e4af0bea&scoped=true&lang=css& */ 53);
+if(content.__esModule) content = content.default;
+if(typeof content === 'string') content = [[module.i, content, '']];
+if(content.locals) module.exports = content.locals;
+// add the styles to the DOM
+var add = __webpack_require__(/*! ../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/app-vue-style-loader/lib/addStylesClient.js */ 20).default
+var update = add("7a321ec8", content, false, {"sourceMap":false,"shadowMode":false});
+// Hot Module Replacement
+if(false) {}
+
+/***/ }),
+/* 53 */
+/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
+  !*** ./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!./node_modules/postcss-loader/src??ref--6-oneOf-1-3!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading3.vue?vue&type=style&index=0&id=e4af0bea&scoped=true&lang=css& ***!
+  \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+// Imports
+var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/runtime/api.js */ 19);
+exports = ___CSS_LOADER_API_IMPORT___(false);
+// Module
+exports.push([module.i, "\n.container[data-v-e4af0bea] {\r\n  width: 30px;\r\n  height: 30px;\r\n  position: relative;\n}\n.container.loading3[data-v-e4af0bea] {\r\n  -webkit-animation: rotation 1s infinite;\r\n          animation: rotation 1s infinite;\n}\n.container.loading3 .shape1[data-v-e4af0bea] {\r\n  border-top-left-radius: 10px;\n}\n.container.loading3 .shape2[data-v-e4af0bea] {\r\n  border-top-right-radius: 10px;\n}\n.container.loading3 .shape3[data-v-e4af0bea] {\r\n  border-bottom-left-radius: 10px;\n}\n.container.loading3 .shape4[data-v-e4af0bea] {\r\n  border-bottom-right-radius: 10px;\n}\n.container .shape[data-v-e4af0bea] {\r\n  position: absolute;\r\n  width: 10px;\r\n  height: 10px;\r\n  border-radius: 1px;\n}\n.container .shape.shape1[data-v-e4af0bea] {\r\n  left: 0;\r\n  background-color: #1890FF;\n}\n.container .shape.shape2[data-v-e4af0bea] {\r\n  right: 0;\r\n  background-color: #91CB74;\n}\n.container .shape.shape3[data-v-e4af0bea] {\r\n  bottom: 0;\r\n  background-color: #FAC858;\n}\n.container .shape.shape4[data-v-e4af0bea] {\r\n  bottom: 0;\r\n  right: 0;\r\n  background-color: #EE6666;\n}\n.loading3 .shape1[data-v-e4af0bea] {\r\n  -webkit-animation: animation3shape1-data-v-e4af0bea 0.5s ease 0s infinite alternate;\r\n          animation: animation3shape1-data-v-e4af0bea 0.5s ease 0s infinite alternate;\n}\n@-webkit-keyframes animation3shape1-data-v-e4af0bea {\nfrom {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\nto {\r\n    -webkit-transform: translate(5px, 5px);\r\n            transform: translate(5px, 5px);\n}\n}\n@keyframes animation3shape1-data-v-e4af0bea {\nfrom {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\nto {\r\n    -webkit-transform: translate(5px, 5px);\r\n            transform: translate(5px, 5px);\n}\n}\n.loading3 .shape2[data-v-e4af0bea] {\r\n  -webkit-animation: animation3shape2-data-v-e4af0bea 0.5s ease 0s infinite alternate;\r\n          animation: animation3shape2-data-v-e4af0bea 0.5s ease 0s infinite alternate;\n}\n@-webkit-keyframes animation3shape2-data-v-e4af0bea {\nfrom {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\nto {\r\n    -webkit-transform: translate(-5px, 5px);\r\n            transform: translate(-5px, 5px);\n}\n}\n@keyframes animation3shape2-data-v-e4af0bea {\nfrom {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\nto {\r\n    -webkit-transform: translate(-5px, 5px);\r\n            transform: translate(-5px, 5px);\n}\n}\n.loading3 .shape3[data-v-e4af0bea] {\r\n  -webkit-animation: animation3shape3-data-v-e4af0bea 0.5s ease 0s infinite alternate;\r\n          animation: animation3shape3-data-v-e4af0bea 0.5s ease 0s infinite alternate;\n}\n@-webkit-keyframes animation3shape3-data-v-e4af0bea {\nfrom {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\nto {\r\n    -webkit-transform: translate(5px, -5px);\r\n            transform: translate(5px, -5px);\n}\n}\n@keyframes animation3shape3-data-v-e4af0bea {\nfrom {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\nto {\r\n    -webkit-transform: translate(5px, -5px);\r\n            transform: translate(5px, -5px);\n}\n}\n.loading3 .shape4[data-v-e4af0bea] {\r\n  -webkit-animation: animation3shape4-data-v-e4af0bea 0.5s ease 0s infinite alternate;\r\n          animation: animation3shape4-data-v-e4af0bea 0.5s ease 0s infinite alternate;\n}\n@-webkit-keyframes animation3shape4-data-v-e4af0bea {\nfrom {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\nto {\r\n    -webkit-transform: translate(-5px, -5px);\r\n            transform: translate(-5px, -5px);\n}\n}\n@keyframes animation3shape4-data-v-e4af0bea {\nfrom {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\nto {\r\n    -webkit-transform: translate(-5px, -5px);\r\n            transform: translate(-5px, -5px);\n}\n}\r\n", ""]);
+// Exports
+module.exports = exports;
+
+
+/***/ }),
+/* 54 */
+/*!*************************************************************************************************************!*\
+  !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading4.vue ***!
+  \*************************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _loading4_vue_vue_type_template_id_e492dce8_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./loading4.vue?vue&type=template&id=e492dce8&scoped=true& */ 55);
+/* harmony import */ var _loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./loading4.vue?vue&type=script&lang=js& */ 57);
+/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));
+/* harmony import */ var _loading4_vue_vue_type_style_index_0_id_e492dce8_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./loading4.vue?vue&type=style&index=0&id=e492dce8&scoped=true&lang=css& */ 59);
+/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 10);
+
+var renderjs
+
+
+
+
+
+/* normalize component */
+
+var component = Object(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])(
+  _loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
+  _loading4_vue_vue_type_template_id_e492dce8_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"],
+  _loading4_vue_vue_type_template_id_e492dce8_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
+  false,
+  null,
+  "e492dce8",
+  null,
+  false,
+  _loading4_vue_vue_type_template_id_e492dce8_scoped_true___WEBPACK_IMPORTED_MODULE_0__["components"],
+  renderjs
+)
+
+component.options.__file = "uni_modules/qiun-data-charts/components/qiun-loading/loading4.vue"
+/* harmony default export */ __webpack_exports__["default"] = (component.exports);
+
+/***/ }),
+/* 55 */
+/*!********************************************************************************************************************************************************!*\
+  !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading4.vue?vue&type=template&id=e492dce8&scoped=true& ***!
+  \********************************************************************************************************************************************************/
+/*! exports provided: render, staticRenderFns, recyclableRender, components */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading4_vue_vue_type_template_id_e492dce8_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--16-0!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./loading4.vue?vue&type=template&id=e492dce8&scoped=true& */ 56);
+/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading4_vue_vue_type_template_id_e492dce8_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; });
+
+/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading4_vue_vue_type_template_id_e492dce8_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
+
+/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading4_vue_vue_type_template_id_e492dce8_scoped_true___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; });
+
+/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading4_vue_vue_type_template_id_e492dce8_scoped_true___WEBPACK_IMPORTED_MODULE_0__["components"]; });
+
+
+
+/***/ }),
+/* 56 */
+/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
+  !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--16-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading4.vue?vue&type=template&id=e492dce8&scoped=true& ***!
+  \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
+/*! exports provided: render, staticRenderFns, recyclableRender, components */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; });
+var components
+var render = function() {
+  var _vm = this
+  var _h = _vm.$createElement
+  var _c = _vm._self._c || _h
+  return _c(
+    "uni-view",
+    { staticClass: _vm._$g(0, "sc"), attrs: { _i: 0 } },
+    [
+      _c("uni-view", { staticClass: _vm._$g(1, "sc"), attrs: { _i: 1 } }),
+      _c("uni-view", { staticClass: _vm._$g(2, "sc"), attrs: { _i: 2 } }),
+      _c("uni-view", { staticClass: _vm._$g(3, "sc"), attrs: { _i: 3 } }),
+      _c("uni-view", { staticClass: _vm._$g(4, "sc"), attrs: { _i: 4 } })
+    ],
+    1
+  )
+}
+var recyclableRender = false
+var staticRenderFns = []
+render._withStripped = true
+
+
+
+/***/ }),
+/* 57 */
+/*!**************************************************************************************************************************************!*\
+  !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading4.vue?vue&type=script&lang=js& ***!
+  \**************************************************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/script.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./loading4.vue?vue&type=script&lang=js& */ 58);
+/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);
+/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
+ /* harmony default export */ __webpack_exports__["default"] = (_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); 
+
+/***/ }),
+/* 58 */
+/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
+  !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/script.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading4.vue?vue&type=script&lang=js& ***!
+  \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;var _default =
+
+{
+  name: "loading5",
+  data: function data() {
+    return {
+      wxsProps: {} };
+
+  },
+  components: {} };exports.default = _default;
+
+/***/ }),
+/* 59 */
+/*!**********************************************************************************************************************************************************************!*\
+  !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading4.vue?vue&type=style&index=0&id=e492dce8&scoped=true&lang=css& ***!
+  \**********************************************************************************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading4_vue_vue_type_style_index_0_id_e492dce8_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/app-vue-style-loader??ref--6-oneOf-1-0!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/postcss-loader/src??ref--6-oneOf-1-3!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./loading4.vue?vue&type=style&index=0&id=e492dce8&scoped=true&lang=css& */ 60);
+/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading4_vue_vue_type_style_index_0_id_e492dce8_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading4_vue_vue_type_style_index_0_id_e492dce8_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__);
+/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading4_vue_vue_type_style_index_0_id_e492dce8_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading4_vue_vue_type_style_index_0_id_e492dce8_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
+ /* harmony default export */ __webpack_exports__["default"] = (_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading4_vue_vue_type_style_index_0_id_e492dce8_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a); 
+
+/***/ }),
+/* 60 */
+/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
+  !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/app-vue-style-loader??ref--6-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!./node_modules/postcss-loader/src??ref--6-oneOf-1-3!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading4.vue?vue&type=style&index=0&id=e492dce8&scoped=true&lang=css& ***!
+  \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+// style-loader: Adds some css to the DOM by adding a <style> tag
+
+// load the styles
+var content = __webpack_require__(/*! !../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/postcss-loader/src??ref--6-oneOf-1-3!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./loading4.vue?vue&type=style&index=0&id=e492dce8&scoped=true&lang=css& */ 61);
+if(content.__esModule) content = content.default;
+if(typeof content === 'string') content = [[module.i, content, '']];
+if(content.locals) module.exports = content.locals;
+// add the styles to the DOM
+var add = __webpack_require__(/*! ../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/app-vue-style-loader/lib/addStylesClient.js */ 20).default
+var update = add("a136bcf4", content, false, {"sourceMap":false,"shadowMode":false});
+// Hot Module Replacement
+if(false) {}
+
+/***/ }),
+/* 61 */
+/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
+  !*** ./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!./node_modules/postcss-loader/src??ref--6-oneOf-1-3!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading4.vue?vue&type=style&index=0&id=e492dce8&scoped=true&lang=css& ***!
+  \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+// Imports
+var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/runtime/api.js */ 19);
+exports = ___CSS_LOADER_API_IMPORT___(false);
+// Module
+exports.push([module.i, "\n.container[data-v-e492dce8] {\r\n  width: 30px;\r\n  height: 30px;\r\n  position: relative;\n}\n.container.loading5 .shape[data-v-e492dce8] {\r\n  width: 15px;\r\n  height: 15px;\n}\n.container .shape[data-v-e492dce8] {\r\n  position: absolute;\r\n  width: 10px;\r\n  height: 10px;\r\n  border-radius: 1px;\n}\n.container .shape.shape1[data-v-e492dce8] {\r\n  left: 0;\r\n  background-color: #1890FF;\n}\n.container .shape.shape2[data-v-e492dce8] {\r\n  right: 0;\r\n  background-color: #91CB74;\n}\n.container .shape.shape3[data-v-e492dce8] {\r\n  bottom: 0;\r\n  background-color: #FAC858;\n}\n.container .shape.shape4[data-v-e492dce8] {\r\n  bottom: 0;\r\n  right: 0;\r\n  background-color: #EE6666;\n}\n.loading5 .shape1[data-v-e492dce8] {\r\n  animation: animation5shape1-data-v-e492dce8 2s ease 0s infinite reverse;\n}\n@-webkit-keyframes animation5shape1-data-v-e492dce8 {\n0% {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\n25% {\r\n    -webkit-transform: translate(0, 15px);\r\n            transform: translate(0, 15px);\n}\n50% {\r\n    -webkit-transform: translate(15px, 15px);\r\n            transform: translate(15px, 15px);\n}\n75% {\r\n    -webkit-transform: translate(15px, 0);\r\n            transform: translate(15px, 0);\n}\n}\n@keyframes animation5shape1-data-v-e492dce8 {\n0% {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\n25% {\r\n    -webkit-transform: translate(0, 15px);\r\n            transform: translate(0, 15px);\n}\n50% {\r\n    -webkit-transform: translate(15px, 15px);\r\n            transform: translate(15px, 15px);\n}\n75% {\r\n    -webkit-transform: translate(15px, 0);\r\n            transform: translate(15px, 0);\n}\n}\n.loading5 .shape2[data-v-e492dce8] {\r\n  animation: animation5shape2-data-v-e492dce8 2s ease 0s infinite reverse;\n}\n@-webkit-keyframes animation5shape2-data-v-e492dce8 {\n0% {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\n25% {\r\n    -webkit-transform: translate(-15px, 0);\r\n            transform: translate(-15px, 0);\n}\n50% {\r\n    -webkit-transform: translate(-15px, 15px);\r\n            transform: translate(-15px, 15px);\n}\n75% {\r\n    -webkit-transform: translate(0, 15px);\r\n            transform: translate(0, 15px);\n}\n}\n@keyframes animation5shape2-data-v-e492dce8 {\n0% {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\n25% {\r\n    -webkit-transform: translate(-15px, 0);\r\n            transform: translate(-15px, 0);\n}\n50% {\r\n    -webkit-transform: translate(-15px, 15px);\r\n            transform: translate(-15px, 15px);\n}\n75% {\r\n    -webkit-transform: translate(0, 15px);\r\n            transform: translate(0, 15px);\n}\n}\n.loading5 .shape3[data-v-e492dce8] {\r\n  animation: animation5shape3-data-v-e492dce8 2s ease 0s infinite reverse;\n}\n@-webkit-keyframes animation5shape3-data-v-e492dce8 {\n0% {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\n25% {\r\n    -webkit-transform: translate(15px, 0);\r\n            transform: translate(15px, 0);\n}\n50% {\r\n    -webkit-transform: translate(15px, -15px);\r\n            transform: translate(15px, -15px);\n}\n75% {\r\n    -webkit-transform: translate(0, -15px);\r\n            transform: translate(0, -15px);\n}\n}\n@keyframes animation5shape3-data-v-e492dce8 {\n0% {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\n25% {\r\n    -webkit-transform: translate(15px, 0);\r\n            transform: translate(15px, 0);\n}\n50% {\r\n    -webkit-transform: translate(15px, -15px);\r\n            transform: translate(15px, -15px);\n}\n75% {\r\n    -webkit-transform: translate(0, -15px);\r\n            transform: translate(0, -15px);\n}\n}\n.loading5 .shape4[data-v-e492dce8] {\r\n  animation: animation5shape4-data-v-e492dce8 2s ease 0s infinite reverse;\n}\n@-webkit-keyframes animation5shape4-data-v-e492dce8 {\n0% {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\n25% {\r\n    -webkit-transform: translate(0, -15px);\r\n            transform: translate(0, -15px);\n}\n50% {\r\n    -webkit-transform: translate(-15px, -15px);\r\n            transform: translate(-15px, -15px);\n}\n75% {\r\n    -webkit-transform: translate(-15px, 0);\r\n            transform: translate(-15px, 0);\n}\n}\n@keyframes animation5shape4-data-v-e492dce8 {\n0% {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\n25% {\r\n    -webkit-transform: translate(0, -15px);\r\n            transform: translate(0, -15px);\n}\n50% {\r\n    -webkit-transform: translate(-15px, -15px);\r\n            transform: translate(-15px, -15px);\n}\n75% {\r\n    -webkit-transform: translate(-15px, 0);\r\n            transform: translate(-15px, 0);\n}\n}\r\n\r\n", ""]);
+// Exports
+module.exports = exports;
+
+
+/***/ }),
+/* 62 */
+/*!*************************************************************************************************************!*\
+  !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading5.vue ***!
+  \*************************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _loading5_vue_vue_type_template_id_e476ade6_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./loading5.vue?vue&type=template&id=e476ade6&scoped=true& */ 63);
+/* harmony import */ var _loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./loading5.vue?vue&type=script&lang=js& */ 65);
+/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));
+/* harmony import */ var _loading5_vue_vue_type_style_index_0_id_e476ade6_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./loading5.vue?vue&type=style&index=0&id=e476ade6&scoped=true&lang=css& */ 67);
+/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 10);
+
+var renderjs
+
+
+
+
+
+/* normalize component */
+
+var component = Object(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])(
+  _loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
+  _loading5_vue_vue_type_template_id_e476ade6_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"],
+  _loading5_vue_vue_type_template_id_e476ade6_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
+  false,
+  null,
+  "e476ade6",
+  null,
+  false,
+  _loading5_vue_vue_type_template_id_e476ade6_scoped_true___WEBPACK_IMPORTED_MODULE_0__["components"],
+  renderjs
+)
+
+component.options.__file = "uni_modules/qiun-data-charts/components/qiun-loading/loading5.vue"
+/* harmony default export */ __webpack_exports__["default"] = (component.exports);
+
+/***/ }),
+/* 63 */
+/*!********************************************************************************************************************************************************!*\
+  !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading5.vue?vue&type=template&id=e476ade6&scoped=true& ***!
+  \********************************************************************************************************************************************************/
+/*! exports provided: render, staticRenderFns, recyclableRender, components */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading5_vue_vue_type_template_id_e476ade6_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--16-0!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./loading5.vue?vue&type=template&id=e476ade6&scoped=true& */ 64);
+/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading5_vue_vue_type_template_id_e476ade6_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; });
+
+/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading5_vue_vue_type_template_id_e476ade6_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
+
+/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading5_vue_vue_type_template_id_e476ade6_scoped_true___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; });
+
+/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading5_vue_vue_type_template_id_e476ade6_scoped_true___WEBPACK_IMPORTED_MODULE_0__["components"]; });
+
+
+
+/***/ }),
+/* 64 */
+/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
+  !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--16-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading5.vue?vue&type=template&id=e476ade6&scoped=true& ***!
+  \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
+/*! exports provided: render, staticRenderFns, recyclableRender, components */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; });
+var components
+var render = function() {
+  var _vm = this
+  var _h = _vm.$createElement
+  var _c = _vm._self._c || _h
+  return _c(
+    "uni-view",
+    { staticClass: _vm._$g(0, "sc"), attrs: { _i: 0 } },
+    [
+      _c("uni-view", { staticClass: _vm._$g(1, "sc"), attrs: { _i: 1 } }),
+      _c("uni-view", { staticClass: _vm._$g(2, "sc"), attrs: { _i: 2 } }),
+      _c("uni-view", { staticClass: _vm._$g(3, "sc"), attrs: { _i: 3 } }),
+      _c("uni-view", { staticClass: _vm._$g(4, "sc"), attrs: { _i: 4 } })
+    ],
+    1
+  )
+}
+var recyclableRender = false
+var staticRenderFns = []
+render._withStripped = true
+
+
+
+/***/ }),
+/* 65 */
+/*!**************************************************************************************************************************************!*\
+  !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading5.vue?vue&type=script&lang=js& ***!
+  \**************************************************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/script.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./loading5.vue?vue&type=script&lang=js& */ 66);
+/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);
+/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
+ /* harmony default export */ __webpack_exports__["default"] = (_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); 
+
+/***/ }),
+/* 66 */
+/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
+  !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/script.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading5.vue?vue&type=script&lang=js& ***!
+  \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;var _default =
+
+{
+  name: "loading6",
+  data: function data() {
+    return {
+      wxsProps: {} };
+
+  },
+  components: {} };exports.default = _default;
+
+/***/ }),
+/* 67 */
+/*!**********************************************************************************************************************************************************************!*\
+  !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading5.vue?vue&type=style&index=0&id=e476ade6&scoped=true&lang=css& ***!
+  \**********************************************************************************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading5_vue_vue_type_style_index_0_id_e476ade6_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/app-vue-style-loader??ref--6-oneOf-1-0!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/postcss-loader/src??ref--6-oneOf-1-3!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./loading5.vue?vue&type=style&index=0&id=e476ade6&scoped=true&lang=css& */ 68);
+/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading5_vue_vue_type_style_index_0_id_e476ade6_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading5_vue_vue_type_style_index_0_id_e476ade6_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__);
+/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading5_vue_vue_type_style_index_0_id_e476ade6_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading5_vue_vue_type_style_index_0_id_e476ade6_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
+ /* harmony default export */ __webpack_exports__["default"] = (_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading5_vue_vue_type_style_index_0_id_e476ade6_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a); 
+
+/***/ }),
+/* 68 */
+/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
+  !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/app-vue-style-loader??ref--6-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!./node_modules/postcss-loader/src??ref--6-oneOf-1-3!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading5.vue?vue&type=style&index=0&id=e476ade6&scoped=true&lang=css& ***!
+  \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+// style-loader: Adds some css to the DOM by adding a <style> tag
+
+// load the styles
+var content = __webpack_require__(/*! !../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/postcss-loader/src??ref--6-oneOf-1-3!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./loading5.vue?vue&type=style&index=0&id=e476ade6&scoped=true&lang=css& */ 69);
+if(content.__esModule) content = content.default;
+if(typeof content === 'string') content = [[module.i, content, '']];
+if(content.locals) module.exports = content.locals;
+// add the styles to the DOM
+var add = __webpack_require__(/*! ../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/app-vue-style-loader/lib/addStylesClient.js */ 20).default
+var update = add("75b304e0", content, false, {"sourceMap":false,"shadowMode":false});
+// Hot Module Replacement
+if(false) {}
+
+/***/ }),
+/* 69 */
+/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
+  !*** ./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!./node_modules/postcss-loader/src??ref--6-oneOf-1-3!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading5.vue?vue&type=style&index=0&id=e476ade6&scoped=true&lang=css& ***!
+  \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+// Imports
+var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/runtime/api.js */ 19);
+exports = ___CSS_LOADER_API_IMPORT___(false);
+// Module
+exports.push([module.i, "\n.container[data-v-e476ade6] {\r\n  width: 30px;\r\n  height: 30px;\r\n  position: relative;\n}\n.container.loading6[data-v-e476ade6] {\r\n  -webkit-animation: rotation 1s infinite;\r\n          animation: rotation 1s infinite;\n}\n.container.loading6 .shape[data-v-e476ade6] {\r\n  width: 12px;\r\n  height: 12px;\r\n  border-radius: 2px;\n}\n.container .shape[data-v-e476ade6] {\r\n  position: absolute;\r\n  width: 10px;\r\n  height: 10px;\r\n  border-radius: 1px;\n}\n.container .shape.shape1[data-v-e476ade6] {\r\n  left: 0;\r\n  background-color: #1890FF;\n}\n.container .shape.shape2[data-v-e476ade6] {\r\n  right: 0;\r\n  background-color: #91CB74;\n}\n.container .shape.shape3[data-v-e476ade6] {\r\n  bottom: 0;\r\n  background-color: #FAC858;\n}\n.container .shape.shape4[data-v-e476ade6] {\r\n  bottom: 0;\r\n  right: 0;\r\n  background-color: #EE6666;\n}\n.loading6 .shape1[data-v-e476ade6] {\r\n  -webkit-animation: animation6shape1-data-v-e476ade6 2s linear 0s infinite normal;\r\n          animation: animation6shape1-data-v-e476ade6 2s linear 0s infinite normal;\n}\n@-webkit-keyframes animation6shape1-data-v-e476ade6 {\n0% {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\n25% {\r\n    -webkit-transform: translate(0, 18px);\r\n            transform: translate(0, 18px);\n}\n50% {\r\n    -webkit-transform: translate(18px, 18px);\r\n            transform: translate(18px, 18px);\n}\n75% {\r\n    -webkit-transform: translate(18px, 0);\r\n            transform: translate(18px, 0);\n}\n}\n@keyframes animation6shape1-data-v-e476ade6 {\n0% {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\n25% {\r\n    -webkit-transform: translate(0, 18px);\r\n            transform: translate(0, 18px);\n}\n50% {\r\n    -webkit-transform: translate(18px, 18px);\r\n            transform: translate(18px, 18px);\n}\n75% {\r\n    -webkit-transform: translate(18px, 0);\r\n            transform: translate(18px, 0);\n}\n}\n.loading6 .shape2[data-v-e476ade6] {\r\n  -webkit-animation: animation6shape2-data-v-e476ade6 2s linear 0s infinite normal;\r\n          animation: animation6shape2-data-v-e476ade6 2s linear 0s infinite normal;\n}\n@-webkit-keyframes animation6shape2-data-v-e476ade6 {\n0% {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\n25% {\r\n    -webkit-transform: translate(-18px, 0);\r\n            transform: translate(-18px, 0);\n}\n50% {\r\n    -webkit-transform: translate(-18px, 18px);\r\n            transform: translate(-18px, 18px);\n}\n75% {\r\n    -webkit-transform: translate(0, 18px);\r\n            transform: translate(0, 18px);\n}\n}\n@keyframes animation6shape2-data-v-e476ade6 {\n0% {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\n25% {\r\n    -webkit-transform: translate(-18px, 0);\r\n            transform: translate(-18px, 0);\n}\n50% {\r\n    -webkit-transform: translate(-18px, 18px);\r\n            transform: translate(-18px, 18px);\n}\n75% {\r\n    -webkit-transform: translate(0, 18px);\r\n            transform: translate(0, 18px);\n}\n}\n.loading6 .shape3[data-v-e476ade6] {\r\n  -webkit-animation: animation6shape3-data-v-e476ade6 2s linear 0s infinite normal;\r\n          animation: animation6shape3-data-v-e476ade6 2s linear 0s infinite normal;\n}\n@-webkit-keyframes animation6shape3-data-v-e476ade6 {\n0% {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\n25% {\r\n    -webkit-transform: translate(18px, 0);\r\n            transform: translate(18px, 0);\n}\n50% {\r\n    -webkit-transform: translate(18px, -18px);\r\n            transform: translate(18px, -18px);\n}\n75% {\r\n    -webkit-transform: translate(0, -18px);\r\n            transform: translate(0, -18px);\n}\n}\n@keyframes animation6shape3-data-v-e476ade6 {\n0% {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\n25% {\r\n    -webkit-transform: translate(18px, 0);\r\n            transform: translate(18px, 0);\n}\n50% {\r\n    -webkit-transform: translate(18px, -18px);\r\n            transform: translate(18px, -18px);\n}\n75% {\r\n    -webkit-transform: translate(0, -18px);\r\n            transform: translate(0, -18px);\n}\n}\n.loading6 .shape4[data-v-e476ade6] {\r\n  -webkit-animation: animation6shape4-data-v-e476ade6 2s linear 0s infinite normal;\r\n          animation: animation6shape4-data-v-e476ade6 2s linear 0s infinite normal;\n}\n@-webkit-keyframes animation6shape4-data-v-e476ade6 {\n0% {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\n25% {\r\n    -webkit-transform: translate(0, -18px);\r\n            transform: translate(0, -18px);\n}\n50% {\r\n    -webkit-transform: translate(-18px, -18px);\r\n            transform: translate(-18px, -18px);\n}\n75% {\r\n    -webkit-transform: translate(-18px, 0);\r\n            transform: translate(-18px, 0);\n}\n}\n@keyframes animation6shape4-data-v-e476ade6 {\n0% {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\n25% {\r\n    -webkit-transform: translate(0, -18px);\r\n            transform: translate(0, -18px);\n}\n50% {\r\n    -webkit-transform: translate(-18px, -18px);\r\n            transform: translate(-18px, -18px);\n}\n75% {\r\n    -webkit-transform: translate(-18px, 0);\r\n            transform: translate(-18px, 0);\n}\n}\r\n", ""]);
+// Exports
+module.exports = exports;
+
+
+/***/ }),
+/* 70 */
+/*!*************************************************************************************************************!*\
+  !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-error/qiun-error.vue ***!
+  \*************************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _qiun_error_vue_vue_type_template_id_0507f1f4_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./qiun-error.vue?vue&type=template&id=0507f1f4&scoped=true& */ 71);
+/* harmony import */ var _qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./qiun-error.vue?vue&type=script&lang=js& */ 73);
+/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));
+/* harmony import */ var _qiun_error_vue_vue_type_style_index_0_id_0507f1f4_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./qiun-error.vue?vue&type=style&index=0&id=0507f1f4&scoped=true&lang=css& */ 75);
+/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 10);
+
+var renderjs
+
+
+
+
+
+/* normalize component */
+
+var component = Object(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])(
+  _qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
+  _qiun_error_vue_vue_type_template_id_0507f1f4_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"],
+  _qiun_error_vue_vue_type_template_id_0507f1f4_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
+  false,
+  null,
+  "0507f1f4",
+  null,
+  false,
+  _qiun_error_vue_vue_type_template_id_0507f1f4_scoped_true___WEBPACK_IMPORTED_MODULE_0__["components"],
+  renderjs
+)
+
+component.options.__file = "uni_modules/qiun-data-charts/components/qiun-error/qiun-error.vue"
+/* harmony default export */ __webpack_exports__["default"] = (component.exports);
+
+/***/ }),
+/* 71 */
+/*!********************************************************************************************************************************************************!*\
+  !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-error/qiun-error.vue?vue&type=template&id=0507f1f4&scoped=true& ***!
+  \********************************************************************************************************************************************************/
+/*! exports provided: render, staticRenderFns, recyclableRender, components */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_error_vue_vue_type_template_id_0507f1f4_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--16-0!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./qiun-error.vue?vue&type=template&id=0507f1f4&scoped=true& */ 72);
+/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_error_vue_vue_type_template_id_0507f1f4_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; });
+
+/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_error_vue_vue_type_template_id_0507f1f4_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
+
+/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_error_vue_vue_type_template_id_0507f1f4_scoped_true___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; });
+
+/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_error_vue_vue_type_template_id_0507f1f4_scoped_true___WEBPACK_IMPORTED_MODULE_0__["components"]; });
+
+
+
+/***/ }),
+/* 72 */
+/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
+  !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--16-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-error/qiun-error.vue?vue&type=template&id=0507f1f4&scoped=true& ***!
+  \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
+/*! exports provided: render, staticRenderFns, recyclableRender, components */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; });
+var components
+var render = function() {
+  var _vm = this
+  var _h = _vm.$createElement
+  var _c = _vm._self._c || _h
+  return _c(
+    "uni-view",
+    { staticClass: _vm._$g(0, "sc"), attrs: { _i: 0 } },
+    [
+      _c("uni-view", { staticClass: _vm._$g(1, "sc"), attrs: { _i: 1 } }),
+      _c("uni-view", { staticClass: _vm._$g(2, "sc"), attrs: { _i: 2 } }, [
+        _vm._v(_vm._$g(2, "t0-0"))
+      ])
+    ],
+    1
+  )
+}
+var recyclableRender = false
+var staticRenderFns = []
+render._withStripped = true
+
+
+
+/***/ }),
+/* 73 */
+/*!**************************************************************************************************************************************!*\
+  !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-error/qiun-error.vue?vue&type=script&lang=js& ***!
+  \**************************************************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/script.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./qiun-error.vue?vue&type=script&lang=js& */ 74);
+/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);
+/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
+ /* harmony default export */ __webpack_exports__["default"] = (_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); 
+
+/***/ }),
+/* 74 */
+/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
+  !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/script.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-error/qiun-error.vue?vue&type=script&lang=js& ***!
+  \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;var _default =
+
+{
+  name: "qiun-error", props: ["errorMessage"],
+  data: function data() {
+    return {
+      wxsProps: {} };
+
+  },
+  components: {} };exports.default = _default;
+
+/***/ }),
+/* 75 */
+/*!**********************************************************************************************************************************************************************!*\
+  !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-error/qiun-error.vue?vue&type=style&index=0&id=0507f1f4&scoped=true&lang=css& ***!
+  \**********************************************************************************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_error_vue_vue_type_style_index_0_id_0507f1f4_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/app-vue-style-loader??ref--6-oneOf-1-0!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/postcss-loader/src??ref--6-oneOf-1-3!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./qiun-error.vue?vue&type=style&index=0&id=0507f1f4&scoped=true&lang=css& */ 76);
+/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_error_vue_vue_type_style_index_0_id_0507f1f4_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_error_vue_vue_type_style_index_0_id_0507f1f4_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__);
+/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_error_vue_vue_type_style_index_0_id_0507f1f4_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_error_vue_vue_type_style_index_0_id_0507f1f4_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
+ /* harmony default export */ __webpack_exports__["default"] = (_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_error_vue_vue_type_style_index_0_id_0507f1f4_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a); 
+
+/***/ }),
+/* 76 */
+/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
+  !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/app-vue-style-loader??ref--6-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!./node_modules/postcss-loader/src??ref--6-oneOf-1-3!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-error/qiun-error.vue?vue&type=style&index=0&id=0507f1f4&scoped=true&lang=css& ***!
+  \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+// style-loader: Adds some css to the DOM by adding a <style> tag
+
+// load the styles
+var content = __webpack_require__(/*! !../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/postcss-loader/src??ref--6-oneOf-1-3!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./qiun-error.vue?vue&type=style&index=0&id=0507f1f4&scoped=true&lang=css& */ 77);
+if(content.__esModule) content = content.default;
+if(typeof content === 'string') content = [[module.i, content, '']];
+if(content.locals) module.exports = content.locals;
+// add the styles to the DOM
+var add = __webpack_require__(/*! ../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/app-vue-style-loader/lib/addStylesClient.js */ 20).default
+var update = add("1cba97d7", content, false, {"sourceMap":false,"shadowMode":false});
+// Hot Module Replacement
+if(false) {}
+
+/***/ }),
+/* 77 */
+/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
+  !*** ./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!./node_modules/postcss-loader/src??ref--6-oneOf-1-3!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-error/qiun-error.vue?vue&type=style&index=0&id=0507f1f4&scoped=true&lang=css& ***!
+  \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+// Imports
+var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/runtime/api.js */ 19);
+exports = ___CSS_LOADER_API_IMPORT___(false);
+// Module
+exports.push([module.i, "\n.chartsview[data-v-0507f1f4] {\n\twidth: 100%;\n\theight: 100%;\n\tdisplay: flex;\n\tflex-direction: column;\n\tflex: 1;\n\tjustify-content: center;\n\talign-items: center;\n}\n.charts-font[data-v-0507f1f4]{\n\tfont-size: 14px;\n\tcolor: #CCCCCC;\n\tmargin-top: 10px;\n}\n.charts-error[data-v-0507f1f4]{\n\twidth: 128px;\n\theight: 128px;\n\tbackground: url(\"data:image/png;base64,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\");\n\tbackground-position: center;\n}\n", ""]);
+// Exports
+module.exports = exports;
+
+
+/***/ }),
+/* 78 */
+/*!********************************************************************************************************************************************************************!*\
+  !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue?vue&type=renderjs&module=rdcharts&lang=js& ***!
+  \********************************************************************************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_data_charts_vue_vue_type_renderjs_module_rdcharts_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./qiun-data-charts.vue?vue&type=renderjs&module=rdcharts&lang=js& */ 79);
+/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_data_charts_vue_vue_type_renderjs_module_rdcharts_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_data_charts_vue_vue_type_renderjs_module_rdcharts_lang_js___WEBPACK_IMPORTED_MODULE_0__);
+/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_data_charts_vue_vue_type_renderjs_module_rdcharts_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_data_charts_vue_vue_type_renderjs_module_rdcharts_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
+ /* harmony default export */ __webpack_exports__["default"] = (_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_data_charts_vue_vue_type_renderjs_module_rdcharts_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); 
+
+/***/ }),
+/* 79 */
+/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
+  !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue?vue&type=renderjs&module=rdcharts&lang=js& ***!
+  \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;var _uCharts = _interopRequireDefault(__webpack_require__(/*! ../../js_sdk/u-charts/u-charts.js */ 80));
+var _configUcharts = _interopRequireDefault(__webpack_require__(/*! ../../js_sdk/u-charts/config-ucharts.js */ 82));
+var _configEcharts = _interopRequireDefault(__webpack_require__(/*! ../../js_sdk/u-charts/config-echarts.js */ 83));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}
+
+var that = {};
+var rootdom = null;
+
+function rddeepCloneAssign() {var origin = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {args[_key - 1] = arguments[_key];}
+  for (var i in args) {
+    for (var key in args[i]) {
+      if (args[i].hasOwnProperty(key)) {
+        origin[key] = args[i][key] && typeof args[i][key] === 'object' ? rddeepCloneAssign(Array.isArray(args[i][key]) ? [] : {}, origin[key], args[i][key]) : args[i][key];
+      }
+    }
+  }
+  return origin;
+}
+
+function rdformatterAssign(args, formatter) {
+  for (var key in args) {
+    if (args.hasOwnProperty(key) && args[key] !== null && typeof args[key] === 'object') {
+      rdformatterAssign(args[key], formatter);
+    } else if (key === 'format' && typeof args[key] === 'string') {
+      args['formatter'] = formatter[args[key]] ? formatter[args[key]] : undefined;
+    }
+  }
+  return args;
+}var _default =
+
+{
+  data: function data() {
+    return {
+      rid: null };
+
+  },
+  mounted: function mounted() {var _this = this;
+    rootdom = { top: 0, left: 0 };
+
+
+
+
+
+
+
+    setTimeout(function () {
+      if (_this.rid === null) {
+        _this.$ownerInstance && _this.$ownerInstance.callMethod('getRenderType');
+      }
+    }, 200);
+  },
+  destroyed: function destroyed() {
+    delete _configUcharts.default.option[this.rid];
+    delete _configUcharts.default.instance[this.rid];
+    delete _configEcharts.default.option[this.rid];
+    delete _configEcharts.default.instance[this.rid];
+  },
+  methods: {
+    //==============浠ヤ笅鏄疎Charts鐨勬柟娉�====================
+    ecinit: function ecinit(newVal, oldVal, owner, instance) {
+      var cid = JSON.stringify(newVal.id);
+      this.rid = cid;
+      that[cid] = this.$ownerInstance || instance;
+      var eopts = JSON.parse(JSON.stringify(newVal));
+      var type = eopts.type;
+      //杞藉叆骞惰鐩栭粯璁ら厤缃�
+      if (type && _configEcharts.default.type.includes(type)) {
+        _configEcharts.default.option[cid] = rddeepCloneAssign({}, _configEcharts.default[type], eopts);
+      } else {
+        _configEcharts.default.option[cid] = rddeepCloneAssign({}, eopts);
+      }
+      var newData = eopts.chartData;
+      if (newData) {
+        //鎸傝浇categories鍜宻eries
+        if (_configEcharts.default.option[cid].xAxis && _configEcharts.default.option[cid].xAxis.type && _configEcharts.default.option[cid].xAxis.type === 'category') {
+          _configEcharts.default.option[cid].xAxis.data = newData.categories;
+        }
+        if (_configEcharts.default.option[cid].yAxis && _configEcharts.default.option[cid].yAxis.type && _configEcharts.default.option[cid].yAxis.type === 'category') {
+          _configEcharts.default.option[cid].yAxis.data = newData.categories;
+        }
+        _configEcharts.default.option[cid].series = [];
+        for (var i = 0; i < newData.series.length; i++) {
+          _configEcharts.default.option[cid].seriesTemplate = _configEcharts.default.option[cid].seriesTemplate ? _configEcharts.default.option[cid].seriesTemplate : {};
+          var Template = rddeepCloneAssign({}, _configEcharts.default.option[cid].seriesTemplate, newData.series[i]);
+          _configEcharts.default.option[cid].series.push(Template);
+        }
+      }
+
+      if (typeof window.echarts === 'object') {
+        this.newEChart();
+      } else {
+        var script = document.createElement('script');
+
+        script.src = './uni_modules/qiun-data-charts/static/app-plus/echarts.min.js';
+
+
+
+
+
+
+        script.onload = this.newEChart;
+        document.head.appendChild(script);
+      }
+    },
+    ecresize: function ecresize(newVal, oldVal, owner, instance) {
+      if (_configEcharts.default.instance[this.rid]) {
+        _configEcharts.default.instance[this.rid].resize();
+      }
+    },
+    newEChart: function newEChart() {
+      var cid = this.rid;
+      if (_configEcharts.default.instance[cid] === undefined) {
+        _configEcharts.default.instance[cid] = echarts.init(that[cid].$el.children[0]);
+        //ontap寮�鍚悗鎵嶈Е鍙慶lick浜嬩欢
+        if (_configEcharts.default.option[cid].ontap === true) {
+          _configEcharts.default.instance[cid].on('click', function (resdata) {
+            var event = JSON.parse(JSON.stringify({
+              x: resdata.event.offsetX, y: resdata.event.offsetY }));
+
+            that[cid].callMethod('emitMsg', { name: "getIndex", params: { type: "getIndex", event: event, currentIndex: resdata.dataIndex, value: resdata.data, seriesName: resdata.seriesName, id: cid } });
+          });
+          // 澧炲姞ECharts鐨刪ighlight娑堟伅锛屽疄鐜版寜涓嬬Щ鍔ㄨ繑鍥炵储寮曞姛鑳姐�俛dd by onefish 鍒涘缓浜� 2021-12-11 09:50
+          _configEcharts.default.instance[cid].on('highlight', function (resdata) {
+            that[cid].callMethod('emitMsg', { name: "getHighlight", params: { type: "highlight", res: resdata, id: cid } });
+          });
+        }
+        this.updataEChart(cid, _configEcharts.default.option[cid]);
+      } else {
+        this.updataEChart(cid, _configEcharts.default.option[cid]);
+      }
+    },
+    updataEChart: function updataEChart(cid, option) {
+      //鏇挎崲option鍐協ormat灞炴�т负formatter鐨勯瀹氫箟鏂规硶
+      option = rdformatterAssign(option, _configEcharts.default.formatter);
+      if (option.tooltip) {
+        option.tooltip.show = option.tooltipShow ? true : false;
+        option.tooltip.position = this.tooltipPosition();
+        //tooltipFormat鏂规硶锛屾浛鎹㈢粍浠剁殑tooltipFormat涓篶onfig-echarts.js鍐呭搴旂殑鏂规硶
+        if (typeof option.tooltipFormat === 'string' && _configEcharts.default.formatter[option.tooltipFormat]) {
+          option.tooltip.formatter = option.tooltip.formatter ? option.tooltip.formatter : _configEcharts.default.formatter[option.tooltipFormat];
+        }
+      }
+      // 棰滆壊娓愬彉娣诲姞鐨勬柟娉�
+      if (option.series) {
+        for (var i in option.series) {
+          var linearGradient = option.series[i].linearGradient;
+          if (linearGradient) {
+            option.series[i].color = new echarts.graphic.LinearGradient(linearGradient[0], linearGradient[1], linearGradient[2], linearGradient[3], linearGradient[4]);
+          }
+        }
+      }
+      _configEcharts.default.instance[cid].setOption(option, option.notMerge);
+      _configEcharts.default.instance[cid].on('finished', function () {
+        that[cid].callMethod('emitMsg', { name: "complete", params: { type: "complete", complete: true, id: cid } });
+        if (_configEcharts.default.instance[cid]) {
+          _configEcharts.default.instance[cid].off('finished');
+        }
+      });
+
+      //淇init鍒濆鍖栧疄渚嬭幏鍙栧楂樹笉姝g‘闂
+      if (
+      typeof that[cid].$el.children[0].clientWidth != 'undefined' && (
+
+      Math.abs(that[cid].$el.children[0].clientWidth - _configEcharts.default.instance[cid].getWidth()) > 3 ||
+      Math.abs(that[cid].$el.children[0].clientHeight - _configEcharts.default.instance[cid].getHeight()) > 3))
+
+      {this.ecresize();}
+    },
+    tooltipPosition: function tooltipPosition() {
+      return function (point, params, dom, rect, size) {
+        var x = point[0];
+        var y = point[1];
+        var viewWidth = size.viewSize[0];
+        var viewHeight = size.viewSize[1];
+        var boxWidth = size.contentSize[0];
+        var boxHeight = size.contentSize[1];
+        var posX = x + 30;
+        var posY = y + 30;
+        if (posX + boxWidth > viewWidth) {
+          posX = x - boxWidth - 30;
+        }
+        if (posY + boxHeight > viewHeight) {
+          posY = y - boxHeight - 30;
+        }
+        return [posX, posY];
+      };
+    },
+    //==============浠ヤ笅鏄痷Charts鐨勬柟娉�====================
+    ucinit: function ucinit(newVal, oldVal, owner, instance) {var _this2 = this;
+      if (JSON.stringify(newVal) == JSON.stringify(oldVal)) {
+        return;
+      }
+      if (!newVal.canvasId) {
+        return;
+      }
+      var cid = JSON.parse(JSON.stringify(newVal.canvasId));
+      this.rid = cid;
+      that[cid] = this.$ownerInstance || instance;
+      _configUcharts.default.option[cid] = JSON.parse(JSON.stringify(newVal));
+      _configUcharts.default.option[cid] = rdformatterAssign(_configUcharts.default.option[cid], _configUcharts.default.formatter);
+      var canvasdom = document.getElementById(cid);
+      if (canvasdom && canvasdom.children[0]) {
+        _configUcharts.default.option[cid].context = canvasdom.children[0].getContext("2d");
+        if (_configUcharts.default.instance[cid] && _configUcharts.default.option[cid] && _configUcharts.default.option[cid].update === true) {
+          this.updataUChart();
+        } else {
+          setTimeout(function () {
+            _configUcharts.default.option[cid].context.restore();
+            _configUcharts.default.option[cid].context.save();
+            _this2.newUChart();
+          }, 100);
+        }
+      }
+    },
+    newUChart: function newUChart() {
+      var cid = this.rid;
+      _configUcharts.default.instance[cid] = new _uCharts.default(_configUcharts.default.option[cid]);
+      _configUcharts.default.instance[cid].addEventListener('renderComplete', function () {
+        that[cid].callMethod('emitMsg', { name: "complete", params: { type: "complete", complete: true, id: cid, opts: _configUcharts.default.instance[cid].opts } });
+        _configUcharts.default.instance[cid].delEventListener('renderComplete');
+      });
+      _configUcharts.default.instance[cid].addEventListener('scrollLeft', function () {
+        that[cid].callMethod('emitMsg', { name: "scrollLeft", params: { type: "scrollLeft", scrollLeft: true, id: cid, opts: _configUcharts.default.instance[cid].opts } });
+      });
+      _configUcharts.default.instance[cid].addEventListener('scrollRight', function () {
+        that[cid].callMethod('emitMsg', { name: "scrollRight", params: { type: "scrollRight", scrollRight: true, id: cid, opts: _configUcharts.default.instance[cid].opts } });
+      });
+    },
+    updataUChart: function updataUChart() {
+      var cid = this.rid;
+      _configUcharts.default.instance[cid].updateData(_configUcharts.default.option[cid]);
+    },
+    tooltipDefault: function tooltipDefault(item, category, index, opts) {
+      if (category) {
+        var data = item.data;
+        if (typeof item.data === "object") {
+          data = item.data.value;
+        }
+        return category + ' ' + item.name + ':' + data;
+      } else {
+        if (item.properties && item.properties.name) {
+          return item.properties.name;
+        } else {
+          return item.name + ':' + item.data;
+        }
+      }
+    },
+    showTooltip: function showTooltip(e, cid) {var _this3 = this;
+      var tc = _configUcharts.default.option[cid].tooltipCustom;
+      if (tc && tc !== undefined && tc !== null) {
+        var offset = undefined;
+        if (tc.x >= 0 && tc.y >= 0) {
+          offset = { x: tc.x, y: tc.y + 10 };
+        }
+        _configUcharts.default.instance[cid].showToolTip(e, {
+          index: tc.index,
+          offset: offset,
+          textList: tc.textList,
+          formatter: function formatter(item, category, index, opts) {
+            if (typeof _configUcharts.default.option[cid].tooltipFormat === 'string' && _configUcharts.default.formatter[_configUcharts.default.option[cid].tooltipFormat]) {
+              return _configUcharts.default.formatter[_configUcharts.default.option[cid].tooltipFormat](item, category, index, opts);
+            } else {
+              return _this3.tooltipDefault(item, category, index, opts);
+            }
+          } });
+
+      } else {
+        _configUcharts.default.instance[cid].showToolTip(e, {
+          formatter: function formatter(item, category, index, opts) {
+            if (typeof _configUcharts.default.option[cid].tooltipFormat === 'string' && _configUcharts.default.formatter[_configUcharts.default.option[cid].tooltipFormat]) {
+              return _configUcharts.default.formatter[_configUcharts.default.option[cid].tooltipFormat](item, category, index, opts);
+            } else {
+              return _this3.tooltipDefault(item, category, index, opts);
+            }
+          } });
+
+      }
+    },
+    tap: function tap(e) {
+      var cid = this.rid;
+      var ontap = _configUcharts.default.option[cid].ontap;
+      var tooltipShow = _configUcharts.default.option[cid].tooltipShow;
+      var tapLegend = _configUcharts.default.option[cid].tapLegend;
+      if (ontap == false) return;
+      var currentIndex = null;
+      var legendIndex = null;
+      var rchartdom = document.getElementById('UC' + cid).getBoundingClientRect();
+      var tmpe = {};
+      if (e.detail.x) {//tap鎴栬�卌lick鐨勪簨浠�
+        tmpe = { x: e.detail.x - rchartdom.left, y: e.detail.y - rchartdom.top + rootdom.top };
+      } else {//mouse鐨勪簨浠�
+        tmpe = { x: e.clientX - rchartdom.left, y: e.clientY - rchartdom.top + rootdom.top };
+      }
+      e.changedTouches = [];
+      e.changedTouches.unshift(tmpe);
+      currentIndex = _configUcharts.default.instance[cid].getCurrentDataIndex(e);
+      legendIndex = _configUcharts.default.instance[cid].getLegendDataIndex(e);
+      if (tapLegend === true) {
+        _configUcharts.default.instance[cid].touchLegend(e);
+      }
+      if (tooltipShow == true) {
+        this.showTooltip(e, cid);
+      }
+      that[cid].callMethod('emitMsg', { name: "getIndex", params: { type: "getIndex", event: tmpe, currentIndex: currentIndex, legendIndex: legendIndex, id: cid, opts: _configUcharts.default.instance[cid].opts } });
+    },
+    touchStart: function touchStart(e) {
+      var cid = this.rid;
+      var ontouch = _configUcharts.default.option[cid].ontouch;
+      if (ontouch == false) return;
+      if (_configUcharts.default.option[cid].enableScroll === true && e.touches.length == 1) {
+        _configUcharts.default.instance[cid].scrollStart(e);
+      }
+      that[cid].callMethod('emitMsg', { name: "getTouchStart", params: { type: "touchStart", event: e.changedTouches[0], id: cid, opts: _configUcharts.default.instance[cid].opts } });
+    },
+    touchMove: function touchMove(e) {
+      var cid = this.rid;
+      var ontouch = _configUcharts.default.option[cid].ontouch;
+      if (ontouch == false) return;
+      if (_configUcharts.default.option[cid].enableScroll === true && e.changedTouches.length == 1) {
+        _configUcharts.default.instance[cid].scroll(e);
+      }
+      if (_configUcharts.default.option[cid].ontap === true && _configUcharts.default.option[cid].enableScroll === false && _configUcharts.default.option[cid].onmovetip === true) {
+        var rchartdom = document.getElementById('UC' + cid).getBoundingClientRect();
+        var tmpe = { x: e.changedTouches[0].clientX - rchartdom.left, y: e.changedTouches[0].clientY - rchartdom.top + rootdom.top };
+        e.changedTouches.unshift(tmpe);
+        if (_configUcharts.default.option[cid].tooltipShow === true) {
+          this.showTooltip(e, cid);
+        }
+      }
+      if (ontouch === true && _configUcharts.default.option[cid].enableScroll === true && _configUcharts.default.option[cid].onzoom === true && e.changedTouches.length == 2) {
+        _configUcharts.default.instance[cid].dobuleZoom(e);
+      }
+      that[cid].callMethod('emitMsg', { name: "getTouchMove", params: { type: "touchMove", event: e.changedTouches[0], id: cid, opts: _configUcharts.default.instance[cid].opts } });
+    },
+    touchEnd: function touchEnd(e) {
+      var cid = this.rid;
+      var ontouch = _configUcharts.default.option[cid].ontouch;
+      if (ontouch == false) return;
+      if (_configUcharts.default.option[cid].enableScroll === true && e.touches.length == 0) {
+        _configUcharts.default.instance[cid].scrollEnd(e);
+      }
+      that[cid].callMethod('emitMsg', { name: "getTouchEnd", params: { type: "touchEnd", event: e.changedTouches[0], id: cid, opts: _configUcharts.default.instance[cid].opts } });
+    },
+    mouseDown: function mouseDown(e) {
+      var cid = this.rid;
+      var onmouse = _configUcharts.default.option[cid].onmouse;
+      if (onmouse == false) return;
+      var rchartdom = document.getElementById('UC' + cid).getBoundingClientRect();
+      var tmpe = {};
+      tmpe = { x: e.clientX - rchartdom.left, y: e.clientY - rchartdom.top + rootdom.top };
+      e.changedTouches = [];
+      e.changedTouches.unshift(tmpe);
+      _configUcharts.default.instance[cid].scrollStart(e);
+      _configUcharts.default.option[cid].mousedown = true;
+      that[cid].callMethod('emitMsg', { name: "getTouchStart", params: { type: "mouseDown", event: tmpe, id: cid, opts: _configUcharts.default.instance[cid].opts } });
+    },
+    mouseMove: function mouseMove(e) {
+      var cid = this.rid;
+      var onmouse = _configUcharts.default.option[cid].onmouse;
+      var tooltipShow = _configUcharts.default.option[cid].tooltipShow;
+      if (onmouse == false) return;
+      var rchartdom = document.getElementById('UC' + cid).getBoundingClientRect();
+      var tmpe = {};
+      tmpe = { x: e.clientX - rchartdom.left, y: e.clientY - rchartdom.top + rootdom.top };
+      e.changedTouches = [];
+      e.changedTouches.unshift(tmpe);
+      if (_configUcharts.default.option[cid].mousedown) {
+        _configUcharts.default.instance[cid].scroll(e);
+        that[cid].callMethod('emitMsg', { name: "getTouchMove", params: { type: "mouseMove", event: tmpe, id: cid, opts: _configUcharts.default.instance[cid].opts } });
+      } else if (_configUcharts.default.instance[cid]) {
+        if (tooltipShow == true) {
+          this.showTooltip(e, cid);
+        }
+      }
+    },
+    mouseUp: function mouseUp(e) {
+      var cid = this.rid;
+      var onmouse = _configUcharts.default.option[cid].onmouse;
+      if (onmouse == false) return;
+      var rchartdom = document.getElementById('UC' + cid).getBoundingClientRect();
+      var tmpe = {};
+      tmpe = { x: e.clientX - rchartdom.left, y: e.clientY - rchartdom.top + rootdom.top };
+      e.changedTouches = [];
+      e.changedTouches.unshift(tmpe);
+      _configUcharts.default.instance[cid].scrollEnd(e);
+      _configUcharts.default.option[cid].mousedown = false;
+      that[cid].callMethod('emitMsg', { name: "getTouchEnd", params: { type: "mouseUp", event: tmpe, id: cid, opts: _configUcharts.default.instance[cid].opts } });
+    } } };exports.default = _default;
+
+/***/ }),
+/* 80 */
+/*!****************************************************************************************************!*\
+  !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/js_sdk/u-charts/u-charts.js ***!
+  \****************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+/* WEBPACK VAR INJECTION */(function(__f__) {/*
+ * uCharts (R)
+ * 楂樻�ц兘璺ㄥ钩鍙板浘琛ㄥ簱锛屾敮鎸丠5銆丄PP銆佸皬绋嬪簭锛堝井淇�/鏀粯瀹�/鐧惧害/澶存潯/QQ/360/蹇墜锛夈�乂ue銆乀aro绛夋敮鎸乧anvas鐨勬鏋跺钩鍙�
+ * Copyright (C) 2018-2022 QIUN (R) 绉嬩簯 https://www.ucharts.cn All rights reserved.
+ * Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
+ * 澶嶅埗浣跨敤璇蜂繚鐣欐湰娈垫敞閲婏紝鎰熻阿鏀寔寮�婧愶紒
+ * 
+ * uCharts (R) 瀹樻柟缃戠珯
+ * https://www.uCharts.cn
+ * 
+ * 寮�婧愬湴鍧�:
+ * https://gitee.com/uCharts/uCharts
+ * 
+ * uni-app鎻掍欢甯傚満鍦板潃锛�
+ * http://ext.dcloud.net.cn/plugin?id=271
+ * 
+ */
+
+Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;function _slicedToArray(arr, i) {return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();}function _nonIterableRest() {throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}function _unsupportedIterableToArray(o, minLen) {if (!o) return;if (typeof o === "string") return _arrayLikeToArray(o, minLen);var n = Object.prototype.toString.call(o).slice(8, -1);if (n === "Object" && o.constructor) n = o.constructor.name;if (n === "Map" || n === "Set") return Array.from(o);if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);}function _arrayLikeToArray(arr, len) {if (len == null || len > arr.length) len = arr.length;for (var i = 0, arr2 = new Array(len); i < len; i++) {arr2[i] = arr[i];}return arr2;}function _iterableToArrayLimit(arr, i) {if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return;var _arr = [];var _n = true;var _d = false;var _e = undefined;try {for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {_arr.push(_s.value);if (i && _arr.length === i) break;}} catch (err) {_d = true;_e = err;} finally {try {if (!_n && _i["return"] != null) _i["return"]();} finally {if (_d) throw _e;}}return _arr;}function _arrayWithHoles(arr) {if (Array.isArray(arr)) return arr;}
+
+var config = {
+  version: 'v2.4.4-20221102',
+  yAxisWidth: 15,
+  xAxisHeight: 22,
+  xAxisTextPadding: 3,
+  padding: [10, 10, 10, 10],
+  pixelRatio: 1,
+  rotate: false,
+  fontSize: 13,
+  fontColor: '#666666',
+  dataPointShape: ['circle', 'circle', 'circle', 'circle'],
+  color: ['#1890FF', '#91CB74', '#FAC858', '#EE6666', '#73C0DE', '#3CA272', '#FC8452', '#9A60B4', '#ea7ccc'],
+  linearColor: ['#0EE2F8', '#2BDCA8', '#FA7D8D', '#EB88E2', '#2AE3A0', '#0EE2F8', '#EB88E2', '#6773E3', '#F78A85'],
+  pieChartLinePadding: 15,
+  pieChartTextPadding: 5,
+  titleFontSize: 20,
+  subtitleFontSize: 15,
+  toolTipPadding: 3,
+  toolTipBackground: '#000000',
+  toolTipOpacity: 0.7,
+  toolTipLineHeight: 20,
+  radarLabelTextMargin: 13 };
+
+
+var assign = function assign(target) {for (var _len2 = arguments.length, varArgs = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {varArgs[_key2 - 1] = arguments[_key2];}
+  if (target == null) {
+    throw new TypeError('[uCharts] Cannot convert undefined or null to object');
+  }
+  if (!varArgs || varArgs.length <= 0) {
+    return target;
+  }
+  // 娣卞害鍚堝苟瀵硅薄
+  function deepAssign(obj1, obj2) {
+    for (var key in obj2) {
+      obj1[key] = obj1[key] && obj1[key].toString() === "[object Object]" ?
+      deepAssign(obj1[key], obj2[key]) : obj1[key] = obj2[key];
+    }
+    return obj1;
+  }
+  varArgs.forEach(function (val) {
+    target = deepAssign(target, val);
+  });
+  return target;
+};
+
+var util = {
+  toFixed: function toFixed(num, limit) {
+    limit = limit || 2;
+    if (this.isFloat(num)) {
+      num = num.toFixed(limit);
+    }
+    return num;
+  },
+  isFloat: function isFloat(num) {
+    return num % 1 !== 0;
+  },
+  approximatelyEqual: function approximatelyEqual(num1, num2) {
+    return Math.abs(num1 - num2) < 1e-10;
+  },
+  isSameSign: function isSameSign(num1, num2) {
+    return Math.abs(num1) === num1 && Math.abs(num2) === num2 || Math.abs(num1) !== num1 && Math.abs(num2) !== num2;
+  },
+  isSameXCoordinateArea: function isSameXCoordinateArea(p1, p2) {
+    return this.isSameSign(p1.x, p2.x);
+  },
+  isCollision: function isCollision(obj1, obj2) {
+    obj1.end = {};
+    obj1.end.x = obj1.start.x + obj1.width;
+    obj1.end.y = obj1.start.y - obj1.height;
+    obj2.end = {};
+    obj2.end.x = obj2.start.x + obj2.width;
+    obj2.end.y = obj2.start.y - obj2.height;
+    var flag = obj2.start.x > obj1.end.x || obj2.end.x < obj1.start.x || obj2.end.y > obj1.start.y || obj2.start.y < obj1.end.y;
+    return !flag;
+  } };
+
+
+//鍏煎H5鐐瑰嚮浜嬩欢
+function getH5Offset(e) {
+  e.mp = {
+    changedTouches: [] };
+
+  e.mp.changedTouches.push({
+    x: e.offsetX,
+    y: e.offsetY });
+
+  return e;
+}
+
+// hex 杞� rgba
+function hexToRgb(hexValue, opc) {
+  var rgx = /^#?([a-f\d])([a-f\d])([a-f\d])$/i;
+  var hex = hexValue.replace(rgx, function (m, r, g, b) {
+    return r + r + g + g + b + b;
+  });
+  var rgb = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
+  var r = parseInt(rgb[1], 16);
+  var g = parseInt(rgb[2], 16);
+  var b = parseInt(rgb[3], 16);
+  return 'rgba(' + r + ',' + g + ',' + b + ',' + opc + ')';
+}
+
+function findRange(num, type, limit) {
+  if (isNaN(num)) {
+    throw new Error('[uCharts] series鏁版嵁闇�涓篘umber鏍煎紡');
+  }
+  limit = limit || 10;
+  type = type ? type : 'upper';
+  var multiple = 1;
+  while (limit < 1) {
+    limit *= 10;
+    multiple *= 10;
+  }
+  if (type === 'upper') {
+    num = Math.ceil(num * multiple);
+  } else {
+    num = Math.floor(num * multiple);
+  }
+  while (num % limit !== 0) {
+    if (type === 'upper') {
+      if (num == num + 1) {//淇鏁版嵁鍊艰繃澶um++鏃犳晥鐨刡ug by 鍚戞棩钁� @xrk_jy
+        break;
+      }
+      num++;
+    } else {
+      num--;
+    }
+  }
+  return num / multiple;
+}
+
+function calCandleMA(dayArr, nameArr, colorArr, kdata) {
+  var seriesTemp = [];
+  for (var k = 0; k < dayArr.length; k++) {
+    var seriesItem = {
+      data: [],
+      name: nameArr[k],
+      color: colorArr[k] };
+
+    for (var i = 0, len = kdata.length; i < len; i++) {
+      if (i < dayArr[k]) {
+        seriesItem.data.push(null);
+        continue;
+      }
+      var sum = 0;
+      for (var j = 0; j < dayArr[k]; j++) {
+        sum += kdata[i - j][1];
+      }
+      seriesItem.data.push(+(sum / dayArr[k]).toFixed(3));
+    }
+    seriesTemp.push(seriesItem);
+  }
+  return seriesTemp;
+}
+
+function calValidDistance(self, distance, chartData, config, opts) {
+  var dataChartAreaWidth = opts.width - opts.area[1] - opts.area[3];
+  var dataChartWidth = chartData.eachSpacing * (opts.chartData.xAxisData.xAxisPoints.length - 1);
+  if (opts.type == 'mount' && opts.extra && opts.extra.mount && opts.extra.mount.widthRatio && opts.extra.mount.widthRatio > 1) {
+    if (opts.extra.mount.widthRatio > 2) opts.extra.mount.widthRatio = 2;
+    dataChartWidth += (opts.extra.mount.widthRatio - 1) * chartData.eachSpacing;
+  }
+  var validDistance = distance;
+  if (distance >= 0) {
+    validDistance = 0;
+    self.uevent.trigger('scrollLeft');
+    self.scrollOption.position = 'left';
+    opts.xAxis.scrollPosition = 'left';
+  } else if (Math.abs(distance) >= dataChartWidth - dataChartAreaWidth) {
+    validDistance = dataChartAreaWidth - dataChartWidth;
+    self.uevent.trigger('scrollRight');
+    self.scrollOption.position = 'right';
+    opts.xAxis.scrollPosition = 'right';
+  } else {
+    self.scrollOption.position = distance;
+    opts.xAxis.scrollPosition = distance;
+  }
+  return validDistance;
+}
+
+function isInAngleRange(angle, startAngle, endAngle) {
+  function adjust(angle) {
+    while (angle < 0) {
+      angle += 2 * Math.PI;
+    }
+    while (angle > 2 * Math.PI) {
+      angle -= 2 * Math.PI;
+    }
+    return angle;
+  }
+  angle = adjust(angle);
+  startAngle = adjust(startAngle);
+  endAngle = adjust(endAngle);
+  if (startAngle > endAngle) {
+    endAngle += 2 * Math.PI;
+    if (angle < startAngle) {
+      angle += 2 * Math.PI;
+    }
+  }
+  return angle >= startAngle && angle <= endAngle;
+}
+
+function createCurveControlPoints(points, i) {
+  function isNotMiddlePoint(points, i) {
+    if (points[i - 1] && points[i + 1]) {
+      return points[i].y >= Math.max(points[i - 1].y, points[i + 1].y) || points[i].y <= Math.min(points[i - 1].y,
+      points[i + 1].y);
+    } else {
+      return false;
+    }
+  }
+  function isNotMiddlePointX(points, i) {
+    if (points[i - 1] && points[i + 1]) {
+      return points[i].x >= Math.max(points[i - 1].x, points[i + 1].x) || points[i].x <= Math.min(points[i - 1].x,
+      points[i + 1].x);
+    } else {
+      return false;
+    }
+  }
+  var a = 0.2;
+  var b = 0.2;
+  var pAx = null;
+  var pAy = null;
+  var pBx = null;
+  var pBy = null;
+  if (i < 1) {
+    pAx = points[0].x + (points[1].x - points[0].x) * a;
+    pAy = points[0].y + (points[1].y - points[0].y) * a;
+  } else {
+    pAx = points[i].x + (points[i + 1].x - points[i - 1].x) * a;
+    pAy = points[i].y + (points[i + 1].y - points[i - 1].y) * a;
+  }
+
+  if (i > points.length - 3) {
+    var last = points.length - 1;
+    pBx = points[last].x - (points[last].x - points[last - 1].x) * b;
+    pBy = points[last].y - (points[last].y - points[last - 1].y) * b;
+  } else {
+    pBx = points[i + 1].x - (points[i + 2].x - points[i].x) * b;
+    pBy = points[i + 1].y - (points[i + 2].y - points[i].y) * b;
+  }
+  if (isNotMiddlePoint(points, i + 1)) {
+    pBy = points[i + 1].y;
+  }
+  if (isNotMiddlePoint(points, i)) {
+    pAy = points[i].y;
+  }
+  if (isNotMiddlePointX(points, i + 1)) {
+    pBx = points[i + 1].x;
+  }
+  if (isNotMiddlePointX(points, i)) {
+    pAx = points[i].x;
+  }
+  if (pAy >= Math.max(points[i].y, points[i + 1].y) || pAy <= Math.min(points[i].y, points[i + 1].y)) {
+    pAy = points[i].y;
+  }
+  if (pBy >= Math.max(points[i].y, points[i + 1].y) || pBy <= Math.min(points[i].y, points[i + 1].y)) {
+    pBy = points[i + 1].y;
+  }
+  if (pAx >= Math.max(points[i].x, points[i + 1].x) || pAx <= Math.min(points[i].x, points[i + 1].x)) {
+    pAx = points[i].x;
+  }
+  if (pBx >= Math.max(points[i].x, points[i + 1].x) || pBx <= Math.min(points[i].x, points[i + 1].x)) {
+    pBx = points[i + 1].x;
+  }
+  return {
+    ctrA: {
+      x: pAx,
+      y: pAy },
+
+    ctrB: {
+      x: pBx,
+      y: pBy } };
+
+
+}
+
+
+function convertCoordinateOrigin(x, y, center) {
+  return {
+    x: center.x + x,
+    y: center.y - y };
+
+}
+
+function avoidCollision(obj, target) {
+  if (target) {
+    // is collision test
+    while (util.isCollision(obj, target)) {
+      if (obj.start.x > 0) {
+        obj.start.y--;
+      } else if (obj.start.x < 0) {
+        obj.start.y++;
+      } else {
+        if (obj.start.y > 0) {
+          obj.start.y++;
+        } else {
+          obj.start.y--;
+        }
+      }
+    }
+  }
+  return obj;
+}
+
+function fixPieSeries(series, opts, config) {
+  var pieSeriesArr = [];
+  if (series.length > 0 && series[0].data.constructor.toString().indexOf('Array') > -1) {
+    opts._pieSeries_ = series;
+    var oldseries = series[0].data;
+    for (var i = 0; i < oldseries.length; i++) {
+      oldseries[i].formatter = series[0].formatter;
+      oldseries[i].data = oldseries[i].value;
+      pieSeriesArr.push(oldseries[i]);
+    }
+    opts.series = pieSeriesArr;
+  } else {
+    pieSeriesArr = series;
+  }
+  return pieSeriesArr;
+}
+
+function fillSeries(series, opts, config) {
+  var index = 0;
+  for (var i = 0; i < series.length; i++) {
+    var item = series[i];
+    if (!item.color) {
+      item.color = config.color[index];
+      index = (index + 1) % config.color.length;
+    }
+    if (!item.linearIndex) {
+      item.linearIndex = i;
+    }
+    if (!item.index) {
+      item.index = 0;
+    }
+    if (!item.type) {
+      item.type = opts.type;
+    }
+    if (typeof item.show == "undefined") {
+      item.show = true;
+    }
+    if (!item.type) {
+      item.type = opts.type;
+    }
+    if (!item.pointShape) {
+      item.pointShape = "circle";
+    }
+    if (!item.legendShape) {
+      switch (item.type) {
+        case 'line':
+          item.legendShape = "line";
+          break;
+        case 'column':
+        case 'bar':
+          item.legendShape = "rect";
+          break;
+        case 'area':
+        case 'mount':
+          item.legendShape = "triangle";
+          break;
+        default:
+          item.legendShape = "circle";}
+
+    }
+  }
+  return series;
+}
+
+function fillCustomColor(linearType, customColor, series, config) {
+  var newcolor = customColor || [];
+  if (linearType == 'custom' && newcolor.length == 0) {
+    newcolor = config.linearColor;
+  }
+  if (linearType == 'custom' && newcolor.length < series.length) {
+    var chazhi = series.length - newcolor.length;
+    for (var i = 0; i < chazhi; i++) {
+      newcolor.push(config.linearColor[(i + 1) % config.linearColor.length]);
+    }
+  }
+  return newcolor;
+}
+
+function getDataRange(minData, maxData) {
+  var limit = 0;
+  var range = maxData - minData;
+  if (range >= 10000) {
+    limit = 1000;
+  } else if (range >= 1000) {
+    limit = 100;
+  } else if (range >= 100) {
+    limit = 10;
+  } else if (range >= 10) {
+    limit = 5;
+  } else if (range >= 1) {
+    limit = 1;
+  } else if (range >= 0.1) {
+    limit = 0.1;
+  } else if (range >= 0.01) {
+    limit = 0.01;
+  } else if (range >= 0.001) {
+    limit = 0.001;
+  } else if (range >= 0.0001) {
+    limit = 0.0001;
+  } else if (range >= 0.00001) {
+    limit = 0.00001;
+  } else {
+    limit = 0.000001;
+  }
+  return {
+    minRange: findRange(minData, 'lower', limit),
+    maxRange: findRange(maxData, 'upper', limit) };
+
+}
+
+function measureText(text, fontSize, context) {
+  var width = 0;
+  text = String(text);
+
+
+
+  if (context !== false && context !== undefined && context.setFontSize && context.measureText) {
+    context.setFontSize(fontSize);
+    return context.measureText(text).width;
+  } else {
+    var text = text.split('');
+    for (var i = 0; i < text.length; i++) {
+      var item = text[i];
+      if (/[a-zA-Z]/.test(item)) {
+        width += 7;
+      } else if (/[0-9]/.test(item)) {
+        width += 5.5;
+      } else if (/\./.test(item)) {
+        width += 2.7;
+      } else if (/-/.test(item)) {
+        width += 3.25;
+      } else if (/:/.test(item)) {
+        width += 2.5;
+      } else if (/[\u4e00-\u9fa5]/.test(item)) {
+        width += 10;
+      } else if (/\(|\)/.test(item)) {
+        width += 3.73;
+      } else if (/\s/.test(item)) {
+        width += 2.5;
+      } else if (/%/.test(item)) {
+        width += 8;
+      } else {
+        width += 10;
+      }
+    }
+    return width * fontSize / 10;
+  }
+}
+
+function dataCombine(series) {
+  return series.reduce(function (a, b) {
+    return (a.data ? a.data : a).concat(b.data);
+  }, []);
+}
+
+function dataCombineStack(series, len) {
+  var sum = new Array(len);
+  for (var j = 0; j < sum.length; j++) {
+    sum[j] = 0;
+  }
+  for (var i = 0; i < series.length; i++) {
+    for (var j = 0; j < sum.length; j++) {
+      sum[j] += series[i].data[j];
+    }
+  }
+  return series.reduce(function (a, b) {
+    return (a.data ? a.data : a).concat(b.data).concat(sum);
+  }, []);
+}
+
+function getTouches(touches, opts, e) {
+  var x, y;
+  if (touches.clientX) {
+    if (opts.rotate) {
+      y = opts.height - touches.clientX * opts.pix;
+      x = (touches.pageY - e.currentTarget.offsetTop - opts.height / opts.pix / 2 * (opts.pix - 1)) * opts.pix;
+    } else {
+      x = touches.clientX * opts.pix;
+      y = (touches.pageY - e.currentTarget.offsetTop - opts.height / opts.pix / 2 * (opts.pix - 1)) * opts.pix;
+    }
+  } else {
+    if (opts.rotate) {
+      y = opts.height - touches.x * opts.pix;
+      x = touches.y * opts.pix;
+    } else {
+      x = touches.x * opts.pix;
+      y = touches.y * opts.pix;
+    }
+  }
+  return {
+    x: x,
+    y: y };
+
+}
+
+function getSeriesDataItem(series, index, group) {
+  var data = [];
+  var newSeries = [];
+  var indexIsArr = index.constructor.toString().indexOf('Array') > -1;
+  if (indexIsArr) {
+    var tempSeries = filterSeries(series);
+    for (var i = 0; i < group.length; i++) {
+      newSeries.push(tempSeries[group[i]]);
+    }
+  } else {
+    newSeries = series;
+  };
+  for (var _i = 0; _i < newSeries.length; _i++) {
+    var item = newSeries[_i];
+    var tmpindex = -1;
+    if (indexIsArr) {
+      tmpindex = index[_i];
+    } else {
+      tmpindex = index;
+    }
+    if (item.data[tmpindex] !== null && typeof item.data[tmpindex] !== 'undefined' && item.show) {
+      var seriesItem = {};
+      seriesItem.color = item.color;
+      seriesItem.type = item.type;
+      seriesItem.style = item.style;
+      seriesItem.pointShape = item.pointShape;
+      seriesItem.disableLegend = item.disableLegend;
+      seriesItem.name = item.name;
+      seriesItem.show = item.show;
+      seriesItem.data = item.formatter ? item.formatter(item.data[tmpindex]) : item.data[tmpindex];
+      data.push(seriesItem);
+    }
+  }
+  return data;
+}
+
+function getMaxTextListLength(list, fontSize, context) {
+  var lengthList = list.map(function (item) {
+    return measureText(item, fontSize, context);
+  });
+  return Math.max.apply(null, lengthList);
+}
+
+function getRadarCoordinateSeries(length) {
+  var eachAngle = 2 * Math.PI / length;
+  var CoordinateSeries = [];
+  for (var i = 0; i < length; i++) {
+    CoordinateSeries.push(eachAngle * i);
+  }
+  return CoordinateSeries.map(function (item) {
+    return -1 * item + Math.PI / 2;
+  });
+}
+
+function getToolTipData(seriesData, opts, index, group, categories) {
+  var option = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};
+  var calPoints = opts.chartData.calPoints ? opts.chartData.calPoints : [];
+  var points = {};
+  if (group.length > 0) {
+    var filterPoints = [];
+    for (var i = 0; i < group.length; i++) {
+      filterPoints.push(calPoints[group[i]]);
+    }
+    points = filterPoints[0][index[0]];
+  } else {
+    for (var _i2 = 0; _i2 < calPoints.length; _i2++) {
+      if (calPoints[_i2][index]) {
+        points = calPoints[_i2][index];
+        break;
+      }
+    }
+  };
+  var textList = seriesData.map(function (item) {
+    var titleText = null;
+    if (opts.categories && opts.categories.length > 0) {
+      titleText = categories[index];
+    };
+    return {
+      text: option.formatter ? option.formatter(item, titleText, index, opts) : item.name + ': ' + item.data,
+      color: item.color };
+
+  });
+  var offset = {
+    x: Math.round(points.x),
+    y: Math.round(points.y) };
+
+  return {
+    textList: textList,
+    offset: offset };
+
+}
+
+function getMixToolTipData(seriesData, opts, index, categories) {
+  var option = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};
+  var points = opts.chartData.xAxisPoints[index] + opts.chartData.eachSpacing / 2;
+  var textList = seriesData.map(function (item) {
+    return {
+      text: option.formatter ? option.formatter(item, categories[index], index, opts) : item.name + ': ' + item.data,
+      color: item.color,
+      disableLegend: item.disableLegend ? true : false };
+
+  });
+  textList = textList.filter(function (item) {
+    if (item.disableLegend !== true) {
+      return item;
+    }
+  });
+  var offset = {
+    x: Math.round(points),
+    y: 0 };
+
+  return {
+    textList: textList,
+    offset: offset };
+
+}
+
+function getCandleToolTipData(series, seriesData, opts, index, categories, extra) {
+  var option = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : {};
+  var calPoints = opts.chartData.calPoints;
+  var upColor = extra.color.upFill;
+  var downColor = extra.color.downFill;
+  //棰滆壊椤哄簭涓哄紑鐩橈紝鏀剁洏锛屾渶浣庯紝鏈�楂�
+  var color = [upColor, upColor, downColor, upColor];
+  var textList = [];
+  seriesData.map(function (item) {
+    if (index == 0) {
+      if (item.data[1] - item.data[0] < 0) {
+        color[1] = downColor;
+      } else {
+        color[1] = upColor;
+      }
+    } else {
+      if (item.data[0] < series[index - 1][1]) {
+        color[0] = downColor;
+      }
+      if (item.data[1] < item.data[0]) {
+        color[1] = downColor;
+      }
+      if (item.data[2] > series[index - 1][1]) {
+        color[2] = upColor;
+      }
+      if (item.data[3] < series[index - 1][1]) {
+        color[3] = downColor;
+      }
+    }
+    var text1 = {
+      text: '寮�鐩橈細' + item.data[0],
+      color: color[0] };
+
+    var text2 = {
+      text: '鏀剁洏锛�' + item.data[1],
+      color: color[1] };
+
+    var text3 = {
+      text: '鏈�浣庯細' + item.data[2],
+      color: color[2] };
+
+    var text4 = {
+      text: '鏈�楂橈細' + item.data[3],
+      color: color[3] };
+
+    textList.push(text1, text2, text3, text4);
+  });
+  var validCalPoints = [];
+  var offset = {
+    x: 0,
+    y: 0 };
+
+  for (var i = 0; i < calPoints.length; i++) {
+    var points = calPoints[i];
+    if (typeof points[index] !== 'undefined' && points[index] !== null) {
+      validCalPoints.push(points[index]);
+    }
+  }
+  offset.x = Math.round(validCalPoints[0][0].x);
+  return {
+    textList: textList,
+    offset: offset };
+
+}
+
+function filterSeries(series) {
+  var tempSeries = [];
+  for (var i = 0; i < series.length; i++) {
+    if (series[i].show == true) {
+      tempSeries.push(series[i]);
+    }
+  }
+  return tempSeries;
+}
+
+function findCurrentIndex(currentPoints, calPoints, opts, config) {
+  var offset = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;
+  var current = { index: -1, group: [] };
+  var spacing = opts.chartData.eachSpacing / 2;
+  var xAxisPoints = [];
+  if (calPoints && calPoints.length > 0) {
+    if (!opts.categories) {
+      spacing = 0;
+    } else {
+      for (var i = 1; i < opts.chartData.xAxisPoints.length; i++) {
+        xAxisPoints.push(opts.chartData.xAxisPoints[i] - spacing);
+      }
+      if ((opts.type == 'line' || opts.type == 'area') && opts.xAxis.boundaryGap == 'justify') {
+        xAxisPoints = opts.chartData.xAxisPoints;
+      }
+    }
+    if (isInExactChartArea(currentPoints, opts, config)) {
+      if (!opts.categories) {
+        var timePoints = Array(calPoints.length);
+        for (var _i3 = 0; _i3 < calPoints.length; _i3++) {
+          timePoints[_i3] = Array(calPoints[_i3].length);
+          for (var j = 0; j < calPoints[_i3].length; j++) {
+            timePoints[_i3][j] = Math.abs(calPoints[_i3][j].x - currentPoints.x);
+          }
+        };
+        var pointValue = Array(timePoints.length);
+        var pointIndex = Array(timePoints.length);
+        for (var _i4 = 0; _i4 < timePoints.length; _i4++) {
+          pointValue[_i4] = Math.min.apply(null, timePoints[_i4]);
+          pointIndex[_i4] = timePoints[_i4].indexOf(pointValue[_i4]);
+        }
+        var minValue = Math.min.apply(null, pointValue);
+        current.index = [];
+        for (var _i5 = 0; _i5 < pointValue.length; _i5++) {
+          if (pointValue[_i5] == minValue) {
+            current.group.push(_i5);
+            current.index.push(pointIndex[_i5]);
+          }
+        };
+      } else {
+        xAxisPoints.forEach(function (item, index) {
+          if (currentPoints.x + offset + spacing > item) {
+            current.index = index;
+          }
+        });
+      }
+    }
+  }
+  return current;
+}
+
+function findBarChartCurrentIndex(currentPoints, calPoints, opts, config) {
+  var offset = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;
+  var current = { index: -1, group: [] };
+  var spacing = opts.chartData.eachSpacing / 2;
+  var yAxisPoints = opts.chartData.yAxisPoints;
+  if (calPoints && calPoints.length > 0) {
+    if (isInExactChartArea(currentPoints, opts, config)) {
+      yAxisPoints.forEach(function (item, index) {
+        if (currentPoints.y + offset + spacing > item) {
+          current.index = index;
+        }
+      });
+    }
+  }
+  return current;
+}
+
+function findLegendIndex(currentPoints, legendData, opts) {
+  var currentIndex = -1;
+  var gap = 0;
+  if (isInExactLegendArea(currentPoints, legendData.area)) {
+    var points = legendData.points;
+    var index = -1;
+    for (var i = 0, len = points.length; i < len; i++) {
+      var item = points[i];
+      for (var j = 0; j < item.length; j++) {
+        index += 1;
+        var area = item[j]['area'];
+        if (area && currentPoints.x > area[0] - gap && currentPoints.x < area[2] + gap && currentPoints.y > area[1] - gap && currentPoints.y < area[3] + gap) {
+          currentIndex = index;
+          break;
+        }
+      }
+    }
+    return currentIndex;
+  }
+  return currentIndex;
+}
+
+function isInExactLegendArea(currentPoints, area) {
+  return currentPoints.x > area.start.x && currentPoints.x < area.end.x && currentPoints.y > area.start.y && currentPoints.y < area.end.y;
+}
+
+function isInExactChartArea(currentPoints, opts, config) {
+  return currentPoints.x <= opts.width - opts.area[1] + 10 && currentPoints.x >= opts.area[3] - 10 && currentPoints.y >= opts.area[0] && currentPoints.y <= opts.height - opts.area[2];
+}
+
+function findRadarChartCurrentIndex(currentPoints, radarData, count) {
+  var eachAngleArea = 2 * Math.PI / count;
+  var currentIndex = -1;
+  if (isInExactPieChartArea(currentPoints, radarData.center, radarData.radius)) {
+    var fixAngle = function fixAngle(angle) {
+      if (angle < 0) {
+        angle += 2 * Math.PI;
+      }
+      if (angle > 2 * Math.PI) {
+        angle -= 2 * Math.PI;
+      }
+      return angle;
+    };
+    var angle = Math.atan2(radarData.center.y - currentPoints.y, currentPoints.x - radarData.center.x);
+    angle = -1 * angle;
+    if (angle < 0) {
+      angle += 2 * Math.PI;
+    }
+    var angleList = radarData.angleList.map(function (item) {
+      item = fixAngle(-1 * item);
+      return item;
+    });
+    angleList.forEach(function (item, index) {
+      var rangeStart = fixAngle(item - eachAngleArea / 2);
+      var rangeEnd = fixAngle(item + eachAngleArea / 2);
+      if (rangeEnd < rangeStart) {
+        rangeEnd += 2 * Math.PI;
+      }
+      if (angle >= rangeStart && angle <= rangeEnd || angle + 2 * Math.PI >= rangeStart && angle + 2 * Math.PI <= rangeEnd) {
+        currentIndex = index;
+      }
+    });
+  }
+  return currentIndex;
+}
+
+function findFunnelChartCurrentIndex(currentPoints, funnelData) {
+  var currentIndex = -1;
+  for (var i = 0, len = funnelData.series.length; i < len; i++) {
+    var item = funnelData.series[i];
+    if (currentPoints.x > item.funnelArea[0] && currentPoints.x < item.funnelArea[2] && currentPoints.y > item.funnelArea[1] && currentPoints.y < item.funnelArea[3]) {
+      currentIndex = i;
+      break;
+    }
+  }
+  return currentIndex;
+}
+
+function findWordChartCurrentIndex(currentPoints, wordData) {
+  var currentIndex = -1;
+  for (var i = 0, len = wordData.length; i < len; i++) {
+    var item = wordData[i];
+    if (currentPoints.x > item.area[0] && currentPoints.x < item.area[2] && currentPoints.y > item.area[1] && currentPoints.y < item.area[3]) {
+      currentIndex = i;
+      break;
+    }
+  }
+  return currentIndex;
+}
+
+function findMapChartCurrentIndex(currentPoints, opts) {
+  var currentIndex = -1;
+  var cData = opts.chartData.mapData;
+  var data = opts.series;
+  var tmp = pointToCoordinate(currentPoints.y, currentPoints.x, cData.bounds, cData.scale, cData.xoffset, cData.yoffset);
+  var poi = [tmp.x, tmp.y];
+  for (var i = 0, len = data.length; i < len; i++) {
+    var item = data[i].geometry.coordinates;
+    if (isPoiWithinPoly(poi, item, opts.chartData.mapData.mercator)) {
+      currentIndex = i;
+      break;
+    }
+  }
+  return currentIndex;
+}
+
+function findRoseChartCurrentIndex(currentPoints, pieData, opts) {
+  var currentIndex = -1;
+  var series = getRoseDataPoints(opts._series_, opts.extra.rose.type, pieData.radius, pieData.radius);
+  if (pieData && pieData.center && isInExactPieChartArea(currentPoints, pieData.center, pieData.radius)) {
+    var angle = Math.atan2(pieData.center.y - currentPoints.y, currentPoints.x - pieData.center.x);
+    angle = -angle;
+    if (opts.extra.rose && opts.extra.rose.offsetAngle) {
+      angle = angle - opts.extra.rose.offsetAngle * Math.PI / 180;
+    }
+    for (var i = 0, len = series.length; i < len; i++) {
+      if (isInAngleRange(angle, series[i]._start_, series[i]._start_ + series[i]._rose_proportion_ * 2 * Math.PI)) {
+        currentIndex = i;
+        break;
+      }
+    }
+  }
+  return currentIndex;
+}
+
+function findPieChartCurrentIndex(currentPoints, pieData, opts) {
+  var currentIndex = -1;
+  var series = getPieDataPoints(pieData.series);
+  if (pieData && pieData.center && isInExactPieChartArea(currentPoints, pieData.center, pieData.radius)) {
+    var angle = Math.atan2(pieData.center.y - currentPoints.y, currentPoints.x - pieData.center.x);
+    angle = -angle;
+    if (opts.extra.pie && opts.extra.pie.offsetAngle) {
+      angle = angle - opts.extra.pie.offsetAngle * Math.PI / 180;
+    }
+    if (opts.extra.ring && opts.extra.ring.offsetAngle) {
+      angle = angle - opts.extra.ring.offsetAngle * Math.PI / 180;
+    }
+    for (var i = 0, len = series.length; i < len; i++) {
+      if (isInAngleRange(angle, series[i]._start_, series[i]._start_ + series[i]._proportion_ * 2 * Math.PI)) {
+        currentIndex = i;
+        break;
+      }
+    }
+  }
+  return currentIndex;
+}
+
+function isInExactPieChartArea(currentPoints, center, radius) {
+  return Math.pow(currentPoints.x - center.x, 2) + Math.pow(currentPoints.y - center.y, 2) <= Math.pow(radius, 2);
+}
+
+
+function splitPoints(points, eachSeries) {
+  var newPoints = [];
+  var items = [];
+  points.forEach(function (item, index) {
+    if (eachSeries.connectNulls) {
+      if (item !== null) {
+        items.push(item);
+      }
+    } else {
+      if (item !== null) {
+        items.push(item);
+      } else {
+        if (items.length) {
+          newPoints.push(items);
+        }
+        items = [];
+      }
+    }
+
+  });
+  if (items.length) {
+    newPoints.push(items);
+  }
+  return newPoints;
+}
+
+
+function calLegendData(series, opts, config, chartData, context) {
+  var legendData = {
+    area: {
+      start: {
+        x: 0,
+        y: 0 },
+
+      end: {
+        x: 0,
+        y: 0 },
+
+      width: 0,
+      height: 0,
+      wholeWidth: 0,
+      wholeHeight: 0 },
+
+    points: [],
+    widthArr: [],
+    heightArr: [] };
+
+  if (opts.legend.show === false) {
+    chartData.legendData = legendData;
+    return legendData;
+  }
+  var padding = opts.legend.padding * opts.pix;
+  var margin = opts.legend.margin * opts.pix;
+  var fontSize = opts.legend.fontSize ? opts.legend.fontSize * opts.pix : config.fontSize;
+  var shapeWidth = 15 * opts.pix;
+  var shapeRight = 5 * opts.pix;
+  var lineHeight = Math.max(opts.legend.lineHeight * opts.pix, fontSize);
+  if (opts.legend.position == 'top' || opts.legend.position == 'bottom') {
+    var legendList = [];
+    var widthCount = 0;
+    var widthCountArr = [];
+    var currentRow = [];
+    for (var i = 0; i < series.length; i++) {
+      var item = series[i];
+      var legendText = item.legendText ? item.legendText : item.name;
+      var itemWidth = shapeWidth + shapeRight + measureText(legendText || 'undefined', fontSize, context) + opts.legend.itemGap * opts.pix;
+      if (widthCount + itemWidth > opts.width - opts.area[1] - opts.area[3]) {
+        legendList.push(currentRow);
+        widthCountArr.push(widthCount - opts.legend.itemGap * opts.pix);
+        widthCount = itemWidth;
+        currentRow = [item];
+      } else {
+        widthCount += itemWidth;
+        currentRow.push(item);
+      }
+    }
+    if (currentRow.length) {
+      legendList.push(currentRow);
+      widthCountArr.push(widthCount - opts.legend.itemGap * opts.pix);
+      legendData.widthArr = widthCountArr;
+      var legendWidth = Math.max.apply(null, widthCountArr);
+      switch (opts.legend.float) {
+        case 'left':
+          legendData.area.start.x = opts.area[3];
+          legendData.area.end.x = opts.area[3] + legendWidth + 2 * padding;
+          break;
+        case 'right':
+          legendData.area.start.x = opts.width - opts.area[1] - legendWidth - 2 * padding;
+          legendData.area.end.x = opts.width - opts.area[1];
+          break;
+        default:
+          legendData.area.start.x = (opts.width - legendWidth) / 2 - padding;
+          legendData.area.end.x = (opts.width + legendWidth) / 2 + padding;}
+
+      legendData.area.width = legendWidth + 2 * padding;
+      legendData.area.wholeWidth = legendWidth + 2 * padding;
+      legendData.area.height = legendList.length * lineHeight + 2 * padding;
+      legendData.area.wholeHeight = legendList.length * lineHeight + 2 * padding + 2 * margin;
+      legendData.points = legendList;
+    }
+  } else {
+    var len = series.length;
+    var maxHeight = opts.height - opts.area[0] - opts.area[2] - 2 * margin - 2 * padding;
+    var maxLength = Math.min(Math.floor(maxHeight / lineHeight), len);
+    legendData.area.height = maxLength * lineHeight + padding * 2;
+    legendData.area.wholeHeight = maxLength * lineHeight + padding * 2;
+    switch (opts.legend.float) {
+      case 'top':
+        legendData.area.start.y = opts.area[0] + margin;
+        legendData.area.end.y = opts.area[0] + margin + legendData.area.height;
+        break;
+      case 'bottom':
+        legendData.area.start.y = opts.height - opts.area[2] - margin - legendData.area.height;
+        legendData.area.end.y = opts.height - opts.area[2] - margin;
+        break;
+      default:
+        legendData.area.start.y = (opts.height - legendData.area.height) / 2;
+        legendData.area.end.y = (opts.height + legendData.area.height) / 2;}
+
+    var lineNum = len % maxLength === 0 ? len / maxLength : Math.floor(len / maxLength + 1);
+    var _currentRow = [];
+    for (var _i6 = 0; _i6 < lineNum; _i6++) {
+      var temp = series.slice(_i6 * maxLength, _i6 * maxLength + maxLength);
+      _currentRow.push(temp);
+    }
+    legendData.points = _currentRow;
+    if (_currentRow.length) {
+      for (var _i7 = 0; _i7 < _currentRow.length; _i7++) {
+        var _item = _currentRow[_i7];
+        var maxWidth = 0;
+        for (var j = 0; j < _item.length; j++) {
+          var _itemWidth = shapeWidth + shapeRight + measureText(_item[j].name || 'undefined', fontSize, context) + opts.legend.itemGap * opts.pix;
+          if (_itemWidth > maxWidth) {
+            maxWidth = _itemWidth;
+          }
+        }
+        legendData.widthArr.push(maxWidth);
+        legendData.heightArr.push(_item.length * lineHeight + padding * 2);
+      }
+      var _legendWidth = 0;
+      for (var _i8 = 0; _i8 < legendData.widthArr.length; _i8++) {
+        _legendWidth += legendData.widthArr[_i8];
+      }
+      legendData.area.width = _legendWidth - opts.legend.itemGap * opts.pix + 2 * padding;
+      legendData.area.wholeWidth = legendData.area.width + padding;
+    }
+  }
+  switch (opts.legend.position) {
+    case 'top':
+      legendData.area.start.y = opts.area[0] + margin;
+      legendData.area.end.y = opts.area[0] + margin + legendData.area.height;
+      break;
+    case 'bottom':
+      legendData.area.start.y = opts.height - opts.area[2] - legendData.area.height - margin;
+      legendData.area.end.y = opts.height - opts.area[2] - margin;
+      break;
+    case 'left':
+      legendData.area.start.x = opts.area[3];
+      legendData.area.end.x = opts.area[3] + legendData.area.width;
+      break;
+    case 'right':
+      legendData.area.start.x = opts.width - opts.area[1] - legendData.area.width;
+      legendData.area.end.x = opts.width - opts.area[1];
+      break;}
+
+  chartData.legendData = legendData;
+  return legendData;
+}
+
+function calCategoriesData(categories, opts, config, eachSpacing, context) {
+  var result = {
+    angle: 0,
+    xAxisHeight: config.xAxisHeight };
+
+  var fontSize = opts.xAxis.fontSize * opts.pix || config.fontSize;
+  var categoriesTextLenth = categories.map(function (item, index) {
+    var xitem = opts.xAxis.formatter ? opts.xAxis.formatter(item, index, opts) : item;
+    return measureText(String(xitem), fontSize, context);
+  });
+
+  var maxTextLength = Math.max.apply(this, categoriesTextLenth);
+  if (opts.xAxis.rotateLabel == true) {
+    result.angle = opts.xAxis.rotateAngle * Math.PI / 180;
+    var tempHeight = 2 * config.xAxisTextPadding + Math.abs(maxTextLength * Math.sin(result.angle));
+    tempHeight = tempHeight < fontSize + 2 * config.xAxisTextPadding ? tempHeight + 2 * config.xAxisTextPadding : tempHeight;
+    if (opts.enableScroll == true && opts.xAxis.scrollShow == true) {
+      tempHeight += 12 * opts.pix;
+    }
+    result.xAxisHeight = tempHeight;
+  }
+  if (opts.xAxis.disabled) {
+    result.xAxisHeight = 0;
+  }
+  return result;
+}
+
+function getXAxisTextList(series, opts, config, stack) {
+  var index = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : -1;
+  var data;
+  if (stack == 'stack') {
+    data = dataCombineStack(series, opts.categories.length);
+  } else {
+    data = dataCombine(series);
+  }
+  var sorted = [];
+  // remove null from data
+  data = data.filter(function (item) {
+    //return item !== null;
+    if (typeof item === 'object' && item !== null) {
+      if (item.constructor.toString().indexOf('Array') > -1) {
+        return item !== null;
+      } else {
+        return item.value !== null;
+      }
+    } else {
+      return item !== null;
+    }
+  });
+  data.map(function (item) {
+    if (typeof item === 'object') {
+      if (item.constructor.toString().indexOf('Array') > -1) {
+        if (opts.type == 'candle') {
+          item.map(function (subitem) {
+            sorted.push(subitem);
+          });
+        } else {
+          sorted.push(item[0]);
+        }
+      } else {
+        sorted.push(item.value);
+      }
+    } else {
+      sorted.push(item);
+    }
+  });
+
+  var minData = 0;
+  var maxData = 0;
+  if (sorted.length > 0) {
+    minData = Math.min.apply(this, sorted);
+    maxData = Math.max.apply(this, sorted);
+  }
+  //涓轰簡鍏煎v1.9.0涔嬪墠鐨勯」鐩�
+  if (index > -1) {
+    if (typeof opts.xAxis.data[index].min === 'number') {
+      minData = Math.min(opts.xAxis.data[index].min, minData);
+    }
+    if (typeof opts.xAxis.data[index].max === 'number') {
+      maxData = Math.max(opts.xAxis.data[index].max, maxData);
+    }
+  } else {
+    if (typeof opts.xAxis.min === 'number') {
+      minData = Math.min(opts.xAxis.min, minData);
+    }
+    if (typeof opts.xAxis.max === 'number') {
+      maxData = Math.max(opts.xAxis.max, maxData);
+    }
+  }
+  if (minData === maxData) {
+    var rangeSpan = maxData || 10;
+    maxData += rangeSpan;
+  }
+  //var dataRange = getDataRange(minData, maxData);
+  var minRange = minData;
+  var maxRange = maxData;
+  var range = [];
+  var eachRange = (maxRange - minRange) / opts.xAxis.splitNumber;
+  for (var i = 0; i <= opts.xAxis.splitNumber; i++) {
+    range.push(minRange + eachRange * i);
+  }
+  return range;
+}
+
+function calXAxisData(series, opts, config, context) {
+  //鍫嗗彔鍥鹃噸绠梇杞�
+  var columnstyle = assign({}, {
+    type: "" },
+  opts.extra.bar);
+  var result = {
+    angle: 0,
+    xAxisHeight: config.xAxisHeight };
+
+  result.ranges = getXAxisTextList(series, opts, config, columnstyle.type);
+  result.rangesFormat = result.ranges.map(function (item) {
+    //item = opts.xAxis.formatter ? opts.xAxis.formatter(item) : util.toFixed(item, 2);
+    item = util.toFixed(item, 2);
+    return item;
+  });
+  var xAxisScaleValues = result.ranges.map(function (item) {
+    // 濡傛灉鍒诲害鍊兼槸娴偣鏁�,鍒欎繚鐣欎袱浣嶅皬鏁�
+    item = util.toFixed(item, 2);
+    // 鑻ユ湁鑷畾涔夋牸寮忓垯璋冪敤鑷畾涔夌殑鏍煎紡鍖栧嚱鏁�
+    //item = opts.xAxis.formatter ? opts.xAxis.formatter(Number(item)) : item;
+    return item;
+  });
+  result = Object.assign(result, getXAxisPoints(xAxisScaleValues, opts, config));
+  // 璁$畻X杞村埢搴︾殑灞炴�ц濡傛瘡涓埢搴︾殑闂撮殧,鍒诲害鐨勮捣濮嬬偣\缁撴潫鐐逛互鍙婃�婚暱
+  var eachSpacing = result.eachSpacing;
+  var textLength = xAxisScaleValues.map(function (item) {
+    return measureText(item, opts.xAxis.fontSize * opts.pix || config.fontSize, context);
+  });
+  // get max length of categories text
+  var maxTextLength = Math.max.apply(this, textLength);
+  // 濡傛灉鍒诲害鍊兼枃鏈唴瀹硅繃闀�,鍒欏皢鍏堕�嗘椂閽堟棆杞�45掳
+  if (maxTextLength + 2 * config.xAxisTextPadding > eachSpacing) {
+    result.angle = 45 * Math.PI / 180;
+    result.xAxisHeight = 2 * config.xAxisTextPadding + maxTextLength * Math.sin(result.angle);
+  }
+  if (opts.xAxis.disabled === true) {
+    result.xAxisHeight = 0;
+  }
+  return result;
+}
+
+function getRadarDataPoints(angleList, center, radius, series, opts) {
+  var process = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 1;
+  var radarOption = opts.extra.radar || {};
+  radarOption.max = radarOption.max || 0;
+  var maxData = Math.max(radarOption.max, Math.max.apply(null, dataCombine(series)));
+  var data = [];var _loop2 = function _loop2(
+  i) {
+    var each = series[i];
+    var listItem = {};
+    listItem.color = each.color;
+    listItem.legendShape = each.legendShape;
+    listItem.pointShape = each.pointShape;
+    listItem.data = [];
+    each.data.forEach(function (item, index) {
+      var tmp = {};
+      tmp.angle = angleList[index];
+      tmp.proportion = item / maxData;
+      tmp.value = item;
+      tmp.position = convertCoordinateOrigin(radius * tmp.proportion * process * Math.cos(tmp.angle), radius * tmp.proportion * process * Math.sin(tmp.angle), center);
+      listItem.data.push(tmp);
+    });
+    data.push(listItem);};for (var i = 0; i < series.length; i++) {_loop2(i);
+  }
+  return data;
+}
+
+function getPieDataPoints(series, radius) {
+  var process = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
+  var count = 0;
+  var _start_ = 0;
+  for (var i = 0; i < series.length; i++) {
+    var item = series[i];
+    item.data = item.data === null ? 0 : item.data;
+    count += item.data;
+  }
+  for (var _i9 = 0; _i9 < series.length; _i9++) {
+    var _item2 = series[_i9];
+    _item2.data = _item2.data === null ? 0 : _item2.data;
+    if (count === 0) {
+      _item2._proportion_ = 1 / series.length * process;
+    } else {
+      _item2._proportion_ = _item2.data / count * process;
+    }
+    _item2._radius_ = radius;
+  }
+  for (var _i10 = 0; _i10 < series.length; _i10++) {
+    var _item3 = series[_i10];
+    _item3._start_ = _start_;
+    _start_ += 2 * _item3._proportion_ * Math.PI;
+  }
+  return series;
+}
+
+function getFunnelDataPoints(series, radius, option, eachSpacing) {
+  var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;
+  for (var i = 0; i < series.length; i++) {
+    if (option.type == 'funnel') {
+      series[i].radius = series[i].data / series[0].data * radius * process;
+    } else {
+      series[i].radius = eachSpacing * (series.length - i) / (eachSpacing * series.length) * radius * process;
+    }
+    series[i]._proportion_ = series[i].data / series[0].data;
+  }
+  // if(option.type !== 'pyramid'){
+  //   series.reverse();
+  // }
+  return series;
+}
+
+function getRoseDataPoints(series, type, minRadius, radius) {
+  var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;
+  var count = 0;
+  var _start_ = 0;
+  var dataArr = [];
+  for (var i = 0; i < series.length; i++) {
+    var item = series[i];
+    item.data = item.data === null ? 0 : item.data;
+    count += item.data;
+    dataArr.push(item.data);
+  }
+  var minData = Math.min.apply(null, dataArr);
+  var maxData = Math.max.apply(null, dataArr);
+  var radiusLength = radius - minRadius;
+  for (var _i11 = 0; _i11 < series.length; _i11++) {
+    var _item4 = series[_i11];
+    _item4.data = _item4.data === null ? 0 : _item4.data;
+    if (count === 0) {
+      _item4._proportion_ = 1 / series.length * process;
+      _item4._rose_proportion_ = 1 / series.length * process;
+    } else {
+      _item4._proportion_ = _item4.data / count * process;
+      if (type == 'area') {
+        _item4._rose_proportion_ = 1 / series.length * process;
+      } else {
+        _item4._rose_proportion_ = _item4.data / count * process;
+      }
+    }
+    _item4._radius_ = minRadius + radiusLength * ((_item4.data - minData) / (maxData - minData)) || radius;
+  }
+  for (var _i12 = 0; _i12 < series.length; _i12++) {
+    var _item5 = series[_i12];
+    _item5._start_ = _start_;
+    _start_ += 2 * _item5._rose_proportion_ * Math.PI;
+  }
+  return series;
+}
+
+function getArcbarDataPoints(series, arcbarOption) {
+  var process = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
+  if (process == 1) {
+    process = 0.999999;
+  }
+  for (var i = 0; i < series.length; i++) {
+    var item = series[i];
+    item.data = item.data === null ? 0 : item.data;
+    var totalAngle = void 0;
+    if (arcbarOption.type == 'circle') {
+      totalAngle = 2;
+    } else {
+      if (arcbarOption.direction == 'ccw') {
+        if (arcbarOption.startAngle < arcbarOption.endAngle) {
+          totalAngle = 2 + arcbarOption.startAngle - arcbarOption.endAngle;
+        } else {
+          totalAngle = arcbarOption.startAngle - arcbarOption.endAngle;
+        }
+      } else {
+        if (arcbarOption.endAngle < arcbarOption.startAngle) {
+          totalAngle = 2 + arcbarOption.endAngle - arcbarOption.startAngle;
+        } else {
+          totalAngle = arcbarOption.startAngle - arcbarOption.endAngle;
+        }
+      }
+    }
+    item._proportion_ = totalAngle * item.data * process + arcbarOption.startAngle;
+    if (arcbarOption.direction == 'ccw') {
+      item._proportion_ = arcbarOption.startAngle - totalAngle * item.data * process;
+    }
+    if (item._proportion_ >= 2) {
+      item._proportion_ = item._proportion_ % 2;
+    }
+  }
+  return series;
+}
+
+function getGaugeArcbarDataPoints(series, arcbarOption) {
+  var process = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
+  if (process == 1) {
+    process = 0.999999;
+  }
+  for (var i = 0; i < series.length; i++) {
+    var item = series[i];
+    item.data = item.data === null ? 0 : item.data;
+    var totalAngle = void 0;
+    if (arcbarOption.type == 'circle') {
+      totalAngle = 2;
+    } else {
+      if (arcbarOption.endAngle < arcbarOption.startAngle) {
+        totalAngle = 2 + arcbarOption.endAngle - arcbarOption.startAngle;
+      } else {
+        totalAngle = arcbarOption.startAngle - arcbarOption.endAngle;
+      }
+    }
+    item._proportion_ = totalAngle * item.data * process + arcbarOption.startAngle;
+    if (item._proportion_ >= 2) {
+      item._proportion_ = item._proportion_ % 2;
+    }
+  }
+  return series;
+}
+
+function getGaugeAxisPoints(categories, startAngle, endAngle) {
+  var totalAngle = startAngle - endAngle + 1;
+  var tempStartAngle = startAngle;
+  for (var i = 0; i < categories.length; i++) {
+    categories[i].value = categories[i].value === null ? 0 : categories[i].value;
+    categories[i]._startAngle_ = tempStartAngle;
+    categories[i]._endAngle_ = totalAngle * categories[i].value + startAngle;
+    if (categories[i]._endAngle_ >= 2) {
+      categories[i]._endAngle_ = categories[i]._endAngle_ % 2;
+    }
+    tempStartAngle = categories[i]._endAngle_;
+  }
+  return categories;
+}
+
+function getGaugeDataPoints(series, categories, gaugeOption) {
+  var process = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;
+  for (var i = 0; i < series.length; i++) {
+    var item = series[i];
+    item.data = item.data === null ? 0 : item.data;
+    if (gaugeOption.pointer.color == 'auto') {
+      for (var _i13 = 0; _i13 < categories.length; _i13++) {
+        if (item.data <= categories[_i13].value) {
+          item.color = categories[_i13].color;
+          break;
+        }
+      }
+    } else {
+      item.color = gaugeOption.pointer.color;
+    }
+    var totalAngle = gaugeOption.startAngle - gaugeOption.endAngle + 1;
+    item._endAngle_ = totalAngle * item.data + gaugeOption.startAngle;
+    item._oldAngle_ = gaugeOption.oldAngle;
+    if (gaugeOption.oldAngle < gaugeOption.endAngle) {
+      item._oldAngle_ += 2;
+    }
+    if (item.data >= gaugeOption.oldData) {
+      item._proportion_ = (item._endAngle_ - item._oldAngle_) * process + gaugeOption.oldAngle;
+    } else {
+      item._proportion_ = item._oldAngle_ - (item._oldAngle_ - item._endAngle_) * process;
+    }
+    if (item._proportion_ >= 2) {
+      item._proportion_ = item._proportion_ % 2;
+    }
+  }
+  return series;
+}
+
+function getPieTextMaxLength(series, config, context, opts) {
+  series = getPieDataPoints(series);
+  var maxLength = 0;
+  for (var i = 0; i < series.length; i++) {
+    var item = series[i];
+    var text = item.formatter ? item.formatter(+item._proportion_.toFixed(2)) : util.toFixed(item._proportion_ * 100) + '%';
+    maxLength = Math.max(maxLength, measureText(text, item.textSize * opts.pix || config.fontSize, context));
+  }
+  return maxLength;
+}
+
+function fixColumeData(points, eachSpacing, columnLen, index, config, opts) {
+  return points.map(function (item) {
+    if (item === null) {
+      return null;
+    }
+    var seriesGap = 0;
+    var categoryGap = 0;
+    if (opts.type == 'mix') {
+      seriesGap = opts.extra.mix.column.seriesGap * opts.pix || 0;
+      categoryGap = opts.extra.mix.column.categoryGap * opts.pix || 0;
+    } else {
+      seriesGap = opts.extra.column.seriesGap * opts.pix || 0;
+      categoryGap = opts.extra.column.categoryGap * opts.pix || 0;
+    }
+    seriesGap = Math.min(seriesGap, eachSpacing / columnLen);
+    categoryGap = Math.min(categoryGap, eachSpacing / columnLen);
+    item.width = Math.ceil((eachSpacing - 2 * categoryGap - seriesGap * (columnLen - 1)) / columnLen);
+    if (opts.extra.mix && opts.extra.mix.column.width && +opts.extra.mix.column.width > 0) {
+      item.width = Math.min(item.width, +opts.extra.mix.column.width * opts.pix);
+    }
+    if (opts.extra.column && opts.extra.column.width && +opts.extra.column.width > 0) {
+      item.width = Math.min(item.width, +opts.extra.column.width * opts.pix);
+    }
+    if (item.width <= 0) {
+      item.width = 1;
+    }
+    item.x += (index + 0.5 - columnLen / 2) * (item.width + seriesGap);
+    return item;
+  });
+}
+
+function fixBarData(points, eachSpacing, columnLen, index, config, opts) {
+  return points.map(function (item) {
+    if (item === null) {
+      return null;
+    }
+    var seriesGap = 0;
+    var categoryGap = 0;
+    seriesGap = opts.extra.bar.seriesGap * opts.pix || 0;
+    categoryGap = opts.extra.bar.categoryGap * opts.pix || 0;
+    seriesGap = Math.min(seriesGap, eachSpacing / columnLen);
+    categoryGap = Math.min(categoryGap, eachSpacing / columnLen);
+    item.width = Math.ceil((eachSpacing - 2 * categoryGap - seriesGap * (columnLen - 1)) / columnLen);
+    if (opts.extra.bar && opts.extra.bar.width && +opts.extra.bar.width > 0) {
+      item.width = Math.min(item.width, +opts.extra.bar.width * opts.pix);
+    }
+    if (item.width <= 0) {
+      item.width = 1;
+    }
+    item.y += (index + 0.5 - columnLen / 2) * (item.width + seriesGap);
+    return item;
+  });
+}
+
+function fixColumeMeterData(points, eachSpacing, columnLen, index, config, opts, border) {
+  var categoryGap = opts.extra.column.categoryGap * opts.pix || 0;
+  return points.map(function (item) {
+    if (item === null) {
+      return null;
+    }
+    item.width = eachSpacing - 2 * categoryGap;
+    if (opts.extra.column && opts.extra.column.width && +opts.extra.column.width > 0) {
+      item.width = Math.min(item.width, +opts.extra.column.width * opts.pix);
+    }
+    if (index > 0) {
+      item.width -= border;
+    }
+    return item;
+  });
+}
+
+function fixColumeStackData(points, eachSpacing, columnLen, index, config, opts, series) {
+  var categoryGap = opts.extra.column.categoryGap * opts.pix || 0;
+  return points.map(function (item, indexn) {
+    if (item === null) {
+      return null;
+    }
+    item.width = Math.ceil(eachSpacing - 2 * categoryGap);
+    if (opts.extra.column && opts.extra.column.width && +opts.extra.column.width > 0) {
+      item.width = Math.min(item.width, +opts.extra.column.width * opts.pix);
+    }
+    if (item.width <= 0) {
+      item.width = 1;
+    }
+    return item;
+  });
+}
+
+function fixBarStackData(points, eachSpacing, columnLen, index, config, opts, series) {
+  var categoryGap = opts.extra.bar.categoryGap * opts.pix || 0;
+  return points.map(function (item, indexn) {
+    if (item === null) {
+      return null;
+    }
+    item.width = Math.ceil(eachSpacing - 2 * categoryGap);
+    if (opts.extra.bar && opts.extra.bar.width && +opts.extra.bar.width > 0) {
+      item.width = Math.min(item.width, +opts.extra.bar.width * opts.pix);
+    }
+    if (item.width <= 0) {
+      item.width = 1;
+    }
+    return item;
+  });
+}
+
+function getXAxisPoints(categories, opts, config) {
+  var spacingValid = opts.width - opts.area[1] - opts.area[3];
+  var dataCount = opts.enableScroll ? Math.min(opts.xAxis.itemCount, categories.length) : categories.length;
+  if ((opts.type == 'line' || opts.type == 'area' || opts.type == 'scatter' || opts.type == 'bubble' || opts.type == 'bar') && dataCount > 1 && opts.xAxis.boundaryGap == 'justify') {
+    dataCount -= 1;
+  }
+  var widthRatio = 0;
+  if (opts.type == 'mount' && opts.extra && opts.extra.mount && opts.extra.mount.widthRatio && opts.extra.mount.widthRatio > 1) {
+    if (opts.extra.mount.widthRatio > 2) opts.extra.mount.widthRatio = 2;
+    widthRatio = opts.extra.mount.widthRatio - 1;
+    dataCount += widthRatio;
+  }
+  var eachSpacing = spacingValid / dataCount;
+  var xAxisPoints = [];
+  var startX = opts.area[3];
+  var endX = opts.width - opts.area[1];
+  categories.forEach(function (item, index) {
+    xAxisPoints.push(startX + widthRatio / 2 * eachSpacing + index * eachSpacing);
+  });
+  if (opts.xAxis.boundaryGap !== 'justify') {
+    if (opts.enableScroll === true) {
+      xAxisPoints.push(startX + widthRatio * eachSpacing + categories.length * eachSpacing);
+    } else {
+      xAxisPoints.push(endX);
+    }
+  }
+  return {
+    xAxisPoints: xAxisPoints,
+    startX: startX,
+    endX: endX,
+    eachSpacing: eachSpacing };
+
+}
+
+function getCandleDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config) {
+  var process = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : 1;
+  var points = [];
+  var validHeight = opts.height - opts.area[0] - opts.area[2];
+  data.forEach(function (item, index) {
+    if (item === null) {
+      points.push(null);
+    } else {
+      var cPoints = [];
+      item.forEach(function (items, indexs) {
+        var point = {};
+        point.x = xAxisPoints[index] + Math.round(eachSpacing / 2);
+        var value = items.value || items;
+        var height = validHeight * (value - minRange) / (maxRange - minRange);
+        height *= process;
+        point.y = opts.height - Math.round(height) - opts.area[2];
+        cPoints.push(point);
+      });
+      points.push(cPoints);
+    }
+  });
+  return points;
+}
+
+function getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config) {
+  var process = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : 1;
+  var boundaryGap = 'center';
+  if (opts.type == 'line' || opts.type == 'area' || opts.type == 'scatter' || opts.type == 'bubble') {
+    boundaryGap = opts.xAxis.boundaryGap;
+  }
+  var points = [];
+  var validHeight = opts.height - opts.area[0] - opts.area[2];
+  var validWidth = opts.width - opts.area[1] - opts.area[3];
+  data.forEach(function (item, index) {
+    if (item === null) {
+      points.push(null);
+    } else {
+      var point = {};
+      point.color = item.color;
+      point.x = xAxisPoints[index];
+      var value = item;
+      if (typeof item === 'object' && item !== null) {
+        if (item.constructor.toString().indexOf('Array') > -1) {
+          var xranges, xminRange, xmaxRange;
+          xranges = [].concat(opts.chartData.xAxisData.ranges);
+          xminRange = xranges.shift();
+          xmaxRange = xranges.pop();
+          value = item[1];
+          point.x = opts.area[3] + validWidth * (item[0] - xminRange) / (xmaxRange - xminRange);
+          if (opts.type == 'bubble') {
+            point.r = item[2];
+            point.t = item[3];
+          }
+        } else {
+          value = item.value;
+        }
+      }
+      if (boundaryGap == 'center') {
+        point.x += eachSpacing / 2;
+      }
+      var height = validHeight * (value - minRange) / (maxRange - minRange);
+      height *= process;
+      point.y = opts.height - height - opts.area[2];
+      points.push(point);
+    }
+  });
+  return points;
+}
+
+function getMountDataPoints(series, minRange, maxRange, xAxisPoints, eachSpacing, opts, mountOption) {
+  var process = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : 1;
+  var points = [];
+  var validHeight = opts.height - opts.area[0] - opts.area[2];
+  var validWidth = opts.width - opts.area[1] - opts.area[3];
+  var mountWidth = eachSpacing * mountOption.widthRatio;
+  series.forEach(function (item, index) {
+    if (item === null) {
+      points.push(null);
+    } else {
+      var point = {};
+      point.color = item.color;
+      point.x = xAxisPoints[index];
+      point.x += eachSpacing / 2;
+      var value = item.data;
+      var height = validHeight * (value - minRange) / (maxRange - minRange);
+      height *= process;
+      point.y = opts.height - height - opts.area[2];
+      point.value = value;
+      point.width = mountWidth;
+      points.push(point);
+    }
+  });
+  return points;
+}
+
+function getBarDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config) {
+  var process = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : 1;
+  var points = [];
+  var validHeight = opts.height - opts.area[0] - opts.area[2];
+  var validWidth = opts.width - opts.area[1] - opts.area[3];
+  data.forEach(function (item, index) {
+    if (item === null) {
+      points.push(null);
+    } else {
+      var point = {};
+      point.color = item.color;
+      point.y = yAxisPoints[index];
+      var value = item;
+      if (typeof item === 'object' && item !== null) {
+        value = item.value;
+      }
+      var height = validWidth * (value - minRange) / (maxRange - minRange);
+      height *= process;
+      point.height = height;
+      point.value = value;
+      point.x = height + opts.area[3];
+      points.push(point);
+    }
+  });
+  return points;
+}
+
+function getStackDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, seriesIndex, stackSeries) {
+  var process = arguments.length > 9 && arguments[9] !== undefined ? arguments[9] : 1;
+  var points = [];
+  var validHeight = opts.height - opts.area[0] - opts.area[2];
+  data.forEach(function (item, index) {
+    if (item === null) {
+      points.push(null);
+    } else {
+      var point = {};
+      point.color = item.color;
+      point.x = xAxisPoints[index] + Math.round(eachSpacing / 2);
+
+      if (seriesIndex > 0) {
+        var value = 0;
+        for (var i = 0; i <= seriesIndex; i++) {
+          value += stackSeries[i].data[index];
+        }
+        var value0 = value - item;
+        var height = validHeight * (value - minRange) / (maxRange - minRange);
+        var height0 = validHeight * (value0 - minRange) / (maxRange - minRange);
+      } else {
+        var value = item;
+        if (typeof item === 'object' && item !== null) {
+          value = item.value;
+        }
+        var height = validHeight * (value - minRange) / (maxRange - minRange);
+        var height0 = 0;
+      }
+      var heightc = height0;
+      height *= process;
+      heightc *= process;
+      point.y = opts.height - Math.round(height) - opts.area[2];
+      point.y0 = opts.height - Math.round(heightc) - opts.area[2];
+      points.push(point);
+    }
+  });
+  return points;
+}
+
+function getBarStackDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config, seriesIndex, stackSeries) {
+  var process = arguments.length > 9 && arguments[9] !== undefined ? arguments[9] : 1;
+  var points = [];
+  var validHeight = opts.width - opts.area[1] - opts.area[3];
+  data.forEach(function (item, index) {
+    if (item === null) {
+      points.push(null);
+    } else {
+      var point = {};
+      point.color = item.color;
+      point.y = yAxisPoints[index];
+      if (seriesIndex > 0) {
+        var value = 0;
+        for (var i = 0; i <= seriesIndex; i++) {
+          value += stackSeries[i].data[index];
+        }
+        var value0 = value - item;
+        var height = validHeight * (value - minRange) / (maxRange - minRange);
+        var height0 = validHeight * (value0 - minRange) / (maxRange - minRange);
+      } else {
+        var value = item;
+        if (typeof item === 'object' && item !== null) {
+          value = item.value;
+        }
+        var height = validHeight * (value - minRange) / (maxRange - minRange);
+        var height0 = 0;
+      }
+      var heightc = height0;
+      height *= process;
+      heightc *= process;
+      point.height = height - heightc;
+      point.x = opts.area[3] + height;
+      point.x0 = opts.area[3] + heightc;
+      points.push(point);
+    }
+  });
+  return points;
+}
+
+function getYAxisTextList(series, opts, config, stack, yData) {
+  var index = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : -1;
+  var data;
+  if (stack == 'stack') {
+    data = dataCombineStack(series, opts.categories.length);
+  } else {
+    data = dataCombine(series);
+  }
+  var sorted = [];
+  // remove null from data
+  data = data.filter(function (item) {
+    //return item !== null;
+    if (typeof item === 'object' && item !== null) {
+      if (item.constructor.toString().indexOf('Array') > -1) {
+        return item !== null;
+      } else {
+        return item.value !== null;
+      }
+    } else {
+      return item !== null;
+    }
+  });
+  data.map(function (item) {
+    if (typeof item === 'object') {
+      if (item.constructor.toString().indexOf('Array') > -1) {
+        if (opts.type == 'candle') {
+          item.map(function (subitem) {
+            sorted.push(subitem);
+          });
+        } else {
+          sorted.push(item[1]);
+        }
+      } else {
+        sorted.push(item.value);
+      }
+    } else {
+      sorted.push(item);
+    }
+  });
+  var minData = yData.min || 0;
+  var maxData = yData.max || 0;
+  if (sorted.length > 0) {
+    minData = Math.min.apply(this, sorted);
+    maxData = Math.max.apply(this, sorted);
+  }
+  if (minData === maxData) {
+    if (maxData == 0) {
+      maxData = 10;
+    } else {
+      minData = 0;
+    }
+  }
+  var dataRange = getDataRange(minData, maxData);
+  var minRange = yData.min === undefined || yData.min === null ? dataRange.minRange : yData.min;
+  var maxRange = yData.max === undefined || yData.max === null ? dataRange.maxRange : yData.max;
+  var eachRange = (maxRange - minRange) / opts.yAxis.splitNumber;
+  var range = [];
+  for (var i = 0; i <= opts.yAxis.splitNumber; i++) {
+    range.push(minRange + eachRange * i);
+  }
+  return range.reverse();
+}
+
+function calYAxisData(series, opts, config, context) {
+  //鍫嗗彔鍥鹃噸绠梇杞�
+  var columnstyle = assign({}, {
+    type: "" },
+  opts.extra.column);
+  //濡傛灉鏄Y杞达紝閲嶆柊璁$畻
+  var YLength = opts.yAxis.data.length;
+  var newSeries = new Array(YLength);
+  if (YLength > 0) {
+    for (var i = 0; i < YLength; i++) {
+      newSeries[i] = [];
+      for (var j = 0; j < series.length; j++) {
+        if (series[j].index == i) {
+          newSeries[i].push(series[j]);
+        }
+      }
+    }
+    var rangesArr = new Array(YLength);
+    var rangesFormatArr = new Array(YLength);
+    var yAxisWidthArr = new Array(YLength);var _loop3 = function _loop3(
+
+    _i14) {
+      var yData = opts.yAxis.data[_i14];
+      //濡傛灉鎬诲紑鍏充笉鏄剧ず锛屽己鍒舵瘡涓猋杞翠负涓嶆樉绀�
+      if (opts.yAxis.disabled == true) {
+        yData.disabled = true;
+      }
+      if (yData.type === 'categories') {
+        if (!yData.formatter) {
+          yData.formatter = function (val, index, opts) {return val + (yData.unit || '');};
+        }
+        yData.categories = yData.categories || opts.categories;
+        rangesArr[_i14] = yData.categories;
+      } else {
+        if (!yData.formatter) {
+          yData.formatter = function (val, index, opts) {return util.toFixed(val, yData.tofix || 0) + (yData.unit || '');};
+        }
+        rangesArr[_i14] = getYAxisTextList(newSeries[_i14], opts, config, columnstyle.type, yData, _i14);
+      }
+      var yAxisFontSizes = yData.fontSize * opts.pix || config.fontSize;
+      yAxisWidthArr[_i14] = {
+        position: yData.position ? yData.position : 'left',
+        width: 0 };
+
+      rangesFormatArr[_i14] = rangesArr[_i14].map(function (items, index) {
+        items = yData.formatter(items, index, opts);
+        yAxisWidthArr[_i14].width = Math.max(yAxisWidthArr[_i14].width, measureText(items, yAxisFontSizes, context) + 5);
+        return items;
+      });
+      var calibration = yData.calibration ? 4 * opts.pix : 0;
+      yAxisWidthArr[_i14].width += calibration + 3 * opts.pix;
+      if (yData.disabled === true) {
+        yAxisWidthArr[_i14].width = 0;
+      }};for (var _i14 = 0; _i14 < YLength; _i14++) {_loop3(_i14);
+    }
+  } else {
+    var rangesArr = new Array(1);
+    var rangesFormatArr = new Array(1);
+    var yAxisWidthArr = new Array(1);
+    if (opts.type === 'bar') {
+      rangesArr[0] = opts.categories;
+    } else {
+      rangesArr[0] = getYAxisTextList(series, opts, config, columnstyle.type, {});
+    }
+    yAxisWidthArr[0] = {
+      position: 'left',
+      width: 0 };
+
+
+    if (opts.yAxis.disabled === true) {
+      yAxisWidthArr[0] = {
+        position: 'left',
+        width: 0 };
+
+      opts.yAxis.data[0] = {
+        disabled: true };
+
+    } else {
+      opts.yAxis.data[0] = {
+        disabled: false,
+        position: 'left',
+        max: opts.yAxis.max,
+        min: opts.yAxis.min,
+        formatter: function formatter(val, index, opts) {return val;} };
+
+      if (opts.type === 'bar') {
+        opts.yAxis.data[0].categories = opts.categories;
+        opts.yAxis.data[0].type = 'categories';
+      }
+    }
+    var yAxisFontSize = opts.yAxis.fontSize * opts.pix || config.fontSize;
+    rangesFormatArr[0] = rangesArr[0].map(function (item, index) {
+      item = opts.yAxis.data[0].formatter(item, index, opts);
+      yAxisWidthArr[0].width = Math.max(yAxisWidthArr[0].width, measureText(item, yAxisFontSize, context) + 5);
+      return item;
+    });
+    yAxisWidthArr[0].width += 3 * opts.pix;
+  }
+  return {
+    rangesFormat: rangesFormatArr,
+    ranges: rangesArr,
+    yAxisWidth: yAxisWidthArr };
+
+}
+
+function calTooltipYAxisData(point, series, opts, config, eachSpacing) {
+  var ranges = [].concat(opts.chartData.yAxisData.ranges);
+  var spacingValid = opts.height - opts.area[0] - opts.area[2];
+  var minAxis = opts.area[0];
+  var items = [];
+  for (var i = 0; i < ranges.length; i++) {
+    var maxVal = Math.max.apply(this, ranges[i]);
+    var minVal = Math.min.apply(this, ranges[i]);
+    var item = maxVal - (maxVal - minVal) * (point - minAxis) / spacingValid;
+    item = opts.yAxis.data && opts.yAxis.data[i].formatter ? opts.yAxis.data[i].formatter(item, i, opts) : item.toFixed(0);
+    items.push(String(item));
+  }
+  return items;
+}
+
+function calMarkLineData(points, opts) {
+  var minRange, maxRange;
+  var spacingValid = opts.height - opts.area[0] - opts.area[2];
+  for (var i = 0; i < points.length; i++) {
+    points[i].yAxisIndex = points[i].yAxisIndex ? points[i].yAxisIndex : 0;
+    var range = [].concat(opts.chartData.yAxisData.ranges[points[i].yAxisIndex]);
+    minRange = range.pop();
+    maxRange = range.shift();
+    var height = spacingValid * (points[i].value - minRange) / (maxRange - minRange);
+    points[i].y = opts.height - Math.round(height) - opts.area[2];
+  }
+  return points;
+}
+
+function contextRotate(context, opts) {
+  if (opts.rotateLock !== true) {
+    context.translate(opts.height, 0);
+    context.rotate(90 * Math.PI / 180);
+  } else if (opts._rotate_ !== true) {
+    context.translate(opts.height, 0);
+    context.rotate(90 * Math.PI / 180);
+    opts._rotate_ = true;
+  }
+}
+
+function drawPointShape(points, color, shape, context, opts) {
+  context.beginPath();
+  if (opts.dataPointShapeType == 'hollow') {
+    context.setStrokeStyle(color);
+    context.setFillStyle(opts.background);
+    context.setLineWidth(2 * opts.pix);
+  } else {
+    context.setStrokeStyle("#ffffff");
+    context.setFillStyle(color);
+    context.setLineWidth(1 * opts.pix);
+  }
+  if (shape === 'diamond') {
+    points.forEach(function (item, index) {
+      if (item !== null) {
+        context.moveTo(item.x, item.y - 4.5);
+        context.lineTo(item.x - 4.5, item.y);
+        context.lineTo(item.x, item.y + 4.5);
+        context.lineTo(item.x + 4.5, item.y);
+        context.lineTo(item.x, item.y - 4.5);
+      }
+    });
+  } else if (shape === 'circle') {
+    points.forEach(function (item, index) {
+      if (item !== null) {
+        context.moveTo(item.x + 2.5 * opts.pix, item.y);
+        context.arc(item.x, item.y, 3 * opts.pix, 0, 2 * Math.PI, false);
+      }
+    });
+  } else if (shape === 'square') {
+    points.forEach(function (item, index) {
+      if (item !== null) {
+        context.moveTo(item.x - 3.5, item.y - 3.5);
+        context.rect(item.x - 3.5, item.y - 3.5, 7, 7);
+      }
+    });
+  } else if (shape === 'triangle') {
+    points.forEach(function (item, index) {
+      if (item !== null) {
+        context.moveTo(item.x, item.y - 4.5);
+        context.lineTo(item.x - 4.5, item.y + 4.5);
+        context.lineTo(item.x + 4.5, item.y + 4.5);
+        context.lineTo(item.x, item.y - 4.5);
+      }
+    });
+  } else if (shape === 'none') {
+    return;
+  }
+  context.closePath();
+  context.fill();
+  context.stroke();
+}
+
+function drawRingTitle(opts, config, context, center) {
+  var titlefontSize = opts.title.fontSize || config.titleFontSize;
+  var subtitlefontSize = opts.subtitle.fontSize || config.subtitleFontSize;
+  var title = opts.title.name || '';
+  var subtitle = opts.subtitle.name || '';
+  var titleFontColor = opts.title.color || opts.fontColor;
+  var subtitleFontColor = opts.subtitle.color || opts.fontColor;
+  var titleHeight = title ? titlefontSize : 0;
+  var subtitleHeight = subtitle ? subtitlefontSize : 0;
+  var margin = 5;
+  if (subtitle) {
+    var textWidth = measureText(subtitle, subtitlefontSize * opts.pix, context);
+    var startX = center.x - textWidth / 2 + (opts.subtitle.offsetX || 0) * opts.pix;
+    var startY = center.y + subtitlefontSize * opts.pix / 2 + (opts.subtitle.offsetY || 0) * opts.pix;
+    if (title) {
+      startY += (titleHeight * opts.pix + margin) / 2;
+    }
+    context.beginPath();
+    context.setFontSize(subtitlefontSize * opts.pix);
+    context.setFillStyle(subtitleFontColor);
+    context.fillText(subtitle, startX, startY);
+    context.closePath();
+    context.stroke();
+  }
+  if (title) {
+    var _textWidth = measureText(title, titlefontSize * opts.pix, context);
+    var _startX = center.x - _textWidth / 2 + (opts.title.offsetX || 0);
+    var _startY = center.y + titlefontSize * opts.pix / 2 + (opts.title.offsetY || 0) * opts.pix;
+    if (subtitle) {
+      _startY -= (subtitleHeight * opts.pix + margin) / 2;
+    }
+    context.beginPath();
+    context.setFontSize(titlefontSize * opts.pix);
+    context.setFillStyle(titleFontColor);
+    context.fillText(title, _startX, _startY);
+    context.closePath();
+    context.stroke();
+  }
+}
+
+function drawPointText(points, series, config, context, opts) {
+  // 缁樺埗鏁版嵁鏂囨
+  var data = series.data;
+  var textOffset = series.textOffset ? series.textOffset : 0;
+  points.forEach(function (item, index) {
+    if (item !== null) {
+      context.beginPath();
+      var fontSize = series.textSize ? series.textSize * opts.pix : config.fontSize;
+      context.setFontSize(fontSize);
+      context.setFillStyle(series.textColor || opts.fontColor);
+      var value = data[index];
+      if (typeof data[index] === 'object' && data[index] !== null) {
+        if (data[index].constructor.toString().indexOf('Array') > -1) {
+          value = data[index][1];
+        } else {
+          value = data[index].value;
+        }
+      }
+      var formatVal = series.formatter ? series.formatter(value, index, series, opts) : value;
+      context.setTextAlign('center');
+      context.fillText(String(formatVal), item.x, item.y - 4 + textOffset * opts.pix);
+      context.closePath();
+      context.stroke();
+      context.setTextAlign('left');
+    }
+  });
+}
+
+function drawMountPointText(points, series, config, context, opts) {
+  // 缁樺埗鏁版嵁鏂囨
+  var data = series.data;
+  var textOffset = series.textOffset ? series.textOffset : 0;
+  points.forEach(function (item, index) {
+    if (item !== null) {
+      context.beginPath();
+      var fontSize = series[index].textSize ? series[index].textSize * opts.pix : config.fontSize;
+      context.setFontSize(fontSize);
+      context.setFillStyle(series[index].textColor || opts.fontColor);
+      var value = item.value;
+      var formatVal = series[index].formatter ? series[index].formatter(value, index, series, opts) : value;
+      context.setTextAlign('center');
+      context.fillText(String(formatVal), item.x, item.y - 4 + textOffset * opts.pix);
+      context.closePath();
+      context.stroke();
+      context.setTextAlign('left');
+    }
+  });
+}
+
+function drawBarPointText(points, series, config, context, opts) {
+  // 缁樺埗鏁版嵁鏂囨
+  var data = series.data;
+  var textOffset = series.textOffset ? series.textOffset : 0;
+  points.forEach(function (item, index) {
+    if (item !== null) {
+      context.beginPath();
+      var fontSize = series.textSize ? series.textSize * opts.pix : config.fontSize;
+      context.setFontSize(fontSize);
+      context.setFillStyle(series.textColor || opts.fontColor);
+      var value = data[index];
+      if (typeof data[index] === 'object' && data[index] !== null) {
+        value = data[index].value;
+      }
+      var formatVal = series.formatter ? series.formatter(value, index, series, opts) : value;
+      context.setTextAlign('left');
+      context.fillText(String(formatVal), item.x + 4 * opts.pix, item.y + fontSize / 2 - 3);
+      context.closePath();
+      context.stroke();
+    }
+  });
+}
+
+function drawGaugeLabel(gaugeOption, radius, centerPosition, opts, config, context) {
+  radius -= gaugeOption.width / 2 + gaugeOption.labelOffset * opts.pix;
+  radius = radius < 10 ? 10 : radius;
+  var totalAngle = gaugeOption.startAngle - gaugeOption.endAngle + 1;
+  var splitAngle = totalAngle / gaugeOption.splitLine.splitNumber;
+  var totalNumber = gaugeOption.endNumber - gaugeOption.startNumber;
+  var splitNumber = totalNumber / gaugeOption.splitLine.splitNumber;
+  var nowAngle = gaugeOption.startAngle;
+  var nowNumber = gaugeOption.startNumber;
+  for (var i = 0; i < gaugeOption.splitLine.splitNumber + 1; i++) {
+    var pos = {
+      x: radius * Math.cos(nowAngle * Math.PI),
+      y: radius * Math.sin(nowAngle * Math.PI) };
+
+    var labelText = gaugeOption.formatter ? gaugeOption.formatter(nowNumber, i, opts) : nowNumber;
+    pos.x += centerPosition.x - measureText(labelText, config.fontSize, context) / 2;
+    pos.y += centerPosition.y;
+    var startX = pos.x;
+    var startY = pos.y;
+    context.beginPath();
+    context.setFontSize(config.fontSize);
+    context.setFillStyle(gaugeOption.labelColor || opts.fontColor);
+    context.fillText(labelText, startX, startY + config.fontSize / 2);
+    context.closePath();
+    context.stroke();
+    nowAngle += splitAngle;
+    if (nowAngle >= 2) {
+      nowAngle = nowAngle % 2;
+    }
+    nowNumber += splitNumber;
+  }
+}
+
+function drawRadarLabel(angleList, radius, centerPosition, opts, config, context) {
+  var radarOption = opts.extra.radar || {};
+  angleList.forEach(function (angle, index) {
+    if (radarOption.labelPointShow === true && opts.categories[index] !== '') {
+      var posPoint = {
+        x: radius * Math.cos(angle),
+        y: radius * Math.sin(angle) };
+
+      var posPointAxis = convertCoordinateOrigin(posPoint.x, posPoint.y, centerPosition);
+      context.setFillStyle(radarOption.labelPointColor);
+      context.beginPath();
+      context.arc(posPointAxis.x, posPointAxis.y, radarOption.labelPointRadius * opts.pix, 0, 2 * Math.PI, false);
+      context.closePath();
+      context.fill();
+    }
+    var pos = {
+      x: (radius + config.radarLabelTextMargin * opts.pix) * Math.cos(angle),
+      y: (radius + config.radarLabelTextMargin * opts.pix) * Math.sin(angle) };
+
+    var posRelativeCanvas = convertCoordinateOrigin(pos.x, pos.y, centerPosition);
+    var startX = posRelativeCanvas.x;
+    var startY = posRelativeCanvas.y;
+    if (util.approximatelyEqual(pos.x, 0)) {
+      startX -= measureText(opts.categories[index] || '', config.fontSize, context) / 2;
+    } else if (pos.x < 0) {
+      startX -= measureText(opts.categories[index] || '', config.fontSize, context);
+    }
+    context.beginPath();
+    context.setFontSize(config.fontSize);
+    context.setFillStyle(radarOption.labelColor || opts.fontColor);
+    context.fillText(opts.categories[index] || '', startX, startY + config.fontSize / 2);
+    context.closePath();
+    context.stroke();
+  });
+
+}
+
+function drawPieText(series, opts, config, context, radius, center) {
+  var lineRadius = config.pieChartLinePadding;
+  var textObjectCollection = [];
+  var lastTextObject = null;
+  var seriesConvert = series.map(function (item, index) {
+    var text = item.formatter ? item.formatter(item, index, series, opts) : util.toFixed(item._proportion_.toFixed(4) * 100) + '%';
+    text = item.labelText ? item.labelText : text;
+    var arc = 2 * Math.PI - (item._start_ + 2 * Math.PI * item._proportion_ / 2);
+    if (item._rose_proportion_) {
+      arc = 2 * Math.PI - (item._start_ + 2 * Math.PI * item._rose_proportion_ / 2);
+    }
+    var color = item.color;
+    var radius = item._radius_;
+    return {
+      arc: arc,
+      text: text,
+      color: color,
+      radius: radius,
+      textColor: item.textColor,
+      textSize: item.textSize,
+      labelShow: item.labelShow };
+
+  });
+  for (var i = 0; i < seriesConvert.length; i++) {
+    var item = seriesConvert[i];
+    // line end
+    var orginX1 = Math.cos(item.arc) * (item.radius + lineRadius);
+    var orginY1 = Math.sin(item.arc) * (item.radius + lineRadius);
+    // line start
+    var orginX2 = Math.cos(item.arc) * item.radius;
+    var orginY2 = Math.sin(item.arc) * item.radius;
+    // text start
+    var orginX3 = orginX1 >= 0 ? orginX1 + config.pieChartTextPadding : orginX1 - config.pieChartTextPadding;
+    var orginY3 = orginY1;
+    var textWidth = measureText(item.text, item.textSize * opts.pix || config.fontSize, context);
+    var startY = orginY3;
+    if (lastTextObject && util.isSameXCoordinateArea(lastTextObject.start, {
+      x: orginX3 }))
+    {
+      if (orginX3 > 0) {
+        startY = Math.min(orginY3, lastTextObject.start.y);
+      } else if (orginX1 < 0) {
+        startY = Math.max(orginY3, lastTextObject.start.y);
+      } else {
+        if (orginY3 > 0) {
+          startY = Math.max(orginY3, lastTextObject.start.y);
+        } else {
+          startY = Math.min(orginY3, lastTextObject.start.y);
+        }
+      }
+    }
+    if (orginX3 < 0) {
+      orginX3 -= textWidth;
+    }
+    var textObject = {
+      lineStart: {
+        x: orginX2,
+        y: orginY2 },
+
+      lineEnd: {
+        x: orginX1,
+        y: orginY1 },
+
+      start: {
+        x: orginX3,
+        y: startY },
+
+      width: textWidth,
+      height: config.fontSize,
+      text: item.text,
+      color: item.color,
+      textColor: item.textColor,
+      textSize: item.textSize };
+
+    lastTextObject = avoidCollision(textObject, lastTextObject);
+    textObjectCollection.push(lastTextObject);
+  }
+  for (var _i15 = 0; _i15 < textObjectCollection.length; _i15++) {
+    if (seriesConvert[_i15].labelShow === false) {
+      continue;
+    }
+    var _item6 = textObjectCollection[_i15];
+    var lineStartPoistion = convertCoordinateOrigin(_item6.lineStart.x, _item6.lineStart.y, center);
+    var lineEndPoistion = convertCoordinateOrigin(_item6.lineEnd.x, _item6.lineEnd.y, center);
+    var textPosition = convertCoordinateOrigin(_item6.start.x, _item6.start.y, center);
+    context.setLineWidth(1 * opts.pix);
+    context.setFontSize(_item6.textSize * opts.pix || config.fontSize);
+    context.beginPath();
+    context.setStrokeStyle(_item6.color);
+    context.setFillStyle(_item6.color);
+    context.moveTo(lineStartPoistion.x, lineStartPoistion.y);
+    var curveStartX = _item6.start.x < 0 ? textPosition.x + _item6.width : textPosition.x;
+    var textStartX = _item6.start.x < 0 ? textPosition.x - 5 : textPosition.x + 5;
+    context.quadraticCurveTo(lineEndPoistion.x, lineEndPoistion.y, curveStartX, textPosition.y);
+    context.moveTo(lineStartPoistion.x, lineStartPoistion.y);
+    context.stroke();
+    context.closePath();
+    context.beginPath();
+    context.moveTo(textPosition.x + _item6.width, textPosition.y);
+    context.arc(curveStartX, textPosition.y, 2 * opts.pix, 0, 2 * Math.PI);
+    context.closePath();
+    context.fill();
+    context.beginPath();
+    context.setFontSize(_item6.textSize * opts.pix || config.fontSize);
+    context.setFillStyle(_item6.textColor || opts.fontColor);
+    context.fillText(_item6.text, textStartX, textPosition.y + 3);
+    context.closePath();
+    context.stroke();
+    context.closePath();
+  }
+}
+
+function drawToolTipSplitLine(offsetX, opts, config, context) {
+  var toolTipOption = opts.extra.tooltip || {};
+  toolTipOption.gridType = toolTipOption.gridType == undefined ? 'solid' : toolTipOption.gridType;
+  toolTipOption.dashLength = toolTipOption.dashLength == undefined ? 4 : toolTipOption.dashLength;
+  var startY = opts.area[0];
+  var endY = opts.height - opts.area[2];
+  if (toolTipOption.gridType == 'dash') {
+    context.setLineDash([toolTipOption.dashLength, toolTipOption.dashLength]);
+  }
+  context.setStrokeStyle(toolTipOption.gridColor || '#cccccc');
+  context.setLineWidth(1 * opts.pix);
+  context.beginPath();
+  context.moveTo(offsetX, startY);
+  context.lineTo(offsetX, endY);
+  context.stroke();
+  context.setLineDash([]);
+  if (toolTipOption.xAxisLabel) {
+    var labelText = opts.categories[opts.tooltip.index];
+    context.setFontSize(config.fontSize);
+    var textWidth = measureText(labelText, config.fontSize, context);
+    var textX = offsetX - 0.5 * textWidth;
+    var textY = endY + 2 * opts.pix;
+    context.beginPath();
+    context.setFillStyle(hexToRgb(toolTipOption.labelBgColor || config.toolTipBackground, toolTipOption.labelBgOpacity || config.toolTipOpacity));
+    context.setStrokeStyle(toolTipOption.labelBgColor || config.toolTipBackground);
+    context.setLineWidth(1 * opts.pix);
+    context.rect(textX - config.toolTipPadding, textY, textWidth + 2 * config.toolTipPadding, config.fontSize + 2 * config.toolTipPadding);
+    context.closePath();
+    context.stroke();
+    context.fill();
+    context.beginPath();
+    context.setFontSize(config.fontSize);
+    context.setFillStyle(toolTipOption.labelFontColor || opts.fontColor);
+    context.fillText(String(labelText), textX, textY + config.toolTipPadding + config.fontSize);
+    context.closePath();
+    context.stroke();
+  }
+}
+
+function drawMarkLine(opts, config, context) {
+  var markLineOption = assign({}, {
+    type: 'solid',
+    dashLength: 4,
+    data: [] },
+  opts.extra.markLine);
+  var startX = opts.area[3];
+  var endX = opts.width - opts.area[1];
+  var points = calMarkLineData(markLineOption.data, opts);
+  for (var i = 0; i < points.length; i++) {
+    var item = assign({}, {
+      lineColor: '#DE4A42',
+      showLabel: false,
+      labelFontColor: '#666666',
+      labelBgColor: '#DFE8FF',
+      labelBgOpacity: 0.8,
+      labelAlign: 'left',
+      labelOffsetX: 0,
+      labelOffsetY: 0 },
+    points[i]);
+    if (markLineOption.type == 'dash') {
+      context.setLineDash([markLineOption.dashLength, markLineOption.dashLength]);
+    }
+    context.setStrokeStyle(item.lineColor);
+    context.setLineWidth(1 * opts.pix);
+    context.beginPath();
+    context.moveTo(startX, item.y);
+    context.lineTo(endX, item.y);
+    context.stroke();
+    context.setLineDash([]);
+    if (item.showLabel) {
+      var labelText = item.labelText ? item.labelText : item.value;
+      context.setFontSize(config.fontSize);
+      var textWidth = measureText(labelText, config.fontSize, context);
+      var bgWidth = textWidth + config.toolTipPadding * 2;
+      var bgStartX = item.labelAlign == 'left' ? opts.area[3] - bgWidth : opts.width - opts.area[1];
+      bgStartX += item.labelOffsetX;
+      var bgStartY = item.y - 0.5 * config.fontSize - config.toolTipPadding;
+      bgStartY += item.labelOffsetY;
+      var textX = bgStartX + config.toolTipPadding;
+      var textY = item.y;
+      context.setFillStyle(hexToRgb(item.labelBgColor, item.labelBgOpacity));
+      context.setStrokeStyle(item.labelBgColor);
+      context.setLineWidth(1 * opts.pix);
+      context.beginPath();
+      context.rect(bgStartX, bgStartY, bgWidth, config.fontSize + 2 * config.toolTipPadding);
+      context.closePath();
+      context.stroke();
+      context.fill();
+      context.setFontSize(config.fontSize);
+      context.setTextAlign('left');
+      context.setFillStyle(item.labelFontColor);
+      context.fillText(String(labelText), textX, bgStartY + config.fontSize + config.toolTipPadding / 2);
+      context.stroke();
+      context.setTextAlign('left');
+    }
+  }
+}
+
+function drawToolTipHorizentalLine(opts, config, context, eachSpacing, xAxisPoints) {
+  var toolTipOption = assign({}, {
+    gridType: 'solid',
+    dashLength: 4 },
+  opts.extra.tooltip);
+  var startX = opts.area[3];
+  var endX = opts.width - opts.area[1];
+  if (toolTipOption.gridType == 'dash') {
+    context.setLineDash([toolTipOption.dashLength, toolTipOption.dashLength]);
+  }
+  context.setStrokeStyle(toolTipOption.gridColor || '#cccccc');
+  context.setLineWidth(1 * opts.pix);
+  context.beginPath();
+  context.moveTo(startX, opts.tooltip.offset.y);
+  context.lineTo(endX, opts.tooltip.offset.y);
+  context.stroke();
+  context.setLineDash([]);
+  if (toolTipOption.yAxisLabel) {
+    var labelText = calTooltipYAxisData(opts.tooltip.offset.y, opts.series, opts, config, eachSpacing);
+    var widthArr = opts.chartData.yAxisData.yAxisWidth;
+    var tStartLeft = opts.area[3];
+    var tStartRight = opts.width - opts.area[1];
+    for (var i = 0; i < labelText.length; i++) {
+      context.setFontSize(config.fontSize);
+      var textWidth = measureText(labelText[i], config.fontSize, context);
+      var bgStartX = void 0,bgEndX = void 0,bgWidth = void 0;
+      if (widthArr[i].position == 'left') {
+        bgStartX = tStartLeft - (textWidth + config.toolTipPadding * 2) - 2 * opts.pix;
+        bgEndX = Math.max(bgStartX, bgStartX + textWidth + config.toolTipPadding * 2);
+      } else {
+        bgStartX = tStartRight + 2 * opts.pix;
+        bgEndX = Math.max(bgStartX + widthArr[i].width, bgStartX + textWidth + config.toolTipPadding * 2);
+      }
+      bgWidth = bgEndX - bgStartX;
+      var textX = bgStartX + (bgWidth - textWidth) / 2;
+      var textY = opts.tooltip.offset.y;
+      context.beginPath();
+      context.setFillStyle(hexToRgb(toolTipOption.labelBgColor || config.toolTipBackground, toolTipOption.labelBgOpacity || config.toolTipOpacity));
+      context.setStrokeStyle(toolTipOption.labelBgColor || config.toolTipBackground);
+      context.setLineWidth(1 * opts.pix);
+      context.rect(bgStartX, textY - 0.5 * config.fontSize - config.toolTipPadding, bgWidth, config.fontSize + 2 * config.toolTipPadding);
+      context.closePath();
+      context.stroke();
+      context.fill();
+      context.beginPath();
+      context.setFontSize(config.fontSize);
+      context.setFillStyle(toolTipOption.labelFontColor || opts.fontColor);
+      context.fillText(labelText[i], textX, textY + 0.5 * config.fontSize);
+      context.closePath();
+      context.stroke();
+      if (widthArr[i].position == 'left') {
+        tStartLeft -= widthArr[i].width + opts.yAxis.padding * opts.pix;
+      } else {
+        tStartRight += widthArr[i].width + opts.yAxis.padding * opts.pix;
+      }
+    }
+  }
+}
+
+function drawToolTipSplitArea(offsetX, opts, config, context, eachSpacing) {
+  var toolTipOption = assign({}, {
+    activeBgColor: '#000000',
+    activeBgOpacity: 0.08,
+    activeWidth: eachSpacing },
+  opts.extra.column);
+  toolTipOption.activeWidth = toolTipOption.activeWidth > eachSpacing ? eachSpacing : toolTipOption.activeWidth;
+  var startY = opts.area[0];
+  var endY = opts.height - opts.area[2];
+  context.beginPath();
+  context.setFillStyle(hexToRgb(toolTipOption.activeBgColor, toolTipOption.activeBgOpacity));
+  context.rect(offsetX - toolTipOption.activeWidth / 2, startY, toolTipOption.activeWidth, endY - startY);
+  context.closePath();
+  context.fill();
+  context.setFillStyle("#FFFFFF");
+}
+
+function drawBarToolTipSplitArea(offsetX, opts, config, context, eachSpacing) {
+  var toolTipOption = assign({}, {
+    activeBgColor: '#000000',
+    activeBgOpacity: 0.08 },
+  opts.extra.bar);
+  var startX = opts.area[3];
+  var endX = opts.width - opts.area[1];
+  context.beginPath();
+  context.setFillStyle(hexToRgb(toolTipOption.activeBgColor, toolTipOption.activeBgOpacity));
+  context.rect(startX, offsetX - eachSpacing / 2, endX - startX, eachSpacing);
+  context.closePath();
+  context.fill();
+  context.setFillStyle("#FFFFFF");
+}
+
+
+function drawToolTip(textList, offset, opts, config, context, eachSpacing, xAxisPoints) {
+  var toolTipOption = assign({}, {
+    showBox: true,
+    showArrow: true,
+    showCategory: false,
+    bgColor: '#000000',
+    bgOpacity: 0.7,
+    borderColor: '#000000',
+    borderWidth: 0,
+    borderRadius: 0,
+    borderOpacity: 0.7,
+    fontColor: '#FFFFFF',
+    splitLine: true },
+  opts.extra.tooltip);
+  if (toolTipOption.showCategory == true && opts.categories) {
+    textList.unshift({ text: opts.categories[opts.tooltip.index], color: null });
+  }
+  var legendWidth = 4 * opts.pix;
+  var legendMarginRight = 5 * opts.pix;
+  var arrowWidth = toolTipOption.showArrow ? 8 * opts.pix : 0;
+  var isOverRightBorder = false;
+  if (opts.type == 'line' || opts.type == 'mount' || opts.type == 'area' || opts.type == 'candle' || opts.type == 'mix') {
+    if (toolTipOption.splitLine == true) {
+      drawToolTipSplitLine(opts.tooltip.offset.x, opts, config, context);
+    }
+  }
+  offset = assign({
+    x: 0,
+    y: 0 },
+  offset);
+  offset.y -= 8 * opts.pix;
+  var textWidth = textList.map(function (item) {
+    return measureText(item.text, config.fontSize, context);
+  });
+  var toolTipWidth = legendWidth + legendMarginRight + 4 * config.toolTipPadding + Math.max.apply(null, textWidth);
+  var toolTipHeight = 2 * config.toolTipPadding + textList.length * config.toolTipLineHeight;
+  if (toolTipOption.showBox == false) {
+    return;
+  }
+  // if beyond the right border
+  if (offset.x - Math.abs(opts._scrollDistance_ || 0) + arrowWidth + toolTipWidth > opts.width) {
+    isOverRightBorder = true;
+  }
+  if (toolTipHeight + offset.y > opts.height) {
+    offset.y = opts.height - toolTipHeight;
+  }
+  // draw background rect
+  context.beginPath();
+  context.setFillStyle(hexToRgb(toolTipOption.bgColor || config.toolTipBackground, toolTipOption.bgOpacity || config.toolTipOpacity));
+  context.setLineWidth(toolTipOption.borderWidth * opts.pix);
+  context.setStrokeStyle(hexToRgb(toolTipOption.borderColor, toolTipOption.borderOpacity));
+  var radius = toolTipOption.borderRadius;
+  if (isOverRightBorder) {
+    // 澧炲姞宸︿晶浠嶇劧瓒呭嚭鐨勫垽鏂�
+    if (toolTipWidth + arrowWidth > opts.width) {
+      offset.x = opts.width + Math.abs(opts._scrollDistance_ || 0) + arrowWidth + (toolTipWidth - opts.width);
+    }
+    if (toolTipOption.showArrow) {
+      context.moveTo(offset.x, offset.y + 10 * opts.pix);
+      context.lineTo(offset.x - arrowWidth, offset.y + 10 * opts.pix + 5 * opts.pix);
+    }
+    context.arc(offset.x - arrowWidth - radius, offset.y + toolTipHeight - radius, radius, 0, Math.PI / 2, false);
+    context.arc(offset.x - arrowWidth - Math.round(toolTipWidth) + radius, offset.y + toolTipHeight - radius, radius,
+    Math.PI / 2, Math.PI, false);
+    context.arc(offset.x - arrowWidth - Math.round(toolTipWidth) + radius, offset.y + radius, radius, -Math.PI, -Math.PI / 2, false);
+    context.arc(offset.x - arrowWidth - radius, offset.y + radius, radius, -Math.PI / 2, 0, false);
+    if (toolTipOption.showArrow) {
+      context.lineTo(offset.x - arrowWidth, offset.y + 10 * opts.pix - 5 * opts.pix);
+      context.lineTo(offset.x, offset.y + 10 * opts.pix);
+    }
+  } else {
+    if (toolTipOption.showArrow) {
+      context.moveTo(offset.x, offset.y + 10 * opts.pix);
+      context.lineTo(offset.x + arrowWidth, offset.y + 10 * opts.pix - 5 * opts.pix);
+    }
+    context.arc(offset.x + arrowWidth + radius, offset.y + radius, radius, -Math.PI, -Math.PI / 2, false);
+    context.arc(offset.x + arrowWidth + Math.round(toolTipWidth) - radius, offset.y + radius, radius, -Math.PI / 2, 0,
+    false);
+    context.arc(offset.x + arrowWidth + Math.round(toolTipWidth) - radius, offset.y + toolTipHeight - radius, radius, 0,
+    Math.PI / 2, false);
+    context.arc(offset.x + arrowWidth + radius, offset.y + toolTipHeight - radius, radius, Math.PI / 2, Math.PI, false);
+    if (toolTipOption.showArrow) {
+      context.lineTo(offset.x + arrowWidth, offset.y + 10 * opts.pix + 5 * opts.pix);
+      context.lineTo(offset.x, offset.y + 10 * opts.pix);
+    }
+  }
+  context.closePath();
+  context.fill();
+  if (toolTipOption.borderWidth > 0) {
+    context.stroke();
+  }
+  // draw legend
+  textList.forEach(function (item, index) {
+    if (item.color !== null) {
+      context.beginPath();
+      context.setFillStyle(item.color);
+      var startX = offset.x + arrowWidth + 2 * config.toolTipPadding;
+      var startY = offset.y + (config.toolTipLineHeight - config.fontSize) / 2 + config.toolTipLineHeight * index + config.toolTipPadding + 1;
+      if (isOverRightBorder) {
+        startX = offset.x - toolTipWidth - arrowWidth + 2 * config.toolTipPadding;
+      }
+      context.fillRect(startX, startY, legendWidth, config.fontSize);
+      // 鍦嗗舰鍥句緥璇锋敞閲婁笂琛岋紝骞舵妸涓嬭鍙栨秷娉ㄩ噴
+      // context.arc(startX + legendWidth / 2 , startY + opts.fontSize / 2, 4 * opts.pix, 0, 2 * Math.PI);
+      context.closePath();
+      context.fill();
+    }
+  });
+  // draw text list
+  textList.forEach(function (item, index) {
+    var startX = offset.x + arrowWidth + 2 * config.toolTipPadding + legendWidth + legendMarginRight;
+    if (isOverRightBorder) {
+      startX = offset.x - toolTipWidth - arrowWidth + 2 * config.toolTipPadding + +legendWidth + legendMarginRight;
+    }
+    var startY = offset.y + (config.toolTipLineHeight - config.fontSize) / 2 + config.toolTipLineHeight * index + config.toolTipPadding;
+    context.beginPath();
+    context.setFontSize(config.fontSize);
+    context.setFillStyle(toolTipOption.fontColor);
+    context.fillText(item.text, startX, startY + config.fontSize);
+    context.closePath();
+    context.stroke();
+  });
+}
+
+function drawColumnDataPoints(series, opts, config, context) {
+  var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;
+  var xAxisData = opts.chartData.xAxisData,
+  xAxisPoints = xAxisData.xAxisPoints,
+  eachSpacing = xAxisData.eachSpacing;
+  var columnOption = assign({}, {
+    type: 'group',
+    width: eachSpacing / 2,
+    meterBorder: 4,
+    meterFillColor: '#FFFFFF',
+    barBorderCircle: false,
+    barBorderRadius: [],
+    seriesGap: 2,
+    linearType: 'none',
+    linearOpacity: 1,
+    customColor: [],
+    colorStop: 0 },
+  opts.extra.column);
+  var calPoints = [];
+  context.save();
+  var leftNum = -2;
+  var rightNum = xAxisPoints.length + 2;
+  if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {
+    context.translate(opts._scrollDistance_, 0);
+    leftNum = Math.floor(-opts._scrollDistance_ / eachSpacing) - 2;
+    rightNum = leftNum + opts.xAxis.itemCount + 4;
+  }
+  if (opts.tooltip && opts.tooltip.textList && opts.tooltip.textList.length && process === 1) {
+    drawToolTipSplitArea(opts.tooltip.offset.x, opts, config, context, eachSpacing);
+  }
+  columnOption.customColor = fillCustomColor(columnOption.linearType, columnOption.customColor, series, config);
+  series.forEach(function (eachSeries, seriesIndex) {
+    var ranges, minRange, maxRange;
+    ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);
+    minRange = ranges.pop();
+    maxRange = ranges.shift();
+    var data = eachSeries.data;
+    switch (columnOption.type) {
+      case 'group':
+        var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);
+        var tooltipPoints = getStackDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, seriesIndex, series, process);
+        calPoints.push(tooltipPoints);
+        points = fixColumeData(points, eachSpacing, series.length, seriesIndex, config, opts);
+        for (var i = 0; i < points.length; i++) {
+          var item = points[i];
+          //fix issues/I27B1N yyoinge & Joeshu
+          if (item !== null && i > leftNum && i < rightNum) {
+            var startX = item.x - item.width / 2;
+            var height = opts.height - item.y - opts.area[2];
+            context.beginPath();
+            var fillColor = item.color || eachSeries.color;
+            var strokeColor = item.color || eachSeries.color;
+            if (columnOption.linearType !== 'none') {
+              var grd = context.createLinearGradient(startX, item.y, startX, opts.height - opts.area[2]);
+              //閫忔槑娓愬彉
+              if (columnOption.linearType == 'opacity') {
+                grd.addColorStop(0, hexToRgb(fillColor, columnOption.linearOpacity));
+                grd.addColorStop(1, hexToRgb(fillColor, 1));
+              } else {
+                grd.addColorStop(0, hexToRgb(columnOption.customColor[eachSeries.linearIndex], columnOption.linearOpacity));
+                grd.addColorStop(columnOption.colorStop, hexToRgb(columnOption.customColor[eachSeries.linearIndex], columnOption.linearOpacity));
+                grd.addColorStop(1, hexToRgb(fillColor, 1));
+              }
+              fillColor = grd;
+            }
+            // 鍦嗚杈规
+            if (columnOption.barBorderRadius && columnOption.barBorderRadius.length === 4 || columnOption.barBorderCircle === true) {
+              var left = startX;
+              var top = item.y;
+              var width = item.width;
+              var _height = opts.height - opts.area[2] - item.y;
+              if (columnOption.barBorderCircle) {
+                columnOption.barBorderRadius = [width / 2, width / 2, 0, 0];
+              }var _columnOption$barBord = _slicedToArray(
+              columnOption.barBorderRadius, 4),r0 = _columnOption$barBord[0],r1 = _columnOption$barBord[1],r2 = _columnOption$barBord[2],r3 = _columnOption$barBord[3];
+              var minRadius = Math.min(width / 2, _height / 2);
+              r0 = r0 > minRadius ? minRadius : r0;
+              r1 = r1 > minRadius ? minRadius : r1;
+              r2 = r2 > minRadius ? minRadius : r2;
+              r3 = r3 > minRadius ? minRadius : r3;
+              r0 = r0 < 0 ? 0 : r0;
+              r1 = r1 < 0 ? 0 : r1;
+              r2 = r2 < 0 ? 0 : r2;
+              r3 = r3 < 0 ? 0 : r3;
+              context.arc(left + r0, top + r0, r0, -Math.PI, -Math.PI / 2);
+              context.arc(left + width - r1, top + r1, r1, -Math.PI / 2, 0);
+              context.arc(left + width - r2, top + _height - r2, r2, 0, Math.PI / 2);
+              context.arc(left + r3, top + _height - r3, r3, Math.PI / 2, Math.PI);
+            } else {
+              context.moveTo(startX, item.y);
+              context.lineTo(startX + item.width, item.y);
+              context.lineTo(startX + item.width, opts.height - opts.area[2]);
+              context.lineTo(startX, opts.height - opts.area[2]);
+              context.lineTo(startX, item.y);
+              context.setLineWidth(1);
+              context.setStrokeStyle(strokeColor);
+            }
+            context.setFillStyle(fillColor);
+            context.closePath();
+            //context.stroke();
+            context.fill();
+          }
+        };
+        break;
+      case 'stack':
+        // 缁樺埗鍫嗗彔鏁版嵁鍥�
+        var points = getStackDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, seriesIndex, series, process);
+        calPoints.push(points);
+        points = fixColumeStackData(points, eachSpacing, series.length, seriesIndex, config, opts, series);
+        for (var _i16 = 0; _i16 < points.length; _i16++) {
+          var _item7 = points[_i16];
+          if (_item7 !== null && _i16 > leftNum && _i16 < rightNum) {
+            context.beginPath();
+            var fillColor = _item7.color || eachSeries.color;
+            var startX = _item7.x - _item7.width / 2 + 1;
+            var height = opts.height - _item7.y - opts.area[2];
+            var height0 = opts.height - _item7.y0 - opts.area[2];
+            if (seriesIndex > 0) {
+              height -= height0;
+            }
+            context.setFillStyle(fillColor);
+            context.moveTo(startX, _item7.y);
+            context.fillRect(startX, _item7.y, _item7.width, height);
+            context.closePath();
+            context.fill();
+          }
+        };
+        break;
+      case 'meter':
+        // 缁樺埗娓╁害璁℃暟鎹浘
+        var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);
+        calPoints.push(points);
+        points = fixColumeMeterData(points, eachSpacing, series.length, seriesIndex, config, opts, columnOption.meterBorder);
+        for (var _i17 = 0; _i17 < points.length; _i17++) {
+          var _item8 = points[_i17];
+          if (_item8 !== null && _i17 > leftNum && _i17 < rightNum) {
+            //鐢昏儗鏅鑹�
+            context.beginPath();
+            if (seriesIndex == 0 && columnOption.meterBorder > 0) {
+              context.setStrokeStyle(eachSeries.color);
+              context.setLineWidth(columnOption.meterBorder * opts.pix);
+            }
+            if (seriesIndex == 0) {
+              context.setFillStyle(columnOption.meterFillColor);
+            } else {
+              context.setFillStyle(_item8.color || eachSeries.color);
+            }
+            var startX = _item8.x - _item8.width / 2;
+            var height = opts.height - _item8.y - opts.area[2];
+            if (columnOption.barBorderRadius && columnOption.barBorderRadius.length === 4 || columnOption.barBorderCircle === true) {
+              var _left = startX;
+              var _top = _item8.y;
+              var _width = _item8.width;
+              var _height2 = opts.height - opts.area[2] - _item8.y;
+              if (columnOption.barBorderCircle) {
+                columnOption.barBorderRadius = [_width / 2, _width / 2, 0, 0];
+              }var _columnOption$barBord2 = _slicedToArray(
+              columnOption.barBorderRadius, 4),_r = _columnOption$barBord2[0],_r2 = _columnOption$barBord2[1],_r3 = _columnOption$barBord2[2],_r4 = _columnOption$barBord2[3];
+              var _minRadius = Math.min(_width / 2, _height2 / 2);
+              _r = _r > _minRadius ? _minRadius : _r;
+              _r2 = _r2 > _minRadius ? _minRadius : _r2;
+              _r3 = _r3 > _minRadius ? _minRadius : _r3;
+              _r4 = _r4 > _minRadius ? _minRadius : _r4;
+              _r = _r < 0 ? 0 : _r;
+              _r2 = _r2 < 0 ? 0 : _r2;
+              _r3 = _r3 < 0 ? 0 : _r3;
+              _r4 = _r4 < 0 ? 0 : _r4;
+              context.arc(_left + _r, _top + _r, _r, -Math.PI, -Math.PI / 2);
+              context.arc(_left + _width - _r2, _top + _r2, _r2, -Math.PI / 2, 0);
+              context.arc(_left + _width - _r3, _top + _height2 - _r3, _r3, 0, Math.PI / 2);
+              context.arc(_left + _r4, _top + _height2 - _r4, _r4, Math.PI / 2, Math.PI);
+              context.fill();
+            } else {
+              context.moveTo(startX, _item8.y);
+              context.lineTo(startX + _item8.width, _item8.y);
+              context.lineTo(startX + _item8.width, opts.height - opts.area[2]);
+              context.lineTo(startX, opts.height - opts.area[2]);
+              context.lineTo(startX, _item8.y);
+              context.fill();
+            }
+            if (seriesIndex == 0 && columnOption.meterBorder > 0) {
+              context.closePath();
+              context.stroke();
+            }
+          }
+        }
+        break;}
+
+  });
+
+  if (opts.dataLabel !== false && process === 1) {
+    series.forEach(function (eachSeries, seriesIndex) {
+      var ranges, minRange, maxRange;
+      ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);
+      minRange = ranges.pop();
+      maxRange = ranges.shift();
+      var data = eachSeries.data;
+      switch (columnOption.type) {
+        case 'group':
+          var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);
+          points = fixColumeData(points, eachSpacing, series.length, seriesIndex, config, opts);
+          drawPointText(points, eachSeries, config, context, opts);
+          break;
+        case 'stack':
+          var points = getStackDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, seriesIndex, series, process);
+          drawPointText(points, eachSeries, config, context, opts);
+          break;
+        case 'meter':
+          var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);
+          drawPointText(points, eachSeries, config, context, opts);
+          break;}
+
+    });
+  }
+  context.restore();
+  return {
+    xAxisPoints: xAxisPoints,
+    calPoints: calPoints,
+    eachSpacing: eachSpacing };
+
+}
+
+function drawMountDataPoints(series, opts, config, context) {
+  var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;
+  var xAxisData = opts.chartData.xAxisData,
+  xAxisPoints = xAxisData.xAxisPoints,
+  eachSpacing = xAxisData.eachSpacing;
+  var mountOption = assign({}, {
+    type: 'mount',
+    widthRatio: 1,
+    borderWidth: 1,
+    barBorderCircle: false,
+    barBorderRadius: [],
+    linearType: 'none',
+    linearOpacity: 1,
+    customColor: [],
+    colorStop: 0 },
+  opts.extra.mount);
+  mountOption.widthRatio = mountOption.widthRatio <= 0 ? 0 : mountOption.widthRatio;
+  mountOption.widthRatio = mountOption.widthRatio >= 2 ? 2 : mountOption.widthRatio;
+  var calPoints = [];
+  context.save();
+  var leftNum = -2;
+  var rightNum = xAxisPoints.length + 2;
+  if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {
+    context.translate(opts._scrollDistance_, 0);
+    leftNum = Math.floor(-opts._scrollDistance_ / eachSpacing) - 2;
+    rightNum = leftNum + opts.xAxis.itemCount + 4;
+  }
+  mountOption.customColor = fillCustomColor(mountOption.linearType, mountOption.customColor, series, config);
+  var ranges, minRange, maxRange;
+  ranges = [].concat(opts.chartData.yAxisData.ranges[0]);
+  minRange = ranges.pop();
+  maxRange = ranges.shift();
+  var points = getMountDataPoints(series, minRange, maxRange, xAxisPoints, eachSpacing, opts, mountOption, process);
+  switch (mountOption.type) {
+    case 'bar':
+      for (var i = 0; i < points.length; i++) {
+        var item = points[i];
+        if (item !== null && i > leftNum && i < rightNum) {
+          var startX = item.x - eachSpacing * mountOption.widthRatio / 2;
+          var height = opts.height - item.y - opts.area[2];
+          context.beginPath();
+          var fillColor = item.color || series[i].color;
+          var strokeColor = item.color || series[i].color;
+          if (mountOption.linearType !== 'none') {
+            var grd = context.createLinearGradient(startX, item.y, startX, opts.height - opts.area[2]);
+            //閫忔槑娓愬彉
+            if (mountOption.linearType == 'opacity') {
+              grd.addColorStop(0, hexToRgb(fillColor, mountOption.linearOpacity));
+              grd.addColorStop(1, hexToRgb(fillColor, 1));
+            } else {
+              grd.addColorStop(0, hexToRgb(mountOption.customColor[series[i].linearIndex], mountOption.linearOpacity));
+              grd.addColorStop(mountOption.colorStop, hexToRgb(mountOption.customColor[series[i].linearIndex], mountOption.linearOpacity));
+              grd.addColorStop(1, hexToRgb(fillColor, 1));
+            }
+            fillColor = grd;
+          }
+          // 鍦嗚杈规
+          if (mountOption.barBorderRadius && mountOption.barBorderRadius.length === 4 || mountOption.barBorderCircle === true) {
+            var left = startX;
+            var top = item.y;
+            var width = item.width;
+            var _height3 = opts.height - opts.area[2] - item.y - mountOption.borderWidth * opts.pix / 2;
+            if (mountOption.barBorderCircle) {
+              mountOption.barBorderRadius = [width / 2, width / 2, 0, 0];
+            }var _mountOption$barBorde = _slicedToArray(
+            mountOption.barBorderRadius, 4),r0 = _mountOption$barBorde[0],r1 = _mountOption$barBorde[1],r2 = _mountOption$barBorde[2],r3 = _mountOption$barBorde[3];
+            var minRadius = Math.min(width / 2, _height3 / 2);
+            r0 = r0 > minRadius ? minRadius : r0;
+            r1 = r1 > minRadius ? minRadius : r1;
+            r2 = r2 > minRadius ? minRadius : r2;
+            r3 = r3 > minRadius ? minRadius : r3;
+            r0 = r0 < 0 ? 0 : r0;
+            r1 = r1 < 0 ? 0 : r1;
+            r2 = r2 < 0 ? 0 : r2;
+            r3 = r3 < 0 ? 0 : r3;
+            context.arc(left + r0, top + r0, r0, -Math.PI, -Math.PI / 2);
+            context.arc(left + width - r1, top + r1, r1, -Math.PI / 2, 0);
+            context.arc(left + width - r2, top + _height3 - r2, r2, 0, Math.PI / 2);
+            context.arc(left + r3, top + _height3 - r3, r3, Math.PI / 2, Math.PI);
+          } else {
+            context.moveTo(startX, item.y);
+            context.lineTo(startX + item.width, item.y);
+            context.lineTo(startX + item.width, opts.height - opts.area[2]);
+            context.lineTo(startX, opts.height - opts.area[2]);
+            context.lineTo(startX, item.y);
+          }
+          context.setStrokeStyle(strokeColor);
+          context.setFillStyle(fillColor);
+          if (mountOption.borderWidth > 0) {
+            context.setLineWidth(mountOption.borderWidth * opts.pix);
+            context.closePath();
+            context.stroke();
+          }
+          context.fill();
+        }
+      };
+      break;
+    case 'triangle':
+      for (var _i18 = 0; _i18 < points.length; _i18++) {
+        var _item9 = points[_i18];
+        if (_item9 !== null && _i18 > leftNum && _i18 < rightNum) {
+          var startX = _item9.x - eachSpacing * mountOption.widthRatio / 2;
+          var height = opts.height - _item9.y - opts.area[2];
+          context.beginPath();
+          var fillColor = _item9.color || series[_i18].color;
+          var strokeColor = _item9.color || series[_i18].color;
+          if (mountOption.linearType !== 'none') {
+            var grd = context.createLinearGradient(startX, _item9.y, startX, opts.height - opts.area[2]);
+            //閫忔槑娓愬彉
+            if (mountOption.linearType == 'opacity') {
+              grd.addColorStop(0, hexToRgb(fillColor, mountOption.linearOpacity));
+              grd.addColorStop(1, hexToRgb(fillColor, 1));
+            } else {
+              grd.addColorStop(0, hexToRgb(mountOption.customColor[series[_i18].linearIndex], mountOption.linearOpacity));
+              grd.addColorStop(mountOption.colorStop, hexToRgb(mountOption.customColor[series[_i18].linearIndex], mountOption.linearOpacity));
+              grd.addColorStop(1, hexToRgb(fillColor, 1));
+            }
+            fillColor = grd;
+          }
+          context.moveTo(startX, opts.height - opts.area[2]);
+          context.lineTo(_item9.x, _item9.y);
+          context.lineTo(startX + _item9.width, opts.height - opts.area[2]);
+          context.setStrokeStyle(strokeColor);
+          context.setFillStyle(fillColor);
+          if (mountOption.borderWidth > 0) {
+            context.setLineWidth(mountOption.borderWidth * opts.pix);
+            context.stroke();
+          }
+          context.fill();
+        }
+      };
+      break;
+    case 'mount':
+      for (var _i19 = 0; _i19 < points.length; _i19++) {
+        var _item10 = points[_i19];
+        if (_item10 !== null && _i19 > leftNum && _i19 < rightNum) {
+          var startX = _item10.x - eachSpacing * mountOption.widthRatio / 2;
+          var height = opts.height - _item10.y - opts.area[2];
+          context.beginPath();
+          var fillColor = _item10.color || series[_i19].color;
+          var strokeColor = _item10.color || series[_i19].color;
+          if (mountOption.linearType !== 'none') {
+            var grd = context.createLinearGradient(startX, _item10.y, startX, opts.height - opts.area[2]);
+            //閫忔槑娓愬彉
+            if (mountOption.linearType == 'opacity') {
+              grd.addColorStop(0, hexToRgb(fillColor, mountOption.linearOpacity));
+              grd.addColorStop(1, hexToRgb(fillColor, 1));
+            } else {
+              grd.addColorStop(0, hexToRgb(mountOption.customColor[series[_i19].linearIndex], mountOption.linearOpacity));
+              grd.addColorStop(mountOption.colorStop, hexToRgb(mountOption.customColor[series[_i19].linearIndex], mountOption.linearOpacity));
+              grd.addColorStop(1, hexToRgb(fillColor, 1));
+            }
+            fillColor = grd;
+          }
+          context.moveTo(startX, opts.height - opts.area[2]);
+          context.bezierCurveTo(_item10.x - _item10.width / 4, opts.height - opts.area[2], _item10.x - _item10.width / 4, _item10.y, _item10.x, _item10.y);
+          context.bezierCurveTo(_item10.x + _item10.width / 4, _item10.y, _item10.x + _item10.width / 4, opts.height - opts.area[2], startX + _item10.width, opts.height - opts.area[2]);
+          context.setStrokeStyle(strokeColor);
+          context.setFillStyle(fillColor);
+          if (mountOption.borderWidth > 0) {
+            context.setLineWidth(mountOption.borderWidth * opts.pix);
+            context.stroke();
+          }
+          context.fill();
+        }
+      };
+      break;
+    case 'sharp':
+      for (var _i20 = 0; _i20 < points.length; _i20++) {
+        var _item11 = points[_i20];
+        if (_item11 !== null && _i20 > leftNum && _i20 < rightNum) {
+          var startX = _item11.x - eachSpacing * mountOption.widthRatio / 2;
+          var height = opts.height - _item11.y - opts.area[2];
+          context.beginPath();
+          var fillColor = _item11.color || series[_i20].color;
+          var strokeColor = _item11.color || series[_i20].color;
+          if (mountOption.linearType !== 'none') {
+            var grd = context.createLinearGradient(startX, _item11.y, startX, opts.height - opts.area[2]);
+            //閫忔槑娓愬彉
+            if (mountOption.linearType == 'opacity') {
+              grd.addColorStop(0, hexToRgb(fillColor, mountOption.linearOpacity));
+              grd.addColorStop(1, hexToRgb(fillColor, 1));
+            } else {
+              grd.addColorStop(0, hexToRgb(mountOption.customColor[series[_i20].linearIndex], mountOption.linearOpacity));
+              grd.addColorStop(mountOption.colorStop, hexToRgb(mountOption.customColor[series[_i20].linearIndex], mountOption.linearOpacity));
+              grd.addColorStop(1, hexToRgb(fillColor, 1));
+            }
+            fillColor = grd;
+          }
+          context.moveTo(startX, opts.height - opts.area[2]);
+          context.quadraticCurveTo(_item11.x - 0, opts.height - opts.area[2] - height / 4, _item11.x, _item11.y);
+          context.quadraticCurveTo(_item11.x + 0, opts.height - opts.area[2] - height / 4, startX + _item11.width, opts.height - opts.area[2]);
+          context.setStrokeStyle(strokeColor);
+          context.setFillStyle(fillColor);
+          if (mountOption.borderWidth > 0) {
+            context.setLineWidth(mountOption.borderWidth * opts.pix);
+            context.stroke();
+          }
+          context.fill();
+        }
+      };
+      break;}
+
+
+  if (opts.dataLabel !== false && process === 1) {
+    var _ranges, _minRange, _maxRange;
+    _ranges = [].concat(opts.chartData.yAxisData.ranges[0]);
+    _minRange = _ranges.pop();
+    _maxRange = _ranges.shift();
+    var points = getMountDataPoints(series, _minRange, _maxRange, xAxisPoints, eachSpacing, opts, mountOption, process);
+    drawMountPointText(points, series, config, context, opts);
+  }
+  context.restore();
+  return {
+    xAxisPoints: xAxisPoints,
+    calPoints: points,
+    eachSpacing: eachSpacing };
+
+}
+
+function drawBarDataPoints(series, opts, config, context) {
+  var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;
+  var yAxisPoints = [];
+  var eachSpacing = (opts.height - opts.area[0] - opts.area[2]) / opts.categories.length;
+  for (var i = 0; i < opts.categories.length; i++) {
+    yAxisPoints.push(opts.area[0] + eachSpacing / 2 + eachSpacing * i);
+  }
+  var columnOption = assign({}, {
+    type: 'group',
+    width: eachSpacing / 2,
+    meterBorder: 4,
+    meterFillColor: '#FFFFFF',
+    barBorderCircle: false,
+    barBorderRadius: [],
+    seriesGap: 2,
+    linearType: 'none',
+    linearOpacity: 1,
+    customColor: [],
+    colorStop: 0 },
+  opts.extra.bar);
+  var calPoints = [];
+  context.save();
+  var leftNum = -2;
+  var rightNum = yAxisPoints.length + 2;
+  if (opts.tooltip && opts.tooltip.textList && opts.tooltip.textList.length && process === 1) {
+    drawBarToolTipSplitArea(opts.tooltip.offset.y, opts, config, context, eachSpacing);
+  }
+  columnOption.customColor = fillCustomColor(columnOption.linearType, columnOption.customColor, series, config);
+  series.forEach(function (eachSeries, seriesIndex) {
+    var ranges, minRange, maxRange;
+    ranges = [].concat(opts.chartData.xAxisData.ranges);
+    maxRange = ranges.pop();
+    minRange = ranges.shift();
+    var data = eachSeries.data;
+    switch (columnOption.type) {
+      case 'group':
+        var points = getBarDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config, process);
+        var tooltipPoints = getBarStackDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config, seriesIndex, series, process);
+        calPoints.push(tooltipPoints);
+        points = fixBarData(points, eachSpacing, series.length, seriesIndex, config, opts);
+        for (var _i21 = 0; _i21 < points.length; _i21++) {
+          var item = points[_i21];
+          //fix issues/I27B1N yyoinge & Joeshu
+          if (item !== null && _i21 > leftNum && _i21 < rightNum) {
+            //var startX = item.x - item.width / 2;
+            var startX = opts.area[3];
+            var startY = item.y - item.width / 2;
+            var height = item.height;
+            context.beginPath();
+            var fillColor = item.color || eachSeries.color;
+            var strokeColor = item.color || eachSeries.color;
+            if (columnOption.linearType !== 'none') {
+              var grd = context.createLinearGradient(startX, item.y, item.x, item.y);
+              //閫忔槑娓愬彉
+              if (columnOption.linearType == 'opacity') {
+                grd.addColorStop(0, hexToRgb(fillColor, columnOption.linearOpacity));
+                grd.addColorStop(1, hexToRgb(fillColor, 1));
+              } else {
+                grd.addColorStop(0, hexToRgb(columnOption.customColor[eachSeries.linearIndex], columnOption.linearOpacity));
+                grd.addColorStop(columnOption.colorStop, hexToRgb(columnOption.customColor[eachSeries.linearIndex], columnOption.linearOpacity));
+                grd.addColorStop(1, hexToRgb(fillColor, 1));
+              }
+              fillColor = grd;
+            }
+            // 鍦嗚杈规
+            if (columnOption.barBorderRadius && columnOption.barBorderRadius.length === 4 || columnOption.barBorderCircle === true) {
+              var left = startX;
+              var width = item.width;
+              var top = item.y - item.width / 2;
+              var _height4 = item.height;
+              if (columnOption.barBorderCircle) {
+                columnOption.barBorderRadius = [width / 2, width / 2, 0, 0];
+              }var _columnOption$barBord3 = _slicedToArray(
+              columnOption.barBorderRadius, 4),r0 = _columnOption$barBord3[0],r1 = _columnOption$barBord3[1],r2 = _columnOption$barBord3[2],r3 = _columnOption$barBord3[3];
+              var minRadius = Math.min(width / 2, _height4 / 2);
+              r0 = r0 > minRadius ? minRadius : r0;
+              r1 = r1 > minRadius ? minRadius : r1;
+              r2 = r2 > minRadius ? minRadius : r2;
+              r3 = r3 > minRadius ? minRadius : r3;
+              r0 = r0 < 0 ? 0 : r0;
+              r1 = r1 < 0 ? 0 : r1;
+              r2 = r2 < 0 ? 0 : r2;
+              r3 = r3 < 0 ? 0 : r3;
+
+              context.arc(left + r3, top + r3, r3, -Math.PI, -Math.PI / 2);
+              context.arc(item.x - r0, top + r0, r0, -Math.PI / 2, 0);
+              context.arc(item.x - r1, top + width - r1, r1, 0, Math.PI / 2);
+              context.arc(left + r2, top + width - r2, r2, Math.PI / 2, Math.PI);
+            } else {
+              context.moveTo(startX, startY);
+              context.lineTo(item.x, startY);
+              context.lineTo(item.x, startY + item.width);
+              context.lineTo(startX, startY + item.width);
+              context.lineTo(startX, startY);
+              context.setLineWidth(1);
+              context.setStrokeStyle(strokeColor);
+            }
+            context.setFillStyle(fillColor);
+            context.closePath();
+            //context.stroke();
+            context.fill();
+          }
+        };
+        break;
+      case 'stack':
+        // 缁樺埗鍫嗗彔鏁版嵁鍥�
+        var points = getBarStackDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config, seriesIndex, series, process);
+        calPoints.push(points);
+        points = fixBarStackData(points, eachSpacing, series.length, seriesIndex, config, opts, series);
+        for (var _i22 = 0; _i22 < points.length; _i22++) {
+          var _item12 = points[_i22];
+          if (_item12 !== null && _i22 > leftNum && _i22 < rightNum) {
+            context.beginPath();
+            var fillColor = _item12.color || eachSeries.color;
+            var startX = _item12.x0;
+            context.setFillStyle(fillColor);
+            context.moveTo(startX, _item12.y - _item12.width / 2);
+            context.fillRect(startX, _item12.y - _item12.width / 2, _item12.height, _item12.width);
+            context.closePath();
+            context.fill();
+          }
+        };
+        break;}
+
+  });
+
+  if (opts.dataLabel !== false && process === 1) {
+    series.forEach(function (eachSeries, seriesIndex) {
+      var ranges, minRange, maxRange;
+      ranges = [].concat(opts.chartData.xAxisData.ranges);
+      maxRange = ranges.pop();
+      minRange = ranges.shift();
+      var data = eachSeries.data;
+      switch (columnOption.type) {
+        case 'group':
+          var points = getBarDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config, process);
+          points = fixBarData(points, eachSpacing, series.length, seriesIndex, config, opts);
+          drawBarPointText(points, eachSeries, config, context, opts);
+          break;
+        case 'stack':
+          var points = getBarStackDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config, seriesIndex, series, process);
+          drawBarPointText(points, eachSeries, config, context, opts);
+          break;}
+
+    });
+  }
+  return {
+    yAxisPoints: yAxisPoints,
+    calPoints: calPoints,
+    eachSpacing: eachSpacing };
+
+}
+
+function drawCandleDataPoints(series, seriesMA, opts, config, context) {
+  var process = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 1;
+  var candleOption = assign({}, {
+    color: {},
+    average: {} },
+  opts.extra.candle);
+  candleOption.color = assign({}, {
+    upLine: '#f04864',
+    upFill: '#f04864',
+    downLine: '#2fc25b',
+    downFill: '#2fc25b' },
+  candleOption.color);
+  candleOption.average = assign({}, {
+    show: false,
+    name: [],
+    day: [],
+    color: config.color },
+  candleOption.average);
+  opts.extra.candle = candleOption;
+  var xAxisData = opts.chartData.xAxisData,
+  xAxisPoints = xAxisData.xAxisPoints,
+  eachSpacing = xAxisData.eachSpacing;
+  var calPoints = [];
+  context.save();
+  var leftNum = -2;
+  var rightNum = xAxisPoints.length + 2;
+  var leftSpace = 0;
+  var rightSpace = opts.width + eachSpacing;
+  if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {
+    context.translate(opts._scrollDistance_, 0);
+    leftNum = Math.floor(-opts._scrollDistance_ / eachSpacing) - 2;
+    rightNum = leftNum + opts.xAxis.itemCount + 4;
+    leftSpace = -opts._scrollDistance_ - eachSpacing * 2 + opts.area[3];
+    rightSpace = leftSpace + (opts.xAxis.itemCount + 4) * eachSpacing;
+  }
+  //鐢诲潎绾�
+  if (candleOption.average.show || seriesMA) {//Merge pull request !12 from 閭辫吹缈�
+    seriesMA.forEach(function (eachSeries, seriesIndex) {
+      var ranges, minRange, maxRange;
+      ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);
+      minRange = ranges.pop();
+      maxRange = ranges.shift();
+      var data = eachSeries.data;
+      var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);
+      var splitPointList = splitPoints(points, eachSeries);
+      for (var i = 0; i < splitPointList.length; i++) {
+        var _points = splitPointList[i];
+        context.beginPath();
+        context.setStrokeStyle(eachSeries.color);
+        context.setLineWidth(1);
+        if (_points.length === 1) {
+          context.moveTo(_points[0].x, _points[0].y);
+          context.arc(_points[0].x, _points[0].y, 1, 0, 2 * Math.PI);
+        } else {
+          context.moveTo(_points[0].x, _points[0].y);
+          var startPoint = 0;
+          for (var j = 0; j < _points.length; j++) {
+            var item = _points[j];
+            if (startPoint == 0 && item.x > leftSpace) {
+              context.moveTo(item.x, item.y);
+              startPoint = 1;
+            }
+            if (j > 0 && item.x > leftSpace && item.x < rightSpace) {
+              var ctrlPoint = createCurveControlPoints(_points, j - 1);
+              context.bezierCurveTo(ctrlPoint.ctrA.x, ctrlPoint.ctrA.y, ctrlPoint.ctrB.x, ctrlPoint.ctrB.y, item.x,
+              item.y);
+            }
+          }
+          context.moveTo(_points[0].x, _points[0].y);
+        }
+        context.closePath();
+        context.stroke();
+      }
+    });
+  }
+  //鐢籏绾�
+  series.forEach(function (eachSeries, seriesIndex) {
+    var ranges, minRange, maxRange;
+    ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);
+    minRange = ranges.pop();
+    maxRange = ranges.shift();
+    var data = eachSeries.data;
+    var points = getCandleDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);
+    calPoints.push(points);
+    var splitPointList = splitPoints(points, eachSeries);
+    for (var i = 0; i < splitPointList[0].length; i++) {
+      if (i > leftNum && i < rightNum) {
+        var item = splitPointList[0][i];
+        context.beginPath();
+        //濡傛灉涓婃定
+        if (data[i][1] - data[i][0] > 0) {
+          context.setStrokeStyle(candleOption.color.upLine);
+          context.setFillStyle(candleOption.color.upFill);
+          context.setLineWidth(1 * opts.pix);
+          context.moveTo(item[3].x, item[3].y); //椤剁偣
+          context.lineTo(item[1].x, item[1].y); //鏀剁洏涓棿鐐�
+          context.lineTo(item[1].x - eachSpacing / 4, item[1].y); //鏀剁洏宸︿晶鐐�
+          context.lineTo(item[0].x - eachSpacing / 4, item[0].y); //寮�鐩樺乏渚х偣
+          context.lineTo(item[0].x, item[0].y); //寮�鐩樹腑闂寸偣
+          context.lineTo(item[2].x, item[2].y); //搴曠偣
+          context.lineTo(item[0].x, item[0].y); //寮�鐩樹腑闂寸偣
+          context.lineTo(item[0].x + eachSpacing / 4, item[0].y); //寮�鐩樺彸渚х偣
+          context.lineTo(item[1].x + eachSpacing / 4, item[1].y); //鏀剁洏鍙充晶鐐�
+          context.lineTo(item[1].x, item[1].y); //鏀剁洏涓棿鐐�
+          context.moveTo(item[3].x, item[3].y); //椤剁偣
+        } else {
+          context.setStrokeStyle(candleOption.color.downLine);
+          context.setFillStyle(candleOption.color.downFill);
+          context.setLineWidth(1 * opts.pix);
+          context.moveTo(item[3].x, item[3].y); //椤剁偣
+          context.lineTo(item[0].x, item[0].y); //寮�鐩樹腑闂寸偣
+          context.lineTo(item[0].x - eachSpacing / 4, item[0].y); //寮�鐩樺乏渚х偣
+          context.lineTo(item[1].x - eachSpacing / 4, item[1].y); //鏀剁洏宸︿晶鐐�
+          context.lineTo(item[1].x, item[1].y); //鏀剁洏涓棿鐐�
+          context.lineTo(item[2].x, item[2].y); //搴曠偣
+          context.lineTo(item[1].x, item[1].y); //鏀剁洏涓棿鐐�
+          context.lineTo(item[1].x + eachSpacing / 4, item[1].y); //鏀剁洏鍙充晶鐐�
+          context.lineTo(item[0].x + eachSpacing / 4, item[0].y); //寮�鐩樺彸渚х偣
+          context.lineTo(item[0].x, item[0].y); //寮�鐩樹腑闂寸偣
+          context.moveTo(item[3].x, item[3].y); //椤剁偣
+        }
+        context.closePath();
+        context.fill();
+        context.stroke();
+      }
+    }
+  });
+  context.restore();
+  return {
+    xAxisPoints: xAxisPoints,
+    calPoints: calPoints,
+    eachSpacing: eachSpacing };
+
+}
+
+function drawAreaDataPoints(series, opts, config, context) {
+  var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;
+  var areaOption = assign({}, {
+    type: 'straight',
+    opacity: 0.2,
+    addLine: false,
+    width: 2,
+    gradient: false },
+  opts.extra.area);
+  var xAxisData = opts.chartData.xAxisData,
+  xAxisPoints = xAxisData.xAxisPoints,
+  eachSpacing = xAxisData.eachSpacing;
+  var endY = opts.height - opts.area[2];
+  var calPoints = [];
+  context.save();
+  var leftSpace = 0;
+  var rightSpace = opts.width + eachSpacing;
+  if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {
+    context.translate(opts._scrollDistance_, 0);
+    leftSpace = -opts._scrollDistance_ - eachSpacing * 2 + opts.area[3];
+    rightSpace = leftSpace + (opts.xAxis.itemCount + 4) * eachSpacing;
+  }
+  series.forEach(function (eachSeries, seriesIndex) {
+    var ranges, minRange, maxRange;
+    ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);
+    minRange = ranges.pop();
+    maxRange = ranges.shift();
+    var data = eachSeries.data;
+    var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);
+    calPoints.push(points);
+    var splitPointList = splitPoints(points, eachSeries);
+    for (var i = 0; i < splitPointList.length; i++) {
+      var _points2 = splitPointList[i];
+      // 缁樺埗鍖哄煙鏁�
+      context.beginPath();
+      context.setStrokeStyle(hexToRgb(eachSeries.color, areaOption.opacity));
+      if (areaOption.gradient) {
+        var gradient = context.createLinearGradient(0, opts.area[0], 0, opts.height - opts.area[2]);
+        gradient.addColorStop('0', hexToRgb(eachSeries.color, areaOption.opacity));
+        gradient.addColorStop('1.0', hexToRgb("#FFFFFF", 0.1));
+        context.setFillStyle(gradient);
+      } else {
+        context.setFillStyle(hexToRgb(eachSeries.color, areaOption.opacity));
+      }
+      context.setLineWidth(areaOption.width * opts.pix);
+      if (_points2.length > 1) {
+        var firstPoint = _points2[0];
+        var lastPoint = _points2[_points2.length - 1];
+        context.moveTo(firstPoint.x, firstPoint.y);
+        var startPoint = 0;
+        if (areaOption.type === 'curve') {
+          for (var j = 0; j < _points2.length; j++) {
+            var item = _points2[j];
+            if (startPoint == 0 && item.x > leftSpace) {
+              context.moveTo(item.x, item.y);
+              startPoint = 1;
+            }
+            if (j > 0 && item.x > leftSpace && item.x < rightSpace) {
+              var ctrlPoint = createCurveControlPoints(_points2, j - 1);
+              context.bezierCurveTo(ctrlPoint.ctrA.x, ctrlPoint.ctrA.y, ctrlPoint.ctrB.x, ctrlPoint.ctrB.y, item.x, item.y);
+            }
+          };
+        }
+        if (areaOption.type === 'straight') {
+          for (var _j = 0; _j < _points2.length; _j++) {
+            var _item13 = _points2[_j];
+            if (startPoint == 0 && _item13.x > leftSpace) {
+              context.moveTo(_item13.x, _item13.y);
+              startPoint = 1;
+            }
+            if (_j > 0 && _item13.x > leftSpace && _item13.x < rightSpace) {
+              context.lineTo(_item13.x, _item13.y);
+            }
+          };
+        }
+        if (areaOption.type === 'step') {
+          for (var _j2 = 0; _j2 < _points2.length; _j2++) {
+            var _item14 = _points2[_j2];
+            if (startPoint == 0 && _item14.x > leftSpace) {
+              context.moveTo(_item14.x, _item14.y);
+              startPoint = 1;
+            }
+            if (_j2 > 0 && _item14.x > leftSpace && _item14.x < rightSpace) {
+              context.lineTo(_item14.x, _points2[_j2 - 1].y);
+              context.lineTo(_item14.x, _item14.y);
+            }
+          };
+        }
+        context.lineTo(lastPoint.x, endY);
+        context.lineTo(firstPoint.x, endY);
+        context.lineTo(firstPoint.x, firstPoint.y);
+      } else {
+        var _item15 = _points2[0];
+        context.moveTo(_item15.x - eachSpacing / 2, _item15.y);
+        context.lineTo(_item15.x + eachSpacing / 2, _item15.y);
+        context.lineTo(_item15.x + eachSpacing / 2, endY);
+        context.lineTo(_item15.x - eachSpacing / 2, endY);
+        context.moveTo(_item15.x - eachSpacing / 2, _item15.y);
+      }
+      context.closePath();
+      context.fill();
+      //鐢昏繛绾�
+      if (areaOption.addLine) {
+        if (eachSeries.lineType == 'dash') {
+          var dashLength = eachSeries.dashLength ? eachSeries.dashLength : 8;
+          dashLength *= opts.pix;
+          context.setLineDash([dashLength, dashLength]);
+        }
+        context.beginPath();
+        context.setStrokeStyle(eachSeries.color);
+        context.setLineWidth(areaOption.width * opts.pix);
+        if (_points2.length === 1) {
+          context.moveTo(_points2[0].x, _points2[0].y);
+          context.arc(_points2[0].x, _points2[0].y, 1, 0, 2 * Math.PI);
+        } else {
+          context.moveTo(_points2[0].x, _points2[0].y);
+          var _startPoint = 0;
+          if (areaOption.type === 'curve') {
+            for (var _j3 = 0; _j3 < _points2.length; _j3++) {
+              var _item16 = _points2[_j3];
+              if (_startPoint == 0 && _item16.x > leftSpace) {
+                context.moveTo(_item16.x, _item16.y);
+                _startPoint = 1;
+              }
+              if (_j3 > 0 && _item16.x > leftSpace && _item16.x < rightSpace) {
+                var _ctrlPoint = createCurveControlPoints(_points2, _j3 - 1);
+                context.bezierCurveTo(_ctrlPoint.ctrA.x, _ctrlPoint.ctrA.y, _ctrlPoint.ctrB.x, _ctrlPoint.ctrB.y, _item16.x, _item16.y);
+              }
+            };
+          }
+          if (areaOption.type === 'straight') {
+            for (var _j4 = 0; _j4 < _points2.length; _j4++) {
+              var _item17 = _points2[_j4];
+              if (_startPoint == 0 && _item17.x > leftSpace) {
+                context.moveTo(_item17.x, _item17.y);
+                _startPoint = 1;
+              }
+              if (_j4 > 0 && _item17.x > leftSpace && _item17.x < rightSpace) {
+                context.lineTo(_item17.x, _item17.y);
+              }
+            };
+          }
+          if (areaOption.type === 'step') {
+            for (var _j5 = 0; _j5 < _points2.length; _j5++) {
+              var _item18 = _points2[_j5];
+              if (_startPoint == 0 && _item18.x > leftSpace) {
+                context.moveTo(_item18.x, _item18.y);
+                _startPoint = 1;
+              }
+              if (_j5 > 0 && _item18.x > leftSpace && _item18.x < rightSpace) {
+                context.lineTo(_item18.x, _points2[_j5 - 1].y);
+                context.lineTo(_item18.x, _item18.y);
+              }
+            };
+          }
+          context.moveTo(_points2[0].x, _points2[0].y);
+        }
+        context.stroke();
+        context.setLineDash([]);
+      }
+    }
+    //鐢荤偣
+    if (opts.dataPointShape !== false) {
+      drawPointShape(points, eachSeries.color, eachSeries.pointShape, context, opts);
+    }
+  });
+
+  if (opts.dataLabel !== false && process === 1) {
+    series.forEach(function (eachSeries, seriesIndex) {
+      var ranges, minRange, maxRange;
+      ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);
+      minRange = ranges.pop();
+      maxRange = ranges.shift();
+      var data = eachSeries.data;
+      var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);
+      drawPointText(points, eachSeries, config, context, opts);
+    });
+  }
+  context.restore();
+  return {
+    xAxisPoints: xAxisPoints,
+    calPoints: calPoints,
+    eachSpacing: eachSpacing };
+
+}
+
+function drawScatterDataPoints(series, opts, config, context) {
+  var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;
+  var scatterOption = assign({}, {
+    type: 'circle' },
+  opts.extra.scatter);
+  var xAxisData = opts.chartData.xAxisData,
+  xAxisPoints = xAxisData.xAxisPoints,
+  eachSpacing = xAxisData.eachSpacing;
+  var calPoints = [];
+  context.save();
+  var leftSpace = 0;
+  var rightSpace = opts.width + eachSpacing;
+  if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {
+    context.translate(opts._scrollDistance_, 0);
+    leftSpace = -opts._scrollDistance_ - eachSpacing * 2 + opts.area[3];
+    rightSpace = leftSpace + (opts.xAxis.itemCount + 4) * eachSpacing;
+  }
+  series.forEach(function (eachSeries, seriesIndex) {
+    var ranges, minRange, maxRange;
+    ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);
+    minRange = ranges.pop();
+    maxRange = ranges.shift();
+    var data = eachSeries.data;
+    var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);
+    context.beginPath();
+    context.setStrokeStyle(eachSeries.color);
+    context.setFillStyle(eachSeries.color);
+    context.setLineWidth(1 * opts.pix);
+    var shape = eachSeries.pointShape;
+    if (shape === 'diamond') {
+      points.forEach(function (item, index) {
+        if (item !== null) {
+          context.moveTo(item.x, item.y - 4.5);
+          context.lineTo(item.x - 4.5, item.y);
+          context.lineTo(item.x, item.y + 4.5);
+          context.lineTo(item.x + 4.5, item.y);
+          context.lineTo(item.x, item.y - 4.5);
+        }
+      });
+    } else if (shape === 'circle') {
+      points.forEach(function (item, index) {
+        if (item !== null) {
+          context.moveTo(item.x + 2.5 * opts.pix, item.y);
+          context.arc(item.x, item.y, 3 * opts.pix, 0, 2 * Math.PI, false);
+        }
+      });
+    } else if (shape === 'square') {
+      points.forEach(function (item, index) {
+        if (item !== null) {
+          context.moveTo(item.x - 3.5, item.y - 3.5);
+          context.rect(item.x - 3.5, item.y - 3.5, 7, 7);
+        }
+      });
+    } else if (shape === 'triangle') {
+      points.forEach(function (item, index) {
+        if (item !== null) {
+          context.moveTo(item.x, item.y - 4.5);
+          context.lineTo(item.x - 4.5, item.y + 4.5);
+          context.lineTo(item.x + 4.5, item.y + 4.5);
+          context.lineTo(item.x, item.y - 4.5);
+        }
+      });
+    } else if (shape === 'triangle') {
+      return;
+    }
+    context.closePath();
+    context.fill();
+    context.stroke();
+  });
+  if (opts.dataLabel !== false && process === 1) {
+    series.forEach(function (eachSeries, seriesIndex) {
+      var ranges, minRange, maxRange;
+      ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);
+      minRange = ranges.pop();
+      maxRange = ranges.shift();
+      var data = eachSeries.data;
+      var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);
+      drawPointText(points, eachSeries, config, context, opts);
+    });
+  }
+  context.restore();
+  return {
+    xAxisPoints: xAxisPoints,
+    calPoints: calPoints,
+    eachSpacing: eachSpacing };
+
+}
+
+function drawBubbleDataPoints(series, opts, config, context) {
+  var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;
+  var bubbleOption = assign({}, {
+    opacity: 1,
+    border: 2 },
+  opts.extra.bubble);
+  var xAxisData = opts.chartData.xAxisData,
+  xAxisPoints = xAxisData.xAxisPoints,
+  eachSpacing = xAxisData.eachSpacing;
+  var calPoints = [];
+  context.save();
+  var leftSpace = 0;
+  var rightSpace = opts.width + eachSpacing;
+  if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {
+    context.translate(opts._scrollDistance_, 0);
+    leftSpace = -opts._scrollDistance_ - eachSpacing * 2 + opts.area[3];
+    rightSpace = leftSpace + (opts.xAxis.itemCount + 4) * eachSpacing;
+  }
+  series.forEach(function (eachSeries, seriesIndex) {
+    var ranges, minRange, maxRange;
+    ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);
+    minRange = ranges.pop();
+    maxRange = ranges.shift();
+    var data = eachSeries.data;
+    var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);
+    context.beginPath();
+    context.setStrokeStyle(eachSeries.color);
+    context.setLineWidth(bubbleOption.border * opts.pix);
+    context.setFillStyle(hexToRgb(eachSeries.color, bubbleOption.opacity));
+    points.forEach(function (item, index) {
+      context.moveTo(item.x + item.r, item.y);
+      context.arc(item.x, item.y, item.r * opts.pix, 0, 2 * Math.PI, false);
+    });
+    context.closePath();
+    context.fill();
+    context.stroke();
+
+    if (opts.dataLabel !== false && process === 1) {
+      points.forEach(function (item, index) {
+        context.beginPath();
+        var fontSize = eachSeries.textSize * opts.pix || config.fontSize;
+        context.setFontSize(fontSize);
+        context.setFillStyle(eachSeries.textColor || "#FFFFFF");
+        context.setTextAlign('center');
+        context.fillText(String(item.t), item.x, item.y + fontSize / 2);
+        context.closePath();
+        context.stroke();
+        context.setTextAlign('left');
+      });
+    }
+  });
+  context.restore();
+  return {
+    xAxisPoints: xAxisPoints,
+    calPoints: calPoints,
+    eachSpacing: eachSpacing };
+
+}
+
+function drawLineDataPoints(series, opts, config, context) {
+  var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;
+  var lineOption = assign({}, {
+    type: 'straight',
+    width: 2 },
+  opts.extra.line);
+  lineOption.width *= opts.pix;
+  var xAxisData = opts.chartData.xAxisData,
+  xAxisPoints = xAxisData.xAxisPoints,
+  eachSpacing = xAxisData.eachSpacing;
+  var calPoints = [];
+  context.save();
+  var leftSpace = 0;
+  var rightSpace = opts.width + eachSpacing;
+  if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {
+    context.translate(opts._scrollDistance_, 0);
+    leftSpace = -opts._scrollDistance_ - eachSpacing * 2 + opts.area[3];
+    rightSpace = leftSpace + (opts.xAxis.itemCount + 4) * eachSpacing;
+  }
+  series.forEach(function (eachSeries, seriesIndex) {
+    var ranges, minRange, maxRange;
+    ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);
+    minRange = ranges.pop();
+    maxRange = ranges.shift();
+    var data = eachSeries.data;
+    var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);
+    calPoints.push(points);
+    var splitPointList = splitPoints(points, eachSeries);
+    if (eachSeries.lineType == 'dash') {
+      var dashLength = eachSeries.dashLength ? eachSeries.dashLength : 8;
+      dashLength *= opts.pix;
+      context.setLineDash([dashLength, dashLength]);
+    }
+    context.beginPath();
+    context.setStrokeStyle(eachSeries.color);
+    context.setLineWidth(lineOption.width);
+    splitPointList.forEach(function (points, index) {
+      if (points.length === 1) {
+        context.moveTo(points[0].x, points[0].y);
+        context.arc(points[0].x, points[0].y, 1, 0, 2 * Math.PI);
+      } else {
+        context.moveTo(points[0].x, points[0].y);
+        var startPoint = 0;
+        if (lineOption.type === 'curve') {
+          for (var j = 0; j < points.length; j++) {
+            var item = points[j];
+            if (startPoint == 0 && item.x > leftSpace) {
+              context.moveTo(item.x, item.y);
+              startPoint = 1;
+            }
+            if (j > 0 && item.x > leftSpace && item.x < rightSpace) {
+              var ctrlPoint = createCurveControlPoints(points, j - 1);
+              context.bezierCurveTo(ctrlPoint.ctrA.x, ctrlPoint.ctrA.y, ctrlPoint.ctrB.x, ctrlPoint.ctrB.y, item.x, item.y);
+            }
+          };
+        }
+        if (lineOption.type === 'straight') {
+          for (var _j6 = 0; _j6 < points.length; _j6++) {
+            var _item19 = points[_j6];
+            if (startPoint == 0 && _item19.x > leftSpace) {
+              context.moveTo(_item19.x, _item19.y);
+              startPoint = 1;
+            }
+            if (_j6 > 0 && _item19.x > leftSpace && _item19.x < rightSpace) {
+              context.lineTo(_item19.x, _item19.y);
+            }
+          };
+        }
+        if (lineOption.type === 'step') {
+          for (var _j7 = 0; _j7 < points.length; _j7++) {
+            var _item20 = points[_j7];
+            if (startPoint == 0 && _item20.x > leftSpace) {
+              context.moveTo(_item20.x, _item20.y);
+              startPoint = 1;
+            }
+            if (_j7 > 0 && _item20.x > leftSpace && _item20.x < rightSpace) {
+              context.lineTo(_item20.x, points[_j7 - 1].y);
+              context.lineTo(_item20.x, _item20.y);
+            }
+          };
+        }
+        context.moveTo(points[0].x, points[0].y);
+      }
+    });
+    context.stroke();
+    context.setLineDash([]);
+    if (opts.dataPointShape !== false) {
+      drawPointShape(points, eachSeries.color, eachSeries.pointShape, context, opts);
+    }
+  });
+  if (opts.dataLabel !== false && process === 1) {
+    series.forEach(function (eachSeries, seriesIndex) {
+      var ranges, minRange, maxRange;
+      ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);
+      minRange = ranges.pop();
+      maxRange = ranges.shift();
+      var data = eachSeries.data;
+      var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);
+      drawPointText(points, eachSeries, config, context, opts);
+    });
+  }
+  context.restore();
+  return {
+    xAxisPoints: xAxisPoints,
+    calPoints: calPoints,
+    eachSpacing: eachSpacing };
+
+}
+
+function drawMixDataPoints(series, opts, config, context) {
+  var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;
+  var xAxisData = opts.chartData.xAxisData,
+  xAxisPoints = xAxisData.xAxisPoints,
+  eachSpacing = xAxisData.eachSpacing;
+  var columnOption = assign({}, {
+    width: eachSpacing / 2,
+    barBorderCircle: false,
+    barBorderRadius: [],
+    seriesGap: 2,
+    linearType: 'none',
+    linearOpacity: 1,
+    customColor: [],
+    colorStop: 0 },
+  opts.extra.mix.column);
+  var areaOption = assign({}, {
+    opacity: 0.2,
+    gradient: false },
+  opts.extra.mix.area);
+  var lineOption = assign({}, {
+    width: 2 },
+  opts.extra.mix.line);
+  var endY = opts.height - opts.area[2];
+  var calPoints = [];
+  var columnIndex = 0;
+  var columnLength = 0;
+  series.forEach(function (eachSeries, seriesIndex) {
+    if (eachSeries.type == 'column') {
+      columnLength += 1;
+    }
+  });
+  context.save();
+  var leftNum = -2;
+  var rightNum = xAxisPoints.length + 2;
+  var leftSpace = 0;
+  var rightSpace = opts.width + eachSpacing;
+  if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {
+    context.translate(opts._scrollDistance_, 0);
+    leftNum = Math.floor(-opts._scrollDistance_ / eachSpacing) - 2;
+    rightNum = leftNum + opts.xAxis.itemCount + 4;
+    leftSpace = -opts._scrollDistance_ - eachSpacing * 2 + opts.area[3];
+    rightSpace = leftSpace + (opts.xAxis.itemCount + 4) * eachSpacing;
+  }
+  columnOption.customColor = fillCustomColor(columnOption.linearType, columnOption.customColor, series, config);
+  series.forEach(function (eachSeries, seriesIndex) {
+    var ranges, minRange, maxRange;
+    ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);
+    minRange = ranges.pop();
+    maxRange = ranges.shift();
+    var data = eachSeries.data;
+    var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);
+    calPoints.push(points);
+    // 缁樺埗鏌辩姸鏁版嵁鍥�
+    if (eachSeries.type == 'column') {
+      points = fixColumeData(points, eachSpacing, columnLength, columnIndex, config, opts);
+      for (var i = 0; i < points.length; i++) {
+        var item = points[i];
+        if (item !== null && i > leftNum && i < rightNum) {
+          var startX = item.x - item.width / 2;
+          var height = opts.height - item.y - opts.area[2];
+          context.beginPath();
+          var fillColor = item.color || eachSeries.color;
+          var strokeColor = item.color || eachSeries.color;
+          if (columnOption.linearType !== 'none') {
+            var grd = context.createLinearGradient(startX, item.y, startX, opts.height - opts.area[2]);
+            //閫忔槑娓愬彉
+            if (columnOption.linearType == 'opacity') {
+              grd.addColorStop(0, hexToRgb(fillColor, columnOption.linearOpacity));
+              grd.addColorStop(1, hexToRgb(fillColor, 1));
+            } else {
+              grd.addColorStop(0, hexToRgb(columnOption.customColor[eachSeries.linearIndex], columnOption.linearOpacity));
+              grd.addColorStop(columnOption.colorStop, hexToRgb(columnOption.customColor[eachSeries.linearIndex], columnOption.linearOpacity));
+              grd.addColorStop(1, hexToRgb(fillColor, 1));
+            }
+            fillColor = grd;
+          }
+          // 鍦嗚杈规
+          if (columnOption.barBorderRadius && columnOption.barBorderRadius.length === 4 || columnOption.barBorderCircle) {
+            var left = startX;
+            var top = item.y;
+            var width = item.width;
+            var _height5 = opts.height - opts.area[2] - item.y;
+            if (columnOption.barBorderCircle) {
+              columnOption.barBorderRadius = [width / 2, width / 2, 0, 0];
+            }var _columnOption$barBord4 = _slicedToArray(
+            columnOption.barBorderRadius, 4),r0 = _columnOption$barBord4[0],r1 = _columnOption$barBord4[1],r2 = _columnOption$barBord4[2],r3 = _columnOption$barBord4[3];
+            var minRadius = Math.min(width / 2, _height5 / 2);
+            r0 = r0 > minRadius ? minRadius : r0;
+            r1 = r1 > minRadius ? minRadius : r1;
+            r2 = r2 > minRadius ? minRadius : r2;
+            r3 = r3 > minRadius ? minRadius : r3;
+            r0 = r0 < 0 ? 0 : r0;
+            r1 = r1 < 0 ? 0 : r1;
+            r2 = r2 < 0 ? 0 : r2;
+            r3 = r3 < 0 ? 0 : r3;
+            context.arc(left + r0, top + r0, r0, -Math.PI, -Math.PI / 2);
+            context.arc(left + width - r1, top + r1, r1, -Math.PI / 2, 0);
+            context.arc(left + width - r2, top + _height5 - r2, r2, 0, Math.PI / 2);
+            context.arc(left + r3, top + _height5 - r3, r3, Math.PI / 2, Math.PI);
+          } else {
+            context.moveTo(startX, item.y);
+            context.lineTo(startX + item.width, item.y);
+            context.lineTo(startX + item.width, opts.height - opts.area[2]);
+            context.lineTo(startX, opts.height - opts.area[2]);
+            context.lineTo(startX, item.y);
+            context.setLineWidth(1);
+            context.setStrokeStyle(strokeColor);
+          }
+          context.setFillStyle(fillColor);
+          context.closePath();
+          context.fill();
+        }
+      }
+      columnIndex += 1;
+    }
+    //缁樺埗鍖哄煙鍥炬暟鎹�
+    if (eachSeries.type == 'area') {
+      var _splitPointList = splitPoints(points, eachSeries);
+      for (var _i23 = 0; _i23 < _splitPointList.length; _i23++) {
+        var _points3 = _splitPointList[_i23];
+        // 缁樺埗鍖哄煙鏁版嵁
+        context.beginPath();
+        context.setStrokeStyle(eachSeries.color);
+        context.setStrokeStyle(hexToRgb(eachSeries.color, areaOption.opacity));
+        if (areaOption.gradient) {
+          var gradient = context.createLinearGradient(0, opts.area[0], 0, opts.height - opts.area[2]);
+          gradient.addColorStop('0', hexToRgb(eachSeries.color, areaOption.opacity));
+          gradient.addColorStop('1.0', hexToRgb("#FFFFFF", 0.1));
+          context.setFillStyle(gradient);
+        } else {
+          context.setFillStyle(hexToRgb(eachSeries.color, areaOption.opacity));
+        }
+        context.setLineWidth(2 * opts.pix);
+        if (_points3.length > 1) {
+          var firstPoint = _points3[0];
+          var lastPoint = _points3[_points3.length - 1];
+          context.moveTo(firstPoint.x, firstPoint.y);
+          var startPoint = 0;
+          if (eachSeries.style === 'curve') {
+            for (var j = 0; j < _points3.length; j++) {
+              var _item21 = _points3[j];
+              if (startPoint == 0 && _item21.x > leftSpace) {
+                context.moveTo(_item21.x, _item21.y);
+                startPoint = 1;
+              }
+              if (j > 0 && _item21.x > leftSpace && _item21.x < rightSpace) {
+                var ctrlPoint = createCurveControlPoints(_points3, j - 1);
+                context.bezierCurveTo(ctrlPoint.ctrA.x, ctrlPoint.ctrA.y, ctrlPoint.ctrB.x, ctrlPoint.ctrB.y, _item21.x, _item21.y);
+              }
+            };
+          } else {
+            for (var _j8 = 0; _j8 < _points3.length; _j8++) {
+              var _item22 = _points3[_j8];
+              if (startPoint == 0 && _item22.x > leftSpace) {
+                context.moveTo(_item22.x, _item22.y);
+                startPoint = 1;
+              }
+              if (_j8 > 0 && _item22.x > leftSpace && _item22.x < rightSpace) {
+                context.lineTo(_item22.x, _item22.y);
+              }
+            };
+          }
+          context.lineTo(lastPoint.x, endY);
+          context.lineTo(firstPoint.x, endY);
+          context.lineTo(firstPoint.x, firstPoint.y);
+        } else {
+          var _item23 = _points3[0];
+          context.moveTo(_item23.x - eachSpacing / 2, _item23.y);
+          context.lineTo(_item23.x + eachSpacing / 2, _item23.y);
+          context.lineTo(_item23.x + eachSpacing / 2, endY);
+          context.lineTo(_item23.x - eachSpacing / 2, endY);
+          context.moveTo(_item23.x - eachSpacing / 2, _item23.y);
+        }
+        context.closePath();
+        context.fill();
+      }
+    }
+    // 缁樺埗鎶樼嚎鏁版嵁鍥�
+    if (eachSeries.type == 'line') {
+      var splitPointList = splitPoints(points, eachSeries);
+      splitPointList.forEach(function (points, index) {
+        if (eachSeries.lineType == 'dash') {
+          var dashLength = eachSeries.dashLength ? eachSeries.dashLength : 8;
+          dashLength *= opts.pix;
+          context.setLineDash([dashLength, dashLength]);
+        }
+        context.beginPath();
+        context.setStrokeStyle(eachSeries.color);
+        context.setLineWidth(lineOption.width * opts.pix);
+        if (points.length === 1) {
+          context.moveTo(points[0].x, points[0].y);
+          context.arc(points[0].x, points[0].y, 1, 0, 2 * Math.PI);
+        } else {
+          context.moveTo(points[0].x, points[0].y);
+          var _startPoint2 = 0;
+          if (eachSeries.style == 'curve') {
+            for (var _j9 = 0; _j9 < points.length; _j9++) {
+              var _item24 = points[_j9];
+              if (_startPoint2 == 0 && _item24.x > leftSpace) {
+                context.moveTo(_item24.x, _item24.y);
+                _startPoint2 = 1;
+              }
+              if (_j9 > 0 && _item24.x > leftSpace && _item24.x < rightSpace) {
+                var ctrlPoint = createCurveControlPoints(points, _j9 - 1);
+                context.bezierCurveTo(ctrlPoint.ctrA.x, ctrlPoint.ctrA.y, ctrlPoint.ctrB.x, ctrlPoint.ctrB.y,
+                _item24.x, _item24.y);
+              }
+            }
+          } else {
+            for (var _j10 = 0; _j10 < points.length; _j10++) {
+              var _item25 = points[_j10];
+              if (_startPoint2 == 0 && _item25.x > leftSpace) {
+                context.moveTo(_item25.x, _item25.y);
+                _startPoint2 = 1;
+              }
+              if (_j10 > 0 && _item25.x > leftSpace && _item25.x < rightSpace) {
+                context.lineTo(_item25.x, _item25.y);
+              }
+            }
+          }
+          context.moveTo(points[0].x, points[0].y);
+        }
+        context.stroke();
+        context.setLineDash([]);
+      });
+    }
+    // 缁樺埗鐐规暟鎹浘
+    if (eachSeries.type == 'point') {
+      eachSeries.addPoint = true;
+    }
+    if (eachSeries.addPoint == true && eachSeries.type !== 'column') {
+      drawPointShape(points, eachSeries.color, eachSeries.pointShape, context, opts);
+    }
+  });
+  if (opts.dataLabel !== false && process === 1) {
+    var columnIndex = 0;
+    series.forEach(function (eachSeries, seriesIndex) {
+      var ranges, minRange, maxRange;
+      ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);
+      minRange = ranges.pop();
+      maxRange = ranges.shift();
+      var data = eachSeries.data;
+      var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);
+      if (eachSeries.type !== 'column') {
+        drawPointText(points, eachSeries, config, context, opts);
+      } else {
+        points = fixColumeData(points, eachSpacing, columnLength, columnIndex, config, opts);
+        drawPointText(points, eachSeries, config, context, opts);
+        columnIndex += 1;
+      }
+    });
+  }
+  context.restore();
+  return {
+    xAxisPoints: xAxisPoints,
+    calPoints: calPoints,
+    eachSpacing: eachSpacing };
+
+}
+
+
+function drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints) {
+  var toolTipOption = opts.extra.tooltip || {};
+  if (toolTipOption.horizentalLine && opts.tooltip && process === 1 && (opts.type == 'line' || opts.type == 'area' || opts.type == 'column' || opts.type == 'mount' || opts.type == 'candle' || opts.type == 'mix')) {
+    drawToolTipHorizentalLine(opts, config, context, eachSpacing, xAxisPoints);
+  }
+  context.save();
+  if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {
+    context.translate(opts._scrollDistance_, 0);
+  }
+  if (opts.tooltip && opts.tooltip.textList && opts.tooltip.textList.length && process === 1) {
+    drawToolTip(opts.tooltip.textList, opts.tooltip.offset, opts, config, context, eachSpacing, xAxisPoints);
+  }
+  context.restore();
+
+}
+
+function drawXAxis(categories, opts, config, context) {
+
+  var xAxisData = opts.chartData.xAxisData,
+  xAxisPoints = xAxisData.xAxisPoints,
+  startX = xAxisData.startX,
+  endX = xAxisData.endX,
+  eachSpacing = xAxisData.eachSpacing;
+  var boundaryGap = 'center';
+  if (opts.type == 'bar' || opts.type == 'line' || opts.type == 'area' || opts.type == 'scatter' || opts.type == 'bubble') {
+    boundaryGap = opts.xAxis.boundaryGap;
+  }
+  var startY = opts.height - opts.area[2];
+  var endY = opts.area[0];
+
+  //缁樺埗婊氬姩鏉�
+  if (opts.enableScroll && opts.xAxis.scrollShow) {
+    var scrollY = opts.height - opts.area[2] + config.xAxisHeight;
+    var scrollScreenWidth = endX - startX;
+    var scrollTotalWidth = eachSpacing * (xAxisPoints.length - 1);
+    if (opts.type == 'mount' && opts.extra && opts.extra.mount && opts.extra.mount.widthRatio && opts.extra.mount.widthRatio > 1) {
+      if (opts.extra.mount.widthRatio > 2) opts.extra.mount.widthRatio = 2;
+      scrollTotalWidth += (opts.extra.mount.widthRatio - 1) * eachSpacing;
+    }
+    var scrollWidth = scrollScreenWidth * scrollScreenWidth / scrollTotalWidth;
+    var scrollLeft = 0;
+    if (opts._scrollDistance_) {
+      scrollLeft = -opts._scrollDistance_ * scrollScreenWidth / scrollTotalWidth;
+    }
+    context.beginPath();
+    context.setLineCap('round');
+    context.setLineWidth(6 * opts.pix);
+    context.setStrokeStyle(opts.xAxis.scrollBackgroundColor || "#EFEBEF");
+    context.moveTo(startX, scrollY);
+    context.lineTo(endX, scrollY);
+    context.stroke();
+    context.closePath();
+    context.beginPath();
+    context.setLineCap('round');
+    context.setLineWidth(6 * opts.pix);
+    context.setStrokeStyle(opts.xAxis.scrollColor || "#A6A6A6");
+    context.moveTo(startX + scrollLeft, scrollY);
+    context.lineTo(startX + scrollLeft + scrollWidth, scrollY);
+    context.stroke();
+    context.closePath();
+    context.setLineCap('butt');
+  }
+  context.save();
+  if (opts._scrollDistance_ && opts._scrollDistance_ !== 0) {
+    context.translate(opts._scrollDistance_, 0);
+  }
+  //缁樺埗X杞村埢搴︾嚎
+  if (opts.xAxis.calibration === true) {
+    context.setStrokeStyle(opts.xAxis.gridColor || "#cccccc");
+    context.setLineCap('butt');
+    context.setLineWidth(1 * opts.pix);
+    xAxisPoints.forEach(function (item, index) {
+      if (index > 0) {
+        context.beginPath();
+        context.moveTo(item - eachSpacing / 2, startY);
+        context.lineTo(item - eachSpacing / 2, startY + 3 * opts.pix);
+        context.closePath();
+        context.stroke();
+      }
+    });
+  }
+  //缁樺埗X杞寸綉鏍�
+  if (opts.xAxis.disableGrid !== true) {
+    context.setStrokeStyle(opts.xAxis.gridColor || "#cccccc");
+    context.setLineCap('butt');
+    context.setLineWidth(1 * opts.pix);
+    if (opts.xAxis.gridType == 'dash') {
+      context.setLineDash([opts.xAxis.dashLength * opts.pix, opts.xAxis.dashLength * opts.pix]);
+    }
+    opts.xAxis.gridEval = opts.xAxis.gridEval || 1;
+    xAxisPoints.forEach(function (item, index) {
+      if (index % opts.xAxis.gridEval == 0) {
+        context.beginPath();
+        context.moveTo(item, startY);
+        context.lineTo(item, endY);
+        context.stroke();
+      }
+    });
+    context.setLineDash([]);
+  }
+  //缁樺埗X杞存枃妗�
+  if (opts.xAxis.disabled !== true) {
+    // 瀵筙杞村垪琛ㄥ仛鎶界█澶勭悊
+    //榛樿鍏ㄩ儴鏄剧ずX杞存爣绛�
+    var maxXAxisListLength = categories.length;
+    //濡傛灉璁剧疆浜哫杞村崟灞忔暟閲�
+    if (opts.xAxis.labelCount) {
+      //濡傛灉璁剧疆X杞村瘑搴�
+      if (opts.xAxis.itemCount) {
+        maxXAxisListLength = Math.ceil(categories.length / opts.xAxis.itemCount * opts.xAxis.labelCount);
+      } else {
+        maxXAxisListLength = opts.xAxis.labelCount;
+      }
+      maxXAxisListLength -= 1;
+    }
+
+    var ratio = Math.ceil(categories.length / maxXAxisListLength);
+
+    var newCategories = [];
+    var cgLength = categories.length;
+    for (var i = 0; i < cgLength; i++) {
+      if (i % ratio !== 0) {
+        newCategories.push("");
+      } else {
+        newCategories.push(categories[i]);
+      }
+    }
+    newCategories[cgLength - 1] = categories[cgLength - 1];
+    var xAxisFontSize = opts.xAxis.fontSize * opts.pix || config.fontSize;
+    if (config._xAxisTextAngle_ === 0) {
+      newCategories.forEach(function (item, index) {
+        var xitem = opts.xAxis.formatter ? opts.xAxis.formatter(item, index, opts) : item;
+        var offset = -measureText(String(xitem), xAxisFontSize, context) / 2;
+        if (boundaryGap == 'center') {
+          offset += eachSpacing / 2;
+        }
+        var scrollHeight = 0;
+        if (opts.xAxis.scrollShow) {
+          scrollHeight = 6 * opts.pix;
+        }
+        // 濡傛灉鍦ㄤ富瑙嗗浘鍖哄煙鍐�
+        var _scrollDistance_ = opts._scrollDistance_ || 0;
+        var truePoints = boundaryGap == 'center' ? xAxisPoints[index] + eachSpacing / 2 : xAxisPoints[index];
+        if (truePoints - Math.abs(_scrollDistance_) >= opts.area[3] && truePoints - Math.abs(_scrollDistance_) <= opts.width - opts.area[1]) {
+          context.beginPath();
+          context.setFontSize(xAxisFontSize);
+          context.setFillStyle(opts.xAxis.fontColor || opts.fontColor);
+          context.fillText(String(xitem), xAxisPoints[index] + offset, startY + xAxisFontSize + (config.xAxisHeight - scrollHeight - xAxisFontSize) / 2);
+          context.closePath();
+          context.stroke();
+        }
+      });
+    } else {
+      newCategories.forEach(function (item, index) {
+        var xitem = opts.xAxis.formatter ? opts.xAxis.formatter(item) : item;
+        // 濡傛灉鍦ㄤ富瑙嗗浘鍖哄煙鍐�
+        var _scrollDistance_ = opts._scrollDistance_ || 0;
+        var truePoints = boundaryGap == 'center' ? xAxisPoints[index] + eachSpacing / 2 : xAxisPoints[index];
+        if (truePoints - Math.abs(_scrollDistance_) >= opts.area[3] && truePoints - Math.abs(_scrollDistance_) <= opts.width - opts.area[1]) {
+          context.save();
+          context.beginPath();
+          context.setFontSize(xAxisFontSize);
+          context.setFillStyle(opts.xAxis.fontColor || opts.fontColor);
+          var textWidth = measureText(String(xitem), xAxisFontSize, context);
+          var offsetX = xAxisPoints[index];
+          if (boundaryGap == 'center') {
+            offsetX = xAxisPoints[index] + eachSpacing / 2;
+          }
+          var scrollHeight = 0;
+          if (opts.xAxis.scrollShow) {
+            scrollHeight = 6 * opts.pix;
+          }
+          var offsetY = startY + 6 * opts.pix + xAxisFontSize - xAxisFontSize * Math.abs(Math.sin(config._xAxisTextAngle_));
+          if (opts.xAxis.rotateAngle < 0) {
+            offsetX -= xAxisFontSize / 2;
+            textWidth = 0;
+          } else {
+            offsetX += xAxisFontSize / 2;
+            textWidth = -textWidth;
+          }
+          context.translate(offsetX, offsetY);
+          context.rotate(-1 * config._xAxisTextAngle_);
+          context.fillText(String(xitem), textWidth, 0);
+          context.closePath();
+          context.stroke();
+          context.restore();
+        }
+      });
+    }
+  }
+  context.restore();
+  //缁樺埗X杞磋酱绾�
+  if (opts.xAxis.axisLine) {
+    context.beginPath();
+    context.setStrokeStyle(opts.xAxis.axisLineColor);
+    context.setLineWidth(1 * opts.pix);
+    context.moveTo(startX, opts.height - opts.area[2]);
+    context.lineTo(endX, opts.height - opts.area[2]);
+    context.stroke();
+  }
+}
+
+function drawYAxisGrid(categories, opts, config, context) {
+  if (opts.yAxis.disableGrid === true) {
+    return;
+  }
+  var spacingValid = opts.height - opts.area[0] - opts.area[2];
+  var eachSpacing = spacingValid / opts.yAxis.splitNumber;
+  var startX = opts.area[3];
+  var xAxisPoints = opts.chartData.xAxisData.xAxisPoints,
+  xAxiseachSpacing = opts.chartData.xAxisData.eachSpacing;
+  var TotalWidth = xAxiseachSpacing * (xAxisPoints.length - 1);
+  if (opts.type == 'mount' && opts.extra && opts.extra.mount && opts.extra.mount.widthRatio && opts.extra.mount.widthRatio > 1) {
+    if (opts.extra.mount.widthRatio > 2) opts.extra.mount.widthRatio = 2;
+    TotalWidth += (opts.extra.mount.widthRatio - 1) * xAxiseachSpacing;
+  }
+  var endX = startX + TotalWidth;
+  var points = [];
+  var startY = 1;
+  if (opts.xAxis.axisLine === false) {
+    startY = 0;
+  }
+  for (var i = startY; i < opts.yAxis.splitNumber + 1; i++) {
+    points.push(opts.height - opts.area[2] - eachSpacing * i);
+  }
+  context.save();
+  if (opts._scrollDistance_ && opts._scrollDistance_ !== 0) {
+    context.translate(opts._scrollDistance_, 0);
+  }
+  if (opts.yAxis.gridType == 'dash') {
+    context.setLineDash([opts.yAxis.dashLength * opts.pix, opts.yAxis.dashLength * opts.pix]);
+  }
+  context.setStrokeStyle(opts.yAxis.gridColor);
+  context.setLineWidth(1 * opts.pix);
+  points.forEach(function (item, index) {
+    context.beginPath();
+    context.moveTo(startX, item);
+    context.lineTo(endX, item);
+    context.stroke();
+  });
+  context.setLineDash([]);
+  context.restore();
+}
+
+function drawYAxis(series, opts, config, context) {
+  if (opts.yAxis.disabled === true) {
+    return;
+  }
+  var spacingValid = opts.height - opts.area[0] - opts.area[2];
+  var eachSpacing = spacingValid / opts.yAxis.splitNumber;
+  var startX = opts.area[3];
+  var endX = opts.width - opts.area[1];
+  var endY = opts.height - opts.area[2];
+  // set YAxis background
+  context.beginPath();
+  context.setFillStyle(opts.background);
+  if (opts.enableScroll == true && opts.xAxis.scrollPosition && opts.xAxis.scrollPosition !== 'left') {
+    context.fillRect(0, 0, startX, endY + 2 * opts.pix);
+  }
+  if (opts.enableScroll == true && opts.xAxis.scrollPosition && opts.xAxis.scrollPosition !== 'right') {
+    context.fillRect(endX, 0, opts.width, endY + 2 * opts.pix);
+  }
+  context.closePath();
+  context.stroke();
+
+  var tStartLeft = opts.area[3];
+  var tStartRight = opts.width - opts.area[1];
+  var tStartCenter = opts.area[3] + (opts.width - opts.area[1] - opts.area[3]) / 2;
+  if (opts.yAxis.data) {var _loop4 = function _loop4(
+    i) {
+      var yData = opts.yAxis.data[i];
+      points = [];
+      if (yData.type === 'categories') {
+        for (var _i24 = 0; _i24 <= yData.categories.length; _i24++) {
+          points.push(opts.area[0] + spacingValid / yData.categories.length / 2 + spacingValid / yData.categories.length * _i24);
+        }
+      } else {
+        for (var _i25 = 0; _i25 <= opts.yAxis.splitNumber; _i25++) {
+          points.push(opts.area[0] + eachSpacing * _i25);
+        }
+      }
+      if (yData.disabled !== true) {
+        var rangesFormat = opts.chartData.yAxisData.rangesFormat[i];
+        var yAxisFontSize = yData.fontSize ? yData.fontSize * opts.pix : config.fontSize;
+        var yAxisWidth = opts.chartData.yAxisData.yAxisWidth[i];
+        var textAlign = yData.textAlign || "right";
+        //鐢籝杞村埢搴﹀強鏂囨
+        rangesFormat.forEach(function (item, index) {
+          var pos = points[index];
+          context.beginPath();
+          context.setFontSize(yAxisFontSize);
+          context.setLineWidth(1 * opts.pix);
+          context.setStrokeStyle(yData.axisLineColor || '#cccccc');
+          context.setFillStyle(yData.fontColor || opts.fontColor);
+          var tmpstrat = 0;
+          var gapwidth = 4 * opts.pix;
+          if (yAxisWidth.position == 'left') {
+            //鐢诲埢搴︾嚎
+            if (yData.calibration == true) {
+              context.moveTo(tStartLeft, pos);
+              context.lineTo(tStartLeft - 3 * opts.pix, pos);
+              gapwidth += 3 * opts.pix;
+            }
+            //鐢绘枃瀛�
+            switch (textAlign) {
+              case "left":
+                context.setTextAlign('left');
+                tmpstrat = tStartLeft - yAxisWidth.width;
+                break;
+              case "right":
+                context.setTextAlign('right');
+                tmpstrat = tStartLeft - gapwidth;
+                break;
+              default:
+                context.setTextAlign('center');
+                tmpstrat = tStartLeft - yAxisWidth.width / 2;}
+
+            context.fillText(String(item), tmpstrat, pos + yAxisFontSize / 2 - 3 * opts.pix);
+
+          } else if (yAxisWidth.position == 'right') {
+            //鐢诲埢搴︾嚎
+            if (yData.calibration == true) {
+              context.moveTo(tStartRight, pos);
+              context.lineTo(tStartRight + 3 * opts.pix, pos);
+              gapwidth += 3 * opts.pix;
+            }
+            switch (textAlign) {
+              case "left":
+                context.setTextAlign('left');
+                tmpstrat = tStartRight + gapwidth;
+                break;
+              case "right":
+                context.setTextAlign('right');
+                tmpstrat = tStartRight + yAxisWidth.width;
+                break;
+              default:
+                context.setTextAlign('center');
+                tmpstrat = tStartRight + yAxisWidth.width / 2;}
+
+            context.fillText(String(item), tmpstrat, pos + yAxisFontSize / 2 - 3 * opts.pix);
+          } else if (yAxisWidth.position == 'center') {
+            //鐢诲埢搴︾嚎
+            if (yData.calibration == true) {
+              context.moveTo(tStartCenter, pos);
+              context.lineTo(tStartCenter - 3 * opts.pix, pos);
+              gapwidth += 3 * opts.pix;
+            }
+            //鐢绘枃瀛�
+            switch (textAlign) {
+              case "left":
+                context.setTextAlign('left');
+                tmpstrat = tStartCenter - yAxisWidth.width;
+                break;
+              case "right":
+                context.setTextAlign('right');
+                tmpstrat = tStartCenter - gapwidth;
+                break;
+              default:
+                context.setTextAlign('center');
+                tmpstrat = tStartCenter - yAxisWidth.width / 2;}
+
+            context.fillText(String(item), tmpstrat, pos + yAxisFontSize / 2 - 3 * opts.pix);
+          }
+          context.closePath();
+          context.stroke();
+          context.setTextAlign('left');
+        });
+        //鐢籝杞磋酱绾�
+        if (yData.axisLine !== false) {
+          context.beginPath();
+          context.setStrokeStyle(yData.axisLineColor || '#cccccc');
+          context.setLineWidth(1 * opts.pix);
+          if (yAxisWidth.position == 'left') {
+            context.moveTo(tStartLeft, opts.height - opts.area[2]);
+            context.lineTo(tStartLeft, opts.area[0]);
+          } else if (yAxisWidth.position == 'right') {
+            context.moveTo(tStartRight, opts.height - opts.area[2]);
+            context.lineTo(tStartRight, opts.area[0]);
+          } else if (yAxisWidth.position == 'center') {
+            context.moveTo(tStartCenter, opts.height - opts.area[2]);
+            context.lineTo(tStartCenter, opts.area[0]);
+          }
+          context.stroke();
+        }
+        //鐢籝杞存爣棰�
+        if (opts.yAxis.showTitle) {
+          var titleFontSize = yData.titleFontSize * opts.pix || config.fontSize;
+          var title = yData.title;
+          context.beginPath();
+          context.setFontSize(titleFontSize);
+          context.setFillStyle(yData.titleFontColor || opts.fontColor);
+          if (yAxisWidth.position == 'left') {
+            context.fillText(title, tStartLeft - measureText(title, titleFontSize, context) / 2 + (yData.titleOffsetX || 0), opts.area[0] - (10 - (yData.titleOffsetY || 0)) * opts.pix);
+          } else if (yAxisWidth.position == 'right') {
+            context.fillText(title, tStartRight - measureText(title, titleFontSize, context) / 2 + (yData.titleOffsetX || 0), opts.area[0] - (10 - (yData.titleOffsetY || 0)) * opts.pix);
+          } else if (yAxisWidth.position == 'center') {
+            context.fillText(title, tStartCenter - measureText(title, titleFontSize, context) / 2 + (yData.titleOffsetX || 0), opts.area[0] - (10 - (yData.titleOffsetY || 0)) * opts.pix);
+          }
+          context.closePath();
+          context.stroke();
+        }
+        if (yAxisWidth.position == 'left') {
+          tStartLeft -= yAxisWidth.width + opts.yAxis.padding * opts.pix;
+        } else {
+          tStartRight += yAxisWidth.width + opts.yAxis.padding * opts.pix;
+        }
+      }};for (var i = 0; i < opts.yAxis.data.length; i++) {var points;_loop4(i);
+    }
+  }
+
+}
+
+function drawLegend(series, opts, config, context, chartData) {
+  if (opts.legend.show === false) {
+    return;
+  }
+  var legendData = chartData.legendData;
+  var legendList = legendData.points;
+  var legendArea = legendData.area;
+  var padding = opts.legend.padding * opts.pix;
+  var fontSize = opts.legend.fontSize * opts.pix;
+  var shapeWidth = 15 * opts.pix;
+  var shapeRight = 5 * opts.pix;
+  var itemGap = opts.legend.itemGap * opts.pix;
+  var lineHeight = Math.max(opts.legend.lineHeight * opts.pix, fontSize);
+  //鐢昏儗鏅強杈规
+  context.beginPath();
+  context.setLineWidth(opts.legend.borderWidth * opts.pix);
+  context.setStrokeStyle(opts.legend.borderColor);
+  context.setFillStyle(opts.legend.backgroundColor);
+  context.moveTo(legendArea.start.x, legendArea.start.y);
+  context.rect(legendArea.start.x, legendArea.start.y, legendArea.width, legendArea.height);
+  context.closePath();
+  context.fill();
+  context.stroke();
+  legendList.forEach(function (itemList, listIndex) {
+    var width = 0;
+    var height = 0;
+    width = legendData.widthArr[listIndex];
+    height = legendData.heightArr[listIndex];
+    var startX = 0;
+    var startY = 0;
+    if (opts.legend.position == 'top' || opts.legend.position == 'bottom') {
+      switch (opts.legend.float) {
+        case 'left':
+          startX = legendArea.start.x + padding;
+          break;
+        case 'right':
+          startX = legendArea.start.x + legendArea.width - width;
+          break;
+        default:
+          startX = legendArea.start.x + (legendArea.width - width) / 2;}
+
+      startY = legendArea.start.y + padding + listIndex * lineHeight;
+    } else {
+      if (listIndex == 0) {
+        width = 0;
+      } else {
+        width = legendData.widthArr[listIndex - 1];
+      }
+      startX = legendArea.start.x + padding + width;
+      startY = legendArea.start.y + padding + (legendArea.height - height) / 2;
+    }
+    context.setFontSize(config.fontSize);
+    for (var i = 0; i < itemList.length; i++) {
+      var item = itemList[i];
+      item.area = [0, 0, 0, 0];
+      item.area[0] = startX;
+      item.area[1] = startY;
+      item.area[3] = startY + lineHeight;
+      context.beginPath();
+      context.setLineWidth(1 * opts.pix);
+      context.setStrokeStyle(item.show ? item.color : opts.legend.hiddenColor);
+      context.setFillStyle(item.show ? item.color : opts.legend.hiddenColor);
+      switch (item.legendShape) {
+        case 'line':
+          context.moveTo(startX, startY + 0.5 * lineHeight - 2 * opts.pix);
+          context.fillRect(startX, startY + 0.5 * lineHeight - 2 * opts.pix, 15 * opts.pix, 4 * opts.pix);
+          break;
+        case 'triangle':
+          context.moveTo(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight - 5 * opts.pix);
+          context.lineTo(startX + 2.5 * opts.pix, startY + 0.5 * lineHeight + 5 * opts.pix);
+          context.lineTo(startX + 12.5 * opts.pix, startY + 0.5 * lineHeight + 5 * opts.pix);
+          context.lineTo(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight - 5 * opts.pix);
+          break;
+        case 'diamond':
+          context.moveTo(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight - 5 * opts.pix);
+          context.lineTo(startX + 2.5 * opts.pix, startY + 0.5 * lineHeight);
+          context.lineTo(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight + 5 * opts.pix);
+          context.lineTo(startX + 12.5 * opts.pix, startY + 0.5 * lineHeight);
+          context.lineTo(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight - 5 * opts.pix);
+          break;
+        case 'circle':
+          context.moveTo(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight);
+          context.arc(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight, 5 * opts.pix, 0, 2 * Math.PI);
+          break;
+        case 'rect':
+          context.moveTo(startX, startY + 0.5 * lineHeight - 5 * opts.pix);
+          context.fillRect(startX, startY + 0.5 * lineHeight - 5 * opts.pix, 15 * opts.pix, 10 * opts.pix);
+          break;
+        case 'square':
+          context.moveTo(startX + 5 * opts.pix, startY + 0.5 * lineHeight - 5 * opts.pix);
+          context.fillRect(startX + 5 * opts.pix, startY + 0.5 * lineHeight - 5 * opts.pix, 10 * opts.pix, 10 * opts.pix);
+          break;
+        case 'none':
+          break;
+        default:
+          context.moveTo(startX, startY + 0.5 * lineHeight - 5 * opts.pix);
+          context.fillRect(startX, startY + 0.5 * lineHeight - 5 * opts.pix, 15 * opts.pix, 10 * opts.pix);}
+
+      context.closePath();
+      context.fill();
+      context.stroke();
+      startX += shapeWidth + shapeRight;
+      var fontTrans = 0.5 * lineHeight + 0.5 * fontSize - 2;
+      var legendText = item.legendText ? item.legendText : item.name;
+      context.beginPath();
+      context.setFontSize(fontSize);
+      context.setFillStyle(item.show ? opts.legend.fontColor : opts.legend.hiddenColor);
+      context.fillText(legendText, startX, startY + fontTrans);
+      context.closePath();
+      context.stroke();
+      if (opts.legend.position == 'top' || opts.legend.position == 'bottom') {
+        startX += measureText(legendText, fontSize, context) + itemGap;
+        item.area[2] = startX;
+      } else {
+        item.area[2] = startX + measureText(legendText, fontSize, context) + itemGap;;
+        startX -= shapeWidth + shapeRight;
+        startY += lineHeight;
+      }
+    }
+  });
+}
+
+function drawPieDataPoints(series, opts, config, context) {
+  var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;
+  var pieOption = assign({}, {
+    activeOpacity: 0.5,
+    activeRadius: 10,
+    offsetAngle: 0,
+    labelWidth: 15,
+    ringWidth: 30,
+    customRadius: 0,
+    border: false,
+    borderWidth: 2,
+    borderColor: '#FFFFFF',
+    centerColor: '#FFFFFF',
+    linearType: 'none',
+    customColor: [] },
+  opts.type == "pie" ? opts.extra.pie : opts.extra.ring);
+  var centerPosition = {
+    x: opts.area[3] + (opts.width - opts.area[1] - opts.area[3]) / 2,
+    y: opts.area[0] + (opts.height - opts.area[0] - opts.area[2]) / 2 };
+
+  if (config.pieChartLinePadding == 0) {
+    config.pieChartLinePadding = pieOption.activeRadius * opts.pix;
+  }
+
+  var radius = Math.min((opts.width - opts.area[1] - opts.area[3]) / 2 - config.pieChartLinePadding - config.pieChartTextPadding - config._pieTextMaxLength_, (opts.height - opts.area[0] - opts.area[2]) / 2 - config.pieChartLinePadding - config.pieChartTextPadding);
+  radius = radius < 10 ? 10 : radius;
+  if (pieOption.customRadius > 0) {
+    radius = pieOption.customRadius * opts.pix;
+  }
+  series = getPieDataPoints(series, radius, process);
+  var activeRadius = pieOption.activeRadius * opts.pix;
+  pieOption.customColor = fillCustomColor(pieOption.linearType, pieOption.customColor, series, config);
+  series = series.map(function (eachSeries) {
+    eachSeries._start_ += pieOption.offsetAngle * Math.PI / 180;
+    return eachSeries;
+  });
+  series.forEach(function (eachSeries, seriesIndex) {
+    if (opts.tooltip) {
+      if (opts.tooltip.index == seriesIndex) {
+        context.beginPath();
+        context.setFillStyle(hexToRgb(eachSeries.color, pieOption.activeOpacity || 0.5));
+        context.moveTo(centerPosition.x, centerPosition.y);
+        context.arc(centerPosition.x, centerPosition.y, eachSeries._radius_ + activeRadius, eachSeries._start_, eachSeries._start_ + 2 * eachSeries._proportion_ * Math.PI);
+        context.closePath();
+        context.fill();
+      }
+    }
+    context.beginPath();
+    context.setLineWidth(pieOption.borderWidth * opts.pix);
+    context.lineJoin = "round";
+    context.setStrokeStyle(pieOption.borderColor);
+    var fillcolor = eachSeries.color;
+    if (pieOption.linearType == 'custom') {
+      var grd;
+      if (context.createCircularGradient) {
+        grd = context.createCircularGradient(centerPosition.x, centerPosition.y, eachSeries._radius_);
+      } else {
+        grd = context.createRadialGradient(centerPosition.x, centerPosition.y, 0, centerPosition.x, centerPosition.y, eachSeries._radius_);
+      }
+      grd.addColorStop(0, hexToRgb(pieOption.customColor[eachSeries.linearIndex], 1));
+      grd.addColorStop(1, hexToRgb(eachSeries.color, 1));
+      fillcolor = grd;
+    }
+    context.setFillStyle(fillcolor);
+    context.moveTo(centerPosition.x, centerPosition.y);
+    context.arc(centerPosition.x, centerPosition.y, eachSeries._radius_, eachSeries._start_, eachSeries._start_ + 2 * eachSeries._proportion_ * Math.PI);
+    context.closePath();
+    context.fill();
+    if (pieOption.border == true) {
+      context.stroke();
+    }
+  });
+  if (opts.type === 'ring') {
+    var innerPieWidth = radius * 0.6;
+    if (typeof pieOption.ringWidth === 'number' && pieOption.ringWidth > 0) {
+      innerPieWidth = Math.max(0, radius - pieOption.ringWidth * opts.pix);
+    }
+    context.beginPath();
+    context.setFillStyle(pieOption.centerColor);
+    context.moveTo(centerPosition.x, centerPosition.y);
+    context.arc(centerPosition.x, centerPosition.y, innerPieWidth, 0, 2 * Math.PI);
+    context.closePath();
+    context.fill();
+  }
+  if (opts.dataLabel !== false && process === 1) {
+    drawPieText(series, opts, config, context, radius, centerPosition);
+  }
+  if (process === 1 && opts.type === 'ring') {
+    drawRingTitle(opts, config, context, centerPosition);
+  }
+  return {
+    center: centerPosition,
+    radius: radius,
+    series: series };
+
+}
+
+function drawRoseDataPoints(series, opts, config, context) {
+  var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;
+  var roseOption = assign({}, {
+    type: 'area',
+    activeOpacity: 0.5,
+    activeRadius: 10,
+    offsetAngle: 0,
+    labelWidth: 15,
+    border: false,
+    borderWidth: 2,
+    borderColor: '#FFFFFF',
+    linearType: 'none',
+    customColor: [] },
+  opts.extra.rose);
+  if (config.pieChartLinePadding == 0) {
+    config.pieChartLinePadding = roseOption.activeRadius * opts.pix;
+  }
+  var centerPosition = {
+    x: opts.area[3] + (opts.width - opts.area[1] - opts.area[3]) / 2,
+    y: opts.area[0] + (opts.height - opts.area[0] - opts.area[2]) / 2 };
+
+  var radius = Math.min((opts.width - opts.area[1] - opts.area[3]) / 2 - config.pieChartLinePadding - config.pieChartTextPadding - config._pieTextMaxLength_, (opts.height - opts.area[0] - opts.area[2]) / 2 - config.pieChartLinePadding - config.pieChartTextPadding);
+  radius = radius < 10 ? 10 : radius;
+  var minRadius = roseOption.minRadius || radius * 0.5;
+  series = getRoseDataPoints(series, roseOption.type, minRadius, radius, process);
+  var activeRadius = roseOption.activeRadius * opts.pix;
+  roseOption.customColor = fillCustomColor(roseOption.linearType, roseOption.customColor, series, config);
+  series = series.map(function (eachSeries) {
+    eachSeries._start_ += (roseOption.offsetAngle || 0) * Math.PI / 180;
+    return eachSeries;
+  });
+  series.forEach(function (eachSeries, seriesIndex) {
+    if (opts.tooltip) {
+      if (opts.tooltip.index == seriesIndex) {
+        context.beginPath();
+        context.setFillStyle(hexToRgb(eachSeries.color, roseOption.activeOpacity || 0.5));
+        context.moveTo(centerPosition.x, centerPosition.y);
+        context.arc(centerPosition.x, centerPosition.y, activeRadius + eachSeries._radius_, eachSeries._start_, eachSeries._start_ + 2 * eachSeries._rose_proportion_ * Math.PI);
+        context.closePath();
+        context.fill();
+      }
+    }
+    context.beginPath();
+    context.setLineWidth(roseOption.borderWidth * opts.pix);
+    context.lineJoin = "round";
+    context.setStrokeStyle(roseOption.borderColor);
+    var fillcolor = eachSeries.color;
+    if (roseOption.linearType == 'custom') {
+      var grd;
+      if (context.createCircularGradient) {
+        grd = context.createCircularGradient(centerPosition.x, centerPosition.y, eachSeries._radius_);
+      } else {
+        grd = context.createRadialGradient(centerPosition.x, centerPosition.y, 0, centerPosition.x, centerPosition.y, eachSeries._radius_);
+      }
+      grd.addColorStop(0, hexToRgb(roseOption.customColor[eachSeries.linearIndex], 1));
+      grd.addColorStop(1, hexToRgb(eachSeries.color, 1));
+      fillcolor = grd;
+    }
+    context.setFillStyle(fillcolor);
+    context.moveTo(centerPosition.x, centerPosition.y);
+    context.arc(centerPosition.x, centerPosition.y, eachSeries._radius_, eachSeries._start_, eachSeries._start_ + 2 * eachSeries._rose_proportion_ * Math.PI);
+    context.closePath();
+    context.fill();
+    if (roseOption.border == true) {
+      context.stroke();
+    }
+  });
+
+  if (opts.dataLabel !== false && process === 1) {
+    drawPieText(series, opts, config, context, radius, centerPosition);
+  }
+  return {
+    center: centerPosition,
+    radius: radius,
+    series: series };
+
+}
+
+function drawArcbarDataPoints(series, opts, config, context) {
+  var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;
+  var arcbarOption = assign({}, {
+    startAngle: 0.75,
+    endAngle: 0.25,
+    type: 'default',
+    direction: 'cw',
+    lineCap: 'round',
+    width: 12,
+    gap: 2,
+    linearType: 'none',
+    customColor: [] },
+  opts.extra.arcbar);
+  series = getArcbarDataPoints(series, arcbarOption, process);
+  var centerPosition;
+  if (arcbarOption.centerX || arcbarOption.centerY) {
+    centerPosition = {
+      x: arcbarOption.centerX ? arcbarOption.centerX : opts.width / 2,
+      y: arcbarOption.centerY ? arcbarOption.centerY : opts.height / 2 };
+
+  } else {
+    centerPosition = {
+      x: opts.width / 2,
+      y: opts.height / 2 };
+
+  }
+  var radius;
+  if (arcbarOption.radius) {
+    radius = arcbarOption.radius;
+  } else {
+    radius = Math.min(centerPosition.x, centerPosition.y);
+    radius -= 5 * opts.pix;
+    radius -= arcbarOption.width / 2;
+  }
+  radius = radius < 10 ? 10 : radius;
+  arcbarOption.customColor = fillCustomColor(arcbarOption.linearType, arcbarOption.customColor, series, config);
+
+  for (var i = 0; i < series.length; i++) {
+    var eachSeries = series[i];
+    //鑳屾櫙棰滆壊
+    context.setLineWidth(arcbarOption.width * opts.pix);
+    context.setStrokeStyle(arcbarOption.backgroundColor || '#E9E9E9');
+    context.setLineCap(arcbarOption.lineCap);
+    context.beginPath();
+    if (arcbarOption.type == 'default') {
+      context.arc(centerPosition.x, centerPosition.y, radius - (arcbarOption.width * opts.pix + arcbarOption.gap * opts.pix) * i, arcbarOption.startAngle * Math.PI, arcbarOption.endAngle * Math.PI, arcbarOption.direction == 'ccw');
+    } else {
+      context.arc(centerPosition.x, centerPosition.y, radius - (arcbarOption.width * opts.pix + arcbarOption.gap * opts.pix) * i, 0, 2 * Math.PI, arcbarOption.direction == 'ccw');
+    }
+    context.stroke();
+    //杩涘害鏉�
+    var fillColor = eachSeries.color;
+    if (arcbarOption.linearType == 'custom') {
+      var grd = context.createLinearGradient(centerPosition.x - radius, centerPosition.y, centerPosition.x + radius, centerPosition.y);
+      grd.addColorStop(1, hexToRgb(arcbarOption.customColor[eachSeries.linearIndex], 1));
+      grd.addColorStop(0, hexToRgb(eachSeries.color, 1));
+      fillColor = grd;
+    }
+    context.setLineWidth(arcbarOption.width * opts.pix);
+    context.setStrokeStyle(fillColor);
+    context.setLineCap(arcbarOption.lineCap);
+    context.beginPath();
+    context.arc(centerPosition.x, centerPosition.y, radius - (arcbarOption.width * opts.pix + arcbarOption.gap * opts.pix) * i, arcbarOption.startAngle * Math.PI, eachSeries._proportion_ * Math.PI, arcbarOption.direction == 'ccw');
+    context.stroke();
+  }
+  drawRingTitle(opts, config, context, centerPosition);
+  return {
+    center: centerPosition,
+    radius: radius,
+    series: series };
+
+}
+
+function drawGaugeDataPoints(categories, series, opts, config, context) {
+  var process = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 1;
+  var gaugeOption = assign({}, {
+    type: 'default',
+    startAngle: 0.75,
+    endAngle: 0.25,
+    width: 15,
+    labelOffset: 13,
+    splitLine: {
+      fixRadius: 0,
+      splitNumber: 10,
+      width: 15,
+      color: '#FFFFFF',
+      childNumber: 5,
+      childWidth: 5 },
+
+    pointer: {
+      width: 15,
+      color: 'auto' } },
+
+  opts.extra.gauge);
+  if (gaugeOption.oldAngle == undefined) {
+    gaugeOption.oldAngle = gaugeOption.startAngle;
+  }
+  if (gaugeOption.oldData == undefined) {
+    gaugeOption.oldData = 0;
+  }
+  categories = getGaugeAxisPoints(categories, gaugeOption.startAngle, gaugeOption.endAngle);
+  var centerPosition = {
+    x: opts.width / 2,
+    y: opts.height / 2 };
+
+  var radius = Math.min(centerPosition.x, centerPosition.y);
+  radius -= 5 * opts.pix;
+  radius -= gaugeOption.width / 2;
+  radius = radius < 10 ? 10 : radius;
+  var innerRadius = radius - gaugeOption.width;
+  var totalAngle = 0;
+  //鍒ゆ柇浠〃鐩樼殑鏍峰紡锛歞efault鐧惧害鏍峰紡锛宲rogress鏂版牱寮�
+  if (gaugeOption.type == 'progress') {
+    //## 绗竴姝ョ敾涓績鍦嗗舰鑳屾櫙鍜岃繘搴︽潯鑳屾櫙
+    //涓績鍦嗗舰鑳屾櫙
+    var pieRadius = radius - gaugeOption.width * 3;
+    context.beginPath();
+    var gradient = context.createLinearGradient(centerPosition.x, centerPosition.y - pieRadius, centerPosition.x, centerPosition.y + pieRadius);
+    //閰嶇疆娓愬彉濉厖锛堣捣鐐癸細涓績鐐瑰悜涓婂噺鍗婂緞锛涚粨鏉熺偣涓績鐐瑰悜涓嬪姞鍗婂緞锛�
+    gradient.addColorStop('0', hexToRgb(series[0].color, 0.3));
+    gradient.addColorStop('1.0', hexToRgb("#FFFFFF", 0.1));
+    context.setFillStyle(gradient);
+    context.arc(centerPosition.x, centerPosition.y, pieRadius, 0, 2 * Math.PI, false);
+    context.fill();
+    //鐢昏繘搴︽潯鑳屾櫙
+    context.setLineWidth(gaugeOption.width);
+    context.setStrokeStyle(hexToRgb(series[0].color, 0.3));
+    context.setLineCap('round');
+    context.beginPath();
+    context.arc(centerPosition.x, centerPosition.y, innerRadius, gaugeOption.startAngle * Math.PI, gaugeOption.endAngle * Math.PI, false);
+    context.stroke();
+    //## 绗簩姝ョ敾鍒诲害绾�
+    totalAngle = gaugeOption.startAngle - gaugeOption.endAngle + 1;
+    var splitAngle = totalAngle / gaugeOption.splitLine.splitNumber;
+    var childAngle = totalAngle / gaugeOption.splitLine.splitNumber / gaugeOption.splitLine.childNumber;
+    var startX = -radius - gaugeOption.width * 0.5 - gaugeOption.splitLine.fixRadius;
+    var endX = -radius - gaugeOption.width - gaugeOption.splitLine.fixRadius + gaugeOption.splitLine.width;
+    context.save();
+    context.translate(centerPosition.x, centerPosition.y);
+    context.rotate((gaugeOption.startAngle - 1) * Math.PI);
+    var len = gaugeOption.splitLine.splitNumber * gaugeOption.splitLine.childNumber + 1;
+    var proc = series[0].data * process;
+    for (var i = 0; i < len; i++) {
+      context.beginPath();
+      //鍒诲害绾块殢杩涘害鍙樿壊
+      if (proc > i / len) {
+        context.setStrokeStyle(hexToRgb(series[0].color, 1));
+      } else {
+        context.setStrokeStyle(hexToRgb(series[0].color, 0.3));
+      }
+      context.setLineWidth(3 * opts.pix);
+      context.moveTo(startX, 0);
+      context.lineTo(endX, 0);
+      context.stroke();
+      context.rotate(childAngle * Math.PI);
+    }
+    context.restore();
+    //## 绗笁姝ョ敾杩涘害鏉�
+    series = getGaugeArcbarDataPoints(series, gaugeOption, process);
+    context.setLineWidth(gaugeOption.width);
+    context.setStrokeStyle(series[0].color);
+    context.setLineCap('round');
+    context.beginPath();
+    context.arc(centerPosition.x, centerPosition.y, innerRadius, gaugeOption.startAngle * Math.PI, series[0]._proportion_ * Math.PI, false);
+    context.stroke();
+    //## 绗洓姝ョ敾鎸囬拡
+    var pointerRadius = radius - gaugeOption.width * 2.5;
+    context.save();
+    context.translate(centerPosition.x, centerPosition.y);
+    context.rotate((series[0]._proportion_ - 1) * Math.PI);
+    context.beginPath();
+    context.setLineWidth(gaugeOption.width / 3);
+    var gradient3 = context.createLinearGradient(0, -pointerRadius * 0.6, 0, pointerRadius * 0.6);
+    gradient3.addColorStop('0', hexToRgb('#FFFFFF', 0));
+    gradient3.addColorStop('0.5', hexToRgb(series[0].color, 1));
+    gradient3.addColorStop('1.0', hexToRgb('#FFFFFF', 0));
+    context.setStrokeStyle(gradient3);
+    context.arc(0, 0, pointerRadius, 0.85 * Math.PI, 1.15 * Math.PI, false);
+    context.stroke();
+    context.beginPath();
+    context.setLineWidth(1);
+    context.setStrokeStyle(series[0].color);
+    context.setFillStyle(series[0].color);
+    context.moveTo(-pointerRadius - gaugeOption.width / 3 / 2, -4);
+    context.lineTo(-pointerRadius - gaugeOption.width / 3 / 2 - 4, 0);
+    context.lineTo(-pointerRadius - gaugeOption.width / 3 / 2, 4);
+    context.lineTo(-pointerRadius - gaugeOption.width / 3 / 2, -4);
+    context.stroke();
+    context.fill();
+    context.restore();
+    //default鐧惧害鏍峰紡
+  } else {
+    //鐢昏儗鏅�
+    context.setLineWidth(gaugeOption.width);
+    context.setLineCap('butt');
+    for (var _i26 = 0; _i26 < categories.length; _i26++) {
+      var eachCategories = categories[_i26];
+      context.beginPath();
+      context.setStrokeStyle(eachCategories.color);
+      context.arc(centerPosition.x, centerPosition.y, radius, eachCategories._startAngle_ * Math.PI, eachCategories._endAngle_ * Math.PI, false);
+      context.stroke();
+    }
+    context.save();
+    //鐢诲埢搴︾嚎
+    totalAngle = gaugeOption.startAngle - gaugeOption.endAngle + 1;
+    var _splitAngle = totalAngle / gaugeOption.splitLine.splitNumber;
+    var _childAngle = totalAngle / gaugeOption.splitLine.splitNumber / gaugeOption.splitLine.childNumber;
+    var _startX2 = -radius - gaugeOption.width * 0.5 - gaugeOption.splitLine.fixRadius;
+    var _endX = -radius - gaugeOption.width * 0.5 - gaugeOption.splitLine.fixRadius + gaugeOption.splitLine.width;
+    var childendX = -radius - gaugeOption.width * 0.5 - gaugeOption.splitLine.fixRadius + gaugeOption.splitLine.childWidth;
+    context.translate(centerPosition.x, centerPosition.y);
+    context.rotate((gaugeOption.startAngle - 1) * Math.PI);
+    for (var _i27 = 0; _i27 < gaugeOption.splitLine.splitNumber + 1; _i27++) {
+      context.beginPath();
+      context.setStrokeStyle(gaugeOption.splitLine.color);
+      context.setLineWidth(2 * opts.pix);
+      context.moveTo(_startX2, 0);
+      context.lineTo(_endX, 0);
+      context.stroke();
+      context.rotate(_splitAngle * Math.PI);
+    }
+    context.restore();
+    context.save();
+    context.translate(centerPosition.x, centerPosition.y);
+    context.rotate((gaugeOption.startAngle - 1) * Math.PI);
+    for (var _i28 = 0; _i28 < gaugeOption.splitLine.splitNumber * gaugeOption.splitLine.childNumber + 1; _i28++) {
+      context.beginPath();
+      context.setStrokeStyle(gaugeOption.splitLine.color);
+      context.setLineWidth(1 * opts.pix);
+      context.moveTo(_startX2, 0);
+      context.lineTo(childendX, 0);
+      context.stroke();
+      context.rotate(_childAngle * Math.PI);
+    }
+    context.restore();
+    //鐢绘寚閽�
+    series = getGaugeDataPoints(series, categories, gaugeOption, process);
+    for (var _i29 = 0; _i29 < series.length; _i29++) {
+      var eachSeries = series[_i29];
+      context.save();
+      context.translate(centerPosition.x, centerPosition.y);
+      context.rotate((eachSeries._proportion_ - 1) * Math.PI);
+      context.beginPath();
+      context.setFillStyle(eachSeries.color);
+      context.moveTo(gaugeOption.pointer.width, 0);
+      context.lineTo(0, -gaugeOption.pointer.width / 2);
+      context.lineTo(-innerRadius, 0);
+      context.lineTo(0, gaugeOption.pointer.width / 2);
+      context.lineTo(gaugeOption.pointer.width, 0);
+      context.closePath();
+      context.fill();
+      context.beginPath();
+      context.setFillStyle('#FFFFFF');
+      context.arc(0, 0, gaugeOption.pointer.width / 6, 0, 2 * Math.PI, false);
+      context.fill();
+      context.restore();
+    }
+    if (opts.dataLabel !== false) {
+      drawGaugeLabel(gaugeOption, radius, centerPosition, opts, config, context);
+    }
+  }
+  //鐢讳华琛ㄧ洏鏍囬锛屽壇鏍囬
+  drawRingTitle(opts, config, context, centerPosition);
+  if (process === 1 && opts.type === 'gauge') {
+    opts.extra.gauge.oldAngle = series[0]._proportion_;
+    opts.extra.gauge.oldData = series[0].data;
+  }
+  return {
+    center: centerPosition,
+    radius: radius,
+    innerRadius: innerRadius,
+    categories: categories,
+    totalAngle: totalAngle };
+
+}
+
+function drawRadarDataPoints(series, opts, config, context) {
+  var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;
+  var radarOption = assign({}, {
+    gridColor: '#cccccc',
+    gridType: 'radar',
+    gridEval: 1,
+    axisLabel: false,
+    axisLabelTofix: 0,
+    labelColor: '#666666',
+    labelPointShow: false,
+    labelPointRadius: 3,
+    labelPointColor: '#cccccc',
+    opacity: 0.2,
+    gridCount: 3,
+    border: false,
+    borderWidth: 2,
+    linearType: 'none',
+    customColor: [] },
+  opts.extra.radar);
+  var coordinateAngle = getRadarCoordinateSeries(opts.categories.length);
+  var centerPosition = {
+    x: opts.area[3] + (opts.width - opts.area[1] - opts.area[3]) / 2,
+    y: opts.area[0] + (opts.height - opts.area[0] - opts.area[2]) / 2 };
+
+  var xr = (opts.width - opts.area[1] - opts.area[3]) / 2;
+  var yr = (opts.height - opts.area[0] - opts.area[2]) / 2;
+  var radius = Math.min(xr - (getMaxTextListLength(opts.categories, config.fontSize, context) + config.radarLabelTextMargin), yr - config.radarLabelTextMargin);
+  radius -= config.radarLabelTextMargin * opts.pix;
+  radius = radius < 10 ? 10 : radius;
+  // 鐢诲垎鍓茬嚎
+  context.beginPath();
+  context.setLineWidth(1 * opts.pix);
+  context.setStrokeStyle(radarOption.gridColor);
+  coordinateAngle.forEach(function (angle, index) {
+    var pos = convertCoordinateOrigin(radius * Math.cos(angle), radius * Math.sin(angle), centerPosition);
+    context.moveTo(centerPosition.x, centerPosition.y);
+    if (index % radarOption.gridEval == 0) {
+      context.lineTo(pos.x, pos.y);
+    }
+  });
+  context.stroke();
+  context.closePath();
+
+  // 鐢昏儗鏅綉鏍�
+  var _loop = function _loop(i) {
+    var startPos = {};
+    context.beginPath();
+    context.setLineWidth(1 * opts.pix);
+    context.setStrokeStyle(radarOption.gridColor);
+    if (radarOption.gridType == 'radar') {
+      coordinateAngle.forEach(function (angle, index) {
+        var pos = convertCoordinateOrigin(radius / radarOption.gridCount * i * Math.cos(angle), radius /
+        radarOption.gridCount * i * Math.sin(angle), centerPosition);
+        if (index === 0) {
+          startPos = pos;
+          context.moveTo(pos.x, pos.y);
+        } else {
+          context.lineTo(pos.x, pos.y);
+        }
+      });
+      context.lineTo(startPos.x, startPos.y);
+    } else {
+      var pos = convertCoordinateOrigin(radius / radarOption.gridCount * i * Math.cos(1.5), radius / radarOption.gridCount * i * Math.sin(1.5), centerPosition);
+      context.arc(centerPosition.x, centerPosition.y, centerPosition.y - pos.y, 0, 2 * Math.PI, false);
+    }
+    context.stroke();
+    context.closePath();
+  };
+  for (var i = 1; i <= radarOption.gridCount; i++) {
+    _loop(i);
+  }
+  radarOption.customColor = fillCustomColor(radarOption.linearType, radarOption.customColor, series, config);
+  var radarDataPoints = getRadarDataPoints(coordinateAngle, centerPosition, radius, series, opts, process);
+  radarDataPoints.forEach(function (eachSeries, seriesIndex) {
+    // 缁樺埗鍖哄煙鏁版嵁
+    context.beginPath();
+    context.setLineWidth(radarOption.borderWidth * opts.pix);
+    context.setStrokeStyle(eachSeries.color);
+
+    var fillcolor = hexToRgb(eachSeries.color, radarOption.opacity);
+    if (radarOption.linearType == 'custom') {
+      var grd;
+      if (context.createCircularGradient) {
+        grd = context.createCircularGradient(centerPosition.x, centerPosition.y, radius);
+      } else {
+        grd = context.createRadialGradient(centerPosition.x, centerPosition.y, 0, centerPosition.x, centerPosition.y, radius);
+      }
+      grd.addColorStop(0, hexToRgb(radarOption.customColor[series[seriesIndex].linearIndex], radarOption.opacity));
+      grd.addColorStop(1, hexToRgb(eachSeries.color, radarOption.opacity));
+      fillcolor = grd;
+    }
+
+    context.setFillStyle(fillcolor);
+    eachSeries.data.forEach(function (item, index) {
+      if (index === 0) {
+        context.moveTo(item.position.x, item.position.y);
+      } else {
+        context.lineTo(item.position.x, item.position.y);
+      }
+    });
+    context.closePath();
+    context.fill();
+    if (radarOption.border === true) {
+      context.stroke();
+    }
+    context.closePath();
+    if (opts.dataPointShape !== false) {
+      var points = eachSeries.data.map(function (item) {
+        return item.position;
+      });
+      drawPointShape(points, eachSeries.color, eachSeries.pointShape, context, opts);
+    }
+  });
+  // 鐢诲埢搴﹀��
+  if (radarOption.axisLabel === true) {
+    var maxData = Math.max(radarOption.max, Math.max.apply(null, dataCombine(series)));
+    var stepLength = radius / radarOption.gridCount;
+    var fontSize = opts.fontSize * opts.pix;
+    context.setFontSize(fontSize);
+    context.setFillStyle(opts.fontColor);
+    context.setTextAlign('left');
+    for (var i = 0; i < radarOption.gridCount + 1; i++) {
+      var label = i * maxData / radarOption.gridCount;
+      label = label.toFixed(radarOption.axisLabelTofix);
+      context.fillText(String(label), centerPosition.x + 3 * opts.pix, centerPosition.y - i * stepLength + fontSize / 2);
+    }
+  }
+
+  // draw label text
+  drawRadarLabel(coordinateAngle, radius, centerPosition, opts, config, context);
+
+  // draw dataLabel
+  if (opts.dataLabel !== false && process === 1) {
+    radarDataPoints.forEach(function (eachSeries, seriesIndex) {
+      context.beginPath();
+      var fontSize = eachSeries.textSize * opts.pix || config.fontSize;
+      context.setFontSize(fontSize);
+      context.setFillStyle(eachSeries.textColor || opts.fontColor);
+      eachSeries.data.forEach(function (item, index) {
+        //濡傛灉鏄腑蹇冪偣鍨傜洿鐨勪笂涓嬬偣浣�
+        if (Math.abs(item.position.x - centerPosition.x) < 2) {
+          //濡傛灉鍦ㄤ笂闈�
+          if (item.position.y < centerPosition.y) {
+            context.setTextAlign('center');
+            context.fillText(item.value, item.position.x, item.position.y - 4);
+          } else {
+            context.setTextAlign('center');
+            context.fillText(item.value, item.position.x, item.position.y + fontSize + 2);
+          }
+        } else {
+          //濡傛灉鍦ㄥ乏渚�
+          if (item.position.x < centerPosition.x) {
+            context.setTextAlign('right');
+            context.fillText(item.value, item.position.x - 4, item.position.y + fontSize / 2 - 2);
+          } else {
+            context.setTextAlign('left');
+            context.fillText(item.value, item.position.x + 4, item.position.y + fontSize / 2 - 2);
+          }
+        }
+      });
+      context.closePath();
+      context.stroke();
+    });
+    context.setTextAlign('left');
+  }
+
+  return {
+    center: centerPosition,
+    radius: radius,
+    angleList: coordinateAngle };
+
+}
+
+// 缁忕含搴﹁浆澧ㄥ崱鎵�
+function lonlat2mercator(longitude, latitude) {
+  var mercator = Array(2);
+  var x = longitude * 20037508.34 / 180;
+  var y = Math.log(Math.tan((90 + latitude) * Math.PI / 360)) / (Math.PI / 180);
+  y = y * 20037508.34 / 180;
+  mercator[0] = x;
+  mercator[1] = y;
+  return mercator;
+}
+
+// 澧ㄥ崱鎵樿浆缁忕含搴�
+function mercator2lonlat(longitude, latitude) {
+  var lonlat = Array(2);
+  var x = longitude / 20037508.34 * 180;
+  var y = latitude / 20037508.34 * 180;
+  y = 180 / Math.PI * (2 * Math.atan(Math.exp(y * Math.PI / 180)) - Math.PI / 2);
+  lonlat[0] = x;
+  lonlat[1] = y;
+  return lonlat;
+}
+
+function getBoundingBox(data) {
+  var bounds = {},coords;
+  bounds.xMin = 180;
+  bounds.xMax = 0;
+  bounds.yMin = 90;
+  bounds.yMax = 0;
+  for (var i = 0; i < data.length; i++) {
+    var coorda = data[i].geometry.coordinates;
+    for (var k = 0; k < coorda.length; k++) {
+      coords = coorda[k];
+      if (coords.length == 1) {
+        coords = coords[0];
+      }
+      for (var j = 0; j < coords.length; j++) {
+        var longitude = coords[j][0];
+        var latitude = coords[j][1];
+        var point = {
+          x: longitude,
+          y: latitude };
+
+        bounds.xMin = bounds.xMin < point.x ? bounds.xMin : point.x;
+        bounds.xMax = bounds.xMax > point.x ? bounds.xMax : point.x;
+        bounds.yMin = bounds.yMin < point.y ? bounds.yMin : point.y;
+        bounds.yMax = bounds.yMax > point.y ? bounds.yMax : point.y;
+      }
+    }
+  }
+  return bounds;
+}
+
+function coordinateToPoint(latitude, longitude, bounds, scale, xoffset, yoffset) {
+  return {
+    x: (longitude - bounds.xMin) * scale + xoffset,
+    y: (bounds.yMax - latitude) * scale + yoffset };
+
+}
+
+function pointToCoordinate(pointY, pointX, bounds, scale, xoffset, yoffset) {
+  return {
+    x: (pointX - xoffset) / scale + bounds.xMin,
+    y: bounds.yMax - (pointY - yoffset) / scale };
+
+}
+
+function isRayIntersectsSegment(poi, s_poi, e_poi) {
+  if (s_poi[1] == e_poi[1]) {
+    return false;
+  }
+  if (s_poi[1] > poi[1] && e_poi[1] > poi[1]) {
+    return false;
+  }
+  if (s_poi[1] < poi[1] && e_poi[1] < poi[1]) {
+    return false;
+  }
+  if (s_poi[1] == poi[1] && e_poi[1] > poi[1]) {
+    return false;
+  }
+  if (e_poi[1] == poi[1] && s_poi[1] > poi[1]) {
+    return false;
+  }
+  if (s_poi[0] < poi[0] && e_poi[1] < poi[1]) {
+    return false;
+  }
+  var xseg = e_poi[0] - (e_poi[0] - s_poi[0]) * (e_poi[1] - poi[1]) / (e_poi[1] - s_poi[1]);
+  if (xseg < poi[0]) {
+    return false;
+  } else {
+    return true;
+  }
+}
+
+function isPoiWithinPoly(poi, poly, mercator) {
+  var sinsc = 0;
+  for (var i = 0; i < poly.length; i++) {
+    var epoly = poly[i][0];
+    if (poly.length == 1) {
+      epoly = poly[i][0];
+    }
+    for (var j = 0; j < epoly.length - 1; j++) {
+      var s_poi = epoly[j];
+      var e_poi = epoly[j + 1];
+      if (mercator) {
+        s_poi = lonlat2mercator(epoly[j][0], epoly[j][1]);
+        e_poi = lonlat2mercator(epoly[j + 1][0], epoly[j + 1][1]);
+      }
+      if (isRayIntersectsSegment(poi, s_poi, e_poi)) {
+        sinsc += 1;
+      }
+    }
+  }
+  if (sinsc % 2 == 1) {
+    return true;
+  } else {
+    return false;
+  }
+}
+
+function drawMapDataPoints(series, opts, config, context) {
+  var mapOption = assign({}, {
+    border: true,
+    mercator: false,
+    borderWidth: 1,
+    active: true,
+    borderColor: '#666666',
+    fillOpacity: 0.6,
+    activeBorderColor: '#f04864',
+    activeFillColor: '#facc14',
+    activeFillOpacity: 1 },
+  opts.extra.map);
+  var coords, point;
+  var data = series;
+  var bounds = getBoundingBox(data);
+  if (mapOption.mercator) {
+    var max = lonlat2mercator(bounds.xMax, bounds.yMax);
+    var min = lonlat2mercator(bounds.xMin, bounds.yMin);
+    bounds.xMax = max[0];
+    bounds.yMax = max[1];
+    bounds.xMin = min[0];
+    bounds.yMin = min[1];
+  }
+  var xScale = opts.width / Math.abs(bounds.xMax - bounds.xMin);
+  var yScale = opts.height / Math.abs(bounds.yMax - bounds.yMin);
+  var scale = xScale < yScale ? xScale : yScale;
+  var xoffset = opts.width / 2 - Math.abs(bounds.xMax - bounds.xMin) / 2 * scale;
+  var yoffset = opts.height / 2 - Math.abs(bounds.yMax - bounds.yMin) / 2 * scale;
+  for (var i = 0; i < data.length; i++) {
+    context.beginPath();
+    context.setLineWidth(mapOption.borderWidth * opts.pix);
+    context.setStrokeStyle(mapOption.borderColor);
+    context.setFillStyle(hexToRgb(series[i].color, series[i].fillOpacity || mapOption.fillOpacity));
+    if (mapOption.active == true && opts.tooltip) {
+      if (opts.tooltip.index == i) {
+        context.setStrokeStyle(mapOption.activeBorderColor);
+        context.setFillStyle(hexToRgb(mapOption.activeFillColor, mapOption.activeFillOpacity));
+      }
+    }
+    var coorda = data[i].geometry.coordinates;
+    for (var k = 0; k < coorda.length; k++) {
+      coords = coorda[k];
+      if (coords.length == 1) {
+        coords = coords[0];
+      }
+      for (var j = 0; j < coords.length; j++) {
+        var gaosi = Array(2);
+        if (mapOption.mercator) {
+          gaosi = lonlat2mercator(coords[j][0], coords[j][1]);
+        } else {
+          gaosi = coords[j];
+        }
+        point = coordinateToPoint(gaosi[1], gaosi[0], bounds, scale, xoffset, yoffset);
+        if (j === 0) {
+          context.beginPath();
+          context.moveTo(point.x, point.y);
+        } else {
+          context.lineTo(point.x, point.y);
+        }
+      }
+      context.fill();
+      if (mapOption.border == true) {
+        context.stroke();
+      }
+    }
+  }
+  if (opts.dataLabel == true) {
+    for (var i = 0; i < data.length; i++) {
+      var centerPoint = data[i].properties.centroid;
+      if (centerPoint) {
+        if (mapOption.mercator) {
+          centerPoint = lonlat2mercator(data[i].properties.centroid[0], data[i].properties.centroid[1]);
+        }
+        point = coordinateToPoint(centerPoint[1], centerPoint[0], bounds, scale, xoffset, yoffset);
+        var fontSize = data[i].textSize * opts.pix || config.fontSize;
+        var fontColor = data[i].textColor || opts.fontColor;
+        if (mapOption.active && mapOption.activeTextColor && opts.tooltip && opts.tooltip.index == i) {
+          fontColor = mapOption.activeTextColor;
+        }
+        var text = data[i].properties.name;
+        context.beginPath();
+        context.setFontSize(fontSize);
+        context.setFillStyle(fontColor);
+        context.fillText(text, point.x - measureText(text, fontSize, context) / 2, point.y + fontSize / 2);
+        context.closePath();
+        context.stroke();
+      }
+    }
+  }
+  opts.chartData.mapData = {
+    bounds: bounds,
+    scale: scale,
+    xoffset: xoffset,
+    yoffset: yoffset,
+    mercator: mapOption.mercator };
+
+  drawToolTipBridge(opts, config, context, 1);
+  context.draw();
+}
+
+function normalInt(min, max, iter) {
+  iter = iter == 0 ? 1 : iter;
+  var arr = [];
+  for (var i = 0; i < iter; i++) {
+    arr[i] = Math.random();
+  };
+  return Math.floor(arr.reduce(function (i, j) {
+    return i + j;
+  }) / iter * (max - min)) + min;
+};
+
+function collisionNew(area, points, width, height) {
+  var isIn = false;
+  for (var i = 0; i < points.length; i++) {
+    if (points[i].area) {
+      if (area[3] < points[i].area[1] || area[0] > points[i].area[2] || area[1] > points[i].area[3] || area[2] < points[i].area[0]) {
+        if (area[0] < 0 || area[1] < 0 || area[2] > width || area[3] > height) {
+          isIn = true;
+          break;
+        } else {
+          isIn = false;
+        }
+      } else {
+        isIn = true;
+        break;
+      }
+    }
+  }
+  return isIn;
+};
+
+function getWordCloudPoint(opts, type, context) {
+  var points = opts.series;
+  switch (type) {
+    case 'normal':
+      for (var i = 0; i < points.length; i++) {
+        var text = points[i].name;
+        var tHeight = points[i].textSize * opts.pix;
+        var tWidth = measureText(text, tHeight, context);
+        var x = void 0,y = void 0;
+        var area = void 0;
+        var breaknum = 0;
+        while (true) {
+          breaknum++;
+          x = normalInt(-opts.width / 2, opts.width / 2, 5) - tWidth / 2;
+          y = normalInt(-opts.height / 2, opts.height / 2, 5) + tHeight / 2;
+          area = [x - 5 + opts.width / 2, y - 5 - tHeight + opts.height / 2, x + tWidth + 5 + opts.width / 2, y + 5 +
+          opts.height / 2];
+
+          var isCollision = collisionNew(area, points, opts.width, opts.height);
+          if (!isCollision) break;
+          if (breaknum == 1000) {
+            area = [-100, -100, -100, -100];
+            break;
+          }
+        };
+        points[i].area = area;
+      }
+      break;
+    case 'vertical':var
+      Spin = function Spin() {
+        //鑾峰彇鍧囧寑闅忔満鍊硷紝鏄惁鏃嬭浆锛屾棆杞殑姒傜巼涓猴紙1-0.5锛�
+        if (Math.random() > 0.7) {
+          return true;
+        } else {
+          return false;
+        };
+      };;
+      for (var _i30 = 0; _i30 < points.length; _i30++) {
+        var _text = points[_i30].name;
+        var _tHeight = points[_i30].textSize * opts.pix;
+        var _tWidth = measureText(_text, _tHeight, context);
+        var isSpin = Spin();
+        var _x = void 0,_y = void 0,_area = void 0,areav = void 0;
+        var _breaknum = 0;
+        while (true) {
+          _breaknum++;
+          var _isCollision = void 0;
+          if (isSpin) {
+            _x = normalInt(-opts.width / 2, opts.width / 2, 5) - _tWidth / 2;
+            _y = normalInt(-opts.height / 2, opts.height / 2, 5) + _tHeight / 2;
+            _area = [_y - 5 - _tWidth + opts.width / 2, -_x - 5 + opts.height / 2, _y + 5 + opts.width / 2, -_x + _tHeight + 5 + opts.height / 2];
+            areav = [opts.width - (opts.width / 2 - opts.height / 2) - (-_x + _tHeight + 5 + opts.height / 2) - 5, opts.height / 2 - opts.width / 2 + (_y - 5 - _tWidth + opts.width / 2) - 5, opts.width - (opts.width / 2 - opts.height / 2) - (-_x + _tHeight + 5 + opts.height / 2) + _tHeight, opts.height / 2 - opts.width / 2 + (_y - 5 - _tWidth + opts.width / 2) + _tWidth + 5];
+            _isCollision = collisionNew(areav, points, opts.height, opts.width);
+          } else {
+            _x = normalInt(-opts.width / 2, opts.width / 2, 5) - _tWidth / 2;
+            _y = normalInt(-opts.height / 2, opts.height / 2, 5) + _tHeight / 2;
+            _area = [_x - 5 + opts.width / 2, _y - 5 - _tHeight + opts.height / 2, _x + _tWidth + 5 + opts.width / 2, _y + 5 + opts.height / 2];
+            _isCollision = collisionNew(_area, points, opts.width, opts.height);
+          }
+          if (!_isCollision) break;
+          if (_breaknum == 1000) {
+            _area = [-1000, -1000, -1000, -1000];
+            break;
+          }
+        };
+        if (isSpin) {
+          points[_i30].area = areav;
+          points[_i30].areav = _area;
+        } else {
+          points[_i30].area = _area;
+        }
+        points[_i30].rotate = isSpin;
+      };
+      break;}
+
+  return points;
+}
+
+function drawWordCloudDataPoints(series, opts, config, context) {
+  var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;
+  var wordOption = assign({}, {
+    type: 'normal',
+    autoColors: true },
+  opts.extra.word);
+  if (!opts.chartData.wordCloudData) {
+    opts.chartData.wordCloudData = getWordCloudPoint(opts, wordOption.type, context);
+  }
+  context.beginPath();
+  context.setFillStyle(opts.background);
+  context.rect(0, 0, opts.width, opts.height);
+  context.fill();
+  context.save();
+  var points = opts.chartData.wordCloudData;
+  context.translate(opts.width / 2, opts.height / 2);
+  for (var i = 0; i < points.length; i++) {
+    context.save();
+    if (points[i].rotate) {
+      context.rotate(90 * Math.PI / 180);
+    }
+    var text = points[i].name;
+    var tHeight = points[i].textSize * opts.pix;
+    var tWidth = measureText(text, tHeight, context);
+    context.beginPath();
+    context.setStrokeStyle(points[i].color);
+    context.setFillStyle(points[i].color);
+    context.setFontSize(tHeight);
+    if (points[i].rotate) {
+      if (points[i].areav[0] > 0) {
+        if (opts.tooltip) {
+          if (opts.tooltip.index == i) {
+            context.strokeText(text, (points[i].areav[0] + 5 - opts.width / 2) * process - tWidth * (1 - process) / 2, (points[i].areav[1] + 5 + tHeight - opts.height / 2) * process);
+          } else {
+            context.fillText(text, (points[i].areav[0] + 5 - opts.width / 2) * process - tWidth * (1 - process) / 2, (points[i].areav[1] + 5 + tHeight - opts.height / 2) * process);
+          }
+        } else {
+          context.fillText(text, (points[i].areav[0] + 5 - opts.width / 2) * process - tWidth * (1 - process) / 2, (points[i].areav[1] + 5 + tHeight - opts.height / 2) * process);
+        }
+      }
+    } else {
+      if (points[i].area[0] > 0) {
+        if (opts.tooltip) {
+          if (opts.tooltip.index == i) {
+            context.strokeText(text, (points[i].area[0] + 5 - opts.width / 2) * process - tWidth * (1 - process) / 2, (points[i].area[1] + 5 + tHeight - opts.height / 2) * process);
+          } else {
+            context.fillText(text, (points[i].area[0] + 5 - opts.width / 2) * process - tWidth * (1 - process) / 2, (points[i].area[1] + 5 + tHeight - opts.height / 2) * process);
+          }
+        } else {
+          context.fillText(text, (points[i].area[0] + 5 - opts.width / 2) * process - tWidth * (1 - process) / 2, (points[i].area[1] + 5 + tHeight - opts.height / 2) * process);
+        }
+      }
+    }
+    context.stroke();
+    context.restore();
+  }
+  context.restore();
+}
+
+function drawFunnelDataPoints(series, opts, config, context) {
+  var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;
+  var funnelOption = assign({}, {
+    type: 'funnel',
+    activeWidth: 10,
+    activeOpacity: 0.3,
+    border: false,
+    borderWidth: 2,
+    borderColor: '#FFFFFF',
+    fillOpacity: 1,
+    minSize: 0,
+    labelAlign: 'right',
+    linearType: 'none',
+    customColor: [] },
+  opts.extra.funnel);
+  var eachSpacing = (opts.height - opts.area[0] - opts.area[2]) / series.length;
+  var centerPosition = {
+    x: opts.area[3] + (opts.width - opts.area[1] - opts.area[3]) / 2,
+    y: opts.height - opts.area[2] };
+
+  var activeWidth = funnelOption.activeWidth * opts.pix;
+  var radius = Math.min((opts.width - opts.area[1] - opts.area[3]) / 2 - activeWidth, (opts.height - opts.area[0] - opts.area[2]) / 2 - activeWidth);
+  var seriesNew = getFunnelDataPoints(series, radius, funnelOption, eachSpacing, process);
+  context.save();
+  context.translate(centerPosition.x, centerPosition.y);
+  funnelOption.customColor = fillCustomColor(funnelOption.linearType, funnelOption.customColor, series, config);
+  if (funnelOption.type == 'pyramid') {
+    for (var i = 0; i < seriesNew.length; i++) {
+      if (i == seriesNew.length - 1) {
+        if (opts.tooltip) {
+          if (opts.tooltip.index == i) {
+            context.beginPath();
+            context.setFillStyle(hexToRgb(seriesNew[i].color, funnelOption.activeOpacity));
+            context.moveTo(-activeWidth, -eachSpacing);
+            context.lineTo(-seriesNew[i].radius - activeWidth, 0);
+            context.lineTo(seriesNew[i].radius + activeWidth, 0);
+            context.lineTo(activeWidth, -eachSpacing);
+            context.lineTo(-activeWidth, -eachSpacing);
+            context.closePath();
+            context.fill();
+          }
+        }
+        seriesNew[i].funnelArea = [centerPosition.x - seriesNew[i].radius, centerPosition.y - eachSpacing * (i + 1), centerPosition.x + seriesNew[i].radius, centerPosition.y - eachSpacing * i];
+        context.beginPath();
+        context.setLineWidth(funnelOption.borderWidth * opts.pix);
+        context.setStrokeStyle(funnelOption.borderColor);
+        var fillColor = hexToRgb(seriesNew[i].color, funnelOption.fillOpacity);
+        if (funnelOption.linearType == 'custom') {
+          var grd = context.createLinearGradient(seriesNew[i].radius, -eachSpacing, -seriesNew[i].radius, -eachSpacing);
+          grd.addColorStop(0, hexToRgb(seriesNew[i].color, funnelOption.fillOpacity));
+          grd.addColorStop(0.5, hexToRgb(funnelOption.customColor[seriesNew[i].linearIndex], funnelOption.fillOpacity));
+          grd.addColorStop(1, hexToRgb(seriesNew[i].color, funnelOption.fillOpacity));
+          fillColor = grd;
+        }
+        context.setFillStyle(fillColor);
+        context.moveTo(0, -eachSpacing);
+        context.lineTo(-seriesNew[i].radius, 0);
+        context.lineTo(seriesNew[i].radius, 0);
+        context.lineTo(0, -eachSpacing);
+        context.closePath();
+        context.fill();
+        if (funnelOption.border == true) {
+          context.stroke();
+        }
+      } else {
+        if (opts.tooltip) {
+          if (opts.tooltip.index == i) {
+            context.beginPath();
+            context.setFillStyle(hexToRgb(seriesNew[i].color, funnelOption.activeOpacity));
+            context.moveTo(0, 0);
+            context.lineTo(-seriesNew[i].radius - activeWidth, 0);
+            context.lineTo(-seriesNew[i + 1].radius - activeWidth, -eachSpacing);
+            context.lineTo(seriesNew[i + 1].radius + activeWidth, -eachSpacing);
+            context.lineTo(seriesNew[i].radius + activeWidth, 0);
+            context.lineTo(0, 0);
+            context.closePath();
+            context.fill();
+          }
+        }
+        seriesNew[i].funnelArea = [centerPosition.x - seriesNew[i].radius, centerPosition.y - eachSpacing * (i + 1), centerPosition.x + seriesNew[i].radius, centerPosition.y - eachSpacing * i];
+        context.beginPath();
+        context.setLineWidth(funnelOption.borderWidth * opts.pix);
+        context.setStrokeStyle(funnelOption.borderColor);
+        var fillColor = hexToRgb(seriesNew[i].color, funnelOption.fillOpacity);
+        if (funnelOption.linearType == 'custom') {
+          var grd = context.createLinearGradient(seriesNew[i].radius, -eachSpacing, -seriesNew[i].radius, -eachSpacing);
+          grd.addColorStop(0, hexToRgb(seriesNew[i].color, funnelOption.fillOpacity));
+          grd.addColorStop(0.5, hexToRgb(funnelOption.customColor[seriesNew[i].linearIndex], funnelOption.fillOpacity));
+          grd.addColorStop(1, hexToRgb(seriesNew[i].color, funnelOption.fillOpacity));
+          fillColor = grd;
+        }
+        context.setFillStyle(fillColor);
+        context.moveTo(0, 0);
+        context.lineTo(-seriesNew[i].radius, 0);
+        context.lineTo(-seriesNew[i + 1].radius, -eachSpacing);
+        context.lineTo(seriesNew[i + 1].radius, -eachSpacing);
+        context.lineTo(seriesNew[i].radius, 0);
+        context.lineTo(0, 0);
+        context.closePath();
+        context.fill();
+        if (funnelOption.border == true) {
+          context.stroke();
+        }
+      }
+      context.translate(0, -eachSpacing);
+    }
+  } else {
+    context.translate(0, -(seriesNew.length - 1) * eachSpacing);
+    for (var _i31 = 0; _i31 < seriesNew.length; _i31++) {
+      if (_i31 == seriesNew.length - 1) {
+        if (opts.tooltip) {
+          if (opts.tooltip.index == _i31) {
+            context.beginPath();
+            context.setFillStyle(hexToRgb(seriesNew[_i31].color, funnelOption.activeOpacity));
+            context.moveTo(-activeWidth - funnelOption.minSize / 2, 0);
+            context.lineTo(-seriesNew[_i31].radius - activeWidth, -eachSpacing);
+            context.lineTo(seriesNew[_i31].radius + activeWidth, -eachSpacing);
+            context.lineTo(activeWidth + funnelOption.minSize / 2, 0);
+            context.lineTo(-activeWidth - funnelOption.minSize / 2, 0);
+            context.closePath();
+            context.fill();
+          }
+        }
+        seriesNew[_i31].funnelArea = [centerPosition.x - seriesNew[_i31].radius, centerPosition.y - eachSpacing, centerPosition.x + seriesNew[_i31].radius, centerPosition.y];
+        context.beginPath();
+        context.setLineWidth(funnelOption.borderWidth * opts.pix);
+        context.setStrokeStyle(funnelOption.borderColor);
+        var fillColor = hexToRgb(seriesNew[_i31].color, funnelOption.fillOpacity);
+        if (funnelOption.linearType == 'custom') {
+          var grd = context.createLinearGradient(seriesNew[_i31].radius, -eachSpacing, -seriesNew[_i31].radius, -eachSpacing);
+          grd.addColorStop(0, hexToRgb(seriesNew[_i31].color, funnelOption.fillOpacity));
+          grd.addColorStop(0.5, hexToRgb(funnelOption.customColor[seriesNew[_i31].linearIndex], funnelOption.fillOpacity));
+          grd.addColorStop(1, hexToRgb(seriesNew[_i31].color, funnelOption.fillOpacity));
+          fillColor = grd;
+        }
+        context.setFillStyle(fillColor);
+        context.moveTo(0, 0);
+        context.lineTo(-funnelOption.minSize / 2, 0);
+        context.lineTo(-seriesNew[_i31].radius, -eachSpacing);
+        context.lineTo(seriesNew[_i31].radius, -eachSpacing);
+        context.lineTo(funnelOption.minSize / 2, 0);
+        context.lineTo(0, 0);
+        context.closePath();
+        context.fill();
+        if (funnelOption.border == true) {
+          context.stroke();
+        }
+      } else {
+        if (opts.tooltip) {
+          if (opts.tooltip.index == _i31) {
+            context.beginPath();
+            context.setFillStyle(hexToRgb(seriesNew[_i31].color, funnelOption.activeOpacity));
+            context.moveTo(0, 0);
+            context.lineTo(-seriesNew[_i31 + 1].radius - activeWidth, 0);
+            context.lineTo(-seriesNew[_i31].radius - activeWidth, -eachSpacing);
+            context.lineTo(seriesNew[_i31].radius + activeWidth, -eachSpacing);
+            context.lineTo(seriesNew[_i31 + 1].radius + activeWidth, 0);
+            context.lineTo(0, 0);
+            context.closePath();
+            context.fill();
+          }
+        }
+        seriesNew[_i31].funnelArea = [centerPosition.x - seriesNew[_i31].radius, centerPosition.y - eachSpacing * (seriesNew.length - _i31), centerPosition.x + seriesNew[_i31].radius, centerPosition.y - eachSpacing * (seriesNew.length - _i31 - 1)];
+        context.beginPath();
+        context.setLineWidth(funnelOption.borderWidth * opts.pix);
+        context.setStrokeStyle(funnelOption.borderColor);
+        var fillColor = hexToRgb(seriesNew[_i31].color, funnelOption.fillOpacity);
+        if (funnelOption.linearType == 'custom') {
+          var grd = context.createLinearGradient(seriesNew[_i31].radius, -eachSpacing, -seriesNew[_i31].radius, -eachSpacing);
+          grd.addColorStop(0, hexToRgb(seriesNew[_i31].color, funnelOption.fillOpacity));
+          grd.addColorStop(0.5, hexToRgb(funnelOption.customColor[seriesNew[_i31].linearIndex], funnelOption.fillOpacity));
+          grd.addColorStop(1, hexToRgb(seriesNew[_i31].color, funnelOption.fillOpacity));
+          fillColor = grd;
+        }
+        context.setFillStyle(fillColor);
+        context.moveTo(0, 0);
+        context.lineTo(-seriesNew[_i31 + 1].radius, 0);
+        context.lineTo(-seriesNew[_i31].radius, -eachSpacing);
+        context.lineTo(seriesNew[_i31].radius, -eachSpacing);
+        context.lineTo(seriesNew[_i31 + 1].radius, 0);
+        context.lineTo(0, 0);
+        context.closePath();
+        context.fill();
+        if (funnelOption.border == true) {
+          context.stroke();
+        }
+      }
+      context.translate(0, eachSpacing);
+    }
+  }
+
+  context.restore();
+  if (opts.dataLabel !== false && process === 1) {
+    drawFunnelText(seriesNew, opts, context, eachSpacing, funnelOption.labelAlign, activeWidth, centerPosition);
+  }
+  if (process === 1) {
+    drawFunnelCenterText(seriesNew, opts, context, eachSpacing, funnelOption.labelAlign, activeWidth, centerPosition);
+  }
+  return {
+    center: centerPosition,
+    radius: radius,
+    series: seriesNew };
+
+}
+
+function drawFunnelText(series, opts, context, eachSpacing, labelAlign, activeWidth, centerPosition) {
+  for (var i = 0; i < series.length; i++) {
+    var item = series[i];
+    if (item.labelShow === false) {
+      continue;
+    }
+    var startX = void 0,endX = void 0,startY = void 0,fontSize = void 0;
+    var text = item.formatter ? item.formatter(item, i, series, opts) : util.toFixed(item._proportion_ * 100) + '%';
+    text = item.labelText ? item.labelText : text;
+    if (labelAlign == 'right') {
+      if (i == series.length - 1) {
+        startX = (item.funnelArea[2] + centerPosition.x) / 2;
+      } else {
+        startX = (item.funnelArea[2] + series[i + 1].funnelArea[2]) / 2;
+      }
+      endX = startX + activeWidth * 2;
+      startY = item.funnelArea[1] + eachSpacing / 2;
+      fontSize = item.textSize * opts.pix || opts.fontSize * opts.pix;
+      context.setLineWidth(1 * opts.pix);
+      context.setStrokeStyle(item.color);
+      context.setFillStyle(item.color);
+      context.beginPath();
+      context.moveTo(startX, startY);
+      context.lineTo(endX, startY);
+      context.stroke();
+      context.closePath();
+      context.beginPath();
+      context.moveTo(endX, startY);
+      context.arc(endX, startY, 2 * opts.pix, 0, 2 * Math.PI);
+      context.closePath();
+      context.fill();
+      context.beginPath();
+      context.setFontSize(fontSize);
+      context.setFillStyle(item.textColor || opts.fontColor);
+      context.fillText(text, endX + 5, startY + fontSize / 2 - 2);
+      context.closePath();
+      context.stroke();
+      context.closePath();
+    }
+    if (labelAlign == 'left') {
+      if (i == series.length - 1) {
+        startX = (item.funnelArea[0] + centerPosition.x) / 2;
+      } else {
+        startX = (item.funnelArea[0] + series[i + 1].funnelArea[0]) / 2;
+      }
+      endX = startX - activeWidth * 2;
+      startY = item.funnelArea[1] + eachSpacing / 2;
+      fontSize = item.textSize * opts.pix || opts.fontSize * opts.pix;
+      context.setLineWidth(1 * opts.pix);
+      context.setStrokeStyle(item.color);
+      context.setFillStyle(item.color);
+      context.beginPath();
+      context.moveTo(startX, startY);
+      context.lineTo(endX, startY);
+      context.stroke();
+      context.closePath();
+      context.beginPath();
+      context.moveTo(endX, startY);
+      context.arc(endX, startY, 2, 0, 2 * Math.PI);
+      context.closePath();
+      context.fill();
+      context.beginPath();
+      context.setFontSize(fontSize);
+      context.setFillStyle(item.textColor || opts.fontColor);
+      context.fillText(text, endX - 5 - measureText(text, fontSize, context), startY + fontSize / 2 - 2);
+      context.closePath();
+      context.stroke();
+      context.closePath();
+    }
+  }
+}
+
+function drawFunnelCenterText(series, opts, context, eachSpacing, labelAlign, activeWidth, centerPosition) {
+  for (var i = 0; i < series.length; i++) {
+    var item = series[i];
+    var startY = void 0,fontSize = void 0;
+    if (item.centerText) {
+      startY = item.funnelArea[1] + eachSpacing / 2;
+      fontSize = item.centerTextSize * opts.pix || opts.fontSize * opts.pix;
+      context.beginPath();
+      context.setFontSize(fontSize);
+      context.setFillStyle(item.centerTextColor || "#FFFFFF");
+      context.fillText(item.centerText, centerPosition.x - measureText(item.centerText, fontSize, context) / 2, startY + fontSize / 2 - 2);
+      context.closePath();
+      context.stroke();
+      context.closePath();
+    }
+  }
+}
+
+
+function drawCanvas(opts, context) {
+  context.draw();
+}
+
+var Timing = {
+  easeIn: function easeIn(pos) {
+    return Math.pow(pos, 3);
+  },
+  easeOut: function easeOut(pos) {
+    return Math.pow(pos - 1, 3) + 1;
+  },
+  easeInOut: function easeInOut(pos) {
+    if ((pos /= 0.5) < 1) {
+      return 0.5 * Math.pow(pos, 3);
+    } else {
+      return 0.5 * (Math.pow(pos - 2, 3) + 2);
+    }
+  },
+  linear: function linear(pos) {
+    return pos;
+  } };
+
+
+function Animation(opts) {
+  this.isStop = false;
+  opts.duration = typeof opts.duration === 'undefined' ? 1000 : opts.duration;
+  opts.timing = opts.timing || 'easeInOut';
+  var delay = 17;
+  function createAnimationFrame() {
+    if (typeof setTimeout !== 'undefined') {
+      return function (step, delay) {
+        setTimeout(function () {
+          var timeStamp = +new Date();
+          step(timeStamp);
+        }, delay);
+      };
+    } else if (typeof requestAnimationFrame !== 'undefined') {
+      return requestAnimationFrame;
+    } else {
+      return function (step) {
+        step(null);
+      };
+    }
+  };
+  var animationFrame = createAnimationFrame();
+  var startTimeStamp = null;
+  var _step = function step(timestamp) {
+    if (timestamp === null || this.isStop === true) {
+      opts.onProcess && opts.onProcess(1);
+      opts.onAnimationFinish && opts.onAnimationFinish();
+      return;
+    }
+    if (startTimeStamp === null) {
+      startTimeStamp = timestamp;
+    }
+    if (timestamp - startTimeStamp < opts.duration) {
+      var process = (timestamp - startTimeStamp) / opts.duration;
+      var timingFunction = Timing[opts.timing];
+      process = timingFunction(process);
+      opts.onProcess && opts.onProcess(process);
+      animationFrame(_step, delay);
+    } else {
+      opts.onProcess && opts.onProcess(1);
+      opts.onAnimationFinish && opts.onAnimationFinish();
+    }
+  };
+  _step = _step.bind(this);
+  animationFrame(_step, delay);
+}
+
+Animation.prototype.stop = function () {
+  this.isStop = true;
+};
+
+function drawCharts(type, opts, config, context) {var _this2 = this;
+  var _this = this;
+  var series = opts.series;
+  //鍏煎ECharts楗煎浘绫绘暟鎹牸寮�
+  if (type === 'pie' || type === 'ring' || type === 'mount' || type === 'rose' || type === 'funnel') {
+    series = fixPieSeries(series, opts, config);
+  }
+  var categories = opts.categories;
+  if (type === 'mount') {
+    categories = [];
+    for (var j = 0; j < series.length; j++) {
+      if (series[j].show !== false) categories.push(series[j].name);
+    }
+    opts.categories = categories;
+  }
+  series = fillSeries(series, opts, config);
+  var duration = opts.animation ? opts.duration : 0;
+  _this.animationInstance && _this.animationInstance.stop();
+  var seriesMA = null;
+  if (type == 'candle') {
+    var average = assign({}, opts.extra.candle.average);
+    if (average.show) {
+      seriesMA = calCandleMA(average.day, average.name, average.color, series[0].data);
+      seriesMA = fillSeries(seriesMA, opts, config);
+      opts.seriesMA = seriesMA;
+    } else if (opts.seriesMA) {
+      seriesMA = opts.seriesMA = fillSeries(opts.seriesMA, opts, config);
+    } else {
+      seriesMA = series;
+    }
+  } else {
+    seriesMA = series;
+  }
+  /* 杩囨护鎺塻how=false鐨剆eries */
+  opts._series_ = series = filterSeries(series);
+  //閲嶆柊璁$畻鍥捐〃鍖哄煙
+  opts.area = new Array(4);
+  //澶嶄綅缁樺浘鍖哄煙
+  for (var _j11 = 0; _j11 < 4; _j11++) {
+    opts.area[_j11] = opts.padding[_j11] * opts.pix;
+  }
+  //閫氳繃璁$畻涓夊ぇ鍖哄煙锛氬浘渚嬨�乆杞淬�乊杞寸殑澶у皬锛岀‘瀹氱粯鍥惧尯鍩�
+  var _calLegendData = calLegendData(seriesMA, opts, config, opts.chartData, context),
+  legendHeight = _calLegendData.area.wholeHeight,
+  legendWidth = _calLegendData.area.wholeWidth;
+
+  switch (opts.legend.position) {
+    case 'top':
+      opts.area[0] += legendHeight;
+      break;
+    case 'bottom':
+      opts.area[2] += legendHeight;
+      break;
+    case 'left':
+      opts.area[3] += legendWidth;
+      break;
+    case 'right':
+      opts.area[1] += legendWidth;
+      break;}
+
+
+  var _calYAxisData = {},
+  yAxisWidth = 0;
+  if (opts.type === 'line' || opts.type === 'column' || opts.type === 'mount' || opts.type === 'area' || opts.type === 'mix' || opts.type === 'candle' || opts.type === 'scatter' || opts.type === 'bubble' || opts.type === 'bar') {
+    _calYAxisData = calYAxisData(series, opts, config, context);
+    yAxisWidth = _calYAxisData.yAxisWidth;
+    //濡傛灉鏄剧ずY杞存爣棰�
+    if (opts.yAxis.showTitle) {
+      var maxTitleHeight = 0;
+      for (var i = 0; i < opts.yAxis.data.length; i++) {
+        maxTitleHeight = Math.max(maxTitleHeight, opts.yAxis.data[i].titleFontSize ? opts.yAxis.data[i].titleFontSize * opts.pix : config.fontSize);
+      }
+      opts.area[0] += maxTitleHeight;
+    }
+    var rightIndex = 0,
+    leftIndex = 0;
+    //璁$畻涓荤粯鍥惧尯鍩熷乏鍙充綅缃�
+    for (var _i32 = 0; _i32 < yAxisWidth.length; _i32++) {
+      if (yAxisWidth[_i32].position == 'left') {
+        if (leftIndex > 0) {
+          opts.area[3] += yAxisWidth[_i32].width + opts.yAxis.padding * opts.pix;
+        } else {
+          opts.area[3] += yAxisWidth[_i32].width;
+        }
+        leftIndex += 1;
+      } else if (yAxisWidth[_i32].position == 'right') {
+        if (rightIndex > 0) {
+          opts.area[1] += yAxisWidth[_i32].width + opts.yAxis.padding * opts.pix;
+        } else {
+          opts.area[1] += yAxisWidth[_i32].width;
+        }
+        rightIndex += 1;
+      }
+    }
+  } else {
+    config.yAxisWidth = yAxisWidth;
+  }
+  opts.chartData.yAxisData = _calYAxisData;
+
+  if (opts.categories && opts.categories.length && opts.type !== 'radar' && opts.type !== 'gauge' && opts.type !== 'bar') {
+    opts.chartData.xAxisData = getXAxisPoints(opts.categories, opts, config);
+    var _calCategoriesData = calCategoriesData(opts.categories, opts, config, opts.chartData.xAxisData.eachSpacing, context),
+    xAxisHeight = _calCategoriesData.xAxisHeight,
+    angle = _calCategoriesData.angle;
+    config.xAxisHeight = xAxisHeight;
+    config._xAxisTextAngle_ = angle;
+    opts.area[2] += xAxisHeight;
+    opts.chartData.categoriesData = _calCategoriesData;
+  } else {
+    if (opts.type === 'line' || opts.type === 'area' || opts.type === 'scatter' || opts.type === 'bubble' || opts.type === 'bar') {
+      opts.chartData.xAxisData = calXAxisData(series, opts, config, context);
+      categories = opts.chartData.xAxisData.rangesFormat;
+      var _calCategoriesData2 = calCategoriesData(categories, opts, config, opts.chartData.xAxisData.eachSpacing, context),
+      _xAxisHeight = _calCategoriesData2.xAxisHeight,
+      _angle = _calCategoriesData2.angle;
+      config.xAxisHeight = _xAxisHeight;
+      config._xAxisTextAngle_ = _angle;
+      opts.area[2] += _xAxisHeight;
+      opts.chartData.categoriesData = _calCategoriesData2;
+    } else {
+      opts.chartData.xAxisData = {
+        xAxisPoints: [] };
+
+    }
+  }
+
+  //璁$畻鍙冲榻愬亸绉昏窛绂�
+  if (opts.enableScroll && opts.xAxis.scrollAlign == 'right' && opts._scrollDistance_ === undefined) {
+    var offsetLeft = 0,
+    xAxisPoints = opts.chartData.xAxisData.xAxisPoints,
+    startX = opts.chartData.xAxisData.startX,
+    endX = opts.chartData.xAxisData.endX,
+    eachSpacing = opts.chartData.xAxisData.eachSpacing;
+    var totalWidth = eachSpacing * (xAxisPoints.length - 1);
+    var screenWidth = endX - startX;
+    offsetLeft = screenWidth - totalWidth;
+    _this.scrollOption.currentOffset = offsetLeft;
+    _this.scrollOption.startTouchX = offsetLeft;
+    _this.scrollOption.distance = 0;
+    _this.scrollOption.lastMoveTime = 0;
+    opts._scrollDistance_ = offsetLeft;
+  }
+
+  if (type === 'pie' || type === 'ring' || type === 'rose') {
+    config._pieTextMaxLength_ = opts.dataLabel === false ? 0 : getPieTextMaxLength(seriesMA, config, context, opts);
+  }
+
+  switch (type) {
+    case 'word':
+      this.animationInstance = new Animation({
+        timing: opts.timing,
+        duration: duration,
+        onProcess: function onProcess(process) {
+          context.clearRect(0, 0, opts.width, opts.height);
+          if (opts.rotate) {
+            contextRotate(context, opts);
+          }
+          drawWordCloudDataPoints(series, opts, config, context, process);
+          drawCanvas(opts, context);
+        },
+        onAnimationFinish: function onAnimationFinish() {
+          _this.uevent.trigger('renderComplete');
+        } });
+
+      break;
+    case 'map':
+      context.clearRect(0, 0, opts.width, opts.height);
+      drawMapDataPoints(series, opts, config, context);
+      setTimeout(function () {
+        _this2.uevent.trigger('renderComplete');
+      }, 50);
+      break;
+    case 'funnel':
+      this.animationInstance = new Animation({
+        timing: opts.timing,
+        duration: duration,
+        onProcess: function onProcess(process) {
+          context.clearRect(0, 0, opts.width, opts.height);
+          if (opts.rotate) {
+            contextRotate(context, opts);
+          }
+          opts.chartData.funnelData = drawFunnelDataPoints(series, opts, config, context, process);
+          drawLegend(opts.series, opts, config, context, opts.chartData);
+          drawToolTipBridge(opts, config, context, process);
+          drawCanvas(opts, context);
+        },
+        onAnimationFinish: function onAnimationFinish() {
+          _this.uevent.trigger('renderComplete');
+        } });
+
+      break;
+    case 'line':
+      this.animationInstance = new Animation({
+        timing: opts.timing,
+        duration: duration,
+        onProcess: function onProcess(process) {
+          context.clearRect(0, 0, opts.width, opts.height);
+          if (opts.rotate) {
+            contextRotate(context, opts);
+          }
+          drawYAxisGrid(categories, opts, config, context);
+          drawXAxis(categories, opts, config, context);
+          var _drawLineDataPoints = drawLineDataPoints(series, opts, config, context, process),
+          xAxisPoints = _drawLineDataPoints.xAxisPoints,
+          calPoints = _drawLineDataPoints.calPoints,
+          eachSpacing = _drawLineDataPoints.eachSpacing;
+          opts.chartData.xAxisPoints = xAxisPoints;
+          opts.chartData.calPoints = calPoints;
+          opts.chartData.eachSpacing = eachSpacing;
+          drawYAxis(series, opts, config, context);
+          if (opts.enableMarkLine !== false && process === 1) {
+            drawMarkLine(opts, config, context);
+          }
+          drawLegend(opts.series, opts, config, context, opts.chartData);
+          drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);
+          drawCanvas(opts, context);
+        },
+        onAnimationFinish: function onAnimationFinish() {
+          _this.uevent.trigger('renderComplete');
+        } });
+
+      break;
+    case 'scatter':
+      this.animationInstance = new Animation({
+        timing: opts.timing,
+        duration: duration,
+        onProcess: function onProcess(process) {
+          context.clearRect(0, 0, opts.width, opts.height);
+          if (opts.rotate) {
+            contextRotate(context, opts);
+          }
+          drawYAxisGrid(categories, opts, config, context);
+          drawXAxis(categories, opts, config, context);
+          var _drawScatterDataPoints = drawScatterDataPoints(series, opts, config, context, process),
+          xAxisPoints = _drawScatterDataPoints.xAxisPoints,
+          calPoints = _drawScatterDataPoints.calPoints,
+          eachSpacing = _drawScatterDataPoints.eachSpacing;
+          opts.chartData.xAxisPoints = xAxisPoints;
+          opts.chartData.calPoints = calPoints;
+          opts.chartData.eachSpacing = eachSpacing;
+          drawYAxis(series, opts, config, context);
+          if (opts.enableMarkLine !== false && process === 1) {
+            drawMarkLine(opts, config, context);
+          }
+          drawLegend(opts.series, opts, config, context, opts.chartData);
+          drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);
+          drawCanvas(opts, context);
+        },
+        onAnimationFinish: function onAnimationFinish() {
+          _this.uevent.trigger('renderComplete');
+        } });
+
+      break;
+    case 'bubble':
+      this.animationInstance = new Animation({
+        timing: opts.timing,
+        duration: duration,
+        onProcess: function onProcess(process) {
+          context.clearRect(0, 0, opts.width, opts.height);
+          if (opts.rotate) {
+            contextRotate(context, opts);
+          }
+          drawYAxisGrid(categories, opts, config, context);
+          drawXAxis(categories, opts, config, context);
+          var _drawBubbleDataPoints = drawBubbleDataPoints(series, opts, config, context, process),
+          xAxisPoints = _drawBubbleDataPoints.xAxisPoints,
+          calPoints = _drawBubbleDataPoints.calPoints,
+          eachSpacing = _drawBubbleDataPoints.eachSpacing;
+          opts.chartData.xAxisPoints = xAxisPoints;
+          opts.chartData.calPoints = calPoints;
+          opts.chartData.eachSpacing = eachSpacing;
+          drawYAxis(series, opts, config, context);
+          if (opts.enableMarkLine !== false && process === 1) {
+            drawMarkLine(opts, config, context);
+          }
+          drawLegend(opts.series, opts, config, context, opts.chartData);
+          drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);
+          drawCanvas(opts, context);
+        },
+        onAnimationFinish: function onAnimationFinish() {
+          _this.uevent.trigger('renderComplete');
+        } });
+
+      break;
+    case 'mix':
+      this.animationInstance = new Animation({
+        timing: opts.timing,
+        duration: duration,
+        onProcess: function onProcess(process) {
+          context.clearRect(0, 0, opts.width, opts.height);
+          if (opts.rotate) {
+            contextRotate(context, opts);
+          }
+          drawYAxisGrid(categories, opts, config, context);
+          drawXAxis(categories, opts, config, context);
+          var _drawMixDataPoints = drawMixDataPoints(series, opts, config, context, process),
+          xAxisPoints = _drawMixDataPoints.xAxisPoints,
+          calPoints = _drawMixDataPoints.calPoints,
+          eachSpacing = _drawMixDataPoints.eachSpacing;
+          opts.chartData.xAxisPoints = xAxisPoints;
+          opts.chartData.calPoints = calPoints;
+          opts.chartData.eachSpacing = eachSpacing;
+          drawYAxis(series, opts, config, context);
+          if (opts.enableMarkLine !== false && process === 1) {
+            drawMarkLine(opts, config, context);
+          }
+          drawLegend(opts.series, opts, config, context, opts.chartData);
+          drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);
+          drawCanvas(opts, context);
+        },
+        onAnimationFinish: function onAnimationFinish() {
+          _this.uevent.trigger('renderComplete');
+        } });
+
+      break;
+    case 'column':
+      this.animationInstance = new Animation({
+        timing: opts.timing,
+        duration: duration,
+        onProcess: function onProcess(process) {
+          context.clearRect(0, 0, opts.width, opts.height);
+          if (opts.rotate) {
+            contextRotate(context, opts);
+          }
+          drawYAxisGrid(categories, opts, config, context);
+          drawXAxis(categories, opts, config, context);
+          var _drawColumnDataPoints = drawColumnDataPoints(series, opts, config, context, process),
+          xAxisPoints = _drawColumnDataPoints.xAxisPoints,
+          calPoints = _drawColumnDataPoints.calPoints,
+          eachSpacing = _drawColumnDataPoints.eachSpacing;
+          opts.chartData.xAxisPoints = xAxisPoints;
+          opts.chartData.calPoints = calPoints;
+          opts.chartData.eachSpacing = eachSpacing;
+          drawYAxis(series, opts, config, context);
+          if (opts.enableMarkLine !== false && process === 1) {
+            drawMarkLine(opts, config, context);
+          }
+          drawLegend(opts.series, opts, config, context, opts.chartData);
+          drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);
+          drawCanvas(opts, context);
+        },
+        onAnimationFinish: function onAnimationFinish() {
+          _this.uevent.trigger('renderComplete');
+        } });
+
+      break;
+    case 'mount':
+      this.animationInstance = new Animation({
+        timing: opts.timing,
+        duration: duration,
+        onProcess: function onProcess(process) {
+          context.clearRect(0, 0, opts.width, opts.height);
+          if (opts.rotate) {
+            contextRotate(context, opts);
+          }
+          drawYAxisGrid(categories, opts, config, context);
+          drawXAxis(categories, opts, config, context);
+          var _drawMountDataPoints = drawMountDataPoints(series, opts, config, context, process),
+          xAxisPoints = _drawMountDataPoints.xAxisPoints,
+          calPoints = _drawMountDataPoints.calPoints,
+          eachSpacing = _drawMountDataPoints.eachSpacing;
+          opts.chartData.xAxisPoints = xAxisPoints;
+          opts.chartData.calPoints = calPoints;
+          opts.chartData.eachSpacing = eachSpacing;
+          drawYAxis(series, opts, config, context);
+          if (opts.enableMarkLine !== false && process === 1) {
+            drawMarkLine(opts, config, context);
+          }
+          drawLegend(opts.series, opts, config, context, opts.chartData);
+          drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);
+          drawCanvas(opts, context);
+        },
+        onAnimationFinish: function onAnimationFinish() {
+          _this.uevent.trigger('renderComplete');
+        } });
+
+      break;
+    case 'bar':
+      this.animationInstance = new Animation({
+        timing: opts.timing,
+        duration: duration,
+        onProcess: function onProcess(process) {
+          context.clearRect(0, 0, opts.width, opts.height);
+          if (opts.rotate) {
+            contextRotate(context, opts);
+          }
+          drawXAxis(categories, opts, config, context);
+          var _drawBarDataPoints = drawBarDataPoints(series, opts, config, context, process),
+          yAxisPoints = _drawBarDataPoints.yAxisPoints,
+          calPoints = _drawBarDataPoints.calPoints,
+          eachSpacing = _drawBarDataPoints.eachSpacing;
+          opts.chartData.yAxisPoints = yAxisPoints;
+          opts.chartData.xAxisPoints = opts.chartData.xAxisData.xAxisPoints;
+          opts.chartData.calPoints = calPoints;
+          opts.chartData.eachSpacing = eachSpacing;
+          drawYAxis(series, opts, config, context);
+          if (opts.enableMarkLine !== false && process === 1) {
+            drawMarkLine(opts, config, context);
+          }
+          drawLegend(opts.series, opts, config, context, opts.chartData);
+          drawToolTipBridge(opts, config, context, process, eachSpacing, yAxisPoints);
+          drawCanvas(opts, context);
+        },
+        onAnimationFinish: function onAnimationFinish() {
+          _this.uevent.trigger('renderComplete');
+        } });
+
+      break;
+    case 'area':
+      this.animationInstance = new Animation({
+        timing: opts.timing,
+        duration: duration,
+        onProcess: function onProcess(process) {
+          context.clearRect(0, 0, opts.width, opts.height);
+          if (opts.rotate) {
+            contextRotate(context, opts);
+          }
+          drawYAxisGrid(categories, opts, config, context);
+          drawXAxis(categories, opts, config, context);
+          var _drawAreaDataPoints = drawAreaDataPoints(series, opts, config, context, process),
+          xAxisPoints = _drawAreaDataPoints.xAxisPoints,
+          calPoints = _drawAreaDataPoints.calPoints,
+          eachSpacing = _drawAreaDataPoints.eachSpacing;
+          opts.chartData.xAxisPoints = xAxisPoints;
+          opts.chartData.calPoints = calPoints;
+          opts.chartData.eachSpacing = eachSpacing;
+          drawYAxis(series, opts, config, context);
+          if (opts.enableMarkLine !== false && process === 1) {
+            drawMarkLine(opts, config, context);
+          }
+          drawLegend(opts.series, opts, config, context, opts.chartData);
+          drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);
+          drawCanvas(opts, context);
+        },
+        onAnimationFinish: function onAnimationFinish() {
+          _this.uevent.trigger('renderComplete');
+        } });
+
+      break;
+    case 'ring':
+      this.animationInstance = new Animation({
+        timing: opts.timing,
+        duration: duration,
+        onProcess: function onProcess(process) {
+          context.clearRect(0, 0, opts.width, opts.height);
+          if (opts.rotate) {
+            contextRotate(context, opts);
+          }
+          opts.chartData.pieData = drawPieDataPoints(series, opts, config, context, process);
+          drawLegend(opts.series, opts, config, context, opts.chartData);
+          drawToolTipBridge(opts, config, context, process);
+          drawCanvas(opts, context);
+        },
+        onAnimationFinish: function onAnimationFinish() {
+          _this.uevent.trigger('renderComplete');
+        } });
+
+      break;
+    case 'pie':
+      this.animationInstance = new Animation({
+        timing: opts.timing,
+        duration: duration,
+        onProcess: function onProcess(process) {
+          context.clearRect(0, 0, opts.width, opts.height);
+          if (opts.rotate) {
+            contextRotate(context, opts);
+          }
+          opts.chartData.pieData = drawPieDataPoints(series, opts, config, context, process);
+          drawLegend(opts.series, opts, config, context, opts.chartData);
+          drawToolTipBridge(opts, config, context, process);
+          drawCanvas(opts, context);
+        },
+        onAnimationFinish: function onAnimationFinish() {
+          _this.uevent.trigger('renderComplete');
+        } });
+
+      break;
+    case 'rose':
+      this.animationInstance = new Animation({
+        timing: opts.timing,
+        duration: duration,
+        onProcess: function onProcess(process) {
+          context.clearRect(0, 0, opts.width, opts.height);
+          if (opts.rotate) {
+            contextRotate(context, opts);
+          }
+          opts.chartData.pieData = drawRoseDataPoints(series, opts, config, context, process);
+          drawLegend(opts.series, opts, config, context, opts.chartData);
+          drawToolTipBridge(opts, config, context, process);
+          drawCanvas(opts, context);
+        },
+        onAnimationFinish: function onAnimationFinish() {
+          _this.uevent.trigger('renderComplete');
+        } });
+
+      break;
+    case 'radar':
+      this.animationInstance = new Animation({
+        timing: opts.timing,
+        duration: duration,
+        onProcess: function onProcess(process) {
+          context.clearRect(0, 0, opts.width, opts.height);
+          if (opts.rotate) {
+            contextRotate(context, opts);
+          }
+          opts.chartData.radarData = drawRadarDataPoints(series, opts, config, context, process);
+          drawLegend(opts.series, opts, config, context, opts.chartData);
+          drawToolTipBridge(opts, config, context, process);
+          drawCanvas(opts, context);
+        },
+        onAnimationFinish: function onAnimationFinish() {
+          _this.uevent.trigger('renderComplete');
+        } });
+
+      break;
+    case 'arcbar':
+      this.animationInstance = new Animation({
+        timing: opts.timing,
+        duration: duration,
+        onProcess: function onProcess(process) {
+          context.clearRect(0, 0, opts.width, opts.height);
+          if (opts.rotate) {
+            contextRotate(context, opts);
+          }
+          opts.chartData.arcbarData = drawArcbarDataPoints(series, opts, config, context, process);
+          drawCanvas(opts, context);
+        },
+        onAnimationFinish: function onAnimationFinish() {
+          _this.uevent.trigger('renderComplete');
+        } });
+
+      break;
+    case 'gauge':
+      this.animationInstance = new Animation({
+        timing: opts.timing,
+        duration: duration,
+        onProcess: function onProcess(process) {
+          context.clearRect(0, 0, opts.width, opts.height);
+          if (opts.rotate) {
+            contextRotate(context, opts);
+          }
+          opts.chartData.gaugeData = drawGaugeDataPoints(categories, series, opts, config, context, process);
+          drawCanvas(opts, context);
+        },
+        onAnimationFinish: function onAnimationFinish() {
+          _this.uevent.trigger('renderComplete');
+        } });
+
+      break;
+    case 'candle':
+      this.animationInstance = new Animation({
+        timing: opts.timing,
+        duration: duration,
+        onProcess: function onProcess(process) {
+          context.clearRect(0, 0, opts.width, opts.height);
+          if (opts.rotate) {
+            contextRotate(context, opts);
+          }
+          drawYAxisGrid(categories, opts, config, context);
+          drawXAxis(categories, opts, config, context);
+          var _drawCandleDataPoints = drawCandleDataPoints(series, seriesMA, opts, config, context, process),
+          xAxisPoints = _drawCandleDataPoints.xAxisPoints,
+          calPoints = _drawCandleDataPoints.calPoints,
+          eachSpacing = _drawCandleDataPoints.eachSpacing;
+          opts.chartData.xAxisPoints = xAxisPoints;
+          opts.chartData.calPoints = calPoints;
+          opts.chartData.eachSpacing = eachSpacing;
+          drawYAxis(series, opts, config, context);
+          if (opts.enableMarkLine !== false && process === 1) {
+            drawMarkLine(opts, config, context);
+          }
+          if (seriesMA) {
+            drawLegend(seriesMA, opts, config, context, opts.chartData);
+          } else {
+            drawLegend(opts.series, opts, config, context, opts.chartData);
+          }
+          drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);
+          drawCanvas(opts, context);
+        },
+        onAnimationFinish: function onAnimationFinish() {
+          _this.uevent.trigger('renderComplete');
+        } });
+
+      break;}
+
+}
+
+function uChartsEvent() {
+  this.events = {};
+}
+
+uChartsEvent.prototype.addEventListener = function (type, listener) {
+  this.events[type] = this.events[type] || [];
+  this.events[type].push(listener);
+};
+
+uChartsEvent.prototype.delEventListener = function (type) {
+  this.events[type] = [];
+};
+
+uChartsEvent.prototype.trigger = function () {
+  for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
+    args[_key] = arguments[_key];
+  }
+  var type = args[0];
+  var params = args.slice(1);
+  if (!!this.events[type]) {
+    this.events[type].forEach(function (listener) {
+      try {
+        listener.apply(null, params);
+      } catch (e) {
+        //console.log('[uCharts] '+e);
+      }
+    });
+  }
+};
+
+var uCharts = function uCharts(opts) {
+  opts.pix = opts.pixelRatio ? opts.pixelRatio : 1;
+  opts.fontSize = opts.fontSize ? opts.fontSize : 13;
+  opts.fontColor = opts.fontColor ? opts.fontColor : config.fontColor;
+  if (opts.background == "" || opts.background == "none") {
+    opts.background = "#FFFFFF";
+  }
+  opts.title = assign({}, opts.title);
+  opts.subtitle = assign({}, opts.subtitle);
+  opts.duration = opts.duration ? opts.duration : 1000;
+  opts.yAxis = assign({}, {
+    data: [],
+    showTitle: false,
+    disabled: false,
+    disableGrid: false,
+    gridSet: 'number',
+    splitNumber: 5,
+    gridType: 'solid',
+    dashLength: 4 * opts.pix,
+    gridColor: '#cccccc',
+    padding: 10,
+    fontColor: '#666666' },
+  opts.yAxis);
+  opts.xAxis = assign({}, {
+    rotateLabel: false,
+    rotateAngle: 45,
+    disabled: false,
+    disableGrid: false,
+    splitNumber: 5,
+    calibration: false,
+    gridType: 'solid',
+    dashLength: 4,
+    scrollAlign: 'left',
+    boundaryGap: 'center',
+    axisLine: true,
+    axisLineColor: '#cccccc' },
+  opts.xAxis);
+  opts.xAxis.scrollPosition = opts.xAxis.scrollAlign;
+  opts.legend = assign({}, {
+    show: true,
+    position: 'bottom',
+    float: 'center',
+    backgroundColor: 'rgba(0,0,0,0)',
+    borderColor: 'rgba(0,0,0,0)',
+    borderWidth: 0,
+    padding: 5,
+    margin: 5,
+    itemGap: 10,
+    fontSize: opts.fontSize,
+    lineHeight: opts.fontSize,
+    fontColor: opts.fontColor,
+    formatter: {},
+    hiddenColor: '#CECECE' },
+  opts.legend);
+  opts.extra = assign({}, opts.extra);
+  opts.rotate = opts.rotate ? true : false;
+  opts.animation = opts.animation ? true : false;
+  opts.rotate = opts.rotate ? true : false;
+  opts.canvas2d = opts.canvas2d ? true : false;
+
+  var config$$1 = assign({}, config);
+  config$$1.color = opts.color ? opts.color : config$$1.color;
+  if (opts.type == 'pie') {
+    config$$1.pieChartLinePadding = opts.dataLabel === false ? 0 : opts.extra.pie.labelWidth * opts.pix || config$$1.pieChartLinePadding * opts.pix;
+  }
+  if (opts.type == 'ring') {
+    config$$1.pieChartLinePadding = opts.dataLabel === false ? 0 : opts.extra.ring.labelWidth * opts.pix || config$$1.pieChartLinePadding * opts.pix;
+  }
+  if (opts.type == 'rose') {
+    config$$1.pieChartLinePadding = opts.dataLabel === false ? 0 : opts.extra.rose.labelWidth * opts.pix || config$$1.pieChartLinePadding * opts.pix;
+  }
+  config$$1.pieChartTextPadding = opts.dataLabel === false ? 0 : config$$1.pieChartTextPadding * opts.pix;
+
+  //灞忓箷鏃嬭浆
+  config$$1.rotate = opts.rotate;
+  if (opts.rotate) {
+    var tempWidth = opts.width;
+    var tempHeight = opts.height;
+    opts.width = tempHeight;
+    opts.height = tempWidth;
+  }
+
+  //閫傞厤楂樺垎灞�
+  opts.padding = opts.padding ? opts.padding : config$$1.padding;
+  config$$1.yAxisWidth = config.yAxisWidth * opts.pix;
+  config$$1.xAxisHeight = config.xAxisHeight * opts.pix;
+  if (opts.enableScroll && opts.xAxis.scrollShow) {
+    config$$1.xAxisHeight += 6 * opts.pix;
+  }
+  config$$1.fontSize = opts.fontSize * opts.pix;
+  config$$1.titleFontSize = config.titleFontSize * opts.pix;
+  config$$1.subtitleFontSize = config.subtitleFontSize * opts.pix;
+  config$$1.toolTipPadding = config.toolTipPadding * opts.pix;
+  config$$1.toolTipLineHeight = config.toolTipLineHeight * opts.pix;
+  if (!opts.context) {
+    throw new Error('[uCharts] 鏈幏鍙栧埌context锛佹敞鎰忥細v2.0鐗堟湰鍚庯紝闇�瑕佽嚜琛岃幏鍙朿anvas鐨勭粯鍥句笂涓嬫枃骞朵紶鍏pts.context锛�');
+  }
+  this.context = opts.context;
+  if (!this.context.setTextAlign) {
+    this.context.setStrokeStyle = function (e) {
+      return this.strokeStyle = e;
+    };
+    this.context.setLineWidth = function (e) {
+      return this.lineWidth = e;
+    };
+    this.context.setLineCap = function (e) {
+      return this.lineCap = e;
+    };
+    this.context.setFontSize = function (e) {
+      return this.font = e + "px sans-serif";
+    };
+    this.context.setFillStyle = function (e) {
+      return this.fillStyle = e;
+    };
+    this.context.setTextAlign = function (e) {
+      return this.textAlign = e;
+    };
+    this.context.draw = function () {};
+  }
+  //鍏煎NVUEsetLineDash
+  if (!this.context.setLineDash) {
+    this.context.setLineDash = function (e) {};
+  }
+  opts.chartData = {};
+  this.uevent = new uChartsEvent();
+  this.scrollOption = {
+    currentOffset: 0,
+    startTouchX: 0,
+    distance: 0,
+    lastMoveTime: 0 };
+
+  this.opts = opts;
+  this.config = config$$1;
+  drawCharts.call(this, opts.type, opts, config$$1, this.context);
+};
+
+uCharts.prototype.updateData = function () {
+  var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+  this.opts = assign({}, this.opts, data);
+  this.opts.updateData = true;
+  var scrollPosition = data.scrollPosition || 'current';
+  switch (scrollPosition) {
+    case 'current':
+      this.opts._scrollDistance_ = this.scrollOption.currentOffset;
+      break;
+    case 'left':
+      this.opts._scrollDistance_ = 0;
+      this.scrollOption = {
+        currentOffset: 0,
+        startTouchX: 0,
+        distance: 0,
+        lastMoveTime: 0 };
+
+      break;
+    case 'right':
+      var _calYAxisData = calYAxisData(this.opts.series, this.opts, this.config, this.context),yAxisWidth = _calYAxisData.yAxisWidth;
+      this.config.yAxisWidth = yAxisWidth;
+      var offsetLeft = 0;
+      var _getXAxisPoints0 = getXAxisPoints(this.opts.categories, this.opts, this.config),xAxisPoints = _getXAxisPoints0.xAxisPoints,
+      startX = _getXAxisPoints0.startX,
+      endX = _getXAxisPoints0.endX,
+      eachSpacing = _getXAxisPoints0.eachSpacing;
+      var totalWidth = eachSpacing * (xAxisPoints.length - 1);
+      var screenWidth = endX - startX;
+      offsetLeft = screenWidth - totalWidth;
+      this.scrollOption = {
+        currentOffset: offsetLeft,
+        startTouchX: offsetLeft,
+        distance: 0,
+        lastMoveTime: 0 };
+
+      this.opts._scrollDistance_ = offsetLeft;
+      break;}
+
+  drawCharts.call(this, this.opts.type, this.opts, this.config, this.context);
+};
+
+uCharts.prototype.zoom = function () {
+  var val = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.opts.xAxis.itemCount;
+  if (this.opts.enableScroll !== true) {
+    __f__("log", '[uCharts] 璇峰惎鐢ㄦ粴鍔ㄦ潯鍚庝娇鐢�', " at uni_modules/qiun-data-charts/js_sdk/u-charts/u-charts.js:6828");
+    return;
+  }
+  //褰撳墠灞忓箷涓棿鐐�
+  var centerPoint = Math.round(Math.abs(this.scrollOption.currentOffset) / this.opts.chartData.eachSpacing) + Math.round(this.opts.xAxis.itemCount / 2);
+  this.opts.animation = false;
+  this.opts.xAxis.itemCount = val.itemCount;
+  //閲嶆柊璁$畻x杞村亸绉昏窛绂�
+  var _calYAxisData = calYAxisData(this.opts.series, this.opts, this.config, this.context),
+  yAxisWidth = _calYAxisData.yAxisWidth;
+  this.config.yAxisWidth = yAxisWidth;
+  var offsetLeft = 0;
+  var _getXAxisPoints0 = getXAxisPoints(this.opts.categories, this.opts, this.config),
+  xAxisPoints = _getXAxisPoints0.xAxisPoints,
+  startX = _getXAxisPoints0.startX,
+  endX = _getXAxisPoints0.endX,
+  eachSpacing = _getXAxisPoints0.eachSpacing;
+  var centerLeft = eachSpacing * centerPoint;
+  var screenWidth = endX - startX;
+  var MaxLeft = screenWidth - eachSpacing * (xAxisPoints.length - 1);
+  offsetLeft = screenWidth / 2 - centerLeft;
+  if (offsetLeft > 0) {
+    offsetLeft = 0;
+  }
+  if (offsetLeft < MaxLeft) {
+    offsetLeft = MaxLeft;
+  }
+  this.scrollOption = {
+    currentOffset: offsetLeft,
+    startTouchX: 0,
+    distance: 0,
+    lastMoveTime: 0 };
+
+  calValidDistance(this, offsetLeft, this.opts.chartData, this.config, this.opts);
+  this.opts._scrollDistance_ = offsetLeft;
+  drawCharts.call(this, this.opts.type, this.opts, this.config, this.context);
+};
+
+uCharts.prototype.dobuleZoom = function (e) {
+  if (this.opts.enableScroll !== true) {
+    __f__("log", '[uCharts] 璇峰惎鐢ㄦ粴鍔ㄦ潯鍚庝娇鐢�', " at uni_modules/qiun-data-charts/js_sdk/u-charts/u-charts.js:6868");
+    return;
+  }
+  var tcs = e.changedTouches;
+  if (tcs.length < 2) {
+    return;
+  }
+  for (var i = 0; i < tcs.length; i++) {
+    tcs[i].x = tcs[i].x ? tcs[i].x : tcs[i].clientX;
+    tcs[i].y = tcs[i].y ? tcs[i].y : tcs[i].clientY;
+  }
+  var ntcs = [getTouches(tcs[0], this.opts, e), getTouches(tcs[1], this.opts, e)];
+  var xlength = Math.abs(ntcs[0].x - ntcs[1].x);
+  // 璁板綍鍒濆鐨勪袱鎸囦箣闂寸殑鏁版嵁
+  if (!this.scrollOption.moveCount) {
+    var cts0 = { changedTouches: [{ x: tcs[0].x, y: this.opts.area[0] / this.opts.pix + 2 }] };
+    var cts1 = { changedTouches: [{ x: tcs[1].x, y: this.opts.area[0] / this.opts.pix + 2 }] };
+    if (this.opts.rotate) {
+      cts0 = { changedTouches: [{ x: this.opts.height / this.opts.pix - this.opts.area[0] / this.opts.pix - 2, y: tcs[0].y }] };
+      cts1 = { changedTouches: [{ x: this.opts.height / this.opts.pix - this.opts.area[0] / this.opts.pix - 2, y: tcs[1].y }] };
+    }
+    var moveCurrent1 = this.getCurrentDataIndex(cts0).index;
+    var moveCurrent2 = this.getCurrentDataIndex(cts1).index;
+    var moveCount = Math.abs(moveCurrent1 - moveCurrent2);
+    this.scrollOption.moveCount = moveCount;
+    this.scrollOption.moveCurrent1 = Math.min(moveCurrent1, moveCurrent2);
+    this.scrollOption.moveCurrent2 = Math.max(moveCurrent1, moveCurrent2);
+    return;
+  }
+
+  var currentEachSpacing = xlength / this.scrollOption.moveCount;
+  var itemCount = (this.opts.width - this.opts.area[1] - this.opts.area[3]) / currentEachSpacing;
+  itemCount = itemCount <= 2 ? 2 : itemCount;
+  itemCount = itemCount >= this.opts.categories.length ? this.opts.categories.length : itemCount;
+  this.opts.animation = false;
+  this.opts.xAxis.itemCount = itemCount;
+  // 閲嶆柊璁$畻婊氬姩鏉″亸绉昏窛绂�
+  var offsetLeft = 0;
+  var _getXAxisPoints0 = getXAxisPoints(this.opts.categories, this.opts, this.config),
+  xAxisPoints = _getXAxisPoints0.xAxisPoints,
+  startX = _getXAxisPoints0.startX,
+  endX = _getXAxisPoints0.endX,
+  eachSpacing = _getXAxisPoints0.eachSpacing;
+  var currentLeft = eachSpacing * this.scrollOption.moveCurrent1;
+  var screenWidth = endX - startX;
+  var MaxLeft = screenWidth - eachSpacing * (xAxisPoints.length - 1);
+  offsetLeft = -currentLeft + Math.min(ntcs[0].x, ntcs[1].x) - this.opts.area[3] - eachSpacing;
+  if (offsetLeft > 0) {
+    offsetLeft = 0;
+  }
+  if (offsetLeft < MaxLeft) {
+    offsetLeft = MaxLeft;
+  }
+  this.scrollOption.currentOffset = offsetLeft;
+  this.scrollOption.startTouchX = 0;
+  this.scrollOption.distance = 0;
+  calValidDistance(this, offsetLeft, this.opts.chartData, this.config, this.opts);
+  this.opts._scrollDistance_ = offsetLeft;
+  drawCharts.call(this, this.opts.type, this.opts, this.config, this.context);
+};
+
+uCharts.prototype.stopAnimation = function () {
+  this.animationInstance && this.animationInstance.stop();
+};
+
+uCharts.prototype.addEventListener = function (type, listener) {
+  this.uevent.addEventListener(type, listener);
+};
+
+uCharts.prototype.delEventListener = function (type) {
+  this.uevent.delEventListener(type);
+};
+
+uCharts.prototype.getCurrentDataIndex = function (e) {
+  var touches = null;
+  if (e.changedTouches) {
+    touches = e.changedTouches[0];
+  } else {
+    touches = e.mp.changedTouches[0];
+  }
+  if (touches) {
+    var _touches$ = getTouches(touches, this.opts, e);
+    if (this.opts.type === 'pie' || this.opts.type === 'ring') {
+      return findPieChartCurrentIndex({
+        x: _touches$.x,
+        y: _touches$.y },
+      this.opts.chartData.pieData, this.opts);
+    } else if (this.opts.type === 'rose') {
+      return findRoseChartCurrentIndex({
+        x: _touches$.x,
+        y: _touches$.y },
+      this.opts.chartData.pieData, this.opts);
+    } else if (this.opts.type === 'radar') {
+      return findRadarChartCurrentIndex({
+        x: _touches$.x,
+        y: _touches$.y },
+      this.opts.chartData.radarData, this.opts.categories.length);
+    } else if (this.opts.type === 'funnel') {
+      return findFunnelChartCurrentIndex({
+        x: _touches$.x,
+        y: _touches$.y },
+      this.opts.chartData.funnelData);
+    } else if (this.opts.type === 'map') {
+      return findMapChartCurrentIndex({
+        x: _touches$.x,
+        y: _touches$.y },
+      this.opts);
+    } else if (this.opts.type === 'word') {
+      return findWordChartCurrentIndex({
+        x: _touches$.x,
+        y: _touches$.y },
+      this.opts.chartData.wordCloudData);
+    } else if (this.opts.type === 'bar') {
+      return findBarChartCurrentIndex({
+        x: _touches$.x,
+        y: _touches$.y },
+      this.opts.chartData.calPoints, this.opts, this.config, Math.abs(this.scrollOption.currentOffset));
+    } else {
+      return findCurrentIndex({
+        x: _touches$.x,
+        y: _touches$.y },
+      this.opts.chartData.calPoints, this.opts, this.config, Math.abs(this.scrollOption.currentOffset));
+    }
+  }
+  return -1;
+};
+
+uCharts.prototype.getLegendDataIndex = function (e) {
+  var touches = null;
+  if (e.changedTouches) {
+    touches = e.changedTouches[0];
+  } else {
+    touches = e.mp.changedTouches[0];
+  }
+  if (touches) {
+    var _touches$ = getTouches(touches, this.opts, e);
+    return findLegendIndex({
+      x: _touches$.x,
+      y: _touches$.y },
+    this.opts.chartData.legendData);
+  }
+  return -1;
+};
+
+uCharts.prototype.touchLegend = function (e) {
+  var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
+  var touches = null;
+  if (e.changedTouches) {
+    touches = e.changedTouches[0];
+  } else {
+    touches = e.mp.changedTouches[0];
+  }
+  if (touches) {
+    var _touches$ = getTouches(touches, this.opts, e);
+    var index = this.getLegendDataIndex(e);
+    if (index >= 0) {
+      if (this.opts.type == 'candle') {
+        this.opts.seriesMA[index].show = !this.opts.seriesMA[index].show;
+      } else {
+        this.opts.series[index].show = !this.opts.series[index].show;
+      }
+      this.opts.animation = option.animation ? true : false;
+      this.opts._scrollDistance_ = this.scrollOption.currentOffset;
+      drawCharts.call(this, this.opts.type, this.opts, this.config, this.context);
+    }
+  }
+
+};
+
+uCharts.prototype.showToolTip = function (e) {var _this3 = this;
+  var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
+  var touches = null;
+  if (e.changedTouches) {
+    touches = e.changedTouches[0];
+  } else {
+    touches = e.mp.changedTouches[0];
+  }
+  if (!touches) {
+    __f__("log", "[uCharts] 鏈幏鍙栧埌event鍧愭爣淇℃伅", " at uni_modules/qiun-data-charts/js_sdk/u-charts/u-charts.js:7046");
+  }
+  var _touches$ = getTouches(touches, this.opts, e);
+  var currentOffset = this.scrollOption.currentOffset;
+  var opts = assign({}, this.opts, {
+    _scrollDistance_: currentOffset,
+    animation: false });
+
+  if (this.opts.type === 'line' || this.opts.type === 'area' || this.opts.type === 'column' || this.opts.type === 'scatter' || this.opts.type === 'bubble') {
+    var current = this.getCurrentDataIndex(e);
+    var index = option.index == undefined ? current.index : option.index;
+    if (index > -1 || index.length > 0) {
+      var seriesData = getSeriesDataItem(this.opts.series, index, current.group);
+      if (seriesData.length !== 0) {
+        var _getToolTipData = getToolTipData(seriesData, this.opts, index, current.group, this.opts.categories, option),
+        textList = _getToolTipData.textList,
+        offset = _getToolTipData.offset;
+        offset.y = _touches$.y;
+        opts.tooltip = {
+          textList: option.textList !== undefined ? option.textList : textList,
+          offset: option.offset !== undefined ? option.offset : offset,
+          option: option,
+          index: index };
+
+      }
+    }
+    drawCharts.call(this, opts.type, opts, this.config, this.context);
+  }
+  if (this.opts.type === 'mount') {
+    var index = option.index == undefined ? this.getCurrentDataIndex(e).index : option.index;
+    if (index > -1) {
+      var opts = assign({}, this.opts, { animation: false });
+      var seriesData = assign({}, opts._series_[index]);
+      var textList = [{
+        text: option.formatter ? option.formatter(seriesData, undefined, index, opts) : seriesData.name + ': ' + seriesData.data,
+        color: seriesData.color }];
+
+      var offset = {
+        x: opts.chartData.calPoints[index].x,
+        y: _touches$.y };
+
+      opts.tooltip = {
+        textList: option.textList ? option.textList : textList,
+        offset: option.offset !== undefined ? option.offset : offset,
+        option: option,
+        index: index };
+
+    }
+
+    drawCharts.call(this, opts.type, opts, this.config, this.context);
+  }
+  if (this.opts.type === 'bar') {
+    var current = this.getCurrentDataIndex(e);
+    var index = option.index == undefined ? current.index : option.index;
+    if (index > -1 || index.length > 0) {
+      var seriesData = getSeriesDataItem(this.opts.series, index, current.group);
+      if (seriesData.length !== 0) {
+        var _getToolTipData = getToolTipData(seriesData, this.opts, index, current.group, this.opts.categories, option),
+        textList = _getToolTipData.textList,
+        offset = _getToolTipData.offset;
+        offset.x = _touches$.x;
+        opts.tooltip = {
+          textList: option.textList !== undefined ? option.textList : textList,
+          offset: option.offset !== undefined ? option.offset : offset,
+          option: option,
+          index: index };
+
+      }
+    }
+    drawCharts.call(this, opts.type, opts, this.config, this.context);
+  }
+  if (this.opts.type === 'mix') {
+    var current = this.getCurrentDataIndex(e);
+    var index = option.index == undefined ? current.index : option.index;
+    if (index > -1) {
+      var currentOffset = this.scrollOption.currentOffset;
+      var opts = assign({}, this.opts, {
+        _scrollDistance_: currentOffset,
+        animation: false });
+
+      var seriesData = getSeriesDataItem(this.opts.series, index);
+      if (seriesData.length !== 0) {
+        var _getMixToolTipData = getMixToolTipData(seriesData, this.opts, index, this.opts.categories, option),
+        textList = _getMixToolTipData.textList,
+        offset = _getMixToolTipData.offset;
+        offset.y = _touches$.y;
+        opts.tooltip = {
+          textList: option.textList ? option.textList : textList,
+          offset: option.offset !== undefined ? option.offset : offset,
+          option: option,
+          index: index };
+
+      }
+    }
+    drawCharts.call(this, opts.type, opts, this.config, this.context);
+  }
+  if (this.opts.type === 'candle') {
+    var current = this.getCurrentDataIndex(e);
+    var index = option.index == undefined ? current.index : option.index;
+    if (index > -1) {
+      var currentOffset = this.scrollOption.currentOffset;
+      var opts = assign({}, this.opts, {
+        _scrollDistance_: currentOffset,
+        animation: false });
+
+      var seriesData = getSeriesDataItem(this.opts.series, index);
+      if (seriesData.length !== 0) {
+        var _getToolTipData = getCandleToolTipData(this.opts.series[0].data, seriesData, this.opts, index, this.opts.categories, this.opts.extra.candle, option),
+        textList = _getToolTipData.textList,
+        offset = _getToolTipData.offset;
+        offset.y = _touches$.y;
+        opts.tooltip = {
+          textList: option.textList ? option.textList : textList,
+          offset: option.offset !== undefined ? option.offset : offset,
+          option: option,
+          index: index };
+
+      }
+    }
+    drawCharts.call(this, opts.type, opts, this.config, this.context);
+  }
+  if (this.opts.type === 'pie' || this.opts.type === 'ring' || this.opts.type === 'rose' || this.opts.type === 'funnel') {
+    var index = option.index == undefined ? this.getCurrentDataIndex(e) : option.index;
+    if (index > -1) {
+      var opts = assign({}, this.opts, { animation: false });
+      var seriesData = assign({}, opts._series_[index]);
+      var textList = [{
+        text: option.formatter ? option.formatter(seriesData, undefined, index, opts) : seriesData.name + ': ' + seriesData.data,
+        color: seriesData.color }];
+
+      var offset = {
+        x: _touches$.x,
+        y: _touches$.y };
+
+      opts.tooltip = {
+        textList: option.textList ? option.textList : textList,
+        offset: option.offset !== undefined ? option.offset : offset,
+        option: option,
+        index: index };
+
+    }
+    drawCharts.call(this, opts.type, opts, this.config, this.context);
+  }
+  if (this.opts.type === 'map') {
+    var index = option.index == undefined ? this.getCurrentDataIndex(e) : option.index;
+    if (index > -1) {
+      var opts = assign({}, this.opts, { animation: false });
+      var seriesData = assign({}, this.opts.series[index]);
+      seriesData.name = seriesData.properties.name;
+      var textList = [{
+        text: option.formatter ? option.formatter(seriesData, undefined, index, this.opts) : seriesData.name,
+        color: seriesData.color }];
+
+      var offset = {
+        x: _touches$.x,
+        y: _touches$.y };
+
+      opts.tooltip = {
+        textList: option.textList ? option.textList : textList,
+        offset: option.offset !== undefined ? option.offset : offset,
+        option: option,
+        index: index };
+
+    }
+    opts.updateData = false;
+    drawCharts.call(this, opts.type, opts, this.config, this.context);
+  }
+  if (this.opts.type === 'word') {
+    var index = option.index == undefined ? this.getCurrentDataIndex(e) : option.index;
+    if (index > -1) {
+      var opts = assign({}, this.opts, { animation: false });
+      var seriesData = assign({}, this.opts.series[index]);
+      var textList = [{
+        text: option.formatter ? option.formatter(seriesData, undefined, index, this.opts) : seriesData.name,
+        color: seriesData.color }];
+
+      var offset = {
+        x: _touches$.x,
+        y: _touches$.y };
+
+      opts.tooltip = {
+        textList: option.textList ? option.textList : textList,
+        offset: option.offset !== undefined ? option.offset : offset,
+        option: option,
+        index: index };
+
+    }
+    opts.updateData = false;
+    drawCharts.call(this, opts.type, opts, this.config, this.context);
+  }
+  if (this.opts.type === 'radar') {
+    var index = option.index == undefined ? this.getCurrentDataIndex(e) : option.index;
+    if (index > -1) {
+      var opts = assign({}, this.opts, { animation: false });
+      var seriesData = getSeriesDataItem(this.opts.series, index);
+      if (seriesData.length !== 0) {
+        var textList = seriesData.map(function (item) {
+          return {
+            text: option.formatter ? option.formatter(item, _this3.opts.categories[index], index, _this3.opts) : item.name + ': ' + item.data,
+            color: item.color };
+
+        });
+        var offset = {
+          x: _touches$.x,
+          y: _touches$.y };
+
+        opts.tooltip = {
+          textList: option.textList ? option.textList : textList,
+          offset: option.offset !== undefined ? option.offset : offset,
+          option: option,
+          index: index };
+
+      }
+    }
+    drawCharts.call(this, opts.type, opts, this.config, this.context);
+  }
+};
+
+uCharts.prototype.translate = function (distance) {
+  this.scrollOption = {
+    currentOffset: distance,
+    startTouchX: distance,
+    distance: 0,
+    lastMoveTime: 0 };
+
+  var opts = assign({}, this.opts, {
+    _scrollDistance_: distance,
+    animation: false });
+
+  drawCharts.call(this, this.opts.type, opts, this.config, this.context);
+};
+
+uCharts.prototype.scrollStart = function (e) {
+  var touches = null;
+  if (e.changedTouches) {
+    touches = e.changedTouches[0];
+  } else {
+    touches = e.mp.changedTouches[0];
+  }
+  var _touches$ = getTouches(touches, this.opts, e);
+  if (touches && this.opts.enableScroll === true) {
+    this.scrollOption.startTouchX = _touches$.x;
+  }
+};
+
+uCharts.prototype.scroll = function (e) {
+  if (this.scrollOption.lastMoveTime === 0) {
+    this.scrollOption.lastMoveTime = Date.now();
+  }
+  var Limit = this.opts.touchMoveLimit || 60;
+  var currMoveTime = Date.now();
+  var duration = currMoveTime - this.scrollOption.lastMoveTime;
+  if (duration < Math.floor(1000 / Limit)) return;
+  if (this.scrollOption.startTouchX == 0) return;
+  this.scrollOption.lastMoveTime = currMoveTime;
+  var touches = null;
+  if (e.changedTouches) {
+    touches = e.changedTouches[0];
+  } else {
+    touches = e.mp.changedTouches[0];
+  }
+  if (touches && this.opts.enableScroll === true) {
+    var _touches$ = getTouches(touches, this.opts, e);
+    var _distance;
+    _distance = _touches$.x - this.scrollOption.startTouchX;
+    var currentOffset = this.scrollOption.currentOffset;
+    var validDistance = calValidDistance(this, currentOffset + _distance, this.opts.chartData, this.config, this.opts);
+    this.scrollOption.distance = _distance = validDistance - currentOffset;
+    var opts = assign({}, this.opts, {
+      _scrollDistance_: currentOffset + _distance,
+      animation: false });
+
+    this.opts = opts;
+    drawCharts.call(this, opts.type, opts, this.config, this.context);
+    return currentOffset + _distance;
+  }
+};
+
+uCharts.prototype.scrollEnd = function (e) {
+  if (this.opts.enableScroll === true) {
+    var _scrollOption = this.scrollOption,
+    currentOffset = _scrollOption.currentOffset,
+    distance = _scrollOption.distance;
+    this.scrollOption.currentOffset = currentOffset + distance;
+    this.scrollOption.distance = 0;
+    this.scrollOption.moveCount = 0;
+  }
+};var _default =
+
+uCharts;exports.default = _default;
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 81)["default"]))
+
+/***/ }),
+/* 81 */
+/*!*********************************************************************!*\
+  !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js ***!
+  \*********************************************************************/
+/*! exports provided: log, default */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "log", function() { return log; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return formatLog; });
+function typof (v) {
+  var s = Object.prototype.toString.call(v)
+  return s.substring(8, s.length - 1)
+}
+
+function isDebugMode () {
+  /* eslint-disable no-undef */
+  return typeof __channelId__ === 'string' && __channelId__
+}
+
+function jsonStringifyReplacer (k, p) {
+  switch (typof(p)) {
+    case 'Function':
+      return 'function() { [native code] }'
+    default :
+      return p
+  }
+}
+
+function log (type) {
+  for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
+    args[_key - 1] = arguments[_key]
+  }
+  console[type].apply(console, args)
+}
+
+function formatLog () {
+  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
+    args[_key] = arguments[_key]
+  }
+  var type = args.shift()
+  if (isDebugMode()) {
+    args.push(args.pop().replace('at ', 'uni-app:///'))
+    return console[type].apply(console, args)
+  }
+
+  var msgs = args.map(function (v) {
+    var type = Object.prototype.toString.call(v).toLowerCase()
+
+    if (type === '[object object]' || type === '[object array]') {
+      try {
+        v = '---BEGIN:JSON---' + JSON.stringify(v, jsonStringifyReplacer) + '---END:JSON---'
+      } catch (e) {
+        v = type
+      }
+    } else {
+      if (v === null) {
+        v = '---NULL---'
+      } else if (v === undefined) {
+        v = '---UNDEFINED---'
+      } else {
+        var vType = typof(v).toUpperCase()
+
+        if (vType === 'NUMBER' || vType === 'BOOLEAN') {
+          v = '---BEGIN:' + vType + '---' + v + '---END:' + vType + '---'
+        } else {
+          v = String(v)
+        }
+      }
+    }
+
+    return v
+  })
+  var msg = ''
+
+  if (msgs.length > 1) {
+    var lastMsg = msgs.pop()
+    msg = msgs.join('---COMMA---')
+
+    if (lastMsg.indexOf(' at ') === 0) {
+      msg += lastMsg
+    } else {
+      msg += '---COMMA---' + lastMsg
+    }
+  } else {
+    msg = msgs[0]
+  }
+
+  console[type](msg)
+}
+
+
+/***/ }),
+/* 82 */
+/*!**********************************************************************************************************!*\
+  !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/js_sdk/u-charts/config-ucharts.js ***!
+  \**********************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0; /*
+                                                                                                      * uCharts庐
+                                                                                                      * 楂樻�ц兘璺ㄥ钩鍙板浘琛ㄥ簱锛屾敮鎸丠5銆丄PP銆佸皬绋嬪簭锛堝井淇�/鏀粯瀹�/鐧惧害/澶存潯/QQ/360锛夈�乂ue銆乀aro绛夋敮鎸乧anvas鐨勬鏋跺钩鍙�
+                                                                                                      * Copyright (c) 2021 QIUN庐绉嬩簯 https://www.ucharts.cn All rights reserved.
+                                                                                                      * Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
+                                                                                                      * 澶嶅埗浣跨敤璇蜂繚鐣欐湰娈垫敞閲婏紝鎰熻阿鏀寔寮�婧愶紒
+                                                                                                      * 
+                                                                                                      * uCharts庐瀹樻柟缃戠珯
+                                                                                                      * https://www.uCharts.cn
+                                                                                                      * 
+                                                                                                      * 寮�婧愬湴鍧�:
+                                                                                                      * https://gitee.com/uCharts/uCharts
+                                                                                                      * 
+                                                                                                      * uni-app鎻掍欢甯傚満鍦板潃锛�
+                                                                                                      * http://ext.dcloud.net.cn/plugin?id=271
+                                                                                                      * 
+                                                                                                      */
+
+// 涓婚棰滆壊閰嶇疆锛氬姣忎釜鍥捐〃绫诲瀷闇�瑕佷笉鍚屼富棰橈紝璇峰湪瀵瑰簲鍥捐〃绫诲瀷涓婃洿鏀筩olor灞炴��
+var color = ['#1890FF', '#91CB74', '#FAC858', '#EE6666', '#73C0DE', '#3CA272', '#FC8452', '#9A60B4', '#ea7ccc'];
+
+//浜嬩欢杞崲鍑芥暟锛屼富瑕佺敤浣滄牸寮忓寲x杞翠负鏃堕棿杞达紝鏍规嵁闇�姹傝嚜琛屼慨鏀�
+var formatDateTime = function formatDateTime(timeStamp, returnType) {
+  var date = new Date();
+  date.setTime(timeStamp * 1000);
+  var y = date.getFullYear();
+  var m = date.getMonth() + 1;
+  m = m < 10 ? '0' + m : m;
+  var d = date.getDate();
+  d = d < 10 ? '0' + d : d;
+  var h = date.getHours();
+  h = h < 10 ? '0' + h : h;
+  var minute = date.getMinutes();
+  var second = date.getSeconds();
+  minute = minute < 10 ? '0' + minute : minute;
+  second = second < 10 ? '0' + second : second;
+  if (returnType == 'full') {return y + '-' + m + '-' + d + ' ' + h + ':' + minute + ':' + second;}
+  if (returnType == 'y-m-d') {return y + '-' + m + '-' + d;}
+  if (returnType == 'h:m') {return h + ':' + minute;}
+  if (returnType == 'h:m:s') {return h + ':' + minute + ':' + second;}
+  return [y, m, d, h, minute, second];
+};
+
+var cfu = {
+  //demotype涓鸿嚜瀹氫箟鍥捐〃绫诲瀷锛屼竴鑸笉闇�瑕佽嚜瀹氫箟鍥捐〃绫诲瀷锛屽彧闇�瑕佹敼鏍硅妭鐐逛笂瀵瑰簲鐨勭被鍨嬪嵆鍙�
+  "type": ["pie", "ring", "rose", "word", "funnel", "map", "arcbar", "line", "column", "mount", "bar", "area", "radar", "gauge", "candle", "mix", "tline", "tarea", "scatter", "bubble", "demotype"],
+  "range": ["楗肩姸鍥�", "鍦嗙幆鍥�", "鐜懓鍥�", "璇嶄簯鍥�", "婕忔枟鍥�", "鍦板浘", "鍦嗗姬杩涘害鏉�", "鎶樼嚎鍥�", "鏌辩姸鍥�", "灞卞嘲鍥�", "鏉$姸鍥�", "鍖哄煙鍥�", "闆疯揪鍥�", "浠〃鐩�", "K绾垮浘", "娣峰悎鍥�", "鏃堕棿杞存姌绾�", "鏃堕棿杞村尯鍩�", "鏁g偣鍥�", "姘旀场鍥�", "鑷畾涔夌被鍨�"],
+  //澧炲姞鑷畾涔夊浘琛ㄧ被鍨嬶紝濡傛灉闇�瑕乧ategories锛岃鍦ㄨ繖閲屽姞鍏ユ偍鐨勫浘琛ㄧ被鍨嬶紝渚嬪鏈�鍚庣殑"demotype"
+  //鑷畾涔夌被鍨嬫椂闇�瑕佹敞鎰�"tline","tarea","scatter","bubble"绛夋椂闂磋酱锛堢煝閲弜杞达級绫诲浘琛紝娌℃湁categories锛屼笉闇�瑕佸姞鍏ategories
+  "categories": ["line", "column", "mount", "bar", "area", "radar", "gauge", "candle", "mix", "demotype"],
+  //instance涓哄疄渚嬪彉閲忔壙杞藉睘鎬э紝涓嶈鍒犻櫎
+  "instance": {},
+  //option涓簅pts鍙奺opts鎵胯浇灞炴�э紝涓嶈鍒犻櫎
+  "option": {},
+  //涓嬮潰鏄嚜瀹氫箟format閰嶇疆锛屽洜闄5绔鐨勫叾浠栫鏃犳硶閫氳繃props浼犻�掑嚱鏁帮紝鍙兘閫氳繃姝ゅ睘鎬у搴斾笅鏍囩殑鏂瑰紡鏉ユ浛鎹�
+  "formatter": {
+    "yAxisDemo1": function yAxisDemo1(val, index, opts) {return val + '鍏�';},
+    "yAxisDemo2": function yAxisDemo2(val, index, opts) {return val.toFixed(2);},
+    "xAxisDemo1": function xAxisDemo1(val, index, opts) {return val + '骞�';},
+    "xAxisDemo2": function xAxisDemo2(val, index, opts) {return formatDateTime(val, 'h:m');},
+    "seriesDemo1": function seriesDemo1(val, index, series, opts) {return val + '鍏�';},
+    "tooltipDemo1": function tooltipDemo1(item, category, index, opts) {
+      if (index == 0) {
+        return '闅忎究鐢�' + item.data + '骞�';
+      } else {
+        return '鍏朵粬鎴戞病鏀�' + item.data + '澶�';
+      }
+    },
+    "pieDemo": function pieDemo(val, index, series, opts) {
+      if (index !== undefined) {
+        return series[index].name + '锛�' + series[index].data + '鍏�';
+      }
+    } },
+
+  //杩欓噷婕旂ず浜嗚嚜瀹氫箟鎮ㄧ殑鍥捐〃绫诲瀷鐨刼ption锛屽彲浠ラ殢鎰忓懡鍚嶏紝涔嬪悗鍦ㄧ粍浠朵笂 type="demotype" 鍚庯紝缁勪欢浼氳皟鐢ㄨ繖涓姳鎷彿閲岀殑option锛屽鏋滅粍浠朵笂杩樺瓨鍦╫pts鍙傛暟锛屼細灏哾emotype涓巓pts涓璷ption鍚堝苟鍚庢覆鏌撳浘琛ㄣ��
+  "demotype": {
+    //鎴戣繖閲屾妸鏇茬嚎鍥惧綋鍋氫簡鑷畾涔夊浘琛ㄧ被鍨嬶紝鎮ㄥ彲浠ユ牴鎹渶瑕侀殢鎰忔寚瀹氱被鍨嬫垨閰嶇疆
+    "type": "line",
+    "color": color,
+    "padding": [15, 10, 0, 15],
+    "xAxis": {
+      "disableGrid": true },
+
+    "yAxis": {
+      "gridType": "dash",
+      "dashLength": 2 },
+
+    "legend": {},
+
+    "extra": {
+      "line": {
+        "type": "curve",
+        "width": 2 } } },
+
+
+
+  //涓嬮潰鏄嚜瀹氫箟閰嶇疆锛岃娣诲姞椤圭洰鎵�闇�鐨勯�氱敤閰嶇疆
+  "pie": {
+    "type": "pie",
+    "color": color,
+    "padding": [5, 5, 5, 5],
+    "extra": {
+      "pie": {
+        "activeOpacity": 0.5,
+        "activeRadius": 10,
+        "offsetAngle": 0,
+        "labelWidth": 15,
+        "border": true,
+        "borderWidth": 3,
+        "borderColor": "#FFFFFF" } } },
+
+
+
+  "ring": {
+    "type": "ring",
+    "color": color,
+    "padding": [5, 5, 5, 5],
+    "rotate": false,
+    "dataLabel": true,
+    "legend": {
+      "show": true,
+      "position": "right",
+      "lineHeight": 25 },
+
+    "title": {
+      "name": "鏀剁泭鐜�",
+      "fontSize": 15,
+      "color": "#666666" },
+
+    "subtitle": {
+      "name": "70%",
+      "fontSize": 25,
+      "color": "#7cb5ec" },
+
+    "extra": {
+      "ring": {
+        "ringWidth": 30,
+        "activeOpacity": 0.5,
+        "activeRadius": 10,
+        "offsetAngle": 0,
+        "labelWidth": 15,
+        "border": true,
+        "borderWidth": 3,
+        "borderColor": "#FFFFFF" } } },
+
+
+
+  "rose": {
+    "type": "rose",
+    "color": color,
+    "padding": [5, 5, 5, 5],
+    "legend": {
+      "show": true,
+      "position": "left",
+      "lineHeight": 25 },
+
+    "extra": {
+      "rose": {
+        "type": "area",
+        "minRadius": 50,
+        "activeOpacity": 0.5,
+        "activeRadius": 10,
+        "offsetAngle": 0,
+        "labelWidth": 15,
+        "border": false,
+        "borderWidth": 2,
+        "borderColor": "#FFFFFF" } } },
+
+
+
+  "word": {
+    "type": "word",
+    "color": color,
+    "extra": {
+      "word": {
+        "type": "normal",
+        "autoColors": false } } },
+
+
+
+  "funnel": {
+    "type": "funnel",
+    "color": color,
+    "padding": [15, 15, 0, 15],
+    "extra": {
+      "funnel": {
+        "activeOpacity": 0.3,
+        "activeWidth": 10,
+        "border": true,
+        "borderWidth": 2,
+        "borderColor": "#FFFFFF",
+        "fillOpacity": 1,
+        "labelAlign": "right" } } },
+
+
+
+  "map": {
+    "type": "map",
+    "color": color,
+    "padding": [0, 0, 0, 0],
+    "dataLabel": true,
+    "extra": {
+      "map": {
+        "border": true,
+        "borderWidth": 1,
+        "borderColor": "#666666",
+        "fillOpacity": 0.6,
+        "activeBorderColor": "#F04864",
+        "activeFillColor": "#FACC14",
+        "activeFillOpacity": 1 } } },
+
+
+
+  "arcbar": {
+    "type": "arcbar",
+    "color": color,
+    "title": {
+      "name": "鐧惧垎姣�",
+      "fontSize": 25,
+      "color": "#00FF00" },
+
+    "subtitle": {
+      "name": "榛樿鏍囬",
+      "fontSize": 15,
+      "color": "#666666" },
+
+    "extra": {
+      "arcbar": {
+        "type": "default",
+        "width": 12,
+        "backgroundColor": "#E9E9E9",
+        "startAngle": 0.75,
+        "endAngle": 0.25,
+        "gap": 2 } } },
+
+
+
+  "line": {
+    "type": "line",
+    "color": color,
+    "padding": [15, 10, 0, 15],
+    "xAxis": {
+      "disableGrid": true },
+
+    "yAxis": {
+      "gridType": "dash",
+      "dashLength": 2 },
+
+    "legend": {},
+
+    "extra": {
+      "line": {
+        "type": "straight",
+        "width": 2 } } },
+
+
+
+  "tline": {
+    "type": "line",
+    "color": color,
+    "padding": [15, 10, 0, 15],
+    "xAxis": {
+      "disableGrid": false,
+      "boundaryGap": "justify" },
+
+    "yAxis": {
+      "gridType": "dash",
+      "dashLength": 2,
+      "data": [
+      {
+        "min": 0,
+        "max": 80 }] },
+
+
+
+    "legend": {},
+
+    "extra": {
+      "line": {
+        "type": "curve",
+        "width": 2 } } },
+
+
+
+  "tarea": {
+    "type": "area",
+    "color": color,
+    "padding": [15, 10, 0, 15],
+    "xAxis": {
+      "disableGrid": true,
+      "boundaryGap": "justify" },
+
+    "yAxis": {
+      "gridType": "dash",
+      "dashLength": 2,
+      "data": [
+      {
+        "min": 0,
+        "max": 80 }] },
+
+
+
+    "legend": {},
+
+    "extra": {
+      "area": {
+        "type": "curve",
+        "opacity": 0.2,
+        "addLine": true,
+        "width": 2,
+        "gradient": true } } },
+
+
+
+  "column": {
+    "type": "column",
+    "color": color,
+    "padding": [15, 15, 0, 5],
+    "xAxis": {
+      "disableGrid": true },
+
+    "yAxis": {
+      "data": [{ "min": 0 }] },
+
+    "legend": {},
+
+    "extra": {
+      "column": {
+        "type": "group",
+        "width": 30,
+        "activeBgColor": "#000000",
+        "activeBgOpacity": 0.08 } } },
+
+
+
+  "mount": {
+    "type": "mount",
+    "color": color,
+    "padding": [15, 15, 0, 5],
+    "xAxis": {
+      "disableGrid": true },
+
+    "yAxis": {
+      "data": [{ "min": 0 }] },
+
+    "legend": {},
+
+    "extra": {
+      "mount": {
+        "type": "mount",
+        "widthRatio": 1.5 } } },
+
+
+
+  "bar": {
+    "type": "bar",
+    "color": color,
+    "padding": [15, 30, 0, 5],
+    "xAxis": {
+      "boundaryGap": "justify",
+      "disableGrid": false,
+      "min": 0,
+      "axisLine": false },
+
+    "yAxis": {},
+
+    "legend": {},
+
+    "extra": {
+      "bar": {
+        "type": "group",
+        "width": 30,
+        "meterBorde": 1,
+        "meterFillColor": "#FFFFFF",
+        "activeBgColor": "#000000",
+        "activeBgOpacity": 0.08 } } },
+
+
+
+  "area": {
+    "type": "area",
+    "color": color,
+    "padding": [15, 15, 0, 15],
+    "xAxis": {
+      "disableGrid": true },
+
+    "yAxis": {
+      "gridType": "dash",
+      "dashLength": 2 },
+
+    "legend": {},
+
+    "extra": {
+      "area": {
+        "type": "straight",
+        "opacity": 0.2,
+        "addLine": true,
+        "width": 2,
+        "gradient": false } } },
+
+
+
+  "radar": {
+    "type": "radar",
+    "color": color,
+    "padding": [5, 5, 5, 5],
+    "dataLabel": false,
+    "legend": {
+      "show": true,
+      "position": "right",
+      "lineHeight": 25 },
+
+    "extra": {
+      "radar": {
+        "gridType": "radar",
+        "gridColor": "#CCCCCC",
+        "gridCount": 3,
+        "opacity": 0.2,
+        "max": 200 } } },
+
+
+
+  "gauge": {
+    "type": "gauge",
+    "color": color,
+    "title": {
+      "name": "66Km/H",
+      "fontSize": 25,
+      "color": "#2fc25b",
+      "offsetY": 50 },
+
+    "subtitle": {
+      "name": "瀹炴椂閫熷害",
+      "fontSize": 15,
+      "color": "#1890ff",
+      "offsetY": -50 },
+
+    "extra": {
+      "gauge": {
+        "type": "default",
+        "width": 30,
+        "labelColor": "#666666",
+        "startAngle": 0.75,
+        "endAngle": 0.25,
+        "startNumber": 0,
+        "endNumber": 100,
+        "labelFormat": "",
+        "splitLine": {
+          "fixRadius": 0,
+          "splitNumber": 10,
+          "width": 30,
+          "color": "#FFFFFF",
+          "childNumber": 5,
+          "childWidth": 12 },
+
+        "pointer": {
+          "width": 24,
+          "color": "auto" } } } },
+
+
+
+
+  "candle": {
+    "type": "candle",
+    "color": color,
+    "padding": [15, 15, 0, 15],
+    "enableScroll": true,
+    "enableMarkLine": true,
+    "dataLabel": false,
+    "xAxis": {
+      "labelCount": 4,
+      "itemCount": 40,
+      "disableGrid": true,
+      "gridColor": "#CCCCCC",
+      "gridType": "solid",
+      "dashLength": 4,
+      "scrollShow": true,
+      "scrollAlign": "left",
+      "scrollColor": "#A6A6A6",
+      "scrollBackgroundColor": "#EFEBEF" },
+
+    "yAxis": {},
+
+    "legend": {},
+
+    "extra": {
+      "candle": {
+        "color": {
+          "upLine": "#f04864",
+          "upFill": "#f04864",
+          "downLine": "#2fc25b",
+          "downFill": "#2fc25b" },
+
+        "average": {
+          "show": true,
+          "name": ["MA5", "MA10", "MA30"],
+          "day": [5, 10, 20],
+          "color": ["#1890ff", "#2fc25b", "#facc14"] } },
+
+
+      "markLine": {
+        "type": "dash",
+        "dashLength": 5,
+        "data": [
+        {
+          "value": 2150,
+          "lineColor": "#f04864",
+          "showLabel": true },
+
+        {
+          "value": 2350,
+          "lineColor": "#f04864",
+          "showLabel": true }] } } },
+
+
+
+
+
+  "mix": {
+    "type": "mix",
+    "color": color,
+    "padding": [15, 15, 0, 15],
+    "xAxis": {
+      "disableGrid": true },
+
+    "yAxis": {
+      "disabled": false,
+      "disableGrid": false,
+      "splitNumber": 5,
+      "gridType": "dash",
+      "dashLength": 4,
+      "gridColor": "#CCCCCC",
+      "padding": 10,
+      "showTitle": true,
+      "data": [] },
+
+    "legend": {},
+
+    "extra": {
+      "mix": {
+        "column": {
+          "width": 20 } } } },
+
+
+
+
+  "scatter": {
+    "type": "scatter",
+    "color": color,
+    "padding": [15, 15, 0, 15],
+    "dataLabel": false,
+    "xAxis": {
+      "disableGrid": false,
+      "gridType": "dash",
+      "splitNumber": 5,
+      "boundaryGap": "justify",
+      "min": 0 },
+
+    "yAxis": {
+      "disableGrid": false,
+      "gridType": "dash" },
+
+    "legend": {},
+
+    "extra": {
+      "scatter": {} } },
+
+
+
+  "bubble": {
+    "type": "bubble",
+    "color": color,
+    "padding": [15, 15, 0, 15],
+    "xAxis": {
+      "disableGrid": false,
+      "gridType": "dash",
+      "splitNumber": 5,
+      "boundaryGap": "justify",
+      "min": 0,
+      "max": 250 },
+
+    "yAxis": {
+      "disableGrid": false,
+      "gridType": "dash",
+      "data": [{
+        "min": 0,
+        "max": 150 }] },
+
+
+    "legend": {},
+
+    "extra": {
+      "bubble": {
+        "border": 2,
+        "opacity": 0.5 } } } };var _default =
+
+
+
+
+
+cfu;exports.default = _default;
+
+/***/ }),
+/* 83 */
+/*!**********************************************************************************************************!*\
+  !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/js_sdk/u-charts/config-echarts.js ***!
+  \**********************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0; /*
+                                                                                                      * uCharts庐
+                                                                                                      * 楂樻�ц兘璺ㄥ钩鍙板浘琛ㄥ簱锛屾敮鎸丠5銆丄PP銆佸皬绋嬪簭锛堝井淇�/鏀粯瀹�/鐧惧害/澶存潯/QQ/360锛夈�乂ue銆乀aro绛夋敮鎸乧anvas鐨勬鏋跺钩鍙�
+                                                                                                      * Copyright (c) 2021 QIUN庐绉嬩簯 https://www.ucharts.cn All rights reserved.
+                                                                                                      * Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
+                                                                                                      * 澶嶅埗浣跨敤璇蜂繚鐣欐湰娈垫敞閲婏紝鎰熻阿鏀寔寮�婧愶紒
+                                                                                                      * 
+                                                                                                      * uCharts庐瀹樻柟缃戠珯
+                                                                                                      * https://www.uCharts.cn
+                                                                                                      * 
+                                                                                                      * 寮�婧愬湴鍧�:
+                                                                                                      * https://gitee.com/uCharts/uCharts
+                                                                                                      * 
+                                                                                                      * uni-app鎻掍欢甯傚満鍦板潃锛�
+                                                                                                      * http://ext.dcloud.net.cn/plugin?id=271
+                                                                                                      * 
+                                                                                                      */
+
+// 閫氱敤閰嶇疆椤�
+
+// 涓婚棰滆壊閰嶇疆锛氬姣忎釜鍥捐〃绫诲瀷闇�瑕佷笉鍚屼富棰橈紝璇峰湪瀵瑰簲鍥捐〃绫诲瀷涓婃洿鏀筩olor灞炴��
+var color = ['#1890FF', '#91CB74', '#FAC858', '#EE6666', '#73C0DE', '#3CA272', '#FC8452', '#9A60B4', '#ea7ccc'];
+
+var cfe = {
+  //demotype涓鸿嚜瀹氫箟鍥捐〃绫诲瀷
+  "type": ["pie", "ring", "rose", "funnel", "line", "column", "area", "radar", "gauge", "candle", "demotype"],
+  //澧炲姞鑷畾涔夊浘琛ㄧ被鍨嬶紝濡傛灉闇�瑕乧ategories锛岃鍦ㄨ繖閲屽姞鍏ユ偍鐨勫浘琛ㄧ被鍨嬩緥濡傛渶鍚庣殑"demotype"
+  "categories": ["line", "column", "area", "radar", "gauge", "candle", "demotype"],
+  //instance涓哄疄渚嬪彉閲忔壙杞藉睘鎬э紝option涓篹opts鎵胯浇灞炴�э紝涓嶈鍒犻櫎
+  "instance": {},
+  "option": {},
+  //涓嬮潰鏄嚜瀹氫箟format閰嶇疆锛屽洜闄5绔鐨勫叾浠栫鏃犳硶閫氳繃props浼犻�掑嚱鏁帮紝鍙兘閫氳繃姝ゅ睘鎬у搴斾笅鏍囩殑鏂瑰紡鏉ユ浛鎹�
+  "formatter": {
+    "tooltipDemo1": function tooltipDemo1(res) {
+      var result = '';
+      for (var i in res) {
+        if (i == 0) {
+          result += res[i].axisValueLabel + '骞撮攢鍞';
+        }
+        var value = '--';
+        if (res[i].data !== null) {
+          value = res[i].data;
+        }
+
+
+
+
+
+        result += '<br/>' + res[i].marker + res[i].seriesName + '锛�' + value + ' 涓囧厓';
+
+      }
+      return result;
+    },
+    legendFormat: function legendFormat(name) {
+      return "鑷畾涔夊浘渚�+" + name;
+    },
+    yAxisFormatDemo: function yAxisFormatDemo(value, index) {
+      return value + '鍏�';
+    },
+    seriesFormatDemo: function seriesFormatDemo(res) {
+      return res.name + '骞�' + res.value + '鍏�';
+    } },
+
+  //杩欓噷婕旂ず浜嗚嚜瀹氫箟鎮ㄧ殑鍥捐〃绫诲瀷鐨刼ption锛屽彲浠ラ殢鎰忓懡鍚嶏紝涔嬪悗鍦ㄧ粍浠朵笂 type="demotype" 鍚庯紝缁勪欢浼氳皟鐢ㄨ繖涓姳鎷彿閲岀殑option锛屽鏋滅粍浠朵笂杩樺瓨鍦╡opts鍙傛暟锛屼細灏哾emotype涓巈opts涓璷ption鍚堝苟鍚庢覆鏌撳浘琛ㄣ��
+  "demotype": {
+    "color": color
+    //鍦ㄨ繖閲屽~鍐檈charts鐨刼ption鍗冲彲
+  },
+
+  //涓嬮潰鏄嚜瀹氫箟閰嶇疆锛岃娣诲姞椤圭洰鎵�闇�鐨勯�氱敤閰嶇疆
+  "column": {
+    "color": color,
+    "title": {
+      "text": '' },
+
+    "tooltip": {
+      "trigger": 'axis' },
+
+    "grid": {
+      "top": 30,
+      "bottom": 50,
+      "right": 15,
+      "left": 40 },
+
+    "legend": {
+      "bottom": 'left' },
+
+    "toolbox": {
+      "show": false },
+
+    "xAxis": {
+      "type": 'category',
+      "axisLabel": {
+        "color": '#666666' },
+
+      "axisLine": {
+        "lineStyle": {
+          "color": '#CCCCCC' } },
+
+
+      "boundaryGap": true,
+      "data": [] },
+
+    "yAxis": {
+      "type": 'value',
+      "axisTick": {
+        "show": false },
+
+      "axisLabel": {
+        "color": '#666666' },
+
+      "axisLine": {
+        "lineStyle": {
+          "color": '#CCCCCC' } } },
+
+
+
+    "seriesTemplate": {
+      "name": '',
+      "type": 'bar',
+      "data": [],
+      "barwidth": 20,
+      "label": {
+        "show": true,
+        "color": "#666666",
+        "position": 'top' } } },
+
+
+
+  "line": {
+    "color": color,
+    "title": {
+      "text": '' },
+
+    "tooltip": {
+      "trigger": 'axis' },
+
+    "grid": {
+      "top": 30,
+      "bottom": 50,
+      "right": 15,
+      "left": 40 },
+
+    "legend": {
+      "top": 'left',
+      "textStyle": {
+        "color": '#cccccc' } },
+
+
+    "toolbox": {
+      "show": false },
+
+    "xAxis": {
+      "type": 'category',
+      "axisLabel": {
+        "color": '#CCCCCC' },
+
+      "axisLine": {
+        "lineStyle": {
+          "color": '#CCCCCC' } },
+
+
+      "boundaryGap": false,
+      "data": [] },
+
+    "yAxis": {
+      "type": 'value',
+      "axisTick": {
+        "show": false },
+
+      "axisLabel": {
+        "color": '#CCCCCC' },
+
+      "axisLine": {
+        "lineStyle": {
+          "color": '#CCCCCC' } } },
+
+
+
+    "seriesTemplate": {
+      "name": '',
+      "type": 'line',
+      "data": [],
+      "barwidth": 20,
+      "label": {
+        "show": false,
+        "color": "#666666",
+        "position": 'top' } } },
+
+
+
+  "area": {
+    "color": color,
+    "title": {
+      "text": '' },
+
+    "tooltip": {
+      "trigger": 'axis' },
+
+    "grid": {
+      "top": 30,
+      "bottom": 50,
+      "right": 15,
+      "left": 40 },
+
+    "legend": {
+      "bottom": 'left' },
+
+    "toolbox": {
+      "show": false },
+
+    "xAxis": {
+      "type": 'category',
+      "axisLabel": {
+        "color": '#666666' },
+
+      "axisLine": {
+        "lineStyle": {
+          "color": '#CCCCCC' } },
+
+
+      "boundaryGap": true,
+      "data": [] },
+
+    "yAxis": {
+      "type": 'value',
+      "axisTick": {
+        "show": false },
+
+      "axisLabel": {
+        "color": '#666666' },
+
+      "axisLine": {
+        "lineStyle": {
+          "color": '#CCCCCC' } } },
+
+
+
+    "seriesTemplate": {
+      "name": '',
+      "type": 'line',
+      "data": [],
+      "areaStyle": {},
+      "label": {
+        "show": true,
+        "color": "#666666",
+        "position": 'top' } } },
+
+
+
+  "pie": {
+    "color": color,
+    "title": {
+      "text": '' },
+
+    "tooltip": {
+      "trigger": 'item' },
+
+    "grid": {
+      "top": 40,
+      "bottom": 30,
+      "right": 15,
+      "left": 15 },
+
+    "legend": {
+      "bottom": 'left' },
+
+    "seriesTemplate": {
+      "name": '',
+      "type": 'pie',
+      "data": [],
+      "radius": '50%',
+      "label": {
+        "show": true,
+        "color": "#666666",
+        "position": 'top' } } },
+
+
+
+  "ring": {
+    "color": color,
+    "title": {
+      "text": '' },
+
+    "tooltip": {
+      "trigger": 'item' },
+
+    "grid": {
+      "top": 40,
+      "bottom": 30,
+      "right": 15,
+      "left": 15 },
+
+    "legend": {
+      "bottom": 'left',
+      "textStyle": {
+        "color": '#cccccc' } },
+
+
+    "seriesTemplate": {
+      "name": '',
+      "type": 'pie',
+      "data": [],
+      "radius": ['30%', '60%'],
+      "avoidLabelOverlap": false,
+      "label": {
+        "show": false,
+        "color": "#FFF",
+        "position": 'top' },
+
+      "labelLine": {
+        "show": true } } },
+
+
+
+  "rose": {
+    "color": color,
+    "title": {
+      "text": '' },
+
+    "tooltip": {
+      "trigger": 'item' },
+
+    "legend": {
+      "top": 'bottom' },
+
+    "seriesTemplate": {
+      "name": '',
+      "type": 'pie',
+      "data": [],
+      "radius": "55%",
+      "center": ['50%', '50%'],
+      "roseType": 'area' } },
+
+
+  "funnel": {
+    "color": color,
+    "title": {
+      "text": '' },
+
+    "tooltip": {
+      "trigger": 'item',
+      "formatter": "{b} : {c}%" },
+
+    "legend": {
+      "top": 'bottom' },
+
+    "seriesTemplate": {
+      "name": '',
+      "type": 'funnel',
+      "left": '10%',
+      "top": 60,
+      "bottom": 60,
+      "width": '80%',
+      "min": 0,
+      "max": 100,
+      "minSize": '0%',
+      "maxSize": '100%',
+      "sort": 'descending',
+      "gap": 2,
+      "label": {
+        "show": true,
+        "position": 'inside' },
+
+      "labelLine": {
+        "length": 10,
+        "lineStyle": {
+          "width": 1,
+          "type": 'solid' } },
+
+
+      "itemStyle": {
+        "bordercolor": '#fff',
+        "borderwidth": 1 },
+
+      "emphasis": {
+        "label": {
+          "fontSize": 20 } },
+
+
+      "data": [] } },
+
+
+  "gauge": {
+    "color": color,
+    "tooltip": {
+      "formatter": '{a} <br/>{b} : {c}%' },
+
+    "seriesTemplate": {
+      "name": '涓氬姟鎸囨爣',
+      "type": 'gauge',
+      "detail": { "formatter": '{value}%' },
+      "data": [{ "value": 50, "name": '瀹屾垚鐜�' }] } },
+
+
+  "candle": {
+    "xAxis": {
+      "data": [] },
+
+    "yAxis": {},
+    "color": color,
+    "title": {
+      "text": '' },
+
+    "dataZoom": [{
+      "type": 'inside',
+      "xAxisIndex": [0, 1],
+      "start": 10,
+      "end": 100 },
+
+    {
+      "show": true,
+      "xAxisIndex": [0, 1],
+      "type": 'slider',
+      "bottom": 10,
+      "start": 10,
+      "end": 100 }],
+
+
+    "seriesTemplate": {
+      "name": '',
+      "type": 'k',
+      "data": [] } } };var _default =
+
+
+
+
+cfe;exports.default = _default;
+
+/***/ }),
+/* 84 */
+/*!**************************************************************************************************************************************************!*\
+  !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue?vue&type=script&lang=js& ***!
+  \**************************************************************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/script.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./qiun-data-charts.vue?vue&type=script&lang=js& */ 85);
+/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);
+/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
+ /* harmony default export */ __webpack_exports__["default"] = (_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); 
+
+/***/ }),
+/* 85 */
+/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
+  !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/script.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue?vue&type=script&lang=js& ***!
+  \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;var _default =
+
+{
+  name: "qiun-data-charts", props: ["type", "canvasId", "canvas2d", "background", "animation", "chartData", "opts", "eopts", "loadingType", "errorShow", "errorReload", "errorMessage", "inScrollView", "reshow", "reload", "disableScroll", "optsWatch", "onzoom", "ontap", "ontouch", "onmouse", "onmovetip", "echartsH5", "echartsApp", "tooltipShow", "tooltipFormat", "tooltipCustom", "startDate", "endDate", "textEnum", "groupEnum", "pageScrollTop", "directory", "tapLegend", "menus"],
+  data: function data() {
+    return {
+      wxsProps: {} };
+
+  },
+  components: {} };exports.default = _default;
+
+/***/ }),
+/* 86 */
+/*!**********************************************************************************************************************************************************************************!*\
+  !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue?vue&type=style&index=0&id=fe947b98&scoped=true&lang=css& ***!
+  \**********************************************************************************************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_data_charts_vue_vue_type_style_index_0_id_fe947b98_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/app-vue-style-loader??ref--6-oneOf-1-0!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/postcss-loader/src??ref--6-oneOf-1-3!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./qiun-data-charts.vue?vue&type=style&index=0&id=fe947b98&scoped=true&lang=css& */ 87);
+/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_data_charts_vue_vue_type_style_index_0_id_fe947b98_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_data_charts_vue_vue_type_style_index_0_id_fe947b98_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__);
+/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_data_charts_vue_vue_type_style_index_0_id_fe947b98_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_data_charts_vue_vue_type_style_index_0_id_fe947b98_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
+ /* harmony default export */ __webpack_exports__["default"] = (_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_data_charts_vue_vue_type_style_index_0_id_fe947b98_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a); 
+
+/***/ }),
+/* 87 */
+/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
+  !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/app-vue-style-loader??ref--6-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!./node_modules/postcss-loader/src??ref--6-oneOf-1-3!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue?vue&type=style&index=0&id=fe947b98&scoped=true&lang=css& ***!
+  \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+// style-loader: Adds some css to the DOM by adding a <style> tag
+
+// load the styles
+var content = __webpack_require__(/*! !../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/postcss-loader/src??ref--6-oneOf-1-3!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./qiun-data-charts.vue?vue&type=style&index=0&id=fe947b98&scoped=true&lang=css& */ 88);
+if(content.__esModule) content = content.default;
+if(typeof content === 'string') content = [[module.i, content, '']];
+if(content.locals) module.exports = content.locals;
+// add the styles to the DOM
+var add = __webpack_require__(/*! ../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/app-vue-style-loader/lib/addStylesClient.js */ 20).default
+var update = add("cdb46eb0", content, false, {"sourceMap":false,"shadowMode":false});
+// Hot Module Replacement
+if(false) {}
+
+/***/ }),
+/* 88 */
+/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
+  !*** ./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!./node_modules/postcss-loader/src??ref--6-oneOf-1-3!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue?vue&type=style&index=0&id=fe947b98&scoped=true&lang=css& ***!
+  \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+// Imports
+var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/runtime/api.js */ 19);
+exports = ___CSS_LOADER_API_IMPORT___(false);
+// Module
+exports.push([module.i, "\n.chartsview[data-v-fe947b98] {\r\n  width: 100%;\r\n  height: 100%;\r\n  display: flex;\r\n  flex: 1;\r\n  justify-content: center;\r\n  align-items: center;\n}\r\n", ""]);
+// Exports
+module.exports = exports;
+
+
+/***/ }),
+/* 89 */
 /*!***************************************************************************************************!*\
   !*** D:/Workspace/zy/private/Monitor-APP/pages/home/home.vue?vue&type=script&lang=js&mpType=page ***!
   \***************************************************************************************************/
@@ -1474,13 +12640,13 @@
 
 "use strict";
 __webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_home_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/script.js!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./home.vue?vue&type=script&lang=js&mpType=page */ 23);
+/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_home_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/script.js!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./home.vue?vue&type=script&lang=js&mpType=page */ 90);
 /* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_home_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_home_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__);
 /* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_home_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_home_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
  /* harmony default export */ __webpack_exports__["default"] = (_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_home_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0___default.a); 
 
 /***/ }),
-/* 23 */
+/* 90 */
 /*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
   !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/script.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/Workspace/zy/private/Monitor-APP/pages/home/home.vue?vue&type=script&lang=js&mpType=page ***!
   \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
@@ -1500,7 +12666,7 @@
   components: {} };exports.default = _default;
 
 /***/ }),
-/* 24 */
+/* 91 */
 /*!***********************************************************************************************************!*\
   !*** D:/Workspace/zy/private/Monitor-APP/pages/home/home.vue?vue&type=style&index=0&lang=css&mpType=page ***!
   \***********************************************************************************************************/
@@ -1509,13 +12675,13 @@
 
 "use strict";
 __webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_home_vue_vue_type_style_index_0_lang_css_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/app-vue-style-loader??ref--6-oneOf-1-0!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/postcss-loader/src??ref--6-oneOf-1-3!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./home.vue?vue&type=style&index=0&lang=css&mpType=page */ 25);
+/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_home_vue_vue_type_style_index_0_lang_css_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/app-vue-style-loader??ref--6-oneOf-1-0!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/postcss-loader/src??ref--6-oneOf-1-3!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./home.vue?vue&type=style&index=0&lang=css&mpType=page */ 92);
 /* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_home_vue_vue_type_style_index_0_lang_css_mpType_page__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_home_vue_vue_type_style_index_0_lang_css_mpType_page__WEBPACK_IMPORTED_MODULE_0__);
 /* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_home_vue_vue_type_style_index_0_lang_css_mpType_page__WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_home_vue_vue_type_style_index_0_lang_css_mpType_page__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
  /* harmony default export */ __webpack_exports__["default"] = (_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_home_vue_vue_type_style_index_0_lang_css_mpType_page__WEBPACK_IMPORTED_MODULE_0___default.a); 
 
 /***/ }),
-/* 25 */
+/* 92 */
 /*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
   !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/app-vue-style-loader??ref--6-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!./node_modules/postcss-loader/src??ref--6-oneOf-1-3!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/Workspace/zy/private/Monitor-APP/pages/home/home.vue?vue&type=style&index=0&lang=css&mpType=page ***!
   \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
@@ -1525,7 +12691,7 @@
 // style-loader: Adds some css to the DOM by adding a <style> tag
 
 // load the styles
-var content = __webpack_require__(/*! !../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/postcss-loader/src??ref--6-oneOf-1-3!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./home.vue?vue&type=style&index=0&lang=css&mpType=page */ 26);
+var content = __webpack_require__(/*! !../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/postcss-loader/src??ref--6-oneOf-1-3!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./home.vue?vue&type=style&index=0&lang=css&mpType=page */ 93);
 if(content.__esModule) content = content.default;
 if(typeof content === 'string') content = [[module.i, content, '']];
 if(content.locals) module.exports = content.locals;
@@ -1536,7 +12702,7 @@
 if(false) {}
 
 /***/ }),
-/* 26 */
+/* 93 */
 /*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
   !*** ./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!./node_modules/postcss-loader/src??ref--6-oneOf-1-3!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/Workspace/zy/private/Monitor-APP/pages/home/home.vue?vue&type=style&index=0&lang=css&mpType=page ***!
   \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
@@ -1545,20 +12711,20 @@
 
 // Imports
 var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/runtime/api.js */ 19);
-var ___CSS_LOADER_GET_URL_IMPORT___ = __webpack_require__(/*! ../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/lib/app-plus/getUrl.js */ 27);
-var ___CSS_LOADER_URL_IMPORT_0___ = __webpack_require__(/*! ../../static/background.png */ 28);
-var ___CSS_LOADER_URL_IMPORT_1___ = __webpack_require__(/*! ../../static/right.png */ 29);
+var ___CSS_LOADER_GET_URL_IMPORT___ = __webpack_require__(/*! ../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/lib/app-plus/getUrl.js */ 94);
+var ___CSS_LOADER_URL_IMPORT_0___ = __webpack_require__(/*! ../../static/background.png */ 95);
+var ___CSS_LOADER_URL_IMPORT_1___ = __webpack_require__(/*! ../../static/right.png */ 96);
 exports = ___CSS_LOADER_API_IMPORT___(false);
 var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);
 var ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);
 // Module
-exports.push([module.i, "/* @media (max-width: 1900px) {\n\tview {\n\t\tfont-size: 100px;\n\t}\n}\n@media (max-width: 1400px) {\n\tview {\n\t\tfont-size: 25px;\n\t}\n}\n@media (max-width: 1200px) {\n\tview {\n\t\tfont-size: 20px;\n\t}\n}\n@media (max-width: 992px) {\n\tview {\n\t\tfont-size: 12px;\n\t}\n}\n@media (max-width: 768px) {\n\tview {\n\t\tfont-size: 10px;\n\t}\n} */\n.container{\n\twidth: 100vw;\n\tmin-height: 100vh;\n\tbackground-color: blue;\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n\tcolor: #fff;\n}\n/* 涓昏鍥� */\n.home-view {\n\twidth: 100vw;\n\tmin-height: 100vh;\n\tbackground-image: url(" + ___CSS_LOADER_URL_REPLACEMENT_0___ + ");\n\tbackground-size: 100vw 100vh;\n}\n.home-right {\n\twidth: 50vw;\n\theight: 89vh;\n\t/* background-color: cadetblue; */\n}\n.home-right-box {\n\twidth: 98%;\n\theight: 98%;\n}\n.head {\n\twidth: 100vw;\n\theight: 11vh;\n\tfont-size:4vw;\n\tfont-weight: 700;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\t-webkit-transform: scale(0.7);\n\t        transform: scale(0.7);\n}\n.time-tools {\n\tposition: absolute;\n\tright: 2%;\n\ttop: 2%;\n\tfont-size:1vw;\n\t-webkit-transform: scale(0.8);\n\t        transform: scale(0.8);\n}\n.button-left {\n\tposition: absolute;\n\tbackground-image: url(" + ___CSS_LOADER_URL_REPLACEMENT_1___ + ");\n\tbackground-size: 100% 100%;\n\ttop: 1.8%;\n\tleft: 21.3%;\n\twidth: 13.5%;\n\theight: 8.5%;\n\t-webkit-transform: scaleX(-1);\n\t        transform: scaleX(-1);\n}\n.button-right {\n\tposition: absolute;\n\tbackground-image: url(" + ___CSS_LOADER_URL_REPLACEMENT_1___ + ");\n\tbackground-size: 100% 100%;\n\ttop: 1.8%;\n\tleft: 65%;\n\twidth: 13.5%;\n\theight: 8.5%;\n}\n/* 鍏辩敤 */\n.main {\n\twidth: 100vw;\n\theight: 88vh;\n\tmargin-top: 1vh;\n\tdisplay: flex;\n}\n.mian-item {\n\twidth: 50%;\n\theight: 100%;\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n\tjustify-content: center;\n}\n.mian-item-box {\n\twidth: 98%;\n\theight: 98%;\n}\n.box-item {\n\twidth: 100%;\n\tmargin-top: 2%;\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: flex-start;\n\tjustify-content: flex-start;\n}\n.item-title {\n\tfont-size:1.5vw;\n\tfont-weight: 700;\n}\n.item-subTitle {\n\tfont-size:0.5vw;\n\ttext-indent: 1em;\n}\n.item-text {\n\tfont-size: 1vw;\n\ttext-indent: 2em;\n\tletter-spacing: 1px;\n}\n.img-box {\n\twidth: 100%;\n\tbackground-color: #666666;\n\tdisplay: flex;\n\tflex-direction: row;\n\tjustify-content: flex-start;\n\tflex-wrap: wrap;\n}\n.item-img {\n\twidth: 50%;\n\tmargin-top: 3%;\n\tbackground-color: #00ffff;\n\tdisplay: flex;\n\tflex-direction: row;\n\tjustify-content: flex-start;\n\talign-items: flex-start;\n}\n.item-img uni-image {\n\theight: 5vw;\n\twidth: 5vw;\n}\n/* 鍏ㄦ澘/鎷f枡淇℃伅 */\n.info {\n\twidth: 100vw;\n\tmin-height: 100vh;\n\tbackground-color: #666666;\n}\n/* 寮傚父淇℃伅 */\n.error-info {\n\twidth: 100vw;\n\tmin-height: 100vh;\n\tbackground-color: #00ffff;\n}\n", ""]);
+exports.push([module.i, "/* @media (max-width: 1900px) {\n\tview {\n\t\tfont-size: 100px;\n\t}\n}\n@media (max-width: 1400px) {\n\tview {\n\t\tfont-size: 25px;\n\t}\n}\n@media (max-width: 1200px) {\n\tview {\n\t\tfont-size: 20px;\n\t}\n}\n@media (max-width: 992px) {\n\tview {\n\t\tfont-size: 12px;\n\t}\n}\n@media (max-width: 768px) {\n\tview {\n\t\tfont-size: 10px;\n\t}\n} */\n/* 鍒� */\n.flex-col {\n\tdisplay: flex;\n\tflex-direction: column;\n}\n/* 琛� */\n.flex-row {\n\tdisplay: flex;\n\tflex-direction: row;\n}\n.container{\n\twidth: 100vw;\n\tmin-height: 100vh;\n\tbackground-color: blue;\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n\tcolor: #fff;\n}\n/* 涓昏鍥� */\n.home-view {\n\twidth: 100vw;\n\tmin-height: 100vh;\n\tbackground-image: url(" + ___CSS_LOADER_URL_REPLACEMENT_0___ + ");\n\tbackground-size: 100vw 100vh;\n}\n.home-right {\n\twidth: 50vw;\n\theight: 89vh;\n\t/* background-color: cadetblue; */\n}\n.home-right-box {\n\twidth: 98%;\n\theight: 98%;\n}\n.head {\n\twidth: 100vw;\n\theight: 11vh;\n\tfont-size:4vw;\n\tfont-weight: 700;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\t-webkit-transform: scale(0.7);\n\t        transform: scale(0.7);\n}\n.time-tools {\n\tposition: absolute;\n\tright: 2%;\n\ttop: 2%;\n\tfont-size:1vw;\n\t-webkit-transform: scale(0.8);\n\t        transform: scale(0.8);\n}\n.button-left {\n\tposition: absolute;\n\tbackground-image: url(" + ___CSS_LOADER_URL_REPLACEMENT_1___ + ");\n\tbackground-size: 100% 100%;\n\ttop: 1.8%;\n\tleft: 21.3%;\n\twidth: 13.5%;\n\theight: 8.5%;\n\t-webkit-transform: scaleX(-1);\n\t        transform: scaleX(-1);\n}\n.button-right {\n\tposition: absolute;\n\tbackground-image: url(" + ___CSS_LOADER_URL_REPLACEMENT_1___ + ");\n\tbackground-size: 100% 100%;\n\ttop: 1.8%;\n\tleft: 65%;\n\twidth: 13.5%;\n\theight: 8.5%;\n}\n.progressBar {\n\tmargin-top: 9%;\n\t/* width: 100%; */\n\theight: 20%;\n\tbackground-color: #233751;\n\tborder-radius: 5vw;\n}\n.progress {\n\t/* width: 90%; */\n\theight: 100%;\n\tbackground-color: #FF5722;\n\tborder-radius: 5vw;\n}\n.charts-box {\n  width: 80%;\n  height: 24vh;\n  margin-left: 10%;\n}\n/* 鍏辩敤 */\n.main {\n\twidth: 100vw;\n\theight: 88vh;\n\tmargin-top: 1vh;\n\tdisplay: flex;\n}\n.mian-item {\n\twidth: 50%;\n\theight: 100%;\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n\tjustify-content: center;\n}\n.mian-item-box {\n\twidth: 98%;\n\theight: 98%;\n}\n.box-item {\n\twidth: 100%;\n\tmargin-top: 4%;\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: flex-start;\n\tjustify-content: flex-start;\n}\n.item-title {\n\tfont-size:1.5vw;\n\tfont-weight: 700;\n}\n.item-subTitle {\n\tfont-size:0.5vw;\n\ttext-indent: 0em;\n}\n.item-text {\n\tfont-size: 1vw;\n\ttext-indent: 2em;\n\tletter-spacing: 1px;\n\tline-height: 3vh;\n}\n.img-box {\n\twidth: 100%;\n\t/* background-color: #666666; */\n\tdisplay: flex;\n\tflex-direction: row;\n\tjustify-content: flex-start;\n\tflex-wrap: wrap;\n\tfont-size: 1vw;\n}\n.item-img {\n\twidth: 50%;\n\tmargin-top: 5%;\n\tdisplay: flex;\n\tflex-direction: row;\n\t/* background-color: #00ffff; */\n\tjustify-content: flex-start;\n\talign-items: flex-start;\n}\n.distance {\n}\n.item-img uni-image {\n\theight: 5vw;\n\twidth: 5vw;\n}\n/* 鍏ㄦ澘/鎷f枡淇℃伅 */\n.info {\n\twidth: 100vw;\n\tmin-height: 100vh;\n\tbackground-color: #666666;\n}\n/* 寮傚父淇℃伅 */\n.error-info {\n\twidth: 100vw;\n\tmin-height: 100vh;\n\tbackground-color: #00ffff;\n}\n", ""]);
 // Exports
 module.exports = exports;
 
 
 /***/ }),
-/* 27 */
+/* 94 */
 /*!**************************************************************************!*\
   !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/app-plus/getUrl.js ***!
   \**************************************************************************/
@@ -1602,7 +12768,7 @@
 
 
 /***/ }),
-/* 28 */
+/* 95 */
 /*!*****************************************************************!*\
   !*** D:/Workspace/zy/private/Monitor-APP/static/background.png ***!
   \*****************************************************************/
@@ -1612,7 +12778,7 @@
 module.exports = "/static/background.png";
 
 /***/ }),
-/* 29 */
+/* 96 */
 /*!************************************************************!*\
   !*** D:/Workspace/zy/private/Monitor-APP/static/right.png ***!
   \************************************************************/
@@ -1622,7 +12788,7 @@
 module.exports = "/static/right.png";
 
 /***/ }),
-/* 30 */
+/* 97 */
 /*!*****************************************************************************!*\
   !*** D:/Workspace/zy/private/Monitor-APP/pages/index/index.vue?mpType=page ***!
   \*****************************************************************************/
@@ -1631,7 +12797,7 @@
 
 "use strict";
 __webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _index_vue_vue_type_template_id_2be84a3c_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index.vue?vue&type=template&id=2be84a3c&mpType=page */ 31);
+/* harmony import */ var _index_vue_vue_type_template_id_2be84a3c_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index.vue?vue&type=template&id=2be84a3c&mpType=page */ 98);
 /* harmony import */ var _index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index.vue?vue&type=script&lang=js&mpType=page */ 116);
 /* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));
 /* harmony import */ var _index_vue_vue_type_style_index_0_lang_css_mpType_page__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./index.vue?vue&type=style&index=0&lang=css&mpType=page */ 118);
@@ -1662,7 +12828,7 @@
 /* harmony default export */ __webpack_exports__["default"] = (component.exports);
 
 /***/ }),
-/* 31 */
+/* 98 */
 /*!***********************************************************************************************************!*\
   !*** D:/Workspace/zy/private/Monitor-APP/pages/index/index.vue?vue&type=template&id=2be84a3c&mpType=page ***!
   \***********************************************************************************************************/
@@ -1671,7 +12837,7 @@
 
 "use strict";
 __webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_index_vue_vue_type_template_id_2be84a3c_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--16-0!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./index.vue?vue&type=template&id=2be84a3c&mpType=page */ 32);
+/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_index_vue_vue_type_template_id_2be84a3c_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--16-0!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./index.vue?vue&type=template&id=2be84a3c&mpType=page */ 99);
 /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_index_vue_vue_type_template_id_2be84a3c_mpType_page__WEBPACK_IMPORTED_MODULE_0__["render"]; });
 
 /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_index_vue_vue_type_template_id_2be84a3c_mpType_page__WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
@@ -1683,7 +12849,7 @@
 
 
 /***/ }),
-/* 32 */
+/* 99 */
 /*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
   !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--16-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/Workspace/zy/private/Monitor-APP/pages/index/index.vue?vue&type=template&id=2be84a3c&mpType=page ***!
   \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
@@ -1699,7 +12865,7 @@
 var components
 try {
   components = {
-    qiunDataCharts: __webpack_require__(/*! @/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue */ 33)
+    qiunDataCharts: __webpack_require__(/*! @/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue */ 22)
       .default,
     uniPopup: __webpack_require__(/*! @/uni_modules/uni-popup/components/uni-popup/uni-popup.vue */ 100)
       .default,
@@ -3012,9936 +14178,6 @@
 
 
 /***/ }),
-/* 33 */
-/*!*************************************************************************************************************************!*\
-  !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue ***!
-  \*************************************************************************************************************************/
-/*! no static exports found */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _qiun_data_charts_vue_vue_type_template_id_fe947b98_scoped_true_filter_modules_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM3MjU4LCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjUxOTM1fX0_3D___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./qiun-data-charts.vue?vue&type=template&id=fe947b98&scoped=true&filter-modules=eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM3MjU4LCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjUxOTM1fX0%3D& */ 34);
-/* harmony import */ var _qiun_data_charts_vue_vue_type_renderjs_module_rdcharts_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./qiun-data-charts.vue?vue&type=renderjs&module=rdcharts&lang=js& */ 89);
-/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _qiun_data_charts_vue_vue_type_renderjs_module_rdcharts_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _qiun_data_charts_vue_vue_type_renderjs_module_rdcharts_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));
-/* harmony import */ var _qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./qiun-data-charts.vue?vue&type=script&lang=js& */ 95);
-/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_2__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_2__[key]; }) }(__WEBPACK_IMPORT_KEY__));
-/* harmony import */ var _qiun_data_charts_vue_vue_type_style_index_0_id_fe947b98_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./qiun-data-charts.vue?vue&type=style&index=0&id=fe947b98&scoped=true&lang=css& */ 97);
-/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 10);
-
-
-_qiun_data_charts_vue_vue_type_renderjs_module_rdcharts_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"].__module = 'rdcharts'
-
-
-
-
-
-
-/* normalize component */
-
-var component = Object(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_4__["default"])(
-  _qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_2__["default"],
-  _qiun_data_charts_vue_vue_type_template_id_fe947b98_scoped_true_filter_modules_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM3MjU4LCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjUxOTM1fX0_3D___WEBPACK_IMPORTED_MODULE_0__["render"],
-  _qiun_data_charts_vue_vue_type_template_id_fe947b98_scoped_true_filter_modules_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM3MjU4LCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjUxOTM1fX0_3D___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
-  false,
-  null,
-  "fe947b98",
-  null,
-  false,
-  _qiun_data_charts_vue_vue_type_template_id_fe947b98_scoped_true_filter_modules_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM3MjU4LCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjUxOTM1fX0_3D___WEBPACK_IMPORTED_MODULE_0__["components"],
-  _qiun_data_charts_vue_vue_type_renderjs_module_rdcharts_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"]
-)
-
-component.options.__file = "uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue"
-/* harmony default export */ __webpack_exports__["default"] = (component.exports);
-
-/***/ }),
-/* 34 */
-/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
-  !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue?vue&type=template&id=fe947b98&scoped=true&filter-modules=eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM3MjU4LCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjUxOTM1fX0%3D& ***!
-  \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************/
-/*! exports provided: render, staticRenderFns, recyclableRender, components */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_data_charts_vue_vue_type_template_id_fe947b98_scoped_true_filter_modules_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM3MjU4LCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjUxOTM1fX0_3D___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--16-0!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./qiun-data-charts.vue?vue&type=template&id=fe947b98&scoped=true&filter-modules=eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM3MjU4LCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjUxOTM1fX0%3D& */ 35);
-/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_data_charts_vue_vue_type_template_id_fe947b98_scoped_true_filter_modules_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM3MjU4LCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjUxOTM1fX0_3D___WEBPACK_IMPORTED_MODULE_0__["render"]; });
-
-/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_data_charts_vue_vue_type_template_id_fe947b98_scoped_true_filter_modules_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM3MjU4LCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjUxOTM1fX0_3D___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
-
-/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_data_charts_vue_vue_type_template_id_fe947b98_scoped_true_filter_modules_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM3MjU4LCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjUxOTM1fX0_3D___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; });
-
-/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_data_charts_vue_vue_type_template_id_fe947b98_scoped_true_filter_modules_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM3MjU4LCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjUxOTM1fX0_3D___WEBPACK_IMPORTED_MODULE_0__["components"]; });
-
-
-
-/***/ }),
-/* 35 */
-/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
-  !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--16-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue?vue&type=template&id=fe947b98&scoped=true&filter-modules=eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM3MjU4LCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjUxOTM1fX0%3D& ***!
-  \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
-/*! exports provided: render, staticRenderFns, recyclableRender, components */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; });
-var components
-try {
-  components = {
-    qiunLoading: __webpack_require__(/*! @/uni_modules/qiun-data-charts/components/qiun-loading/qiun-loading.vue */ 36)
-      .default,
-    qiunError: __webpack_require__(/*! @/uni_modules/qiun-data-charts/components/qiun-error/qiun-error.vue */ 81)
-      .default
-  }
-} catch (e) {
-  if (
-    e.message.indexOf("Cannot find module") !== -1 &&
-    e.message.indexOf(".vue") !== -1
-  ) {
-    console.error(e.message)
-    console.error("1. 鎺掓煡缁勪欢鍚嶇О鎷煎啓鏄惁姝g‘")
-    console.error(
-      "2. 鎺掓煡缁勪欢鏄惁绗﹀悎 easycom 瑙勮寖锛屾枃妗o細https://uniapp.dcloud.net.cn/collocation/pages?id=easycom"
-    )
-    console.error(
-      "3. 鑻ョ粍浠朵笉绗﹀悎 easycom 瑙勮寖锛岄渶鎵嬪姩寮曞叆锛屽苟鍦� components 涓敞鍐岃缁勪欢"
-    )
-  } else {
-    throw e
-  }
-}
-var render = function() {
-  var _vm = this
-  var _h = _vm.$createElement
-  var _c = _vm._self._c || _h
-  return _c(
-    "uni-view",
-    { staticClass: _vm._$g(0, "sc"), attrs: { id: _vm._$g(0, "a-id"), _i: 0 } },
-    [
-      _vm._$g(1, "i")
-        ? _c(
-            "uni-view",
-            { attrs: { _i: 1 } },
-            [_c("qiun-loading", { attrs: { _i: 2 } })],
-            1
-          )
-        : _vm._e(),
-      _vm._$g(3, "i")
-        ? _c(
-            "uni-view",
-            {
-              attrs: { _i: 3 },
-              on: {
-                click: function($event) {
-                  return _vm.$handleViewEvent($event)
-                }
-              }
-            },
-            [_c("qiun-error", { attrs: { _i: 4 } })],
-            1
-          )
-        : _vm._e(),
-      _vm._$g(5, "i")
-        ? [
-            _c("uni-view", {
-              directives: [
-                {
-                  name: "show",
-                  rawName: "v-show",
-                  value: _vm._$g(6, "v-show"),
-                  expression: "_$g(6,'v-show')"
-                }
-              ],
-              wxsProps: {
-                "change:resize": "echartsResize",
-                "change:prop": "echartsOpts"
-              },
-              staticStyle: { width: "100%", height: "100%" },
-              style: _vm._$g(6, "s"),
-              attrs: {
-                "data-directory": _vm._$g(6, "a-data-directory"),
-                id: _vm._$g(6, "a-id"),
-                prop: _vm._$gc(6, "change:echartsOpts"),
-                "change:prop": _vm.rdcharts.ecinit,
-                resize: _vm._$gc(6, "change:echartsResize"),
-                "change:resize": _vm.rdcharts.ecresize,
-                _i: 6
-              }
-            })
-          ]
-        : [
-            _c(
-              "uni-view",
-              {
-                wxsProps: { "change:prop": "uchartsOpts" },
-                attrs: {
-                  id: _vm._$g(8, "a-id"),
-                  prop: _vm._$gc(8, "change:uchartsOpts"),
-                  "change:prop": _vm.rdcharts.ucinit,
-                  _i: 8
-                },
-                on: {
-                  mousemove: function($event) {
-                    $event = _vm.$handleWxsEvent($event)
-                    _vm.rdcharts.mouseMove(
-                      $event,
-                      _vm.$getComponentDescriptor()
-                    )
-                  },
-                  mousedown: function($event) {
-                    $event = _vm.$handleWxsEvent($event)
-                    _vm.rdcharts.mouseDown(
-                      $event,
-                      _vm.$getComponentDescriptor()
-                    )
-                  },
-                  mouseup: function($event) {
-                    $event = _vm.$handleWxsEvent($event)
-                    _vm.rdcharts.mouseUp($event, _vm.$getComponentDescriptor())
-                  },
-                  touchstart: function($event) {
-                    $event = _vm.$handleWxsEvent($event)
-                    _vm.rdcharts.touchStart(
-                      $event,
-                      _vm.$getComponentDescriptor()
-                    )
-                  },
-                  touchmove: function($event) {
-                    $event = _vm.$handleWxsEvent($event)
-                    _vm.rdcharts.touchMove(
-                      $event,
-                      _vm.$getComponentDescriptor()
-                    )
-                  },
-                  touchend: function($event) {
-                    $event = _vm.$handleWxsEvent($event)
-                    _vm.rdcharts.touchEnd($event, _vm.$getComponentDescriptor())
-                  },
-                  click: function($event) {
-                    $event = _vm.$handleWxsEvent($event)
-                    _vm.rdcharts.tap($event, _vm.$getComponentDescriptor())
-                  }
-                }
-              },
-              [
-                _c("v-uni-canvas", {
-                  directives: [
-                    {
-                      name: "show",
-                      rawName: "v-show",
-                      value: _vm._$g(9, "v-show"),
-                      expression: "_$g(9,'v-show')"
-                    }
-                  ],
-                  style: _vm._$g(9, "s"),
-                  attrs: {
-                    id: _vm._$g(9, "a-id"),
-                    canvasId: _vm._$g(9, "a-canvasId"),
-                    "disable-scroll": _vm._$g(9, "a-disable-scroll"),
-                    _i: 9
-                  },
-                  on: {
-                    error: function($event) {
-                      return _vm.$handleViewEvent($event)
-                    }
-                  }
-                })
-              ],
-              1
-            )
-          ]
-    ],
-    2
-  )
-}
-var recyclableRender = false
-var staticRenderFns = []
-render._withStripped = true
-
-
-
-/***/ }),
-/* 36 */
-/*!*****************************************************************************************************************!*\
-  !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/qiun-loading.vue ***!
-  \*****************************************************************************************************************/
-/*! no static exports found */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _qiun_loading_vue_vue_type_template_id_1c4fd998_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./qiun-loading.vue?vue&type=template&id=1c4fd998&scoped=true& */ 37);
-/* harmony import */ var _qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./qiun-loading.vue?vue&type=script&lang=js& */ 39);
-/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));
-/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 10);
-
-var renderjs
-
-
-
-
-/* normalize component */
-
-var component = Object(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])(
-  _qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
-  _qiun_loading_vue_vue_type_template_id_1c4fd998_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"],
-  _qiun_loading_vue_vue_type_template_id_1c4fd998_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
-  false,
-  null,
-  "1c4fd998",
-  null,
-  false,
-  _qiun_loading_vue_vue_type_template_id_1c4fd998_scoped_true___WEBPACK_IMPORTED_MODULE_0__["components"],
-  renderjs
-)
-
-component.options.__file = "uni_modules/qiun-data-charts/components/qiun-loading/qiun-loading.vue"
-/* harmony default export */ __webpack_exports__["default"] = (component.exports);
-
-/***/ }),
-/* 37 */
-/*!************************************************************************************************************************************************************!*\
-  !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/qiun-loading.vue?vue&type=template&id=1c4fd998&scoped=true& ***!
-  \************************************************************************************************************************************************************/
-/*! exports provided: render, staticRenderFns, recyclableRender, components */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_loading_vue_vue_type_template_id_1c4fd998_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--16-0!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./qiun-loading.vue?vue&type=template&id=1c4fd998&scoped=true& */ 38);
-/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_loading_vue_vue_type_template_id_1c4fd998_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; });
-
-/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_loading_vue_vue_type_template_id_1c4fd998_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
-
-/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_loading_vue_vue_type_template_id_1c4fd998_scoped_true___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; });
-
-/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_loading_vue_vue_type_template_id_1c4fd998_scoped_true___WEBPACK_IMPORTED_MODULE_0__["components"]; });
-
-
-
-/***/ }),
-/* 38 */
-/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
-  !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--16-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/qiun-loading.vue?vue&type=template&id=1c4fd998&scoped=true& ***!
-  \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
-/*! exports provided: render, staticRenderFns, recyclableRender, components */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; });
-var components
-var render = function() {
-  var _vm = this
-  var _h = _vm.$createElement
-  var _c = _vm._self._c || _h
-  return _c(
-    "uni-view",
-    { attrs: { _i: 0 } },
-    [
-      _vm._$g(1, "i") ? _c("Loading1", { attrs: { _i: 1 } }) : _vm._e(),
-      _vm._$g(2, "i") ? _c("Loading2", { attrs: { _i: 2 } }) : _vm._e(),
-      _vm._$g(3, "i") ? _c("Loading3", { attrs: { _i: 3 } }) : _vm._e(),
-      _vm._$g(4, "i") ? _c("Loading4", { attrs: { _i: 4 } }) : _vm._e(),
-      _vm._$g(5, "i") ? _c("Loading5", { attrs: { _i: 5 } }) : _vm._e()
-    ],
-    1
-  )
-}
-var recyclableRender = false
-var staticRenderFns = []
-render._withStripped = true
-
-
-
-/***/ }),
-/* 39 */
-/*!******************************************************************************************************************************************!*\
-  !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/qiun-loading.vue?vue&type=script&lang=js& ***!
-  \******************************************************************************************************************************************/
-/*! no static exports found */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/script.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./qiun-loading.vue?vue&type=script&lang=js& */ 40);
-/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);
-/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
- /* harmony default export */ __webpack_exports__["default"] = (_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); 
-
-/***/ }),
-/* 40 */
-/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
-  !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/script.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/qiun-loading.vue?vue&type=script&lang=js& ***!
-  \*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
-/*! no static exports found */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;
-var _loading = _interopRequireDefault(__webpack_require__(/*! ./loading1.vue */ 41));
-var _loading2 = _interopRequireDefault(__webpack_require__(/*! ./loading2.vue */ 49));
-var _loading3 = _interopRequireDefault(__webpack_require__(/*! ./loading3.vue */ 57));
-var _loading4 = _interopRequireDefault(__webpack_require__(/*! ./loading4.vue */ 65));
-var _loading5 = _interopRequireDefault(__webpack_require__(/*! ./loading5.vue */ 73));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}var _default =
-{
-  name: "qiun-loading", props: ["loadingType"],
-  data: function data() {
-    return {
-      wxsProps: {} };
-
-  },
-  components: {
-    'Loading1': _loading.default,
-    'Loading2': _loading2.default,
-    'Loading3': _loading3.default,
-    'Loading4': _loading4.default,
-    'Loading5': _loading5.default } };exports.default = _default;
-
-/***/ }),
-/* 41 */
-/*!*************************************************************************************************************!*\
-  !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading1.vue ***!
-  \*************************************************************************************************************/
-/*! no static exports found */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _loading1_vue_vue_type_template_id_e4e769ee_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./loading1.vue?vue&type=template&id=e4e769ee&scoped=true& */ 42);
-/* harmony import */ var _loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./loading1.vue?vue&type=script&lang=js& */ 44);
-/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));
-/* harmony import */ var _loading1_vue_vue_type_style_index_0_id_e4e769ee_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./loading1.vue?vue&type=style&index=0&id=e4e769ee&scoped=true&lang=css& */ 46);
-/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 10);
-
-var renderjs
-
-
-
-
-
-/* normalize component */
-
-var component = Object(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])(
-  _loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
-  _loading1_vue_vue_type_template_id_e4e769ee_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"],
-  _loading1_vue_vue_type_template_id_e4e769ee_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
-  false,
-  null,
-  "e4e769ee",
-  null,
-  false,
-  _loading1_vue_vue_type_template_id_e4e769ee_scoped_true___WEBPACK_IMPORTED_MODULE_0__["components"],
-  renderjs
-)
-
-component.options.__file = "uni_modules/qiun-data-charts/components/qiun-loading/loading1.vue"
-/* harmony default export */ __webpack_exports__["default"] = (component.exports);
-
-/***/ }),
-/* 42 */
-/*!********************************************************************************************************************************************************!*\
-  !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading1.vue?vue&type=template&id=e4e769ee&scoped=true& ***!
-  \********************************************************************************************************************************************************/
-/*! exports provided: render, staticRenderFns, recyclableRender, components */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading1_vue_vue_type_template_id_e4e769ee_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--16-0!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./loading1.vue?vue&type=template&id=e4e769ee&scoped=true& */ 43);
-/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading1_vue_vue_type_template_id_e4e769ee_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; });
-
-/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading1_vue_vue_type_template_id_e4e769ee_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
-
-/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading1_vue_vue_type_template_id_e4e769ee_scoped_true___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; });
-
-/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading1_vue_vue_type_template_id_e4e769ee_scoped_true___WEBPACK_IMPORTED_MODULE_0__["components"]; });
-
-
-
-/***/ }),
-/* 43 */
-/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
-  !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--16-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading1.vue?vue&type=template&id=e4e769ee&scoped=true& ***!
-  \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
-/*! exports provided: render, staticRenderFns, recyclableRender, components */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; });
-var components
-var render = function() {
-  var _vm = this
-  var _h = _vm.$createElement
-  var _c = _vm._self._c || _h
-  return _c(
-    "uni-view",
-    { staticClass: _vm._$g(0, "sc"), attrs: { _i: 0 } },
-    [
-      _c("uni-view", { staticClass: _vm._$g(1, "sc"), attrs: { _i: 1 } }),
-      _c("uni-view", { staticClass: _vm._$g(2, "sc"), attrs: { _i: 2 } }),
-      _c("uni-view", { staticClass: _vm._$g(3, "sc"), attrs: { _i: 3 } }),
-      _c("uni-view", { staticClass: _vm._$g(4, "sc"), attrs: { _i: 4 } })
-    ],
-    1
-  )
-}
-var recyclableRender = false
-var staticRenderFns = []
-render._withStripped = true
-
-
-
-/***/ }),
-/* 44 */
-/*!**************************************************************************************************************************************!*\
-  !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading1.vue?vue&type=script&lang=js& ***!
-  \**************************************************************************************************************************************/
-/*! no static exports found */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/script.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./loading1.vue?vue&type=script&lang=js& */ 45);
-/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);
-/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
- /* harmony default export */ __webpack_exports__["default"] = (_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); 
-
-/***/ }),
-/* 45 */
-/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
-  !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/script.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading1.vue?vue&type=script&lang=js& ***!
-  \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
-/*! no static exports found */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;var _default =
-
-{
-  name: "loading1",
-  data: function data() {
-    return {
-      wxsProps: {} };
-
-  },
-  components: {} };exports.default = _default;
-
-/***/ }),
-/* 46 */
-/*!**********************************************************************************************************************************************************************!*\
-  !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading1.vue?vue&type=style&index=0&id=e4e769ee&scoped=true&lang=css& ***!
-  \**********************************************************************************************************************************************************************/
-/*! no static exports found */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading1_vue_vue_type_style_index_0_id_e4e769ee_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/app-vue-style-loader??ref--6-oneOf-1-0!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/postcss-loader/src??ref--6-oneOf-1-3!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./loading1.vue?vue&type=style&index=0&id=e4e769ee&scoped=true&lang=css& */ 47);
-/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading1_vue_vue_type_style_index_0_id_e4e769ee_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading1_vue_vue_type_style_index_0_id_e4e769ee_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__);
-/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading1_vue_vue_type_style_index_0_id_e4e769ee_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading1_vue_vue_type_style_index_0_id_e4e769ee_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
- /* harmony default export */ __webpack_exports__["default"] = (_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading1_vue_vue_type_style_index_0_id_e4e769ee_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a); 
-
-/***/ }),
-/* 47 */
-/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
-  !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/app-vue-style-loader??ref--6-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!./node_modules/postcss-loader/src??ref--6-oneOf-1-3!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading1.vue?vue&type=style&index=0&id=e4e769ee&scoped=true&lang=css& ***!
-  \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
-/*! no static exports found */
-/***/ (function(module, exports, __webpack_require__) {
-
-// style-loader: Adds some css to the DOM by adding a <style> tag
-
-// load the styles
-var content = __webpack_require__(/*! !../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/postcss-loader/src??ref--6-oneOf-1-3!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./loading1.vue?vue&type=style&index=0&id=e4e769ee&scoped=true&lang=css& */ 48);
-if(content.__esModule) content = content.default;
-if(typeof content === 'string') content = [[module.i, content, '']];
-if(content.locals) module.exports = content.locals;
-// add the styles to the DOM
-var add = __webpack_require__(/*! ../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/app-vue-style-loader/lib/addStylesClient.js */ 20).default
-var update = add("089b80b6", content, false, {"sourceMap":false,"shadowMode":false});
-// Hot Module Replacement
-if(false) {}
-
-/***/ }),
-/* 48 */
-/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
-  !*** ./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!./node_modules/postcss-loader/src??ref--6-oneOf-1-3!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading1.vue?vue&type=style&index=0&id=e4e769ee&scoped=true&lang=css& ***!
-  \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
-/*! no static exports found */
-/***/ (function(module, exports, __webpack_require__) {
-
-// Imports
-var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/runtime/api.js */ 19);
-exports = ___CSS_LOADER_API_IMPORT___(false);
-// Module
-exports.push([module.i, "\n.container[data-v-e4e769ee] {\r\n  width: 30px;\r\n  height: 30px;\r\n  position: relative;\n}\n.container.loading1[data-v-e4e769ee] {\r\n  -webkit-transform: rotate(45deg);\r\n          transform: rotate(45deg);\n}\n.container .shape[data-v-e4e769ee] {\r\n  position: absolute;\r\n  width: 10px;\r\n  height: 10px;\r\n  border-radius: 1px;\n}\n.container .shape.shape1[data-v-e4e769ee] {\r\n  left: 0;\r\n  background-color: #1890FF;\n}\n.container .shape.shape2[data-v-e4e769ee] {\r\n  right: 0;\r\n  background-color: #91CB74;\n}\n.container .shape.shape3[data-v-e4e769ee] {\r\n  bottom: 0;\r\n  background-color: #FAC858;\n}\n.container .shape.shape4[data-v-e4e769ee] {\r\n  bottom: 0;\r\n  right: 0;\r\n  background-color: #EE6666;\n}\n.loading1 .shape1[data-v-e4e769ee] {\r\n  -webkit-animation: animation1shape1-data-v-e4e769ee 0.5s ease 0s infinite alternate;\r\n          animation: animation1shape1-data-v-e4e769ee 0.5s ease 0s infinite alternate;\n}\n@-webkit-keyframes animation1shape1-data-v-e4e769ee {\nfrom {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\nto {\r\n    -webkit-transform: translate(16px, 16px);\r\n            transform: translate(16px, 16px);\n}\n}\n@keyframes animation1shape1-data-v-e4e769ee {\nfrom {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\nto {\r\n    -webkit-transform: translate(16px, 16px);\r\n            transform: translate(16px, 16px);\n}\n}\n.loading1 .shape2[data-v-e4e769ee] {\r\n  -webkit-animation: animation1shape2-data-v-e4e769ee 0.5s ease 0s infinite alternate;\r\n          animation: animation1shape2-data-v-e4e769ee 0.5s ease 0s infinite alternate;\n}\n@-webkit-keyframes animation1shape2-data-v-e4e769ee {\nfrom {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\nto {\r\n    -webkit-transform: translate(-16px, 16px);\r\n            transform: translate(-16px, 16px);\n}\n}\n@keyframes animation1shape2-data-v-e4e769ee {\nfrom {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\nto {\r\n    -webkit-transform: translate(-16px, 16px);\r\n            transform: translate(-16px, 16px);\n}\n}\n.loading1 .shape3[data-v-e4e769ee] {\r\n  -webkit-animation: animation1shape3-data-v-e4e769ee 0.5s ease 0s infinite alternate;\r\n          animation: animation1shape3-data-v-e4e769ee 0.5s ease 0s infinite alternate;\n}\n@-webkit-keyframes animation1shape3-data-v-e4e769ee {\nfrom {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\nto {\r\n    -webkit-transform: translate(16px, -16px);\r\n            transform: translate(16px, -16px);\n}\n}\n@keyframes animation1shape3-data-v-e4e769ee {\nfrom {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\nto {\r\n    -webkit-transform: translate(16px, -16px);\r\n            transform: translate(16px, -16px);\n}\n}\n.loading1 .shape4[data-v-e4e769ee] {\r\n  -webkit-animation: animation1shape4-data-v-e4e769ee 0.5s ease 0s infinite alternate;\r\n          animation: animation1shape4-data-v-e4e769ee 0.5s ease 0s infinite alternate;\n}\n@-webkit-keyframes animation1shape4-data-v-e4e769ee {\nfrom {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\nto {\r\n    -webkit-transform: translate(-16px, -16px);\r\n            transform: translate(-16px, -16px);\n}\n}\n@keyframes animation1shape4-data-v-e4e769ee {\nfrom {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\nto {\r\n    -webkit-transform: translate(-16px, -16px);\r\n            transform: translate(-16px, -16px);\n}\n}\r\n\r\n\r\n", ""]);
-// Exports
-module.exports = exports;
-
-
-/***/ }),
-/* 49 */
-/*!*************************************************************************************************************!*\
-  !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading2.vue ***!
-  \*************************************************************************************************************/
-/*! no static exports found */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _loading2_vue_vue_type_template_id_e4cb3aec_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./loading2.vue?vue&type=template&id=e4cb3aec&scoped=true& */ 50);
-/* harmony import */ var _loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./loading2.vue?vue&type=script&lang=js& */ 52);
-/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));
-/* harmony import */ var _loading2_vue_vue_type_style_index_0_id_e4cb3aec_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./loading2.vue?vue&type=style&index=0&id=e4cb3aec&scoped=true&lang=css& */ 54);
-/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 10);
-
-var renderjs
-
-
-
-
-
-/* normalize component */
-
-var component = Object(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])(
-  _loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
-  _loading2_vue_vue_type_template_id_e4cb3aec_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"],
-  _loading2_vue_vue_type_template_id_e4cb3aec_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
-  false,
-  null,
-  "e4cb3aec",
-  null,
-  false,
-  _loading2_vue_vue_type_template_id_e4cb3aec_scoped_true___WEBPACK_IMPORTED_MODULE_0__["components"],
-  renderjs
-)
-
-component.options.__file = "uni_modules/qiun-data-charts/components/qiun-loading/loading2.vue"
-/* harmony default export */ __webpack_exports__["default"] = (component.exports);
-
-/***/ }),
-/* 50 */
-/*!********************************************************************************************************************************************************!*\
-  !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading2.vue?vue&type=template&id=e4cb3aec&scoped=true& ***!
-  \********************************************************************************************************************************************************/
-/*! exports provided: render, staticRenderFns, recyclableRender, components */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading2_vue_vue_type_template_id_e4cb3aec_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--16-0!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./loading2.vue?vue&type=template&id=e4cb3aec&scoped=true& */ 51);
-/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading2_vue_vue_type_template_id_e4cb3aec_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; });
-
-/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading2_vue_vue_type_template_id_e4cb3aec_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
-
-/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading2_vue_vue_type_template_id_e4cb3aec_scoped_true___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; });
-
-/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading2_vue_vue_type_template_id_e4cb3aec_scoped_true___WEBPACK_IMPORTED_MODULE_0__["components"]; });
-
-
-
-/***/ }),
-/* 51 */
-/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
-  !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--16-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading2.vue?vue&type=template&id=e4cb3aec&scoped=true& ***!
-  \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
-/*! exports provided: render, staticRenderFns, recyclableRender, components */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; });
-var components
-var render = function() {
-  var _vm = this
-  var _h = _vm.$createElement
-  var _c = _vm._self._c || _h
-  return _c(
-    "uni-view",
-    { staticClass: _vm._$g(0, "sc"), attrs: { _i: 0 } },
-    [
-      _c("uni-view", { staticClass: _vm._$g(1, "sc"), attrs: { _i: 1 } }),
-      _c("uni-view", { staticClass: _vm._$g(2, "sc"), attrs: { _i: 2 } }),
-      _c("uni-view", { staticClass: _vm._$g(3, "sc"), attrs: { _i: 3 } }),
-      _c("uni-view", { staticClass: _vm._$g(4, "sc"), attrs: { _i: 4 } })
-    ],
-    1
-  )
-}
-var recyclableRender = false
-var staticRenderFns = []
-render._withStripped = true
-
-
-
-/***/ }),
-/* 52 */
-/*!**************************************************************************************************************************************!*\
-  !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading2.vue?vue&type=script&lang=js& ***!
-  \**************************************************************************************************************************************/
-/*! no static exports found */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/script.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./loading2.vue?vue&type=script&lang=js& */ 53);
-/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);
-/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
- /* harmony default export */ __webpack_exports__["default"] = (_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); 
-
-/***/ }),
-/* 53 */
-/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
-  !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/script.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading2.vue?vue&type=script&lang=js& ***!
-  \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
-/*! no static exports found */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;var _default =
-
-{
-  name: "loading2",
-  data: function data() {
-    return {
-      wxsProps: {} };
-
-  },
-  components: {} };exports.default = _default;
-
-/***/ }),
-/* 54 */
-/*!**********************************************************************************************************************************************************************!*\
-  !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading2.vue?vue&type=style&index=0&id=e4cb3aec&scoped=true&lang=css& ***!
-  \**********************************************************************************************************************************************************************/
-/*! no static exports found */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading2_vue_vue_type_style_index_0_id_e4cb3aec_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/app-vue-style-loader??ref--6-oneOf-1-0!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/postcss-loader/src??ref--6-oneOf-1-3!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./loading2.vue?vue&type=style&index=0&id=e4cb3aec&scoped=true&lang=css& */ 55);
-/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading2_vue_vue_type_style_index_0_id_e4cb3aec_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading2_vue_vue_type_style_index_0_id_e4cb3aec_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__);
-/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading2_vue_vue_type_style_index_0_id_e4cb3aec_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading2_vue_vue_type_style_index_0_id_e4cb3aec_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
- /* harmony default export */ __webpack_exports__["default"] = (_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading2_vue_vue_type_style_index_0_id_e4cb3aec_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a); 
-
-/***/ }),
-/* 55 */
-/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
-  !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/app-vue-style-loader??ref--6-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!./node_modules/postcss-loader/src??ref--6-oneOf-1-3!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading2.vue?vue&type=style&index=0&id=e4cb3aec&scoped=true&lang=css& ***!
-  \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
-/*! no static exports found */
-/***/ (function(module, exports, __webpack_require__) {
-
-// style-loader: Adds some css to the DOM by adding a <style> tag
-
-// load the styles
-var content = __webpack_require__(/*! !../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/postcss-loader/src??ref--6-oneOf-1-3!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./loading2.vue?vue&type=style&index=0&id=e4cb3aec&scoped=true&lang=css& */ 56);
-if(content.__esModule) content = content.default;
-if(typeof content === 'string') content = [[module.i, content, '']];
-if(content.locals) module.exports = content.locals;
-// add the styles to the DOM
-var add = __webpack_require__(/*! ../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/app-vue-style-loader/lib/addStylesClient.js */ 20).default
-var update = add("06cee57c", content, false, {"sourceMap":false,"shadowMode":false});
-// Hot Module Replacement
-if(false) {}
-
-/***/ }),
-/* 56 */
-/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
-  !*** ./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!./node_modules/postcss-loader/src??ref--6-oneOf-1-3!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading2.vue?vue&type=style&index=0&id=e4cb3aec&scoped=true&lang=css& ***!
-  \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
-/*! no static exports found */
-/***/ (function(module, exports, __webpack_require__) {
-
-// Imports
-var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/runtime/api.js */ 19);
-exports = ___CSS_LOADER_API_IMPORT___(false);
-// Module
-exports.push([module.i, "\n.container[data-v-e4cb3aec] {\r\n  width: 30px;\r\n  height: 30px;\r\n  position: relative;\n}\n.container.loading2[data-v-e4cb3aec] {\r\n  -webkit-transform: rotate(10deg);\r\n          transform: rotate(10deg);\n}\n.container.loading2 .shape[data-v-e4cb3aec] {\r\n  border-radius: 5px;\n}\n.container.loading2[data-v-e4cb3aec]{\r\n  -webkit-animation: rotation 1s infinite;\r\n          animation: rotation 1s infinite;\n}\n.container .shape[data-v-e4cb3aec] {\r\n  position: absolute;\r\n  width: 10px;\r\n  height: 10px;\r\n  border-radius: 1px;\n}\n.container .shape.shape1[data-v-e4cb3aec] {\r\n  left: 0;\r\n  background-color: #1890FF;\n}\n.container .shape.shape2[data-v-e4cb3aec] {\r\n  right: 0;\r\n  background-color: #91CB74;\n}\n.container .shape.shape3[data-v-e4cb3aec] {\r\n  bottom: 0;\r\n  background-color: #FAC858;\n}\n.container .shape.shape4[data-v-e4cb3aec] {\r\n  bottom: 0;\r\n  right: 0;\r\n  background-color: #EE6666;\n}\n.loading2 .shape1[data-v-e4cb3aec] {\r\n  -webkit-animation: animation2shape1-data-v-e4cb3aec 0.5s ease 0s infinite alternate;\r\n          animation: animation2shape1-data-v-e4cb3aec 0.5s ease 0s infinite alternate;\n}\n@-webkit-keyframes animation2shape1-data-v-e4cb3aec {\nfrom {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\nto {\r\n    -webkit-transform: translate(20px, 20px);\r\n            transform: translate(20px, 20px);\n}\n}\n@keyframes animation2shape1-data-v-e4cb3aec {\nfrom {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\nto {\r\n    -webkit-transform: translate(20px, 20px);\r\n            transform: translate(20px, 20px);\n}\n}\n.loading2 .shape2[data-v-e4cb3aec] {\r\n  -webkit-animation: animation2shape2-data-v-e4cb3aec 0.5s ease 0s infinite alternate;\r\n          animation: animation2shape2-data-v-e4cb3aec 0.5s ease 0s infinite alternate;\n}\n@-webkit-keyframes animation2shape2-data-v-e4cb3aec {\nfrom {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\nto {\r\n    -webkit-transform: translate(-20px, 20px);\r\n            transform: translate(-20px, 20px);\n}\n}\n@keyframes animation2shape2-data-v-e4cb3aec {\nfrom {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\nto {\r\n    -webkit-transform: translate(-20px, 20px);\r\n            transform: translate(-20px, 20px);\n}\n}\n.loading2 .shape3[data-v-e4cb3aec] {\r\n  -webkit-animation: animation2shape3-data-v-e4cb3aec 0.5s ease 0s infinite alternate;\r\n          animation: animation2shape3-data-v-e4cb3aec 0.5s ease 0s infinite alternate;\n}\n@-webkit-keyframes animation2shape3-data-v-e4cb3aec {\nfrom {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\nto {\r\n    -webkit-transform: translate(20px, -20px);\r\n            transform: translate(20px, -20px);\n}\n}\n@keyframes animation2shape3-data-v-e4cb3aec {\nfrom {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\nto {\r\n    -webkit-transform: translate(20px, -20px);\r\n            transform: translate(20px, -20px);\n}\n}\n.loading2 .shape4[data-v-e4cb3aec] {\r\n  -webkit-animation: animation2shape4-data-v-e4cb3aec 0.5s ease 0s infinite alternate;\r\n          animation: animation2shape4-data-v-e4cb3aec 0.5s ease 0s infinite alternate;\n}\n@-webkit-keyframes animation2shape4-data-v-e4cb3aec {\nfrom {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\nto {\r\n    -webkit-transform: translate(-20px, -20px);\r\n            transform: translate(-20px, -20px);\n}\n}\n@keyframes animation2shape4-data-v-e4cb3aec {\nfrom {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\nto {\r\n    -webkit-transform: translate(-20px, -20px);\r\n            transform: translate(-20px, -20px);\n}\n}\r\n\r\n", ""]);
-// Exports
-module.exports = exports;
-
-
-/***/ }),
-/* 57 */
-/*!*************************************************************************************************************!*\
-  !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading3.vue ***!
-  \*************************************************************************************************************/
-/*! no static exports found */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _loading3_vue_vue_type_template_id_e4af0bea_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./loading3.vue?vue&type=template&id=e4af0bea&scoped=true& */ 58);
-/* harmony import */ var _loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./loading3.vue?vue&type=script&lang=js& */ 60);
-/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));
-/* harmony import */ var _loading3_vue_vue_type_style_index_0_id_e4af0bea_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./loading3.vue?vue&type=style&index=0&id=e4af0bea&scoped=true&lang=css& */ 62);
-/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 10);
-
-var renderjs
-
-
-
-
-
-/* normalize component */
-
-var component = Object(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])(
-  _loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
-  _loading3_vue_vue_type_template_id_e4af0bea_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"],
-  _loading3_vue_vue_type_template_id_e4af0bea_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
-  false,
-  null,
-  "e4af0bea",
-  null,
-  false,
-  _loading3_vue_vue_type_template_id_e4af0bea_scoped_true___WEBPACK_IMPORTED_MODULE_0__["components"],
-  renderjs
-)
-
-component.options.__file = "uni_modules/qiun-data-charts/components/qiun-loading/loading3.vue"
-/* harmony default export */ __webpack_exports__["default"] = (component.exports);
-
-/***/ }),
-/* 58 */
-/*!********************************************************************************************************************************************************!*\
-  !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading3.vue?vue&type=template&id=e4af0bea&scoped=true& ***!
-  \********************************************************************************************************************************************************/
-/*! exports provided: render, staticRenderFns, recyclableRender, components */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading3_vue_vue_type_template_id_e4af0bea_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--16-0!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./loading3.vue?vue&type=template&id=e4af0bea&scoped=true& */ 59);
-/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading3_vue_vue_type_template_id_e4af0bea_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; });
-
-/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading3_vue_vue_type_template_id_e4af0bea_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
-
-/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading3_vue_vue_type_template_id_e4af0bea_scoped_true___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; });
-
-/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading3_vue_vue_type_template_id_e4af0bea_scoped_true___WEBPACK_IMPORTED_MODULE_0__["components"]; });
-
-
-
-/***/ }),
-/* 59 */
-/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
-  !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--16-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading3.vue?vue&type=template&id=e4af0bea&scoped=true& ***!
-  \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
-/*! exports provided: render, staticRenderFns, recyclableRender, components */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; });
-var components
-var render = function() {
-  var _vm = this
-  var _h = _vm.$createElement
-  var _c = _vm._self._c || _h
-  return _c(
-    "uni-view",
-    { staticClass: _vm._$g(0, "sc"), attrs: { _i: 0 } },
-    [
-      _c("uni-view", { staticClass: _vm._$g(1, "sc"), attrs: { _i: 1 } }),
-      _c("uni-view", { staticClass: _vm._$g(2, "sc"), attrs: { _i: 2 } }),
-      _c("uni-view", { staticClass: _vm._$g(3, "sc"), attrs: { _i: 3 } }),
-      _c("uni-view", { staticClass: _vm._$g(4, "sc"), attrs: { _i: 4 } })
-    ],
-    1
-  )
-}
-var recyclableRender = false
-var staticRenderFns = []
-render._withStripped = true
-
-
-
-/***/ }),
-/* 60 */
-/*!**************************************************************************************************************************************!*\
-  !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading3.vue?vue&type=script&lang=js& ***!
-  \**************************************************************************************************************************************/
-/*! no static exports found */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/script.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./loading3.vue?vue&type=script&lang=js& */ 61);
-/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);
-/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
- /* harmony default export */ __webpack_exports__["default"] = (_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); 
-
-/***/ }),
-/* 61 */
-/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
-  !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/script.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading3.vue?vue&type=script&lang=js& ***!
-  \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
-/*! no static exports found */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;var _default =
-
-{
-  name: "loading3",
-  data: function data() {
-    return {
-      wxsProps: {} };
-
-  },
-  components: {} };exports.default = _default;
-
-/***/ }),
-/* 62 */
-/*!**********************************************************************************************************************************************************************!*\
-  !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading3.vue?vue&type=style&index=0&id=e4af0bea&scoped=true&lang=css& ***!
-  \**********************************************************************************************************************************************************************/
-/*! no static exports found */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading3_vue_vue_type_style_index_0_id_e4af0bea_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/app-vue-style-loader??ref--6-oneOf-1-0!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/postcss-loader/src??ref--6-oneOf-1-3!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./loading3.vue?vue&type=style&index=0&id=e4af0bea&scoped=true&lang=css& */ 63);
-/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading3_vue_vue_type_style_index_0_id_e4af0bea_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading3_vue_vue_type_style_index_0_id_e4af0bea_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__);
-/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading3_vue_vue_type_style_index_0_id_e4af0bea_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading3_vue_vue_type_style_index_0_id_e4af0bea_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
- /* harmony default export */ __webpack_exports__["default"] = (_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading3_vue_vue_type_style_index_0_id_e4af0bea_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a); 
-
-/***/ }),
-/* 63 */
-/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
-  !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/app-vue-style-loader??ref--6-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!./node_modules/postcss-loader/src??ref--6-oneOf-1-3!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading3.vue?vue&type=style&index=0&id=e4af0bea&scoped=true&lang=css& ***!
-  \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
-/*! no static exports found */
-/***/ (function(module, exports, __webpack_require__) {
-
-// style-loader: Adds some css to the DOM by adding a <style> tag
-
-// load the styles
-var content = __webpack_require__(/*! !../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/postcss-loader/src??ref--6-oneOf-1-3!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./loading3.vue?vue&type=style&index=0&id=e4af0bea&scoped=true&lang=css& */ 64);
-if(content.__esModule) content = content.default;
-if(typeof content === 'string') content = [[module.i, content, '']];
-if(content.locals) module.exports = content.locals;
-// add the styles to the DOM
-var add = __webpack_require__(/*! ../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/app-vue-style-loader/lib/addStylesClient.js */ 20).default
-var update = add("7a321ec8", content, false, {"sourceMap":false,"shadowMode":false});
-// Hot Module Replacement
-if(false) {}
-
-/***/ }),
-/* 64 */
-/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
-  !*** ./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!./node_modules/postcss-loader/src??ref--6-oneOf-1-3!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading3.vue?vue&type=style&index=0&id=e4af0bea&scoped=true&lang=css& ***!
-  \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
-/*! no static exports found */
-/***/ (function(module, exports, __webpack_require__) {
-
-// Imports
-var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/runtime/api.js */ 19);
-exports = ___CSS_LOADER_API_IMPORT___(false);
-// Module
-exports.push([module.i, "\n.container[data-v-e4af0bea] {\r\n  width: 30px;\r\n  height: 30px;\r\n  position: relative;\n}\n.container.loading3[data-v-e4af0bea] {\r\n  -webkit-animation: rotation 1s infinite;\r\n          animation: rotation 1s infinite;\n}\n.container.loading3 .shape1[data-v-e4af0bea] {\r\n  border-top-left-radius: 10px;\n}\n.container.loading3 .shape2[data-v-e4af0bea] {\r\n  border-top-right-radius: 10px;\n}\n.container.loading3 .shape3[data-v-e4af0bea] {\r\n  border-bottom-left-radius: 10px;\n}\n.container.loading3 .shape4[data-v-e4af0bea] {\r\n  border-bottom-right-radius: 10px;\n}\n.container .shape[data-v-e4af0bea] {\r\n  position: absolute;\r\n  width: 10px;\r\n  height: 10px;\r\n  border-radius: 1px;\n}\n.container .shape.shape1[data-v-e4af0bea] {\r\n  left: 0;\r\n  background-color: #1890FF;\n}\n.container .shape.shape2[data-v-e4af0bea] {\r\n  right: 0;\r\n  background-color: #91CB74;\n}\n.container .shape.shape3[data-v-e4af0bea] {\r\n  bottom: 0;\r\n  background-color: #FAC858;\n}\n.container .shape.shape4[data-v-e4af0bea] {\r\n  bottom: 0;\r\n  right: 0;\r\n  background-color: #EE6666;\n}\n.loading3 .shape1[data-v-e4af0bea] {\r\n  -webkit-animation: animation3shape1-data-v-e4af0bea 0.5s ease 0s infinite alternate;\r\n          animation: animation3shape1-data-v-e4af0bea 0.5s ease 0s infinite alternate;\n}\n@-webkit-keyframes animation3shape1-data-v-e4af0bea {\nfrom {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\nto {\r\n    -webkit-transform: translate(5px, 5px);\r\n            transform: translate(5px, 5px);\n}\n}\n@keyframes animation3shape1-data-v-e4af0bea {\nfrom {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\nto {\r\n    -webkit-transform: translate(5px, 5px);\r\n            transform: translate(5px, 5px);\n}\n}\n.loading3 .shape2[data-v-e4af0bea] {\r\n  -webkit-animation: animation3shape2-data-v-e4af0bea 0.5s ease 0s infinite alternate;\r\n          animation: animation3shape2-data-v-e4af0bea 0.5s ease 0s infinite alternate;\n}\n@-webkit-keyframes animation3shape2-data-v-e4af0bea {\nfrom {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\nto {\r\n    -webkit-transform: translate(-5px, 5px);\r\n            transform: translate(-5px, 5px);\n}\n}\n@keyframes animation3shape2-data-v-e4af0bea {\nfrom {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\nto {\r\n    -webkit-transform: translate(-5px, 5px);\r\n            transform: translate(-5px, 5px);\n}\n}\n.loading3 .shape3[data-v-e4af0bea] {\r\n  -webkit-animation: animation3shape3-data-v-e4af0bea 0.5s ease 0s infinite alternate;\r\n          animation: animation3shape3-data-v-e4af0bea 0.5s ease 0s infinite alternate;\n}\n@-webkit-keyframes animation3shape3-data-v-e4af0bea {\nfrom {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\nto {\r\n    -webkit-transform: translate(5px, -5px);\r\n            transform: translate(5px, -5px);\n}\n}\n@keyframes animation3shape3-data-v-e4af0bea {\nfrom {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\nto {\r\n    -webkit-transform: translate(5px, -5px);\r\n            transform: translate(5px, -5px);\n}\n}\n.loading3 .shape4[data-v-e4af0bea] {\r\n  -webkit-animation: animation3shape4-data-v-e4af0bea 0.5s ease 0s infinite alternate;\r\n          animation: animation3shape4-data-v-e4af0bea 0.5s ease 0s infinite alternate;\n}\n@-webkit-keyframes animation3shape4-data-v-e4af0bea {\nfrom {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\nto {\r\n    -webkit-transform: translate(-5px, -5px);\r\n            transform: translate(-5px, -5px);\n}\n}\n@keyframes animation3shape4-data-v-e4af0bea {\nfrom {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\nto {\r\n    -webkit-transform: translate(-5px, -5px);\r\n            transform: translate(-5px, -5px);\n}\n}\r\n", ""]);
-// Exports
-module.exports = exports;
-
-
-/***/ }),
-/* 65 */
-/*!*************************************************************************************************************!*\
-  !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading4.vue ***!
-  \*************************************************************************************************************/
-/*! no static exports found */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _loading4_vue_vue_type_template_id_e492dce8_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./loading4.vue?vue&type=template&id=e492dce8&scoped=true& */ 66);
-/* harmony import */ var _loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./loading4.vue?vue&type=script&lang=js& */ 68);
-/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));
-/* harmony import */ var _loading4_vue_vue_type_style_index_0_id_e492dce8_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./loading4.vue?vue&type=style&index=0&id=e492dce8&scoped=true&lang=css& */ 70);
-/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 10);
-
-var renderjs
-
-
-
-
-
-/* normalize component */
-
-var component = Object(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])(
-  _loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
-  _loading4_vue_vue_type_template_id_e492dce8_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"],
-  _loading4_vue_vue_type_template_id_e492dce8_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
-  false,
-  null,
-  "e492dce8",
-  null,
-  false,
-  _loading4_vue_vue_type_template_id_e492dce8_scoped_true___WEBPACK_IMPORTED_MODULE_0__["components"],
-  renderjs
-)
-
-component.options.__file = "uni_modules/qiun-data-charts/components/qiun-loading/loading4.vue"
-/* harmony default export */ __webpack_exports__["default"] = (component.exports);
-
-/***/ }),
-/* 66 */
-/*!********************************************************************************************************************************************************!*\
-  !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading4.vue?vue&type=template&id=e492dce8&scoped=true& ***!
-  \********************************************************************************************************************************************************/
-/*! exports provided: render, staticRenderFns, recyclableRender, components */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading4_vue_vue_type_template_id_e492dce8_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--16-0!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./loading4.vue?vue&type=template&id=e492dce8&scoped=true& */ 67);
-/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading4_vue_vue_type_template_id_e492dce8_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; });
-
-/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading4_vue_vue_type_template_id_e492dce8_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
-
-/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading4_vue_vue_type_template_id_e492dce8_scoped_true___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; });
-
-/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading4_vue_vue_type_template_id_e492dce8_scoped_true___WEBPACK_IMPORTED_MODULE_0__["components"]; });
-
-
-
-/***/ }),
-/* 67 */
-/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
-  !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--16-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading4.vue?vue&type=template&id=e492dce8&scoped=true& ***!
-  \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
-/*! exports provided: render, staticRenderFns, recyclableRender, components */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; });
-var components
-var render = function() {
-  var _vm = this
-  var _h = _vm.$createElement
-  var _c = _vm._self._c || _h
-  return _c(
-    "uni-view",
-    { staticClass: _vm._$g(0, "sc"), attrs: { _i: 0 } },
-    [
-      _c("uni-view", { staticClass: _vm._$g(1, "sc"), attrs: { _i: 1 } }),
-      _c("uni-view", { staticClass: _vm._$g(2, "sc"), attrs: { _i: 2 } }),
-      _c("uni-view", { staticClass: _vm._$g(3, "sc"), attrs: { _i: 3 } }),
-      _c("uni-view", { staticClass: _vm._$g(4, "sc"), attrs: { _i: 4 } })
-    ],
-    1
-  )
-}
-var recyclableRender = false
-var staticRenderFns = []
-render._withStripped = true
-
-
-
-/***/ }),
-/* 68 */
-/*!**************************************************************************************************************************************!*\
-  !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading4.vue?vue&type=script&lang=js& ***!
-  \**************************************************************************************************************************************/
-/*! no static exports found */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/script.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./loading4.vue?vue&type=script&lang=js& */ 69);
-/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);
-/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
- /* harmony default export */ __webpack_exports__["default"] = (_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); 
-
-/***/ }),
-/* 69 */
-/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
-  !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/script.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading4.vue?vue&type=script&lang=js& ***!
-  \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
-/*! no static exports found */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;var _default =
-
-{
-  name: "loading5",
-  data: function data() {
-    return {
-      wxsProps: {} };
-
-  },
-  components: {} };exports.default = _default;
-
-/***/ }),
-/* 70 */
-/*!**********************************************************************************************************************************************************************!*\
-  !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading4.vue?vue&type=style&index=0&id=e492dce8&scoped=true&lang=css& ***!
-  \**********************************************************************************************************************************************************************/
-/*! no static exports found */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading4_vue_vue_type_style_index_0_id_e492dce8_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/app-vue-style-loader??ref--6-oneOf-1-0!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/postcss-loader/src??ref--6-oneOf-1-3!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./loading4.vue?vue&type=style&index=0&id=e492dce8&scoped=true&lang=css& */ 71);
-/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading4_vue_vue_type_style_index_0_id_e492dce8_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading4_vue_vue_type_style_index_0_id_e492dce8_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__);
-/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading4_vue_vue_type_style_index_0_id_e492dce8_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading4_vue_vue_type_style_index_0_id_e492dce8_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
- /* harmony default export */ __webpack_exports__["default"] = (_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading4_vue_vue_type_style_index_0_id_e492dce8_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a); 
-
-/***/ }),
-/* 71 */
-/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
-  !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/app-vue-style-loader??ref--6-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!./node_modules/postcss-loader/src??ref--6-oneOf-1-3!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading4.vue?vue&type=style&index=0&id=e492dce8&scoped=true&lang=css& ***!
-  \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
-/*! no static exports found */
-/***/ (function(module, exports, __webpack_require__) {
-
-// style-loader: Adds some css to the DOM by adding a <style> tag
-
-// load the styles
-var content = __webpack_require__(/*! !../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/postcss-loader/src??ref--6-oneOf-1-3!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./loading4.vue?vue&type=style&index=0&id=e492dce8&scoped=true&lang=css& */ 72);
-if(content.__esModule) content = content.default;
-if(typeof content === 'string') content = [[module.i, content, '']];
-if(content.locals) module.exports = content.locals;
-// add the styles to the DOM
-var add = __webpack_require__(/*! ../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/app-vue-style-loader/lib/addStylesClient.js */ 20).default
-var update = add("a136bcf4", content, false, {"sourceMap":false,"shadowMode":false});
-// Hot Module Replacement
-if(false) {}
-
-/***/ }),
-/* 72 */
-/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
-  !*** ./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!./node_modules/postcss-loader/src??ref--6-oneOf-1-3!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading4.vue?vue&type=style&index=0&id=e492dce8&scoped=true&lang=css& ***!
-  \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
-/*! no static exports found */
-/***/ (function(module, exports, __webpack_require__) {
-
-// Imports
-var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/runtime/api.js */ 19);
-exports = ___CSS_LOADER_API_IMPORT___(false);
-// Module
-exports.push([module.i, "\n.container[data-v-e492dce8] {\r\n  width: 30px;\r\n  height: 30px;\r\n  position: relative;\n}\n.container.loading5 .shape[data-v-e492dce8] {\r\n  width: 15px;\r\n  height: 15px;\n}\n.container .shape[data-v-e492dce8] {\r\n  position: absolute;\r\n  width: 10px;\r\n  height: 10px;\r\n  border-radius: 1px;\n}\n.container .shape.shape1[data-v-e492dce8] {\r\n  left: 0;\r\n  background-color: #1890FF;\n}\n.container .shape.shape2[data-v-e492dce8] {\r\n  right: 0;\r\n  background-color: #91CB74;\n}\n.container .shape.shape3[data-v-e492dce8] {\r\n  bottom: 0;\r\n  background-color: #FAC858;\n}\n.container .shape.shape4[data-v-e492dce8] {\r\n  bottom: 0;\r\n  right: 0;\r\n  background-color: #EE6666;\n}\n.loading5 .shape1[data-v-e492dce8] {\r\n  animation: animation5shape1-data-v-e492dce8 2s ease 0s infinite reverse;\n}\n@-webkit-keyframes animation5shape1-data-v-e492dce8 {\n0% {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\n25% {\r\n    -webkit-transform: translate(0, 15px);\r\n            transform: translate(0, 15px);\n}\n50% {\r\n    -webkit-transform: translate(15px, 15px);\r\n            transform: translate(15px, 15px);\n}\n75% {\r\n    -webkit-transform: translate(15px, 0);\r\n            transform: translate(15px, 0);\n}\n}\n@keyframes animation5shape1-data-v-e492dce8 {\n0% {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\n25% {\r\n    -webkit-transform: translate(0, 15px);\r\n            transform: translate(0, 15px);\n}\n50% {\r\n    -webkit-transform: translate(15px, 15px);\r\n            transform: translate(15px, 15px);\n}\n75% {\r\n    -webkit-transform: translate(15px, 0);\r\n            transform: translate(15px, 0);\n}\n}\n.loading5 .shape2[data-v-e492dce8] {\r\n  animation: animation5shape2-data-v-e492dce8 2s ease 0s infinite reverse;\n}\n@-webkit-keyframes animation5shape2-data-v-e492dce8 {\n0% {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\n25% {\r\n    -webkit-transform: translate(-15px, 0);\r\n            transform: translate(-15px, 0);\n}\n50% {\r\n    -webkit-transform: translate(-15px, 15px);\r\n            transform: translate(-15px, 15px);\n}\n75% {\r\n    -webkit-transform: translate(0, 15px);\r\n            transform: translate(0, 15px);\n}\n}\n@keyframes animation5shape2-data-v-e492dce8 {\n0% {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\n25% {\r\n    -webkit-transform: translate(-15px, 0);\r\n            transform: translate(-15px, 0);\n}\n50% {\r\n    -webkit-transform: translate(-15px, 15px);\r\n            transform: translate(-15px, 15px);\n}\n75% {\r\n    -webkit-transform: translate(0, 15px);\r\n            transform: translate(0, 15px);\n}\n}\n.loading5 .shape3[data-v-e492dce8] {\r\n  animation: animation5shape3-data-v-e492dce8 2s ease 0s infinite reverse;\n}\n@-webkit-keyframes animation5shape3-data-v-e492dce8 {\n0% {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\n25% {\r\n    -webkit-transform: translate(15px, 0);\r\n            transform: translate(15px, 0);\n}\n50% {\r\n    -webkit-transform: translate(15px, -15px);\r\n            transform: translate(15px, -15px);\n}\n75% {\r\n    -webkit-transform: translate(0, -15px);\r\n            transform: translate(0, -15px);\n}\n}\n@keyframes animation5shape3-data-v-e492dce8 {\n0% {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\n25% {\r\n    -webkit-transform: translate(15px, 0);\r\n            transform: translate(15px, 0);\n}\n50% {\r\n    -webkit-transform: translate(15px, -15px);\r\n            transform: translate(15px, -15px);\n}\n75% {\r\n    -webkit-transform: translate(0, -15px);\r\n            transform: translate(0, -15px);\n}\n}\n.loading5 .shape4[data-v-e492dce8] {\r\n  animation: animation5shape4-data-v-e492dce8 2s ease 0s infinite reverse;\n}\n@-webkit-keyframes animation5shape4-data-v-e492dce8 {\n0% {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\n25% {\r\n    -webkit-transform: translate(0, -15px);\r\n            transform: translate(0, -15px);\n}\n50% {\r\n    -webkit-transform: translate(-15px, -15px);\r\n            transform: translate(-15px, -15px);\n}\n75% {\r\n    -webkit-transform: translate(-15px, 0);\r\n            transform: translate(-15px, 0);\n}\n}\n@keyframes animation5shape4-data-v-e492dce8 {\n0% {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\n25% {\r\n    -webkit-transform: translate(0, -15px);\r\n            transform: translate(0, -15px);\n}\n50% {\r\n    -webkit-transform: translate(-15px, -15px);\r\n            transform: translate(-15px, -15px);\n}\n75% {\r\n    -webkit-transform: translate(-15px, 0);\r\n            transform: translate(-15px, 0);\n}\n}\r\n\r\n", ""]);
-// Exports
-module.exports = exports;
-
-
-/***/ }),
-/* 73 */
-/*!*************************************************************************************************************!*\
-  !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading5.vue ***!
-  \*************************************************************************************************************/
-/*! no static exports found */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _loading5_vue_vue_type_template_id_e476ade6_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./loading5.vue?vue&type=template&id=e476ade6&scoped=true& */ 74);
-/* harmony import */ var _loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./loading5.vue?vue&type=script&lang=js& */ 76);
-/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));
-/* harmony import */ var _loading5_vue_vue_type_style_index_0_id_e476ade6_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./loading5.vue?vue&type=style&index=0&id=e476ade6&scoped=true&lang=css& */ 78);
-/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 10);
-
-var renderjs
-
-
-
-
-
-/* normalize component */
-
-var component = Object(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])(
-  _loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
-  _loading5_vue_vue_type_template_id_e476ade6_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"],
-  _loading5_vue_vue_type_template_id_e476ade6_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
-  false,
-  null,
-  "e476ade6",
-  null,
-  false,
-  _loading5_vue_vue_type_template_id_e476ade6_scoped_true___WEBPACK_IMPORTED_MODULE_0__["components"],
-  renderjs
-)
-
-component.options.__file = "uni_modules/qiun-data-charts/components/qiun-loading/loading5.vue"
-/* harmony default export */ __webpack_exports__["default"] = (component.exports);
-
-/***/ }),
-/* 74 */
-/*!********************************************************************************************************************************************************!*\
-  !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading5.vue?vue&type=template&id=e476ade6&scoped=true& ***!
-  \********************************************************************************************************************************************************/
-/*! exports provided: render, staticRenderFns, recyclableRender, components */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading5_vue_vue_type_template_id_e476ade6_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--16-0!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./loading5.vue?vue&type=template&id=e476ade6&scoped=true& */ 75);
-/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading5_vue_vue_type_template_id_e476ade6_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; });
-
-/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading5_vue_vue_type_template_id_e476ade6_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
-
-/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading5_vue_vue_type_template_id_e476ade6_scoped_true___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; });
-
-/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading5_vue_vue_type_template_id_e476ade6_scoped_true___WEBPACK_IMPORTED_MODULE_0__["components"]; });
-
-
-
-/***/ }),
-/* 75 */
-/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
-  !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--16-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading5.vue?vue&type=template&id=e476ade6&scoped=true& ***!
-  \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
-/*! exports provided: render, staticRenderFns, recyclableRender, components */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; });
-var components
-var render = function() {
-  var _vm = this
-  var _h = _vm.$createElement
-  var _c = _vm._self._c || _h
-  return _c(
-    "uni-view",
-    { staticClass: _vm._$g(0, "sc"), attrs: { _i: 0 } },
-    [
-      _c("uni-view", { staticClass: _vm._$g(1, "sc"), attrs: { _i: 1 } }),
-      _c("uni-view", { staticClass: _vm._$g(2, "sc"), attrs: { _i: 2 } }),
-      _c("uni-view", { staticClass: _vm._$g(3, "sc"), attrs: { _i: 3 } }),
-      _c("uni-view", { staticClass: _vm._$g(4, "sc"), attrs: { _i: 4 } })
-    ],
-    1
-  )
-}
-var recyclableRender = false
-var staticRenderFns = []
-render._withStripped = true
-
-
-
-/***/ }),
-/* 76 */
-/*!**************************************************************************************************************************************!*\
-  !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading5.vue?vue&type=script&lang=js& ***!
-  \**************************************************************************************************************************************/
-/*! no static exports found */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/script.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./loading5.vue?vue&type=script&lang=js& */ 77);
-/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);
-/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
- /* harmony default export */ __webpack_exports__["default"] = (_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); 
-
-/***/ }),
-/* 77 */
-/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
-  !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/script.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading5.vue?vue&type=script&lang=js& ***!
-  \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
-/*! no static exports found */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;var _default =
-
-{
-  name: "loading6",
-  data: function data() {
-    return {
-      wxsProps: {} };
-
-  },
-  components: {} };exports.default = _default;
-
-/***/ }),
-/* 78 */
-/*!**********************************************************************************************************************************************************************!*\
-  !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading5.vue?vue&type=style&index=0&id=e476ade6&scoped=true&lang=css& ***!
-  \**********************************************************************************************************************************************************************/
-/*! no static exports found */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading5_vue_vue_type_style_index_0_id_e476ade6_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/app-vue-style-loader??ref--6-oneOf-1-0!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/postcss-loader/src??ref--6-oneOf-1-3!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./loading5.vue?vue&type=style&index=0&id=e476ade6&scoped=true&lang=css& */ 79);
-/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading5_vue_vue_type_style_index_0_id_e476ade6_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading5_vue_vue_type_style_index_0_id_e476ade6_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__);
-/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading5_vue_vue_type_style_index_0_id_e476ade6_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading5_vue_vue_type_style_index_0_id_e476ade6_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
- /* harmony default export */ __webpack_exports__["default"] = (_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_loading5_vue_vue_type_style_index_0_id_e476ade6_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a); 
-
-/***/ }),
-/* 79 */
-/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
-  !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/app-vue-style-loader??ref--6-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!./node_modules/postcss-loader/src??ref--6-oneOf-1-3!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading5.vue?vue&type=style&index=0&id=e476ade6&scoped=true&lang=css& ***!
-  \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
-/*! no static exports found */
-/***/ (function(module, exports, __webpack_require__) {
-
-// style-loader: Adds some css to the DOM by adding a <style> tag
-
-// load the styles
-var content = __webpack_require__(/*! !../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/postcss-loader/src??ref--6-oneOf-1-3!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./loading5.vue?vue&type=style&index=0&id=e476ade6&scoped=true&lang=css& */ 80);
-if(content.__esModule) content = content.default;
-if(typeof content === 'string') content = [[module.i, content, '']];
-if(content.locals) module.exports = content.locals;
-// add the styles to the DOM
-var add = __webpack_require__(/*! ../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/app-vue-style-loader/lib/addStylesClient.js */ 20).default
-var update = add("75b304e0", content, false, {"sourceMap":false,"shadowMode":false});
-// Hot Module Replacement
-if(false) {}
-
-/***/ }),
-/* 80 */
-/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
-  !*** ./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!./node_modules/postcss-loader/src??ref--6-oneOf-1-3!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-loading/loading5.vue?vue&type=style&index=0&id=e476ade6&scoped=true&lang=css& ***!
-  \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
-/*! no static exports found */
-/***/ (function(module, exports, __webpack_require__) {
-
-// Imports
-var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/runtime/api.js */ 19);
-exports = ___CSS_LOADER_API_IMPORT___(false);
-// Module
-exports.push([module.i, "\n.container[data-v-e476ade6] {\r\n  width: 30px;\r\n  height: 30px;\r\n  position: relative;\n}\n.container.loading6[data-v-e476ade6] {\r\n  -webkit-animation: rotation 1s infinite;\r\n          animation: rotation 1s infinite;\n}\n.container.loading6 .shape[data-v-e476ade6] {\r\n  width: 12px;\r\n  height: 12px;\r\n  border-radius: 2px;\n}\n.container .shape[data-v-e476ade6] {\r\n  position: absolute;\r\n  width: 10px;\r\n  height: 10px;\r\n  border-radius: 1px;\n}\n.container .shape.shape1[data-v-e476ade6] {\r\n  left: 0;\r\n  background-color: #1890FF;\n}\n.container .shape.shape2[data-v-e476ade6] {\r\n  right: 0;\r\n  background-color: #91CB74;\n}\n.container .shape.shape3[data-v-e476ade6] {\r\n  bottom: 0;\r\n  background-color: #FAC858;\n}\n.container .shape.shape4[data-v-e476ade6] {\r\n  bottom: 0;\r\n  right: 0;\r\n  background-color: #EE6666;\n}\n.loading6 .shape1[data-v-e476ade6] {\r\n  -webkit-animation: animation6shape1-data-v-e476ade6 2s linear 0s infinite normal;\r\n          animation: animation6shape1-data-v-e476ade6 2s linear 0s infinite normal;\n}\n@-webkit-keyframes animation6shape1-data-v-e476ade6 {\n0% {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\n25% {\r\n    -webkit-transform: translate(0, 18px);\r\n            transform: translate(0, 18px);\n}\n50% {\r\n    -webkit-transform: translate(18px, 18px);\r\n            transform: translate(18px, 18px);\n}\n75% {\r\n    -webkit-transform: translate(18px, 0);\r\n            transform: translate(18px, 0);\n}\n}\n@keyframes animation6shape1-data-v-e476ade6 {\n0% {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\n25% {\r\n    -webkit-transform: translate(0, 18px);\r\n            transform: translate(0, 18px);\n}\n50% {\r\n    -webkit-transform: translate(18px, 18px);\r\n            transform: translate(18px, 18px);\n}\n75% {\r\n    -webkit-transform: translate(18px, 0);\r\n            transform: translate(18px, 0);\n}\n}\n.loading6 .shape2[data-v-e476ade6] {\r\n  -webkit-animation: animation6shape2-data-v-e476ade6 2s linear 0s infinite normal;\r\n          animation: animation6shape2-data-v-e476ade6 2s linear 0s infinite normal;\n}\n@-webkit-keyframes animation6shape2-data-v-e476ade6 {\n0% {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\n25% {\r\n    -webkit-transform: translate(-18px, 0);\r\n            transform: translate(-18px, 0);\n}\n50% {\r\n    -webkit-transform: translate(-18px, 18px);\r\n            transform: translate(-18px, 18px);\n}\n75% {\r\n    -webkit-transform: translate(0, 18px);\r\n            transform: translate(0, 18px);\n}\n}\n@keyframes animation6shape2-data-v-e476ade6 {\n0% {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\n25% {\r\n    -webkit-transform: translate(-18px, 0);\r\n            transform: translate(-18px, 0);\n}\n50% {\r\n    -webkit-transform: translate(-18px, 18px);\r\n            transform: translate(-18px, 18px);\n}\n75% {\r\n    -webkit-transform: translate(0, 18px);\r\n            transform: translate(0, 18px);\n}\n}\n.loading6 .shape3[data-v-e476ade6] {\r\n  -webkit-animation: animation6shape3-data-v-e476ade6 2s linear 0s infinite normal;\r\n          animation: animation6shape3-data-v-e476ade6 2s linear 0s infinite normal;\n}\n@-webkit-keyframes animation6shape3-data-v-e476ade6 {\n0% {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\n25% {\r\n    -webkit-transform: translate(18px, 0);\r\n            transform: translate(18px, 0);\n}\n50% {\r\n    -webkit-transform: translate(18px, -18px);\r\n            transform: translate(18px, -18px);\n}\n75% {\r\n    -webkit-transform: translate(0, -18px);\r\n            transform: translate(0, -18px);\n}\n}\n@keyframes animation6shape3-data-v-e476ade6 {\n0% {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\n25% {\r\n    -webkit-transform: translate(18px, 0);\r\n            transform: translate(18px, 0);\n}\n50% {\r\n    -webkit-transform: translate(18px, -18px);\r\n            transform: translate(18px, -18px);\n}\n75% {\r\n    -webkit-transform: translate(0, -18px);\r\n            transform: translate(0, -18px);\n}\n}\n.loading6 .shape4[data-v-e476ade6] {\r\n  -webkit-animation: animation6shape4-data-v-e476ade6 2s linear 0s infinite normal;\r\n          animation: animation6shape4-data-v-e476ade6 2s linear 0s infinite normal;\n}\n@-webkit-keyframes animation6shape4-data-v-e476ade6 {\n0% {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\n25% {\r\n    -webkit-transform: translate(0, -18px);\r\n            transform: translate(0, -18px);\n}\n50% {\r\n    -webkit-transform: translate(-18px, -18px);\r\n            transform: translate(-18px, -18px);\n}\n75% {\r\n    -webkit-transform: translate(-18px, 0);\r\n            transform: translate(-18px, 0);\n}\n}\n@keyframes animation6shape4-data-v-e476ade6 {\n0% {\r\n    -webkit-transform: translate(0, 0);\r\n            transform: translate(0, 0);\n}\n25% {\r\n    -webkit-transform: translate(0, -18px);\r\n            transform: translate(0, -18px);\n}\n50% {\r\n    -webkit-transform: translate(-18px, -18px);\r\n            transform: translate(-18px, -18px);\n}\n75% {\r\n    -webkit-transform: translate(-18px, 0);\r\n            transform: translate(-18px, 0);\n}\n}\r\n", ""]);
-// Exports
-module.exports = exports;
-
-
-/***/ }),
-/* 81 */
-/*!*************************************************************************************************************!*\
-  !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-error/qiun-error.vue ***!
-  \*************************************************************************************************************/
-/*! no static exports found */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _qiun_error_vue_vue_type_template_id_0507f1f4_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./qiun-error.vue?vue&type=template&id=0507f1f4&scoped=true& */ 82);
-/* harmony import */ var _qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./qiun-error.vue?vue&type=script&lang=js& */ 84);
-/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));
-/* harmony import */ var _qiun_error_vue_vue_type_style_index_0_id_0507f1f4_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./qiun-error.vue?vue&type=style&index=0&id=0507f1f4&scoped=true&lang=css& */ 86);
-/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 10);
-
-var renderjs
-
-
-
-
-
-/* normalize component */
-
-var component = Object(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])(
-  _qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
-  _qiun_error_vue_vue_type_template_id_0507f1f4_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"],
-  _qiun_error_vue_vue_type_template_id_0507f1f4_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
-  false,
-  null,
-  "0507f1f4",
-  null,
-  false,
-  _qiun_error_vue_vue_type_template_id_0507f1f4_scoped_true___WEBPACK_IMPORTED_MODULE_0__["components"],
-  renderjs
-)
-
-component.options.__file = "uni_modules/qiun-data-charts/components/qiun-error/qiun-error.vue"
-/* harmony default export */ __webpack_exports__["default"] = (component.exports);
-
-/***/ }),
-/* 82 */
-/*!********************************************************************************************************************************************************!*\
-  !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-error/qiun-error.vue?vue&type=template&id=0507f1f4&scoped=true& ***!
-  \********************************************************************************************************************************************************/
-/*! exports provided: render, staticRenderFns, recyclableRender, components */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_error_vue_vue_type_template_id_0507f1f4_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--16-0!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./qiun-error.vue?vue&type=template&id=0507f1f4&scoped=true& */ 83);
-/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_error_vue_vue_type_template_id_0507f1f4_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; });
-
-/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_error_vue_vue_type_template_id_0507f1f4_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
-
-/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_error_vue_vue_type_template_id_0507f1f4_scoped_true___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; });
-
-/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_error_vue_vue_type_template_id_0507f1f4_scoped_true___WEBPACK_IMPORTED_MODULE_0__["components"]; });
-
-
-
-/***/ }),
-/* 83 */
-/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
-  !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--16-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-error/qiun-error.vue?vue&type=template&id=0507f1f4&scoped=true& ***!
-  \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
-/*! exports provided: render, staticRenderFns, recyclableRender, components */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; });
-var components
-var render = function() {
-  var _vm = this
-  var _h = _vm.$createElement
-  var _c = _vm._self._c || _h
-  return _c(
-    "uni-view",
-    { staticClass: _vm._$g(0, "sc"), attrs: { _i: 0 } },
-    [
-      _c("uni-view", { staticClass: _vm._$g(1, "sc"), attrs: { _i: 1 } }),
-      _c("uni-view", { staticClass: _vm._$g(2, "sc"), attrs: { _i: 2 } }, [
-        _vm._v(_vm._$g(2, "t0-0"))
-      ])
-    ],
-    1
-  )
-}
-var recyclableRender = false
-var staticRenderFns = []
-render._withStripped = true
-
-
-
-/***/ }),
-/* 84 */
-/*!**************************************************************************************************************************************!*\
-  !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-error/qiun-error.vue?vue&type=script&lang=js& ***!
-  \**************************************************************************************************************************************/
-/*! no static exports found */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/script.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./qiun-error.vue?vue&type=script&lang=js& */ 85);
-/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);
-/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
- /* harmony default export */ __webpack_exports__["default"] = (_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); 
-
-/***/ }),
-/* 85 */
-/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
-  !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/script.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-error/qiun-error.vue?vue&type=script&lang=js& ***!
-  \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
-/*! no static exports found */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;var _default =
-
-{
-  name: "qiun-error", props: ["errorMessage"],
-  data: function data() {
-    return {
-      wxsProps: {} };
-
-  },
-  components: {} };exports.default = _default;
-
-/***/ }),
-/* 86 */
-/*!**********************************************************************************************************************************************************************!*\
-  !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-error/qiun-error.vue?vue&type=style&index=0&id=0507f1f4&scoped=true&lang=css& ***!
-  \**********************************************************************************************************************************************************************/
-/*! no static exports found */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_error_vue_vue_type_style_index_0_id_0507f1f4_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/app-vue-style-loader??ref--6-oneOf-1-0!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/postcss-loader/src??ref--6-oneOf-1-3!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./qiun-error.vue?vue&type=style&index=0&id=0507f1f4&scoped=true&lang=css& */ 87);
-/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_error_vue_vue_type_style_index_0_id_0507f1f4_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_error_vue_vue_type_style_index_0_id_0507f1f4_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__);
-/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_error_vue_vue_type_style_index_0_id_0507f1f4_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_error_vue_vue_type_style_index_0_id_0507f1f4_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
- /* harmony default export */ __webpack_exports__["default"] = (_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_error_vue_vue_type_style_index_0_id_0507f1f4_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a); 
-
-/***/ }),
-/* 87 */
-/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
-  !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/app-vue-style-loader??ref--6-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!./node_modules/postcss-loader/src??ref--6-oneOf-1-3!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-error/qiun-error.vue?vue&type=style&index=0&id=0507f1f4&scoped=true&lang=css& ***!
-  \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
-/*! no static exports found */
-/***/ (function(module, exports, __webpack_require__) {
-
-// style-loader: Adds some css to the DOM by adding a <style> tag
-
-// load the styles
-var content = __webpack_require__(/*! !../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/postcss-loader/src??ref--6-oneOf-1-3!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./qiun-error.vue?vue&type=style&index=0&id=0507f1f4&scoped=true&lang=css& */ 88);
-if(content.__esModule) content = content.default;
-if(typeof content === 'string') content = [[module.i, content, '']];
-if(content.locals) module.exports = content.locals;
-// add the styles to the DOM
-var add = __webpack_require__(/*! ../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/app-vue-style-loader/lib/addStylesClient.js */ 20).default
-var update = add("1cba97d7", content, false, {"sourceMap":false,"shadowMode":false});
-// Hot Module Replacement
-if(false) {}
-
-/***/ }),
-/* 88 */
-/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
-  !*** ./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!./node_modules/postcss-loader/src??ref--6-oneOf-1-3!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-error/qiun-error.vue?vue&type=style&index=0&id=0507f1f4&scoped=true&lang=css& ***!
-  \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
-/*! no static exports found */
-/***/ (function(module, exports, __webpack_require__) {
-
-// Imports
-var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/runtime/api.js */ 19);
-exports = ___CSS_LOADER_API_IMPORT___(false);
-// Module
-exports.push([module.i, "\n.chartsview[data-v-0507f1f4] {\n\twidth: 100%;\n\theight: 100%;\n\tdisplay: flex;\n\tflex-direction: column;\n\tflex: 1;\n\tjustify-content: center;\n\talign-items: center;\n}\n.charts-font[data-v-0507f1f4]{\n\tfont-size: 14px;\n\tcolor: #CCCCCC;\n\tmargin-top: 10px;\n}\n.charts-error[data-v-0507f1f4]{\n\twidth: 128px;\n\theight: 128px;\n\tbackground: url(\"data:image/png;base64,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\");\n\tbackground-position: center;\n}\n", ""]);
-// Exports
-module.exports = exports;
-
-
-/***/ }),
-/* 89 */
-/*!********************************************************************************************************************************************************************!*\
-  !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue?vue&type=renderjs&module=rdcharts&lang=js& ***!
-  \********************************************************************************************************************************************************************/
-/*! no static exports found */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_data_charts_vue_vue_type_renderjs_module_rdcharts_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./qiun-data-charts.vue?vue&type=renderjs&module=rdcharts&lang=js& */ 90);
-/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_data_charts_vue_vue_type_renderjs_module_rdcharts_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_data_charts_vue_vue_type_renderjs_module_rdcharts_lang_js___WEBPACK_IMPORTED_MODULE_0__);
-/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_data_charts_vue_vue_type_renderjs_module_rdcharts_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_data_charts_vue_vue_type_renderjs_module_rdcharts_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
- /* harmony default export */ __webpack_exports__["default"] = (_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_data_charts_vue_vue_type_renderjs_module_rdcharts_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); 
-
-/***/ }),
-/* 90 */
-/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
-  !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue?vue&type=renderjs&module=rdcharts&lang=js& ***!
-  \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
-/*! no static exports found */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;var _uCharts = _interopRequireDefault(__webpack_require__(/*! ../../js_sdk/u-charts/u-charts.js */ 91));
-var _configUcharts = _interopRequireDefault(__webpack_require__(/*! ../../js_sdk/u-charts/config-ucharts.js */ 93));
-var _configEcharts = _interopRequireDefault(__webpack_require__(/*! ../../js_sdk/u-charts/config-echarts.js */ 94));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}
-
-var that = {};
-var rootdom = null;
-
-function rddeepCloneAssign() {var origin = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {args[_key - 1] = arguments[_key];}
-  for (var i in args) {
-    for (var key in args[i]) {
-      if (args[i].hasOwnProperty(key)) {
-        origin[key] = args[i][key] && typeof args[i][key] === 'object' ? rddeepCloneAssign(Array.isArray(args[i][key]) ? [] : {}, origin[key], args[i][key]) : args[i][key];
-      }
-    }
-  }
-  return origin;
-}
-
-function rdformatterAssign(args, formatter) {
-  for (var key in args) {
-    if (args[key] !== null && typeof args[key] === 'object') {
-      rdformatterAssign(args[key], formatter);
-    } else if (key === 'format' && typeof args[key] === 'string') {
-      args['formatter'] = formatter[args[key]] ? formatter[args[key]] : undefined;
-    }
-  }
-  return args;
-}var _default =
-
-{
-  data: function data() {
-    return {
-      rid: null };
-
-  },
-  mounted: function mounted() {var _this = this;
-    rootdom = { top: 0, left: 0 };
-
-
-
-
-
-
-
-    setTimeout(function () {
-      if (_this.rid === null) {
-        _this.$ownerInstance && _this.$ownerInstance.callMethod('getRenderType');
-      }
-    }, 200);
-  },
-  destroyed: function destroyed() {
-    delete _configUcharts.default.option[this.rid];
-    delete _configUcharts.default.instance[this.rid];
-    delete _configEcharts.default.option[this.rid];
-    delete _configEcharts.default.instance[this.rid];
-  },
-  methods: {
-    //==============浠ヤ笅鏄疎Charts鐨勬柟娉�====================
-    ecinit: function ecinit(newVal, oldVal, owner, instance) {
-      var cid = JSON.stringify(newVal.id);
-      this.rid = cid;
-      that[cid] = this.$ownerInstance || instance;
-      var eopts = JSON.parse(JSON.stringify(newVal));
-      var type = eopts.type;
-      //杞藉叆骞惰鐩栭粯璁ら厤缃�
-      if (type && _configEcharts.default.type.includes(type)) {
-        _configEcharts.default.option[cid] = rddeepCloneAssign({}, _configEcharts.default[type], eopts);
-      } else {
-        _configEcharts.default.option[cid] = rddeepCloneAssign({}, eopts);
-      }
-      var newData = eopts.chartData;
-      //鎸傝浇categories鍜宻eries
-      if (_configEcharts.default.option[cid].xAxis && _configEcharts.default.option[cid].xAxis.type && _configEcharts.default.option[cid].xAxis.type === 'category') {
-        _configEcharts.default.option[cid].xAxis.data = newData.categories;
-      }
-      if (_configEcharts.default.option[cid].yAxis && _configEcharts.default.option[cid].yAxis.type && _configEcharts.default.option[cid].yAxis.type === 'category') {
-        _configEcharts.default.option[cid].yAxis.data = newData.categories;
-      }
-      _configEcharts.default.option[cid].series = [];
-      for (var i = 0; i < newData.series.length; i++) {
-        _configEcharts.default.option[cid].seriesTemplate = _configEcharts.default.option[cid].seriesTemplate ? _configEcharts.default.option[cid].seriesTemplate : {};
-        var Template = rddeepCloneAssign({}, _configEcharts.default.option[cid].seriesTemplate, newData.series[i]);
-        _configEcharts.default.option[cid].series.push(Template);
-      }
-      if (typeof window.echarts === 'object') {
-        this.newEChart();
-      } else {
-        var script = document.createElement('script');
-
-        script.src = './uni_modules/qiun-data-charts/static/app-plus/echarts.min.js';
-
-
-
-
-
-
-        script.onload = this.newEChart;
-        document.head.appendChild(script);
-      }
-    },
-    ecresize: function ecresize(newVal, oldVal, owner, instance) {
-      if (_configEcharts.default.instance[this.rid]) {
-        _configEcharts.default.instance[this.rid].resize();
-      }
-    },
-    newEChart: function newEChart() {
-      var cid = this.rid;
-      if (_configEcharts.default.instance[cid] === undefined) {
-        _configEcharts.default.instance[cid] = echarts.init(that[cid].$el.children[0]);
-        //ontap寮�鍚悗鎵嶈Е鍙慶lick浜嬩欢
-        if (_configEcharts.default.option[cid].ontap === true) {
-          _configEcharts.default.instance[cid].on('click', function (resdata) {
-            var event = JSON.parse(JSON.stringify({
-              x: resdata.event.offsetX, y: resdata.event.offsetY }));
-
-            that[cid].callMethod('emitMsg', { name: "getIndex", params: { type: "getIndex", event: event, currentIndex: resdata.dataIndex, value: resdata.data, seriesName: resdata.seriesName, id: cid } });
-          });
-          // 澧炲姞ECharts鐨刪ighlight娑堟伅锛屽疄鐜版寜涓嬬Щ鍔ㄨ繑鍥炵储寮曞姛鑳姐�俛dd by onefish 鍒涘缓浜� 2021-12-11 09:50
-          _configEcharts.default.instance[cid].on('highlight', function (resdata) {
-            that[cid].callMethod('emitMsg', { name: "getHighlight", params: { type: "highlight", dataIndex: resdata.batch[0].dataIndex, id: cid } });
-          });
-        }
-        this.updataEChart(cid, _configEcharts.default.option[cid]);
-      } else {
-        this.updataEChart(cid, _configEcharts.default.option[cid]);
-      }
-    },
-    updataEChart: function updataEChart(cid, option) {
-      //鏇挎崲option鍐協ormat灞炴�т负formatter鐨勯瀹氫箟鏂规硶
-      option = rdformatterAssign(option, _configEcharts.default.formatter);
-      if (option.tooltip) {
-        option.tooltip.show = option.tooltipShow ? true : false;
-        option.tooltip.position = this.tooltipPosition();
-        //tooltipFormat鏂规硶锛屾浛鎹㈢粍浠剁殑tooltipFormat涓篶onfig-echarts.js鍐呭搴旂殑鏂规硶
-        if (typeof option.tooltipFormat === 'string' && _configEcharts.default.formatter[option.tooltipFormat]) {
-          option.tooltip.formatter = option.tooltip.formatter ? option.tooltip.formatter : _configEcharts.default.formatter[option.tooltipFormat];
-        }
-      }
-      // 棰滆壊娓愬彉娣诲姞鐨勬柟娉�
-      if (option.series) {
-        for (var i in option.series) {
-          var linearGradient = option.series[i].linearGradient;
-          if (linearGradient) {
-            option.series[i].color = new echarts.graphic.LinearGradient(linearGradient[0], linearGradient[1], linearGradient[2], linearGradient[3], linearGradient[4]);
-          }
-        }
-      }
-      _configEcharts.default.instance[cid].setOption(option, option.notMerge);
-      _configEcharts.default.instance[cid].on('finished', function () {
-        that[cid].callMethod('emitMsg', { name: "complete", params: { type: "complete", complete: true, id: cid } });
-        if (_configEcharts.default.instance[cid]) {
-          _configEcharts.default.instance[cid].off('finished');
-        }
-      });
-    },
-    tooltipPosition: function tooltipPosition() {
-      return function (point, params, dom, rect, size) {
-        var x = point[0];
-        var y = point[1];
-        var viewWidth = size.viewSize[0];
-        var viewHeight = size.viewSize[1];
-        var boxWidth = size.contentSize[0];
-        var boxHeight = size.contentSize[1];
-        var posX = x + 30;
-        var posY = y + 30;
-        if (posX + boxWidth > viewWidth) {
-          posX = x - boxWidth - 30;
-        }
-        if (posY + boxHeight > viewHeight) {
-          posY = y - boxHeight - 30;
-        }
-        return [posX, posY];
-      };
-    },
-    //==============浠ヤ笅鏄痷Charts鐨勬柟娉�====================
-    ucinit: function ucinit(newVal, oldVal, owner, instance) {var _this2 = this;
-      if (JSON.stringify(newVal) == JSON.stringify(oldVal)) {
-        return;
-      }
-      if (!newVal.canvasId) {
-        return;
-      }
-      var cid = JSON.parse(JSON.stringify(newVal.canvasId));
-      this.rid = cid;
-      that[cid] = this.$ownerInstance || instance;
-      _configUcharts.default.option[cid] = JSON.parse(JSON.stringify(newVal));
-      _configUcharts.default.option[cid] = rdformatterAssign(_configUcharts.default.option[cid], _configUcharts.default.formatter);
-      var canvasdom = document.getElementById(cid);
-      if (canvasdom && canvasdom.children[0]) {
-        _configUcharts.default.option[cid].context = canvasdom.children[0].getContext("2d");
-        if (_configUcharts.default.instance[cid] && _configUcharts.default.option[cid] && _configUcharts.default.option[cid].update === true) {
-          this.updataUChart();
-        } else {
-          setTimeout(function () {
-            _configUcharts.default.option[cid].context.restore();
-            _configUcharts.default.option[cid].context.save();
-            _this2.newUChart();
-          }, 100);
-        }
-      }
-    },
-    newUChart: function newUChart() {
-      var cid = this.rid;
-      _configUcharts.default.instance[cid] = new _uCharts.default(_configUcharts.default.option[cid]);
-      _configUcharts.default.instance[cid].addEventListener('renderComplete', function () {
-        that[cid].callMethod('emitMsg', { name: "complete", params: { type: "complete", complete: true, id: cid } });
-        _configUcharts.default.instance[cid].delEventListener('renderComplete');
-      });
-      _configUcharts.default.instance[cid].addEventListener('scrollLeft', function () {
-        that[cid].callMethod('emitMsg', { name: "scrollLeft", params: { type: "scrollLeft", scrollLeft: true, id: cid } });
-      });
-      _configUcharts.default.instance[cid].addEventListener('scrollRight', function () {
-        that[cid].callMethod('emitMsg', { name: "scrollRight", params: { type: "scrollRight", scrollRight: true, id: cid } });
-      });
-    },
-    updataUChart: function updataUChart() {
-      var cid = this.rid;
-      _configUcharts.default.instance[cid].updateData(_configUcharts.default.option[cid]);
-    },
-    tooltipDefault: function tooltipDefault(item, category, index, opts) {
-      if (category) {
-        var data = item.data;
-        if (typeof item.data === "object") {
-          data = item.data.value;
-        }
-        return category + ' ' + item.name + ':' + data;
-      } else {
-        if (item.properties && item.properties.name) {
-          return item.properties.name;
-        } else {
-          return item.name + ':' + item.data;
-        }
-      }
-    },
-    showTooltip: function showTooltip(e, cid) {var _this3 = this;
-      var tc = _configUcharts.default.option[cid].tooltipCustom;
-      if (tc && tc !== undefined && tc !== null) {
-        var offset = undefined;
-        if (tc.x >= 0 && tc.y >= 0) {
-          offset = { x: tc.x, y: tc.y + 10 };
-        }
-        _configUcharts.default.instance[cid].showToolTip(e, {
-          index: tc.index,
-          offset: offset,
-          textList: tc.textList,
-          formatter: function formatter(item, category, index, opts) {
-            if (typeof _configUcharts.default.option[cid].tooltipFormat === 'string' && _configUcharts.default.formatter[_configUcharts.default.option[cid].tooltipFormat]) {
-              return _configUcharts.default.formatter[_configUcharts.default.option[cid].tooltipFormat](item, category, index, opts);
-            } else {
-              return _this3.tooltipDefault(item, category, index, opts);
-            }
-          } });
-
-      } else {
-        _configUcharts.default.instance[cid].showToolTip(e, {
-          formatter: function formatter(item, category, index, opts) {
-            if (typeof _configUcharts.default.option[cid].tooltipFormat === 'string' && _configUcharts.default.formatter[_configUcharts.default.option[cid].tooltipFormat]) {
-              return _configUcharts.default.formatter[_configUcharts.default.option[cid].tooltipFormat](item, category, index, opts);
-            } else {
-              return _this3.tooltipDefault(item, category, index, opts);
-            }
-          } });
-
-      }
-    },
-    tap: function tap(e) {
-      var cid = this.rid;
-      var ontap = _configUcharts.default.option[cid].ontap;
-      var tooltipShow = _configUcharts.default.option[cid].tooltipShow;
-      var tapLegend = _configUcharts.default.option[cid].tapLegend;
-      if (ontap == false) return;
-      var currentIndex = null;
-      var legendIndex = null;
-      var rchartdom = document.getElementById('UC' + cid).getBoundingClientRect();
-      var tmpe = {};
-      if (e.detail.x) {//tap鎴栬�卌lick鐨勪簨浠�
-        tmpe = { x: e.detail.x - rchartdom.left, y: e.detail.y - rchartdom.top + rootdom.top };
-      } else {//mouse鐨勪簨浠�
-        tmpe = { x: e.clientX - rchartdom.left, y: e.clientY - rchartdom.top + rootdom.top };
-      }
-      e.changedTouches = [];
-      e.changedTouches.unshift(tmpe);
-      currentIndex = _configUcharts.default.instance[cid].getCurrentDataIndex(e);
-      legendIndex = _configUcharts.default.instance[cid].getLegendDataIndex(e);
-      if (tapLegend === true) {
-        _configUcharts.default.instance[cid].touchLegend(e);
-      }
-      if (tooltipShow == true) {
-        this.showTooltip(e, cid);
-      }
-      that[cid].callMethod('emitMsg', { name: "getIndex", params: { type: "getIndex", event: tmpe, currentIndex: currentIndex, legendIndex: legendIndex, id: cid, opts: _configUcharts.default.instance[cid].opts } });
-    },
-    touchStart: function touchStart(e) {
-      var cid = this.rid;
-      var ontouch = _configUcharts.default.option[cid].ontouch;
-      if (ontouch == false) return;
-      _configUcharts.default.instance[cid].scrollStart(e);
-      that[cid].callMethod('emitMsg', { name: "getTouchStart", params: { type: "touchStart", event: e.changedTouches[0], id: cid } });
-    },
-    touchMove: function touchMove(e) {
-      var cid = this.rid;
-      var ontouch = _configUcharts.default.option[cid].ontouch;
-      if (ontouch == false) return;
-      _configUcharts.default.instance[cid].scroll(e);
-      that[cid].callMethod('emitMsg', { name: "getTouchMove", params: { type: "touchMove", event: e.changedTouches[0], id: cid } });
-      if (_configUcharts.default.option[cid].ontap === true && _configUcharts.default.option[cid].enableScroll === false && _configUcharts.default.option[cid].onmovetip === true) {
-        var rchartdom = document.getElementById('UC' + cid).getBoundingClientRect();
-        var tmpe = { x: e.changedTouches[0].clientX - rchartdom.left, y: e.changedTouches[0].clientY - rchartdom.top + rootdom.top };
-        e.changedTouches = [];
-        e.changedTouches.unshift(tmpe);
-        if (_configUcharts.default.option[cid].tooltipShow === true) {
-          this.showTooltip(e, cid);
-        }
-      }
-    },
-    touchEnd: function touchEnd(e) {
-      var cid = this.rid;
-      var ontouch = _configUcharts.default.option[cid].ontouch;
-      if (ontouch == false) return;
-      _configUcharts.default.instance[cid].scrollEnd(e);
-      that[cid].callMethod('emitMsg', { name: "getTouchEnd", params: { type: "touchEnd", event: e.changedTouches[0], id: cid } });
-    },
-    mouseDown: function mouseDown(e) {
-      var cid = this.rid;
-      var onmouse = _configUcharts.default.option[cid].onmouse;
-      if (onmouse == false) return;
-      var rchartdom = document.getElementById('UC' + cid).getBoundingClientRect();
-      var tmpe = {};
-      tmpe = { x: e.clientX - rchartdom.left, y: e.clientY - rchartdom.top + rootdom.top };
-      e.changedTouches = [];
-      e.changedTouches.unshift(tmpe);
-      _configUcharts.default.instance[cid].scrollStart(e);
-      _configUcharts.default.option[cid].mousedown = true;
-      that[cid].callMethod('emitMsg', { name: "getTouchStart", params: { type: "mouseDown", event: tmpe, id: cid } });
-    },
-    mouseMove: function mouseMove(e) {
-      var cid = this.rid;
-      var onmouse = _configUcharts.default.option[cid].onmouse;
-      var tooltipShow = _configUcharts.default.option[cid].tooltipShow;
-      if (onmouse == false) return;
-      var rchartdom = document.getElementById('UC' + cid).getBoundingClientRect();
-      var tmpe = {};
-      tmpe = { x: e.clientX - rchartdom.left, y: e.clientY - rchartdom.top + rootdom.top };
-      e.changedTouches = [];
-      e.changedTouches.unshift(tmpe);
-      if (_configUcharts.default.option[cid].mousedown) {
-        _configUcharts.default.instance[cid].scroll(e);
-        that[cid].callMethod('emitMsg', { name: "getTouchMove", params: { type: "mouseMove", event: tmpe, id: cid } });
-      } else if (_configUcharts.default.instance[cid]) {
-        if (tooltipShow == true) {
-          this.showTooltip(e, cid);
-        }
-      }
-    },
-    mouseUp: function mouseUp(e) {
-      var cid = this.rid;
-      var onmouse = _configUcharts.default.option[cid].onmouse;
-      if (onmouse == false) return;
-      var rchartdom = document.getElementById('UC' + cid).getBoundingClientRect();
-      var tmpe = {};
-      tmpe = { x: e.clientX - rchartdom.left, y: e.clientY - rchartdom.top + rootdom.top };
-      e.changedTouches = [];
-      e.changedTouches.unshift(tmpe);
-      _configUcharts.default.instance[cid].scrollEnd(e);
-      _configUcharts.default.option[cid].mousedown = false;
-      that[cid].callMethod('emitMsg', { name: "getTouchEnd", params: { type: "mouseUp", event: tmpe, id: cid } });
-    } } };exports.default = _default;
-
-/***/ }),
-/* 91 */
-/*!****************************************************************************************************!*\
-  !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/js_sdk/u-charts/u-charts.js ***!
-  \****************************************************************************************************/
-/*! no static exports found */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-/* WEBPACK VAR INJECTION */(function(__f__) {/*
- * uCharts庐
- * 楂樻�ц兘璺ㄥ钩鍙板浘琛ㄥ簱锛屾敮鎸丠5銆丄PP銆佸皬绋嬪簭锛堝井淇�/鏀粯瀹�/鐧惧害/澶存潯/QQ/360锛夈�乂ue銆乀aro绛夋敮鎸乧anvas鐨勬鏋跺钩鍙�
- * Copyright (c) 2021 QIUN庐绉嬩簯 https://www.ucharts.cn All rights reserved.
- * Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
- * 澶嶅埗浣跨敤璇蜂繚鐣欐湰娈垫敞閲婏紝鎰熻阿鏀寔寮�婧愶紒
- * 
- * uCharts庐瀹樻柟缃戠珯
- * https://www.uCharts.cn
- * 
- * 寮�婧愬湴鍧�:
- * https://gitee.com/uCharts/uCharts
- * 
- * uni-app鎻掍欢甯傚満鍦板潃锛�
- * http://ext.dcloud.net.cn/plugin?id=271
- * 
- */
-
-Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;function _slicedToArray(arr, i) {return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();}function _nonIterableRest() {throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}function _unsupportedIterableToArray(o, minLen) {if (!o) return;if (typeof o === "string") return _arrayLikeToArray(o, minLen);var n = Object.prototype.toString.call(o).slice(8, -1);if (n === "Object" && o.constructor) n = o.constructor.name;if (n === "Map" || n === "Set") return Array.from(o);if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);}function _arrayLikeToArray(arr, len) {if (len == null || len > arr.length) len = arr.length;for (var i = 0, arr2 = new Array(len); i < len; i++) {arr2[i] = arr[i];}return arr2;}function _iterableToArrayLimit(arr, i) {if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return;var _arr = [];var _n = true;var _d = false;var _e = undefined;try {for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {_arr.push(_s.value);if (i && _arr.length === i) break;}} catch (err) {_d = true;_e = err;} finally {try {if (!_n && _i["return"] != null) _i["return"]();} finally {if (_d) throw _e;}}return _arr;}function _arrayWithHoles(arr) {if (Array.isArray(arr)) return arr;}
-
-var config = {
-  version: 'v2.3.7-20220122',
-  yAxisWidth: 15,
-  yAxisSplit: 5,
-  xAxisHeight: 22,
-  xAxisLineHeight: 22,
-  legendHeight: 15,
-  yAxisTitleWidth: 15,
-  padding: [10, 10, 10, 10],
-  pixelRatio: 1,
-  rotate: false,
-  columePadding: 3,
-  fontSize: 13,
-  fontColor: '#666666',
-  dataPointShape: ['circle', 'circle', 'circle', 'circle'],
-  color: ['#1890FF', '#91CB74', '#FAC858', '#EE6666', '#73C0DE', '#3CA272', '#FC8452', '#9A60B4', '#ea7ccc'],
-  linearColor: ['#0EE2F8', '#2BDCA8', '#FA7D8D', '#EB88E2', '#2AE3A0', '#0EE2F8', '#EB88E2', '#6773E3', '#F78A85'],
-  pieChartLinePadding: 15,
-  pieChartTextPadding: 5,
-  xAxisTextPadding: 3,
-  titleColor: '#333333',
-  titleFontSize: 20,
-  subtitleColor: '#999999',
-  subtitleFontSize: 15,
-  toolTipPadding: 3,
-  toolTipBackground: '#000000',
-  toolTipOpacity: 0.7,
-  toolTipLineHeight: 20,
-  radarLabelTextMargin: 13,
-  gaugeLabelTextMargin: 13 };
-
-
-var assign = function assign(target) {for (var _len2 = arguments.length, varArgs = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {varArgs[_key2 - 1] = arguments[_key2];}
-  if (target == null) {
-    throw new TypeError('[uCharts] Cannot convert undefined or null to object');
-  }
-  if (!varArgs || varArgs.length <= 0) {
-    return target;
-  }
-  // 娣卞害鍚堝苟瀵硅薄
-  function deepAssign(obj1, obj2) {
-    for (var key in obj2) {
-      obj1[key] = obj1[key] && obj1[key].toString() === "[object Object]" ?
-      deepAssign(obj1[key], obj2[key]) : obj1[key] = obj2[key];
-    }
-    return obj1;
-  }
-  varArgs.forEach(function (val) {
-    target = deepAssign(target, val);
-  });
-  return target;
-};
-
-var util = {
-  toFixed: function toFixed(num, limit) {
-    limit = limit || 2;
-    if (this.isFloat(num)) {
-      num = num.toFixed(limit);
-    }
-    return num;
-  },
-  isFloat: function isFloat(num) {
-    return num % 1 !== 0;
-  },
-  approximatelyEqual: function approximatelyEqual(num1, num2) {
-    return Math.abs(num1 - num2) < 1e-10;
-  },
-  isSameSign: function isSameSign(num1, num2) {
-    return Math.abs(num1) === num1 && Math.abs(num2) === num2 || Math.abs(num1) !== num1 && Math.abs(num2) !== num2;
-  },
-  isSameXCoordinateArea: function isSameXCoordinateArea(p1, p2) {
-    return this.isSameSign(p1.x, p2.x);
-  },
-  isCollision: function isCollision(obj1, obj2) {
-    obj1.end = {};
-    obj1.end.x = obj1.start.x + obj1.width;
-    obj1.end.y = obj1.start.y - obj1.height;
-    obj2.end = {};
-    obj2.end.x = obj2.start.x + obj2.width;
-    obj2.end.y = obj2.start.y - obj2.height;
-    var flag = obj2.start.x > obj1.end.x || obj2.end.x < obj1.start.x || obj2.end.y > obj1.start.y || obj2.start.y < obj1.end.y;
-    return !flag;
-  } };
-
-
-//鍏煎H5鐐瑰嚮浜嬩欢
-function getH5Offset(e) {
-  e.mp = {
-    changedTouches: [] };
-
-  e.mp.changedTouches.push({
-    x: e.offsetX,
-    y: e.offsetY });
-
-  return e;
-}
-
-// 缁忕含搴﹁浆澧ㄥ崱鎵�
-function lonlat2mercator(longitude, latitude) {
-  var mercator = Array(2);
-  var x = longitude * 20037508.34 / 180;
-  var y = Math.log(Math.tan((90 + latitude) * Math.PI / 360)) / (Math.PI / 180);
-  y = y * 20037508.34 / 180;
-  mercator[0] = x;
-  mercator[1] = y;
-  return mercator;
-}
-
-// 澧ㄥ崱鎵樿浆缁忕含搴�
-function mercator2lonlat(longitude, latitude) {
-  var lonlat = Array(2);
-  var x = longitude / 20037508.34 * 180;
-  var y = latitude / 20037508.34 * 180;
-  y = 180 / Math.PI * (2 * Math.atan(Math.exp(y * Math.PI / 180)) - Math.PI / 2);
-  lonlat[0] = x;
-  lonlat[1] = y;
-  return lonlat;
-}
-
-// hex 杞� rgba
-function hexToRgb(hexValue, opc) {
-  var rgx = /^#?([a-f\d])([a-f\d])([a-f\d])$/i;
-  var hex = hexValue.replace(rgx, function (m, r, g, b) {
-    return r + r + g + g + b + b;
-  });
-  var rgb = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
-  var r = parseInt(rgb[1], 16);
-  var g = parseInt(rgb[2], 16);
-  var b = parseInt(rgb[3], 16);
-  return 'rgba(' + r + ',' + g + ',' + b + ',' + opc + ')';
-}
-
-function findRange(num, type, limit) {
-  if (isNaN(num)) {
-    throw new Error('[uCharts] series鏁版嵁闇�涓篘umber鏍煎紡');
-  }
-  limit = limit || 10;
-  type = type ? type : 'upper';
-  var multiple = 1;
-  while (limit < 1) {
-    limit *= 10;
-    multiple *= 10;
-  }
-  if (type === 'upper') {
-    num = Math.ceil(num * multiple);
-  } else {
-    num = Math.floor(num * multiple);
-  }
-  while (num % limit !== 0) {
-    if (type === 'upper') {
-      num++;
-    } else {
-      num--;
-    }
-  }
-  return num / multiple;
-}
-
-function calCandleMA(dayArr, nameArr, colorArr, kdata) {
-  var seriesTemp = [];
-  for (var k = 0; k < dayArr.length; k++) {
-    var seriesItem = {
-      data: [],
-      name: nameArr[k],
-      color: colorArr[k] };
-
-    for (var i = 0, len = kdata.length; i < len; i++) {
-      if (i < dayArr[k]) {
-        seriesItem.data.push(null);
-        continue;
-      }
-      var sum = 0;
-      for (var j = 0; j < dayArr[k]; j++) {
-        sum += kdata[i - j][1];
-      }
-      seriesItem.data.push(+(sum / dayArr[k]).toFixed(3));
-    }
-    seriesTemp.push(seriesItem);
-  }
-  return seriesTemp;
-}
-
-function calValidDistance(self, distance, chartData, config, opts) {
-  var dataChartAreaWidth = opts.width - opts.area[1] - opts.area[3];
-  var dataChartWidth = chartData.eachSpacing * (opts.chartData.xAxisData.xAxisPoints.length - 1);
-  var validDistance = distance;
-  if (distance >= 0) {
-    validDistance = 0;
-    self.uevent.trigger('scrollLeft');
-    self.scrollOption.position = 'left';
-    opts.xAxis.scrollPosition = 'left';
-  } else if (Math.abs(distance) >= dataChartWidth - dataChartAreaWidth) {
-    validDistance = dataChartAreaWidth - dataChartWidth;
-    self.uevent.trigger('scrollRight');
-    self.scrollOption.position = 'right';
-    opts.xAxis.scrollPosition = 'right';
-  } else {
-    self.scrollOption.position = distance;
-    opts.xAxis.scrollPosition = distance;
-  }
-  return validDistance;
-}
-
-function isInAngleRange(angle, startAngle, endAngle) {
-  function adjust(angle) {
-    while (angle < 0) {
-      angle += 2 * Math.PI;
-    }
-    while (angle > 2 * Math.PI) {
-      angle -= 2 * Math.PI;
-    }
-    return angle;
-  }
-  angle = adjust(angle);
-  startAngle = adjust(startAngle);
-  endAngle = adjust(endAngle);
-  if (startAngle > endAngle) {
-    endAngle += 2 * Math.PI;
-    if (angle < startAngle) {
-      angle += 2 * Math.PI;
-    }
-  }
-  return angle >= startAngle && angle <= endAngle;
-}
-
-function calRotateTranslate(x, y, h) {
-  var xv = x;
-  var yv = h - y;
-  var transX = xv + (h - yv - xv) / Math.sqrt(2);
-  transX *= -1;
-  var transY = (h - yv) * (Math.sqrt(2) - 1) - (h - yv - xv) / Math.sqrt(2);
-  return {
-    transX: transX,
-    transY: transY };
-
-}
-
-function createCurveControlPoints(points, i) {
-  function isNotMiddlePoint(points, i) {
-    if (points[i - 1] && points[i + 1]) {
-      return points[i].y >= Math.max(points[i - 1].y, points[i + 1].y) || points[i].y <= Math.min(points[i - 1].y,
-      points[i + 1].y);
-    } else {
-      return false;
-    }
-  }
-  function isNotMiddlePointX(points, i) {
-    if (points[i - 1] && points[i + 1]) {
-      return points[i].x >= Math.max(points[i - 1].x, points[i + 1].x) || points[i].x <= Math.min(points[i - 1].x,
-      points[i + 1].x);
-    } else {
-      return false;
-    }
-  }
-  var a = 0.2;
-  var b = 0.2;
-  var pAx = null;
-  var pAy = null;
-  var pBx = null;
-  var pBy = null;
-  if (i < 1) {
-    pAx = points[0].x + (points[1].x - points[0].x) * a;
-    pAy = points[0].y + (points[1].y - points[0].y) * a;
-  } else {
-    pAx = points[i].x + (points[i + 1].x - points[i - 1].x) * a;
-    pAy = points[i].y + (points[i + 1].y - points[i - 1].y) * a;
-  }
-
-  if (i > points.length - 3) {
-    var last = points.length - 1;
-    pBx = points[last].x - (points[last].x - points[last - 1].x) * b;
-    pBy = points[last].y - (points[last].y - points[last - 1].y) * b;
-  } else {
-    pBx = points[i + 1].x - (points[i + 2].x - points[i].x) * b;
-    pBy = points[i + 1].y - (points[i + 2].y - points[i].y) * b;
-  }
-  if (isNotMiddlePoint(points, i + 1)) {
-    pBy = points[i + 1].y;
-  }
-  if (isNotMiddlePoint(points, i)) {
-    pAy = points[i].y;
-  }
-  if (isNotMiddlePointX(points, i + 1)) {
-    pBx = points[i + 1].x;
-  }
-  if (isNotMiddlePointX(points, i)) {
-    pAx = points[i].x;
-  }
-  if (pAy >= Math.max(points[i].y, points[i + 1].y) || pAy <= Math.min(points[i].y, points[i + 1].y)) {
-    pAy = points[i].y;
-  }
-  if (pBy >= Math.max(points[i].y, points[i + 1].y) || pBy <= Math.min(points[i].y, points[i + 1].y)) {
-    pBy = points[i + 1].y;
-  }
-  if (pAx >= Math.max(points[i].x, points[i + 1].x) || pAx <= Math.min(points[i].x, points[i + 1].x)) {
-    pAx = points[i].x;
-  }
-  if (pBx >= Math.max(points[i].x, points[i + 1].x) || pBx <= Math.min(points[i].x, points[i + 1].x)) {
-    pBx = points[i + 1].x;
-  }
-  return {
-    ctrA: {
-      x: pAx,
-      y: pAy },
-
-    ctrB: {
-      x: pBx,
-      y: pBy } };
-
-
-}
-
-function convertCoordinateOrigin(x, y, center) {
-  return {
-    x: center.x + x,
-    y: center.y - y };
-
-}
-
-function avoidCollision(obj, target) {
-  if (target) {
-    // is collision test
-    while (util.isCollision(obj, target)) {
-      if (obj.start.x > 0) {
-        obj.start.y--;
-      } else if (obj.start.x < 0) {
-        obj.start.y++;
-      } else {
-        if (obj.start.y > 0) {
-          obj.start.y++;
-        } else {
-          obj.start.y--;
-        }
-      }
-    }
-  }
-  return obj;
-}
-
-function fixPieSeries(series, opts, config) {
-  var pieSeriesArr = [];
-  if (series.length > 0 && series[0].data.constructor.toString().indexOf('Array') > -1) {
-    opts._pieSeries_ = series;
-    var oldseries = series[0].data;
-    for (var i = 0; i < oldseries.length; i++) {
-      oldseries[i].formatter = series[0].formatter;
-      oldseries[i].data = oldseries[i].value;
-      pieSeriesArr.push(oldseries[i]);
-    }
-    opts.series = pieSeriesArr;
-  } else {
-    pieSeriesArr = series;
-  }
-  return pieSeriesArr;
-}
-
-function fillSeries(series, opts, config) {
-  var index = 0;
-  for (var i = 0; i < series.length; i++) {
-    var item = series[i];
-    if (!item.color) {
-      item.color = config.color[index];
-      index = (index + 1) % config.color.length;
-    }
-    if (!item.linearIndex) {
-      item.linearIndex = i;
-    }
-    if (!item.index) {
-      item.index = 0;
-    }
-    if (!item.type) {
-      item.type = opts.type;
-    }
-    if (typeof item.show == "undefined") {
-      item.show = true;
-    }
-    if (!item.type) {
-      item.type = opts.type;
-    }
-    if (!item.pointShape) {
-      item.pointShape = "circle";
-    }
-    if (!item.legendShape) {
-      switch (item.type) {
-        case 'line':
-          item.legendShape = "line";
-          break;
-        case 'column':
-          item.legendShape = "rect";
-          break;
-        case 'area':
-          item.legendShape = "triangle";
-          break;
-        case 'bar':
-          item.legendShape = "rect";
-          break;
-        default:
-          item.legendShape = "circle";}
-
-    }
-  }
-  return series;
-}
-
-function fillCustomColor(linearType, customColor, series, config) {
-  var newcolor = customColor || [];
-  if (linearType == 'custom' && newcolor.length == 0) {
-    newcolor = config.linearColor;
-  }
-  if (linearType == 'custom' && newcolor.length < series.length) {
-    var chazhi = series.length - newcolor.length;
-    for (var i = 0; i < chazhi; i++) {
-      newcolor.push(config.linearColor[(i + 1) % config.linearColor.length]);
-    }
-  }
-  return newcolor;
-}
-
-function getDataRange(minData, maxData) {
-  var limit = 0;
-  var range = maxData - minData;
-  if (range >= 10000) {
-    limit = 1000;
-  } else if (range >= 1000) {
-    limit = 100;
-  } else if (range >= 100) {
-    limit = 10;
-  } else if (range >= 10) {
-    limit = 5;
-  } else if (range >= 1) {
-    limit = 1;
-  } else if (range >= 0.1) {
-    limit = 0.1;
-  } else if (range >= 0.01) {
-    limit = 0.01;
-  } else if (range >= 0.001) {
-    limit = 0.001;
-  } else if (range >= 0.0001) {
-    limit = 0.0001;
-  } else if (range >= 0.00001) {
-    limit = 0.00001;
-  } else {
-    limit = 0.000001;
-  }
-  return {
-    minRange: findRange(minData, 'lower', limit),
-    maxRange: findRange(maxData, 'upper', limit) };
-
-}
-
-function measureText(text, fontSize, context) {
-  var width = 0;
-  text = String(text);
-
-
-
-  if (context !== false && context !== undefined && context.setFontSize && context.measureText) {
-    context.setFontSize(fontSize);
-    return context.measureText(text).width;
-  } else {
-    var text = text.split('');
-    for (var i = 0; i < text.length; i++) {
-      var item = text[i];
-      if (/[a-zA-Z]/.test(item)) {
-        width += 7;
-      } else if (/[0-9]/.test(item)) {
-        width += 5.5;
-      } else if (/\./.test(item)) {
-        width += 2.7;
-      } else if (/-/.test(item)) {
-        width += 3.25;
-      } else if (/:/.test(item)) {
-        width += 2.5;
-      } else if (/[\u4e00-\u9fa5]/.test(item)) {
-        width += 10;
-      } else if (/\(|\)/.test(item)) {
-        width += 3.73;
-      } else if (/\s/.test(item)) {
-        width += 2.5;
-      } else if (/%/.test(item)) {
-        width += 8;
-      } else {
-        width += 10;
-      }
-    }
-    return width * fontSize / 10;
-  }
-}
-
-function dataCombine(series) {
-  return series.reduce(function (a, b) {
-    return (a.data ? a.data : a).concat(b.data);
-  }, []);
-}
-
-function dataCombineStack(series, len) {
-  var sum = new Array(len);
-  for (var j = 0; j < sum.length; j++) {
-    sum[j] = 0;
-  }
-  for (var i = 0; i < series.length; i++) {
-    for (var j = 0; j < sum.length; j++) {
-      sum[j] += series[i].data[j];
-    }
-  }
-  return series.reduce(function (a, b) {
-    return (a.data ? a.data : a).concat(b.data).concat(sum);
-  }, []);
-}
-
-function getTouches(touches, opts, e) {
-  var x, y;
-  if (touches.clientX) {
-    if (opts.rotate) {
-      y = opts.height - touches.clientX * opts.pix;
-      x = (touches.pageY - e.currentTarget.offsetTop - opts.height / opts.pix / 2 * (opts.pix - 1)) * opts.pix;
-    } else {
-      x = touches.clientX * opts.pix;
-      y = (touches.pageY - e.currentTarget.offsetTop - opts.height / opts.pix / 2 * (opts.pix - 1)) * opts.pix;
-    }
-  } else {
-    if (opts.rotate) {
-      y = opts.height - touches.x * opts.pix;
-      x = touches.y * opts.pix;
-    } else {
-      x = touches.x * opts.pix;
-      y = touches.y * opts.pix;
-    }
-  }
-  return {
-    x: x,
-    y: y };
-
-}
-
-function getSeriesDataItem(series, index, group) {
-  var data = [];
-  var newSeries = [];
-  var indexIsArr = index.constructor.toString().indexOf('Array') > -1;
-  if (indexIsArr) {
-    var tempSeries = filterSeries(series);
-    for (var i = 0; i < group.length; i++) {
-      newSeries.push(tempSeries[group[i]]);
-    }
-  } else {
-    newSeries = series;
-  };
-  for (var _i = 0; _i < newSeries.length; _i++) {
-    var item = newSeries[_i];
-    var tmpindex = -1;
-    if (indexIsArr) {
-      tmpindex = index[_i];
-    } else {
-      tmpindex = index;
-    }
-    if (item.data[tmpindex] !== null && typeof item.data[tmpindex] !== 'undefined' && item.show) {
-      var seriesItem = {};
-      seriesItem.color = item.color;
-      seriesItem.type = item.type;
-      seriesItem.style = item.style;
-      seriesItem.pointShape = item.pointShape;
-      seriesItem.disableLegend = item.disableLegend;
-      seriesItem.name = item.name;
-      seriesItem.show = item.show;
-      seriesItem.data = item.formatter ? item.formatter(item.data[tmpindex]) : item.data[tmpindex];
-      data.push(seriesItem);
-    }
-  }
-  return data;
-}
-
-function getMaxTextListLength(list, fontSize, context) {
-  var lengthList = list.map(function (item) {
-    return measureText(item, fontSize, context);
-  });
-  return Math.max.apply(null, lengthList);
-}
-
-function getRadarCoordinateSeries(length) {
-  var eachAngle = 2 * Math.PI / length;
-  var CoordinateSeries = [];
-  for (var i = 0; i < length; i++) {
-    CoordinateSeries.push(eachAngle * i);
-  }
-  return CoordinateSeries.map(function (item) {
-    return -1 * item + Math.PI / 2;
-  });
-}
-
-function getToolTipData(seriesData, opts, index, group, categories) {
-  var option = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};
-  var calPoints = opts.chartData.calPoints ? opts.chartData.calPoints : [];
-  var points = {};
-  if (group.length > 0) {
-    var filterPoints = [];
-    for (var i = 0; i < group.length; i++) {
-      filterPoints.push(calPoints[group[i]]);
-    }
-    points = filterPoints[0][index[0]];
-  } else {
-    points = calPoints[0][index];
-  };
-  var textList = seriesData.map(function (item) {
-    var titleText = null;
-    if (opts.categories && opts.categories.length > 0) {
-      titleText = categories[index];
-    };
-    return {
-      text: option.formatter ? option.formatter(item, titleText, index, opts) : item.name + ': ' + item.data,
-      color: item.color };
-
-  });
-  var offset = {
-    x: Math.round(points.x),
-    y: Math.round(points.y) };
-
-  return {
-    textList: textList,
-    offset: offset };
-
-}
-
-function getMixToolTipData(seriesData, opts, index, categories) {
-  var option = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};
-  var points = opts.chartData.xAxisPoints[index] + opts.chartData.eachSpacing / 2;
-  var textList = seriesData.map(function (item) {
-    return {
-      text: option.formatter ? option.formatter(item, categories[index], index, opts) : item.name + ': ' + item.data,
-      color: item.color,
-      disableLegend: item.disableLegend ? true : false };
-
-  });
-  textList = textList.filter(function (item) {
-    if (item.disableLegend !== true) {
-      return item;
-    }
-  });
-  var offset = {
-    x: Math.round(points),
-    y: 0 };
-
-  return {
-    textList: textList,
-    offset: offset };
-
-}
-
-function getCandleToolTipData(series, seriesData, opts, index, categories, extra) {
-  var option = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : {};
-  var calPoints = opts.chartData.calPoints;
-  var upColor = extra.color.upFill;
-  var downColor = extra.color.downFill;
-  //棰滆壊椤哄簭涓哄紑鐩橈紝鏀剁洏锛屾渶浣庯紝鏈�楂�
-  var color = [upColor, upColor, downColor, upColor];
-  var textList = [];
-  seriesData.map(function (item) {
-    if (index == 0) {
-      if (item.data[1] - item.data[0] < 0) {
-        color[1] = downColor;
-      } else {
-        color[1] = upColor;
-      }
-    } else {
-      if (item.data[0] < series[index - 1][1]) {
-        color[0] = downColor;
-      }
-      if (item.data[1] < item.data[0]) {
-        color[1] = downColor;
-      }
-      if (item.data[2] > series[index - 1][1]) {
-        color[2] = upColor;
-      }
-      if (item.data[3] < series[index - 1][1]) {
-        color[3] = downColor;
-      }
-    }
-    var text1 = {
-      text: '寮�鐩橈細' + item.data[0],
-      color: color[0] };
-
-    var text2 = {
-      text: '鏀剁洏锛�' + item.data[1],
-      color: color[1] };
-
-    var text3 = {
-      text: '鏈�浣庯細' + item.data[2],
-      color: color[2] };
-
-    var text4 = {
-      text: '鏈�楂橈細' + item.data[3],
-      color: color[3] };
-
-    textList.push(text1, text2, text3, text4);
-  });
-  var validCalPoints = [];
-  var offset = {
-    x: 0,
-    y: 0 };
-
-  for (var i = 0; i < calPoints.length; i++) {
-    var points = calPoints[i];
-    if (typeof points[index] !== 'undefined' && points[index] !== null) {
-      validCalPoints.push(points[index]);
-    }
-  }
-  offset.x = Math.round(validCalPoints[0][0].x);
-  return {
-    textList: textList,
-    offset: offset };
-
-}
-
-function filterSeries(series) {
-  var tempSeries = [];
-  for (var i = 0; i < series.length; i++) {
-    if (series[i].show == true) {
-      tempSeries.push(series[i]);
-    }
-  }
-  return tempSeries;
-}
-
-function findCurrentIndex(currentPoints, calPoints, opts, config) {
-  var offset = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;
-  var current = { index: -1, group: [] };
-  var spacing = opts.chartData.eachSpacing / 2;
-  var xAxisPoints = [];
-  if (calPoints && calPoints.length > 0) {
-    if (!opts.categories) {
-      spacing = 0;
-    } else {
-      for (var i = 1; i < opts.chartData.xAxisPoints.length; i++) {
-        xAxisPoints.push(opts.chartData.xAxisPoints[i] - spacing);
-      }
-      if ((opts.type == 'line' || opts.type == 'area') && opts.xAxis.boundaryGap == 'justify') {
-        xAxisPoints = opts.chartData.xAxisPoints;
-      }
-    }
-    if (isInExactChartArea(currentPoints, opts, config)) {
-      if (!opts.categories) {
-        var timePoints = Array(calPoints.length);
-        for (var _i2 = 0; _i2 < calPoints.length; _i2++) {
-          timePoints[_i2] = Array(calPoints[_i2].length);
-          for (var j = 0; j < calPoints[_i2].length; j++) {
-            timePoints[_i2][j] = Math.abs(calPoints[_i2][j].x - currentPoints.x);
-          }
-        };
-        var pointValue = Array(timePoints.length);
-        var pointIndex = Array(timePoints.length);
-        for (var _i3 = 0; _i3 < timePoints.length; _i3++) {
-          pointValue[_i3] = Math.min.apply(null, timePoints[_i3]);
-          pointIndex[_i3] = timePoints[_i3].indexOf(pointValue[_i3]);
-        }
-        var minValue = Math.min.apply(null, pointValue);
-        current.index = [];
-        for (var _i4 = 0; _i4 < pointValue.length; _i4++) {
-          if (pointValue[_i4] == minValue) {
-            current.group.push(_i4);
-            current.index.push(pointIndex[_i4]);
-          }
-        };
-      } else {
-        xAxisPoints.forEach(function (item, index) {
-          if (currentPoints.x + offset + spacing > item) {
-            current.index = index;
-          }
-        });
-      }
-    }
-  }
-  return current;
-}
-
-function findBarChartCurrentIndex(currentPoints, calPoints, opts, config) {
-  var offset = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;
-  var current = { index: -1, group: [] };
-  var spacing = opts.chartData.eachSpacing / 2;
-  var yAxisPoints = opts.chartData.yAxisPoints;
-  if (calPoints && calPoints.length > 0) {
-    if (isInExactChartArea(currentPoints, opts, config)) {
-      yAxisPoints.forEach(function (item, index) {
-        if (currentPoints.y + offset + spacing > item) {
-          current.index = index;
-        }
-      });
-    }
-  }
-  return current;
-}
-
-function findLegendIndex(currentPoints, legendData, opts) {
-  var currentIndex = -1;
-  var gap = 0;
-  if (isInExactLegendArea(currentPoints, legendData.area)) {
-    var points = legendData.points;
-    var index = -1;
-    for (var i = 0, len = points.length; i < len; i++) {
-      var item = points[i];
-      for (var j = 0; j < item.length; j++) {
-        index += 1;
-        var area = item[j]['area'];
-        if (area && currentPoints.x > area[0] - gap && currentPoints.x < area[2] + gap && currentPoints.y > area[1] - gap && currentPoints.y < area[3] + gap) {
-          currentIndex = index;
-          break;
-        }
-      }
-    }
-    return currentIndex;
-  }
-  return currentIndex;
-}
-
-function isInExactLegendArea(currentPoints, area) {
-  return currentPoints.x > area.start.x && currentPoints.x < area.end.x && currentPoints.y > area.start.y && currentPoints.y < area.end.y;
-}
-
-function isInExactChartArea(currentPoints, opts, config) {
-  return currentPoints.x <= opts.width - opts.area[1] + 10 && currentPoints.x >= opts.area[3] - 10 && currentPoints.y >= opts.area[0] && currentPoints.y <= opts.height - opts.area[2];
-}
-
-function findRadarChartCurrentIndex(currentPoints, radarData, count) {
-  var eachAngleArea = 2 * Math.PI / count;
-  var currentIndex = -1;
-  if (isInExactPieChartArea(currentPoints, radarData.center, radarData.radius)) {
-    var fixAngle = function fixAngle(angle) {
-      if (angle < 0) {
-        angle += 2 * Math.PI;
-      }
-      if (angle > 2 * Math.PI) {
-        angle -= 2 * Math.PI;
-      }
-      return angle;
-    };
-    var angle = Math.atan2(radarData.center.y - currentPoints.y, currentPoints.x - radarData.center.x);
-    angle = -1 * angle;
-    if (angle < 0) {
-      angle += 2 * Math.PI;
-    }
-    var angleList = radarData.angleList.map(function (item) {
-      item = fixAngle(-1 * item);
-      return item;
-    });
-    angleList.forEach(function (item, index) {
-      var rangeStart = fixAngle(item - eachAngleArea / 2);
-      var rangeEnd = fixAngle(item + eachAngleArea / 2);
-      if (rangeEnd < rangeStart) {
-        rangeEnd += 2 * Math.PI;
-      }
-      if (angle >= rangeStart && angle <= rangeEnd || angle + 2 * Math.PI >= rangeStart && angle + 2 * Math.PI <= rangeEnd) {
-        currentIndex = index;
-      }
-    });
-  }
-  return currentIndex;
-}
-
-function findFunnelChartCurrentIndex(currentPoints, funnelData) {
-  var currentIndex = -1;
-  for (var i = 0, len = funnelData.series.length; i < len; i++) {
-    var item = funnelData.series[i];
-    if (currentPoints.x > item.funnelArea[0] && currentPoints.x < item.funnelArea[2] && currentPoints.y > item.funnelArea[1] && currentPoints.y < item.funnelArea[3]) {
-      currentIndex = i;
-      break;
-    }
-  }
-  return currentIndex;
-}
-
-function findWordChartCurrentIndex(currentPoints, wordData) {
-  var currentIndex = -1;
-  for (var i = 0, len = wordData.length; i < len; i++) {
-    var item = wordData[i];
-    if (currentPoints.x > item.area[0] && currentPoints.x < item.area[2] && currentPoints.y > item.area[1] && currentPoints.y < item.area[3]) {
-      currentIndex = i;
-      break;
-    }
-  }
-  return currentIndex;
-}
-
-function findMapChartCurrentIndex(currentPoints, opts) {
-  var currentIndex = -1;
-  var cData = opts.chartData.mapData;
-  var data = opts.series;
-  var tmp = pointToCoordinate(currentPoints.y, currentPoints.x, cData.bounds, cData.scale, cData.xoffset, cData.yoffset);
-  var poi = [tmp.x, tmp.y];
-  for (var i = 0, len = data.length; i < len; i++) {
-    var item = data[i].geometry.coordinates;
-    if (isPoiWithinPoly(poi, item, opts.chartData.mapData.mercator)) {
-      currentIndex = i;
-      break;
-    }
-  }
-  return currentIndex;
-}
-
-function findRoseChartCurrentIndex(currentPoints, pieData, opts) {
-  var currentIndex = -1;
-  var series = getRoseDataPoints(opts._series_, opts.extra.rose.type, pieData.radius, pieData.radius);
-  if (pieData && pieData.center && isInExactPieChartArea(currentPoints, pieData.center, pieData.radius)) {
-    var angle = Math.atan2(pieData.center.y - currentPoints.y, currentPoints.x - pieData.center.x);
-    angle = -angle;
-    if (opts.extra.rose && opts.extra.rose.offsetAngle) {
-      angle = angle - opts.extra.rose.offsetAngle * Math.PI / 180;
-    }
-    for (var i = 0, len = series.length; i < len; i++) {
-      if (isInAngleRange(angle, series[i]._start_, series[i]._start_ + series[i]._rose_proportion_ * 2 * Math.PI)) {
-        currentIndex = i;
-        break;
-      }
-    }
-  }
-  return currentIndex;
-}
-
-function findPieChartCurrentIndex(currentPoints, pieData, opts) {
-  var currentIndex = -1;
-  var series = getPieDataPoints(pieData.series);
-  if (pieData && pieData.center && isInExactPieChartArea(currentPoints, pieData.center, pieData.radius)) {
-    var angle = Math.atan2(pieData.center.y - currentPoints.y, currentPoints.x - pieData.center.x);
-    angle = -angle;
-    if (opts.extra.pie && opts.extra.pie.offsetAngle) {
-      angle = angle - opts.extra.pie.offsetAngle * Math.PI / 180;
-    }
-    if (opts.extra.ring && opts.extra.ring.offsetAngle) {
-      angle = angle - opts.extra.ring.offsetAngle * Math.PI / 180;
-    }
-    for (var i = 0, len = series.length; i < len; i++) {
-      if (isInAngleRange(angle, series[i]._start_, series[i]._start_ + series[i]._proportion_ * 2 * Math.PI)) {
-        currentIndex = i;
-        break;
-      }
-    }
-  }
-  return currentIndex;
-}
-
-function isInExactPieChartArea(currentPoints, center, radius) {
-  return Math.pow(currentPoints.x - center.x, 2) + Math.pow(currentPoints.y - center.y, 2) <= Math.pow(radius, 2);
-}
-
-function splitPoints(points, eachSeries) {
-  var newPoints = [];
-  var items = [];
-  points.forEach(function (item, index) {
-    if (eachSeries.connectNulls) {
-      if (item !== null) {
-        items.push(item);
-      }
-    } else {
-      if (item !== null) {
-        items.push(item);
-      } else {
-        if (items.length) {
-          newPoints.push(items);
-        }
-        items = [];
-      }
-    }
-
-  });
-  if (items.length) {
-    newPoints.push(items);
-  }
-  return newPoints;
-}
-
-function calLegendData(series, opts, config, chartData, context) {
-  var legendData = {
-    area: {
-      start: {
-        x: 0,
-        y: 0 },
-
-      end: {
-        x: 0,
-        y: 0 },
-
-      width: 0,
-      height: 0,
-      wholeWidth: 0,
-      wholeHeight: 0 },
-
-    points: [],
-    widthArr: [],
-    heightArr: [] };
-
-  if (opts.legend.show === false) {
-    chartData.legendData = legendData;
-    return legendData;
-  }
-  var padding = opts.legend.padding * opts.pix;
-  var margin = opts.legend.margin * opts.pix;
-  var fontSize = opts.legend.fontSize ? opts.legend.fontSize * opts.pix : config.fontSize;
-  var shapeWidth = 15 * opts.pix;
-  var shapeRight = 5 * opts.pix;
-  var lineHeight = Math.max(opts.legend.lineHeight * opts.pix, fontSize);
-  if (opts.legend.position == 'top' || opts.legend.position == 'bottom') {
-    var legendList = [];
-    var widthCount = 0;
-    var widthCountArr = [];
-    var currentRow = [];
-    for (var i = 0; i < series.length; i++) {
-      var item = series[i];
-      var itemWidth = shapeWidth + shapeRight + measureText(item.name || 'undefined', fontSize, context) + opts.legend.itemGap * opts.pix;
-      if (widthCount + itemWidth > opts.width - opts.area[1] - opts.area[3]) {
-        legendList.push(currentRow);
-        widthCountArr.push(widthCount - opts.legend.itemGap * opts.pix);
-        widthCount = itemWidth;
-        currentRow = [item];
-      } else {
-        widthCount += itemWidth;
-        currentRow.push(item);
-      }
-    }
-    if (currentRow.length) {
-      legendList.push(currentRow);
-      widthCountArr.push(widthCount - opts.legend.itemGap * opts.pix);
-      legendData.widthArr = widthCountArr;
-      var legendWidth = Math.max.apply(null, widthCountArr);
-      switch (opts.legend.float) {
-        case 'left':
-          legendData.area.start.x = opts.area[3];
-          legendData.area.end.x = opts.area[3] + legendWidth + 2 * padding;
-          break;
-        case 'right':
-          legendData.area.start.x = opts.width - opts.area[1] - legendWidth - 2 * padding;
-          legendData.area.end.x = opts.width - opts.area[1];
-          break;
-        default:
-          legendData.area.start.x = (opts.width - legendWidth) / 2 - padding;
-          legendData.area.end.x = (opts.width + legendWidth) / 2 + padding;}
-
-      legendData.area.width = legendWidth + 2 * padding;
-      legendData.area.wholeWidth = legendWidth + 2 * padding;
-      legendData.area.height = legendList.length * lineHeight + 2 * padding;
-      legendData.area.wholeHeight = legendList.length * lineHeight + 2 * padding + 2 * margin;
-      legendData.points = legendList;
-    }
-  } else {
-    var len = series.length;
-    var maxHeight = opts.height - opts.area[0] - opts.area[2] - 2 * margin - 2 * padding;
-    var maxLength = Math.min(Math.floor(maxHeight / lineHeight), len);
-    legendData.area.height = maxLength * lineHeight + padding * 2;
-    legendData.area.wholeHeight = maxLength * lineHeight + padding * 2;
-    switch (opts.legend.float) {
-      case 'top':
-        legendData.area.start.y = opts.area[0] + margin;
-        legendData.area.end.y = opts.area[0] + margin + legendData.area.height;
-        break;
-      case 'bottom':
-        legendData.area.start.y = opts.height - opts.area[2] - margin - legendData.area.height;
-        legendData.area.end.y = opts.height - opts.area[2] - margin;
-        break;
-      default:
-        legendData.area.start.y = (opts.height - legendData.area.height) / 2;
-        legendData.area.end.y = (opts.height + legendData.area.height) / 2;}
-
-    var lineNum = len % maxLength === 0 ? len / maxLength : Math.floor(len / maxLength + 1);
-    var _currentRow = [];
-    for (var _i5 = 0; _i5 < lineNum; _i5++) {
-      var temp = series.slice(_i5 * maxLength, _i5 * maxLength + maxLength);
-      _currentRow.push(temp);
-    }
-    legendData.points = _currentRow;
-    if (_currentRow.length) {
-      for (var _i6 = 0; _i6 < _currentRow.length; _i6++) {
-        var _item = _currentRow[_i6];
-        var maxWidth = 0;
-        for (var j = 0; j < _item.length; j++) {
-          var _itemWidth = shapeWidth + shapeRight + measureText(_item[j].name || 'undefined', fontSize, context) + opts.legend.itemGap * opts.pix;
-          if (_itemWidth > maxWidth) {
-            maxWidth = _itemWidth;
-          }
-        }
-        legendData.widthArr.push(maxWidth);
-        legendData.heightArr.push(_item.length * lineHeight + padding * 2);
-      }
-      var _legendWidth = 0;
-      for (var _i7 = 0; _i7 < legendData.widthArr.length; _i7++) {
-        _legendWidth += legendData.widthArr[_i7];
-      }
-      legendData.area.width = _legendWidth - opts.legend.itemGap * opts.pix + 2 * padding;
-      legendData.area.wholeWidth = legendData.area.width + padding;
-    }
-  }
-  switch (opts.legend.position) {
-    case 'top':
-      legendData.area.start.y = opts.area[0] + margin;
-      legendData.area.end.y = opts.area[0] + margin + legendData.area.height;
-      break;
-    case 'bottom':
-      legendData.area.start.y = opts.height - opts.area[2] - legendData.area.height - margin;
-      legendData.area.end.y = opts.height - opts.area[2] - margin;
-      break;
-    case 'left':
-      legendData.area.start.x = opts.area[3];
-      legendData.area.end.x = opts.area[3] + legendData.area.width;
-      break;
-    case 'right':
-      legendData.area.start.x = opts.width - opts.area[1] - legendData.area.width;
-      legendData.area.end.x = opts.width - opts.area[1];
-      break;}
-
-  chartData.legendData = legendData;
-  return legendData;
-}
-
-function calCategoriesData(categories, opts, config, eachSpacing, context) {
-  var result = {
-    angle: 0,
-    xAxisHeight: config.xAxisHeight };
-
-  var categoriesTextLenth = categories.map(function (item) {
-    return measureText(item, opts.xAxis.fontSize * opts.pix || config.fontSize, context);
-  });
-  var maxTextLength = Math.max.apply(this, categoriesTextLenth);
-
-  if (opts.xAxis.rotateLabel == true && maxTextLength + 2 * config.xAxisTextPadding > eachSpacing) {
-    result.angle = 45 * Math.PI / 180;
-    result.xAxisHeight = 2 * config.xAxisTextPadding + maxTextLength * Math.sin(result.angle);
-  }
-  return result;
-}
-
-function getXAxisTextList(series, opts, config, stack) {
-  var index = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : -1;
-  var data;
-  if (stack == 'stack') {
-    data = dataCombineStack(series, opts.categories.length);
-  } else {
-    data = dataCombine(series);
-  }
-  var sorted = [];
-  // remove null from data
-  data = data.filter(function (item) {
-    //return item !== null;
-    if (typeof item === 'object' && item !== null) {
-      if (item.constructor.toString().indexOf('Array') > -1) {
-        return item !== null;
-      } else {
-        return item.value !== null;
-      }
-    } else {
-      return item !== null;
-    }
-  });
-  data.map(function (item) {
-    if (typeof item === 'object') {
-      if (item.constructor.toString().indexOf('Array') > -1) {
-        if (opts.type == 'candle') {
-          item.map(function (subitem) {
-            sorted.push(subitem);
-          });
-        } else {
-          sorted.push(item[0]);
-        }
-      } else {
-        sorted.push(item.value);
-      }
-    } else {
-      sorted.push(item);
-    }
-  });
-
-  var minData = 0;
-  var maxData = 0;
-  if (sorted.length > 0) {
-    minData = Math.min.apply(this, sorted);
-    maxData = Math.max.apply(this, sorted);
-  }
-  //涓轰簡鍏煎v1.9.0涔嬪墠鐨勯」鐩�
-  if (index > -1) {
-    if (typeof opts.xAxis.data[index].min === 'number') {
-      minData = Math.min(opts.xAxis.data[index].min, minData);
-    }
-    if (typeof opts.xAxis.data[index].max === 'number') {
-      maxData = Math.max(opts.xAxis.data[index].max, maxData);
-    }
-  } else {
-    if (typeof opts.xAxis.min === 'number') {
-      minData = Math.min(opts.xAxis.min, minData);
-    }
-    if (typeof opts.xAxis.max === 'number') {
-      maxData = Math.max(opts.xAxis.max, maxData);
-    }
-  }
-  if (minData === maxData) {
-    var rangeSpan = maxData || 10;
-    maxData += rangeSpan;
-  }
-  //var dataRange = getDataRange(minData, maxData);
-  var minRange = minData;
-  var maxRange = maxData;
-  var range = [];
-  var eachRange = (maxRange - minRange) / opts.xAxis.splitNumber;
-  for (var i = 0; i <= opts.xAxis.splitNumber; i++) {
-    range.push(minRange + eachRange * i);
-  }
-  return range;
-}
-
-function calXAxisData(series, opts, config, context) {
-  //鍫嗗彔鍥鹃噸绠梇杞�
-  var columnstyle = assign({}, {
-    type: "" },
-  opts.extra.bar);
-  var result = {
-    angle: 0,
-    xAxisHeight: config.xAxisHeight };
-
-  result.ranges = getXAxisTextList(series, opts, config, columnstyle.type);
-  result.rangesFormat = result.ranges.map(function (item) {
-    //item = opts.xAxis.formatter ? opts.xAxis.formatter(item) : util.toFixed(item, 2);
-    item = util.toFixed(item, 2);
-    return item;
-  });
-  var xAxisScaleValues = result.ranges.map(function (item) {
-    // 濡傛灉鍒诲害鍊兼槸娴偣鏁�,鍒欎繚鐣欎袱浣嶅皬鏁�
-    item = util.toFixed(item, 2);
-    // 鑻ユ湁鑷畾涔夋牸寮忓垯璋冪敤鑷畾涔夌殑鏍煎紡鍖栧嚱鏁�
-    //item = opts.xAxis.formatter ? opts.xAxis.formatter(Number(item)) : item;
-    return item;
-  });
-  result = Object.assign(result, getXAxisPoints(xAxisScaleValues, opts, config));
-  // 璁$畻X杞村埢搴︾殑灞炴�ц濡傛瘡涓埢搴︾殑闂撮殧,鍒诲害鐨勮捣濮嬬偣\缁撴潫鐐逛互鍙婃�婚暱
-  var eachSpacing = result.eachSpacing;
-  var textLength = xAxisScaleValues.map(function (item) {
-    return measureText(item, opts.xAxis.fontSize * opts.pix || config.fontSize, context);
-  });
-  // get max length of categories text
-  var maxTextLength = Math.max.apply(this, textLength);
-  // 濡傛灉鍒诲害鍊兼枃鏈唴瀹硅繃闀�,鍒欏皢鍏堕�嗘椂閽堟棆杞�45掳
-  if (maxTextLength + 2 * config.xAxisTextPadding > eachSpacing) {
-    result.angle = 45 * Math.PI / 180;
-    result.xAxisHeight = 2 * config.xAxisTextPadding + maxTextLength * Math.sin(result.angle);
-  }
-  if (opts.xAxis.disabled === true) {
-    result.xAxisHeight = 0;
-  }
-  return result;
-}
-
-function getRadarDataPoints(angleList, center, radius, series, opts) {
-  var process = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 1;
-  var radarOption = opts.extra.radar || {};
-  radarOption.max = radarOption.max || 0;
-  var maxData = Math.max(radarOption.max, Math.max.apply(null, dataCombine(series)));
-  var data = [];var _loop2 = function _loop2(
-  i) {
-    var each = series[i];
-    var listItem = {};
-    listItem.color = each.color;
-    listItem.legendShape = each.legendShape;
-    listItem.pointShape = each.pointShape;
-    listItem.data = [];
-    each.data.forEach(function (item, index) {
-      var tmp = {};
-      tmp.angle = angleList[index];
-      tmp.proportion = item / maxData;
-      tmp.value = item;
-      tmp.position = convertCoordinateOrigin(radius * tmp.proportion * process * Math.cos(tmp.angle), radius * tmp.proportion * process * Math.sin(tmp.angle), center);
-      listItem.data.push(tmp);
-    });
-    data.push(listItem);};for (var i = 0; i < series.length; i++) {_loop2(i);
-  }
-  return data;
-}
-
-function getPieDataPoints(series, radius) {
-  var process = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
-  var count = 0;
-  var _start_ = 0;
-  for (var i = 0; i < series.length; i++) {
-    var item = series[i];
-    item.data = item.data === null ? 0 : item.data;
-    count += item.data;
-  }
-  for (var _i8 = 0; _i8 < series.length; _i8++) {
-    var _item2 = series[_i8];
-    _item2.data = _item2.data === null ? 0 : _item2.data;
-    if (count === 0) {
-      _item2._proportion_ = 1 / series.length * process;
-    } else {
-      _item2._proportion_ = _item2.data / count * process;
-    }
-    _item2._radius_ = radius;
-  }
-  for (var _i9 = 0; _i9 < series.length; _i9++) {
-    var _item3 = series[_i9];
-    _item3._start_ = _start_;
-    _start_ += 2 * _item3._proportion_ * Math.PI;
-  }
-  return series;
-}
-
-function getFunnelDataPoints(series, radius, type, eachSpacing) {
-  var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;
-  series = series.sort(function (a, b) {
-    return parseInt(b.data) - parseInt(a.data);
-  });
-  for (var i = 0; i < series.length; i++) {
-    if (type == 'funnel') {
-      series[i].radius = series[i].data / series[0].data * radius * process;
-    } else {
-      series[i].radius = eachSpacing * (series.length - i) / (eachSpacing * series.length) * radius * process;
-    }
-    series[i]._proportion_ = series[i].data / series[0].data;
-  }
-  if (type !== 'pyramid') {
-    series.reverse();
-  }
-  return series;
-}
-
-function getRoseDataPoints(series, type, minRadius, radius) {
-  var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;
-  var count = 0;
-  var _start_ = 0;
-  var dataArr = [];
-  for (var i = 0; i < series.length; i++) {
-    var item = series[i];
-    item.data = item.data === null ? 0 : item.data;
-    count += item.data;
-    dataArr.push(item.data);
-  }
-  var minData = Math.min.apply(null, dataArr);
-  var maxData = Math.max.apply(null, dataArr);
-  var radiusLength = radius - minRadius;
-  for (var _i10 = 0; _i10 < series.length; _i10++) {
-    var _item4 = series[_i10];
-    _item4.data = _item4.data === null ? 0 : _item4.data;
-    if (count === 0) {
-      _item4._proportion_ = 1 / series.length * process;
-      _item4._rose_proportion_ = 1 / series.length * process;
-    } else {
-      _item4._proportion_ = _item4.data / count * process;
-      if (type == 'area') {
-        _item4._rose_proportion_ = 1 / series.length * process;
-      } else {
-        _item4._rose_proportion_ = _item4.data / count * process;
-      }
-    }
-    _item4._radius_ = minRadius + radiusLength * ((_item4.data - minData) / (maxData - minData)) || radius;
-  }
-  for (var _i11 = 0; _i11 < series.length; _i11++) {
-    var _item5 = series[_i11];
-    _item5._start_ = _start_;
-    _start_ += 2 * _item5._rose_proportion_ * Math.PI;
-  }
-  return series;
-}
-
-function getArcbarDataPoints(series, arcbarOption) {
-  var process = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
-  if (process == 1) {
-    process = 0.999999;
-  }
-  for (var i = 0; i < series.length; i++) {
-    var item = series[i];
-    item.data = item.data === null ? 0 : item.data;
-    var totalAngle = void 0;
-    if (arcbarOption.type == 'circle') {
-      totalAngle = 2;
-    } else {
-      if (arcbarOption.endAngle < arcbarOption.startAngle) {
-        totalAngle = 2 + arcbarOption.endAngle - arcbarOption.startAngle;
-      } else {
-        totalAngle = arcbarOption.startAngle - arcbarOption.endAngle;
-      }
-    }
-    item._proportion_ = totalAngle * item.data * process + arcbarOption.startAngle;
-    if (item._proportion_ >= 2) {
-      item._proportion_ = item._proportion_ % 2;
-    }
-  }
-  return series;
-}
-
-function getGaugeAxisPoints(categories, startAngle, endAngle) {
-  var totalAngle = startAngle - endAngle + 1;
-  var tempStartAngle = startAngle;
-  for (var i = 0; i < categories.length; i++) {
-    categories[i].value = categories[i].value === null ? 0 : categories[i].value;
-    categories[i]._startAngle_ = tempStartAngle;
-    categories[i]._endAngle_ = totalAngle * categories[i].value + startAngle;
-    if (categories[i]._endAngle_ >= 2) {
-      categories[i]._endAngle_ = categories[i]._endAngle_ % 2;
-    }
-    tempStartAngle = categories[i]._endAngle_;
-  }
-  return categories;
-}
-
-function getGaugeDataPoints(series, categories, gaugeOption) {
-  var process = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;
-  for (var i = 0; i < series.length; i++) {
-    var item = series[i];
-    item.data = item.data === null ? 0 : item.data;
-    if (gaugeOption.pointer.color == 'auto') {
-      for (var _i12 = 0; _i12 < categories.length; _i12++) {
-        if (item.data <= categories[_i12].value) {
-          item.color = categories[_i12].color;
-          break;
-        }
-      }
-    } else {
-      item.color = gaugeOption.pointer.color;
-    }
-    var totalAngle = gaugeOption.startAngle - gaugeOption.endAngle + 1;
-    item._endAngle_ = totalAngle * item.data + gaugeOption.startAngle;
-    item._oldAngle_ = gaugeOption.oldAngle;
-    if (gaugeOption.oldAngle < gaugeOption.endAngle) {
-      item._oldAngle_ += 2;
-    }
-    if (item.data >= gaugeOption.oldData) {
-      item._proportion_ = (item._endAngle_ - item._oldAngle_) * process + gaugeOption.oldAngle;
-    } else {
-      item._proportion_ = item._oldAngle_ - (item._oldAngle_ - item._endAngle_) * process;
-    }
-    if (item._proportion_ >= 2) {
-      item._proportion_ = item._proportion_ % 2;
-    }
-  }
-  return series;
-}
-
-function getPieTextMaxLength(series, config, context, opts) {
-  series = getPieDataPoints(series);
-  var maxLength = 0;
-  for (var i = 0; i < series.length; i++) {
-    var item = series[i];
-    var text = item.formatter ? item.formatter(+item._proportion_.toFixed(2)) : util.toFixed(item._proportion_ * 100) + '%';
-    maxLength = Math.max(maxLength, measureText(text, item.textSize * opts.pix || config.fontSize, context));
-  }
-  return maxLength;
-}
-
-function fixColumeData(points, eachSpacing, columnLen, index, config, opts) {
-  return points.map(function (item) {
-    if (item === null) {
-      return null;
-    }
-    var seriesGap = 0;
-    var categoryGap = 0;
-    if (opts.type == 'mix') {
-      seriesGap = opts.extra.mix.column.seriesGap * opts.pix || 0;
-      categoryGap = opts.extra.mix.column.categoryGap * opts.pix || 0;
-    } else {
-      seriesGap = opts.extra.column.seriesGap * opts.pix || 0;
-      categoryGap = opts.extra.column.categoryGap * opts.pix || 0;
-    }
-    seriesGap = Math.min(seriesGap, eachSpacing / columnLen);
-    categoryGap = Math.min(categoryGap, eachSpacing / columnLen);
-    item.width = Math.ceil((eachSpacing - 2 * categoryGap - seriesGap * (columnLen - 1)) / columnLen);
-    if (opts.extra.mix && opts.extra.mix.column.width && +opts.extra.mix.column.width > 0) {
-      item.width = Math.min(item.width, +opts.extra.mix.column.width * opts.pix);
-    }
-    if (opts.extra.column && opts.extra.column.width && +opts.extra.column.width > 0) {
-      item.width = Math.min(item.width, +opts.extra.column.width * opts.pix);
-    }
-    if (item.width <= 0) {
-      item.width = 1;
-    }
-    item.x += (index + 0.5 - columnLen / 2) * (item.width + seriesGap);
-    return item;
-  });
-}
-
-function fixBarData(points, eachSpacing, columnLen, index, config, opts) {
-  return points.map(function (item) {
-    if (item === null) {
-      return null;
-    }
-    var seriesGap = 0;
-    var categoryGap = 0;
-    seriesGap = opts.extra.bar.seriesGap * opts.pix || 0;
-    categoryGap = opts.extra.bar.categoryGap * opts.pix || 0;
-    seriesGap = Math.min(seriesGap, eachSpacing / columnLen);
-    categoryGap = Math.min(categoryGap, eachSpacing / columnLen);
-    item.width = Math.ceil((eachSpacing - 2 * categoryGap - seriesGap * (columnLen - 1)) / columnLen);
-    if (opts.extra.bar && opts.extra.bar.width && +opts.extra.bar.width > 0) {
-      item.width = Math.min(item.width, +opts.extra.bar.width * opts.pix);
-    }
-    if (item.width <= 0) {
-      item.width = 1;
-    }
-    item.y += (index + 0.5 - columnLen / 2) * (item.width + seriesGap);
-    return item;
-  });
-}
-
-function fixColumeMeterData(points, eachSpacing, columnLen, index, config, opts, border) {
-  var categoryGap = opts.extra.column.categoryGap * opts.pix || 0;
-  return points.map(function (item) {
-    if (item === null) {
-      return null;
-    }
-    item.width = Math.ceil(eachSpacing - 2 * categoryGap);
-    if (opts.extra.column && opts.extra.column.width && +opts.extra.column.width > 0) {
-      item.width = Math.min(item.width, +opts.extra.column.width * opts.pix);
-    }
-    if (index > 0) {
-      item.width -= 2 * border;
-    }
-    return item;
-  });
-}
-
-function fixColumeStackData(points, eachSpacing, columnLen, index, config, opts, series) {
-  var categoryGap = opts.extra.column.categoryGap * opts.pix || 0;
-  return points.map(function (item, indexn) {
-    if (item === null) {
-      return null;
-    }
-    item.width = Math.ceil(eachSpacing - 2 * categoryGap);
-    if (opts.extra.column && opts.extra.column.width && +opts.extra.column.width > 0) {
-      item.width = Math.min(item.width, +opts.extra.column.width * opts.pix);
-    }
-    if (item.width <= 0) {
-      item.width = 1;
-    }
-    return item;
-  });
-}
-
-function fixBarStackData(points, eachSpacing, columnLen, index, config, opts, series) {
-  var categoryGap = opts.extra.bar.categoryGap * opts.pix || 0;
-  return points.map(function (item, indexn) {
-    if (item === null) {
-      return null;
-    }
-    item.width = Math.ceil(eachSpacing - 2 * categoryGap);
-    if (opts.extra.bar && opts.extra.bar.width && +opts.extra.bar.width > 0) {
-      item.width = Math.min(item.width, +opts.extra.bar.width * opts.pix);
-    }
-    if (item.width <= 0) {
-      item.width = 1;
-    }
-    return item;
-  });
-}
-
-function getXAxisPoints(categories, opts, config) {
-  var spacingValid = opts.width - opts.area[1] - opts.area[3];
-  var dataCount = opts.enableScroll ? Math.min(opts.xAxis.itemCount, categories.length) : categories.length;
-  if ((opts.type == 'line' || opts.type == 'area' || opts.type == 'scatter' || opts.type == 'bubble' || opts.type == 'bar') && dataCount > 1 && opts.xAxis.boundaryGap == 'justify') {
-    dataCount -= 1;
-  }
-  var eachSpacing = spacingValid / dataCount;
-  var xAxisPoints = [];
-  var startX = opts.area[3];
-  var endX = opts.width - opts.area[1];
-  categories.forEach(function (item, index) {
-    xAxisPoints.push(startX + index * eachSpacing);
-  });
-  if (opts.xAxis.boundaryGap !== 'justify') {
-    if (opts.enableScroll === true) {
-      xAxisPoints.push(startX + categories.length * eachSpacing);
-    } else {
-      xAxisPoints.push(endX);
-    }
-  }
-  return {
-    xAxisPoints: xAxisPoints,
-    startX: startX,
-    endX: endX,
-    eachSpacing: eachSpacing };
-
-}
-
-function getCandleDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config) {
-  var process = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : 1;
-  var points = [];
-  var validHeight = opts.height - opts.area[0] - opts.area[2];
-  data.forEach(function (item, index) {
-    if (item === null) {
-      points.push(null);
-    } else {
-      var cPoints = [];
-      item.forEach(function (items, indexs) {
-        var point = {};
-        point.x = xAxisPoints[index] + Math.round(eachSpacing / 2);
-        var value = items.value || items;
-        var height = validHeight * (value - minRange) / (maxRange - minRange);
-        height *= process;
-        point.y = opts.height - Math.round(height) - opts.area[2];
-        cPoints.push(point);
-      });
-      points.push(cPoints);
-    }
-  });
-  return points;
-}
-
-function getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config) {
-  var process = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : 1;
-  var boundaryGap = 'center';
-  if (opts.type == 'line' || opts.type == 'area' || opts.type == 'scatter' || opts.type == 'bubble') {
-    boundaryGap = opts.xAxis.boundaryGap;
-  }
-  var points = [];
-  var validHeight = opts.height - opts.area[0] - opts.area[2];
-  var validWidth = opts.width - opts.area[1] - opts.area[3];
-  data.forEach(function (item, index) {
-    if (item === null) {
-      points.push(null);
-    } else {
-      var point = {};
-      point.color = item.color;
-      point.x = xAxisPoints[index];
-      var value = item;
-      if (typeof item === 'object' && item !== null) {
-        if (item.constructor.toString().indexOf('Array') > -1) {
-          var xranges, xminRange, xmaxRange;
-          xranges = [].concat(opts.chartData.xAxisData.ranges);
-          xminRange = xranges.shift();
-          xmaxRange = xranges.pop();
-          value = item[1];
-          point.x = opts.area[3] + validWidth * (item[0] - xminRange) / (xmaxRange - xminRange);
-          if (opts.type == 'bubble') {
-            point.r = item[2];
-            point.t = item[3];
-          }
-        } else {
-          value = item.value;
-        }
-      }
-      if (boundaryGap == 'center') {
-        point.x += eachSpacing / 2;
-      }
-      var height = validHeight * (value - minRange) / (maxRange - minRange);
-      height *= process;
-      point.y = opts.height - height - opts.area[2];
-      points.push(point);
-    }
-  });
-  return points;
-}
-
-function getBarDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config) {
-  var process = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : 1;
-  var points = [];
-  var validHeight = opts.height - opts.area[0] - opts.area[2];
-  var validWidth = opts.width - opts.area[1] - opts.area[3];
-  data.forEach(function (item, index) {
-    if (item === null) {
-      points.push(null);
-    } else {
-      var point = {};
-      point.color = item.color;
-      point.y = yAxisPoints[index];
-      var value = item;
-      if (typeof item === 'object' && item !== null) {
-        value = item.value;
-      }
-      var height = validWidth * (value - minRange) / (maxRange - minRange);
-      height *= process;
-      point.height = height;
-      point.value = value;
-      point.x = height + opts.area[3];
-      points.push(point);
-    }
-  });
-  return points;
-}
-
-function getStackDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, seriesIndex, stackSeries) {
-  var process = arguments.length > 9 && arguments[9] !== undefined ? arguments[9] : 1;
-  var points = [];
-  var validHeight = opts.height - opts.area[0] - opts.area[2];
-  data.forEach(function (item, index) {
-    if (item === null) {
-      points.push(null);
-    } else {
-      var point = {};
-      point.color = item.color;
-      point.x = xAxisPoints[index] + Math.round(eachSpacing / 2);
-
-      if (seriesIndex > 0) {
-        var value = 0;
-        for (var i = 0; i <= seriesIndex; i++) {
-          value += stackSeries[i].data[index];
-        }
-        var value0 = value - item;
-        var height = validHeight * (value - minRange) / (maxRange - minRange);
-        var height0 = validHeight * (value0 - minRange) / (maxRange - minRange);
-      } else {
-        var value = item;
-        var height = validHeight * (value - minRange) / (maxRange - minRange);
-        var height0 = 0;
-      }
-      var heightc = height0;
-      height *= process;
-      heightc *= process;
-      point.y = opts.height - Math.round(height) - opts.area[2];
-      point.y0 = opts.height - Math.round(heightc) - opts.area[2];
-      points.push(point);
-    }
-  });
-  return points;
-}
-
-function getBarStackDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config, seriesIndex, stackSeries) {
-  var process = arguments.length > 9 && arguments[9] !== undefined ? arguments[9] : 1;
-  var points = [];
-  var validHeight = opts.width - opts.area[1] - opts.area[3];
-  data.forEach(function (item, index) {
-    if (item === null) {
-      points.push(null);
-    } else {
-      var point = {};
-      point.color = item.color;
-      point.y = yAxisPoints[index];
-      if (seriesIndex > 0) {
-        var value = 0;
-        for (var i = 0; i <= seriesIndex; i++) {
-          value += stackSeries[i].data[index];
-        }
-        var value0 = value - item;
-        var height = validHeight * (value - minRange) / (maxRange - minRange);
-        var height0 = validHeight * (value0 - minRange) / (maxRange - minRange);
-      } else {
-        var value = item;
-        var height = validHeight * (value - minRange) / (maxRange - minRange);
-        var height0 = 0;
-      }
-      var heightc = height0;
-      height *= process;
-      heightc *= process;
-      point.height = height - heightc;
-      point.x = opts.area[3] + height;
-      point.x0 = opts.area[3] + heightc;
-      points.push(point);
-    }
-  });
-  return points;
-}
-
-function getYAxisTextList(series, opts, config, stack, yData) {
-  var index = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : -1;
-  var data;
-  if (stack == 'stack') {
-    data = dataCombineStack(series, opts.categories.length);
-  } else {
-    data = dataCombine(series);
-  }
-  var sorted = [];
-  // remove null from data
-  data = data.filter(function (item) {
-    //return item !== null;
-    if (typeof item === 'object' && item !== null) {
-      if (item.constructor.toString().indexOf('Array') > -1) {
-        return item !== null;
-      } else {
-        return item.value !== null;
-      }
-    } else {
-      return item !== null;
-    }
-  });
-  data.map(function (item) {
-    if (typeof item === 'object') {
-      if (item.constructor.toString().indexOf('Array') > -1) {
-        if (opts.type == 'candle') {
-          item.map(function (subitem) {
-            sorted.push(subitem);
-          });
-        } else {
-          sorted.push(item[1]);
-        }
-      } else {
-        sorted.push(item.value);
-      }
-    } else {
-      sorted.push(item);
-    }
-  });
-  var minData = yData.min || 0;
-  var maxData = yData.max || 0;
-  if (sorted.length > 0) {
-    minData = Math.min.apply(this, sorted);
-    maxData = Math.max.apply(this, sorted);
-  }
-  //涓轰簡鍏煎v1.9.0涔嬪墠鐨勯」鐩�
-  // if (index > -1) {
-  //   if (typeof opts.yAxis.data[index].min === 'number') {
-  //     minData = Math.min(opts.yAxis.data[index].min, minData);
-  //   }
-  //   if (typeof opts.yAxis.data[index].max === 'number') {
-  //     maxData = Math.max(opts.yAxis.data[index].max, maxData);
-  //   }
-  // } else {
-  //   if (typeof opts.yAxis.min === 'number') {
-  //     minData = Math.min(opts.yAxis.min, minData);
-  //   }
-  //   if (typeof opts.yAxis.max === 'number') {
-  //     maxData = Math.max(opts.yAxis.max, maxData);
-  //   }
-  // }
-  if (minData === maxData) {
-    var rangeSpan = maxData || 10;
-    maxData += rangeSpan;
-  }
-  var dataRange = getDataRange(minData, maxData);
-  var minRange = yData.min === undefined || yData.min === null ? dataRange.minRange : yData.min;
-  var maxRange = yData.max === undefined || yData.min === null ? dataRange.maxRange : yData.max;
-  var range = [];
-  var eachRange = (maxRange - minRange) / opts.yAxis.splitNumber;
-  for (var i = 0; i <= opts.yAxis.splitNumber; i++) {
-    range.push(minRange + eachRange * i);
-  }
-  return range.reverse();
-}
-
-function calYAxisData(series, opts, config, context) {
-  //鍫嗗彔鍥鹃噸绠梇杞�
-  var columnstyle = assign({}, {
-    type: "" },
-  opts.extra.column);
-  //濡傛灉鏄Y杞达紝閲嶆柊璁$畻
-  var YLength = opts.yAxis.data.length;
-  var newSeries = new Array(YLength);
-  if (YLength > 0) {
-    for (var i = 0; i < YLength; i++) {
-      newSeries[i] = [];
-      for (var j = 0; j < series.length; j++) {
-        if (series[j].index == i) {
-          newSeries[i].push(series[j]);
-        }
-      }
-    }
-    var rangesArr = new Array(YLength);
-    var rangesFormatArr = new Array(YLength);
-    var yAxisWidthArr = new Array(YLength);var _loop3 = function _loop3(
-
-    _i13) {
-      var yData = opts.yAxis.data[_i13];
-      //濡傛灉鎬诲紑鍏充笉鏄剧ず锛屽己鍒舵瘡涓猋杞翠负涓嶆樉绀�
-      if (opts.yAxis.disabled == true) {
-        yData.disabled = true;
-      }
-      if (yData.type === 'categories') {
-        if (!yData.formatter) {
-          yData.formatter = function (val) {return val + (yData.unit || '');};
-        }
-        yData.categories = yData.categories || opts.categories;
-        rangesArr[_i13] = yData.categories;
-      } else {
-        if (!yData.formatter) {
-          yData.formatter = function (val) {return val.toFixed(yData.tofix) + (yData.unit || '');};
-        }
-        rangesArr[_i13] = getYAxisTextList(newSeries[_i13], opts, config, columnstyle.type, yData, _i13);
-      }
-      var yAxisFontSizes = yData.fontSize * opts.pix || config.fontSize;
-      yAxisWidthArr[_i13] = {
-        position: yData.position ? yData.position : 'left',
-        width: 0 };
-
-      rangesFormatArr[_i13] = rangesArr[_i13].map(function (items) {
-        items = yData.formatter(items);
-        yAxisWidthArr[_i13].width = Math.max(yAxisWidthArr[_i13].width, measureText(items, yAxisFontSizes, context) + 5);
-        return items;
-      });
-      var calibration = yData.calibration ? 4 * opts.pix : 0;
-      yAxisWidthArr[_i13].width += calibration + 3 * opts.pix;
-      if (yData.disabled === true) {
-        yAxisWidthArr[_i13].width = 0;
-      }};for (var _i13 = 0; _i13 < YLength; _i13++) {_loop3(_i13);
-    }
-  } else {
-    var rangesArr = new Array(1);
-    var rangesFormatArr = new Array(1);
-    var yAxisWidthArr = new Array(1);
-    if (opts.type === 'bar') {
-      rangesArr[0] = opts.categories;
-      if (!opts.yAxis.formatter) {
-        opts.yAxis.formatter = function (val) {return val + (opts.yAxis.unit || '');};
-      }
-    } else {
-      if (!opts.yAxis.formatter) {
-        opts.yAxis.formatter = function (val) {return val.toFixed(opts.yAxis.tofix) + (opts.yAxis.unit || '');};
-      }
-      rangesArr[0] = getYAxisTextList(series, opts, config, columnstyle.type, {});
-    }
-    yAxisWidthArr[0] = {
-      position: 'left',
-      width: 0 };
-
-    var yAxisFontSize = opts.yAxis.fontSize * opts.pix || config.fontSize;
-    rangesFormatArr[0] = rangesArr[0].map(function (item) {
-      item = opts.yAxis.formatter(item);
-      yAxisWidthArr[0].width = Math.max(yAxisWidthArr[0].width, measureText(item, yAxisFontSize, context) + 5);
-      return item;
-    });
-    yAxisWidthArr[0].width += 3 * opts.pix;
-    if (opts.yAxis.disabled === true) {
-      yAxisWidthArr[0] = {
-        position: 'left',
-        width: 0 };
-
-      opts.yAxis.data[0] = {
-        disabled: true };
-
-    } else {
-      opts.yAxis.data[0] = {
-        disabled: false,
-        position: 'left',
-        max: opts.yAxis.max,
-        min: opts.yAxis.min,
-        formatter: opts.yAxis.formatter };
-
-      if (opts.type === 'bar') {
-        opts.yAxis.data[0].categories = opts.categories;
-        opts.yAxis.data[0].type = 'categories';
-      }
-    }
-  }
-  return {
-    rangesFormat: rangesFormatArr,
-    ranges: rangesArr,
-    yAxisWidth: yAxisWidthArr };
-
-}
-
-function calTooltipYAxisData(point, series, opts, config, eachSpacing) {
-  var ranges = [].concat(opts.chartData.yAxisData.ranges);
-  var spacingValid = opts.height - opts.area[0] - opts.area[2];
-  var minAxis = opts.area[0];
-  var items = [];
-  for (var i = 0; i < ranges.length; i++) {
-    var maxVal = ranges[i].shift();
-    var minVal = ranges[i].pop();
-    var item = maxVal - (maxVal - minVal) * (point - minAxis) / spacingValid;
-    item = opts.yAxis.data[i].formatter ? opts.yAxis.data[i].formatter(item) : item.toFixed(0);
-    items.push(String(item));
-  }
-  return items;
-}
-
-function calMarkLineData(points, opts) {
-  var minRange, maxRange;
-  var spacingValid = opts.height - opts.area[0] - opts.area[2];
-  for (var i = 0; i < points.length; i++) {
-    points[i].yAxisIndex = points[i].yAxisIndex ? points[i].yAxisIndex : 0;
-    var range = [].concat(opts.chartData.yAxisData.ranges[points[i].yAxisIndex]);
-    minRange = range.pop();
-    maxRange = range.shift();
-    var height = spacingValid * (points[i].value - minRange) / (maxRange - minRange);
-    points[i].y = opts.height - Math.round(height) - opts.area[2];
-  }
-  return points;
-}
-
-function contextRotate(context, opts) {
-  if (opts.rotateLock !== true) {
-    context.translate(opts.height, 0);
-    context.rotate(90 * Math.PI / 180);
-  } else if (opts._rotate_ !== true) {
-    context.translate(opts.height, 0);
-    context.rotate(90 * Math.PI / 180);
-    opts._rotate_ = true;
-  }
-}
-
-function drawPointShape(points, color, shape, context, opts) {
-  context.beginPath();
-  if (opts.dataPointShapeType == 'hollow') {
-    context.setStrokeStyle(color);
-    context.setFillStyle(opts.background);
-    context.setLineWidth(2 * opts.pix);
-  } else {
-    context.setStrokeStyle("#ffffff");
-    context.setFillStyle(color);
-    context.setLineWidth(1 * opts.pix);
-  }
-  if (shape === 'diamond') {
-    points.forEach(function (item, index) {
-      if (item !== null) {
-        context.moveTo(item.x, item.y - 4.5);
-        context.lineTo(item.x - 4.5, item.y);
-        context.lineTo(item.x, item.y + 4.5);
-        context.lineTo(item.x + 4.5, item.y);
-        context.lineTo(item.x, item.y - 4.5);
-      }
-    });
-  } else if (shape === 'circle') {
-    points.forEach(function (item, index) {
-      if (item !== null) {
-        context.moveTo(item.x + 2.5 * opts.pix, item.y);
-        context.arc(item.x, item.y, 3 * opts.pix, 0, 2 * Math.PI, false);
-      }
-    });
-  } else if (shape === 'square') {
-    points.forEach(function (item, index) {
-      if (item !== null) {
-        context.moveTo(item.x - 3.5, item.y - 3.5);
-        context.rect(item.x - 3.5, item.y - 3.5, 7, 7);
-      }
-    });
-  } else if (shape === 'triangle') {
-    points.forEach(function (item, index) {
-      if (item !== null) {
-        context.moveTo(item.x, item.y - 4.5);
-        context.lineTo(item.x - 4.5, item.y + 4.5);
-        context.lineTo(item.x + 4.5, item.y + 4.5);
-        context.lineTo(item.x, item.y - 4.5);
-      }
-    });
-  } else if (shape === 'triangle') {
-    return;
-  }
-  context.closePath();
-  context.fill();
-  context.stroke();
-}
-
-function drawRingTitle(opts, config, context, center) {
-  var titlefontSize = opts.title.fontSize || config.titleFontSize;
-  var subtitlefontSize = opts.subtitle.fontSize || config.subtitleFontSize;
-  var title = opts.title.name || '';
-  var subtitle = opts.subtitle.name || '';
-  var titleFontColor = opts.title.color || opts.fontColor;
-  var subtitleFontColor = opts.subtitle.color || opts.fontColor;
-  var titleHeight = title ? titlefontSize : 0;
-  var subtitleHeight = subtitle ? subtitlefontSize : 0;
-  var margin = 5;
-  if (subtitle) {
-    var textWidth = measureText(subtitle, subtitlefontSize * opts.pix, context);
-    var startX = center.x - textWidth / 2 + (opts.subtitle.offsetX || 0) * opts.pix;
-    var startY = center.y + subtitlefontSize * opts.pix / 2 + (opts.subtitle.offsetY || 0) * opts.pix;
-    if (title) {
-      startY += (titleHeight * opts.pix + margin) / 2;
-    }
-    context.beginPath();
-    context.setFontSize(subtitlefontSize * opts.pix);
-    context.setFillStyle(subtitleFontColor);
-    context.fillText(subtitle, startX, startY);
-    context.closePath();
-    context.stroke();
-  }
-  if (title) {
-    var _textWidth = measureText(title, titlefontSize * opts.pix, context);
-    var _startX = center.x - _textWidth / 2 + (opts.title.offsetX || 0);
-    var _startY = center.y + titlefontSize * opts.pix / 2 + (opts.title.offsetY || 0) * opts.pix;
-    if (subtitle) {
-      _startY -= (subtitleHeight * opts.pix + margin) / 2;
-    }
-    context.beginPath();
-    context.setFontSize(titlefontSize * opts.pix);
-    context.setFillStyle(titleFontColor);
-    context.fillText(title, _startX, _startY);
-    context.closePath();
-    context.stroke();
-  }
-}
-
-function drawPointText(points, series, config, context, opts) {
-  // 缁樺埗鏁版嵁鏂囨
-  var data = series.data;
-  var textOffset = series.textOffset ? series.textOffset : 0;
-  points.forEach(function (item, index) {
-    if (item !== null) {
-      context.beginPath();
-      var fontSize = series.textSize ? series.textSize * opts.pix : config.fontSize;
-      context.setFontSize(fontSize);
-      context.setFillStyle(series.textColor || opts.fontColor);
-      var value = data[index];
-      if (typeof data[index] === 'object' && data[index] !== null) {
-        if (data[index].constructor.toString().indexOf('Array') > -1) {
-          value = data[index][1];
-        } else {
-          value = data[index].value;
-        }
-      }
-      var formatVal = series.formatter ? series.formatter(value, index) : value;
-      context.setTextAlign('center');
-      context.fillText(String(formatVal), item.x, item.y - 4 + textOffset * opts.pix);
-      context.closePath();
-      context.stroke();
-      context.setTextAlign('left');
-    }
-  });
-}
-
-function drawBarPointText(points, series, config, context, opts) {
-  // 缁樺埗鏁版嵁鏂囨
-  var data = series.data;
-  var textOffset = series.textOffset ? series.textOffset : 0;
-  points.forEach(function (item, index) {
-    if (item !== null) {
-      context.beginPath();
-      var fontSize = series.textSize ? series.textSize * opts.pix : config.fontSize;
-      context.setFontSize(fontSize);
-      context.setFillStyle(series.textColor || opts.fontColor);
-      var value = data[index];
-      if (typeof data[index] === 'object' && data[index] !== null) {
-        value = data[index].value;
-      }
-      var formatVal = series.formatter ? series.formatter(value, index) : value;
-      context.setTextAlign('left');
-      context.fillText(String(formatVal), item.x + 4 * opts.pix, item.y + fontSize / 2 - 3);
-      context.closePath();
-      context.stroke();
-    }
-  });
-}
-
-function drawGaugeLabel(gaugeOption, radius, centerPosition, opts, config, context) {
-  radius -= gaugeOption.width / 2 + gaugeOption.labelOffset * opts.pix;
-  var totalAngle = gaugeOption.startAngle - gaugeOption.endAngle + 1;
-  var splitAngle = totalAngle / gaugeOption.splitLine.splitNumber;
-  var totalNumber = gaugeOption.endNumber - gaugeOption.startNumber;
-  var splitNumber = totalNumber / gaugeOption.splitLine.splitNumber;
-  var nowAngle = gaugeOption.startAngle;
-  var nowNumber = gaugeOption.startNumber;
-  for (var i = 0; i < gaugeOption.splitLine.splitNumber + 1; i++) {
-    var pos = {
-      x: radius * Math.cos(nowAngle * Math.PI),
-      y: radius * Math.sin(nowAngle * Math.PI) };
-
-    var labelText = gaugeOption.formatter ? gaugeOption.formatter(nowNumber) : nowNumber;
-    pos.x += centerPosition.x - measureText(labelText, config.fontSize, context) / 2;
-    pos.y += centerPosition.y;
-    var startX = pos.x;
-    var startY = pos.y;
-    context.beginPath();
-    context.setFontSize(config.fontSize);
-    context.setFillStyle(gaugeOption.labelColor || opts.fontColor);
-    context.fillText(labelText, startX, startY + config.fontSize / 2);
-    context.closePath();
-    context.stroke();
-    nowAngle += splitAngle;
-    if (nowAngle >= 2) {
-      nowAngle = nowAngle % 2;
-    }
-    nowNumber += splitNumber;
-  }
-
-}
-
-function drawRadarLabel(angleList, radius, centerPosition, opts, config, context) {
-  var radarOption = opts.extra.radar || {};
-  radius += config.radarLabelTextMargin * opts.pix;
-  angleList.forEach(function (angle, index) {
-    var pos = {
-      x: radius * Math.cos(angle),
-      y: radius * Math.sin(angle) };
-
-    var posRelativeCanvas = convertCoordinateOrigin(pos.x, pos.y, centerPosition);
-    var startX = posRelativeCanvas.x;
-    var startY = posRelativeCanvas.y;
-    if (util.approximatelyEqual(pos.x, 0)) {
-      startX -= measureText(opts.categories[index] || '', config.fontSize, context) / 2;
-    } else if (pos.x < 0) {
-      startX -= measureText(opts.categories[index] || '', config.fontSize, context);
-    }
-    context.beginPath();
-    context.setFontSize(config.fontSize);
-    context.setFillStyle(radarOption.labelColor || opts.fontColor);
-    context.fillText(opts.categories[index] || '', startX, startY + config.fontSize / 2);
-    context.closePath();
-    context.stroke();
-  });
-
-}
-
-function drawPieText(series, opts, config, context, radius, center) {
-  var lineRadius = config.pieChartLinePadding;
-  var textObjectCollection = [];
-  var lastTextObject = null;
-  var seriesConvert = series.map(function (item, index, series) {
-    var text = item.formatter ? item.formatter(item, index, series) : util.toFixed(item._proportion_.toFixed(4) * 100) + '%';
-    var arc = 2 * Math.PI - (item._start_ + 2 * Math.PI * item._proportion_ / 2);
-    if (item._rose_proportion_) {
-      arc = 2 * Math.PI - (item._start_ + 2 * Math.PI * item._rose_proportion_ / 2);
-    }
-    var color = item.color;
-    var radius = item._radius_;
-    return {
-      arc: arc,
-      text: text,
-      color: color,
-      radius: radius,
-      textColor: item.textColor,
-      textSize: item.textSize };
-
-  });
-  for (var i = 0; i < seriesConvert.length; i++) {
-    var item = seriesConvert[i];
-    // line end
-    var orginX1 = Math.cos(item.arc) * (item.radius + lineRadius);
-    var orginY1 = Math.sin(item.arc) * (item.radius + lineRadius);
-    // line start
-    var orginX2 = Math.cos(item.arc) * item.radius;
-    var orginY2 = Math.sin(item.arc) * item.radius;
-    // text start
-    var orginX3 = orginX1 >= 0 ? orginX1 + config.pieChartTextPadding : orginX1 - config.pieChartTextPadding;
-    var orginY3 = orginY1;
-    var textWidth = measureText(item.text, item.textSize * opts.pix || config.fontSize, context);
-    var startY = orginY3;
-    if (lastTextObject && util.isSameXCoordinateArea(lastTextObject.start, {
-      x: orginX3 }))
-    {
-      if (orginX3 > 0) {
-        startY = Math.min(orginY3, lastTextObject.start.y);
-      } else if (orginX1 < 0) {
-        startY = Math.max(orginY3, lastTextObject.start.y);
-      } else {
-        if (orginY3 > 0) {
-          startY = Math.max(orginY3, lastTextObject.start.y);
-        } else {
-          startY = Math.min(orginY3, lastTextObject.start.y);
-        }
-      }
-    }
-    if (orginX3 < 0) {
-      orginX3 -= textWidth;
-    }
-    var textObject = {
-      lineStart: {
-        x: orginX2,
-        y: orginY2 },
-
-      lineEnd: {
-        x: orginX1,
-        y: orginY1 },
-
-      start: {
-        x: orginX3,
-        y: startY },
-
-      width: textWidth,
-      height: config.fontSize,
-      text: item.text,
-      color: item.color,
-      textColor: item.textColor,
-      textSize: item.textSize };
-
-    lastTextObject = avoidCollision(textObject, lastTextObject);
-    textObjectCollection.push(lastTextObject);
-  }
-  for (var _i14 = 0; _i14 < textObjectCollection.length; _i14++) {
-    var _item6 = textObjectCollection[_i14];
-    var lineStartPoistion = convertCoordinateOrigin(_item6.lineStart.x, _item6.lineStart.y, center);
-    var lineEndPoistion = convertCoordinateOrigin(_item6.lineEnd.x, _item6.lineEnd.y, center);
-    var textPosition = convertCoordinateOrigin(_item6.start.x, _item6.start.y, center);
-    context.setLineWidth(1 * opts.pix);
-    context.setFontSize(_item6.textSize * opts.pix || config.fontSize);
-    context.beginPath();
-    context.setStrokeStyle(_item6.color);
-    context.setFillStyle(_item6.color);
-    context.moveTo(lineStartPoistion.x, lineStartPoistion.y);
-    var curveStartX = _item6.start.x < 0 ? textPosition.x + _item6.width : textPosition.x;
-    var textStartX = _item6.start.x < 0 ? textPosition.x - 5 : textPosition.x + 5;
-    context.quadraticCurveTo(lineEndPoistion.x, lineEndPoistion.y, curveStartX, textPosition.y);
-    context.moveTo(lineStartPoistion.x, lineStartPoistion.y);
-    context.stroke();
-    context.closePath();
-    context.beginPath();
-    context.moveTo(textPosition.x + _item6.width, textPosition.y);
-    context.arc(curveStartX, textPosition.y, 2, 0, 2 * Math.PI);
-    context.closePath();
-    context.fill();
-    context.beginPath();
-    context.setFontSize(_item6.textSize * opts.pix || config.fontSize);
-    context.setFillStyle(_item6.textColor || opts.fontColor);
-    context.fillText(_item6.text, textStartX, textPosition.y + 3);
-    context.closePath();
-    context.stroke();
-    context.closePath();
-  }
-}
-
-function drawToolTipSplitLine(offsetX, opts, config, context) {
-  var toolTipOption = opts.extra.tooltip || {};
-  toolTipOption.gridType = toolTipOption.gridType == undefined ? 'solid' : toolTipOption.gridType;
-  toolTipOption.dashLength = toolTipOption.dashLength == undefined ? 4 : toolTipOption.dashLength;
-  var startY = opts.area[0];
-  var endY = opts.height - opts.area[2];
-  if (toolTipOption.gridType == 'dash') {
-    context.setLineDash([toolTipOption.dashLength, toolTipOption.dashLength]);
-  }
-  context.setStrokeStyle(toolTipOption.gridColor || '#cccccc');
-  context.setLineWidth(1 * opts.pix);
-  context.beginPath();
-  context.moveTo(offsetX, startY);
-  context.lineTo(offsetX, endY);
-  context.stroke();
-  context.setLineDash([]);
-  if (toolTipOption.xAxisLabel) {
-    var labelText = opts.categories[opts.tooltip.index];
-    context.setFontSize(config.fontSize);
-    var textWidth = measureText(labelText, config.fontSize, context);
-    var textX = offsetX - 0.5 * textWidth;
-    var textY = endY;
-    context.beginPath();
-    context.setFillStyle(hexToRgb(toolTipOption.labelBgColor || config.toolTipBackground, toolTipOption.labelBgOpacity || config.toolTipOpacity));
-    context.setStrokeStyle(toolTipOption.labelBgColor || config.toolTipBackground);
-    context.setLineWidth(1 * opts.pix);
-    context.rect(textX - config.toolTipPadding, textY, textWidth + 2 * config.toolTipPadding, config.fontSize + 2 * config.toolTipPadding);
-    context.closePath();
-    context.stroke();
-    context.fill();
-    context.beginPath();
-    context.setFontSize(config.fontSize);
-    context.setFillStyle(toolTipOption.labelFontColor || opts.fontColor);
-    context.fillText(String(labelText), textX, textY + config.toolTipPadding + config.fontSize);
-    context.closePath();
-    context.stroke();
-  }
-}
-
-function drawMarkLine(opts, config, context) {
-  var markLineOption = assign({}, {
-    type: 'solid',
-    dashLength: 4,
-    data: [] },
-  opts.extra.markLine);
-  var startX = opts.area[3];
-  var endX = opts.width - opts.area[1];
-  var points = calMarkLineData(markLineOption.data, opts);
-  for (var i = 0; i < points.length; i++) {
-    var item = assign({}, {
-      lineColor: '#DE4A42',
-      showLabel: false,
-      labelFontColor: '#666666',
-      labelBgColor: '#DFE8FF',
-      labelBgOpacity: 0.8,
-      yAxisIndex: 0 },
-    points[i]);
-    if (markLineOption.type == 'dash') {
-      context.setLineDash([markLineOption.dashLength, markLineOption.dashLength]);
-    }
-    context.setStrokeStyle(item.lineColor);
-    context.setLineWidth(1 * opts.pix);
-    context.beginPath();
-    context.moveTo(startX, item.y);
-    context.lineTo(endX, item.y);
-    context.stroke();
-    context.setLineDash([]);
-    if (item.showLabel) {
-      var labelText = opts.yAxis.formatter ? opts.yAxis.formatter(item.value) : item.value;
-      context.setFontSize(config.fontSize);
-      var textWidth = measureText(labelText, config.fontSize, context);
-      var yAxisWidth = opts.chartData.yAxisData.yAxisWidth[0].width;
-      var bgStartX = opts.area[3] - textWidth - config.toolTipPadding * 2;
-      var bgEndX = opts.area[3];
-      var bgWidth = bgEndX - bgStartX;
-      var textX = bgEndX - config.toolTipPadding;
-      var textY = item.y;
-      context.setFillStyle(hexToRgb(item.labelBgColor, item.labelBgOpacity));
-      context.setStrokeStyle(item.labelBgColor);
-      context.setLineWidth(1 * opts.pix);
-      context.beginPath();
-      context.rect(bgStartX, textY - 0.5 * config.fontSize - config.toolTipPadding, bgWidth, config.fontSize + 2 * config.toolTipPadding);
-      context.closePath();
-      context.stroke();
-      context.fill();
-      context.setFontSize(config.fontSize);
-      context.setTextAlign('right');
-      context.setFillStyle(item.labelFontColor);
-      context.fillText(String(labelText), textX, textY + 0.5 * config.fontSize);
-      context.stroke();
-      context.setTextAlign('left');
-    }
-  }
-}
-
-function drawToolTipHorizentalLine(opts, config, context, eachSpacing, xAxisPoints) {
-  var toolTipOption = assign({}, {
-    gridType: 'solid',
-    dashLength: 4 },
-  opts.extra.tooltip);
-  var startX = opts.area[3];
-  var endX = opts.width - opts.area[1];
-  if (toolTipOption.gridType == 'dash') {
-    context.setLineDash([toolTipOption.dashLength, toolTipOption.dashLength]);
-  }
-  context.setStrokeStyle(toolTipOption.gridColor || '#cccccc');
-  context.setLineWidth(1 * opts.pix);
-  context.beginPath();
-  context.moveTo(startX, opts.tooltip.offset.y);
-  context.lineTo(endX, opts.tooltip.offset.y);
-  context.stroke();
-  context.setLineDash([]);
-  if (toolTipOption.yAxisLabel) {
-    var labelText = calTooltipYAxisData(opts.tooltip.offset.y, opts.series, opts, config, eachSpacing);
-    var widthArr = opts.chartData.yAxisData.yAxisWidth;
-    var tStartLeft = opts.area[3];
-    var tStartRight = opts.width - opts.area[1];
-    for (var i = 0; i < labelText.length; i++) {
-      context.setFontSize(config.fontSize);
-      var textWidth = measureText(labelText[i], config.fontSize, context);
-      var bgStartX = void 0,bgEndX = void 0,bgWidth = void 0;
-      if (widthArr[i].position == 'left') {
-        bgStartX = tStartLeft - widthArr[i].width;
-        bgEndX = Math.max(bgStartX, bgStartX + textWidth + config.toolTipPadding * 2);
-      } else {
-        bgStartX = tStartRight;
-        bgEndX = Math.max(bgStartX + widthArr[i].width, bgStartX + textWidth + config.toolTipPadding * 2);
-      }
-      bgWidth = bgEndX - bgStartX;
-      var textX = bgStartX + (bgWidth - textWidth) / 2;
-      var textY = opts.tooltip.offset.y;
-      context.beginPath();
-      context.setFillStyle(hexToRgb(toolTipOption.labelBgColor || config.toolTipBackground, toolTipOption.labelBgOpacity || config.toolTipOpacity));
-      context.setStrokeStyle(toolTipOption.labelBgColor || config.toolTipBackground);
-      context.setLineWidth(1 * opts.pix);
-      context.rect(bgStartX, textY - 0.5 * config.fontSize - config.toolTipPadding, bgWidth, config.fontSize + 2 *
-      config.toolTipPadding);
-      context.closePath();
-      context.stroke();
-      context.fill();
-      context.beginPath();
-      context.setFontSize(config.fontSize);
-      context.setFillStyle(toolTipOption.labelFontColor || opts.fontColor);
-      context.fillText(labelText[i], textX, textY + 0.5 * config.fontSize);
-      context.closePath();
-      context.stroke();
-      if (widthArr[i].position == 'left') {
-        tStartLeft -= widthArr[i].width + opts.yAxis.padding * opts.pix;
-      } else {
-        tStartRight += widthArr[i].width + opts.yAxis.padding * opts.pix;
-      }
-    }
-  }
-}
-
-function drawToolTipSplitArea(offsetX, opts, config, context, eachSpacing) {
-  var toolTipOption = assign({}, {
-    activeBgColor: '#000000',
-    activeBgOpacity: 0.08 },
-  opts.extra.column);
-  var startY = opts.area[0];
-  var endY = opts.height - opts.area[2];
-  context.beginPath();
-  context.setFillStyle(hexToRgb(toolTipOption.activeBgColor, toolTipOption.activeBgOpacity));
-  context.rect(offsetX - eachSpacing / 2, startY, eachSpacing, endY - startY);
-  context.closePath();
-  context.fill();
-  context.setFillStyle("#FFFFFF");
-}
-
-function drawBarToolTipSplitArea(offsetX, opts, config, context, eachSpacing) {
-  var toolTipOption = assign({}, {
-    activeBgColor: '#000000',
-    activeBgOpacity: 0.08 },
-  opts.extra.bar);
-  var startX = opts.area[3];
-  var endX = opts.width - opts.area[1];
-  context.beginPath();
-  context.setFillStyle(hexToRgb(toolTipOption.activeBgColor, toolTipOption.activeBgOpacity));
-  context.rect(startX, offsetX - eachSpacing / 2, endX - startX, eachSpacing);
-  context.closePath();
-  context.fill();
-  context.setFillStyle("#FFFFFF");
-}
-
-function drawToolTip(textList, offset, opts, config, context, eachSpacing, xAxisPoints) {
-  var toolTipOption = assign({}, {
-    showBox: true,
-    showArrow: true,
-    showCategory: false,
-    bgColor: '#000000',
-    bgOpacity: 0.7,
-    borderColor: '#000000',
-    borderWidth: 0,
-    borderRadius: 0,
-    borderOpacity: 0.7,
-    fontColor: '#FFFFFF',
-    splitLine: true },
-  opts.extra.tooltip);
-  if (toolTipOption.showCategory == true && opts.categories) {
-    textList.unshift({ text: opts.categories[opts.tooltip.index], color: null });
-  }
-  var legendWidth = 4 * opts.pix;
-  var legendMarginRight = 5 * opts.pix;
-  var arrowWidth = toolTipOption.showArrow ? 8 * opts.pix : 0;
-  var isOverRightBorder = false;
-  if (opts.type == 'line' || opts.type == 'area' || opts.type == 'candle' || opts.type == 'mix') {
-    if (toolTipOption.splitLine == true) {
-      drawToolTipSplitLine(opts.tooltip.offset.x, opts, config, context);
-    }
-  }
-  offset = assign({
-    x: 0,
-    y: 0 },
-  offset);
-  offset.y -= 8 * opts.pix;
-  var textWidth = textList.map(function (item) {
-    return measureText(item.text, config.fontSize, context);
-  });
-  var toolTipWidth = legendWidth + legendMarginRight + 4 * config.toolTipPadding + Math.max.apply(null, textWidth);
-  var toolTipHeight = 2 * config.toolTipPadding + textList.length * config.toolTipLineHeight;
-  if (toolTipOption.showBox == false) {
-    return;
-  }
-  // if beyond the right border
-  if (offset.x - Math.abs(opts._scrollDistance_ || 0) + arrowWidth + toolTipWidth > opts.width) {
-    isOverRightBorder = true;
-  }
-  if (toolTipHeight + offset.y > opts.height) {
-    offset.y = opts.height - toolTipHeight;
-  }
-  // draw background rect
-  context.beginPath();
-  context.setFillStyle(hexToRgb(toolTipOption.bgColor || config.toolTipBackground, toolTipOption.bgOpacity || config.toolTipOpacity));
-  context.setLineWidth(toolTipOption.borderWidth * opts.pix);
-  context.setStrokeStyle(hexToRgb(toolTipOption.borderColor, toolTipOption.borderOpacity));
-  var radius = toolTipOption.borderRadius;
-  if (isOverRightBorder) {
-    if (toolTipOption.showArrow) {
-      context.moveTo(offset.x, offset.y + 10 * opts.pix);
-      context.lineTo(offset.x - arrowWidth, offset.y + 10 * opts.pix + 5 * opts.pix);
-    }
-    context.arc(offset.x - arrowWidth - radius, offset.y + toolTipHeight - radius, radius, 0, Math.PI / 2, false);
-    context.arc(offset.x - arrowWidth - Math.round(toolTipWidth) + radius, offset.y + toolTipHeight - radius, radius,
-    Math.PI / 2, Math.PI, false);
-    context.arc(offset.x - arrowWidth - Math.round(toolTipWidth) + radius, offset.y + radius, radius, -Math.PI, -Math.PI / 2, false);
-    context.arc(offset.x - arrowWidth - radius, offset.y + radius, radius, -Math.PI / 2, 0, false);
-    if (toolTipOption.showArrow) {
-      context.lineTo(offset.x - arrowWidth, offset.y + 10 * opts.pix - 5 * opts.pix);
-      context.lineTo(offset.x, offset.y + 10 * opts.pix);
-    }
-  } else {
-    if (toolTipOption.showArrow) {
-      context.moveTo(offset.x, offset.y + 10 * opts.pix);
-      context.lineTo(offset.x + arrowWidth, offset.y + 10 * opts.pix - 5 * opts.pix);
-    }
-    context.arc(offset.x + arrowWidth + radius, offset.y + radius, radius, -Math.PI, -Math.PI / 2, false);
-    context.arc(offset.x + arrowWidth + Math.round(toolTipWidth) - radius, offset.y + radius, radius, -Math.PI / 2, 0,
-    false);
-    context.arc(offset.x + arrowWidth + Math.round(toolTipWidth) - radius, offset.y + toolTipHeight - radius, radius, 0,
-    Math.PI / 2, false);
-    context.arc(offset.x + arrowWidth + radius, offset.y + toolTipHeight - radius, radius, Math.PI / 2, Math.PI, false);
-    if (toolTipOption.showArrow) {
-      context.lineTo(offset.x + arrowWidth, offset.y + 10 * opts.pix + 5 * opts.pix);
-      context.lineTo(offset.x, offset.y + 10 * opts.pix);
-    }
-  }
-  context.closePath();
-  context.fill();
-  if (toolTipOption.borderWidth > 0) {
-    context.stroke();
-  }
-  // draw legend
-  textList.forEach(function (item, index) {
-    if (item.color !== null) {
-      context.beginPath();
-      context.setFillStyle(item.color);
-      var startX = offset.x + arrowWidth + 2 * config.toolTipPadding;
-      var startY = offset.y + (config.toolTipLineHeight - config.fontSize) / 2 + config.toolTipLineHeight * index + config.toolTipPadding + 1;
-      if (isOverRightBorder) {
-        startX = offset.x - toolTipWidth - arrowWidth + 2 * config.toolTipPadding;
-      }
-      context.fillRect(startX, startY, legendWidth, config.fontSize);
-      context.closePath();
-    }
-  });
-  // draw text list
-  textList.forEach(function (item, index) {
-    var startX = offset.x + arrowWidth + 2 * config.toolTipPadding + legendWidth + legendMarginRight;
-    if (isOverRightBorder) {
-      startX = offset.x - toolTipWidth - arrowWidth + 2 * config.toolTipPadding + +legendWidth + legendMarginRight;
-    }
-    var startY = offset.y + (config.toolTipLineHeight - config.fontSize) / 2 + config.toolTipLineHeight * index + config.toolTipPadding;
-    context.beginPath();
-    context.setFontSize(config.fontSize);
-    context.setFillStyle(toolTipOption.fontColor);
-    context.fillText(item.text, startX, startY + config.fontSize);
-    context.closePath();
-    context.stroke();
-  });
-}
-
-function drawColumnDataPoints(series, opts, config, context) {
-  var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;
-  var xAxisData = opts.chartData.xAxisData,
-  xAxisPoints = xAxisData.xAxisPoints,
-  eachSpacing = xAxisData.eachSpacing;
-  var columnOption = assign({}, {
-    type: 'group',
-    width: eachSpacing / 2,
-    meterBorder: 4,
-    meterFillColor: '#FFFFFF',
-    barBorderCircle: false,
-    barBorderRadius: [],
-    seriesGap: 2,
-    linearType: 'none',
-    linearOpacity: 1,
-    customColor: [],
-    colorStop: 0 },
-  opts.extra.column);
-  var calPoints = [];
-  context.save();
-  var leftNum = -2;
-  var rightNum = xAxisPoints.length + 2;
-  if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {
-    context.translate(opts._scrollDistance_, 0);
-    leftNum = Math.floor(-opts._scrollDistance_ / eachSpacing) - 2;
-    rightNum = leftNum + opts.xAxis.itemCount + 4;
-  }
-  if (opts.tooltip && opts.tooltip.textList && opts.tooltip.textList.length && process === 1) {
-    drawToolTipSplitArea(opts.tooltip.offset.x, opts, config, context, eachSpacing);
-  }
-  columnOption.customColor = fillCustomColor(columnOption.linearType, columnOption.customColor, series, config);
-  series.forEach(function (eachSeries, seriesIndex) {
-    var ranges, minRange, maxRange;
-    ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);
-    minRange = ranges.pop();
-    maxRange = ranges.shift();
-    var data = eachSeries.data;
-    switch (columnOption.type) {
-      case 'group':
-        var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);
-        var tooltipPoints = getStackDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, seriesIndex, series, process);
-        calPoints.push(tooltipPoints);
-        points = fixColumeData(points, eachSpacing, series.length, seriesIndex, config, opts);
-        for (var i = 0; i < points.length; i++) {
-          var item = points[i];
-          //fix issues/I27B1N yyoinge & Joeshu
-          if (item !== null && i > leftNum && i < rightNum) {
-            var startX = item.x - item.width / 2;
-            var height = opts.height - item.y - opts.area[2];
-            context.beginPath();
-            var fillColor = item.color || eachSeries.color;
-            var strokeColor = item.color || eachSeries.color;
-            if (columnOption.linearType !== 'none') {
-              var grd = context.createLinearGradient(startX, item.y, startX, opts.height - opts.area[2]);
-              //閫忔槑娓愬彉
-              if (columnOption.linearType == 'opacity') {
-                grd.addColorStop(0, hexToRgb(fillColor, columnOption.linearOpacity));
-                grd.addColorStop(1, hexToRgb(fillColor, 1));
-              } else {
-                grd.addColorStop(0, hexToRgb(columnOption.customColor[eachSeries.linearIndex], columnOption.linearOpacity));
-                grd.addColorStop(columnOption.colorStop, hexToRgb(columnOption.customColor[eachSeries.linearIndex], columnOption.linearOpacity));
-                grd.addColorStop(1, hexToRgb(fillColor, 1));
-              }
-              fillColor = grd;
-            }
-            // 鍦嗚杈规
-            if (columnOption.barBorderRadius && columnOption.barBorderRadius.length === 4 || columnOption.barBorderCircle === true) {
-              var left = startX;
-              var top = item.y;
-              var width = item.width;
-              var _height = opts.height - opts.area[2] - item.y;
-              if (columnOption.barBorderCircle) {
-                columnOption.barBorderRadius = [width / 2, width / 2, 0, 0];
-              }var _columnOption$barBord = _slicedToArray(
-              columnOption.barBorderRadius, 4),r0 = _columnOption$barBord[0],r1 = _columnOption$barBord[1],r2 = _columnOption$barBord[2],r3 = _columnOption$barBord[3];
-              var minRadius = Math.min(width / 2, _height / 2);
-              r0 = r0 > minRadius ? minRadius : r0;
-              r1 = r1 > minRadius ? minRadius : r1;
-              r2 = r2 > minRadius ? minRadius : r2;
-              r3 = r3 > minRadius ? minRadius : r3;
-              r0 = r0 < 0 ? 0 : r0;
-              r1 = r1 < 0 ? 0 : r1;
-              r2 = r2 < 0 ? 0 : r2;
-              r3 = r3 < 0 ? 0 : r3;
-              context.arc(left + r0, top + r0, r0, -Math.PI, -Math.PI / 2);
-              context.arc(left + width - r1, top + r1, r1, -Math.PI / 2, 0);
-              context.arc(left + width - r2, top + _height - r2, r2, 0, Math.PI / 2);
-              context.arc(left + r3, top + _height - r3, r3, Math.PI / 2, Math.PI);
-            } else {
-              context.moveTo(startX, item.y);
-              context.lineTo(startX + item.width - 2, item.y);
-              context.lineTo(startX + item.width - 2, opts.height - opts.area[2]);
-              context.lineTo(startX, opts.height - opts.area[2]);
-              context.lineTo(startX, item.y);
-              context.setLineWidth(1);
-              context.setStrokeStyle(strokeColor);
-            }
-            context.setFillStyle(fillColor);
-            context.closePath();
-            //context.stroke();
-            context.fill();
-          }
-        };
-        break;
-      case 'stack':
-        // 缁樺埗鍫嗗彔鏁版嵁鍥�
-        var points = getStackDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, seriesIndex, series, process);
-        calPoints.push(points);
-        points = fixColumeStackData(points, eachSpacing, series.length, seriesIndex, config, opts, series);
-        for (var _i15 = 0; _i15 < points.length; _i15++) {
-          var _item7 = points[_i15];
-          if (_item7 !== null && _i15 > leftNum && _i15 < rightNum) {
-            context.beginPath();
-            var fillColor = _item7.color || eachSeries.color;
-            var startX = _item7.x - _item7.width / 2 + 1;
-            var height = opts.height - _item7.y - opts.area[2];
-            var height0 = opts.height - _item7.y0 - opts.area[2];
-            if (seriesIndex > 0) {
-              height -= height0;
-            }
-            context.setFillStyle(fillColor);
-            context.moveTo(startX, _item7.y);
-            context.fillRect(startX, _item7.y, _item7.width - 2, height);
-            context.closePath();
-            context.fill();
-          }
-        };
-        break;
-      case 'meter':
-        // 缁樺埗娓╁害璁℃暟鎹浘
-        var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);
-        calPoints.push(points);
-        points = fixColumeMeterData(points, eachSpacing, series.length, seriesIndex, config, opts, columnOption.meterBorder);
-        if (seriesIndex == 0) {
-          for (var _i16 = 0; _i16 < points.length; _i16++) {
-            var _item8 = points[_i16];
-            if (_item8 !== null && _i16 > leftNum && _i16 < rightNum) {
-              //鐢昏儗鏅鑹�
-              context.beginPath();
-              context.setFillStyle(columnOption.meterFillColor);
-              var startX = _item8.x - _item8.width / 2;
-              var height = opts.height - _item8.y - opts.area[2];
-              if (columnOption.barBorderCircle) {
-                var barBorderRadius = (_item8.width - columnOption.meterBorder * 2) / 2;
-                if (barBorderRadius > height) {
-                  barBorderRadius = height;
-                }
-                context.moveTo(startX + columnOption.meterBorder, opts.height - opts.area[2]);
-                context.lineTo(startX + columnOption.meterBorder, _item8.y + barBorderRadius);
-                context.arc(startX + _item8.width / 2, _item8.y + barBorderRadius, barBorderRadius, -Math.PI, 0);
-                context.lineTo(startX + _item8.width - columnOption.meterBorder, opts.height - opts.area[2]);
-                context.lineTo(startX, opts.height - opts.area[2]);
-                context.fill();
-              } else {
-                context.moveTo(startX, _item8.y);
-                context.fillRect(startX, _item8.y, _item8.width, height);
-                context.closePath();
-                context.fill();
-              }
-              //鐢昏竟妗嗙嚎
-              if (columnOption.meterBorder > 0) {
-                context.beginPath();
-                context.setStrokeStyle(eachSeries.color);
-                context.setLineWidth(columnOption.meterBorder * opts.pix);
-                if (columnOption.barBorderCircle) {
-                  var barBorderRadius = (_item8.width - columnOption.meterBorder) / 2;
-                  if (barBorderRadius > height) {
-                    barBorderRadius = height;
-                  }
-                  context.moveTo(startX + columnOption.meterBorder * 0.5, opts.height - opts.area[2]);
-                  context.lineTo(startX + columnOption.meterBorder * 0.5, _item8.y + barBorderRadius);
-                  context.arc(startX + _item8.width / 2, _item8.y + barBorderRadius - columnOption.meterBorder * 0.5, barBorderRadius, -Math.PI, 0);
-                  context.lineTo(startX + _item8.width - columnOption.meterBorder * 0.5, opts.height - opts.area[2]);
-                } else {
-                  context.moveTo(startX + columnOption.meterBorder * 0.5, _item8.y + height);
-                  context.lineTo(startX + columnOption.meterBorder * 0.5, _item8.y + columnOption.meterBorder * 0.5);
-                  context.lineTo(startX + _item8.width - columnOption.meterBorder * 0.5, _item8.y + columnOption.meterBorder * 0.5);
-                  context.lineTo(startX + _item8.width - columnOption.meterBorder * 0.5, _item8.y + height);
-                }
-                context.stroke();
-              }
-            }
-          };
-        } else {
-          for (var _i17 = 0; _i17 < points.length; _i17++) {
-            var _item9 = points[_i17];
-            if (_item9 !== null && _i17 > leftNum && _i17 < rightNum) {
-              context.beginPath();
-              context.setFillStyle(_item9.color || eachSeries.color);
-              var startX = _item9.x - _item9.width / 2;
-              var height = opts.height - _item9.y - opts.area[2];
-              if (columnOption.barBorderCircle) {
-                var barBorderRadius = _item9.width / 2;
-                if (barBorderRadius > height) {
-                  barBorderRadius = height;
-                }
-                context.moveTo(startX, opts.height - opts.area[2]);
-                context.arc(startX + barBorderRadius, _item9.y + barBorderRadius, barBorderRadius, -Math.PI, -Math.PI / 2);
-                context.arc(startX + _item9.width - barBorderRadius, _item9.y + barBorderRadius, barBorderRadius, -Math.PI / 2, 0);
-                context.lineTo(startX + _item9.width, opts.height - opts.area[2]);
-                context.lineTo(startX, opts.height - opts.area[2]);
-                context.fill();
-              } else {
-                context.moveTo(startX, _item9.y);
-                context.fillRect(startX, _item9.y, _item9.width, height);
-                context.closePath();
-                context.fill();
-              }
-            }
-          };
-        }
-        break;}
-
-  });
-
-  if (opts.dataLabel !== false && process === 1) {
-    series.forEach(function (eachSeries, seriesIndex) {
-      var ranges, minRange, maxRange;
-      ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);
-      minRange = ranges.pop();
-      maxRange = ranges.shift();
-      var data = eachSeries.data;
-      switch (columnOption.type) {
-        case 'group':
-          var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);
-          points = fixColumeData(points, eachSpacing, series.length, seriesIndex, config, opts);
-          drawPointText(points, eachSeries, config, context, opts);
-          break;
-        case 'stack':
-          var points = getStackDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, seriesIndex, series, process);
-          drawPointText(points, eachSeries, config, context, opts);
-          break;
-        case 'meter':
-          var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);
-          drawPointText(points, eachSeries, config, context, opts);
-          break;}
-
-    });
-  }
-  context.restore();
-  return {
-    xAxisPoints: xAxisPoints,
-    calPoints: calPoints,
-    eachSpacing: eachSpacing };
-
-}
-
-function drawBarDataPoints(series, opts, config, context) {
-  var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;
-  var yAxisPoints = [];
-  var eachSpacing = (opts.height - opts.area[0] - opts.area[2]) / opts.categories.length;
-  for (var i = 0; i < opts.categories.length; i++) {
-    yAxisPoints.push(opts.area[0] + eachSpacing / 2 + eachSpacing * i);
-  }
-  var columnOption = assign({}, {
-    type: 'group',
-    width: eachSpacing / 2,
-    meterBorder: 4,
-    meterFillColor: '#FFFFFF',
-    barBorderCircle: false,
-    barBorderRadius: [],
-    seriesGap: 2,
-    linearType: 'none',
-    linearOpacity: 1,
-    customColor: [],
-    colorStop: 0 },
-  opts.extra.bar);
-  var calPoints = [];
-  context.save();
-  var leftNum = -2;
-  var rightNum = yAxisPoints.length + 2;
-  if (opts.tooltip && opts.tooltip.textList && opts.tooltip.textList.length && process === 1) {
-    drawBarToolTipSplitArea(opts.tooltip.offset.y, opts, config, context, eachSpacing);
-  }
-  columnOption.customColor = fillCustomColor(columnOption.linearType, columnOption.customColor, series, config);
-  series.forEach(function (eachSeries, seriesIndex) {
-    var ranges, minRange, maxRange;
-    ranges = [].concat(opts.chartData.xAxisData.ranges);
-    maxRange = ranges.pop();
-    minRange = ranges.shift();
-    var data = eachSeries.data;
-    switch (columnOption.type) {
-      case 'group':
-        var points = getBarDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config, process);
-        var tooltipPoints = getBarStackDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config, seriesIndex, series, process);
-        calPoints.push(tooltipPoints);
-        points = fixBarData(points, eachSpacing, series.length, seriesIndex, config, opts);
-        for (var _i18 = 0; _i18 < points.length; _i18++) {
-          var item = points[_i18];
-          //fix issues/I27B1N yyoinge & Joeshu
-          if (item !== null && _i18 > leftNum && _i18 < rightNum) {
-            //var startX = item.x - item.width / 2;
-            var startX = opts.area[3];
-            var startY = item.y - item.width / 2;
-            var height = item.height;
-            context.beginPath();
-            var fillColor = item.color || eachSeries.color;
-            var strokeColor = item.color || eachSeries.color;
-            if (columnOption.linearType !== 'none') {
-              var grd = context.createLinearGradient(startX, item.y, item.x, item.y);
-              //閫忔槑娓愬彉
-              if (columnOption.linearType == 'opacity') {
-                grd.addColorStop(0, hexToRgb(fillColor, columnOption.linearOpacity));
-                grd.addColorStop(1, hexToRgb(fillColor, 1));
-              } else {
-                grd.addColorStop(0, hexToRgb(columnOption.customColor[eachSeries.linearIndex], columnOption.linearOpacity));
-                grd.addColorStop(columnOption.colorStop, hexToRgb(columnOption.customColor[eachSeries.linearIndex], columnOption.linearOpacity));
-                grd.addColorStop(1, hexToRgb(fillColor, 1));
-              }
-              fillColor = grd;
-            }
-            // 鍦嗚杈规
-            if (columnOption.barBorderRadius && columnOption.barBorderRadius.length === 4 || columnOption.barBorderCircle === true) {
-              var left = startX;
-              var width = item.width;
-              var top = item.y - item.width / 2;
-              var _height2 = item.heigh;
-              if (columnOption.barBorderCircle) {
-                columnOption.barBorderRadius = [width / 2, width / 2, 0, 0];
-              }var _columnOption$barBord2 = _slicedToArray(
-              columnOption.barBorderRadius, 4),r0 = _columnOption$barBord2[0],r1 = _columnOption$barBord2[1],r2 = _columnOption$barBord2[2],r3 = _columnOption$barBord2[3];
-              var minRadius = Math.min(width / 2, _height2 / 2);
-              r0 = r0 > minRadius ? minRadius : r0;
-              r1 = r1 > minRadius ? minRadius : r1;
-              r2 = r2 > minRadius ? minRadius : r2;
-              r3 = r3 > minRadius ? minRadius : r3;
-              r0 = r0 < 0 ? 0 : r0;
-              r1 = r1 < 0 ? 0 : r1;
-              r2 = r2 < 0 ? 0 : r2;
-              r3 = r3 < 0 ? 0 : r3;
-
-              context.arc(left + r3, top + r3, r3, -Math.PI, -Math.PI / 2);
-              context.arc(item.x - r0, top + r0, r0, -Math.PI / 2, 0);
-              context.arc(item.x - r1, top + width - r1, r1, 0, Math.PI / 2);
-              context.arc(left + r2, top + width - r2, r2, Math.PI / 2, Math.PI);
-            } else {
-              context.moveTo(startX, startY);
-              context.lineTo(item.x, startY);
-              context.lineTo(item.x, startY + item.width - 2);
-              context.lineTo(startX, startY + item.width - 2);
-              context.lineTo(startX, startY);
-              context.setLineWidth(1);
-              context.setStrokeStyle(strokeColor);
-            }
-            context.setFillStyle(fillColor);
-            context.closePath();
-            //context.stroke();
-            context.fill();
-          }
-        };
-        break;
-      case 'stack':
-        // 缁樺埗鍫嗗彔鏁版嵁鍥�
-        var points = getBarStackDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config, seriesIndex, series, process);
-        calPoints.push(points);
-        points = fixBarStackData(points, eachSpacing, series.length, seriesIndex, config, opts, series);
-        for (var _i19 = 0; _i19 < points.length; _i19++) {
-          var _item10 = points[_i19];
-          if (_item10 !== null && _i19 > leftNum && _i19 < rightNum) {
-            context.beginPath();
-            var fillColor = _item10.color || eachSeries.color;
-            var startX = _item10.x0;
-            context.setFillStyle(fillColor);
-            context.moveTo(startX, _item10.y - _item10.width / 2);
-            context.fillRect(startX, _item10.y - _item10.width / 2, _item10.height, _item10.width - 2);
-            context.closePath();
-            context.fill();
-          }
-        };
-        break;}
-
-  });
-
-  if (opts.dataLabel !== false && process === 1) {
-    series.forEach(function (eachSeries, seriesIndex) {
-      var ranges, minRange, maxRange;
-      ranges = [].concat(opts.chartData.xAxisData.ranges);
-      maxRange = ranges.pop();
-      minRange = ranges.shift();
-      var data = eachSeries.data;
-      switch (columnOption.type) {
-        case 'group':
-          var points = getBarDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config, process);
-          points = fixBarData(points, eachSpacing, series.length, seriesIndex, config, opts);
-          drawBarPointText(points, eachSeries, config, context, opts);
-          break;
-        case 'stack':
-          var points = getBarStackDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config, seriesIndex, series, process);
-          drawBarPointText(points, eachSeries, config, context, opts);
-          break;}
-
-    });
-  }
-  return {
-    yAxisPoints: yAxisPoints,
-    calPoints: calPoints,
-    eachSpacing: eachSpacing };
-
-}
-
-function drawCandleDataPoints(series, seriesMA, opts, config, context) {
-  var process = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 1;
-  var candleOption = assign({}, {
-    color: {},
-    average: {} },
-  opts.extra.candle);
-  candleOption.color = assign({}, {
-    upLine: '#f04864',
-    upFill: '#f04864',
-    downLine: '#2fc25b',
-    downFill: '#2fc25b' },
-  candleOption.color);
-  candleOption.average = assign({}, {
-    show: false,
-    name: [],
-    day: [],
-    color: config.color },
-  candleOption.average);
-  opts.extra.candle = candleOption;
-  var xAxisData = opts.chartData.xAxisData,
-  xAxisPoints = xAxisData.xAxisPoints,
-  eachSpacing = xAxisData.eachSpacing;
-  var calPoints = [];
-  context.save();
-  var leftNum = -2;
-  var rightNum = xAxisPoints.length + 2;
-  var leftSpace = 0;
-  var rightSpace = opts.width + eachSpacing;
-  if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {
-    context.translate(opts._scrollDistance_, 0);
-    leftNum = Math.floor(-opts._scrollDistance_ / eachSpacing) - 2;
-    rightNum = leftNum + opts.xAxis.itemCount + 4;
-    leftSpace = -opts._scrollDistance_ - eachSpacing * 2 + opts.area[3];
-    rightSpace = leftSpace + (opts.xAxis.itemCount + 4) * eachSpacing;
-  }
-  //鐢诲潎绾�
-  if (candleOption.average.show || seriesMA) {//Merge pull request !12 from 閭辫吹缈�
-    seriesMA.forEach(function (eachSeries, seriesIndex) {
-      var ranges, minRange, maxRange;
-      ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);
-      minRange = ranges.pop();
-      maxRange = ranges.shift();
-      var data = eachSeries.data;
-      var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);
-      var splitPointList = splitPoints(points, eachSeries);
-      for (var i = 0; i < splitPointList.length; i++) {
-        var _points = splitPointList[i];
-        context.beginPath();
-        context.setStrokeStyle(eachSeries.color);
-        context.setLineWidth(1);
-        if (_points.length === 1) {
-          context.moveTo(_points[0].x, _points[0].y);
-          context.arc(_points[0].x, _points[0].y, 1, 0, 2 * Math.PI);
-        } else {
-          context.moveTo(_points[0].x, _points[0].y);
-          var startPoint = 0;
-          for (var j = 0; j < _points.length; j++) {
-            var item = _points[j];
-            if (startPoint == 0 && item.x > leftSpace) {
-              context.moveTo(item.x, item.y);
-              startPoint = 1;
-            }
-            if (j > 0 && item.x > leftSpace && item.x < rightSpace) {
-              var ctrlPoint = createCurveControlPoints(_points, j - 1);
-              context.bezierCurveTo(ctrlPoint.ctrA.x, ctrlPoint.ctrA.y, ctrlPoint.ctrB.x, ctrlPoint.ctrB.y, item.x,
-              item.y);
-            }
-          }
-          context.moveTo(_points[0].x, _points[0].y);
-        }
-        context.closePath();
-        context.stroke();
-      }
-    });
-  }
-  //鐢籏绾�
-  series.forEach(function (eachSeries, seriesIndex) {
-    var ranges, minRange, maxRange;
-    ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);
-    minRange = ranges.pop();
-    maxRange = ranges.shift();
-    var data = eachSeries.data;
-    var points = getCandleDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);
-    calPoints.push(points);
-    var splitPointList = splitPoints(points, eachSeries);
-    for (var i = 0; i < splitPointList[0].length; i++) {
-      if (i > leftNum && i < rightNum) {
-        var item = splitPointList[0][i];
-        context.beginPath();
-        //濡傛灉涓婃定
-        if (data[i][1] - data[i][0] > 0) {
-          context.setStrokeStyle(candleOption.color.upLine);
-          context.setFillStyle(candleOption.color.upFill);
-          context.setLineWidth(1 * opts.pix);
-          context.moveTo(item[3].x, item[3].y); //椤剁偣
-          context.lineTo(item[1].x, item[1].y); //鏀剁洏涓棿鐐�
-          context.lineTo(item[1].x - eachSpacing / 4, item[1].y); //鏀剁洏宸︿晶鐐�
-          context.lineTo(item[0].x - eachSpacing / 4, item[0].y); //寮�鐩樺乏渚х偣
-          context.lineTo(item[0].x, item[0].y); //寮�鐩樹腑闂寸偣
-          context.lineTo(item[2].x, item[2].y); //搴曠偣
-          context.lineTo(item[0].x, item[0].y); //寮�鐩樹腑闂寸偣
-          context.lineTo(item[0].x + eachSpacing / 4, item[0].y); //寮�鐩樺彸渚х偣
-          context.lineTo(item[1].x + eachSpacing / 4, item[1].y); //鏀剁洏鍙充晶鐐�
-          context.lineTo(item[1].x, item[1].y); //鏀剁洏涓棿鐐�
-          context.moveTo(item[3].x, item[3].y); //椤剁偣
-        } else {
-          context.setStrokeStyle(candleOption.color.downLine);
-          context.setFillStyle(candleOption.color.downFill);
-          context.setLineWidth(1 * opts.pix);
-          context.moveTo(item[3].x, item[3].y); //椤剁偣
-          context.lineTo(item[0].x, item[0].y); //寮�鐩樹腑闂寸偣
-          context.lineTo(item[0].x - eachSpacing / 4, item[0].y); //寮�鐩樺乏渚х偣
-          context.lineTo(item[1].x - eachSpacing / 4, item[1].y); //鏀剁洏宸︿晶鐐�
-          context.lineTo(item[1].x, item[1].y); //鏀剁洏涓棿鐐�
-          context.lineTo(item[2].x, item[2].y); //搴曠偣
-          context.lineTo(item[1].x, item[1].y); //鏀剁洏涓棿鐐�
-          context.lineTo(item[1].x + eachSpacing / 4, item[1].y); //鏀剁洏鍙充晶鐐�
-          context.lineTo(item[0].x + eachSpacing / 4, item[0].y); //寮�鐩樺彸渚х偣
-          context.lineTo(item[0].x, item[0].y); //寮�鐩樹腑闂寸偣
-          context.moveTo(item[3].x, item[3].y); //椤剁偣
-        }
-        context.closePath();
-        context.fill();
-        context.stroke();
-      }
-    }
-  });
-  context.restore();
-  return {
-    xAxisPoints: xAxisPoints,
-    calPoints: calPoints,
-    eachSpacing: eachSpacing };
-
-}
-
-function drawAreaDataPoints(series, opts, config, context) {
-  var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;
-  var areaOption = assign({}, {
-    type: 'straight',
-    opacity: 0.2,
-    addLine: false,
-    width: 2,
-    gradient: false },
-  opts.extra.area);
-  var xAxisData = opts.chartData.xAxisData,
-  xAxisPoints = xAxisData.xAxisPoints,
-  eachSpacing = xAxisData.eachSpacing;
-  var endY = opts.height - opts.area[2];
-  var calPoints = [];
-  context.save();
-  var leftSpace = 0;
-  var rightSpace = opts.width + eachSpacing;
-  if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {
-    context.translate(opts._scrollDistance_, 0);
-    leftSpace = -opts._scrollDistance_ - eachSpacing * 2 + opts.area[3];
-    rightSpace = leftSpace + (opts.xAxis.itemCount + 4) * eachSpacing;
-  }
-  series.forEach(function (eachSeries, seriesIndex) {
-    var ranges, minRange, maxRange;
-    ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);
-    minRange = ranges.pop();
-    maxRange = ranges.shift();
-    var data = eachSeries.data;
-    var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);
-    calPoints.push(points);
-    var splitPointList = splitPoints(points, eachSeries);
-    for (var i = 0; i < splitPointList.length; i++) {
-      var _points2 = splitPointList[i];
-      // 缁樺埗鍖哄煙鏁�
-      context.beginPath();
-      context.setStrokeStyle(hexToRgb(eachSeries.color, areaOption.opacity));
-      if (areaOption.gradient) {
-        var gradient = context.createLinearGradient(0, opts.area[0], 0, opts.height - opts.area[2]);
-        gradient.addColorStop('0', hexToRgb(eachSeries.color, areaOption.opacity));
-        gradient.addColorStop('1.0', hexToRgb("#FFFFFF", 0.1));
-        context.setFillStyle(gradient);
-      } else {
-        context.setFillStyle(hexToRgb(eachSeries.color, areaOption.opacity));
-      }
-      context.setLineWidth(areaOption.width * opts.pix);
-      if (_points2.length > 1) {
-        var firstPoint = _points2[0];
-        var lastPoint = _points2[_points2.length - 1];
-        context.moveTo(firstPoint.x, firstPoint.y);
-        var startPoint = 0;
-        if (areaOption.type === 'curve') {
-          for (var j = 0; j < _points2.length; j++) {
-            var item = _points2[j];
-            if (startPoint == 0 && item.x > leftSpace) {
-              context.moveTo(item.x, item.y);
-              startPoint = 1;
-            }
-            if (j > 0 && item.x > leftSpace && item.x < rightSpace) {
-              var ctrlPoint = createCurveControlPoints(_points2, j - 1);
-              context.bezierCurveTo(ctrlPoint.ctrA.x, ctrlPoint.ctrA.y, ctrlPoint.ctrB.x, ctrlPoint.ctrB.y, item.x, item.y);
-            }
-          };
-        }
-        if (areaOption.type === 'straight') {
-          for (var _j = 0; _j < _points2.length; _j++) {
-            var _item11 = _points2[_j];
-            if (startPoint == 0 && _item11.x > leftSpace) {
-              context.moveTo(_item11.x, _item11.y);
-              startPoint = 1;
-            }
-            if (_j > 0 && _item11.x > leftSpace && _item11.x < rightSpace) {
-              context.lineTo(_item11.x, _item11.y);
-            }
-          };
-        }
-        if (areaOption.type === 'step') {
-          for (var _j2 = 0; _j2 < _points2.length; _j2++) {
-            var _item12 = _points2[_j2];
-            if (startPoint == 0 && _item12.x > leftSpace) {
-              context.moveTo(_item12.x, _item12.y);
-              startPoint = 1;
-            }
-            if (_j2 > 0 && _item12.x > leftSpace && _item12.x < rightSpace) {
-              context.lineTo(_item12.x, _points2[_j2 - 1].y);
-              context.lineTo(_item12.x, _item12.y);
-            }
-          };
-        }
-        context.lineTo(lastPoint.x, endY);
-        context.lineTo(firstPoint.x, endY);
-        context.lineTo(firstPoint.x, firstPoint.y);
-      } else {
-        var _item13 = _points2[0];
-        context.moveTo(_item13.x - eachSpacing / 2, _item13.y);
-        context.lineTo(_item13.x + eachSpacing / 2, _item13.y);
-        context.lineTo(_item13.x + eachSpacing / 2, endY);
-        context.lineTo(_item13.x - eachSpacing / 2, endY);
-        context.moveTo(_item13.x - eachSpacing / 2, _item13.y);
-      }
-      context.closePath();
-      context.fill();
-      //鐢昏繛绾�
-      if (areaOption.addLine) {
-        if (eachSeries.lineType == 'dash') {
-          var dashLength = eachSeries.dashLength ? eachSeries.dashLength : 8;
-          dashLength *= opts.pix;
-          context.setLineDash([dashLength, dashLength]);
-        }
-        context.beginPath();
-        context.setStrokeStyle(eachSeries.color);
-        context.setLineWidth(areaOption.width * opts.pix);
-        if (_points2.length === 1) {
-          context.moveTo(_points2[0].x, _points2[0].y);
-          context.arc(_points2[0].x, _points2[0].y, 1, 0, 2 * Math.PI);
-        } else {
-          context.moveTo(_points2[0].x, _points2[0].y);
-          var _startPoint = 0;
-          if (areaOption.type === 'curve') {
-            for (var _j3 = 0; _j3 < _points2.length; _j3++) {
-              var _item14 = _points2[_j3];
-              if (_startPoint == 0 && _item14.x > leftSpace) {
-                context.moveTo(_item14.x, _item14.y);
-                _startPoint = 1;
-              }
-              if (_j3 > 0 && _item14.x > leftSpace && _item14.x < rightSpace) {
-                var _ctrlPoint = createCurveControlPoints(_points2, _j3 - 1);
-                context.bezierCurveTo(_ctrlPoint.ctrA.x, _ctrlPoint.ctrA.y, _ctrlPoint.ctrB.x, _ctrlPoint.ctrB.y, _item14.x, _item14.y);
-              }
-            };
-          }
-          if (areaOption.type === 'straight') {
-            for (var _j4 = 0; _j4 < _points2.length; _j4++) {
-              var _item15 = _points2[_j4];
-              if (_startPoint == 0 && _item15.x > leftSpace) {
-                context.moveTo(_item15.x, _item15.y);
-                _startPoint = 1;
-              }
-              if (_j4 > 0 && _item15.x > leftSpace && _item15.x < rightSpace) {
-                context.lineTo(_item15.x, _item15.y);
-              }
-            };
-          }
-          if (areaOption.type === 'step') {
-            for (var _j5 = 0; _j5 < _points2.length; _j5++) {
-              var _item16 = _points2[_j5];
-              if (_startPoint == 0 && _item16.x > leftSpace) {
-                context.moveTo(_item16.x, _item16.y);
-                _startPoint = 1;
-              }
-              if (_j5 > 0 && _item16.x > leftSpace && _item16.x < rightSpace) {
-                context.lineTo(_item16.x, _points2[_j5 - 1].y);
-                context.lineTo(_item16.x, _item16.y);
-              }
-            };
-          }
-          context.moveTo(_points2[0].x, _points2[0].y);
-        }
-        context.stroke();
-        context.setLineDash([]);
-      }
-    }
-    //鐢荤偣
-    if (opts.dataPointShape !== false) {
-      drawPointShape(points, eachSeries.color, eachSeries.pointShape, context, opts);
-    }
-  });
-
-  if (opts.dataLabel !== false && process === 1) {
-    series.forEach(function (eachSeries, seriesIndex) {
-      var ranges, minRange, maxRange;
-      ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);
-      minRange = ranges.pop();
-      maxRange = ranges.shift();
-      var data = eachSeries.data;
-      var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);
-      drawPointText(points, eachSeries, config, context, opts);
-    });
-  }
-  context.restore();
-  return {
-    xAxisPoints: xAxisPoints,
-    calPoints: calPoints,
-    eachSpacing: eachSpacing };
-
-}
-
-function drawScatterDataPoints(series, opts, config, context) {
-  var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;
-  var scatterOption = assign({}, {
-    type: 'circle' },
-  opts.extra.scatter);
-  var xAxisData = opts.chartData.xAxisData,
-  xAxisPoints = xAxisData.xAxisPoints,
-  eachSpacing = xAxisData.eachSpacing;
-  var calPoints = [];
-  context.save();
-  var leftSpace = 0;
-  var rightSpace = opts.width + eachSpacing;
-  if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {
-    context.translate(opts._scrollDistance_, 0);
-    leftSpace = -opts._scrollDistance_ - eachSpacing * 2 + opts.area[3];
-    rightSpace = leftSpace + (opts.xAxis.itemCount + 4) * eachSpacing;
-  }
-  series.forEach(function (eachSeries, seriesIndex) {
-    var ranges, minRange, maxRange;
-    ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);
-    minRange = ranges.pop();
-    maxRange = ranges.shift();
-    var data = eachSeries.data;
-    var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);
-    context.beginPath();
-    context.setStrokeStyle(eachSeries.color);
-    context.setFillStyle(eachSeries.color);
-    context.setLineWidth(1 * opts.pix);
-    var shape = eachSeries.pointShape;
-    if (shape === 'diamond') {
-      points.forEach(function (item, index) {
-        if (item !== null) {
-          context.moveTo(item.x, item.y - 4.5);
-          context.lineTo(item.x - 4.5, item.y);
-          context.lineTo(item.x, item.y + 4.5);
-          context.lineTo(item.x + 4.5, item.y);
-          context.lineTo(item.x, item.y - 4.5);
-        }
-      });
-    } else if (shape === 'circle') {
-      points.forEach(function (item, index) {
-        if (item !== null) {
-          context.moveTo(item.x + 2.5 * opts.pix, item.y);
-          context.arc(item.x, item.y, 3 * opts.pix, 0, 2 * Math.PI, false);
-        }
-      });
-    } else if (shape === 'square') {
-      points.forEach(function (item, index) {
-        if (item !== null) {
-          context.moveTo(item.x - 3.5, item.y - 3.5);
-          context.rect(item.x - 3.5, item.y - 3.5, 7, 7);
-        }
-      });
-    } else if (shape === 'triangle') {
-      points.forEach(function (item, index) {
-        if (item !== null) {
-          context.moveTo(item.x, item.y - 4.5);
-          context.lineTo(item.x - 4.5, item.y + 4.5);
-          context.lineTo(item.x + 4.5, item.y + 4.5);
-          context.lineTo(item.x, item.y - 4.5);
-        }
-      });
-    } else if (shape === 'triangle') {
-      return;
-    }
-    context.closePath();
-    context.fill();
-    context.stroke();
-  });
-  if (opts.dataLabel !== false && process === 1) {
-    series.forEach(function (eachSeries, seriesIndex) {
-      var ranges, minRange, maxRange;
-      ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);
-      minRange = ranges.pop();
-      maxRange = ranges.shift();
-      var data = eachSeries.data;
-      var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);
-      drawPointText(points, eachSeries, config, context, opts);
-    });
-  }
-  context.restore();
-  return {
-    xAxisPoints: xAxisPoints,
-    calPoints: calPoints,
-    eachSpacing: eachSpacing };
-
-}
-
-function drawBubbleDataPoints(series, opts, config, context) {
-  var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;
-  var bubbleOption = assign({}, {
-    opacity: 1,
-    border: 2 },
-  opts.extra.bubble);
-  var xAxisData = opts.chartData.xAxisData,
-  xAxisPoints = xAxisData.xAxisPoints,
-  eachSpacing = xAxisData.eachSpacing;
-  var calPoints = [];
-  context.save();
-  var leftSpace = 0;
-  var rightSpace = opts.width + eachSpacing;
-  if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {
-    context.translate(opts._scrollDistance_, 0);
-    leftSpace = -opts._scrollDistance_ - eachSpacing * 2 + opts.area[3];
-    rightSpace = leftSpace + (opts.xAxis.itemCount + 4) * eachSpacing;
-  }
-  series.forEach(function (eachSeries, seriesIndex) {
-    var ranges, minRange, maxRange;
-    ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);
-    minRange = ranges.pop();
-    maxRange = ranges.shift();
-    var data = eachSeries.data;
-    var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);
-    context.beginPath();
-    context.setStrokeStyle(eachSeries.color);
-    context.setLineWidth(bubbleOption.border * opts.pix);
-    context.setFillStyle(hexToRgb(eachSeries.color, bubbleOption.opacity));
-    points.forEach(function (item, index) {
-      context.moveTo(item.x + item.r, item.y);
-      context.arc(item.x, item.y, item.r * opts.pix, 0, 2 * Math.PI, false);
-    });
-    context.closePath();
-    context.fill();
-    context.stroke();
-
-    if (opts.dataLabel !== false && process === 1) {
-      points.forEach(function (item, index) {
-        context.beginPath();
-        var fontSize = series.textSize * opts.pix || config.fontSize;
-        context.setFontSize(fontSize);
-        context.setFillStyle(series.textColor || "#FFFFFF");
-        context.setTextAlign('center');
-        context.fillText(String(item.t), item.x, item.y + fontSize / 2);
-        context.closePath();
-        context.stroke();
-        context.setTextAlign('left');
-      });
-    }
-  });
-  context.restore();
-  return {
-    xAxisPoints: xAxisPoints,
-    calPoints: calPoints,
-    eachSpacing: eachSpacing };
-
-}
-
-
-function drawLineDataPoints(series, opts, config, context) {
-  var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;
-  var lineOption = assign({}, {
-    type: 'straight',
-    width: 2 },
-  opts.extra.line);
-  lineOption.width *= opts.pix;
-  var xAxisData = opts.chartData.xAxisData,
-  xAxisPoints = xAxisData.xAxisPoints,
-  eachSpacing = xAxisData.eachSpacing;
-  var calPoints = [];
-  context.save();
-  var leftSpace = 0;
-  var rightSpace = opts.width + eachSpacing;
-  if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {
-    context.translate(opts._scrollDistance_, 0);
-    leftSpace = -opts._scrollDistance_ - eachSpacing * 2 + opts.area[3];
-    rightSpace = leftSpace + (opts.xAxis.itemCount + 4) * eachSpacing;
-  }
-  series.forEach(function (eachSeries, seriesIndex) {
-    var ranges, minRange, maxRange;
-    ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);
-    minRange = ranges.pop();
-    maxRange = ranges.shift();
-    var data = eachSeries.data;
-    var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);
-    calPoints.push(points);
-    var splitPointList = splitPoints(points, eachSeries);
-    if (eachSeries.lineType == 'dash') {
-      var dashLength = eachSeries.dashLength ? eachSeries.dashLength : 8;
-      dashLength *= opts.pix;
-      context.setLineDash([dashLength, dashLength]);
-    }
-    context.beginPath();
-    context.setStrokeStyle(eachSeries.color);
-    context.setLineWidth(lineOption.width);
-    splitPointList.forEach(function (points, index) {
-      if (points.length === 1) {
-        context.moveTo(points[0].x, points[0].y);
-        context.arc(points[0].x, points[0].y, 1, 0, 2 * Math.PI);
-      } else {
-        context.moveTo(points[0].x, points[0].y);
-        var startPoint = 0;
-        if (lineOption.type === 'curve') {
-          for (var j = 0; j < points.length; j++) {
-            var item = points[j];
-            if (startPoint == 0 && item.x > leftSpace) {
-              context.moveTo(item.x, item.y);
-              startPoint = 1;
-            }
-            if (j > 0 && item.x > leftSpace && item.x < rightSpace) {
-              var ctrlPoint = createCurveControlPoints(points, j - 1);
-              context.bezierCurveTo(ctrlPoint.ctrA.x, ctrlPoint.ctrA.y, ctrlPoint.ctrB.x, ctrlPoint.ctrB.y, item.x, item.y);
-            }
-          };
-        }
-        if (lineOption.type === 'straight') {
-          for (var _j6 = 0; _j6 < points.length; _j6++) {
-            var _item17 = points[_j6];
-            if (startPoint == 0 && _item17.x > leftSpace) {
-              context.moveTo(_item17.x, _item17.y);
-              startPoint = 1;
-            }
-            if (_j6 > 0 && _item17.x > leftSpace && _item17.x < rightSpace) {
-              context.lineTo(_item17.x, _item17.y);
-            }
-          };
-        }
-        if (lineOption.type === 'step') {
-          for (var _j7 = 0; _j7 < points.length; _j7++) {
-            var _item18 = points[_j7];
-            if (startPoint == 0 && _item18.x > leftSpace) {
-              context.moveTo(_item18.x, _item18.y);
-              startPoint = 1;
-            }
-            if (_j7 > 0 && _item18.x > leftSpace && _item18.x < rightSpace) {
-              context.lineTo(_item18.x, points[_j7 - 1].y);
-              context.lineTo(_item18.x, _item18.y);
-            }
-          };
-        }
-        context.moveTo(points[0].x, points[0].y);
-      }
-    });
-    context.stroke();
-    context.setLineDash([]);
-    if (opts.dataPointShape !== false) {
-      drawPointShape(points, eachSeries.color, eachSeries.pointShape, context, opts);
-    }
-  });
-  if (opts.dataLabel !== false && process === 1) {
-    series.forEach(function (eachSeries, seriesIndex) {
-      var ranges, minRange, maxRange;
-      ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);
-      minRange = ranges.pop();
-      maxRange = ranges.shift();
-      var data = eachSeries.data;
-      var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);
-      drawPointText(points, eachSeries, config, context, opts);
-    });
-  }
-  context.restore();
-  return {
-    xAxisPoints: xAxisPoints,
-    calPoints: calPoints,
-    eachSpacing: eachSpacing };
-
-}
-
-function drawMixDataPoints(series, opts, config, context) {
-  var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;
-  var columnOption = assign({}, {
-    width: eachSpacing / 2,
-    barBorderCircle: false,
-    barBorderRadius: [],
-    seriesGap: 2,
-    linearType: 'none',
-    linearOpacity: 1,
-    customColor: [],
-    colorStop: 0 },
-  opts.extra.mix.column);
-  var xAxisData = opts.chartData.xAxisData,
-  xAxisPoints = xAxisData.xAxisPoints,
-  eachSpacing = xAxisData.eachSpacing;
-  var endY = opts.height - opts.area[2];
-  var calPoints = [];
-  var columnIndex = 0;
-  var columnLength = 0;
-  series.forEach(function (eachSeries, seriesIndex) {
-    if (eachSeries.type == 'column') {
-      columnLength += 1;
-    }
-  });
-  context.save();
-  var leftNum = -2;
-  var rightNum = xAxisPoints.length + 2;
-  var leftSpace = 0;
-  var rightSpace = opts.width + eachSpacing;
-  if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {
-    context.translate(opts._scrollDistance_, 0);
-    leftNum = Math.floor(-opts._scrollDistance_ / eachSpacing) - 2;
-    rightNum = leftNum + opts.xAxis.itemCount + 4;
-    leftSpace = -opts._scrollDistance_ - eachSpacing * 2 + opts.area[3];
-    rightSpace = leftSpace + (opts.xAxis.itemCount + 4) * eachSpacing;
-  }
-  columnOption.customColor = fillCustomColor(columnOption.linearType, columnOption.customColor, series, config);
-  series.forEach(function (eachSeries, seriesIndex) {
-    var ranges, minRange, maxRange;
-    ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);
-    minRange = ranges.pop();
-    maxRange = ranges.shift();
-    var data = eachSeries.data;
-    var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);
-    calPoints.push(points);
-    // 缁樺埗鏌辩姸鏁版嵁鍥�
-    if (eachSeries.type == 'column') {
-      points = fixColumeData(points, eachSpacing, columnLength, columnIndex, config, opts);
-      for (var i = 0; i < points.length; i++) {
-        var item = points[i];
-        if (item !== null && i > leftNum && i < rightNum) {
-          var startX = item.x - item.width / 2;
-          var height = opts.height - item.y - opts.area[2];
-          context.beginPath();
-          var fillColor = item.color || eachSeries.color;
-          var strokeColor = item.color || eachSeries.color;
-          if (columnOption.linearType !== 'none') {
-            var grd = context.createLinearGradient(startX, item.y, startX, opts.height - opts.area[2]);
-            //閫忔槑娓愬彉
-            if (columnOption.linearType == 'opacity') {
-              grd.addColorStop(0, hexToRgb(fillColor, columnOption.linearOpacity));
-              grd.addColorStop(1, hexToRgb(fillColor, 1));
-            } else {
-              grd.addColorStop(0, hexToRgb(columnOption.customColor[eachSeries.linearIndex], columnOption.linearOpacity));
-              grd.addColorStop(columnOption.colorStop, hexToRgb(columnOption.customColor[eachSeries.linearIndex], columnOption.linearOpacity));
-              grd.addColorStop(1, hexToRgb(fillColor, 1));
-            }
-            fillColor = grd;
-          }
-          // 鍦嗚杈规
-          if (columnOption.barBorderRadius && columnOption.barBorderRadius.length === 4 || columnOption.barBorderCircle) {
-            var left = startX;
-            var top = item.y;
-            var width = item.width;
-            var _height3 = opts.height - opts.area[2] - item.y;
-            if (columnOption.barBorderCircle) {
-              columnOption.barBorderRadius = [width / 2, width / 2, 0, 0];
-            }var _columnOption$barBord3 = _slicedToArray(
-            columnOption.barBorderRadius, 4),r0 = _columnOption$barBord3[0],r1 = _columnOption$barBord3[1],r2 = _columnOption$barBord3[2],r3 = _columnOption$barBord3[3];
-            var minRadius = Math.min(width / 2, _height3 / 2);
-            r0 = r0 > minRadius ? minRadius : r0;
-            r1 = r1 > minRadius ? minRadius : r1;
-            r2 = r2 > minRadius ? minRadius : r2;
-            r3 = r3 > minRadius ? minRadius : r3;
-            r0 = r0 < 0 ? 0 : r0;
-            r1 = r1 < 0 ? 0 : r1;
-            r2 = r2 < 0 ? 0 : r2;
-            r3 = r3 < 0 ? 0 : r3;
-            context.arc(left + r0, top + r0, r0, -Math.PI, -Math.PI / 2);
-            context.arc(left + width - r1, top + r1, r1, -Math.PI / 2, 0);
-            context.arc(left + width - r2, top + _height3 - r2, r2, 0, Math.PI / 2);
-            context.arc(left + r3, top + _height3 - r3, r3, Math.PI / 2, Math.PI);
-          } else {
-            context.moveTo(startX, item.y);
-            context.lineTo(startX + item.width - 2, item.y);
-            context.lineTo(startX + item.width - 2, opts.height - opts.area[2]);
-            context.lineTo(startX, opts.height - opts.area[2]);
-            context.lineTo(startX, item.y);
-            context.setLineWidth(1);
-            context.setStrokeStyle(strokeColor);
-          }
-          context.setFillStyle(fillColor);
-          context.closePath();
-          context.fill();
-        }
-      }
-      columnIndex += 1;
-    }
-    //缁樺埗鍖哄煙鍥炬暟鎹�
-    if (eachSeries.type == 'area') {
-      var _splitPointList = splitPoints(points, eachSeries);
-      for (var _i20 = 0; _i20 < _splitPointList.length; _i20++) {
-        var _points3 = _splitPointList[_i20];
-        // 缁樺埗鍖哄煙鏁版嵁
-        context.beginPath();
-        context.setStrokeStyle(eachSeries.color);
-        context.setFillStyle(hexToRgb(eachSeries.color, 0.2));
-        context.setLineWidth(2 * opts.pix);
-        if (_points3.length > 1) {
-          var firstPoint = _points3[0];
-          var lastPoint = _points3[_points3.length - 1];
-          context.moveTo(firstPoint.x, firstPoint.y);
-          var startPoint = 0;
-          if (eachSeries.style === 'curve') {
-            for (var j = 0; j < _points3.length; j++) {
-              var _item19 = _points3[j];
-              if (startPoint == 0 && _item19.x > leftSpace) {
-                context.moveTo(_item19.x, _item19.y);
-                startPoint = 1;
-              }
-              if (j > 0 && _item19.x > leftSpace && _item19.x < rightSpace) {
-                var ctrlPoint = createCurveControlPoints(_points3, j - 1);
-                context.bezierCurveTo(ctrlPoint.ctrA.x, ctrlPoint.ctrA.y, ctrlPoint.ctrB.x, ctrlPoint.ctrB.y, _item19.x, _item19.y);
-              }
-            };
-          } else {
-            for (var _j8 = 0; _j8 < _points3.length; _j8++) {
-              var _item20 = _points3[_j8];
-              if (startPoint == 0 && _item20.x > leftSpace) {
-                context.moveTo(_item20.x, _item20.y);
-                startPoint = 1;
-              }
-              if (_j8 > 0 && _item20.x > leftSpace && _item20.x < rightSpace) {
-                context.lineTo(_item20.x, _item20.y);
-              }
-            };
-          }
-          context.lineTo(lastPoint.x, endY);
-          context.lineTo(firstPoint.x, endY);
-          context.lineTo(firstPoint.x, firstPoint.y);
-        } else {
-          var _item21 = _points3[0];
-          context.moveTo(_item21.x - eachSpacing / 2, _item21.y);
-          context.lineTo(_item21.x + eachSpacing / 2, _item21.y);
-          context.lineTo(_item21.x + eachSpacing / 2, endY);
-          context.lineTo(_item21.x - eachSpacing / 2, endY);
-          context.moveTo(_item21.x - eachSpacing / 2, _item21.y);
-        }
-        context.closePath();
-        context.fill();
-      }
-    }
-    // 缁樺埗鎶樼嚎鏁版嵁鍥�
-    if (eachSeries.type == 'line') {
-      var splitPointList = splitPoints(points, eachSeries);
-      splitPointList.forEach(function (points, index) {
-        if (eachSeries.lineType == 'dash') {
-          var dashLength = eachSeries.dashLength ? eachSeries.dashLength : 8;
-          dashLength *= opts.pix;
-          context.setLineDash([dashLength, dashLength]);
-        }
-        context.beginPath();
-        context.setStrokeStyle(eachSeries.color);
-        context.setLineWidth(2 * opts.pix);
-        if (points.length === 1) {
-          context.moveTo(points[0].x, points[0].y);
-          context.arc(points[0].x, points[0].y, 1, 0, 2 * Math.PI);
-        } else {
-          context.moveTo(points[0].x, points[0].y);
-          var _startPoint2 = 0;
-          if (eachSeries.style == 'curve') {
-            for (var _j9 = 0; _j9 < points.length; _j9++) {
-              var _item22 = points[_j9];
-              if (_startPoint2 == 0 && _item22.x > leftSpace) {
-                context.moveTo(_item22.x, _item22.y);
-                _startPoint2 = 1;
-              }
-              if (_j9 > 0 && _item22.x > leftSpace && _item22.x < rightSpace) {
-                var ctrlPoint = createCurveControlPoints(points, _j9 - 1);
-                context.bezierCurveTo(ctrlPoint.ctrA.x, ctrlPoint.ctrA.y, ctrlPoint.ctrB.x, ctrlPoint.ctrB.y,
-                _item22.x, _item22.y);
-              }
-            }
-          } else {
-            for (var _j10 = 0; _j10 < points.length; _j10++) {
-              var _item23 = points[_j10];
-              if (_startPoint2 == 0 && _item23.x > leftSpace) {
-                context.moveTo(_item23.x, _item23.y);
-                _startPoint2 = 1;
-              }
-              if (_j10 > 0 && _item23.x > leftSpace && _item23.x < rightSpace) {
-                context.lineTo(_item23.x, _item23.y);
-              }
-            }
-          }
-          context.moveTo(points[0].x, points[0].y);
-        }
-        context.stroke();
-        context.setLineDash([]);
-      });
-    }
-    // 缁樺埗鐐规暟鎹浘
-    if (eachSeries.type == 'point') {
-      eachSeries.addPoint = true;
-    }
-    if (eachSeries.addPoint == true && eachSeries.type !== 'column') {
-      drawPointShape(points, eachSeries.color, eachSeries.pointShape, context, opts);
-    }
-  });
-  if (opts.dataLabel !== false && process === 1) {
-    var columnIndex = 0;
-    series.forEach(function (eachSeries, seriesIndex) {
-      var ranges, minRange, maxRange;
-      ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);
-      minRange = ranges.pop();
-      maxRange = ranges.shift();
-      var data = eachSeries.data;
-      var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);
-      if (eachSeries.type !== 'column') {
-        drawPointText(points, eachSeries, config, context, opts);
-      } else {
-        points = fixColumeData(points, eachSpacing, columnLength, columnIndex, config, opts);
-        drawPointText(points, eachSeries, config, context, opts);
-        columnIndex += 1;
-      }
-    });
-  }
-  context.restore();
-  return {
-    xAxisPoints: xAxisPoints,
-    calPoints: calPoints,
-    eachSpacing: eachSpacing };
-
-}
-
-function drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints) {
-  var toolTipOption = opts.extra.tooltip || {};
-  if (toolTipOption.horizentalLine && opts.tooltip && process === 1 && (opts.type == 'line' || opts.type == 'area' || opts.type == 'column' || opts.type == 'candle' || opts.type == 'mix')) {
-    drawToolTipHorizentalLine(opts, config, context, eachSpacing, xAxisPoints);
-  }
-  context.save();
-  if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {
-    context.translate(opts._scrollDistance_, 0);
-  }
-  if (opts.tooltip && opts.tooltip.textList && opts.tooltip.textList.length && process === 1) {
-    drawToolTip(opts.tooltip.textList, opts.tooltip.offset, opts, config, context, eachSpacing, xAxisPoints);
-  }
-  context.restore();
-
-}
-
-function drawXAxis(categories, opts, config, context) {
-
-  var xAxisData = opts.chartData.xAxisData,
-  xAxisPoints = xAxisData.xAxisPoints,
-  startX = xAxisData.startX,
-  endX = xAxisData.endX,
-  eachSpacing = xAxisData.eachSpacing;
-  var boundaryGap = 'center';
-  if (opts.type == 'bar' || opts.type == 'line' || opts.type == 'area' || opts.type == 'scatter' || opts.type == 'bubble') {
-    boundaryGap = opts.xAxis.boundaryGap;
-  }
-  var startY = opts.height - opts.area[2];
-  var endY = opts.area[0];
-
-  //缁樺埗婊氬姩鏉�
-  if (opts.enableScroll && opts.xAxis.scrollShow) {
-    var scrollY = opts.height - opts.area[2] + config.xAxisHeight;
-    var scrollScreenWidth = endX - startX;
-    var scrollTotalWidth = eachSpacing * (xAxisPoints.length - 1);
-    var scrollWidth = scrollScreenWidth * scrollScreenWidth / scrollTotalWidth;
-    var scrollLeft = 0;
-    if (opts._scrollDistance_) {
-      scrollLeft = -opts._scrollDistance_ * scrollScreenWidth / scrollTotalWidth;
-    }
-    context.beginPath();
-    context.setLineCap('round');
-    context.setLineWidth(6 * opts.pix);
-    context.setStrokeStyle(opts.xAxis.scrollBackgroundColor || "#EFEBEF");
-    context.moveTo(startX, scrollY);
-    context.lineTo(endX, scrollY);
-    context.stroke();
-    context.closePath();
-    context.beginPath();
-    context.setLineCap('round');
-    context.setLineWidth(6 * opts.pix);
-    context.setStrokeStyle(opts.xAxis.scrollColor || "#A6A6A6");
-    context.moveTo(startX + scrollLeft, scrollY);
-    context.lineTo(startX + scrollLeft + scrollWidth, scrollY);
-    context.stroke();
-    context.closePath();
-    context.setLineCap('butt');
-  }
-  context.save();
-  if (opts._scrollDistance_ && opts._scrollDistance_ !== 0) {
-    context.translate(opts._scrollDistance_, 0);
-  }
-  //缁樺埗X杞村埢搴︾嚎
-  if (opts.xAxis.calibration === true) {
-    context.setStrokeStyle(opts.xAxis.gridColor || "#cccccc");
-    context.setLineCap('butt');
-    context.setLineWidth(1 * opts.pix);
-    xAxisPoints.forEach(function (item, index) {
-      if (index > 0) {
-        context.beginPath();
-        context.moveTo(item - eachSpacing / 2, startY);
-        context.lineTo(item - eachSpacing / 2, startY + 3 * opts.pix);
-        context.closePath();
-        context.stroke();
-      }
-    });
-  }
-  //缁樺埗X杞寸綉鏍�
-  if (opts.xAxis.disableGrid !== true) {
-    context.setStrokeStyle(opts.xAxis.gridColor || "#cccccc");
-    context.setLineCap('butt');
-    context.setLineWidth(1 * opts.pix);
-    if (opts.xAxis.gridType == 'dash') {
-      context.setLineDash([opts.xAxis.dashLength * opts.pix, opts.xAxis.dashLength * opts.pix]);
-    }
-    opts.xAxis.gridEval = opts.xAxis.gridEval || 1;
-    xAxisPoints.forEach(function (item, index) {
-      if (index % opts.xAxis.gridEval == 0) {
-        context.beginPath();
-        context.moveTo(item, startY);
-        context.lineTo(item, endY);
-        context.stroke();
-      }
-    });
-    context.setLineDash([]);
-  }
-  //缁樺埗X杞存枃妗�
-  if (opts.xAxis.disabled !== true) {
-    // 瀵筙杞村垪琛ㄥ仛鎶界█澶勭悊
-    //榛樿鍏ㄩ儴鏄剧ずX杞存爣绛�
-    var maxXAxisListLength = categories.length;
-    //濡傛灉璁剧疆浜哫杞村崟灞忔暟閲�
-    if (opts.xAxis.labelCount) {
-      //濡傛灉璁剧疆X杞村瘑搴�
-      if (opts.xAxis.itemCount) {
-        maxXAxisListLength = Math.ceil(categories.length / opts.xAxis.itemCount * opts.xAxis.labelCount);
-      } else {
-        maxXAxisListLength = opts.xAxis.labelCount;
-      }
-      maxXAxisListLength -= 1;
-    }
-
-    var ratio = Math.ceil(categories.length / maxXAxisListLength);
-
-    var newCategories = [];
-    var cgLength = categories.length;
-    for (var i = 0; i < cgLength; i++) {
-      if (i % ratio !== 0) {
-        newCategories.push("");
-      } else {
-        newCategories.push(categories[i]);
-      }
-    }
-    newCategories[cgLength - 1] = categories[cgLength - 1];
-    var xAxisFontSize = opts.xAxis.fontSize * opts.pix || config.fontSize;
-    if (config._xAxisTextAngle_ === 0) {
-      newCategories.forEach(function (item, index) {
-        var xitem = opts.xAxis.formatter ? opts.xAxis.formatter(item) : item;
-        var offset = -measureText(String(xitem), xAxisFontSize, context) / 2;
-        if (boundaryGap == 'center') {
-          offset += eachSpacing / 2;
-        }
-        var scrollHeight = 0;
-        if (opts.xAxis.scrollShow) {
-          scrollHeight = 6 * opts.pix;
-        }
-        context.beginPath();
-        context.setFontSize(xAxisFontSize);
-        context.setFillStyle(opts.xAxis.fontColor || opts.fontColor);
-        context.fillText(String(xitem), xAxisPoints[index] + offset, startY + xAxisFontSize + (config.xAxisHeight - scrollHeight - xAxisFontSize) / 2);
-        context.closePath();
-        context.stroke();
-      });
-    } else {
-      newCategories.forEach(function (item, index) {
-        var xitem = opts.xAxis.formatter ? opts.xAxis.formatter(item) : item;
-        context.save();
-        context.beginPath();
-        context.setFontSize(xAxisFontSize);
-        context.setFillStyle(opts.xAxis.fontColor || opts.fontColor);
-        var textWidth = measureText(String(xitem), xAxisFontSize, context);
-        var offset = -textWidth;
-        if (boundaryGap == 'center') {
-          offset += eachSpacing / 2;
-        }
-        var _calRotateTranslate = calRotateTranslate(xAxisPoints[index] + eachSpacing / 2, startY + xAxisFontSize / 2 + 5, opts.height),
-        transX = _calRotateTranslate.transX,
-        transY = _calRotateTranslate.transY;
-
-        context.rotate(-1 * config._xAxisTextAngle_);
-        context.translate(transX, transY);
-        context.fillText(String(xitem), xAxisPoints[index] + offset, startY + xAxisFontSize + 5);
-        context.closePath();
-        context.stroke();
-        context.restore();
-      });
-    }
-  }
-  context.restore();
-  //缁樺埗X杞磋酱绾�
-  if (opts.xAxis.axisLine) {
-    context.beginPath();
-    context.setStrokeStyle(opts.xAxis.axisLineColor);
-    context.setLineWidth(1 * opts.pix);
-    context.moveTo(startX, opts.height - opts.area[2]);
-    context.lineTo(endX, opts.height - opts.area[2]);
-    context.stroke();
-  }
-}
-
-function drawYAxisGrid(categories, opts, config, context) {
-  if (opts.yAxis.disableGrid === true) {
-    return;
-  }
-  var spacingValid = opts.height - opts.area[0] - opts.area[2];
-  var eachSpacing = spacingValid / opts.yAxis.splitNumber;
-  var startX = opts.area[3];
-  var xAxisPoints = opts.chartData.xAxisData.xAxisPoints,
-  xAxiseachSpacing = opts.chartData.xAxisData.eachSpacing;
-  var TotalWidth = xAxiseachSpacing * (xAxisPoints.length - 1);
-  var endX = startX + TotalWidth;
-  var points = [];
-  var startY = 1;
-  if (opts.xAxis.axisLine === false) {
-    startY = 0;
-  }
-  for (var i = startY; i < opts.yAxis.splitNumber + 1; i++) {
-    points.push(opts.height - opts.area[2] - eachSpacing * i);
-  }
-  context.save();
-  if (opts._scrollDistance_ && opts._scrollDistance_ !== 0) {
-    context.translate(opts._scrollDistance_, 0);
-  }
-  if (opts.yAxis.gridType == 'dash') {
-    context.setLineDash([opts.yAxis.dashLength * opts.pix, opts.yAxis.dashLength * opts.pix]);
-  }
-  context.setStrokeStyle(opts.yAxis.gridColor);
-  context.setLineWidth(1 * opts.pix);
-  points.forEach(function (item, index) {
-    context.beginPath();
-    context.moveTo(startX, item);
-    context.lineTo(endX, item);
-    context.stroke();
-  });
-  context.setLineDash([]);
-  context.restore();
-}
-
-function drawYAxis(series, opts, config, context) {
-  if (opts.yAxis.disabled === true) {
-    return;
-  }
-  var spacingValid = opts.height - opts.area[0] - opts.area[2];
-  var eachSpacing = spacingValid / opts.yAxis.splitNumber;
-  var startX = opts.area[3];
-  var endX = opts.width - opts.area[1];
-  var endY = opts.height - opts.area[2];
-  var fillEndY = endY + config.xAxisHeight;
-  if (opts.xAxis.scrollShow) {
-    fillEndY -= 3 * opts.pix;
-  }
-  if (opts.xAxis.rotateLabel) {
-    fillEndY = opts.height - opts.area[2] + opts.fontSize * opts.pix / 2;
-  }
-  // set YAxis background
-  context.beginPath();
-  context.setFillStyle(opts.background);
-  if (opts.enableScroll == true && opts.xAxis.scrollPosition && opts.xAxis.scrollPosition !== 'left') {
-    context.fillRect(0, 0, startX, fillEndY);
-  }
-  if (opts.enableScroll == true && opts.xAxis.scrollPosition && opts.xAxis.scrollPosition !== 'right') {
-    context.fillRect(endX, 0, opts.width, fillEndY);
-  }
-  context.closePath();
-  context.stroke();
-
-  var tStartLeft = opts.area[3];
-  var tStartRight = opts.width - opts.area[1];
-  var tStartCenter = opts.area[3] + (opts.width - opts.area[1] - opts.area[3]) / 2;
-  if (opts.yAxis.data) {var _loop4 = function _loop4(
-    i) {
-      var yData = opts.yAxis.data[i];
-      points = [];
-      if (yData.type === 'categories') {
-        for (var _i21 = 0; _i21 <= yData.categories.length; _i21++) {
-          points.push(opts.area[0] + spacingValid / yData.categories.length / 2 + spacingValid / yData.categories.length * _i21);
-        }
-      } else {
-        for (var _i22 = 0; _i22 <= opts.yAxis.splitNumber; _i22++) {
-          points.push(opts.area[0] + eachSpacing * _i22);
-        }
-      }
-      if (yData.disabled !== true) {
-        var rangesFormat = opts.chartData.yAxisData.rangesFormat[i];
-        var yAxisFontSize = yData.fontSize ? yData.fontSize * opts.pix : config.fontSize;
-        var yAxisWidth = opts.chartData.yAxisData.yAxisWidth[i];
-        var textAlign = yData.textAlign || "right";
-        //鐢籝杞村埢搴﹀強鏂囨
-        rangesFormat.forEach(function (item, index) {
-          var pos = points[index] ? points[index] : endY;
-          context.beginPath();
-          context.setFontSize(yAxisFontSize);
-          context.setLineWidth(1 * opts.pix);
-          context.setStrokeStyle(yData.axisLineColor || '#cccccc');
-          context.setFillStyle(yData.fontColor || opts.fontColor);
-          var tmpstrat = 0;
-          var gapwidth = 4 * opts.pix;
-          if (yAxisWidth.position == 'left') {
-            //鐢诲埢搴︾嚎
-            if (yData.calibration == true) {
-              context.moveTo(tStartLeft, pos);
-              context.lineTo(tStartLeft - 3 * opts.pix, pos);
-              gapwidth += 3 * opts.pix;
-            }
-            //鐢绘枃瀛�
-            switch (textAlign) {
-              case "left":
-                context.setTextAlign('left');
-                tmpstrat = tStartLeft - yAxisWidth.width;
-                break;
-              case "right":
-                context.setTextAlign('right');
-                tmpstrat = tStartLeft - gapwidth;
-                break;
-              default:
-                context.setTextAlign('center');
-                tmpstrat = tStartLeft - yAxisWidth.width / 2;}
-
-            context.fillText(String(item), tmpstrat, pos + yAxisFontSize / 2 - 3 * opts.pix);
-
-          } else if (yAxisWidth.position == 'right') {
-            //鐢诲埢搴︾嚎
-            if (yData.calibration == true) {
-              context.moveTo(tStartRight, pos);
-              context.lineTo(tStartRight + 3 * opts.pix, pos);
-              gapwidth += 3 * opts.pix;
-            }
-            switch (textAlign) {
-              case "left":
-                context.setTextAlign('left');
-                tmpstrat = tStartRight + gapwidth;
-                break;
-              case "right":
-                context.setTextAlign('right');
-                tmpstrat = tStartRight + yAxisWidth.width;
-                break;
-              default:
-                context.setTextAlign('center');
-                tmpstrat = tStartRight + yAxisWidth.width / 2;}
-
-            context.fillText(String(item), tmpstrat, pos + yAxisFontSize / 2 - 3 * opts.pix);
-          } else if (yAxisWidth.position == 'center') {
-            //鐢诲埢搴︾嚎
-            if (yData.calibration == true) {
-              context.moveTo(tStartCenter, pos);
-              context.lineTo(tStartCenter - 3 * opts.pix, pos);
-              gapwidth += 3 * opts.pix;
-            }
-            //鐢绘枃瀛�
-            switch (textAlign) {
-              case "left":
-                context.setTextAlign('left');
-                tmpstrat = tStartCenter - yAxisWidth.width;
-                break;
-              case "right":
-                context.setTextAlign('right');
-                tmpstrat = tStartCenter - gapwidth;
-                break;
-              default:
-                context.setTextAlign('center');
-                tmpstrat = tStartCenter - yAxisWidth.width / 2;}
-
-            context.fillText(String(item), tmpstrat, pos + yAxisFontSize / 2 - 3 * opts.pix);
-          }
-          context.closePath();
-          context.stroke();
-          context.setTextAlign('left');
-        });
-        //鐢籝杞磋酱绾�
-        if (yData.axisLine !== false) {
-          context.beginPath();
-          context.setStrokeStyle(yData.axisLineColor || '#cccccc');
-          context.setLineWidth(1 * opts.pix);
-          if (yAxisWidth.position == 'left') {
-            context.moveTo(tStartLeft, opts.height - opts.area[2]);
-            context.lineTo(tStartLeft, opts.area[0]);
-          } else if (yAxisWidth.position == 'right') {
-            context.moveTo(tStartRight, opts.height - opts.area[2]);
-            context.lineTo(tStartRight, opts.area[0]);
-          } else if (yAxisWidth.position == 'center') {
-            context.moveTo(tStartCenter, opts.height - opts.area[2]);
-            context.lineTo(tStartCenter, opts.area[0]);
-          }
-          context.stroke();
-        }
-        //鐢籝杞存爣棰�
-        if (opts.yAxis.showTitle) {
-          var titleFontSize = yData.titleFontSize * opts.pix || config.fontSize;
-          var title = yData.title;
-          context.beginPath();
-          context.setFontSize(titleFontSize);
-          context.setFillStyle(yData.titleFontColor || opts.fontColor);
-          if (yAxisWidth.position == 'left') {
-            context.fillText(title, tStartLeft - measureText(title, titleFontSize, context) / 2 + (yData.titleOffsetX || 0), opts.area[0] - (10 - (yData.titleOffsetY || 0)) * opts.pix);
-          } else if (yAxisWidth.position == 'right') {
-            context.fillText(title, tStartRight - measureText(title, titleFontSize, context) / 2 + (yData.titleOffsetX || 0), opts.area[0] - (10 - (yData.titleOffsetY || 0)) * opts.pix);
-          } else if (yAxisWidth.position == 'center') {
-            context.fillText(title, tStartCenter - measureText(title, titleFontSize, context) / 2 + (yData.titleOffsetX || 0), opts.area[0] - (10 - (yData.titleOffsetY || 0)) * opts.pix);
-          }
-          context.closePath();
-          context.stroke();
-        }
-        if (yAxisWidth.position == 'left') {
-          tStartLeft -= yAxisWidth.width + opts.yAxis.padding * opts.pix;
-        } else {
-          tStartRight += yAxisWidth.width + opts.yAxis.padding * opts.pix;
-        }
-      }};for (var i = 0; i < opts.yAxis.data.length; i++) {var points;_loop4(i);
-    }
-  }
-
-}
-
-function drawLegend(series, opts, config, context, chartData) {
-  if (opts.legend.show === false) {
-    return;
-  }
-  var legendData = chartData.legendData;
-  var legendList = legendData.points;
-  var legendArea = legendData.area;
-  var padding = opts.legend.padding * opts.pix;
-  var fontSize = opts.legend.fontSize * opts.pix;
-  var shapeWidth = 15 * opts.pix;
-  var shapeRight = 5 * opts.pix;
-  var itemGap = opts.legend.itemGap * opts.pix;
-  var lineHeight = Math.max(opts.legend.lineHeight * opts.pix, fontSize);
-  //鐢昏儗鏅強杈规
-  context.beginPath();
-  context.setLineWidth(opts.legend.borderWidth * opts.pix);
-  context.setStrokeStyle(opts.legend.borderColor);
-  context.setFillStyle(opts.legend.backgroundColor);
-  context.moveTo(legendArea.start.x, legendArea.start.y);
-  context.rect(legendArea.start.x, legendArea.start.y, legendArea.width, legendArea.height);
-  context.closePath();
-  context.fill();
-  context.stroke();
-  legendList.forEach(function (itemList, listIndex) {
-    var width = 0;
-    var height = 0;
-    width = legendData.widthArr[listIndex];
-    height = legendData.heightArr[listIndex];
-    var startX = 0;
-    var startY = 0;
-    if (opts.legend.position == 'top' || opts.legend.position == 'bottom') {
-      switch (opts.legend.float) {
-        case 'left':
-          startX = legendArea.start.x + padding;
-          break;
-        case 'right':
-          startX = legendArea.start.x + legendArea.width - width;
-          break;
-        default:
-          startX = legendArea.start.x + (legendArea.width - width) / 2;}
-
-      startY = legendArea.start.y + padding + listIndex * lineHeight;
-    } else {
-      if (listIndex == 0) {
-        width = 0;
-      } else {
-        width = legendData.widthArr[listIndex - 1];
-      }
-      startX = legendArea.start.x + padding + width;
-      startY = legendArea.start.y + padding + (legendArea.height - height) / 2;
-    }
-    context.setFontSize(config.fontSize);
-    for (var i = 0; i < itemList.length; i++) {
-      var item = itemList[i];
-      item.area = [0, 0, 0, 0];
-      item.area[0] = startX;
-      item.area[1] = startY;
-      item.area[3] = startY + lineHeight;
-      context.beginPath();
-      context.setLineWidth(1 * opts.pix);
-      context.setStrokeStyle(item.show ? item.color : opts.legend.hiddenColor);
-      context.setFillStyle(item.show ? item.color : opts.legend.hiddenColor);
-      switch (item.legendShape) {
-        case 'line':
-          context.moveTo(startX, startY + 0.5 * lineHeight - 2 * opts.pix);
-          context.fillRect(startX, startY + 0.5 * lineHeight - 2 * opts.pix, 15 * opts.pix, 4 * opts.pix);
-          break;
-        case 'triangle':
-          context.moveTo(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight - 5 * opts.pix);
-          context.lineTo(startX + 2.5 * opts.pix, startY + 0.5 * lineHeight + 5 * opts.pix);
-          context.lineTo(startX + 12.5 * opts.pix, startY + 0.5 * lineHeight + 5 * opts.pix);
-          context.lineTo(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight - 5 * opts.pix);
-          break;
-        case 'diamond':
-          context.moveTo(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight - 5 * opts.pix);
-          context.lineTo(startX + 2.5 * opts.pix, startY + 0.5 * lineHeight);
-          context.lineTo(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight + 5 * opts.pix);
-          context.lineTo(startX + 12.5 * opts.pix, startY + 0.5 * lineHeight);
-          context.lineTo(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight - 5 * opts.pix);
-          break;
-        case 'circle':
-          context.moveTo(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight);
-          context.arc(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight, 5 * opts.pix, 0, 2 * Math.PI);
-          break;
-        case 'rect':
-          context.moveTo(startX, startY + 0.5 * lineHeight - 5 * opts.pix);
-          context.fillRect(startX, startY + 0.5 * lineHeight - 5 * opts.pix, 15 * opts.pix, 10 * opts.pix);
-          break;
-        case 'square':
-          context.moveTo(startX + 5 * opts.pix, startY + 0.5 * lineHeight - 5 * opts.pix);
-          context.fillRect(startX + 5 * opts.pix, startY + 0.5 * lineHeight - 5 * opts.pix, 10 * opts.pix, 10 * opts.pix);
-          break;
-        case 'none':
-          break;
-        default:
-          context.moveTo(startX, startY + 0.5 * lineHeight - 5 * opts.pix);
-          context.fillRect(startX, startY + 0.5 * lineHeight - 5 * opts.pix, 15 * opts.pix, 10 * opts.pix);}
-
-      context.closePath();
-      context.fill();
-      context.stroke();
-      startX += shapeWidth + shapeRight;
-      var fontTrans = 0.5 * lineHeight + 0.5 * fontSize - 2;
-      context.beginPath();
-      context.setFontSize(fontSize);
-      context.setFillStyle(item.show ? opts.legend.fontColor : opts.legend.hiddenColor);
-      context.fillText(item.name, startX, startY + fontTrans);
-      context.closePath();
-      context.stroke();
-      if (opts.legend.position == 'top' || opts.legend.position == 'bottom') {
-        startX += measureText(item.name, fontSize, context) + itemGap;
-        item.area[2] = startX;
-      } else {
-        item.area[2] = startX + measureText(item.name, fontSize, context) + itemGap;;
-        startX -= shapeWidth + shapeRight;
-        startY += lineHeight;
-      }
-    }
-  });
-}
-
-function drawPieDataPoints(series, opts, config, context) {
-  var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;
-  var pieOption = assign({}, {
-    activeOpacity: 0.5,
-    activeRadius: 10,
-    offsetAngle: 0,
-    labelWidth: 15,
-    ringWidth: 30,
-    customRadius: 0,
-    border: false,
-    borderWidth: 2,
-    borderColor: '#FFFFFF',
-    centerColor: '#FFFFFF',
-    linearType: 'none',
-    customColor: [] },
-  opts.type == "pie" ? opts.extra.pie : opts.extra.ring);
-  var centerPosition = {
-    x: opts.area[3] + (opts.width - opts.area[1] - opts.area[3]) / 2,
-    y: opts.area[0] + (opts.height - opts.area[0] - opts.area[2]) / 2 };
-
-  if (config.pieChartLinePadding == 0) {
-    config.pieChartLinePadding = pieOption.activeRadius * opts.pix;
-  }
-
-  var radius = Math.min((opts.width - opts.area[1] - opts.area[3]) / 2 - config.pieChartLinePadding - config.pieChartTextPadding - config._pieTextMaxLength_, (opts.height - opts.area[0] - opts.area[2]) / 2 - config.pieChartLinePadding - config.pieChartTextPadding);
-  if (pieOption.customRadius > 0) {
-    radius = pieOption.customRadius * opts.pix;
-  }
-  series = getPieDataPoints(series, radius, process);
-  var activeRadius = pieOption.activeRadius * opts.pix;
-  pieOption.customColor = fillCustomColor(pieOption.linearType, pieOption.customColor, series, config);
-  series = series.map(function (eachSeries) {
-    eachSeries._start_ += pieOption.offsetAngle * Math.PI / 180;
-    return eachSeries;
-  });
-  series.forEach(function (eachSeries, seriesIndex) {
-    if (opts.tooltip) {
-      if (opts.tooltip.index == seriesIndex) {
-        context.beginPath();
-        context.setFillStyle(hexToRgb(eachSeries.color, pieOption.activeOpacity || 0.5));
-        context.moveTo(centerPosition.x, centerPosition.y);
-        context.arc(centerPosition.x, centerPosition.y, eachSeries._radius_ + activeRadius, eachSeries._start_, eachSeries._start_ + 2 * eachSeries._proportion_ * Math.PI);
-        context.closePath();
-        context.fill();
-      }
-    }
-    context.beginPath();
-    context.setLineWidth(pieOption.borderWidth * opts.pix);
-    context.lineJoin = "round";
-    context.setStrokeStyle(pieOption.borderColor);
-    var fillcolor = eachSeries.color;
-    if (pieOption.linearType == 'custom') {
-      var grd;
-      if (context.createCircularGradient) {
-        grd = context.createCircularGradient(centerPosition.x, centerPosition.y, eachSeries._radius_);
-      } else {
-        grd = context.createRadialGradient(centerPosition.x, centerPosition.y, 0, centerPosition.x, centerPosition.y, eachSeries._radius_);
-      }
-      grd.addColorStop(0, hexToRgb(pieOption.customColor[eachSeries.linearIndex], 1));
-      grd.addColorStop(1, hexToRgb(eachSeries.color, 1));
-      fillcolor = grd;
-    }
-    context.setFillStyle(fillcolor);
-    context.moveTo(centerPosition.x, centerPosition.y);
-    context.arc(centerPosition.x, centerPosition.y, eachSeries._radius_, eachSeries._start_, eachSeries._start_ + 2 * eachSeries._proportion_ * Math.PI);
-    context.closePath();
-    context.fill();
-    if (pieOption.border == true) {
-      context.stroke();
-    }
-  });
-  if (opts.type === 'ring') {
-    var innerPieWidth = radius * 0.6;
-    if (typeof pieOption.ringWidth === 'number' && pieOption.ringWidth > 0) {
-      innerPieWidth = Math.max(0, radius - pieOption.ringWidth * opts.pix);
-    }
-    context.beginPath();
-    context.setFillStyle(pieOption.centerColor);
-    context.moveTo(centerPosition.x, centerPosition.y);
-    context.arc(centerPosition.x, centerPosition.y, innerPieWidth, 0, 2 * Math.PI);
-    context.closePath();
-    context.fill();
-  }
-  if (opts.dataLabel !== false && process === 1) {
-    var valid = false;
-    for (var i = 0, len = series.length; i < len; i++) {
-      if (series[i].data > 0) {
-        valid = true;
-        break;
-      }
-    }
-    if (valid) {
-      drawPieText(series, opts, config, context, radius, centerPosition);
-    }
-  }
-  if (process === 1 && opts.type === 'ring') {
-    drawRingTitle(opts, config, context, centerPosition);
-  }
-  return {
-    center: centerPosition,
-    radius: radius,
-    series: series };
-
-}
-
-function drawRoseDataPoints(series, opts, config, context) {
-  var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;
-  var roseOption = assign({}, {
-    type: 'area',
-    activeOpacity: 0.5,
-    activeRadius: 10,
-    offsetAngle: 0,
-    labelWidth: 15,
-    border: false,
-    borderWidth: 2,
-    borderColor: '#FFFFFF',
-    linearType: 'none',
-    customColor: [] },
-  opts.extra.rose);
-  if (config.pieChartLinePadding == 0) {
-    config.pieChartLinePadding = roseOption.activeRadius * opts.pix;
-  }
-  var centerPosition = {
-    x: opts.area[3] + (opts.width - opts.area[1] - opts.area[3]) / 2,
-    y: opts.area[0] + (opts.height - opts.area[0] - opts.area[2]) / 2 };
-
-  var radius = Math.min((opts.width - opts.area[1] - opts.area[3]) / 2 - config.pieChartLinePadding - config.pieChartTextPadding - config._pieTextMaxLength_, (opts.height - opts.area[0] - opts.area[2]) / 2 - config.pieChartLinePadding - config.pieChartTextPadding);
-  var minRadius = roseOption.minRadius || radius * 0.5;
-  series = getRoseDataPoints(series, roseOption.type, minRadius, radius, process);
-  var activeRadius = roseOption.activeRadius * opts.pix;
-  roseOption.customColor = fillCustomColor(roseOption.linearType, roseOption.customColor, series, config);
-  series = series.map(function (eachSeries) {
-    eachSeries._start_ += (roseOption.offsetAngle || 0) * Math.PI / 180;
-    return eachSeries;
-  });
-  series.forEach(function (eachSeries, seriesIndex) {
-    if (opts.tooltip) {
-      if (opts.tooltip.index == seriesIndex) {
-        context.beginPath();
-        context.setFillStyle(hexToRgb(eachSeries.color, roseOption.activeOpacity || 0.5));
-        context.moveTo(centerPosition.x, centerPosition.y);
-        context.arc(centerPosition.x, centerPosition.y, activeRadius + eachSeries._radius_, eachSeries._start_, eachSeries._start_ + 2 * eachSeries._rose_proportion_ * Math.PI);
-        context.closePath();
-        context.fill();
-      }
-    }
-    context.beginPath();
-    context.setLineWidth(roseOption.borderWidth * opts.pix);
-    context.lineJoin = "round";
-    context.setStrokeStyle(roseOption.borderColor);
-    var fillcolor = eachSeries.color;
-    if (roseOption.linearType == 'custom') {
-      var grd;
-      if (context.createCircularGradient) {
-        grd = context.createCircularGradient(centerPosition.x, centerPosition.y, eachSeries._radius_);
-      } else {
-        grd = context.createRadialGradient(centerPosition.x, centerPosition.y, 0, centerPosition.x, centerPosition.y, eachSeries._radius_);
-      }
-      grd.addColorStop(0, hexToRgb(roseOption.customColor[eachSeries.linearIndex], 1));
-      grd.addColorStop(1, hexToRgb(eachSeries.color, 1));
-      fillcolor = grd;
-    }
-    context.setFillStyle(fillcolor);
-    context.moveTo(centerPosition.x, centerPosition.y);
-    context.arc(centerPosition.x, centerPosition.y, eachSeries._radius_, eachSeries._start_, eachSeries._start_ + 2 * eachSeries._rose_proportion_ * Math.PI);
-    context.closePath();
-    context.fill();
-    if (roseOption.border == true) {
-      context.stroke();
-    }
-  });
-
-  if (opts.dataLabel !== false && process === 1) {
-    var valid = false;
-    for (var i = 0, len = series.length; i < len; i++) {
-      if (series[i].data > 0) {
-        valid = true;
-        break;
-      }
-    }
-    if (valid) {
-      drawPieText(series, opts, config, context, radius, centerPosition);
-    }
-  }
-  return {
-    center: centerPosition,
-    radius: radius,
-    series: series };
-
-}
-
-function drawArcbarDataPoints(series, opts, config, context) {
-  var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;
-  var arcbarOption = assign({}, {
-    startAngle: 0.75,
-    endAngle: 0.25,
-    type: 'default',
-    width: 12,
-    gap: 2,
-    linearType: 'none',
-    customColor: [] },
-  opts.extra.arcbar);
-  series = getArcbarDataPoints(series, arcbarOption, process);
-  var centerPosition;
-  if (arcbarOption.centerX || arcbarOption.centerY) {
-    centerPosition = {
-      x: arcbarOption.centerX ? arcbarOption.centerX : opts.width / 2,
-      y: arcbarOption.centerY ? arcbarOption.centerY : opts.height / 2 };
-
-  } else {
-    centerPosition = {
-      x: opts.width / 2,
-      y: opts.height / 2 };
-
-  }
-  var radius;
-  if (arcbarOption.radius) {
-    radius = arcbarOption.radius;
-  } else {
-    radius = Math.min(centerPosition.x, centerPosition.y);
-    radius -= 5 * opts.pix;
-    radius -= arcbarOption.width / 2;
-  }
-  arcbarOption.customColor = fillCustomColor(arcbarOption.linearType, arcbarOption.customColor, series, config);
-
-  for (var i = 0; i < series.length; i++) {
-    var eachSeries = series[i];
-    //鑳屾櫙棰滆壊
-    context.setLineWidth(arcbarOption.width * opts.pix);
-    context.setStrokeStyle(arcbarOption.backgroundColor || '#E9E9E9');
-    context.setLineCap('round');
-    context.beginPath();
-    if (arcbarOption.type == 'default') {
-      context.arc(centerPosition.x, centerPosition.y, radius - (arcbarOption.width * opts.pix + arcbarOption.gap * opts.pix) * i, arcbarOption.startAngle * Math.PI, arcbarOption.endAngle * Math.PI, false);
-    } else {
-      context.arc(centerPosition.x, centerPosition.y, radius - (arcbarOption.width * opts.pix + arcbarOption.gap * opts.pix) * i, 0, 2 * Math.PI, false);
-    }
-    context.stroke();
-    //杩涘害鏉�
-    var fillColor = eachSeries.color;
-    if (arcbarOption.linearType == 'custom') {
-      var grd = context.createLinearGradient(centerPosition.x - radius, centerPosition.y, centerPosition.x + radius, centerPosition.y);
-      grd.addColorStop(1, hexToRgb(arcbarOption.customColor[eachSeries.linearIndex], 1));
-      grd.addColorStop(0, hexToRgb(eachSeries.color, 1));
-      fillColor = grd;
-    }
-    context.setLineWidth(arcbarOption.width * opts.pix);
-    context.setStrokeStyle(fillColor);
-    context.setLineCap('round');
-    context.beginPath();
-    context.arc(centerPosition.x, centerPosition.y, radius - (arcbarOption.width * opts.pix + arcbarOption.gap * opts.pix) * i, arcbarOption.startAngle * Math.PI, eachSeries._proportion_ * Math.PI, false);
-    context.stroke();
-  }
-  drawRingTitle(opts, config, context, centerPosition);
-  return {
-    center: centerPosition,
-    radius: radius,
-    series: series };
-
-}
-
-function drawGaugeDataPoints(categories, series, opts, config, context) {
-  var process = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 1;
-  var gaugeOption = assign({}, {
-    type: 'default',
-    startAngle: 0.75,
-    endAngle: 0.25,
-    width: 15,
-    labelOffset: 13,
-    splitLine: {
-      fixRadius: 0,
-      splitNumber: 10,
-      width: 15,
-      color: '#FFFFFF',
-      childNumber: 5,
-      childWidth: 5 },
-
-    pointer: {
-      width: 15,
-      color: 'auto' } },
-
-  opts.extra.gauge);
-  if (gaugeOption.oldAngle == undefined) {
-    gaugeOption.oldAngle = gaugeOption.startAngle;
-  }
-  if (gaugeOption.oldData == undefined) {
-    gaugeOption.oldData = 0;
-  }
-  categories = getGaugeAxisPoints(categories, gaugeOption.startAngle, gaugeOption.endAngle);
-  var centerPosition = {
-    x: opts.width / 2,
-    y: opts.height / 2 };
-
-  var radius = Math.min(centerPosition.x, centerPosition.y);
-  radius -= 5 * opts.pix;
-  radius -= gaugeOption.width / 2;
-  var innerRadius = radius - gaugeOption.width;
-  var totalAngle = 0;
-  //鍒ゆ柇浠〃鐩樼殑鏍峰紡锛歞efault鐧惧害鏍峰紡锛宲rogress鏂版牱寮�
-  if (gaugeOption.type == 'progress') {
-    //## 绗竴姝ョ敾涓績鍦嗗舰鑳屾櫙鍜岃繘搴︽潯鑳屾櫙
-    //涓績鍦嗗舰鑳屾櫙
-    var pieRadius = radius - gaugeOption.width * 3;
-    context.beginPath();
-    var gradient = context.createLinearGradient(centerPosition.x, centerPosition.y - pieRadius, centerPosition.x, centerPosition.y + pieRadius);
-    //閰嶇疆娓愬彉濉厖锛堣捣鐐癸細涓績鐐瑰悜涓婂噺鍗婂緞锛涚粨鏉熺偣涓績鐐瑰悜涓嬪姞鍗婂緞锛�
-    gradient.addColorStop('0', hexToRgb(series[0].color, 0.3));
-    gradient.addColorStop('1.0', hexToRgb("#FFFFFF", 0.1));
-    context.setFillStyle(gradient);
-    context.arc(centerPosition.x, centerPosition.y, pieRadius, 0, 2 * Math.PI, false);
-    context.fill();
-    //鐢昏繘搴︽潯鑳屾櫙
-    context.setLineWidth(gaugeOption.width);
-    context.setStrokeStyle(hexToRgb(series[0].color, 0.3));
-    context.setLineCap('round');
-    context.beginPath();
-    context.arc(centerPosition.x, centerPosition.y, innerRadius, gaugeOption.startAngle * Math.PI, gaugeOption.endAngle * Math.PI, false);
-    context.stroke();
-    //## 绗簩姝ョ敾鍒诲害绾�
-    totalAngle = gaugeOption.startAngle - gaugeOption.endAngle + 1;
-    var splitAngle = totalAngle / gaugeOption.splitLine.splitNumber;
-    var childAngle = totalAngle / gaugeOption.splitLine.splitNumber / gaugeOption.splitLine.childNumber;
-    var startX = -radius - gaugeOption.width * 0.5 - gaugeOption.splitLine.fixRadius;
-    var endX = -radius - gaugeOption.width - gaugeOption.splitLine.fixRadius + gaugeOption.splitLine.width;
-    context.save();
-    context.translate(centerPosition.x, centerPosition.y);
-    context.rotate((gaugeOption.startAngle - 1) * Math.PI);
-    var len = gaugeOption.splitLine.splitNumber * gaugeOption.splitLine.childNumber + 1;
-    var proc = series[0].data * process;
-    for (var i = 0; i < len; i++) {
-      context.beginPath();
-      //鍒诲害绾块殢杩涘害鍙樿壊
-      if (proc > i / len) {
-        context.setStrokeStyle(hexToRgb(series[0].color, 1));
-      } else {
-        context.setStrokeStyle(hexToRgb(series[0].color, 0.3));
-      }
-      context.setLineWidth(3 * opts.pix);
-      context.moveTo(startX, 0);
-      context.lineTo(endX, 0);
-      context.stroke();
-      context.rotate(childAngle * Math.PI);
-    }
-    context.restore();
-    //## 绗笁姝ョ敾杩涘害鏉�
-    series = getArcbarDataPoints(series, gaugeOption, process);
-    context.setLineWidth(gaugeOption.width);
-    context.setStrokeStyle(series[0].color);
-    context.setLineCap('round');
-    context.beginPath();
-    context.arc(centerPosition.x, centerPosition.y, innerRadius, gaugeOption.startAngle * Math.PI, series[0]._proportion_ * Math.PI, false);
-    context.stroke();
-    //## 绗洓姝ョ敾鎸囬拡
-    var pointerRadius = radius - gaugeOption.width * 2.5;
-    context.save();
-    context.translate(centerPosition.x, centerPosition.y);
-    context.rotate((series[0]._proportion_ - 1) * Math.PI);
-    context.beginPath();
-    context.setLineWidth(gaugeOption.width / 3);
-    var gradient3 = context.createLinearGradient(0, -pointerRadius * 0.6, 0, pointerRadius * 0.6);
-    gradient3.addColorStop('0', hexToRgb('#FFFFFF', 0));
-    gradient3.addColorStop('0.5', hexToRgb(series[0].color, 1));
-    gradient3.addColorStop('1.0', hexToRgb('#FFFFFF', 0));
-    context.setStrokeStyle(gradient3);
-    context.arc(0, 0, pointerRadius, 0.85 * Math.PI, 1.15 * Math.PI, false);
-    context.stroke();
-    context.beginPath();
-    context.setLineWidth(1);
-    context.setStrokeStyle(series[0].color);
-    context.setFillStyle(series[0].color);
-    context.moveTo(-pointerRadius - gaugeOption.width / 3 / 2, -4);
-    context.lineTo(-pointerRadius - gaugeOption.width / 3 / 2 - 4, 0);
-    context.lineTo(-pointerRadius - gaugeOption.width / 3 / 2, 4);
-    context.lineTo(-pointerRadius - gaugeOption.width / 3 / 2, -4);
-    context.stroke();
-    context.fill();
-    context.restore();
-    //default鐧惧害鏍峰紡
-  } else {
-    //鐢昏儗鏅�
-    context.setLineWidth(gaugeOption.width);
-    context.setLineCap('butt');
-    for (var _i23 = 0; _i23 < categories.length; _i23++) {
-      var eachCategories = categories[_i23];
-      context.beginPath();
-      context.setStrokeStyle(eachCategories.color);
-      context.arc(centerPosition.x, centerPosition.y, radius, eachCategories._startAngle_ * Math.PI, eachCategories._endAngle_ * Math.PI, false);
-      context.stroke();
-    }
-    context.save();
-    //鐢诲埢搴︾嚎
-    totalAngle = gaugeOption.startAngle - gaugeOption.endAngle + 1;
-    var _splitAngle = totalAngle / gaugeOption.splitLine.splitNumber;
-    var _childAngle = totalAngle / gaugeOption.splitLine.splitNumber / gaugeOption.splitLine.childNumber;
-    var _startX2 = -radius - gaugeOption.width * 0.5 - gaugeOption.splitLine.fixRadius;
-    var _endX = -radius - gaugeOption.width * 0.5 - gaugeOption.splitLine.fixRadius + gaugeOption.splitLine.width;
-    var childendX = -radius - gaugeOption.width * 0.5 - gaugeOption.splitLine.fixRadius + gaugeOption.splitLine.childWidth;
-    context.translate(centerPosition.x, centerPosition.y);
-    context.rotate((gaugeOption.startAngle - 1) * Math.PI);
-    for (var _i24 = 0; _i24 < gaugeOption.splitLine.splitNumber + 1; _i24++) {
-      context.beginPath();
-      context.setStrokeStyle(gaugeOption.splitLine.color);
-      context.setLineWidth(2 * opts.pix);
-      context.moveTo(_startX2, 0);
-      context.lineTo(_endX, 0);
-      context.stroke();
-      context.rotate(_splitAngle * Math.PI);
-    }
-    context.restore();
-    context.save();
-    context.translate(centerPosition.x, centerPosition.y);
-    context.rotate((gaugeOption.startAngle - 1) * Math.PI);
-    for (var _i25 = 0; _i25 < gaugeOption.splitLine.splitNumber * gaugeOption.splitLine.childNumber + 1; _i25++) {
-      context.beginPath();
-      context.setStrokeStyle(gaugeOption.splitLine.color);
-      context.setLineWidth(1 * opts.pix);
-      context.moveTo(_startX2, 0);
-      context.lineTo(childendX, 0);
-      context.stroke();
-      context.rotate(_childAngle * Math.PI);
-    }
-    context.restore();
-    //鐢绘寚閽�
-    series = getGaugeDataPoints(series, categories, gaugeOption, process);
-    for (var _i26 = 0; _i26 < series.length; _i26++) {
-      var eachSeries = series[_i26];
-      context.save();
-      context.translate(centerPosition.x, centerPosition.y);
-      context.rotate((eachSeries._proportion_ - 1) * Math.PI);
-      context.beginPath();
-      context.setFillStyle(eachSeries.color);
-      context.moveTo(gaugeOption.pointer.width, 0);
-      context.lineTo(0, -gaugeOption.pointer.width / 2);
-      context.lineTo(-innerRadius, 0);
-      context.lineTo(0, gaugeOption.pointer.width / 2);
-      context.lineTo(gaugeOption.pointer.width, 0);
-      context.closePath();
-      context.fill();
-      context.beginPath();
-      context.setFillStyle('#FFFFFF');
-      context.arc(0, 0, gaugeOption.pointer.width / 6, 0, 2 * Math.PI, false);
-      context.fill();
-      context.restore();
-    }
-    if (opts.dataLabel !== false) {
-      drawGaugeLabel(gaugeOption, radius, centerPosition, opts, config, context);
-    }
-  }
-  //鐢讳华琛ㄧ洏鏍囬锛屽壇鏍囬
-  drawRingTitle(opts, config, context, centerPosition);
-  if (process === 1 && opts.type === 'gauge') {
-    opts.extra.gauge.oldAngle = series[0]._proportion_;
-    opts.extra.gauge.oldData = series[0].data;
-  }
-  return {
-    center: centerPosition,
-    radius: radius,
-    innerRadius: innerRadius,
-    categories: categories,
-    totalAngle: totalAngle };
-
-}
-
-function drawRadarDataPoints(series, opts, config, context) {
-  var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;
-  var radarOption = assign({}, {
-    gridColor: '#cccccc',
-    gridType: 'radar',
-    opacity: 0.2,
-    gridCount: 3,
-    border: false,
-    borderWidth: 2 },
-  opts.extra.radar);
-  var coordinateAngle = getRadarCoordinateSeries(opts.categories.length);
-  var centerPosition = {
-    x: opts.area[3] + (opts.width - opts.area[1] - opts.area[3]) / 2,
-    y: opts.area[0] + (opts.height - opts.area[0] - opts.area[2]) / 2 };
-
-  var xr = (opts.width - opts.area[1] - opts.area[3]) / 2;
-  var yr = (opts.height - opts.area[0] - opts.area[2]) / 2;
-  var radius = Math.min(xr - (getMaxTextListLength(opts.categories, config.fontSize, context) + config.radarLabelTextMargin), yr - config.radarLabelTextMargin);
-  radius -= config.radarLabelTextMargin * opts.pix;
-  // 鐢诲垎鍓茬嚎
-  context.beginPath();
-  context.setLineWidth(1 * opts.pix);
-  context.setStrokeStyle(radarOption.gridColor);
-  coordinateAngle.forEach(function (angle) {
-    var pos = convertCoordinateOrigin(radius * Math.cos(angle), radius * Math.sin(angle), centerPosition);
-    context.moveTo(centerPosition.x, centerPosition.y);
-    context.lineTo(pos.x, pos.y);
-  });
-  context.stroke();
-  context.closePath();
-
-  // 鐢昏儗鏅綉鏍�
-  var _loop = function _loop(i) {
-    var startPos = {};
-    context.beginPath();
-    context.setLineWidth(1 * opts.pix);
-    context.setStrokeStyle(radarOption.gridColor);
-    if (radarOption.gridType == 'radar') {
-      coordinateAngle.forEach(function (angle, index) {
-        var pos = convertCoordinateOrigin(radius / radarOption.gridCount * i * Math.cos(angle), radius /
-        radarOption.gridCount * i * Math.sin(angle), centerPosition);
-        if (index === 0) {
-          startPos = pos;
-          context.moveTo(pos.x, pos.y);
-        } else {
-          context.lineTo(pos.x, pos.y);
-        }
-      });
-      context.lineTo(startPos.x, startPos.y);
-    } else {
-      var pos = convertCoordinateOrigin(radius / radarOption.gridCount * i * Math.cos(1.5), radius / radarOption.gridCount * i * Math.sin(1.5), centerPosition);
-      context.arc(centerPosition.x, centerPosition.y, centerPosition.y - pos.y, 0, 2 * Math.PI, false);
-    }
-    context.stroke();
-    context.closePath();
-  };
-  for (var i = 1; i <= radarOption.gridCount; i++) {
-    _loop(i);
-  }
-  var radarDataPoints = getRadarDataPoints(coordinateAngle, centerPosition, radius, series, opts, process);
-  radarDataPoints.forEach(function (eachSeries, seriesIndex) {
-    // 缁樺埗鍖哄煙鏁版嵁
-    context.beginPath();
-    context.setLineWidth(radarOption.borderWidth * opts.pix);
-    context.setStrokeStyle(eachSeries.color);
-    context.setFillStyle(hexToRgb(eachSeries.color, radarOption.opacity));
-    eachSeries.data.forEach(function (item, index) {
-      if (index === 0) {
-        context.moveTo(item.position.x, item.position.y);
-      } else {
-        context.lineTo(item.position.x, item.position.y);
-      }
-    });
-    context.closePath();
-    context.fill();
-    if (radarOption.border === true) {
-      context.stroke();
-    }
-    context.closePath();
-    if (opts.dataPointShape !== false) {
-      var points = eachSeries.data.map(function (item) {
-        return item.position;
-      });
-      drawPointShape(points, eachSeries.color, eachSeries.pointShape, context, opts);
-    }
-  });
-  // draw label text
-  drawRadarLabel(coordinateAngle, radius, centerPosition, opts, config, context);
-
-  // draw dataLabel
-  if (opts.dataLabel !== false && process === 1) {
-    radarDataPoints.forEach(function (eachSeries, seriesIndex) {
-      context.beginPath();
-      var fontSize = eachSeries.textSize * opts.pix || config.fontSize;
-      context.setFontSize(fontSize);
-      context.setFillStyle(eachSeries.textColor || opts.fontColor);
-      eachSeries.data.forEach(function (item, index) {
-        //濡傛灉鏄腑蹇冪偣鍨傜洿鐨勪笂涓嬬偣浣�
-        if (Math.abs(item.position.x - centerPosition.x) < 2) {
-          //濡傛灉鍦ㄤ笂闈�
-          if (item.position.y < centerPosition.y) {
-            context.setTextAlign('center');
-            context.fillText(item.value, item.position.x, item.position.y - 4);
-          } else {
-            context.setTextAlign('center');
-            context.fillText(item.value, item.position.x, item.position.y + fontSize + 2);
-          }
-        } else {
-          //濡傛灉鍦ㄥ乏渚�
-          if (item.position.x < centerPosition.x) {
-            context.setTextAlign('right');
-            context.fillText(item.value, item.position.x - 4, item.position.y + fontSize / 2 - 2);
-          } else {
-            context.setTextAlign('left');
-            context.fillText(item.value, item.position.x + 4, item.position.y + fontSize / 2 - 2);
-          }
-        }
-      });
-      context.closePath();
-      context.stroke();
-    });
-    context.setTextAlign('left');
-  }
-
-  return {
-    center: centerPosition,
-    radius: radius,
-    angleList: coordinateAngle };
-
-}
-
-function normalInt(min, max, iter) {
-  iter = iter == 0 ? 1 : iter;
-  var arr = [];
-  for (var i = 0; i < iter; i++) {
-    arr[i] = Math.random();
-  };
-  return Math.floor(arr.reduce(function (i, j) {
-    return i + j;
-  }) / iter * (max - min)) + min;
-};
-
-function collisionNew(area, points, width, height) {
-  var isIn = false;
-  for (var i = 0; i < points.length; i++) {
-    if (points[i].area) {
-      if (area[3] < points[i].area[1] || area[0] > points[i].area[2] || area[1] > points[i].area[3] || area[2] < points[i].area[0]) {
-        if (area[0] < 0 || area[1] < 0 || area[2] > width || area[3] > height) {
-          isIn = true;
-          break;
-        } else {
-          isIn = false;
-        }
-      } else {
-        isIn = true;
-        break;
-      }
-    }
-  }
-  return isIn;
-};
-
-function getBoundingBox(data) {
-  var bounds = {},coords;
-  bounds.xMin = 180;
-  bounds.xMax = 0;
-  bounds.yMin = 90;
-  bounds.yMax = 0;
-  for (var i = 0; i < data.length; i++) {
-    var coorda = data[i].geometry.coordinates;
-    for (var k = 0; k < coorda.length; k++) {
-      coords = coorda[k];
-      if (coords.length == 1) {
-        coords = coords[0];
-      }
-      for (var j = 0; j < coords.length; j++) {
-        var longitude = coords[j][0];
-        var latitude = coords[j][1];
-        var point = {
-          x: longitude,
-          y: latitude };
-
-        bounds.xMin = bounds.xMin < point.x ? bounds.xMin : point.x;
-        bounds.xMax = bounds.xMax > point.x ? bounds.xMax : point.x;
-        bounds.yMin = bounds.yMin < point.y ? bounds.yMin : point.y;
-        bounds.yMax = bounds.yMax > point.y ? bounds.yMax : point.y;
-      }
-    }
-  }
-  return bounds;
-}
-
-function coordinateToPoint(latitude, longitude, bounds, scale, xoffset, yoffset) {
-  return {
-    x: (longitude - bounds.xMin) * scale + xoffset,
-    y: (bounds.yMax - latitude) * scale + yoffset };
-
-}
-
-function pointToCoordinate(pointY, pointX, bounds, scale, xoffset, yoffset) {
-  return {
-    x: (pointX - xoffset) / scale + bounds.xMin,
-    y: bounds.yMax - (pointY - yoffset) / scale };
-
-}
-
-function isRayIntersectsSegment(poi, s_poi, e_poi) {
-  if (s_poi[1] == e_poi[1]) {
-    return false;
-  }
-  if (s_poi[1] > poi[1] && e_poi[1] > poi[1]) {
-    return false;
-  }
-  if (s_poi[1] < poi[1] && e_poi[1] < poi[1]) {
-    return false;
-  }
-  if (s_poi[1] == poi[1] && e_poi[1] > poi[1]) {
-    return false;
-  }
-  if (e_poi[1] == poi[1] && s_poi[1] > poi[1]) {
-    return false;
-  }
-  if (s_poi[0] < poi[0] && e_poi[1] < poi[1]) {
-    return false;
-  }
-  var xseg = e_poi[0] - (e_poi[0] - s_poi[0]) * (e_poi[1] - poi[1]) / (e_poi[1] - s_poi[1]);
-  if (xseg < poi[0]) {
-    return false;
-  } else {
-    return true;
-  }
-}
-
-function isPoiWithinPoly(poi, poly, mercator) {
-  var sinsc = 0;
-  for (var i = 0; i < poly.length; i++) {
-    var epoly = poly[i][0];
-    if (poly.length == 1) {
-      epoly = poly[i][0];
-    }
-    for (var j = 0; j < epoly.length - 1; j++) {
-      var s_poi = epoly[j];
-      var e_poi = epoly[j + 1];
-      if (mercator) {
-        s_poi = lonlat2mercator(epoly[j][0], epoly[j][1]);
-        e_poi = lonlat2mercator(epoly[j + 1][0], epoly[j + 1][1]);
-      }
-      if (isRayIntersectsSegment(poi, s_poi, e_poi)) {
-        sinsc += 1;
-      }
-    }
-  }
-  if (sinsc % 2 == 1) {
-    return true;
-  } else {
-    return false;
-  }
-}
-
-
-function drawMapDataPoints(series, opts, config, context) {
-  var mapOption = assign({}, {
-    border: true,
-    mercator: false,
-    borderWidth: 1,
-    borderColor: '#666666',
-    fillOpacity: 0.6,
-    activeBorderColor: '#f04864',
-    activeFillColor: '#facc14',
-    activeFillOpacity: 1 },
-  opts.extra.map);
-  var coords, point;
-  var data = series;
-  var bounds = getBoundingBox(data);
-  if (mapOption.mercator) {
-    var max = lonlat2mercator(bounds.xMax, bounds.yMax);
-    var min = lonlat2mercator(bounds.xMin, bounds.yMin);
-    bounds.xMax = max[0];
-    bounds.yMax = max[1];
-    bounds.xMin = min[0];
-    bounds.yMin = min[1];
-  }
-  var xScale = opts.width / Math.abs(bounds.xMax - bounds.xMin);
-  var yScale = opts.height / Math.abs(bounds.yMax - bounds.yMin);
-  var scale = xScale < yScale ? xScale : yScale;
-  var xoffset = opts.width / 2 - Math.abs(bounds.xMax - bounds.xMin) / 2 * scale;
-  var yoffset = opts.height / 2 - Math.abs(bounds.yMax - bounds.yMin) / 2 * scale;
-  for (var i = 0; i < data.length; i++) {
-    context.beginPath();
-    context.setLineWidth(mapOption.borderWidth * opts.pix);
-    context.setStrokeStyle(mapOption.borderColor);
-    context.setFillStyle(hexToRgb(series[i].color, mapOption.fillOpacity));
-    if (opts.tooltip) {
-      if (opts.tooltip.index == i) {
-        context.setStrokeStyle(mapOption.activeBorderColor);
-        context.setFillStyle(hexToRgb(mapOption.activeFillColor, mapOption.activeFillOpacity));
-      }
-    }
-    var coorda = data[i].geometry.coordinates;
-    for (var k = 0; k < coorda.length; k++) {
-      coords = coorda[k];
-      if (coords.length == 1) {
-        coords = coords[0];
-      }
-      for (var j = 0; j < coords.length; j++) {
-        var gaosi = Array(2);
-        if (mapOption.mercator) {
-          gaosi = lonlat2mercator(coords[j][0], coords[j][1]);
-        } else {
-          gaosi = coords[j];
-        }
-        point = coordinateToPoint(gaosi[1], gaosi[0], bounds, scale, xoffset, yoffset);
-        if (j === 0) {
-          context.beginPath();
-          context.moveTo(point.x, point.y);
-        } else {
-          context.lineTo(point.x, point.y);
-        }
-      }
-      context.fill();
-      if (mapOption.border == true) {
-        context.stroke();
-      }
-    }
-    if (opts.dataLabel == true) {
-      var centerPoint = data[i].properties.centroid;
-      if (centerPoint) {
-        if (mapOption.mercator) {
-          centerPoint = lonlat2mercator(data[i].properties.centroid[0], data[i].properties.centroid[1]);
-        }
-        point = coordinateToPoint(centerPoint[1], centerPoint[0], bounds, scale, xoffset, yoffset);
-        var fontSize = data[i].textSize * opts.pix || config.fontSize;
-        var text = data[i].properties.name;
-        context.beginPath();
-        context.setFontSize(fontSize);
-        context.setFillStyle(data[i].textColor || opts.fontColor);
-        context.fillText(text, point.x - measureText(text, fontSize, context) / 2, point.y + fontSize / 2);
-        context.closePath();
-        context.stroke();
-      }
-    }
-  }
-  opts.chartData.mapData = {
-    bounds: bounds,
-    scale: scale,
-    xoffset: xoffset,
-    yoffset: yoffset,
-    mercator: mapOption.mercator };
-
-  drawToolTipBridge(opts, config, context, 1);
-  context.draw();
-}
-
-function getWordCloudPoint(opts, type, context) {
-  var points = opts.series;
-  switch (type) {
-    case 'normal':
-      for (var i = 0; i < points.length; i++) {
-        var text = points[i].name;
-        var tHeight = points[i].textSize * opts.pix;
-        var tWidth = measureText(text, tHeight, context);
-        var x = void 0,y = void 0;
-        var area = void 0;
-        var breaknum = 0;
-        while (true) {
-          breaknum++;
-          x = normalInt(-opts.width / 2, opts.width / 2, 5) - tWidth / 2;
-          y = normalInt(-opts.height / 2, opts.height / 2, 5) + tHeight / 2;
-          area = [x - 5 + opts.width / 2, y - 5 - tHeight + opts.height / 2, x + tWidth + 5 + opts.width / 2, y + 5 +
-          opts.height / 2];
-
-          var isCollision = collisionNew(area, points, opts.width, opts.height);
-          if (!isCollision) break;
-          if (breaknum == 1000) {
-            area = [-100, -100, -100, -100];
-            break;
-          }
-        };
-        points[i].area = area;
-      }
-      break;
-    case 'vertical':var
-      Spin = function Spin() {
-        //鑾峰彇鍧囧寑闅忔満鍊硷紝鏄惁鏃嬭浆锛屾棆杞殑姒傜巼涓猴紙1-0.5锛�
-        if (Math.random() > 0.7) {
-          return true;
-        } else {
-          return false;
-        };
-      };;
-      for (var _i27 = 0; _i27 < points.length; _i27++) {
-        var _text = points[_i27].name;
-        var _tHeight = points[_i27].textSize * opts.pix;
-        var _tWidth = measureText(_text, _tHeight, context);
-        var isSpin = Spin();
-        var _x = void 0,_y = void 0,_area = void 0,areav = void 0;
-        var _breaknum = 0;
-        while (true) {
-          _breaknum++;
-          var _isCollision = void 0;
-          if (isSpin) {
-            _x = normalInt(-opts.width / 2, opts.width / 2, 5) - _tWidth / 2;
-            _y = normalInt(-opts.height / 2, opts.height / 2, 5) + _tHeight / 2;
-            _area = [_y - 5 - _tWidth + opts.width / 2, -_x - 5 + opts.height / 2, _y + 5 + opts.width / 2, -_x + _tHeight + 5 + opts.height / 2];
-            areav = [opts.width - (opts.width / 2 - opts.height / 2) - (-_x + _tHeight + 5 + opts.height / 2) - 5, opts.height / 2 - opts.width / 2 + (_y - 5 - _tWidth + opts.width / 2) - 5, opts.width - (opts.width / 2 - opts.height / 2) - (-_x + _tHeight + 5 + opts.height / 2) + _tHeight, opts.height / 2 - opts.width / 2 + (_y - 5 - _tWidth + opts.width / 2) + _tWidth + 5];
-            _isCollision = collisionNew(areav, points, opts.height, opts.width);
-          } else {
-            _x = normalInt(-opts.width / 2, opts.width / 2, 5) - _tWidth / 2;
-            _y = normalInt(-opts.height / 2, opts.height / 2, 5) + _tHeight / 2;
-            _area = [_x - 5 + opts.width / 2, _y - 5 - _tHeight + opts.height / 2, _x + _tWidth + 5 + opts.width / 2, _y + 5 + opts.height / 2];
-            _isCollision = collisionNew(_area, points, opts.width, opts.height);
-          }
-          if (!_isCollision) break;
-          if (_breaknum == 1000) {
-            _area = [-1000, -1000, -1000, -1000];
-            break;
-          }
-        };
-        if (isSpin) {
-          points[_i27].area = areav;
-          points[_i27].areav = _area;
-        } else {
-          points[_i27].area = _area;
-        }
-        points[_i27].rotate = isSpin;
-      };
-      break;}
-
-  return points;
-}
-
-
-function drawWordCloudDataPoints(series, opts, config, context) {
-  var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;
-  var wordOption = assign({}, {
-    type: 'normal',
-    autoColors: true },
-  opts.extra.word);
-  if (!opts.chartData.wordCloudData) {
-    opts.chartData.wordCloudData = getWordCloudPoint(opts, wordOption.type, context);
-  }
-  context.beginPath();
-  context.setFillStyle(opts.background);
-  context.rect(0, 0, opts.width, opts.height);
-  context.fill();
-  context.save();
-  var points = opts.chartData.wordCloudData;
-  context.translate(opts.width / 2, opts.height / 2);
-  for (var i = 0; i < points.length; i++) {
-    context.save();
-    if (points[i].rotate) {
-      context.rotate(90 * Math.PI / 180);
-    }
-    var text = points[i].name;
-    var tHeight = points[i].textSize * opts.pix;
-    var tWidth = measureText(text, tHeight, context);
-    context.beginPath();
-    context.setStrokeStyle(points[i].color);
-    context.setFillStyle(points[i].color);
-    context.setFontSize(tHeight);
-    if (points[i].rotate) {
-      if (points[i].areav[0] > 0) {
-        if (opts.tooltip) {
-          if (opts.tooltip.index == i) {
-            context.strokeText(text, (points[i].areav[0] + 5 - opts.width / 2) * process - tWidth * (1 - process) / 2, (points[i].areav[1] + 5 + tHeight - opts.height / 2) * process);
-          } else {
-            context.fillText(text, (points[i].areav[0] + 5 - opts.width / 2) * process - tWidth * (1 - process) / 2, (points[i].areav[1] + 5 + tHeight - opts.height / 2) * process);
-          }
-        } else {
-          context.fillText(text, (points[i].areav[0] + 5 - opts.width / 2) * process - tWidth * (1 - process) / 2, (points[i].areav[1] + 5 + tHeight - opts.height / 2) * process);
-        }
-      }
-    } else {
-      if (points[i].area[0] > 0) {
-        if (opts.tooltip) {
-          if (opts.tooltip.index == i) {
-            context.strokeText(text, (points[i].area[0] + 5 - opts.width / 2) * process - tWidth * (1 - process) / 2, (points[i].area[1] + 5 + tHeight - opts.height / 2) * process);
-          } else {
-            context.fillText(text, (points[i].area[0] + 5 - opts.width / 2) * process - tWidth * (1 - process) / 2, (points[i].area[1] + 5 + tHeight - opts.height / 2) * process);
-          }
-        } else {
-          context.fillText(text, (points[i].area[0] + 5 - opts.width / 2) * process - tWidth * (1 - process) / 2, (points[i].area[1] + 5 + tHeight - opts.height / 2) * process);
-        }
-      }
-    }
-    context.stroke();
-    context.restore();
-  }
-  context.restore();
-}
-
-function drawFunnelDataPoints(series, opts, config, context) {
-  var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;
-  var funnelOption = assign({}, {
-    type: 'funnel',
-    activeWidth: 10,
-    activeOpacity: 0.3,
-    border: false,
-    borderWidth: 2,
-    borderColor: '#FFFFFF',
-    fillOpacity: 1,
-    labelAlign: 'right',
-    linearType: 'none',
-    customColor: [] },
-  opts.extra.funnel);
-  var eachSpacing = (opts.height - opts.area[0] - opts.area[2]) / series.length;
-  var centerPosition = {
-    x: opts.area[3] + (opts.width - opts.area[1] - opts.area[3]) / 2,
-    y: opts.height - opts.area[2] };
-
-  var activeWidth = funnelOption.activeWidth * opts.pix;
-  var radius = Math.min((opts.width - opts.area[1] - opts.area[3]) / 2 - activeWidth, (opts.height - opts.area[0] - opts.area[2]) / 2 - activeWidth);
-  series = getFunnelDataPoints(series, radius, funnelOption.type, eachSpacing, process);
-  context.save();
-  context.translate(centerPosition.x, centerPosition.y);
-  funnelOption.customColor = fillCustomColor(funnelOption.linearType, funnelOption.customColor, series, config);
-  if (funnelOption.type == 'pyramid') {
-    for (var i = 0; i < series.length; i++) {
-      if (i == series.length - 1) {
-        if (opts.tooltip) {
-          if (opts.tooltip.index == i) {
-            context.beginPath();
-            context.setFillStyle(hexToRgb(series[i].color, funnelOption.activeOpacity));
-            context.moveTo(-activeWidth, -eachSpacing);
-            context.lineTo(-series[i].radius - activeWidth, 0);
-            context.lineTo(series[i].radius + activeWidth, 0);
-            context.lineTo(activeWidth, -eachSpacing);
-            context.lineTo(-activeWidth, -eachSpacing);
-            context.closePath();
-            context.fill();
-          }
-        }
-        series[i].funnelArea = [centerPosition.x - series[i].radius, centerPosition.y - eachSpacing * (i + 1), centerPosition.x + series[i].radius, centerPosition.y - eachSpacing * i];
-        context.beginPath();
-        context.setLineWidth(funnelOption.borderWidth * opts.pix);
-        context.setStrokeStyle(funnelOption.borderColor);
-        var fillColor = hexToRgb(series[i].color, funnelOption.fillOpacity);
-        if (funnelOption.linearType == 'custom') {
-          var grd = context.createLinearGradient(series[i].radius, -eachSpacing, -series[i].radius, -eachSpacing);
-          grd.addColorStop(0, hexToRgb(series[i].color, funnelOption.fillOpacity));
-          grd.addColorStop(0.5, hexToRgb(funnelOption.customColor[series[i].linearIndex], funnelOption.fillOpacity));
-          grd.addColorStop(1, hexToRgb(series[i].color, funnelOption.fillOpacity));
-          fillColor = grd;
-        }
-        context.setFillStyle(fillColor);
-        context.moveTo(0, -eachSpacing);
-        context.lineTo(-series[i].radius, 0);
-        context.lineTo(series[i].radius, 0);
-        context.lineTo(0, -eachSpacing);
-        context.closePath();
-        context.fill();
-        if (funnelOption.border == true) {
-          context.stroke();
-        }
-      } else {
-        if (opts.tooltip) {
-          if (opts.tooltip.index == i) {
-            context.beginPath();
-            context.setFillStyle(hexToRgb(series[i].color, funnelOption.activeOpacity));
-            context.moveTo(0, 0);
-            context.lineTo(-series[i].radius - activeWidth, 0);
-            context.lineTo(-series[i + 1].radius - activeWidth, -eachSpacing);
-            context.lineTo(series[i + 1].radius + activeWidth, -eachSpacing);
-            context.lineTo(series[i].radius + activeWidth, 0);
-            context.lineTo(0, 0);
-            context.closePath();
-            context.fill();
-          }
-        }
-        series[i].funnelArea = [centerPosition.x - series[i].radius, centerPosition.y - eachSpacing * (i + 1), centerPosition.x + series[i].radius, centerPosition.y - eachSpacing * i];
-        context.beginPath();
-        context.setLineWidth(funnelOption.borderWidth * opts.pix);
-        context.setStrokeStyle(funnelOption.borderColor);
-        var fillColor = hexToRgb(series[i].color, funnelOption.fillOpacity);
-        if (funnelOption.linearType == 'custom') {
-          var grd = context.createLinearGradient(series[i].radius, -eachSpacing, -series[i].radius, -eachSpacing);
-          grd.addColorStop(0, hexToRgb(series[i].color, funnelOption.fillOpacity));
-          grd.addColorStop(0.5, hexToRgb(funnelOption.customColor[series[i].linearIndex], funnelOption.fillOpacity));
-          grd.addColorStop(1, hexToRgb(series[i].color, funnelOption.fillOpacity));
-          fillColor = grd;
-        }
-        context.setFillStyle(fillColor);
-        context.moveTo(0, 0);
-        context.lineTo(-series[i].radius, 0);
-        context.lineTo(-series[i + 1].radius, -eachSpacing);
-        context.lineTo(series[i + 1].radius, -eachSpacing);
-        context.lineTo(series[i].radius, 0);
-        context.lineTo(0, 0);
-        context.closePath();
-        context.fill();
-        if (funnelOption.border == true) {
-          context.stroke();
-        }
-      }
-      context.translate(0, -eachSpacing);
-    }
-  } else {
-    for (var _i28 = 0; _i28 < series.length; _i28++) {
-      if (_i28 == 0) {
-        if (opts.tooltip) {
-          if (opts.tooltip.index == _i28) {
-            context.beginPath();
-            context.setFillStyle(hexToRgb(series[_i28].color, funnelOption.activeOpacity));
-            context.moveTo(-activeWidth, 0);
-            context.lineTo(-series[_i28].radius - activeWidth, -eachSpacing);
-            context.lineTo(series[_i28].radius + activeWidth, -eachSpacing);
-            context.lineTo(activeWidth, 0);
-            context.lineTo(-activeWidth, 0);
-            context.closePath();
-            context.fill();
-          }
-        }
-        series[_i28].funnelArea = [centerPosition.x - series[_i28].radius, centerPosition.y - eachSpacing, centerPosition.x + series[_i28].radius, centerPosition.y];
-        context.beginPath();
-        context.setLineWidth(funnelOption.borderWidth * opts.pix);
-        context.setStrokeStyle(funnelOption.borderColor);
-        var fillColor = hexToRgb(series[_i28].color, funnelOption.fillOpacity);
-        if (funnelOption.linearType == 'custom') {
-          var grd = context.createLinearGradient(series[_i28].radius, -eachSpacing, -series[_i28].radius, -eachSpacing);
-          grd.addColorStop(0, hexToRgb(series[_i28].color, funnelOption.fillOpacity));
-          grd.addColorStop(0.5, hexToRgb(funnelOption.customColor[series[_i28].linearIndex], funnelOption.fillOpacity));
-          grd.addColorStop(1, hexToRgb(series[_i28].color, funnelOption.fillOpacity));
-          fillColor = grd;
-        }
-        context.setFillStyle(fillColor);
-        context.moveTo(0, 0);
-        context.lineTo(-series[_i28].radius, -eachSpacing);
-        context.lineTo(series[_i28].radius, -eachSpacing);
-        context.lineTo(0, 0);
-        context.closePath();
-        context.fill();
-        if (funnelOption.border == true) {
-          context.stroke();
-        }
-      } else {
-        if (opts.tooltip) {
-          if (opts.tooltip.index == _i28) {
-            context.beginPath();
-            context.setFillStyle(hexToRgb(series[_i28].color, funnelOption.activeOpacity));
-            context.moveTo(0, 0);
-            context.lineTo(-series[_i28 - 1].radius - activeWidth, 0);
-            context.lineTo(-series[_i28].radius - activeWidth, -eachSpacing);
-            context.lineTo(series[_i28].radius + activeWidth, -eachSpacing);
-            context.lineTo(series[_i28 - 1].radius + activeWidth, 0);
-            context.lineTo(0, 0);
-            context.closePath();
-            context.fill();
-          }
-        }
-        series[_i28].funnelArea = [centerPosition.x - series[_i28].radius, centerPosition.y - eachSpacing * (_i28 + 1), centerPosition.x + series[_i28].radius, centerPosition.y - eachSpacing * _i28];
-        context.beginPath();
-        context.setLineWidth(funnelOption.borderWidth * opts.pix);
-        context.setStrokeStyle(funnelOption.borderColor);
-        var fillColor = hexToRgb(series[_i28].color, funnelOption.fillOpacity);
-        if (funnelOption.linearType == 'custom') {
-          var grd = context.createLinearGradient(series[_i28].radius, -eachSpacing, -series[_i28].radius, -eachSpacing);
-          grd.addColorStop(0, hexToRgb(series[_i28].color, funnelOption.fillOpacity));
-          grd.addColorStop(0.5, hexToRgb(funnelOption.customColor[series[_i28].linearIndex], funnelOption.fillOpacity));
-          grd.addColorStop(1, hexToRgb(series[_i28].color, funnelOption.fillOpacity));
-          fillColor = grd;
-        }
-        context.setFillStyle(fillColor);
-        context.moveTo(0, 0);
-        context.lineTo(-series[_i28 - 1].radius, 0);
-        context.lineTo(-series[_i28].radius, -eachSpacing);
-        context.lineTo(series[_i28].radius, -eachSpacing);
-        context.lineTo(series[_i28 - 1].radius, 0);
-        context.lineTo(0, 0);
-        context.closePath();
-        context.fill();
-        if (funnelOption.border == true) {
-          context.stroke();
-        }
-      }
-      context.translate(0, -eachSpacing);
-    }
-  }
-
-  context.restore();
-  if (opts.dataLabel !== false && process === 1) {
-    drawFunnelText(series, opts, context, eachSpacing, funnelOption.labelAlign, activeWidth, centerPosition);
-  }
-  return {
-    center: centerPosition,
-    radius: radius,
-    series: series };
-
-}
-
-function drawFunnelText(series, opts, context, eachSpacing, labelAlign, activeWidth, centerPosition) {
-  for (var i = 0; i < series.length; i++) {
-    var item = series[i];
-    var startX = void 0,endX = void 0,startY = void 0,fontSize = void 0;
-    var text = item.formatter ? item.formatter(item, i, series) : util.toFixed(item._proportion_ * 100) + '%';
-    if (labelAlign == 'right') {
-      if (opts.extra.funnel.type === 'pyramid') {
-        if (i == series.length - 1) {
-          startX = (item.funnelArea[2] + centerPosition.x) / 2;
-        } else {
-          startX = (item.funnelArea[2] + series[i + 1].funnelArea[2]) / 2;
-        }
-      } else {
-        if (i == 0) {
-          startX = (item.funnelArea[2] + centerPosition.x) / 2;
-        } else {
-          startX = (item.funnelArea[2] + series[i - 1].funnelArea[2]) / 2;
-        }
-      }
-      endX = startX + activeWidth * 2;
-      startY = item.funnelArea[1] + eachSpacing / 2;
-      fontSize = item.textSize * opts.pix || opts.fontSize * opts.pix;
-      context.setLineWidth(1 * opts.pix);
-      context.setStrokeStyle(item.color);
-      context.setFillStyle(item.color);
-      context.beginPath();
-      context.moveTo(startX, startY);
-      context.lineTo(endX, startY);
-      context.stroke();
-      context.closePath();
-      context.beginPath();
-      context.moveTo(endX, startY);
-      context.arc(endX, startY, 2, 0, 2 * Math.PI);
-      context.closePath();
-      context.fill();
-      context.beginPath();
-      context.setFontSize(fontSize);
-      context.setFillStyle(item.textColor || opts.fontColor);
-      context.fillText(text, endX + 5, startY + fontSize / 2 - 2);
-      context.closePath();
-      context.stroke();
-      context.closePath();
-    } else {
-      if (opts.extra.funnel.type === 'pyramid') {
-        if (i == series.length - 1) {
-          startX = (item.funnelArea[0] + centerPosition.x) / 2;
-        } else {
-          startX = (item.funnelArea[0] + series[i + 1].funnelArea[0]) / 2;
-        }
-      } else {
-        if (i == 0) {
-          startX = (item.funnelArea[0] + centerPosition.x) / 2;
-        } else {
-          startX = (item.funnelArea[0] + series[i - 1].funnelArea[0]) / 2;
-        }
-      }
-      endX = startX - activeWidth * 2;
-      startY = item.funnelArea[1] + eachSpacing / 2;
-      fontSize = item.textSize * opts.pix || opts.fontSize * opts.pix;
-      context.setLineWidth(1 * opts.pix);
-      context.setStrokeStyle(item.color);
-      context.setFillStyle(item.color);
-      context.beginPath();
-      context.moveTo(startX, startY);
-      context.lineTo(endX, startY);
-      context.stroke();
-      context.closePath();
-      context.beginPath();
-      context.moveTo(endX, startY);
-      context.arc(endX, startY, 2, 0, 2 * Math.PI);
-      context.closePath();
-      context.fill();
-      context.beginPath();
-      context.setFontSize(fontSize);
-      context.setFillStyle(item.textColor || opts.fontColor);
-      context.fillText(text, endX - 5 - measureText(text, fontSize, context), startY + fontSize / 2 - 2);
-      context.closePath();
-      context.stroke();
-      context.closePath();
-    }
-
-  }
-}
-
-function drawCanvas(opts, context) {
-  context.draw();
-}
-
-var Timing = {
-  easeIn: function easeIn(pos) {
-    return Math.pow(pos, 3);
-  },
-  easeOut: function easeOut(pos) {
-    return Math.pow(pos - 1, 3) + 1;
-  },
-  easeInOut: function easeInOut(pos) {
-    if ((pos /= 0.5) < 1) {
-      return 0.5 * Math.pow(pos, 3);
-    } else {
-      return 0.5 * (Math.pow(pos - 2, 3) + 2);
-    }
-  },
-  linear: function linear(pos) {
-    return pos;
-  } };
-
-
-function Animation(opts) {
-  this.isStop = false;
-  opts.duration = typeof opts.duration === 'undefined' ? 1000 : opts.duration;
-  opts.timing = opts.timing || 'easeInOut';
-  var delay = 17;
-  function createAnimationFrame() {
-    if (typeof setTimeout !== 'undefined') {
-      return function (step, delay) {
-        setTimeout(function () {
-          var timeStamp = +new Date();
-          step(timeStamp);
-        }, delay);
-      };
-    } else if (typeof requestAnimationFrame !== 'undefined') {
-      return requestAnimationFrame;
-    } else {
-      return function (step) {
-        step(null);
-      };
-    }
-  };
-  var animationFrame = createAnimationFrame();
-  var startTimeStamp = null;
-  var _step = function step(timestamp) {
-    if (timestamp === null || this.isStop === true) {
-      opts.onProcess && opts.onProcess(1);
-      opts.onAnimationFinish && opts.onAnimationFinish();
-      return;
-    }
-    if (startTimeStamp === null) {
-      startTimeStamp = timestamp;
-    }
-    if (timestamp - startTimeStamp < opts.duration) {
-      var process = (timestamp - startTimeStamp) / opts.duration;
-      var timingFunction = Timing[opts.timing];
-      process = timingFunction(process);
-      opts.onProcess && opts.onProcess(process);
-      animationFrame(_step, delay);
-    } else {
-      opts.onProcess && opts.onProcess(1);
-      opts.onAnimationFinish && opts.onAnimationFinish();
-    }
-  };
-  _step = _step.bind(this);
-  animationFrame(_step, delay);
-}
-
-Animation.prototype.stop = function () {
-  this.isStop = true;
-};
-
-function drawCharts(type, opts, config, context) {
-  var _this = this;
-  var series = opts.series;
-  //鍏煎ECharts楗煎浘绫绘暟鎹牸寮�
-  if (type === 'pie' || type === 'ring' || type === 'rose' || type === 'funnel') {
-    series = fixPieSeries(series, opts, config);
-  }
-  var categories = opts.categories;
-  series = fillSeries(series, opts, config);
-  var duration = opts.animation ? opts.duration : 0;
-  _this.animationInstance && _this.animationInstance.stop();
-  var seriesMA = null;
-  if (type == 'candle') {
-    var average = assign({}, opts.extra.candle.average);
-    if (average.show) {
-      seriesMA = calCandleMA(average.day, average.name, average.color, series[0].data);
-      seriesMA = fillSeries(seriesMA, opts, config);
-      opts.seriesMA = seriesMA;
-    } else if (opts.seriesMA) {
-      seriesMA = opts.seriesMA = fillSeries(opts.seriesMA, opts, config);
-    } else {
-      seriesMA = series;
-    }
-  } else {
-    seriesMA = series;
-  }
-  /* 杩囨护鎺塻how=false鐨剆eries */
-  opts._series_ = series = filterSeries(series);
-  //閲嶆柊璁$畻鍥捐〃鍖哄煙
-  opts.area = new Array(4);
-  //澶嶄綅缁樺浘鍖哄煙
-  for (var j = 0; j < 4; j++) {
-    opts.area[j] = opts.padding[j] * opts.pix;
-  }
-  //閫氳繃璁$畻涓夊ぇ鍖哄煙锛氬浘渚嬨�乆杞淬�乊杞寸殑澶у皬锛岀‘瀹氱粯鍥惧尯鍩�
-  var _calLegendData = calLegendData(seriesMA, opts, config, opts.chartData, context),
-  legendHeight = _calLegendData.area.wholeHeight,
-  legendWidth = _calLegendData.area.wholeWidth;
-
-  switch (opts.legend.position) {
-    case 'top':
-      opts.area[0] += legendHeight;
-      break;
-    case 'bottom':
-      opts.area[2] += legendHeight;
-      break;
-    case 'left':
-      opts.area[3] += legendWidth;
-      break;
-    case 'right':
-      opts.area[1] += legendWidth;
-      break;}
-
-
-  var _calYAxisData = {},
-  yAxisWidth = 0;
-  if (opts.type === 'line' || opts.type === 'column' || opts.type === 'area' || opts.type === 'mix' || opts.type === 'candle' || opts.type === 'scatter' || opts.type === 'bubble' || opts.type === 'bar') {
-    _calYAxisData = calYAxisData(series, opts, config, context);
-    yAxisWidth = _calYAxisData.yAxisWidth;
-    //濡傛灉鏄剧ずY杞存爣棰�
-    if (opts.yAxis.showTitle) {
-      var maxTitleHeight = 0;
-      for (var i = 0; i < opts.yAxis.data.length; i++) {
-        maxTitleHeight = Math.max(maxTitleHeight, opts.yAxis.data[i].titleFontSize ? opts.yAxis.data[i].titleFontSize * opts.pix : config.fontSize);
-      }
-      opts.area[0] += maxTitleHeight;
-    }
-    var rightIndex = 0,
-    leftIndex = 0;
-    //璁$畻涓荤粯鍥惧尯鍩熷乏鍙充綅缃�
-    for (var _i29 = 0; _i29 < yAxisWidth.length; _i29++) {
-      if (yAxisWidth[_i29].position == 'left') {
-        if (leftIndex > 0) {
-          opts.area[3] += yAxisWidth[_i29].width + opts.yAxis.padding * opts.pix;
-        } else {
-          opts.area[3] += yAxisWidth[_i29].width;
-        }
-        leftIndex += 1;
-      } else if (yAxisWidth[_i29].position == 'right') {
-        if (rightIndex > 0) {
-          opts.area[1] += yAxisWidth[_i29].width + opts.yAxis.padding * opts.pix;
-        } else {
-          opts.area[1] += yAxisWidth[_i29].width;
-        }
-        rightIndex += 1;
-      }
-    }
-  } else {
-    config.yAxisWidth = yAxisWidth;
-  }
-  opts.chartData.yAxisData = _calYAxisData;
-
-  if (opts.categories && opts.categories.length && opts.type !== 'radar' && opts.type !== 'gauge' && opts.type !== 'bar') {
-    opts.chartData.xAxisData = getXAxisPoints(opts.categories, opts, config);
-    var _calCategoriesData = calCategoriesData(opts.categories, opts, config, opts.chartData.xAxisData.eachSpacing, context),
-    xAxisHeight = _calCategoriesData.xAxisHeight,
-    angle = _calCategoriesData.angle;
-    config.xAxisHeight = xAxisHeight;
-    config._xAxisTextAngle_ = angle;
-    opts.area[2] += xAxisHeight;
-    opts.chartData.categoriesData = _calCategoriesData;
-  } else {
-    if (opts.type === 'line' || opts.type === 'area' || opts.type === 'scatter' || opts.type === 'bubble' || opts.type === 'bar') {
-      opts.chartData.xAxisData = calXAxisData(series, opts, config, context);
-      categories = opts.chartData.xAxisData.rangesFormat;
-      var _calCategoriesData2 = calCategoriesData(categories, opts, config, opts.chartData.xAxisData.eachSpacing, context),
-      _xAxisHeight = _calCategoriesData2.xAxisHeight,
-      _angle = _calCategoriesData2.angle;
-      config.xAxisHeight = _xAxisHeight;
-      config._xAxisTextAngle_ = _angle;
-      opts.area[2] += _xAxisHeight;
-      opts.chartData.categoriesData = _calCategoriesData2;
-    } else {
-      opts.chartData.xAxisData = {
-        xAxisPoints: [] };
-
-    }
-  }
-  //璁$畻鍙冲榻愬亸绉昏窛绂�
-  if (opts.enableScroll && opts.xAxis.scrollAlign == 'right' && opts._scrollDistance_ === undefined) {
-    var offsetLeft = 0,
-    xAxisPoints = opts.chartData.xAxisData.xAxisPoints,
-    startX = opts.chartData.xAxisData.startX,
-    endX = opts.chartData.xAxisData.endX,
-    eachSpacing = opts.chartData.xAxisData.eachSpacing;
-    var totalWidth = eachSpacing * (xAxisPoints.length - 1);
-    var screenWidth = endX - startX;
-    offsetLeft = screenWidth - totalWidth;
-    _this.scrollOption = {
-      currentOffset: offsetLeft,
-      startTouchX: offsetLeft,
-      distance: 0,
-      lastMoveTime: 0 };
-
-    opts._scrollDistance_ = offsetLeft;
-  }
-
-  if (type === 'pie' || type === 'ring' || type === 'rose') {
-    config._pieTextMaxLength_ = opts.dataLabel === false ? 0 : getPieTextMaxLength(seriesMA, config, context, opts);
-  }
-  switch (type) {
-    case 'word':
-      this.animationInstance = new Animation({
-        timing: opts.timing,
-        duration: duration,
-        onProcess: function onProcess(process) {
-          context.clearRect(0, 0, opts.width, opts.height);
-          if (opts.rotate) {
-            contextRotate(context, opts);
-          }
-          drawWordCloudDataPoints(series, opts, config, context, process);
-          drawCanvas(opts, context);
-        },
-        onAnimationFinish: function onAnimationFinish() {
-          _this.uevent.trigger('renderComplete');
-        } });
-
-      break;
-    case 'map':
-      context.clearRect(0, 0, opts.width, opts.height);
-      drawMapDataPoints(series, opts, config, context);
-      break;
-    case 'funnel':
-      this.animationInstance = new Animation({
-        timing: opts.timing,
-        duration: duration,
-        onProcess: function onProcess(process) {
-          context.clearRect(0, 0, opts.width, opts.height);
-          if (opts.rotate) {
-            contextRotate(context, opts);
-          }
-          opts.chartData.funnelData = drawFunnelDataPoints(series, opts, config, context, process);
-          drawLegend(opts.series, opts, config, context, opts.chartData);
-          drawToolTipBridge(opts, config, context, process);
-          drawCanvas(opts, context);
-        },
-        onAnimationFinish: function onAnimationFinish() {
-          _this.uevent.trigger('renderComplete');
-        } });
-
-      break;
-    case 'line':
-      this.animationInstance = new Animation({
-        timing: opts.timing,
-        duration: duration,
-        onProcess: function onProcess(process) {
-          context.clearRect(0, 0, opts.width, opts.height);
-          if (opts.rotate) {
-            contextRotate(context, opts);
-          }
-          drawYAxisGrid(categories, opts, config, context);
-          drawXAxis(categories, opts, config, context);
-          var _drawLineDataPoints = drawLineDataPoints(series, opts, config, context, process),
-          xAxisPoints = _drawLineDataPoints.xAxisPoints,
-          calPoints = _drawLineDataPoints.calPoints,
-          eachSpacing = _drawLineDataPoints.eachSpacing;
-          opts.chartData.xAxisPoints = xAxisPoints;
-          opts.chartData.calPoints = calPoints;
-          opts.chartData.eachSpacing = eachSpacing;
-          drawYAxis(series, opts, config, context);
-          if (opts.enableMarkLine !== false && process === 1) {
-            drawMarkLine(opts, config, context);
-          }
-          drawLegend(opts.series, opts, config, context, opts.chartData);
-          drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);
-          drawCanvas(opts, context);
-        },
-        onAnimationFinish: function onAnimationFinish() {
-          _this.uevent.trigger('renderComplete');
-        } });
-
-      break;
-    case 'scatter':
-      this.animationInstance = new Animation({
-        timing: opts.timing,
-        duration: duration,
-        onProcess: function onProcess(process) {
-          context.clearRect(0, 0, opts.width, opts.height);
-          if (opts.rotate) {
-            contextRotate(context, opts);
-          }
-          drawYAxisGrid(categories, opts, config, context);
-          drawXAxis(categories, opts, config, context);
-          var _drawScatterDataPoints = drawScatterDataPoints(series, opts, config, context, process),
-          xAxisPoints = _drawScatterDataPoints.xAxisPoints,
-          calPoints = _drawScatterDataPoints.calPoints,
-          eachSpacing = _drawScatterDataPoints.eachSpacing;
-          opts.chartData.xAxisPoints = xAxisPoints;
-          opts.chartData.calPoints = calPoints;
-          opts.chartData.eachSpacing = eachSpacing;
-          drawYAxis(series, opts, config, context);
-          if (opts.enableMarkLine !== false && process === 1) {
-            drawMarkLine(opts, config, context);
-          }
-          drawLegend(opts.series, opts, config, context, opts.chartData);
-          drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);
-          drawCanvas(opts, context);
-        },
-        onAnimationFinish: function onAnimationFinish() {
-          _this.uevent.trigger('renderComplete');
-        } });
-
-      break;
-    case 'bubble':
-      this.animationInstance = new Animation({
-        timing: opts.timing,
-        duration: duration,
-        onProcess: function onProcess(process) {
-          context.clearRect(0, 0, opts.width, opts.height);
-          if (opts.rotate) {
-            contextRotate(context, opts);
-          }
-          drawYAxisGrid(categories, opts, config, context);
-          drawXAxis(categories, opts, config, context);
-          var _drawBubbleDataPoints = drawBubbleDataPoints(series, opts, config, context, process),
-          xAxisPoints = _drawBubbleDataPoints.xAxisPoints,
-          calPoints = _drawBubbleDataPoints.calPoints,
-          eachSpacing = _drawBubbleDataPoints.eachSpacing;
-          opts.chartData.xAxisPoints = xAxisPoints;
-          opts.chartData.calPoints = calPoints;
-          opts.chartData.eachSpacing = eachSpacing;
-          drawYAxis(series, opts, config, context);
-          if (opts.enableMarkLine !== false && process === 1) {
-            drawMarkLine(opts, config, context);
-          }
-          drawLegend(opts.series, opts, config, context, opts.chartData);
-          drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);
-          drawCanvas(opts, context);
-        },
-        onAnimationFinish: function onAnimationFinish() {
-          _this.uevent.trigger('renderComplete');
-        } });
-
-      break;
-    case 'mix':
-      this.animationInstance = new Animation({
-        timing: opts.timing,
-        duration: duration,
-        onProcess: function onProcess(process) {
-          context.clearRect(0, 0, opts.width, opts.height);
-          if (opts.rotate) {
-            contextRotate(context, opts);
-          }
-          drawYAxisGrid(categories, opts, config, context);
-          drawXAxis(categories, opts, config, context);
-          var _drawMixDataPoints = drawMixDataPoints(series, opts, config, context, process),
-          xAxisPoints = _drawMixDataPoints.xAxisPoints,
-          calPoints = _drawMixDataPoints.calPoints,
-          eachSpacing = _drawMixDataPoints.eachSpacing;
-          opts.chartData.xAxisPoints = xAxisPoints;
-          opts.chartData.calPoints = calPoints;
-          opts.chartData.eachSpacing = eachSpacing;
-          drawYAxis(series, opts, config, context);
-          if (opts.enableMarkLine !== false && process === 1) {
-            drawMarkLine(opts, config, context);
-          }
-          drawLegend(opts.series, opts, config, context, opts.chartData);
-          drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);
-          drawCanvas(opts, context);
-        },
-        onAnimationFinish: function onAnimationFinish() {
-          _this.uevent.trigger('renderComplete');
-        } });
-
-      break;
-    case 'column':
-      this.animationInstance = new Animation({
-        timing: opts.timing,
-        duration: duration,
-        onProcess: function onProcess(process) {
-          context.clearRect(0, 0, opts.width, opts.height);
-          if (opts.rotate) {
-            contextRotate(context, opts);
-          }
-          drawYAxisGrid(categories, opts, config, context);
-          drawXAxis(categories, opts, config, context);
-          var _drawColumnDataPoints = drawColumnDataPoints(series, opts, config, context, process),
-          xAxisPoints = _drawColumnDataPoints.xAxisPoints,
-          calPoints = _drawColumnDataPoints.calPoints,
-          eachSpacing = _drawColumnDataPoints.eachSpacing;
-          opts.chartData.xAxisPoints = xAxisPoints;
-          opts.chartData.calPoints = calPoints;
-          opts.chartData.eachSpacing = eachSpacing;
-          drawYAxis(series, opts, config, context);
-          if (opts.enableMarkLine !== false && process === 1) {
-            drawMarkLine(opts, config, context);
-          }
-          drawLegend(opts.series, opts, config, context, opts.chartData);
-          drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);
-          drawCanvas(opts, context);
-        },
-        onAnimationFinish: function onAnimationFinish() {
-          _this.uevent.trigger('renderComplete');
-        } });
-
-      break;
-    case 'bar':
-      this.animationInstance = new Animation({
-        timing: opts.timing,
-        duration: duration,
-        onProcess: function onProcess(process) {
-          context.clearRect(0, 0, opts.width, opts.height);
-          if (opts.rotate) {
-            contextRotate(context, opts);
-          }
-          drawXAxis(categories, opts, config, context);
-          var _drawBarDataPoints = drawBarDataPoints(series, opts, config, context, process),
-          yAxisPoints = _drawBarDataPoints.yAxisPoints,
-          calPoints = _drawBarDataPoints.calPoints,
-          eachSpacing = _drawBarDataPoints.eachSpacing;
-          opts.chartData.yAxisPoints = yAxisPoints;
-          opts.chartData.xAxisPoints = opts.chartData.xAxisData.xAxisPoints;
-          opts.chartData.calPoints = calPoints;
-          opts.chartData.eachSpacing = eachSpacing;
-          drawYAxis(series, opts, config, context);
-          if (opts.enableMarkLine !== false && process === 1) {
-            drawMarkLine(opts, config, context);
-          }
-          drawLegend(opts.series, opts, config, context, opts.chartData);
-          drawToolTipBridge(opts, config, context, process, eachSpacing, yAxisPoints);
-          drawCanvas(opts, context);
-        },
-        onAnimationFinish: function onAnimationFinish() {
-          _this.uevent.trigger('renderComplete');
-        } });
-
-      break;
-    case 'area':
-      this.animationInstance = new Animation({
-        timing: opts.timing,
-        duration: duration,
-        onProcess: function onProcess(process) {
-          context.clearRect(0, 0, opts.width, opts.height);
-          if (opts.rotate) {
-            contextRotate(context, opts);
-          }
-          drawYAxisGrid(categories, opts, config, context);
-          drawXAxis(categories, opts, config, context);
-          var _drawAreaDataPoints = drawAreaDataPoints(series, opts, config, context, process),
-          xAxisPoints = _drawAreaDataPoints.xAxisPoints,
-          calPoints = _drawAreaDataPoints.calPoints,
-          eachSpacing = _drawAreaDataPoints.eachSpacing;
-          opts.chartData.xAxisPoints = xAxisPoints;
-          opts.chartData.calPoints = calPoints;
-          opts.chartData.eachSpacing = eachSpacing;
-          drawYAxis(series, opts, config, context);
-          if (opts.enableMarkLine !== false && process === 1) {
-            drawMarkLine(opts, config, context);
-          }
-          drawLegend(opts.series, opts, config, context, opts.chartData);
-          drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);
-          drawCanvas(opts, context);
-        },
-        onAnimationFinish: function onAnimationFinish() {
-          _this.uevent.trigger('renderComplete');
-        } });
-
-      break;
-    case 'ring':
-    case 'pie':
-      this.animationInstance = new Animation({
-        timing: opts.timing,
-        duration: duration,
-        onProcess: function onProcess(process) {
-          context.clearRect(0, 0, opts.width, opts.height);
-          if (opts.rotate) {
-            contextRotate(context, opts);
-          }
-          opts.chartData.pieData = drawPieDataPoints(series, opts, config, context, process);
-          drawLegend(opts.series, opts, config, context, opts.chartData);
-          drawToolTipBridge(opts, config, context, process);
-          drawCanvas(opts, context);
-        },
-        onAnimationFinish: function onAnimationFinish() {
-          _this.uevent.trigger('renderComplete');
-        } });
-
-      break;
-    case 'rose':
-      this.animationInstance = new Animation({
-        timing: opts.timing,
-        duration: duration,
-        onProcess: function onProcess(process) {
-          context.clearRect(0, 0, opts.width, opts.height);
-          if (opts.rotate) {
-            contextRotate(context, opts);
-          }
-          opts.chartData.pieData = drawRoseDataPoints(series, opts, config, context, process);
-          drawLegend(opts.series, opts, config, context, opts.chartData);
-          drawToolTipBridge(opts, config, context, process);
-          drawCanvas(opts, context);
-        },
-        onAnimationFinish: function onAnimationFinish() {
-          _this.uevent.trigger('renderComplete');
-        } });
-
-      break;
-    case 'radar':
-      this.animationInstance = new Animation({
-        timing: opts.timing,
-        duration: duration,
-        onProcess: function onProcess(process) {
-          context.clearRect(0, 0, opts.width, opts.height);
-          if (opts.rotate) {
-            contextRotate(context, opts);
-          }
-          opts.chartData.radarData = drawRadarDataPoints(series, opts, config, context, process);
-          drawLegend(opts.series, opts, config, context, opts.chartData);
-          drawToolTipBridge(opts, config, context, process);
-          drawCanvas(opts, context);
-        },
-        onAnimationFinish: function onAnimationFinish() {
-          _this.uevent.trigger('renderComplete');
-        } });
-
-      break;
-    case 'arcbar':
-      this.animationInstance = new Animation({
-        timing: opts.timing,
-        duration: duration,
-        onProcess: function onProcess(process) {
-          context.clearRect(0, 0, opts.width, opts.height);
-          if (opts.rotate) {
-            contextRotate(context, opts);
-          }
-          opts.chartData.arcbarData = drawArcbarDataPoints(series, opts, config, context, process);
-          drawCanvas(opts, context);
-        },
-        onAnimationFinish: function onAnimationFinish() {
-          _this.uevent.trigger('renderComplete');
-        } });
-
-      break;
-    case 'gauge':
-      this.animationInstance = new Animation({
-        timing: opts.timing,
-        duration: duration,
-        onProcess: function onProcess(process) {
-          context.clearRect(0, 0, opts.width, opts.height);
-          if (opts.rotate) {
-            contextRotate(context, opts);
-          }
-          opts.chartData.gaugeData = drawGaugeDataPoints(categories, series, opts, config, context, process);
-          drawCanvas(opts, context);
-        },
-        onAnimationFinish: function onAnimationFinish() {
-          _this.uevent.trigger('renderComplete');
-        } });
-
-      break;
-    case 'candle':
-      this.animationInstance = new Animation({
-        timing: opts.timing,
-        duration: duration,
-        onProcess: function onProcess(process) {
-          context.clearRect(0, 0, opts.width, opts.height);
-          if (opts.rotate) {
-            contextRotate(context, opts);
-          }
-          drawYAxisGrid(categories, opts, config, context);
-          drawXAxis(categories, opts, config, context);
-          var _drawCandleDataPoints = drawCandleDataPoints(series, seriesMA, opts, config, context, process),
-          xAxisPoints = _drawCandleDataPoints.xAxisPoints,
-          calPoints = _drawCandleDataPoints.calPoints,
-          eachSpacing = _drawCandleDataPoints.eachSpacing;
-          opts.chartData.xAxisPoints = xAxisPoints;
-          opts.chartData.calPoints = calPoints;
-          opts.chartData.eachSpacing = eachSpacing;
-          drawYAxis(series, opts, config, context);
-          if (opts.enableMarkLine !== false && process === 1) {
-            drawMarkLine(opts, config, context);
-          }
-          if (seriesMA) {
-            drawLegend(seriesMA, opts, config, context, opts.chartData);
-          } else {
-            drawLegend(opts.series, opts, config, context, opts.chartData);
-          }
-          drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);
-          drawCanvas(opts, context);
-        },
-        onAnimationFinish: function onAnimationFinish() {
-          _this.uevent.trigger('renderComplete');
-        } });
-
-      break;}
-
-}
-
-function uChartsEvent() {
-  this.events = {};
-}
-
-uChartsEvent.prototype.addEventListener = function (type, listener) {
-  this.events[type] = this.events[type] || [];
-  this.events[type].push(listener);
-};
-
-uChartsEvent.prototype.delEventListener = function (type) {
-  this.events[type] = [];
-};
-
-uChartsEvent.prototype.trigger = function () {
-  for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
-    args[_key] = arguments[_key];
-  }
-  var type = args[0];
-  var params = args.slice(1);
-  if (!!this.events[type]) {
-    this.events[type].forEach(function (listener) {
-      try {
-        listener.apply(null, params);
-      } catch (e) {
-        //console.log('[uCharts] '+e);
-      }
-    });
-  }
-};
-
-var uCharts = function uCharts(opts) {
-  opts.pix = opts.pixelRatio ? opts.pixelRatio : 1;
-  opts.fontSize = opts.fontSize ? opts.fontSize : 13;
-  opts.fontColor = opts.fontColor ? opts.fontColor : config.fontColor;
-  if (opts.background == "" || opts.background == "none") {
-    opts.background = "#FFFFFF";
-  }
-  opts.title = assign({}, opts.title);
-  opts.subtitle = assign({}, opts.subtitle);
-  opts.duration = opts.duration ? opts.duration : 1000;
-  opts.yAxis = assign({}, {
-    data: [],
-    showTitle: false,
-    disabled: false,
-    disableGrid: false,
-    splitNumber: 5,
-    gridType: 'solid',
-    dashLength: 4 * opts.pix,
-    gridColor: '#cccccc',
-    padding: 10,
-    fontColor: '#666666' },
-  opts.yAxis);
-  opts.xAxis = assign({}, {
-    rotateLabel: false,
-    disabled: false,
-    disableGrid: false,
-    splitNumber: 5,
-    calibration: false,
-    gridType: 'solid',
-    dashLength: 4,
-    scrollAlign: 'left',
-    boundaryGap: 'center',
-    axisLine: true,
-    axisLineColor: '#cccccc' },
-  opts.xAxis);
-  opts.xAxis.scrollPosition = opts.xAxis.scrollAlign;
-  opts.legend = assign({}, {
-    show: true,
-    position: 'bottom',
-    float: 'center',
-    backgroundColor: 'rgba(0,0,0,0)',
-    borderColor: 'rgba(0,0,0,0)',
-    borderWidth: 0,
-    padding: 5,
-    margin: 5,
-    itemGap: 10,
-    fontSize: opts.fontSize,
-    lineHeight: opts.fontSize,
-    fontColor: opts.fontColor,
-    formatter: {},
-    hiddenColor: '#CECECE' },
-  opts.legend);
-  opts.extra = assign({}, opts.extra);
-  opts.rotate = opts.rotate ? true : false;
-  opts.animation = opts.animation ? true : false;
-  opts.rotate = opts.rotate ? true : false;
-  opts.canvas2d = opts.canvas2d ? true : false;
-
-  var config$$1 = JSON.parse(JSON.stringify(config));
-  config$$1.color = opts.color ? opts.color : config$$1.color;
-  config$$1.yAxisTitleWidth = opts.yAxis.disabled !== true && opts.yAxis.title ? config$$1.yAxisTitleWidth : 0;
-  if (opts.type == 'pie') {
-    config$$1.pieChartLinePadding = opts.dataLabel === false ? 0 : opts.extra.pie.labelWidth * opts.pix || config$$1.pieChartLinePadding * opts.pix;
-  }
-  if (opts.type == 'ring') {
-    config$$1.pieChartLinePadding = opts.dataLabel === false ? 0 : opts.extra.ring.labelWidth * opts.pix || config$$1.pieChartLinePadding * opts.pix;
-  }
-  if (opts.type == 'rose') {
-    config$$1.pieChartLinePadding = opts.dataLabel === false ? 0 : opts.extra.rose.labelWidth * opts.pix || config$$1.pieChartLinePadding * opts.pix;
-  }
-  config$$1.pieChartTextPadding = opts.dataLabel === false ? 0 : config$$1.pieChartTextPadding * opts.pix;
-  config$$1.yAxisSplit = opts.yAxis.splitNumber ? opts.yAxis.splitNumber : config.yAxisSplit;
-
-  //灞忓箷鏃嬭浆
-  config$$1.rotate = opts.rotate;
-  if (opts.rotate) {
-    var tempWidth = opts.width;
-    var tempHeight = opts.height;
-    opts.width = tempHeight;
-    opts.height = tempWidth;
-  }
-
-  //閫傞厤楂樺垎灞�
-  opts.padding = opts.padding ? opts.padding : config$$1.padding;
-  config$$1.yAxisWidth = config.yAxisWidth * opts.pix;
-  config$$1.xAxisHeight = config.xAxisHeight * opts.pix;
-  if (opts.enableScroll && opts.xAxis.scrollShow) {
-    config$$1.xAxisHeight += 6 * opts.pix;
-  }
-  config$$1.xAxisLineHeight = config.xAxisLineHeight * opts.pix;
-  config$$1.fontSize = opts.fontSize * opts.pix;
-  config$$1.titleFontSize = config.titleFontSize * opts.pix;
-  config$$1.subtitleFontSize = config.subtitleFontSize * opts.pix;
-  config$$1.toolTipPadding = config.toolTipPadding * opts.pix;
-  config$$1.toolTipLineHeight = config.toolTipLineHeight * opts.pix;
-  config$$1.columePadding = config.columePadding * opts.pix;
-  //this.context = opts.context ? opts.context : uni.createCanvasContext(opts.canvasId, opts.$this);
-  //v2.0鐗堟湰鍚庨渶瑕佽嚜琛岃幏鍙朿ontext骞朵紶鍏pts杩涜鍒濆鍖栵紝杩欎箞鍋氭槸涓轰簡纭繚uCharts鍙互璺ㄦ洿澶氱浣跨敤锛屽苟淇濊瘉浜嗚嚜瀹氫箟缁勪欢this瀹炰緥涓嶈寰幆宓屽銆傚鏋滄偍瑙夊緱涓嶄究璇峰彇娑堜笂闈㈡敞閲婏紝閲囩敤v1.0鐗堟湰鐨勬柟寮忎娇鐢紝瀵规缁欐偍甯︽潵鐨勪笉渚挎暚璇疯皡瑙o紒
-  if (!opts.context) {
-    throw new Error('[uCharts] 鏈幏鍙栧埌context锛佹敞鎰忥細v2.0鐗堟湰鍚庯紝闇�瑕佽嚜琛岃幏鍙朿anvas鐨勭粯鍥句笂涓嬫枃骞朵紶鍏pts.context锛�');
-  }
-  this.context = opts.context;
-  if (!this.context.setTextAlign) {
-    this.context.setStrokeStyle = function (e) {
-      return this.strokeStyle = e;
-    };
-    this.context.setLineWidth = function (e) {
-      return this.lineWidth = e;
-    };
-    this.context.setLineCap = function (e) {
-      return this.lineCap = e;
-    };
-    this.context.setFontSize = function (e) {
-      return this.font = e + "px sans-serif";
-    };
-    this.context.setFillStyle = function (e) {
-      return this.fillStyle = e;
-    };
-    this.context.setTextAlign = function (e) {
-      return this.textAlign = e;
-    };
-    this.context.draw = function () {};
-  }
-  //鍏煎NVUEsetLineDash
-  if (!this.context.setLineDash) {
-    this.context.setLineDash = function (e) {};
-  }
-  opts.chartData = {};
-  this.uevent = new uChartsEvent();
-  this.scrollOption = {
-    currentOffset: 0,
-    startTouchX: 0,
-    distance: 0,
-    lastMoveTime: 0 };
-
-  this.opts = opts;
-  this.config = config$$1;
-  drawCharts.call(this, opts.type, opts, config$$1, this.context);
-};
-
-uCharts.prototype.updateData = function () {
-  var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
-  this.opts = assign({}, this.opts, data);
-  this.opts.updateData = true;
-  var scrollPosition = data.scrollPosition || 'current';
-  switch (scrollPosition) {
-    case 'current':
-      //this.opts._scrollDistance_ = this.scrollOption.currentOffset;
-      break;
-    case 'left':
-      this.opts._scrollDistance_ = 0;
-      this.scrollOption = {
-        currentOffset: 0,
-        startTouchX: 0,
-        distance: 0,
-        lastMoveTime: 0 };
-
-      break;
-    case 'right':
-      var _calYAxisData = calYAxisData(this.opts.series, this.opts, this.config, this.context),yAxisWidth = _calYAxisData.yAxisWidth;
-      this.config.yAxisWidth = yAxisWidth;
-      var offsetLeft = 0;
-      var _getXAxisPoints0 = getXAxisPoints(this.opts.categories, this.opts, this.config),xAxisPoints = _getXAxisPoints0.xAxisPoints,
-      startX = _getXAxisPoints0.startX,
-      endX = _getXAxisPoints0.endX,
-      eachSpacing = _getXAxisPoints0.eachSpacing;
-      var totalWidth = eachSpacing * (xAxisPoints.length - 1);
-      var screenWidth = endX - startX;
-      offsetLeft = screenWidth - totalWidth;
-      this.scrollOption = {
-        currentOffset: offsetLeft,
-        startTouchX: offsetLeft,
-        distance: 0,
-        lastMoveTime: 0 };
-
-      this.opts._scrollDistance_ = offsetLeft;
-      break;}
-
-  drawCharts.call(this, this.opts.type, this.opts, this.config, this.context);
-};
-
-uCharts.prototype.zoom = function () {
-  var val = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.opts.xAxis.itemCount;
-  if (this.opts.enableScroll !== true) {
-    __f__("log", '[uCharts] 璇峰惎鐢ㄦ粴鍔ㄦ潯鍚庝娇鐢�', " at uni_modules/qiun-data-charts/js_sdk/u-charts/u-charts.js:6386");
-    return;
-  }
-  //褰撳墠灞忓箷涓棿鐐�
-  var centerPoint = Math.round(Math.abs(this.scrollOption.currentOffset) / this.opts.chartData.eachSpacing) + Math.round(this.opts.xAxis.itemCount / 2);
-  this.opts.animation = false;
-  this.opts.xAxis.itemCount = val.itemCount;
-  //閲嶆柊璁$畻x杞村亸绉昏窛绂�
-  var _calYAxisData = calYAxisData(this.opts.series, this.opts, this.config, this.context),
-  yAxisWidth = _calYAxisData.yAxisWidth;
-  this.config.yAxisWidth = yAxisWidth;
-  var offsetLeft = 0;
-  var _getXAxisPoints0 = getXAxisPoints(this.opts.categories, this.opts, this.config),
-  xAxisPoints = _getXAxisPoints0.xAxisPoints,
-  startX = _getXAxisPoints0.startX,
-  endX = _getXAxisPoints0.endX,
-  eachSpacing = _getXAxisPoints0.eachSpacing;
-  var centerLeft = eachSpacing * centerPoint;
-  var screenWidth = endX - startX;
-  var MaxLeft = screenWidth - eachSpacing * (xAxisPoints.length - 1);
-  offsetLeft = screenWidth / 2 - centerLeft;
-  if (offsetLeft > 0) {
-    offsetLeft = 0;
-  }
-  if (offsetLeft < MaxLeft) {
-    offsetLeft = MaxLeft;
-  }
-  this.scrollOption = {
-    currentOffset: offsetLeft,
-    startTouchX: offsetLeft,
-    distance: 0,
-    lastMoveTime: 0 };
-
-  this.opts._scrollDistance_ = offsetLeft;
-  drawCharts.call(this, this.opts.type, this.opts, this.config, this.context);
-};
-
-uCharts.prototype.stopAnimation = function () {
-  this.animationInstance && this.animationInstance.stop();
-};
-
-uCharts.prototype.addEventListener = function (type, listener) {
-  this.uevent.addEventListener(type, listener);
-};
-
-uCharts.prototype.delEventListener = function (type) {
-  this.uevent.delEventListener(type);
-};
-
-uCharts.prototype.getCurrentDataIndex = function (e) {
-  var touches = null;
-  if (e.changedTouches) {
-    touches = e.changedTouches[0];
-  } else {
-    touches = e.mp.changedTouches[0];
-  }
-  if (touches) {
-    var _touches$ = getTouches(touches, this.opts, e);
-    if (this.opts.type === 'pie' || this.opts.type === 'ring') {
-      return findPieChartCurrentIndex({
-        x: _touches$.x,
-        y: _touches$.y },
-      this.opts.chartData.pieData, this.opts);
-    } else if (this.opts.type === 'rose') {
-      return findRoseChartCurrentIndex({
-        x: _touches$.x,
-        y: _touches$.y },
-      this.opts.chartData.pieData, this.opts);
-    } else if (this.opts.type === 'radar') {
-      return findRadarChartCurrentIndex({
-        x: _touches$.x,
-        y: _touches$.y },
-      this.opts.chartData.radarData, this.opts.categories.length);
-    } else if (this.opts.type === 'funnel') {
-      return findFunnelChartCurrentIndex({
-        x: _touches$.x,
-        y: _touches$.y },
-      this.opts.chartData.funnelData);
-    } else if (this.opts.type === 'map') {
-      return findMapChartCurrentIndex({
-        x: _touches$.x,
-        y: _touches$.y },
-      this.opts);
-    } else if (this.opts.type === 'word') {
-      return findWordChartCurrentIndex({
-        x: _touches$.x,
-        y: _touches$.y },
-      this.opts.chartData.wordCloudData);
-    } else if (this.opts.type === 'bar') {
-      return findBarChartCurrentIndex({
-        x: _touches$.x,
-        y: _touches$.y },
-      this.opts.chartData.calPoints, this.opts, this.config, Math.abs(this.scrollOption.currentOffset));
-    } else {
-      return findCurrentIndex({
-        x: _touches$.x,
-        y: _touches$.y },
-      this.opts.chartData.calPoints, this.opts, this.config, Math.abs(this.scrollOption.currentOffset));
-    }
-  }
-  return -1;
-};
-
-uCharts.prototype.getLegendDataIndex = function (e) {
-  var touches = null;
-  if (e.changedTouches) {
-    touches = e.changedTouches[0];
-  } else {
-    touches = e.mp.changedTouches[0];
-  }
-  if (touches) {
-    var _touches$ = getTouches(touches, this.opts, e);
-    return findLegendIndex({
-      x: _touches$.x,
-      y: _touches$.y },
-    this.opts.chartData.legendData);
-  }
-  return -1;
-};
-
-uCharts.prototype.touchLegend = function (e) {
-  var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
-  var touches = null;
-  if (e.changedTouches) {
-    touches = e.changedTouches[0];
-  } else {
-    touches = e.mp.changedTouches[0];
-  }
-  if (touches) {
-    var _touches$ = getTouches(touches, this.opts, e);
-    var index = this.getLegendDataIndex(e);
-    if (index >= 0) {
-      if (this.opts.type == 'candle') {
-        this.opts.seriesMA[index].show = !this.opts.seriesMA[index].show;
-      } else {
-        this.opts.series[index].show = !this.opts.series[index].show;
-      }
-      this.opts.animation = option.animation ? true : false;
-      this.opts._scrollDistance_ = this.scrollOption.currentOffset;
-      drawCharts.call(this, this.opts.type, this.opts, this.config, this.context);
-    }
-  }
-
-};
-
-uCharts.prototype.showToolTip = function (e) {var _this2 = this;
-  var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
-  var touches = null;
-  if (e.changedTouches) {
-    touches = e.changedTouches[0];
-  } else {
-    touches = e.mp.changedTouches[0];
-  }
-  if (!touches) {
-    __f__("log", "[uCharts] 鏈幏鍙栧埌event鍧愭爣淇℃伅", " at uni_modules/qiun-data-charts/js_sdk/u-charts/u-charts.js:6540");
-  }
-  var _touches$ = getTouches(touches, this.opts, e);
-  var currentOffset = this.scrollOption.currentOffset;
-  var opts = assign({}, this.opts, {
-    _scrollDistance_: currentOffset,
-    animation: false });
-
-  if (this.opts.type === 'line' || this.opts.type === 'area' || this.opts.type === 'column' || this.opts.type === 'scatter' || this.opts.type === 'bubble') {
-    var current = this.getCurrentDataIndex(e);
-    var index = option.index == undefined ? current.index : option.index;
-    if (index > -1 || index.length > 0) {
-      var seriesData = getSeriesDataItem(this.opts.series, index, current.group);
-      if (seriesData.length !== 0) {
-        var _getToolTipData = getToolTipData(seriesData, this.opts, index, current.group, this.opts.categories, option),
-        textList = _getToolTipData.textList,
-        offset = _getToolTipData.offset;
-        offset.y = _touches$.y;
-        opts.tooltip = {
-          textList: option.textList !== undefined ? option.textList : textList,
-          offset: option.offset !== undefined ? option.offset : offset,
-          option: option,
-          index: index };
-
-      }
-    }
-    drawCharts.call(this, opts.type, opts, this.config, this.context);
-  }
-  if (this.opts.type === 'bar') {
-    var current = this.getCurrentDataIndex(e);
-    var index = option.index == undefined ? current.index : option.index;
-    if (index > -1 || index.length > 0) {
-      var seriesData = getSeriesDataItem(this.opts.series, index, current.group);
-      if (seriesData.length !== 0) {
-        var _getToolTipData = getToolTipData(seriesData, this.opts, index, current.group, this.opts.categories, option),
-        textList = _getToolTipData.textList,
-        offset = _getToolTipData.offset;
-        offset.x = _touches$.x;
-        opts.tooltip = {
-          textList: option.textList !== undefined ? option.textList : textList,
-          offset: option.offset !== undefined ? option.offset : offset,
-          option: option,
-          index: index };
-
-      }
-    }
-    drawCharts.call(this, opts.type, opts, this.config, this.context);
-  }
-  if (this.opts.type === 'mix') {
-    var current = this.getCurrentDataIndex(e);
-    var index = option.index == undefined ? current.index : option.index;
-    if (index > -1) {
-      var currentOffset = this.scrollOption.currentOffset;
-      var opts = assign({}, this.opts, {
-        _scrollDistance_: currentOffset,
-        animation: false });
-
-      var seriesData = getSeriesDataItem(this.opts.series, index);
-      if (seriesData.length !== 0) {
-        var _getMixToolTipData = getMixToolTipData(seriesData, this.opts, index, this.opts.categories, option),
-        textList = _getMixToolTipData.textList,
-        offset = _getMixToolTipData.offset;
-        offset.y = _touches$.y;
-        opts.tooltip = {
-          textList: option.textList ? option.textList : textList,
-          offset: option.offset !== undefined ? option.offset : offset,
-          option: option,
-          index: index };
-
-      }
-    }
-    drawCharts.call(this, opts.type, opts, this.config, this.context);
-  }
-  if (this.opts.type === 'candle') {
-    var current = this.getCurrentDataIndex(e);
-    var index = option.index == undefined ? current.index : option.index;
-    if (index > -1) {
-      var currentOffset = this.scrollOption.currentOffset;
-      var opts = assign({}, this.opts, {
-        _scrollDistance_: currentOffset,
-        animation: false });
-
-      var seriesData = getSeriesDataItem(this.opts.series, index);
-      if (seriesData.length !== 0) {
-        var _getToolTipData = getCandleToolTipData(this.opts.series[0].data, seriesData, this.opts, index, this.opts.categories, this.opts.extra.candle, option),
-        textList = _getToolTipData.textList,
-        offset = _getToolTipData.offset;
-        offset.y = _touches$.y;
-        opts.tooltip = {
-          textList: option.textList ? option.textList : textList,
-          offset: option.offset !== undefined ? option.offset : offset,
-          option: option,
-          index: index };
-
-      }
-    }
-    drawCharts.call(this, opts.type, opts, this.config, this.context);
-  }
-  if (this.opts.type === 'pie' || this.opts.type === 'ring' || this.opts.type === 'rose' || this.opts.type === 'funnel') {
-    var index = option.index == undefined ? this.getCurrentDataIndex(e) : option.index;
-    if (index > -1) {
-      var opts = assign({}, this.opts, { animation: false });
-      var seriesData = assign({}, opts._series_[index]);
-      var textList = [{
-        text: option.formatter ? option.formatter(seriesData, undefined, index, opts) : seriesData.name + ': ' + seriesData.data,
-        color: seriesData.color }];
-
-      var offset = {
-        x: _touches$.x,
-        y: _touches$.y };
-
-      opts.tooltip = {
-        textList: option.textList ? option.textList : textList,
-        offset: option.offset !== undefined ? option.offset : offset,
-        option: option,
-        index: index };
-
-    }
-    drawCharts.call(this, opts.type, opts, this.config, this.context);
-  }
-  if (this.opts.type === 'map') {
-    var index = option.index == undefined ? this.getCurrentDataIndex(e) : option.index;
-    if (index > -1) {
-      var opts = assign({}, this.opts, { animation: false });
-      var seriesData = assign({}, this.opts.series[index]);
-      seriesData.name = seriesData.properties.name;
-      var textList = [{
-        text: option.formatter ? option.formatter(seriesData, undefined, index, this.opts) : seriesData.name,
-        color: seriesData.color }];
-
-      var offset = {
-        x: _touches$.x,
-        y: _touches$.y };
-
-      opts.tooltip = {
-        textList: option.textList ? option.textList : textList,
-        offset: option.offset !== undefined ? option.offset : offset,
-        option: option,
-        index: index };
-
-    }
-    opts.updateData = false;
-    drawCharts.call(this, opts.type, opts, this.config, this.context);
-  }
-  if (this.opts.type === 'word') {
-    var index = option.index == undefined ? this.getCurrentDataIndex(e) : option.index;
-    if (index > -1) {
-      var opts = assign({}, this.opts, { animation: false });
-      var seriesData = assign({}, this.opts.series[index]);
-      var textList = [{
-        text: option.formatter ? option.formatter(seriesData, undefined, index, this.opts) : seriesData.name,
-        color: seriesData.color }];
-
-      var offset = {
-        x: _touches$.x,
-        y: _touches$.y };
-
-      opts.tooltip = {
-        textList: option.textList ? option.textList : textList,
-        offset: option.offset !== undefined ? option.offset : offset,
-        option: option,
-        index: index };
-
-    }
-    opts.updateData = false;
-    drawCharts.call(this, opts.type, opts, this.config, this.context);
-  }
-  if (this.opts.type === 'radar') {
-    var index = option.index == undefined ? this.getCurrentDataIndex(e) : option.index;
-    if (index > -1) {
-      var opts = assign({}, this.opts, { animation: false });
-      var seriesData = getSeriesDataItem(this.opts.series, index);
-      if (seriesData.length !== 0) {
-        var textList = seriesData.map(function (item) {
-          return {
-            text: option.formatter ? option.formatter(item, _this2.opts.categories[index], index, _this2.opts) : item.name + ': ' + item.data,
-            color: item.color };
-
-        });
-        var offset = {
-          x: _touches$.x,
-          y: _touches$.y };
-
-        opts.tooltip = {
-          textList: option.textList ? option.textList : textList,
-          offset: option.offset !== undefined ? option.offset : offset,
-          option: option,
-          index: index };
-
-      }
-    }
-    drawCharts.call(this, opts.type, opts, this.config, this.context);
-  }
-};
-
-uCharts.prototype.translate = function (distance) {
-  this.scrollOption = {
-    currentOffset: distance,
-    startTouchX: distance,
-    distance: 0,
-    lastMoveTime: 0 };
-
-  var opts = assign({}, this.opts, {
-    _scrollDistance_: distance,
-    animation: false });
-
-  drawCharts.call(this, this.opts.type, opts, this.config, this.context);
-};
-
-uCharts.prototype.scrollStart = function (e) {
-  var touches = null;
-  if (e.changedTouches) {
-    touches = e.changedTouches[0];
-  } else {
-    touches = e.mp.changedTouches[0];
-  }
-  var _touches$ = getTouches(touches, this.opts, e);
-  if (touches && this.opts.enableScroll === true) {
-    this.scrollOption.startTouchX = _touches$.x;
-  }
-};
-
-uCharts.prototype.scroll = function (e) {
-  if (this.scrollOption.lastMoveTime === 0) {
-    this.scrollOption.lastMoveTime = Date.now();
-  }
-  var Limit = this.opts.touchMoveLimit || 60;
-  var currMoveTime = Date.now();
-  var duration = currMoveTime - this.scrollOption.lastMoveTime;
-  if (duration < Math.floor(1000 / Limit)) return;
-  this.scrollOption.lastMoveTime = currMoveTime;
-  var touches = null;
-  if (e.changedTouches) {
-    touches = e.changedTouches[0];
-  } else {
-    touches = e.mp.changedTouches[0];
-  }
-  if (touches && this.opts.enableScroll === true) {
-    var _touches$ = getTouches(touches, this.opts, e);
-    var _distance;
-    _distance = _touches$.x - this.scrollOption.startTouchX;
-    var currentOffset = this.scrollOption.currentOffset;
-    var validDistance = calValidDistance(this, currentOffset + _distance, this.opts.chartData, this.config, this.opts);
-    this.scrollOption.distance = _distance = validDistance - currentOffset;
-    var opts = assign({}, this.opts, {
-      _scrollDistance_: currentOffset + _distance,
-      animation: false });
-
-    this.opts = opts;
-    drawCharts.call(this, opts.type, opts, this.config, this.context);
-    return currentOffset + _distance;
-  }
-};
-
-uCharts.prototype.scrollEnd = function (e) {
-  if (this.opts.enableScroll === true) {
-    var _scrollOption = this.scrollOption,
-    currentOffset = _scrollOption.currentOffset,
-    distance = _scrollOption.distance;
-    this.scrollOption.currentOffset = currentOffset + distance;
-    this.scrollOption.distance = 0;
-  }
-};var _default =
-
-uCharts;exports.default = _default;
-/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 92)["default"]))
-
-/***/ }),
-/* 92 */
-/*!*********************************************************************!*\
-  !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js ***!
-  \*********************************************************************/
-/*! exports provided: log, default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "log", function() { return log; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return formatLog; });
-function typof (v) {
-  var s = Object.prototype.toString.call(v)
-  return s.substring(8, s.length - 1)
-}
-
-function isDebugMode () {
-  /* eslint-disable no-undef */
-  return typeof __channelId__ === 'string' && __channelId__
-}
-
-function jsonStringifyReplacer (k, p) {
-  switch (typof(p)) {
-    case 'Function':
-      return 'function() { [native code] }'
-    default :
-      return p
-  }
-}
-
-function log (type) {
-  for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
-    args[_key - 1] = arguments[_key]
-  }
-  console[type].apply(console, args)
-}
-
-function formatLog () {
-  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
-    args[_key] = arguments[_key]
-  }
-  var type = args.shift()
-  if (isDebugMode()) {
-    args.push(args.pop().replace('at ', 'uni-app:///'))
-    return console[type].apply(console, args)
-  }
-
-  var msgs = args.map(function (v) {
-    var type = Object.prototype.toString.call(v).toLowerCase()
-
-    if (type === '[object object]' || type === '[object array]') {
-      try {
-        v = '---BEGIN:JSON---' + JSON.stringify(v, jsonStringifyReplacer) + '---END:JSON---'
-      } catch (e) {
-        v = type
-      }
-    } else {
-      if (v === null) {
-        v = '---NULL---'
-      } else if (v === undefined) {
-        v = '---UNDEFINED---'
-      } else {
-        var vType = typof(v).toUpperCase()
-
-        if (vType === 'NUMBER' || vType === 'BOOLEAN') {
-          v = '---BEGIN:' + vType + '---' + v + '---END:' + vType + '---'
-        } else {
-          v = String(v)
-        }
-      }
-    }
-
-    return v
-  })
-  var msg = ''
-
-  if (msgs.length > 1) {
-    var lastMsg = msgs.pop()
-    msg = msgs.join('---COMMA---')
-
-    if (lastMsg.indexOf(' at ') === 0) {
-      msg += lastMsg
-    } else {
-      msg += '---COMMA---' + lastMsg
-    }
-  } else {
-    msg = msgs[0]
-  }
-
-  console[type](msg)
-}
-
-
-/***/ }),
-/* 93 */
-/*!**********************************************************************************************************!*\
-  !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/js_sdk/u-charts/config-ucharts.js ***!
-  \**********************************************************************************************************/
-/*! no static exports found */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0; /*
-                                                                                                      * uCharts庐
-                                                                                                      * 楂樻�ц兘璺ㄥ钩鍙板浘琛ㄥ簱锛屾敮鎸丠5銆丄PP銆佸皬绋嬪簭锛堝井淇�/鏀粯瀹�/鐧惧害/澶存潯/QQ/360锛夈�乂ue銆乀aro绛夋敮鎸乧anvas鐨勬鏋跺钩鍙�
-                                                                                                      * Copyright (c) 2021 QIUN庐绉嬩簯 https://www.ucharts.cn All rights reserved.
-                                                                                                      * Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
-                                                                                                      * 澶嶅埗浣跨敤璇蜂繚鐣欐湰娈垫敞閲婏紝鎰熻阿鏀寔寮�婧愶紒
-                                                                                                      * 
-                                                                                                      * uCharts庐瀹樻柟缃戠珯
-                                                                                                      * https://www.uCharts.cn
-                                                                                                      * 
-                                                                                                      * 寮�婧愬湴鍧�:
-                                                                                                      * https://gitee.com/uCharts/uCharts
-                                                                                                      * 
-                                                                                                      * uni-app鎻掍欢甯傚満鍦板潃锛�
-                                                                                                      * http://ext.dcloud.net.cn/plugin?id=271
-                                                                                                      * 
-                                                                                                      */
-
-// 涓婚棰滆壊閰嶇疆锛氬姣忎釜鍥捐〃绫诲瀷闇�瑕佷笉鍚屼富棰橈紝璇峰湪瀵瑰簲鍥捐〃绫诲瀷涓婃洿鏀筩olor灞炴��
-var color = ['#1890FF', '#91CB74', '#FAC858', '#EE6666', '#73C0DE', '#3CA272', '#FC8452', '#9A60B4', '#ea7ccc'];
-
-//浜嬩欢杞崲鍑芥暟锛屼富瑕佺敤浣滄牸寮忓寲x杞翠负鏃堕棿杞达紝鏍规嵁闇�姹傝嚜琛屼慨鏀�
-var formatDateTime = function formatDateTime(timeStamp, returnType) {
-  var date = new Date();
-  date.setTime(timeStamp * 1000);
-  var y = date.getFullYear();
-  var m = date.getMonth() + 1;
-  m = m < 10 ? '0' + m : m;
-  var d = date.getDate();
-  d = d < 10 ? '0' + d : d;
-  var h = date.getHours();
-  h = h < 10 ? '0' + h : h;
-  var minute = date.getMinutes();
-  var second = date.getSeconds();
-  minute = minute < 10 ? '0' + minute : minute;
-  second = second < 10 ? '0' + second : second;
-  if (returnType == 'full') {return y + '-' + m + '-' + d + ' ' + h + ':' + minute + ':' + second;}
-  if (returnType == 'y-m-d') {return y + '-' + m + '-' + d;}
-  if (returnType == 'h:m') {return h + ':' + minute;}
-  if (returnType == 'h:m:s') {return h + ':' + minute + ':' + second;}
-  return [y, m, d, h, minute, second];
-};
-
-var cfu = {
-  //demotype涓鸿嚜瀹氫箟鍥捐〃绫诲瀷锛屼竴鑸笉闇�瑕佽嚜瀹氫箟鍥捐〃绫诲瀷锛屽彧闇�瑕佹敼鏍硅妭鐐逛笂瀵瑰簲鐨勭被鍨嬪嵆鍙�
-  "type": ["pie", "ring", "rose", "word", "funnel", "map", "arcbar", "line", "column", "bar", "area", "radar", "gauge", "candle", "mix", "tline", "tarea", "scatter", "bubble", "demotype"],
-  "range": ["楗肩姸鍥�", "鍦嗙幆鍥�", "鐜懓鍥�", "璇嶄簯鍥�", "婕忔枟鍥�", "鍦板浘", "鍦嗗姬杩涘害鏉�", "鎶樼嚎鍥�", "鏌辩姸鍥�", "鏉$姸鍥�", "鍖哄煙鍥�", "闆疯揪鍥�", "浠〃鐩�", "K绾垮浘", "娣峰悎鍥�", "鏃堕棿杞存姌绾�", "鏃堕棿杞村尯鍩�", "鏁g偣鍥�", "姘旀场鍥�", "鑷畾涔夌被鍨�"],
-  //澧炲姞鑷畾涔夊浘琛ㄧ被鍨嬶紝濡傛灉闇�瑕乧ategories锛岃鍦ㄨ繖閲屽姞鍏ユ偍鐨勫浘琛ㄧ被鍨嬶紝渚嬪鏈�鍚庣殑"demotype"
-  //鑷畾涔夌被鍨嬫椂闇�瑕佹敞鎰�"tline","tarea","scatter","bubble"绛夋椂闂磋酱锛堢煝閲弜杞达級绫诲浘琛紝娌℃湁categories锛屼笉闇�瑕佸姞鍏ategories
-  "categories": ["line", "column", "bar", "area", "radar", "gauge", "candle", "mix", "demotype"],
-  //instance涓哄疄渚嬪彉閲忔壙杞藉睘鎬э紝涓嶈鍒犻櫎
-  "instance": {},
-  //option涓簅pts鍙奺opts鎵胯浇灞炴�э紝涓嶈鍒犻櫎
-  "option": {},
-  //涓嬮潰鏄嚜瀹氫箟format閰嶇疆锛屽洜闄5绔鐨勫叾浠栫鏃犳硶閫氳繃props浼犻�掑嚱鏁帮紝鍙兘閫氳繃姝ゅ睘鎬у搴斾笅鏍囩殑鏂瑰紡鏉ユ浛鎹�
-  "formatter": {
-    "yAxisDemo1": function yAxisDemo1(val) {return val + '鍏�';},
-    "yAxisDemo2": function yAxisDemo2(val) {return val.toFixed(2);},
-    "xAxisDemo1": function xAxisDemo1(val) {return val + '骞�';},
-    "xAxisDemo2": function xAxisDemo2(val) {return formatDateTime(val, 'h:m');},
-    "seriesDemo1": function seriesDemo1(val) {return val + '鍏�';},
-    "tooltipDemo1": function tooltipDemo1(item, category, index, opts) {
-      if (index == 0) {
-        return '闅忎究鐢�' + item.data + '骞�';
-      } else {
-        return '鍏朵粬鎴戞病鏀�' + item.data + '澶�';
-      }
-    },
-    "pieDemo": function pieDemo(val, index, series) {
-      if (index !== undefined) {
-        return series[index].name + '锛�' + series[index].data + '鍏�';
-      }
-    } },
-
-  //杩欓噷婕旂ず浜嗚嚜瀹氫箟鎮ㄧ殑鍥捐〃绫诲瀷鐨刼ption锛屽彲浠ラ殢鎰忓懡鍚嶏紝涔嬪悗鍦ㄧ粍浠朵笂 type="demotype" 鍚庯紝缁勪欢浼氳皟鐢ㄨ繖涓姳鎷彿閲岀殑option锛屽鏋滅粍浠朵笂杩樺瓨鍦╫pts鍙傛暟锛屼細灏哾emotype涓巓pts涓璷ption鍚堝苟鍚庢覆鏌撳浘琛ㄣ��
-  "demotype": {
-    //鎴戣繖閲屾妸鏇茬嚎鍥惧綋鍋氫簡鑷畾涔夊浘琛ㄧ被鍨嬶紝鎮ㄥ彲浠ユ牴鎹渶瑕侀殢鎰忔寚瀹氱被鍨嬫垨閰嶇疆
-    "type": "line",
-    "color": color,
-    "padding": [15, 10, 0, 15],
-    "xAxis": {
-      "disableGrid": true },
-
-    "yAxis": {
-      "gridType": "dash",
-      "dashLength": 2 },
-
-    "legend": {},
-
-    "extra": {
-      "line": {
-        "type": "curve",
-        "width": 2 } } },
-
-
-
-  //涓嬮潰鏄嚜瀹氫箟閰嶇疆锛岃娣诲姞椤圭洰鎵�闇�鐨勯�氱敤閰嶇疆
-  "pie": {
-    "type": "pie",
-    "color": color,
-    "padding": [5, 5, 5, 5],
-    "extra": {
-      "pie": {
-        "activeOpacity": 0.5,
-        "activeRadius": 10,
-        "offsetAngle": 0,
-        "labelWidth": 15,
-        "border": true,
-        "borderWidth": 3,
-        "borderColor": "#FFFFFF" } } },
-
-
-
-  "ring": {
-    "type": "ring",
-    "color": color,
-    "padding": [5, 5, 5, 5],
-    "rotate": false,
-    "dataLabel": true,
-    "legend": {
-      "show": true,
-      "position": "right",
-      "lineHeight": 25 },
-
-    "title": {
-      "name": "鏀剁泭鐜�",
-      "fontSize": 15,
-      "color": "#666666" },
-
-    "subtitle": {
-      "name": "70%",
-      "fontSize": 25,
-      "color": "#7cb5ec" },
-
-    "extra": {
-      "ring": {
-        "ringWidth": 30,
-        "activeOpacity": 0.5,
-        "activeRadius": 10,
-        "offsetAngle": 0,
-        "labelWidth": 15,
-        "border": true,
-        "borderWidth": 3,
-        "borderColor": "#FFFFFF" } } },
-
-
-
-  "rose": {
-    "type": "rose",
-    "color": color,
-    "padding": [5, 5, 5, 5],
-    "legend": {
-      "show": true,
-      "position": "left",
-      "lineHeight": 25 },
-
-    "extra": {
-      "rose": {
-        "type": "area",
-        "minRadius": 50,
-        "activeOpacity": 0.5,
-        "activeRadius": 10,
-        "offsetAngle": 0,
-        "labelWidth": 15,
-        "border": false,
-        "borderWidth": 2,
-        "borderColor": "#FFFFFF" } } },
-
-
-
-  "word": {
-    "type": "word",
-    "color": color,
-    "extra": {
-      "word": {
-        "type": "normal",
-        "autoColors": false } } },
-
-
-
-  "funnel": {
-    "type": "funnel",
-    "color": color,
-    "padding": [15, 15, 0, 15],
-    "extra": {
-      "funnel": {
-        "activeOpacity": 0.3,
-        "activeWidth": 10,
-        "border": true,
-        "borderWidth": 2,
-        "borderColor": "#FFFFFF",
-        "fillOpacity": 1,
-        "labelAlign": "right" } } },
-
-
-
-  "map": {
-    "type": "map",
-    "color": color,
-    "padding": [0, 0, 0, 0],
-    "dataLabel": true,
-    "extra": {
-      "map": {
-        "border": true,
-        "borderWidth": 1,
-        "borderColor": "#666666",
-        "fillOpacity": 0.6,
-        "activeBorderColor": "#F04864",
-        "activeFillColor": "#FACC14",
-        "activeFillOpacity": 1 } } },
-
-
-
-  "arcbar": {
-    "type": "arcbar",
-    "color": color,
-    "title": {
-      "name": "鐧惧垎姣�",
-      "fontSize": 25,
-      "color": "#00FF00" },
-
-    "subtitle": {
-      "name": "榛樿鏍囬",
-      "fontSize": 15,
-      "color": "#666666" },
-
-    "extra": {
-      "arcbar": {
-        "type": "default",
-        "width": 12,
-        "backgroundColor": "#E9E9E9",
-        "startAngle": 0.75,
-        "endAngle": 0.25,
-        "gap": 2 } } },
-
-
-
-  "line": {
-    "type": "line",
-    "color": color,
-    "padding": [15, 10, 0, 15],
-    "xAxis": {
-      "disableGrid": true },
-
-    "yAxis": {
-      "gridType": "dash",
-      "dashLength": 2 },
-
-    "legend": {},
-
-    "extra": {
-      "line": {
-        "type": "straight",
-        "width": 2 } } },
-
-
-
-  "tline": {
-    "type": "line",
-    "color": color,
-    "padding": [15, 10, 0, 15],
-    "xAxis": {
-      "disableGrid": false,
-      "boundaryGap": "justify" },
-
-    "yAxis": {
-      "gridType": "dash",
-      "dashLength": 2,
-      "data": [
-      {
-        "min": 0,
-        "max": 80 }] },
-
-
-
-    "legend": {},
-
-    "extra": {
-      "line": {
-        "type": "curve",
-        "width": 2 } } },
-
-
-
-  "tarea": {
-    "type": "area",
-    "color": color,
-    "padding": [15, 10, 0, 15],
-    "xAxis": {
-      "disableGrid": true,
-      "boundaryGap": "justify" },
-
-    "yAxis": {
-      "gridType": "dash",
-      "dashLength": 2,
-      "data": [
-      {
-        "min": 0,
-        "max": 80 }] },
-
-
-
-    "legend": {},
-
-    "extra": {
-      "area": {
-        "type": "curve",
-        "opacity": 0.2,
-        "addLine": true,
-        "width": 2,
-        "gradient": true } } },
-
-
-
-  "column": {
-    "type": "column",
-    "color": color,
-    "padding": [15, 15, 0, 5],
-    "xAxis": {
-      "disableGrid": true },
-
-    "yAxis": {
-      "data": [{ "min": 0 }] },
-
-    "legend": {},
-
-    "extra": {
-      "column": {
-        "type": "group",
-        "width": 30,
-        "activeBgColor": "#000000",
-        "activeBgOpacity": 0.08 } } },
-
-
-
-  "bar": {
-    "type": "bar",
-    "color": color,
-    "padding": [15, 30, 0, 5],
-    "xAxis": {
-      "boundaryGap": "justify",
-      "disableGrid": false,
-      "min": 0,
-      "axisLine": false },
-
-    "yAxis": {},
-
-    "legend": {},
-
-    "extra": {
-      "bar": {
-        "type": "group",
-        "width": 30,
-        "meterBorde": 1,
-        "meterFillColor": "#FFFFFF",
-        "activeBgColor": "#000000",
-        "activeBgOpacity": 0.08 } } },
-
-
-
-  "area": {
-    "type": "area",
-    "color": color,
-    "padding": [15, 15, 0, 15],
-    "xAxis": {
-      "disableGrid": true },
-
-    "yAxis": {
-      "gridType": "dash",
-      "dashLength": 2 },
-
-    "legend": {},
-
-    "extra": {
-      "area": {
-        "type": "straight",
-        "opacity": 0.2,
-        "addLine": true,
-        "width": 2,
-        "gradient": false } } },
-
-
-
-  "radar": {
-    "type": "radar",
-    "color": color,
-    "padding": [5, 5, 5, 5],
-    "dataLabel": false,
-    "legend": {
-      "show": true,
-      "position": "right",
-      "lineHeight": 25 },
-
-    "extra": {
-      "radar": {
-        "gridType": "radar",
-        "gridColor": "#CCCCCC",
-        "gridCount": 3,
-        "opacity": 0.2,
-        "max": 200 } } },
-
-
-
-  "gauge": {
-    "type": "gauge",
-    "color": color,
-    "title": {
-      "name": "66Km/H",
-      "fontSize": 25,
-      "color": "#2fc25b",
-      "offsetY": 50 },
-
-    "subtitle": {
-      "name": "瀹炴椂閫熷害",
-      "fontSize": 15,
-      "color": "#1890ff",
-      "offsetY": -50 },
-
-    "extra": {
-      "gauge": {
-        "type": "default",
-        "width": 30,
-        "labelColor": "#666666",
-        "startAngle": 0.75,
-        "endAngle": 0.25,
-        "startNumber": 0,
-        "endNumber": 100,
-        "labelFormat": "",
-        "splitLine": {
-          "fixRadius": 0,
-          "splitNumber": 10,
-          "width": 30,
-          "color": "#FFFFFF",
-          "childNumber": 5,
-          "childWidth": 12 },
-
-        "pointer": {
-          "width": 24,
-          "color": "auto" } } } },
-
-
-
-
-  "candle": {
-    "type": "candle",
-    "color": color,
-    "padding": [15, 15, 0, 15],
-    "enableScroll": true,
-    "enableMarkLine": true,
-    "dataLabel": false,
-    "xAxis": {
-      "labelCount": 4,
-      "itemCount": 40,
-      "disableGrid": true,
-      "gridColor": "#CCCCCC",
-      "gridType": "solid",
-      "dashLength": 4,
-      "scrollShow": true,
-      "scrollAlign": "left",
-      "scrollColor": "#A6A6A6",
-      "scrollBackgroundColor": "#EFEBEF" },
-
-    "yAxis": {},
-
-    "legend": {},
-
-    "extra": {
-      "candle": {
-        "color": {
-          "upLine": "#f04864",
-          "upFill": "#f04864",
-          "downLine": "#2fc25b",
-          "downFill": "#2fc25b" },
-
-        "average": {
-          "show": true,
-          "name": ["MA5", "MA10", "MA30"],
-          "day": [5, 10, 20],
-          "color": ["#1890ff", "#2fc25b", "#facc14"] } },
-
-
-      "markLine": {
-        "type": "dash",
-        "dashLength": 5,
-        "data": [
-        {
-          "value": 2150,
-          "lineColor": "#f04864",
-          "showLabel": true },
-
-        {
-          "value": 2350,
-          "lineColor": "#f04864",
-          "showLabel": true }] } } },
-
-
-
-
-
-  "mix": {
-    "type": "mix",
-    "color": color,
-    "padding": [15, 15, 0, 15],
-    "xAxis": {
-      "disableGrid": true },
-
-    "yAxis": {
-      "disabled": false,
-      "disableGrid": false,
-      "splitNumber": 5,
-      "gridType": "dash",
-      "dashLength": 4,
-      "gridColor": "#CCCCCC",
-      "padding": 10,
-      "showTitle": true,
-      "data": [] },
-
-    "legend": {},
-
-    "extra": {
-      "mix": {
-        "column": {
-          "width": 20 } } } },
-
-
-
-
-  "scatter": {
-    "type": "scatter",
-    "color": color,
-    "padding": [15, 15, 0, 15],
-    "dataLabel": false,
-    "xAxis": {
-      "disableGrid": false,
-      "gridType": "dash",
-      "splitNumber": 5,
-      "boundaryGap": "justify",
-      "min": 0 },
-
-    "yAxis": {
-      "disableGrid": false,
-      "gridType": "dash" },
-
-    "legend": {},
-
-    "extra": {
-      "scatter": {} } },
-
-
-
-  "bubble": {
-    "type": "bubble",
-    "color": color,
-    "padding": [15, 15, 0, 15],
-    "xAxis": {
-      "disableGrid": false,
-      "gridType": "dash",
-      "splitNumber": 5,
-      "boundaryGap": "justify",
-      "min": 0,
-      "max": 250 },
-
-    "yAxis": {
-      "disableGrid": false,
-      "gridType": "dash",
-      "data": [{
-        "min": 0,
-        "max": 150 }] },
-
-
-    "legend": {},
-
-    "extra": {
-      "bubble": {
-        "border": 2,
-        "opacity": 0.5 } } } };var _default =
-
-
-
-
-
-cfu;exports.default = _default;
-
-/***/ }),
-/* 94 */
-/*!**********************************************************************************************************!*\
-  !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/js_sdk/u-charts/config-echarts.js ***!
-  \**********************************************************************************************************/
-/*! no static exports found */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0; /*
-                                                                                                      * uCharts庐
-                                                                                                      * 楂樻�ц兘璺ㄥ钩鍙板浘琛ㄥ簱锛屾敮鎸丠5銆丄PP銆佸皬绋嬪簭锛堝井淇�/鏀粯瀹�/鐧惧害/澶存潯/QQ/360锛夈�乂ue銆乀aro绛夋敮鎸乧anvas鐨勬鏋跺钩鍙�
-                                                                                                      * Copyright (c) 2021 QIUN庐绉嬩簯 https://www.ucharts.cn All rights reserved.
-                                                                                                      * Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
-                                                                                                      * 澶嶅埗浣跨敤璇蜂繚鐣欐湰娈垫敞閲婏紝鎰熻阿鏀寔寮�婧愶紒
-                                                                                                      * 
-                                                                                                      * uCharts庐瀹樻柟缃戠珯
-                                                                                                      * https://www.uCharts.cn
-                                                                                                      * 
-                                                                                                      * 寮�婧愬湴鍧�:
-                                                                                                      * https://gitee.com/uCharts/uCharts
-                                                                                                      * 
-                                                                                                      * uni-app鎻掍欢甯傚満鍦板潃锛�
-                                                                                                      * http://ext.dcloud.net.cn/plugin?id=271
-                                                                                                      * 
-                                                                                                      */
-
-// 閫氱敤閰嶇疆椤�
-
-// 涓婚棰滆壊閰嶇疆锛氬姣忎釜鍥捐〃绫诲瀷闇�瑕佷笉鍚屼富棰橈紝璇峰湪瀵瑰簲鍥捐〃绫诲瀷涓婃洿鏀筩olor灞炴��
-var color = ['#1890FF', '#91CB74', '#FAC858', '#EE6666', '#73C0DE', '#3CA272', '#FC8452', '#9A60B4', '#ea7ccc'];
-
-var cfe = {
-  //demotype涓鸿嚜瀹氫箟鍥捐〃绫诲瀷
-  "type": ["pie", "ring", "rose", "funnel", "line", "column", "area", "radar", "gauge", "candle", "demotype"],
-  //澧炲姞鑷畾涔夊浘琛ㄧ被鍨嬶紝濡傛灉闇�瑕乧ategories锛岃鍦ㄨ繖閲屽姞鍏ユ偍鐨勫浘琛ㄧ被鍨嬩緥濡傛渶鍚庣殑"demotype"
-  "categories": ["line", "column", "area", "radar", "gauge", "candle", "demotype"],
-  //instance涓哄疄渚嬪彉閲忔壙杞藉睘鎬э紝option涓篹opts鎵胯浇灞炴�э紝涓嶈鍒犻櫎
-  "instance": {},
-  "option": {},
-  //涓嬮潰鏄嚜瀹氫箟format閰嶇疆锛屽洜闄5绔鐨勫叾浠栫鏃犳硶閫氳繃props浼犻�掑嚱鏁帮紝鍙兘閫氳繃姝ゅ睘鎬у搴斾笅鏍囩殑鏂瑰紡鏉ユ浛鎹�
-  "formatter": {
-    "tooltipDemo1": function tooltipDemo1(res) {
-      var result = '';
-      for (var i in res) {
-        if (i == 0) {
-          result += res[i].axisValueLabel + '骞撮攢鍞';
-        }
-        var value = '--';
-        if (res[i].data !== null) {
-          value = res[i].data;
-        }
-
-
-
-
-
-        result += '<br/>' + res[i].marker + res[i].seriesName + '锛�' + value + ' 涓囧厓';
-
-      }
-      return result;
-    },
-    legendFormat: function legendFormat(name) {
-      return "鑷畾涔夊浘渚�+" + name;
-    },
-    yAxisFormatDemo: function yAxisFormatDemo(value, index) {
-      return value + '鍏�';
-    },
-    seriesFormatDemo: function seriesFormatDemo(res) {
-      return res.name + '骞�' + res.value + '鍏�';
-    } },
-
-  //杩欓噷婕旂ず浜嗚嚜瀹氫箟鎮ㄧ殑鍥捐〃绫诲瀷鐨刼ption锛屽彲浠ラ殢鎰忓懡鍚嶏紝涔嬪悗鍦ㄧ粍浠朵笂 type="demotype" 鍚庯紝缁勪欢浼氳皟鐢ㄨ繖涓姳鎷彿閲岀殑option锛屽鏋滅粍浠朵笂杩樺瓨鍦╡opts鍙傛暟锛屼細灏哾emotype涓巈opts涓璷ption鍚堝苟鍚庢覆鏌撳浘琛ㄣ��
-  "demotype": {
-    "color": color
-    //鍦ㄨ繖閲屽~鍐檈charts鐨刼ption鍗冲彲
-  },
-
-  //涓嬮潰鏄嚜瀹氫箟閰嶇疆锛岃娣诲姞椤圭洰鎵�闇�鐨勯�氱敤閰嶇疆
-  "column": {
-    "color": color,
-    "title": {
-      "text": '' },
-
-    "tooltip": {
-      "trigger": 'axis' },
-
-    "grid": {
-      "top": 30,
-      "bottom": 50,
-      "right": 15,
-      "left": 40 },
-
-    "legend": {
-      "bottom": 'left' },
-
-    "toolbox": {
-      "show": false },
-
-    "xAxis": {
-      "type": 'category',
-      "axisLabel": {
-        "color": '#666666' },
-
-      "axisLine": {
-        "lineStyle": {
-          "color": '#CCCCCC' } },
-
-
-      "boundaryGap": true,
-      "data": [] },
-
-    "yAxis": {
-      "type": 'value',
-      "axisTick": {
-        "show": false },
-
-      "axisLabel": {
-        "color": '#666666' },
-
-      "axisLine": {
-        "lineStyle": {
-          "color": '#CCCCCC' } } },
-
-
-
-    "seriesTemplate": {
-      "name": '',
-      "type": 'bar',
-      "data": [],
-      "barwidth": 20,
-      "label": {
-        "show": true,
-        "color": "#666666",
-        "position": 'top' } } },
-
-
-
-  "line": {
-    "color": color,
-    "title": {
-      "text": '' },
-
-    "tooltip": {
-      "trigger": 'axis' },
-
-    "grid": {
-      "top": 30,
-      "bottom": 50,
-      "right": 15,
-      "left": 40 },
-
-    "legend": {
-      "top": 'left',
-      "textStyle": {
-        "color": '#cccccc' } },
-
-
-    "toolbox": {
-      "show": false },
-
-    "xAxis": {
-      "type": 'category',
-      "axisLabel": {
-        "color": '#CCCCCC' },
-
-      "axisLine": {
-        "lineStyle": {
-          "color": '#CCCCCC' } },
-
-
-      "boundaryGap": false,
-      "data": [] },
-
-    "yAxis": {
-      "type": 'value',
-      "axisTick": {
-        "show": false },
-
-      "axisLabel": {
-        "color": '#CCCCCC' },
-
-      "axisLine": {
-        "lineStyle": {
-          "color": '#CCCCCC' } } },
-
-
-
-    "seriesTemplate": {
-      "name": '',
-      "type": 'line',
-      "data": [],
-      "barwidth": 20,
-      "label": {
-        "show": false,
-        "color": "#666666",
-        "position": 'top' } } },
-
-
-
-  "area": {
-    "color": color,
-    "title": {
-      "text": '' },
-
-    "tooltip": {
-      "trigger": 'axis' },
-
-    "grid": {
-      "top": 30,
-      "bottom": 50,
-      "right": 15,
-      "left": 40 },
-
-    "legend": {
-      "bottom": 'left' },
-
-    "toolbox": {
-      "show": false },
-
-    "xAxis": {
-      "type": 'category',
-      "axisLabel": {
-        "color": '#666666' },
-
-      "axisLine": {
-        "lineStyle": {
-          "color": '#CCCCCC' } },
-
-
-      "boundaryGap": true,
-      "data": [] },
-
-    "yAxis": {
-      "type": 'value',
-      "axisTick": {
-        "show": false },
-
-      "axisLabel": {
-        "color": '#666666' },
-
-      "axisLine": {
-        "lineStyle": {
-          "color": '#CCCCCC' } } },
-
-
-
-    "seriesTemplate": {
-      "name": '',
-      "type": 'line',
-      "data": [],
-      "areaStyle": {},
-      "label": {
-        "show": true,
-        "color": "#666666",
-        "position": 'top' } } },
-
-
-
-  "pie": {
-    "color": color,
-    "title": {
-      "text": '' },
-
-    "tooltip": {
-      "trigger": 'item' },
-
-    "grid": {
-      "top": 40,
-      "bottom": 30,
-      "right": 15,
-      "left": 15 },
-
-    "legend": {
-      "bottom": 'left' },
-
-    "seriesTemplate": {
-      "name": '',
-      "type": 'pie',
-      "data": [],
-      "radius": '50%',
-      "label": {
-        "show": true,
-        "color": "#666666",
-        "position": 'top' } } },
-
-
-
-  "ring": {
-    "color": color,
-    "title": {
-      "text": '' },
-
-    "tooltip": {
-      "trigger": 'item' },
-
-    "grid": {
-      "top": 40,
-      "bottom": 30,
-      "right": 15,
-      "left": 15 },
-
-    "legend": {
-      "bottom": 'left',
-      "textStyle": {
-        "color": '#cccccc' } },
-
-
-    "seriesTemplate": {
-      "name": '',
-      "type": 'pie',
-      "data": [],
-      "radius": ['30%', '60%'],
-      "avoidLabelOverlap": false,
-      "label": {
-        "show": false,
-        "color": "#FFF",
-        "position": 'top' },
-
-      "labelLine": {
-        "show": true } } },
-
-
-
-  "rose": {
-    "color": color,
-    "title": {
-      "text": '' },
-
-    "tooltip": {
-      "trigger": 'item' },
-
-    "legend": {
-      "top": 'bottom' },
-
-    "seriesTemplate": {
-      "name": '',
-      "type": 'pie',
-      "data": [],
-      "radius": "55%",
-      "center": ['50%', '50%'],
-      "roseType": 'area' } },
-
-
-  "funnel": {
-    "color": color,
-    "title": {
-      "text": '' },
-
-    "tooltip": {
-      "trigger": 'item',
-      "formatter": "{b} : {c}%" },
-
-    "legend": {
-      "top": 'bottom' },
-
-    "seriesTemplate": {
-      "name": '',
-      "type": 'funnel',
-      "left": '10%',
-      "top": 60,
-      "bottom": 60,
-      "width": '80%',
-      "min": 0,
-      "max": 100,
-      "minSize": '0%',
-      "maxSize": '100%',
-      "sort": 'descending',
-      "gap": 2,
-      "label": {
-        "show": true,
-        "position": 'inside' },
-
-      "labelLine": {
-        "length": 10,
-        "lineStyle": {
-          "width": 1,
-          "type": 'solid' } },
-
-
-      "itemStyle": {
-        "bordercolor": '#fff',
-        "borderwidth": 1 },
-
-      "emphasis": {
-        "label": {
-          "fontSize": 20 } },
-
-
-      "data": [] } },
-
-
-  "gauge": {
-    "color": color,
-    "tooltip": {
-      "formatter": '{a} <br/>{b} : {c}%' },
-
-    "seriesTemplate": {
-      "name": '涓氬姟鎸囨爣',
-      "type": 'gauge',
-      "detail": { "formatter": '{value}%' },
-      "data": [{ "value": 50, "name": '瀹屾垚鐜�' }] } },
-
-
-  "candle": {
-    "xAxis": {
-      "data": [] },
-
-    "yAxis": {},
-    "color": color,
-    "title": {
-      "text": '' },
-
-    "dataZoom": [{
-      "type": 'inside',
-      "xAxisIndex": [0, 1],
-      "start": 10,
-      "end": 100 },
-
-    {
-      "show": true,
-      "xAxisIndex": [0, 1],
-      "type": 'slider',
-      "bottom": 10,
-      "start": 10,
-      "end": 100 }],
-
-
-    "seriesTemplate": {
-      "name": '',
-      "type": 'k',
-      "data": [] } } };var _default =
-
-
-
-
-cfe;exports.default = _default;
-
-/***/ }),
-/* 95 */
-/*!**************************************************************************************************************************************************!*\
-  !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue?vue&type=script&lang=js& ***!
-  \**************************************************************************************************************************************************/
-/*! no static exports found */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/script.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./qiun-data-charts.vue?vue&type=script&lang=js& */ 96);
-/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);
-/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
- /* harmony default export */ __webpack_exports__["default"] = (_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_script_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); 
-
-/***/ }),
-/* 96 */
-/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
-  !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/script.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue?vue&type=script&lang=js& ***!
-  \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
-/*! no static exports found */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;var _default =
-
-{
-  name: "qiun-data-charts", props: ["type", "canvasId", "canvas2d", "background", "animation", "chartData", "opts", "eopts", "loadingType", "errorShow", "errorReload", "errorMessage", "inScrollView", "reshow", "reload", "disableScroll", "ontap", "ontouch", "onmouse", "onmovetip", "echartsH5", "echartsApp", "tooltipShow", "tooltipFormat", "tooltipCustom", "startDate", "endDate", "textEnum", "groupEnum", "pageScrollTop", "directory", "tapLegend", "menus"],
-  data: function data() {
-    return {
-      wxsProps: {} };
-
-  },
-  components: {} };exports.default = _default;
-
-/***/ }),
-/* 97 */
-/*!**********************************************************************************************************************************************************************************!*\
-  !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue?vue&type=style&index=0&id=fe947b98&scoped=true&lang=css& ***!
-  \**********************************************************************************************************************************************************************************/
-/*! no static exports found */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_data_charts_vue_vue_type_style_index_0_id_fe947b98_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/app-vue-style-loader??ref--6-oneOf-1-0!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/postcss-loader/src??ref--6-oneOf-1-3!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./qiun-data-charts.vue?vue&type=style&index=0&id=fe947b98&scoped=true&lang=css& */ 98);
-/* harmony import */ var _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_data_charts_vue_vue_type_style_index_0_id_fe947b98_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_data_charts_vue_vue_type_style_index_0_id_fe947b98_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__);
-/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_data_charts_vue_vue_type_style_index_0_id_fe947b98_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_data_charts_vue_vue_type_style_index_0_id_fe947b98_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
- /* harmony default export */ __webpack_exports__["default"] = (_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_app_vue_style_loader_index_js_ref_6_oneOf_1_0_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_APP_HBuilderX_3_4_18_20220630_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_qiun_data_charts_vue_vue_type_style_index_0_id_fe947b98_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a); 
-
-/***/ }),
-/* 98 */
-/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
-  !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/app-vue-style-loader??ref--6-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!./node_modules/postcss-loader/src??ref--6-oneOf-1-3!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue?vue&type=style&index=0&id=fe947b98&scoped=true&lang=css& ***!
-  \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
-/*! no static exports found */
-/***/ (function(module, exports, __webpack_require__) {
-
-// style-loader: Adds some css to the DOM by adding a <style> tag
-
-// load the styles
-var content = __webpack_require__(/*! !../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/postcss-loader/src??ref--6-oneOf-1-3!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./qiun-data-charts.vue?vue&type=style&index=0&id=fe947b98&scoped=true&lang=css& */ 99);
-if(content.__esModule) content = content.default;
-if(typeof content === 'string') content = [[module.i, content, '']];
-if(content.locals) module.exports = content.locals;
-// add the styles to the DOM
-var add = __webpack_require__(/*! ../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/app-vue-style-loader/lib/addStylesClient.js */ 20).default
-var update = add("cdb46eb0", content, false, {"sourceMap":false,"shadowMode":false});
-// Hot Module Replacement
-if(false) {}
-
-/***/ }),
-/* 99 */
-/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
-  !*** ./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!./node_modules/postcss-loader/src??ref--6-oneOf-1-3!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/Workspace/zy/private/Monitor-APP/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue?vue&type=style&index=0&id=fe947b98&scoped=true&lang=css& ***!
-  \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
-/*! no static exports found */
-/***/ (function(module, exports, __webpack_require__) {
-
-// Imports
-var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/runtime/api.js */ 19);
-exports = ___CSS_LOADER_API_IMPORT___(false);
-// Module
-exports.push([module.i, "\n.chartsview[data-v-fe947b98] {\r\n  width: 100%;\r\n  height: 100%;\r\n  display: flex;\r\n  flex: 1;\r\n  justify-content: center;\r\n  align-items: center;\n}\r\n", ""]);
-// Exports
-module.exports = exports;
-
-
-/***/ }),
 /* 100 */
 /*!****************************************************************************************************!*\
   !*** D:/Workspace/zy/private/Monitor-APP/uni_modules/uni-popup/components/uni-popup/uni-popup.vue ***!
@@ -13586,14 +14822,14 @@
 
 // Imports
 var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/runtime/api.js */ 19);
-var ___CSS_LOADER_GET_URL_IMPORT___ = __webpack_require__(/*! ../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/lib/app-plus/getUrl.js */ 27);
-var ___CSS_LOADER_URL_IMPORT_0___ = __webpack_require__(/*! ../../static/background.png */ 28);
-var ___CSS_LOADER_URL_IMPORT_1___ = __webpack_require__(/*! ../../static/right.png */ 29);
+var ___CSS_LOADER_GET_URL_IMPORT___ = __webpack_require__(/*! ../../../../../../APP/HBuilderX.3.4.18.20220630/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/lib/app-plus/getUrl.js */ 94);
+var ___CSS_LOADER_URL_IMPORT_0___ = __webpack_require__(/*! ../../static/background.png */ 95);
+var ___CSS_LOADER_URL_IMPORT_1___ = __webpack_require__(/*! ../../static/right.png */ 96);
 exports = ___CSS_LOADER_API_IMPORT___(false);
 var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);
 var ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);
 // Module
-exports.push([module.i, "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/* 寮瑰嚭:閰嶇疆鍖哄煙 */\n.eject-mask {\n\twidth: 100%;\n\theight: 100%;\n\tbackground-color: rgba(0, 0, 0, 0.5);\n\tposition: fixed;\n\ttop: 0;\n\tleft: 0;\n\tz-index: 999;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n}\n.eject{\n\tposition: relative;\n\twidth: 600px;\n\theight: 350px;\n\tbackground-color: #eaeaea;\n\tborder-radius: 25rpx;\n}\n.eject-title {\n\twidth: 100%;\n\theight: 100px;\n\tline-height: 100px;\n\tfont-size: 20px;\n\tfont-weight: 700;\n\tcolor: \t#606266;\n\ttext-align: center;\n}\n.eject-input {\n}\n.item {\n\tdisplay: flex;\n\talign-items: center;\n\tmargin: 10px 0 0 0;\n}\n.desc {\n\tdisplay: inline-block;\n\twidth: 40%;\n\ttext-align: right;\n\tcolor: #606266;\n\tfont-size: 18px;\n}\n.input {\n\tdisplay: flex;\n\talign-items: center;\n\tpadding-left: 5px;\n\tpadding-right: 5px;\n\twidth: 100%;\n\theight: 30px;\n\tborder: 1px solid #C0C4CC;\n\tmargin-right: 50px;\n}\n.eject-input uni-input {\n\twidth: 100%;\n}\n.eject-button {\n\tdisplay: flex;\n\talign-items: center;\n\tposition: absolute;\n\tbottom: 0;\n\theight: 60px;\n\tline-height: 60px;\n\twidth: 100%;\n\tborder-top: 1px solid #ccc;\n}\n.button-item {\n\twidth: 50%;\n\theight: 100%;\n\tfont-size: 20px;\n\tfont-weight: bold;\n\ttext-align: center;\n\tcolor: #909399;\n}\n.button-item:last-child {\n\tcolor: #67C23A;\n\t\n\tborder-left: 1px solid #ccc;\n}\n.full-width {\n\twidth: 100%;\n\theight: 100%;\n\tdisplay: inline-block;\n\tfloat: left;\n}\n.half-width {\n\twidth: 50%;\n\theight: 100%;\n\tdisplay: inline-block;\n\tfloat: left;\n}\n.box-items {\n\theight: 20%;\n\twidth: 100%;\n\t/* background-color: #233751; */\n\tline-height: 300rpx;\n}\n/* 褰撳墠椤甸潰鏃� orderNo */\n.swiper-here {\n\tdisplay: inline-block;\n\tmargin: 0 auto;\n\twidth: 100%;\n\theight: 100%;\n}\n/* 褰撳墠椤甸潰鏈� orderNo */\n.swiper-here-oN{\n\tdisplay: inline-block;\n\t/* background-color: #063A7B; */\n\tmargin: 0 auto;\n\twidth: 100%;\n\theight: 90%;\n}\n/* 褰撳墠椤甸潰鏈� error鎻愮ず */\n.swiper-here-error {\n\tdisplay: inline-block;\n\t/* background-color: #063A7B; */\n\t/* margin: 0 auto; */\n\tmargin-top: 20%;\n\twidth: 100%;\n\theight: 100%;\n}\n.animate {\n\tdisplay: inline-block;\n            /* white-space: nowrap; */\n            -webkit-animation: 25s wordsLoop linear infinite normal;\n                    animation: 25s wordsLoop linear infinite normal;\n}\n@keyframes wordsLoop {\n0% {\n                transform: translateY(100px);\n                -webkit-transform: translateY(100px);\n}\n100% {\n                transform: translateY(-100%);\n                -webkit-transform: translateY(-100%);\n}\n}\n@-webkit-keyframes wordsLoop {\n0% {\n                transform: translateY(100px);\n                -webkit-transform: translateY(100px);\n}\n100% {\n                transform: translateY(-100%);\n                -webkit-transform: translateY(-100%);\n}\n}\n/* animation:upMove 1.5s 1; */\n/* downMove */\n/* 涓婂眰鍚戜笂 */\n.topUp {\n\t-webkit-animation: topUp 1.5s 1;\n\t        animation: topUp 1.5s 1;\n\t-webkit-animation-fill-mode: both;\n\t        animation-fill-mode: both;\n}\n@-webkit-keyframes topUp {\nfrom {\n\t\topacity: 0.5;\n\t\t/* background-color:blue; */\n\t\ttop:-1080px\n}\nto {\n\t\topacity: 1;\n\t\t/* background-color:red; */\n\t\ttop: 0;\n}\n}\n@keyframes topUp {\nfrom {\n\t\topacity: 0.5;\n\t\t/* background-color:blue; */\n\t\ttop:-1080px\n}\nto {\n\t\topacity: 1;\n\t\t/* background-color:red; */\n\t\ttop: 0;\n}\n}\n/* 涓婂眰鍚戜笅 */\n.topDown {\n\t-webkit-animation: topDown 1.5s 1;\n\t        animation: topDown 1.5s 1;\n\t-webkit-animation-fill-mode: both;\n\t        animation-fill-mode: both;\n}\n@-webkit-keyframes topDown\n\t{\nfrom {\n\t\topacity: 1;\n\t\t/* background-color:red; */\n\t\ttop: 0;\n}\nto {\n\t\topacity: 0.5;\n\t\t/* background-color:blue; */\n\t\ttop:-1080px\n}\n}\n@keyframes topDown\n\t{\nfrom {\n\t\topacity: 1;\n\t\t/* background-color:red; */\n\t\ttop: 0;\n}\nto {\n\t\topacity: 0.5;\n\t\t/* background-color:blue; */\n\t\ttop:-1080px\n}\n}\n/* 涓嬪眰鍚戜笂 */\n.floorUp {\n\t-webkit-animation: floorUp 1.5s 1;\n\t        animation: floorUp 1.5s 1;\n\t-webkit-animation-fill-mode: both;\n\t        animation-fill-mode: both;\n}\n@-webkit-keyframes floorUp {\nfrom {\n\t\topacity: 0.5;\n\t\t/* background-color:blue; */\n\t\ttop: 0px;\n}\nto {\n\t\topacity: 1;\n\t\t/* background-color:red; */\n\t\ttop: 1080px;\n}\n}\n@keyframes floorUp {\nfrom {\n\t\topacity: 0.5;\n\t\t/* background-color:blue; */\n\t\ttop: 0px;\n}\nto {\n\t\topacity: 1;\n\t\t/* background-color:red; */\n\t\ttop: 1080px;\n}\n}\n/* 涓嬪眰鍚戜笅 */\n.floorDown {\n\t-webkit-animation: floorDown 1.5s 1;\n\t        animation: floorDown 1.5s 1;\n\t-webkit-animation-fill-mode: both;\n\t        animation-fill-mode: both;\n}\n@-webkit-keyframes floorDown {\nfrom {\n\t\topacity: 0.5;\n\t\t/* background-color:blue; */\n\t\ttop: 1080px;\n}\nto {\n\t\topacity: 1;\n\t\t/* background-color:red; */\n\t\ttop: -0px;\n}\n}\n@keyframes floorDown {\nfrom {\n\t\topacity: 0.5;\n\t\t/* background-color:blue; */\n\t\ttop: 1080px;\n}\nto {\n\t\topacity: 1;\n\t\t/* background-color:red; */\n\t\ttop: -0px;\n}\n}\n.top-screen {\n\tposition: fixed;\n\twidth: 1920px;\n\theight: 1080px;\n\t/* top: -1000px; */\n\tbackground-image: url(" + ___CSS_LOADER_URL_REPLACEMENT_0___ + ");\n\t/* background:red; */\n\t/* animation:upMove 1.5s 1; */\n\tz-index: 999;\n}\n.floor-screen {\n\twidth: 1920px;\n\theight: 1080px;\n\tposition: relative;\n\tcolor: #FFFFFF;\n\ttext-align: center;\n\tfont-size: 120rpx;\n\tletter-spacing: 5rpx;\n\tbackground-image: url(" + ___CSS_LOADER_URL_REPLACEMENT_0___ + ");\n}\n.container {\n\twidth: 1920px;\n\theight: 1080px;\n\t\n\tposition: relative;\n\t/* background: #000428;  \n\tbackground: -webkit-linear-gradient(to right, #004e92, #000428);  \n\tbackground: linear-gradient(to right, #004e92, #000428); */\n}\n.head {\n\t/* background-color: #55aaff; */\n\twidth: 100%;\n\theight: 10%;\n\ttext-align: center;\n\tline-height: 110px;\n\tcolor: #FFFFFF;\n\tfont-size: 40px;\n\tfont-weight: 700;\n\tletter-spacing: 5px;\n}\n.head uni-text {\n\t-webkit-transform: scale(1,0.9);\n\t        transform: scale(1,0.9);\n}\n.time-tools {\n\theight: 5%;\n\t/* background-color: #007AFF; */\n\tposition: absolute;\n\ttop: 0;\n\tfloat: right;\n\tright: 50px;\n\tfont-size: 16px;\n\tfont-weight: 400;\n\tline-height: 70px;\n\tletter-spacing: 1px;\n}\n.button-left {\n\tposition: absolute;\n\tbackground-image: url(" + ___CSS_LOADER_URL_REPLACEMENT_1___ + ");\n\tbackground-size: 100% 100%;\n\ttop: 1.8%;\n\tleft: 21.3%;\n\twidth: 13.5%;\n\theight: 8.5%;\n\t-webkit-transform: scaleX(-1);\n\t        transform: scaleX(-1);\n}\n.button-right {\n\tposition: absolute;\n\tbackground-image: url(" + ___CSS_LOADER_URL_REPLACEMENT_1___ + ");\n\tbackground-size: 100% 100%;\n\ttop: 1.8%;\n\tleft: 65%;\n\twidth: 13.5%;\n\theight: 8.5%;\n}\n.main {\n\t/* background-color: #3F536E; */\n\tposition: relative;\n\twidth: 100%;\n\theight: 90%;\n}\n.main-sides {\n\t/* background-color: #004E92; */\n\tposition: relative;\n\tdisplay: inline-block;\n\tfloat: left;\n\twidth: 50%;\n\theight: 100%;\n\t/* margin: 2% auto 0 3.2%;\n\tborder: 1px solid rgba(20, 80, 136, 1); */\n}\n.box {\n\tposition: relative;\n\t/* background-color: #ffffff; */\n\tmargin: 3% 2% 0 2%;\n\twidth: 96%;\n\theight: 30%;\n\tborder: 1px solid rgba(20, 80, 136, 1);\n\toverflow: hidden;\n}\n.box-lg {\n\theight: 94%;\n}\n.box-border {\n\tposition: absolute;\n\t/* background-color: #4CD964; */\n\twidth: 10px;\n\theight: 10px;\n}\n.box-border1 {\n\ttop: 0;\n\tleft: 0;\n\tborder-left: 2px solid #31c4c4;\n\tborder-top: 2px solid #31c4c4;\n}\n.box-border2 {\n\ttop: 0;\n\tright: 0;\n\tborder-right: 2px solid #31c4c4;\n\tborder-top: 2px solid #31c4c4;\n}\n.box-border3 {\n\tbottom: 0;\n\tleft: 0;\n\tborder-bottom: 2px solid #31c4c4;\n\tborder-left: 2px solid #31c4c4;\n}\n.box-border4 {\n\tbottom: 0;\n\tright: 0;\n\tborder-right: 2px solid #31c4c4;\n\tborder-bottom: 2px solid #31c4c4;\n}\n.content {\n  display: flex;\n  flex-direction: column;\n  flex: 1;\n}\n.charts-box {\n  width: 80%;\n  height: 230px;\n  margin-left: 10%;\n  /* background-color: #fff; */\n}\n.ring {\n\tdisplay: inline-block;\n\tfloat: left;\n\twidth: 60%;\n\theight: 300px;\n\tmargin-left: -10%;\n}\n.box-item {\n\t/* background-color: #2C405A; */\n\twidth: 92%;\n\theight: 20%;\n\tmargin-left: 4%;\n\tpadding-top: 1em;\n\tcolor: #FFFFFF;\n}\n.introduce {\n\theight: 30%;\n}\n.introduce h2 {\n\tletter-spacing: 5px;\n}\n.english {\n\tfont-size: 14px;\n}\n.introduce-content {\n\tfont-size: 20px;\n\tpadding-top: 2em;\n\ttext-indent: 2em;\n\tline-height: 2em;\n}\n.charge-info {\n\t/* background-color: #2C405A; */\n\theight: 45%;\n}\n.charge-info-item {\n\t/* background-color: #EE6666; */\n\tdisplay: inline-block;\n\twidth: 50%;\n\theight: 40%;\n}\n.charge-info-item uni-image {\n\tdisplay: inline-block;\n\tfloat: left;\n\t/* background-color: #4CD964; */\n\theight: 100%;\n\twidth: 20%;\n}\n.charge-info-item uni-view {\n\tdisplay: inline-block;\n\tposition: relative;\n\tmargin-left: 10%;\n\twidth: 70%;\n\theight: 49%;\n\t/* background-color: #1890FF; */\n}\n.charge-info-item .count, .charge-info-item .unit{\n\tposition: absolute;\n\tdisplay: inline-block;\n\tfont-size: 32px;\n\tbottom: 0;\n\tpadding-left: 5%;\n}\n.charge-info-item .unit {\n\tfont-size: 16px;\n\tfloat: right;\n\tright: 20%;\n}\n.footer {\n\tposition: absolute;\n\tborder: 1px solid rgba(20, 80, 136, 1);\n\theight: 15%;\n}\n.use-info {\n\t/* background-color: #007AFF; */\n}\n.use-left {\n\tdisplay: inline-block;\n\t/* background-color: #2C405A; */\n\twidth: 40%;\n}\n.use-right {\n\tdisplay: inline-block;\n\t/* background-color: #2C405A; */\n\tfloat: right;\n\twidth: 20%;\n}\n.use-main {\n\twidth: 100%;\n\theight: 75%;\n\t/* background-color: #4CD964; */\n}\n.use-main .left {\n\t/* background-color: #ffaa7f; */\n\tdisplay: inline-block;\n\tfloat: left;\n\theight: 100%;\n\twidth: 70%;\n\tline-height: 20px;\n}\n.left .progressBar {\n\t/* margin-left: ; */\n\tmargin-top: 9%;\n\twidth: 100%;\n\theight: 20%;\n\tbackground-color: #233751;\n\tborder-radius: 20px;\n}\n.left .progress {\n\t/* width: 90%; */\n\theight: 100%;\n\tbackground-color: #FF5722;\n\tborder-radius: 20px;\n}\n.left uni-progress {\n\tmargin-left: 10%;\n\tmargin-top: 10%;\n\tdisplay: block;\n}\n.use-main .right {\n\t/* background-color: #ffaaff; */\n\tdisplay: inline-block;\n\tfloat: right;\n\theight: 100%;\n\twidth: 20%;\n\tfont-size: 40px;\n\tcolor: #FF5722;\n\tline-height: 130px;\n}\n.box-tp {\n\theight: 30%;\n}\n.box-tp .sub-main {\n\t/* background-color: #FFFFFF; */\n}\n.box-md {\n\theight: 43%;\n}\n.box-md .sub-main {\n}\n.sub-main-right {\n\tdisplay: inline-block;\n\theight: 100%;\n\twidth: 50%;\n}\n.sub-info {\n\twidth: 100%;\n\theight: 33%;\n}\n.sub-info uni-image {\n\tdisplay: inline-block;\n\tfloat: left;\n\theight: 100%;\n\twidth: 15%;\n}\n.sub-info uni-text {\n\tdisplay: inline-block;\n\twidth: 40%;\n\theight: 100%;\n\ttext-align: center;\n\tline-height: 120px;\n\tfont-size: 20px;\n}\n.box-bt {\n\tbackground-color: #063A7B;\n\tborder: none;\n\theight: 15%;\n\tcolor: #FFFFFF;\n}\n.box-bt uni-image {\n\tposition: absolute;\n\tfloat: right;\n\tright: 0;\n\ttop: 0;\n\twidth: 20%;\n\theight: 100%;\n}\n.box-bt {\n\tfont-size: 36px;\n\tline-height: 140px;\n\ttext-indent: 5em;\n}\n.right-item {\n\theight: 94%;\n}\n.sub-left {\n\tdisplay: inline-block;\n\tfloat: left;\n\twidth: 40%;\n}\n.sub-right {\n\tdisplay: inline-block;\n\tfloat: right;\n\twidth: 20%;\n}\n.sub-main {\n\tposition: absolute;\n\t/* background-color: #31C4C4; */\n\twidth: 92%;\n\theight: 80%;\n\tbottom: 0;\n}\n", ""]);
+exports.push([module.i, "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/* 寮瑰嚭:閰嶇疆鍖哄煙 */\n.eject-mask {\n\twidth: 100%;\n\theight: 100%;\n\tbackground-color: rgba(0, 0, 0, 0.5);\n\tposition: fixed;\n\ttop: 0;\n\tleft: 0;\n\tz-index: 999;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n}\n.eject{\n\tposition: relative;\n\twidth: 600px;\n\theight: 350px;\n\tbackground-color: #eaeaea;\n\tborder-radius: 25rpx;\n}\n.eject-title {\n\twidth: 100%;\n\theight: 100px;\n\tline-height: 100px;\n\tfont-size: 20px;\n\tfont-weight: 700;\n\tcolor: \t#606266;\n\ttext-align: center;\n}\n.eject-input {\n}\n.item {\n\tdisplay: flex;\n\talign-items: center;\n\tmargin: 10px 0 0 0;\n}\n.desc {\n\tdisplay: inline-block;\n\twidth: 40%;\n\ttext-align: right;\n\tcolor: #606266;\n\tfont-size: 18px;\n}\n.input {\n\tdisplay: flex;\n\talign-items: center;\n\tpadding-left: 5px;\n\tpadding-right: 5px;\n\twidth: 100%;\n\theight: 30px;\n\tborder: 1px solid #C0C4CC;\n\tmargin-right: 50px;\n}\n.eject-input uni-input {\n\twidth: 100%;\n}\n.eject-button {\n\tdisplay: flex;\n\talign-items: center;\n\tposition: absolute;\n\tbottom: 0;\n\theight: 60px;\n\tline-height: 60px;\n\twidth: 100%;\n\tborder-top: 1px solid #ccc;\n}\n.button-item {\n\twidth: 50%;\n\theight: 100%;\n\tfont-size: 20px;\n\tfont-weight: bold;\n\ttext-align: center;\n\tcolor: #909399;\n}\n.button-item:last-child {\n\tcolor: #67C23A;\n\t\n\tborder-left: 1px solid #ccc;\n}\n.full-width {\n\twidth: 100%;\n\theight: 100%;\n\tdisplay: inline-block;\n\tfloat: left;\n}\n.half-width {\n\twidth: 50%;\n\theight: 100%;\n\tdisplay: inline-block;\n\tfloat: left;\n}\n.box-items {\n\theight: 20%;\n\twidth: 100%;\n\t/* background-color: #233751; */\n\tline-height: 300rpx;\n}\n/* 褰撳墠椤甸潰鏃� orderNo */\n.swiper-here {\n\tdisplay: inline-block;\n\tmargin: 0 auto;\n\twidth: 100%;\n\theight: 100%;\n}\n/* 褰撳墠椤甸潰鏈� orderNo */\n.swiper-here-oN{\n\tdisplay: inline-block;\n\t/* background-color: #063A7B; */\n\tmargin: 0 auto;\n\twidth: 100%;\n\theight: 90%;\n}\n/* 褰撳墠椤甸潰鏈� error鎻愮ず */\n.swiper-here-error {\n\tdisplay: inline-block;\n\t/* background-color: #063A7B; */\n\t/* margin: 0 auto; */\n\tmargin-top: 20%;\n\twidth: 100%;\n\theight: 100%;\n}\n.animate {\n\tdisplay: inline-block;\n            /* white-space: nowrap; */\n            -webkit-animation: 25s wordsLoop linear infinite normal;\n                    animation: 25s wordsLoop linear infinite normal;\n}\n@keyframes wordsLoop {\n0% {\n                transform: translateY(100px);\n                -webkit-transform: translateY(100px);\n}\n100% {\n                transform: translateY(-100%);\n                -webkit-transform: translateY(-100%);\n}\n}\n@-webkit-keyframes wordsLoop {\n0% {\n                transform: translateY(100px);\n                -webkit-transform: translateY(100px);\n}\n100% {\n                transform: translateY(-100%);\n                -webkit-transform: translateY(-100%);\n}\n}\n/* animation:upMove 1.5s 1; */\n/* downMove */\n/* 涓婂眰鍚戜笂 */\n.topUp {\n\t-webkit-animation: topUp 1.5s 1;\n\t        animation: topUp 1.5s 1;\n\t-webkit-animation-fill-mode: both;\n\t        animation-fill-mode: both;\n}\n@-webkit-keyframes topUp {\nfrom {\n\t\topacity: 0.5;\n\t\t/* background-color:blue; */\n\t\ttop:-1080px\n}\nto {\n\t\topacity: 1;\n\t\t/* background-color:red; */\n\t\ttop: 0;\n}\n}\n@keyframes topUp {\nfrom {\n\t\topacity: 0.5;\n\t\t/* background-color:blue; */\n\t\ttop:-1080px\n}\nto {\n\t\topacity: 1;\n\t\t/* background-color:red; */\n\t\ttop: 0;\n}\n}\n/* 涓婂眰鍚戜笅 */\n.topDown {\n\t-webkit-animation: topDown 1.5s 1;\n\t        animation: topDown 1.5s 1;\n\t-webkit-animation-fill-mode: both;\n\t        animation-fill-mode: both;\n}\n@-webkit-keyframes topDown\n\t{\nfrom {\n\t\topacity: 1;\n\t\t/* background-color:red; */\n\t\ttop: 0;\n}\nto {\n\t\topacity: 0.5;\n\t\t/* background-color:blue; */\n\t\ttop:-1080px\n}\n}\n@keyframes topDown\n\t{\nfrom {\n\t\topacity: 1;\n\t\t/* background-color:red; */\n\t\ttop: 0;\n}\nto {\n\t\topacity: 0.5;\n\t\t/* background-color:blue; */\n\t\ttop:-1080px\n}\n}\n/* 涓嬪眰鍚戜笂 */\n.floorUp {\n\t-webkit-animation: floorUp 1.5s 1;\n\t        animation: floorUp 1.5s 1;\n\t-webkit-animation-fill-mode: both;\n\t        animation-fill-mode: both;\n}\n@-webkit-keyframes floorUp {\nfrom {\n\t\topacity: 0.5;\n\t\t/* background-color:blue; */\n\t\ttop: 0px;\n}\nto {\n\t\topacity: 1;\n\t\t/* background-color:red; */\n\t\ttop: 1080px;\n}\n}\n@keyframes floorUp {\nfrom {\n\t\topacity: 0.5;\n\t\t/* background-color:blue; */\n\t\ttop: 0px;\n}\nto {\n\t\topacity: 1;\n\t\t/* background-color:red; */\n\t\ttop: 1080px;\n}\n}\n/* 涓嬪眰鍚戜笅 */\n.floorDown {\n\t-webkit-animation: floorDown 1.5s 1;\n\t        animation: floorDown 1.5s 1;\n\t-webkit-animation-fill-mode: both;\n\t        animation-fill-mode: both;\n}\n@-webkit-keyframes floorDown {\nfrom {\n\t\topacity: 0.5;\n\t\t/* background-color:blue; */\n\t\ttop: 1080px;\n}\nto {\n\t\topacity: 1;\n\t\t/* background-color:red; */\n\t\ttop: -0px;\n}\n}\n@keyframes floorDown {\nfrom {\n\t\topacity: 0.5;\n\t\t/* background-color:blue; */\n\t\ttop: 1080px;\n}\nto {\n\t\topacity: 1;\n\t\t/* background-color:red; */\n\t\ttop: -0px;\n}\n}\n.top-screen {\n\tposition: fixed;\n\twidth: 1920px;\n\theight: 1080px;\n\t/* top: -1000px; */\n\tbackground-image: url(" + ___CSS_LOADER_URL_REPLACEMENT_0___ + ");\n\t/* background:red; */\n\t/* animation:upMove 1.5s 1; */\n\tz-index: 999;\n}\n.floor-screen {\n\twidth: 1920px;\n\theight: 1080px;\n\tposition: relative;\n\tcolor: #FFFFFF;\n\ttext-align: center;\n\tfont-size: 120rpx;\n\tletter-spacing: 5rpx;\n\tbackground-image: url(" + ___CSS_LOADER_URL_REPLACEMENT_0___ + ");\n}\n.container {\n\twidth: 1920px;\n\theight: 1080px;\n\t\n\tposition: relative;\n\t/* background: #000428;  \n\tbackground: -webkit-linear-gradient(to right, #004e92, #000428);  \n\tbackground: linear-gradient(to right, #004e92, #000428); */\n}\n.head {\n\t/* background-color: #55aaff; */\n\twidth: 100%;\n\theight: 10%;\n\ttext-align: center;\n\tline-height: 110px;\n\tcolor: #FFFFFF;\n\tfont-size: 40px;\n\tfont-weight: 700;\n\tletter-spacing: 5px;\n}\n.head uni-text {\n\t-webkit-transform: scale(1,0.9);\n\t        transform: scale(1,0.9);\n}\n.time-tools {\n\theight: 5%;\n\t/* background-color: #007AFF; */\n\tposition: absolute;\n\ttop: 0;\n\tfloat: right;\n\tright: 50px;\n\tfont-size: 16px;\n\tfont-weight: 400;\n\tline-height: 70px;\n\tletter-spacing: 1px;\n}\n.button-left {\n\tposition: absolute;\n\tbackground-image: url(" + ___CSS_LOADER_URL_REPLACEMENT_1___ + ");\n\tbackground-size: 100% 100%;\n\ttop: 1.8%;\n\tleft: 21.3%;\n\twidth: 13.5%;\n\theight: 8.5%;\n\t-webkit-transform: scaleX(-1);\n\t        transform: scaleX(-1);\n}\n.button-right {\n\tposition: absolute;\n\tbackground-image: url(" + ___CSS_LOADER_URL_REPLACEMENT_1___ + ");\n\tbackground-size: 100% 100%;\n\ttop: 1.8%;\n\tleft: 65%;\n\twidth: 13.5%;\n\theight: 8.5%;\n}\n.main {\n\t/* background-color: #3F536E; */\n\tposition: relative;\n\twidth: 100%;\n\theight: 90%;\n}\n.main-sides {\n\t/* background-color: #004E92; */\n\tposition: relative;\n\tdisplay: inline-block;\n\tfloat: left;\n\twidth: 50%;\n\theight: 100%;\n\t/* margin: 2% auto 0 3.2%;\n\tborder: 1px solid rgba(20, 80, 136, 1); */\n}\n.box {\n\tposition: relative;\n\t/* background-color: #ffffff; */\n\tmargin: 3% 2% 0 2%;\n\twidth: 96%;\n\theight: 30%;\n\tborder: 1px solid rgba(20, 80, 136, 1);\n\toverflow: hidden;\n}\n.box-lg {\n\theight: 94%;\n}\n.box-border {\n\tposition: absolute;\n\t/* background-color: #4CD964; */\n\twidth: 10px;\n\theight: 10px;\n}\n.box-border1 {\n\ttop: 0;\n\tleft: 0;\n\tborder-left: 2px solid #31c4c4;\n\tborder-top: 2px solid #31c4c4;\n}\n.box-border2 {\n\ttop: 0;\n\tright: 0;\n\tborder-right: 2px solid #31c4c4;\n\tborder-top: 2px solid #31c4c4;\n}\n.box-border3 {\n\tbottom: 0;\n\tleft: 0;\n\tborder-bottom: 2px solid #31c4c4;\n\tborder-left: 2px solid #31c4c4;\n}\n.box-border4 {\n\tbottom: 0;\n\tright: 0;\n\tborder-right: 2px solid #31c4c4;\n\tborder-bottom: 2px solid #31c4c4;\n}\n.content {\n  display: flex;\n  flex-direction: column;\n  flex: 1;\n}\n.charts-box {\n  width: 80%;\n  height: 230px;\n  margin-left: 10%;\n  /* background-color: #fff; */\n}\n.ring {\n\tdisplay: inline-block;\n\tfloat: left;\n\twidth: 60%;\n\theight: 300px;\n\tmargin-left: -10%;\n}\n.box-item {\n\t/* background-color: #2C405A; */\n\twidth: 92%;\n\theight: 20%;\n\tmargin-left: 4%;\n\tpadding-top: 1em;\n\tcolor: #FFFFFF;\n}\n.introduce {\n\theight: 30%;\n}\n.introduce h2 {\n\tletter-spacing: 5px;\n}\n.english {\n\tfont-size: 14px;\n}\n.introduce-content {\n\tfont-size: 20px;\n\tpadding-top: 2em;\n\ttext-indent: 2em;\n\tline-height: 2em;\n}\n.charge-info {\n\t/* background-color: #2C405A; */\n\theight: 45%;\n}\n.charge-info-item {\n\t/* background-color: #EE6666; */\n\tdisplay: inline-block;\n\twidth: 50%;\n\theight: 40%;\n}\n.charge-info-item uni-image {\n\tdisplay: inline-block;\n\tfloat: left;\n\t/* background-color: #4CD964; */\n\theight: 100%;\n\twidth: 20%;\n}\n.charge-info-item uni-view {\n\tdisplay: inline-block;\n\tposition: relative;\n\tmargin-left: 10%;\n\twidth: 70%;\n\theight: 49%;\n\t/* background-color: #1890FF; */\n}\n.charge-info-item .count, .charge-info-item .unit{\n\tposition: absolute;\n\tdisplay: inline-block;\n\tfont-size: 32px;\n\tbottom: 0;\n\tpadding-left: 5%;\n}\n.charge-info-item .unit {\n\tfont-size: 16px;\n\tfloat: right;\n\tright: 20%;\n}\n.footer {\n\tposition: absolute;\n\tborder: 1px solid rgba(20, 80, 136, 1);\n\theight: 15%;\n}\n.use-info {\n\t/* background-color: #007AFF; */\n}\n.use-left {\n\tdisplay: inline-block;\n\t/* background-color: #2C405A; */\n\twidth: 40%;\n}\n.use-right {\n\tdisplay: inline-block;\n\t/* background-color: #2C405A; */\n\tfloat: right;\n\twidth: 20%;\n}\n.use-main {\n\twidth: 100%;\n\theight: 75%;\n\t/* background-color: #4CD964; */\n}\n.use-main .left {\n\t/* background-color: #ffaa7f; */\n\tdisplay: inline-block;\n\tfloat: left;\n\theight: 100%;\n\twidth: 70%;\n\tline-height: 20px;\n}\n.left .progressBar {\n\t/* margin-left: ; */\n\tmargin-top: 9%;\n\twidth: 100%;\n\theight: 20%;\n\tbackground-color: #233751;\n\tborder-radius: 20px;\n}\n.left .progress {\n\t/* width: 90%; */\n\theight: 100%;\n\tbackground-color: #FF5722;\n\tborder-radius: 20px;\n}\n.left uni-progress {\n\tmargin-left: 10%;\n\tmargin-top: 10%;\n\tdisplay: block;\n}\n.use-main .right {\n\t/* background-color: #ffaaff; */\n\tdisplay: inline-block;\n\tfloat: right;\n\theight: 100%;\n\twidth: 20%;\n\tfont-size: 40px;\n\tcolor: #FF5722;\n\tline-height: 130px;\n}\n.box-tp {\n\theight: 30%;\n}\n.box-tp .sub-main {\n\t/* background-color: #FFFFFF; */\n}\n.box-md {\n\theight: 43%;\n}\n.box-md .sub-main {\n}\n.sub-main-right {\n\tdisplay: inline-block;\n\theight: 100%;\n\twidth: 50%;\n}\n.sub-info {\n\twidth: 100%;\n\theight: 33%;\n}\n.sub-info uni-image {\n\tdisplay: inline-block;\n\tfloat: left;\n\theight: 100%;\n\twidth: 15%;\n}\n.sub-info uni-text {\n\tdisplay: inline-block;\n\twidth: 40%;\n\theight: 100%;\n\ttext-align: center;\n\tline-height: 120px;\n\tfont-size: 20px;\n}\n.box-bt {\n\tbackground-color: #063A7B;\n\tborder: none;\n\theight: 15%;\n\tcolor: #FFFFFF;\n}\n.box-bt uni-image {\n\tposition: absolute;\n\tfloat: right;\n\tright: 0;\n\ttop: 0;\n\twidth: 20%;\n\theight: 100%;\n}\n.box-bt {\n\tfont-size: 36px;\n\tline-height: 140px;\n\ttext-indent: 5em;\n}\n.right-item {\n\theight: 94%;\n}\n.sub-left {\n\tdisplay: inline-block;\n\tfloat: left;\n\twidth: 40%;\n}\n.sub-right {\n\tdisplay: inline-block;\n\tfloat: right;\n\twidth: 20%;\n}\n.sub-main {\n\tposition: absolute;\n\t/* background-color: #31C4C4; */\n\twidth: 92%;\n\theight: 80%;\n\tbottom: 0;\n}\n", ""]);
 // Exports
 module.exports = exports;
 

--
Gitblit v1.9.1