From 9977c8fc3a2c7df4041ab14eaeb62976f1a607ea Mon Sep 17 00:00:00 2001
From: 快乐的昕的电脑 <快乐的昕的电脑@DESKTOP-C2BQPQU>
Date: 星期四, 04 十二月 2025 11:30:49 +0800
Subject: [PATCH] 备份节点一
---
unpackage/dist/dev/app-plus/app-service.js | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/unpackage/dist/dev/app-plus/app-service.js b/unpackage/dist/dev/app-plus/app-service.js
index 055d473..99a96af 100644
--- a/unpackage/dist/dev/app-plus/app-service.js
+++ b/unpackage/dist/dev/app-plus/app-service.js
@@ -3516,7 +3516,7 @@
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 2);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 6));\nvar _WorkOrderStatus = _interopRequireDefault(__webpack_require__(/*! ../components/WorkOrderStatus.vue */ 53));\nvar _uniTable = _interopRequireDefault(__webpack_require__(/*! ../uni_modules/uni-table/components/uni-table/uni-table.vue */ 14));\nvar _mold = _interopRequireDefault(__webpack_require__(/*! ../components/mold.vue */ 58));\nvar _machine = _interopRequireDefault(__webpack_require__(/*! ../components/machine.vue */ 63));\nvar _WorkOrderPrint = _interopRequireDefault(__webpack_require__(/*! ../components/WorkOrderPrint.vue */ 68));\nvar _WorkOrder = _interopRequireDefault(__webpack_require__(/*! ../components/WorkOrder.vue */ 74));\nvar _Technology = _interopRequireDefault(__webpack_require__(/*! ../components/Technology.vue */ 79));\nvar _PDFShow = _interopRequireDefault(__webpack_require__(/*! ../components/PDFShow.vue */ 84));\nvar _PrintInit = _interopRequireDefault(__webpack_require__(/*! ../components/PrintInit.vue */ 89));\nvar _PrintTest = _interopRequireDefault(__webpack_require__(/*! ../components/PrintTest.vue */ 94));\nvar _EquipmentInspection = _interopRequireDefault(__webpack_require__(/*! ../components/EquipmentInspection.vue */ 99));\nvar _methods;\nvar _default = {\n components: {\n Technology: _Technology.default,\n WorkOrder: _WorkOrder.default,\n WorkOrderPrint: _WorkOrderPrint.default,\n Machine: _machine.default,\n Mold: _mold.default,\n UniTable: _uniTable.default,\n WorkOrderStatus: _WorkOrderStatus.default,\n PDFShow: _PDFShow.default,\n PrintInit: _PrintInit.default,\n PrintTest: _PrintTest.default,\n EquipmentInspection: _EquipmentInspection.default\n },\n data: function data() {\n var _ref;\n return _ref = {\n orderStatus: '',\n // 榛樿鍏ㄩ儴\n currentTab: 7,\n productCode: '',\n // 浜у搧缂栫爜\n productSpec: '',\n // 浜у搧瑙勬牸\n\n machineList: [],\n machine: [],\n engineeringNoList: [],\n engineeringNoMapList: [],\n engineeringNo: '',\n machineNo: '',\n machineName: '',\n tableData: [],\n isShowTableData: []\n }, (0, _defineProperty2.default)(_ref, \"orderStatus\", '寮�宸�'), (0, _defineProperty2.default)(_ref, \"selectedOrder\", ''), (0, _defineProperty2.default)(_ref, \"orderId\", 0), (0, _defineProperty2.default)(_ref, \"selectedIndexs\", []), (0, _defineProperty2.default)(_ref, \"isShow\", false), _ref;\n },\n created: function created() {\n //璋冭瘯浣跨敤鐨勪唬鐮乗n // this.machineNo = uni.getStorageSync('machineNo');\n // this.machineName = uni.getStorageSync('machineName');\n //\n // if (this.machineNo) {\n // this.getWomdaaIsShow();\n // }\n\n uni.clearStorageSync();\n this.checkForUpdate();\n\n //宸ユ帶鏈轰娇鐢ㄧ殑浠g爜\n this.getPrintInfo();\n },\n onLoad: function onLoad(options) {\n this.getMachineList();\n },\n onShow: function onShow() {\n this.refresh();\n },\n methods: (_methods = {\n onRowClick: function onRowClick(index) {\n this.selectedIndexs = [index]; // 鍗曢�塡n // 鎵嬪姩瑙﹀彂 selectionChange 浠ュ悓姝ュ閫夋\n this.selectionChange({\n detail: {\n index: index\n }\n });\n },\n checkForUpdate: function checkForUpdate() {\n var _this = this;\n this.$post({\n url: \"/DevMachine/getAppUpgradeInfo\",\n data: {}\n }).then(function (res) {\n var newVersion = res.data.version;\n var currentVersion = uni.getSystemInfoSync(); // 鑾峰彇褰撳墠 APK 鐗堟湰鍙穃n\n if (newVersion > currentVersion.appVersion) {\n uni.showModal({\n title: \"鍙戠幇鏂扮増鏈琝",\n content: \"鏄惁涓嬭浇鏈�鏂扮増鏈�?\",\n success: function success(modalRes) {\n if (modalRes.confirm) {\n _this.downloadNewApk(res.data.apkUrl);\n }\n }\n });\n //this.downloadNewApk(res.data.apkUrl);\n _this.updateChecked = true; // 鏍囪鏇存柊宸叉鏌ヨ繃\n // // 濡傛灉鏈夋柊鐗堟湰锛屽紑濮嬩笅杞絓n //download(res.data.apkUrl);\n }\n });\n },\n downloadNewApk: function downloadNewApk(apkUrl) {\n uni.showToast({\n title: \"寮�濮嬩笅杞芥洿鏂�...\",\n icon: \"none\",\n duration: 2000\n });\n uni.downloadFile({\n url: apkUrl,\n success: function success(res) {\n if (res.statusCode === 200) {\n plus.runtime.install(res.tempFilePath, {\n force: true\n }, function () {\n __f__(\"log\", \"瀹夎鎴愬姛锛岄噸鍚簲鐢╘", \" at pages/index.vue:391\");\n //plus.runtime.restart();\n //plus.runtime.quit();\n // uni.navigateBack()\n }, function (e) {\n __f__(\"error\", \"瀹夎澶辫触:\", e, \" at pages/index.vue:396\");\n });\n }\n },\n fail: function fail(err) {\n __f__(\"error\", \"涓嬭浇澶辫触:\", err, \" at pages/index.vue:401\");\n uni.showToast({\n title: \"涓嬭浇澶辫触锛岃妫�鏌ョ綉缁淺",\n icon: \"none\",\n duration: 2000\n });\n }\n });\n },\n refresh: function refresh() {\n this.getMachineList();\n this.getPrintInfo();\n this.getWomdaaIsShow();\n },\n getPrintInfo: function getPrintInfo() {\n var _this2 = this;\n var mac = \"\";\n mac = \"74:24:ca:4f:b2:c3\";\n this.$post({\n url: \"/DevMachine/GetDevMachineByPdaMac\",\n data: {\n pdaMac: mac\n }\n }).then(function (res) {\n var devMachine = res.data.tbBillList;\n _this2.machineNo = devMachine.machineNo;\n _this2.machineName = \"璋冭瘯妯″紡锛歕" + _this2.machineNo + \"鍙烽娇杞満\";\n uni.setStorageSync('machineNo', _this2.machineNo);\n uni.setStorageSync('printMac', devMachine.printMac);\n __f__(\"log\", devMachine.printMac, \" at pages/index.vue:433\");\n _this2.getWomdaaIsShow();\n });\n return;\n if (plus.os.name == \"Android\") {\n //鑾峰彇鎵嬫満MAC鍦板潃\n var Context = plus.android.importClass(\"android.content.Context\");\n var WifiManager = plus.android.importClass(\"android.net.wifi.WifiManager\");\n var wifiManager = plus.android.runtimeMainActivity().getSystemService(Context.WIFI_SERVICE);\n var WifiInfo = plus.android.importClass(\"android.net.wifi.WifiInfo\");\n var wifiInfo = wifiManager.getConnectionInfo();\n mac = wifiInfo.getMacAddress();\n\n //濡傛灉mac涓衡��02:00:00:00:00:00鈥濓紝鍒欏彲鑳芥槸瀹夊崜6.0浠ヤ笂鐗堟湰锛屽垯浣跨敤鍙︿竴绉嶆柟娉曡幏鍙杕ac鍦板潃\n if (mac == \"02:00:00:00:00:00\") {\n mac = this.getMacNew();\n }\n //濡傛灉mac浣跨敤鏂版柟娉曚緷鐒舵槸鈥�02:00:00:00:00:00鈥濆垯涓嶈繘琛屼繚瀛榎n if (mac == \"02:00:00:00:00:00\") {\n return;\n }\n uni.setStorageSync('pdaMac', mac);\n this.$post({\n url: \"/DevMachine/GetDevMachineByPdaMac\",\n data: {\n pdaMac: mac\n }\n }).then(function (res) {\n var devMachine = res.data.tbBillList;\n _this2.machineNo = devMachine.machineNo;\n _this2.machineName = \"褰撳墠鏈哄彴锛歕" + _this2.machineNo + \"鍙烽娇杞満\";\n uni.setStorageSync('machineNo', _this2.machineNo);\n uni.setStorageSync('printMac', devMachine.printMac);\n _this2.getWomdaaIsShow();\n });\n }\n },\n save: function save() {\n var _this3 = this;\n var data = this.selectedItems();\n if (data.length === 0) {\n this.$showMessage(\"璇烽�夋嫨涓�涓伐鍗昞");\n return;\n }\n if (data.length > 1) {\n this.$showMessage(\"涓�娆″彧鑳介�夊彇涓�涓伐鍗昞");\n return;\n }\n\n //let firstValue = data[0][\"moldId\"]; // 鑾峰彇绗竴涓璞$殑鎸囧畾灞炴�у�糪n\n //// 浣跨敤 every 鏂规硶妫�鏌ユ墍鏈夊璞$殑璇ュ睘鎬у�兼槸鍚︿竴鑷碶n //let flag = data.every(item => item[\"moldId\"] === firstValue);\n //if (!flag) {\n //\tthis.$showMessage(\"閫夊彇鐨刓" + data.length + \"涓伐鍗曚腑鐨勬ā鍏风紪鍙蜂笉涓�鑷碶");\n //\treturn;\n //}\n\n var orderSelect = [];\n data.forEach(function (s) {\n var entity = {\n orderId: s.id,\n orderNo: s.daa001\n };\n orderSelect.push(entity);\n });\n var editDate = this.formatDate(new Date());\n this.$post({\n url: \"/MesOrderSelect/Add\",\n data: {\n machineNo: this.machineNo,\n editDate: editDate,\n item: orderSelect\n }\n }).then(function (res) {\n if (res.data.tbBillList) {\n _this3.getWomdaaIsShow();\n uni.showToast({\n title: '淇濆瓨宸ュ崟鎴愬姛',\n //title: '灏嗘敞濉戞満寮�鍚堟ā鏁版竻0',\n //灏嗗�艰缃负 success 鎴栬�呯洿鎺ヤ笉鐢ㄥ啓icon杩欎釜鍙傛暟\n icon: 'success',\n //鏄剧ず鎸佺画鏃堕棿涓� 5绉抃n duration: 5000\n });\n }\n _this3.isShow = false;\n });\n },\n getMacNew: function getMacNew() {\n var str = \"\";\n try {\n if (plus.os.name == \"Android\") {\n var NetworkInterface = plus.android.importClass(\"java.net.NetworkInterface\");\n var networkInterface = NetworkInterface.getByName(\"wlan0\");\n var bytes = networkInterface.getHardwareAddress();\n\n //灏哹yte[] 杞崲鎴� String\n for (var i = 0; i < bytes.length; i++) {\n var tmp = \"\";\n var num = bytes[i];\n if (num < 0) {\n tmp = (255 + num + 1).toString(16);\n } else {\n tmp = num.toString(16);\n }\n if (tmp.length == 1) {\n tmp = \"0\" + tmp;\n }\n str += i == 0 ? tmp : \":\" + tmp;\n }\n }\n } catch (err) {\n str = \"02:00:00:00:00:00\";\n }\n return str;\n },\n cancel: function cancel() {\n var _this4 = this;\n if (!this.machineNo) {\n return;\n }\n\n // 鐩存帴鐢� flag 鍒ゆ柇\n if (this.hasBindedCutterFlag) {\n uni.showToast({\n title: '褰撳墠宸ュ崟宸茬粦瀹氬垁鍏凤紝涓嶈兘娓呯┖閲嶉��',\n icon: 'error',\n duration: 2000\n });\n return;\n }\n var editDate = this.formatDate(new Date());\n this.selectedIndexs = [];\n this.$post({\n url: \"/MesOrderSelect/Remove\",\n data: {\n machineNo: this.machineNo,\n editDate: editDate\n }\n }).then(function (res) {\n if (res.data.tbBillList > 0) {\n _this4.isShowTableData = [];\n }\n });\n },\n formatDate: function formatDate(date) {\n var year = date.getFullYear(); // 鑾峰彇骞翠唤\n var month = String(date.getMonth() + 1).padStart(2, '0'); // 鑾峰彇鏈堜唤骞惰ˉ闆禱n var day = String(date.getDate()).padStart(2, '0'); // 鑾峰彇鏃ユ湡骞惰ˉ闆禱n return \"\".concat(year, \"-\").concat(month, \"-\").concat(day); // 杩斿洖鏍煎紡鍖栧悗鐨勫瓧绗︿覆\n },\n selectionChange: function selectionChange(e) {\n // 鍗曢�夌洿鎺ヨ祴鍊糪n this.selectedIndexs = [e.detail.index];\n },\n selectedItems: function selectedItems() {\n var _this5 = this;\n return this.selectedIndexs.map(function (i) {\n return _this5.tableData[i];\n });\n },\n changeTab: function changeTab(index) {\n this.currentTab = index;\n // 褰撳垏鎹㈠埌宸ュ崟閫夋嫨椤甸潰(index === 7)鏃惰嚜鍔ㄥ埛鏂癨n if (index === 7) {\n this.refresh();\n }\n __f__(\"log\", index, \" at pages/index.vue:617\");\n },\n onMachineChange: function onMachineChange(event) {\n this.machineName = event;\n this.machineNo = this.machine[this.machineList.indexOf(event)].machineNo;\n uni.clearStorageSync();\n uni.setStorageSync('machineNo', this.machineNo);\n uni.setStorageSync('machineName', this.machineName);\n this.getWomdaaIsShow();\n },\n onEngineeringNoChange: function onEngineeringNoChange(event) {\n var orde = this.engineeringNoList[this.engineeringNoMapList.indexOf(event)];\n this.engineeringNo = orde.moldId;\n this.getWomdaa();\n },\n getMachineList: function getMachineList() {\n var _this6 = this;\n this.$post({\n url: \"/MesMachine/GetInjectionMachine\"\n }).then(function (res) {\n _this6.machine = res.data.tbBillList;\n _this6.machineList = _this6.machine.map(function (s) {\n return s.machineName;\n });\n });\n },\n //鑾峰彇琛ㄦ牸鐨勬暟鎹簮\n getWomdaaIsShow: function getWomdaaIsShow() {\n var _this7 = this;\n this.$post({\n url: \"/Womdaa/GetWomdaasByShow\",\n data: {\n machineNo: this.machineNo\n }\n }).then(function (res) {\n _this7.isShowTableData = res.data.tbBillList;\n\n // 鍙垽鏂涓�鏉★紙鍙厑璁镐竴鏉″伐鍗曪級\n var order = _this7.isShowTableData[0];\n var hasBindedCutter = false;\n if (order) {\n hasBindedCutter = order.outToolId && order.outToolId.toString().trim() !== '' || order.outToolCode && order.outToolCode.trim() !== '' || order.outToolName && order.outToolName.trim() !== '';\n }\n // 瀛樺偍鍒� data 鍙橀噺\n _this7.hasBindedCutterFlag = hasBindedCutter;\n if (_this7.isShowTableData.length == 1) {\n uni.setStorageSync('daa001', _this7.isShowTableData[0].daa001);\n uni.setStorageSync('id', _this7.isShowTableData[0].id);\n }\n });\n },\n isShowTab: function isShowTab() {\n if (this.isShowTableData.length > 0) {\n uni.showToast({\n title: '宸叉湁姝e湪鎿嶄綔鐨勫伐鍗曪紝涓嶈兘鍐嶆閫夋嫨',\n icon: 'error',\n duration: 2000\n });\n return;\n }\n this.isShow = true;\n // 榛樿閫変腑鈥滃緟寮�宸モ�漒n this.engineeringNo = '寰呭紑宸ャ�佹湭寮�宸ャ�佹殏鍋�';\n this.tableData = [];\n // 涓嬫媺妗嗗彧鏄剧ず鍚堝苟鍚庣殑鐘舵�佸拰鍏跺畠鐘舵�乗n this.engineeringNoMapList = ['寰呭紑宸ャ�佹湭寮�宸ャ�佹殏鍋�', '寮�宸�', '瀹屽伐'];\n // 榛樿鏄剧ず鈥滃緟寮�宸モ�濆伐鍗昞n this.getWomdaaByStatus();\n }\n }, (0, _defineProperty2.default)(_methods, \"onEngineeringNoChange\", function onEngineeringNoChange(status) {\n this.engineeringNo = status;\n this.getWomdaaByStatus();\n }), (0, _defineProperty2.default)(_methods, \"getWomdaa\", function getWomdaa() {\n var _this8 = this;\n var editDate = this.formatDate(new Date());\n this.$post({\n url: \"/Womdaa/GetWomdaasByMachine\",\n data: {\n machineNo: this.machineNo,\n editDate: editDate\n }\n }).then(function (res) {\n _this8.tableData = res.data.tbBillList;\n });\n }), (0, _defineProperty2.default)(_methods, \"getWomdaaByStatus\", function getWomdaaByStatus() {\n var _this9 = this;\n var editDate = this.formatDate(new Date());\n var statusArr = [];\n if (this.engineeringNo === '寰呭紑宸ャ�佹湭寮�宸ャ�佹殏鍋�') {\n statusArr = ['寰呭紑宸�', '鏈紑宸�', '鏆傚仠'];\n } else {\n statusArr = [this.engineeringNo];\n }\n this.$post({\n url: \"/Womdaa/GetWomdaasByEngineeringNo\",\n data: {\n machineNo: this.machineNo,\n orderStatus: statusArr,\n editDate: editDate\n }\n }).then(function (res) {\n _this9.tableData = res.data.tbBillList;\n });\n }), (0, _defineProperty2.default)(_methods, \"toDetail\", function toDetail(item) {\n this.orderId = item.id;\n this.selectedOrder = item.daa001;\n this.productCode = item.daa002; // 浜у搧缂栫爜\n this.productSpec = item.daa004; // 浜у搧瑙勬牸\n this.currentTab = 0;\n }), _methods),\n computed: {}\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 1)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaW5kZXgudnVlIl0sIm5hbWVzIjpbImNvbXBvbmVudHMiLCJUZWNobm9sb2d5IiwiV29ya09yZGVyIiwiV29ya09yZGVyUHJpbnQiLCJNYWNoaW5lIiwiTW9sZCIsIlVuaVRhYmxlIiwiV29ya09yZGVyU3RhdHVzIiwiUERGU2hvdyIsIlByaW50SW5pdCIsIlByaW50VGVzdCIsIkVxdWlwbWVudEluc3BlY3Rpb24iLCJkYXRhIiwib3JkZXJTdGF0dXMiLCJjdXJyZW50VGFiIiwicHJvZHVjdENvZGUiLCJwcm9kdWN0U3BlYyIsIm1hY2hpbmVMaXN0IiwibWFjaGluZSIsImVuZ2luZWVyaW5nTm9MaXN0IiwiZW5naW5lZXJpbmdOb01hcExpc3QiLCJlbmdpbmVlcmluZ05vIiwibWFjaGluZU5vIiwibWFjaGluZU5hbWUiLCJ0YWJsZURhdGEiLCJpc1Nob3dUYWJsZURhdGEiLCJjcmVhdGVkIiwidW5pIiwib25Mb2FkIiwib25TaG93IiwibWV0aG9kcyIsIm9uUm93Q2xpY2siLCJkZXRhaWwiLCJpbmRleCIsImNoZWNrRm9yVXBkYXRlIiwidXJsIiwidGl0bGUiLCJjb250ZW50Iiwic3VjY2VzcyIsImRvd25sb2FkTmV3QXBrIiwiaWNvbiIsImR1cmF0aW9uIiwicGx1cyIsImZvcmNlIiwiZmFpbCIsInJlZnJlc2giLCJnZXRQcmludEluZm8iLCJtYWMiLCJwZGFNYWMiLCJzYXZlIiwib3JkZXJJZCIsIm9yZGVyTm8iLCJvcmRlclNlbGVjdCIsImVkaXREYXRlIiwiaXRlbSIsImdldE1hY05ldyIsInRtcCIsInN0ciIsImNhbmNlbCIsImZvcm1hdERhdGUiLCJzZWxlY3Rpb25DaGFuZ2UiLCJzZWxlY3RlZEl0ZW1zIiwiY2hhbmdlVGFiIiwib25NYWNoaW5lQ2hhbmdlIiwib25FbmdpbmVlcmluZ05vQ2hhbmdlIiwiZ2V0TWFjaGluZUxpc3QiLCJnZXRXb21kYWFJc1Nob3ciLCJoYXNCaW5kZWRDdXR0ZXIiLCJvcmRlciIsImlzU2hvd1RhYiIsInN0YXR1cyIsInN0YXR1c0FyciIsImNvbXB1dGVkIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQXFRQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQSxlQUVBO0VBQ0FBO0lBQ0FDO0lBQ0FDO0lBQ0FDO0lBQ0FDO0lBQ0FDO0lBQ0FDO0lBQ0FDO0lBQ0FDO0lBQ0FDO0lBQ0FDO0lBQ0FDO0VBQ0E7RUFDQUM7SUFBQTtJQUNBO01BQ0FDO01BQUE7TUFDQUM7TUFFQUM7TUFBQTtNQUNBQztNQUFBOztNQUVBQztNQUVBQztNQUVBQztNQUNBQztNQUNBQztNQUVBQztNQUNBQztNQUVBQztNQUNBQztJQUFBLHNEQUVBLDREQUNBLG9EQUNBLDBEQUVBLG1EQUVBO0VBRUE7RUFDQUM7SUFFQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTs7SUFFQUM7SUFFQTs7SUFFQTtJQUNBO0VBRUE7RUFDQUM7SUFDQTtFQUNBO0VBQ0FDO0lBQ0E7RUFDQTtFQUNBQztJQUNBQztNQUNBO01BQ0E7TUFDQTtRQUFBQztVQUFBQztRQUFBO01BQUE7SUFDQTtJQUNBQztNQUFBO01BQ0E7UUFDQUM7UUFDQXZCO01BQ0E7UUFFQTtRQUNBOztRQUVBO1VBQ0FlO1lBQ0FTO1lBQ0FDO1lBQ0FDO2NBQ0E7Z0JBQ0E7Y0FDQTtZQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtRQUNBO01BQ0E7SUFFQTtJQUVBQztNQUNBWjtRQUNBUztRQUNBSTtRQUNBQztNQUNBO01BRUFkO1FBQ0FRO1FBQ0FHO1VBQ0E7WUFDQUk7Y0FDQUM7WUFDQTtjQUNBO2NBQ0E7Y0FDQTtjQUNBO1lBQ0E7Y0FDQTtZQUNBO1VBQ0E7UUFDQTtRQUNBQztVQUNBO1VBQ0FqQjtZQUNBUztZQUNBSTtZQUNBQztVQUNBO1FBQ0E7TUFDQTtJQUNBO0lBRUFJO01BQ0E7TUFDQTtNQUNBO0lBQ0E7SUFDQUM7TUFBQTtNQUNBO01BRUFDO01BQ0E7UUFDQVo7UUFDQXZCO1VBQ0FvQztRQUNBO01BQ0E7UUFDQTtRQUNBO1FBQ0E7UUFFQXJCO1FBQ0FBO1FBRUE7UUFFQTtNQUNBO01BQ0E7TUFHQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBb0I7O1FBRUE7UUFDQTtVQUNBQTtRQUNBO1FBQ0E7UUFDQTtVQUNBO1FBQ0E7UUFDQXBCO1FBRUE7VUFDQVE7VUFDQXZCO1lBQ0FvQztVQUNBO1FBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFFQXJCO1VBQ0FBO1VBR0E7UUFFQTtNQUNBO0lBQ0E7SUFDQXNCO01BQUE7TUFDQTtNQUVBO1FBQ0E7UUFDQTtNQUNBO01BRUE7UUFDQTtRQUNBO01BQ0E7O01BRUE7O01BRUE7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBOztNQUVBO01BRUFyQztRQUNBO1VBQ0FzQztVQUNBQztRQUNBO1FBQ0FDO01BQ0E7TUFFQTtNQUVBO1FBQ0FqQjtRQUNBdkI7VUFDQVU7VUFDQStCO1VBQ0FDO1FBQ0E7TUFDQTtRQUNBO1VBQ0E7VUFDQTNCO1lBQ0FTO1lBQ0E7WUFDQTtZQUNBSTtZQUNBO1lBQ0FDO1VBQ0E7UUFDQTtRQUNBO01BQ0E7SUFFQTtJQUNBYztNQUNBO01BQ0E7UUFDQTtVQUNBO1VBQ0E7VUFDQTs7VUFFQTtVQUNBO1lBQ0E7WUFDQTtZQUNBO2NBQ0FDO1lBQ0E7Y0FDQUE7WUFDQTtZQUNBO2NBQ0FBO1lBQ0E7WUFDQUM7VUFDQTtRQUNBO01BQ0E7UUFDQUE7TUFDQTtNQUNBO0lBQ0E7SUFFQUM7TUFBQTtNQUNBO1FBQ0E7TUFDQTs7TUFFQTtNQUNBO1FBQ0EvQjtVQUNBUztVQUNBSTtVQUNBQztRQUNBO1FBQ0E7TUFDQTtNQUVBO01BQ0E7TUFFQTtRQUNBTjtRQUNBdkI7VUFDQVU7VUFDQStCO1FBQ0E7TUFDQTtRQUNBO1VBQ0E7UUFDQTtNQUNBO0lBQ0E7SUFFQU07TUFDQTtNQUNBO01BQ0E7TUFDQTtJQUNBO0lBQ0FDO01BQ0E7TUFDQTtJQUNBO0lBRUFDO01BQUE7TUFDQTtRQUFBO01BQUE7SUFDQTtJQUdBQztNQUNBO01BQ0E7TUFDQTtRQUNBO01BQ0E7TUFDQTtJQUNBO0lBQ0FDO01BRUE7TUFFQTtNQUVBcEM7TUFFQUE7TUFDQUE7TUFFQTtJQUNBO0lBQ0FxQztNQUVBO01BRUE7TUFFQTtJQUVBO0lBQ0FDO01BQUE7TUFDQTtRQUNBOUI7TUFDQTtRQUNBO1FBQ0E7VUFBQTtRQUFBO01BQ0E7SUFDQTtJQUNBO0lBQ0ErQjtNQUFBO01BQ0E7UUFDQS9CO1FBQ0F2QjtVQUNBVTtRQUNBO01BQ0E7UUFDQTs7UUFFQTtRQUNBO1FBQ0E7UUFDQTtVQUNBNkMsa0JBQ0FDLCtEQUNBQSx3REFDQUE7UUFDQTtRQUNBO1FBQ0E7UUFFQTtVQUNBekM7VUFDQUE7UUFDQTtNQUNBO0lBQ0E7SUFFQTBDO01BQ0E7UUFDQTFDO1VBQ0FTO1VBQ0FJO1VBQ0FDO1FBQ0E7UUFDQTtNQUNBO01BRUE7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBLDZCQUNBLGNBQ0EsTUFDQSxLQUNBO01BQ0E7TUFDQTtJQUNBO0VBQUEsbUdBRUE2QjtJQUNBO0lBQ0E7RUFDQSw4RUFDQTtJQUFBO0lBRUE7SUFFQTtNQUNBbkM7TUFDQXZCO1FBQ0FVO1FBQ0ErQjtNQUNBO0lBQ0E7TUFDQTtJQUNBO0VBQ0EsOEZBRUE7SUFBQTtJQUNBO0lBQ0E7SUFDQTtNQUNBa0I7SUFDQTtNQUNBQTtJQUNBO0lBQ0E7TUFDQXBDO01BQ0F2QjtRQUNBVTtRQUNBVDtRQUNBd0M7TUFDQTtJQUNBO01BQ0E7SUFDQTtFQUNBLDBFQUNBQztJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7RUFDQSxhQUNBO0VBQ0FrQjtBQUNBO0FBQUEsMkIiLCJmaWxlIjoiNTIuanMiLCJzb3VyY2VzQ29udGVudCI6WyI8dGVtcGxhdGU+XHJcblxyXG5cdDx2aWV3PlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJ0YWItYmFyXCI+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwidGFiLWl0ZW1cIiA6Y2xhc3M9XCJ7IGFjdGl2ZTogY3VycmVudFRhYiA9PT0gNyB9XCIgQGNsaWNrPVwiY2hhbmdlVGFiKDcpXCI+XHJcblx0XHRcdFx05bel5Y2V6YCJ5oupXHJcblx0XHRcdDwvdmlldz5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJ0YWItaXRlbVwiIDpjbGFzcz1cInsgYWN0aXZlOiBjdXJyZW50VGFiID09PSAwIH1cIiBAY2xpY2s9XCJjaGFuZ2VUYWIoMClcIj5cclxuXHRcdFx0XHTkuLvnlYzpnaJcclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cInRhYi1pdGVtXCIgOmNsYXNzPVwieyBhY3RpdmU6IGN1cnJlbnRUYWIgPT09IDIgfVwiIEBjbGljaz1cImNoYW5nZVRhYigyKVwiPlxyXG5cdFx0XHRcdOS4iuWIgOS4i+WIgFxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwidGFiLWl0ZW1cIiA6Y2xhc3M9XCJ7IGFjdGl2ZTogY3VycmVudFRhYiA9PT0gMyB9XCIgQGNsaWNrPVwiY2hhbmdlVGFiKDMpXCI+XHJcblx0XHRcdFx06LCD5py66YCB5qOAXHJcblx0XHRcdDwvdmlldz5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJ0YWItaXRlbVwiIDpjbGFzcz1cInsgYWN0aXZlOiBjdXJyZW50VGFiID09PSA0IH1cIiBAY2xpY2s9XCJjaGFuZ2VUYWIoNClcIj5cclxuXHRcdFx0XHTnlJ/kuqfmiqXlt6VcclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cInRhYi1pdGVtXCIgOmNsYXNzPVwieyBhY3RpdmU6IGN1cnJlbnRUYWIgPT09IDEgfVwiIEBjbGljaz1cImNoYW5nZVRhYigxKVwiPlxyXG5cdFx0XHRcdOW8gOW3peWujOW3pVxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwidGFiLWl0ZW1cIiA6Y2xhc3M9XCJ7IGFjdGl2ZTogY3VycmVudFRhYiA9PT0gNSB9XCIgQGNsaWNrPVwiY2hhbmdlVGFiKDUpXCI+XHJcblx0XHRcdFx0ZS1TT1BcclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cInRhYi1pdGVtXCIgOmNsYXNzPVwieyBhY3RpdmU6IGN1cnJlbnRUYWIgPT09IDYgfVwiIEBjbGljaz1cImNoYW5nZVRhYig2KVwiPlxyXG5cdFx0XHRcdOW3peiJuuWPguaVsFxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwidGFiLWl0ZW1cIiA6Y2xhc3M9XCJ7IGFjdGl2ZTogY3VycmVudFRhYiA9PT0gOSB9XCIgQGNsaWNrPVwiY2hhbmdlVGFiKDkpXCI+XHJcblx0XHRcdFx06K6+5aSH54K55qOAXHJcblx0XHRcdDwvdmlldz5cclxuXHRcdFx0PCEtLSA8dmlldyBjbGFzcz1cInRhYi1pdGVtXCIgOmNsYXNzPVwieyBhY3RpdmU6IGN1cnJlbnRUYWIgPT09IDggfVwiIEBjbGljaz1cImNoYW5nZVRhYig4KVwiPlxyXG5cdFx0XHTmiZPljbDmnLrorr7nva5cclxuXHRcdDwvdmlldz4gLS0+XHJcblxyXG5cdFx0PC92aWV3PlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJmb250XCI+PC92aWV3PlxyXG5cdFx0PHNjcm9sbC12aWV3IGNsYXNzPVwiY29udGVudFwiPlxyXG5cdFx0XHQ8dmlldyB2LWlmPVwiY3VycmVudFRhYiA9PT0gN1wiIGNsYXNzPVwidGFiLWNvbnRlbnRcIj5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cImNvbnRlbnRcIj5cclxuXHRcdFx0XHRcdDwhLS08dmlldyBjbGFzcz1cInRvcC1yaWdodFwiPlxyXG5cdFx0XHRcdFx0XHQ8YnV0dG9uIGNsYXNzPVwicmVmcmVzaC1idG5cIiBAY2xpY2s9XCJyZWZyZXNoXCI+5Yi35pawPC9idXR0b24+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+LS0+XHJcblx0XHRcdFx0XHQ8dmlldz5cclxuXHRcdFx0XHRcdFx0PGg0PuS4gOWPsOacuuWPsOWPquiDvemAieaLqeS4gOadoeW3peWNle+8iOWkmumAiem7mOiupOS4uuacgOWQjuS4gOadoe+8iTwvaDQ+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInNlY3Rpb24gdG9wLXNlY3Rpb25cIj5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmb3JtLXJvdyBhbGlnbi1yb3dcIj5cclxuXHRcdFx0XHRcdFx0XHQ8aW5wdXQgdi1tb2RlbD1cIm1hY2hpbmVOYW1lXCJcclxuXHRcdFx0XHRcdFx0XHRcdCAgIGRpc2FibGVkPVwidHJ1ZVwiXHJcblx0XHRcdFx0XHRcdFx0XHQgICB0eXBlPVwidGV4dFwiXHJcblx0XHRcdFx0XHRcdFx0XHQgICBjbGFzcz1cIm1hY2hpbmUtbmFtZS1ib3hcIiAvPlxyXG5cdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0PGxhYmVsIGNsYXNzPVwib3JkZXItbGFiZWxcIj7nrKzkuIDmraXpgInmi6nlt6XljZU6PC9sYWJlbD5cclxuXHRcdFx0XHRcdFx0XHRcdDxidXR0b24gY2xhc3M9XCJwcmludC1idG5cIiBAY2xpY2s9XCJpc1Nob3dUYWJcIj7pgInmi6nlt6XljZU8L2J1dHRvbj5cclxuXHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0b3AtcmlnaHRcIj5cclxuXHRcdFx0XHRcdFx0XHRcdDxidXR0b24gY2xhc3M9XCJyZWZyZXNoLWJ0blwiIEBjbGljaz1cInJlZnJlc2hcIj7liLfmlrA8L2J1dHRvbj5cclxuXHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHJcblx0XHRcdFx0XHQ8IS0tICAgICAgICAgICZsdDshJm5kYXNoOyDkuK3pg6jvvJrov5DooYznirbmgIEtLT5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwic2VjdGlvbiBjYXJkXCI+XHJcblx0XHRcdFx0XHRcdDx1bmktdGFibGUgYm9yZGVyIHN0cmlwZSBlbXB0eVRleHQ9XCLmmoLml6Dmm7TlpJrmlbDmja5cIiBAc2VsZWN0aW9uLWNoYW5nZT1cInNlbGVjdGlvbkNoYW5nZVwiPlxyXG5cdFx0XHRcdFx0XHRcdDx1bmktdHI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dW5pLXRoIGFsaWduPVwiY2VudGVyXCIgY2xhc3M9XCJ0aFwiIHN0eWxlPVwiY29sb3I6ICNGRkZGRkY7IHdpZHRoOiAxMDBweDtcIj7lt6Xluo88L3VuaS10aD5cclxuXHRcdFx0XHRcdFx0XHRcdDx1bmktdGggYWxpZ249XCJjZW50ZXJcIiBjbGFzcz1cInRoXCIgc3R5bGU9XCJjb2xvcjogI0ZGRkZGRjsgd2lkdGg6IDIwMHB4O1wiPuW3peWNleWPtzwvdW5pLXRoPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHVuaS10aCBhbGlnbj1cImNlbnRlclwiIGNsYXNzPVwidGhcIiBzdHlsZT1cImNvbG9yOiAjRkZGRkZGOyB3aWR0aDogMTUwcHg7XCI+5Lqn5ZOB57yW56CBPC91bmktdGg+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dW5pLXRoIGFsaWduPVwiY2VudGVyXCIgY2xhc3M9XCJ0aFwiIHN0eWxlPVwiY29sb3I6ICNGRkZGRkY7IHdpZHRoOiAyNDBweDtcIj7kuqflk4HlkI3np7A8L3VuaS10aD5cclxuXHRcdFx0XHRcdFx0XHRcdDx1bmktdGggYWxpZ249XCJjZW50ZXJcIiBjbGFzcz1cInRoXCIgc3R5bGU9XCJjb2xvcjogI0ZGRkZGRjsgd2lkdGg6IDIwMHB4O1wiPuinhOagvDwvdW5pLXRoPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHVuaS10aCBhbGlnbj1cImNlbnRlclwiIGNsYXNzPVwidGhcIiBzdHlsZT1cImNvbG9yOiAjRkZGRkZGOyB3aWR0aDogNzVweDtcIj7lt7LnlJ/kuqfmlbDph488L3VuaS10aD5cclxuXHRcdFx0XHRcdFx0XHRcdDx1bmktdGggYWxpZ249XCJjZW50ZXJcIiBjbGFzcz1cInRoXCIgc3R5bGU9XCJjb2xvcjogI0ZGRkZGRjsgd2lkdGg6IDc1cHg7XCI+5pyq55Sf5Lqn5pWw6YePPC91bmktdGg+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dW5pLXRoIGFsaWduPVwiY2VudGVyXCIgY2xhc3M9XCJ0aFwiIHN0eWxlPVwiY29sb3I6ICNGRkZGRkY7IHdpZHRoOiA3NXB4O1wiPua0vuW3peaVsOmHjzwvdW5pLXRoPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHVuaS10aCBhbGlnbj1cImNlbnRlclwiIGNsYXNzPVwidGhcIiBzdHlsZT1cImNvbG9yOiAjRkZGRkZGOyB3aWR0aDogNzBweDtcIj7lt6XljZXmlbDph488L3VuaS10aD5cclxuXHRcdFx0XHRcdFx0XHRcdDx1bmktdGggYWxpZ249XCJjZW50ZXJcIiBjbGFzcz1cInRoXCIgc3R5bGU9XCJjb2xvcjogI0ZGRkZGRjsgd2lkdGg6IDkwcHg7XCI+5bel5Y2V54q25oCBPC91bmktdGg+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dW5pLXRoIGFsaWduPVwiY2VudGVyXCIgY2xhc3M9XCJ0aFwiIHN0eWxlPVwiY29sb3I6ICNGRkZGRkY7IHdpZHRoOiA5MHB4O1wiPuaKpeW3peS6ujwvdW5pLXRoPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHVuaS10aCBhbGlnbj1cImNlbnRlclwiIGNsYXNzPVwidGhcIiBzdHlsZT1cImNvbG9yOiAjRkZGRkZGOyB3aWR0aDogOTBweDtcIj7pgInmi6k8L3VuaS10aD5cclxuXHRcdFx0XHRcdFx0XHQ8L3VuaS10cj5cclxuXHRcdFx0XHRcdFx0XHQ8dW5pLXRyIHYtZm9yPVwiKGl0ZW0sIGluZGV4KSBpbiBpc1Nob3dUYWJsZURhdGFcIiA6a2V5PVwiaW5kZXhcIj5cclxuXHRcdFx0XHRcdFx0XHRcdDx1bmktdGQgYWxpZ249XCJjZW50ZXJcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PGlucHV0IGNsYXNzPVwiZm9ybS1pbnB1dFwiIGRpc2FibGVkPVwidHJ1ZVwiIHR5cGU9XCJ0ZXh0XCIgdi1tb2RlbD1cIml0ZW0ucHJvY05hbWVcIiAvPjwhLS3lt6Xluo8tLT5cclxuXHRcdFx0XHRcdFx0XHRcdDwvdW5pLXRkPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHVuaS10ZCBhbGlnbj1cImNlbnRlclwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZm9ybS1pbnB1dFwiPnt7IGl0ZW0uZGFhMDAxIH19PC9kaXY+PCEtLeW3peWNleWPty0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0PC91bmktdGQ+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dW5pLXRkIGFsaWduPVwiY2VudGVyXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmb3JtLWlucHV0XCI+e3sgaXRlbS5kYWEwMDIgfX08L2Rpdj48IS0t5Lqn5ZOB57yW56CBLS0+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L3VuaS10ZD5cclxuXHRcdFx0XHRcdFx0XHRcdDx1bmktdGQgYWxpZ249XCJjZW50ZXJcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImZvcm0taW5wdXRcIj57eyBpdGVtLmRhYTAwMyB9fTwvZGl2PjwhLS3kuqflk4HlkI3np7AtLT5cclxuXHRcdFx0XHRcdFx0XHRcdDwvdW5pLXRkPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHVuaS10ZCBhbGlnbj1cImNlbnRlclwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZm9ybS1pbnB1dFwiPnt7IGl0ZW0uZGFhMDA0IH19PC9kaXY+PCEtLeinhOagvC0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0PC91bmktdGQ+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dW5pLXRkIGFsaWduPVwiY2VudGVyXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDxpbnB1dCBjbGFzcz1cImZvcm0taW5wdXRcIiBkaXNhYmxlZD1cInRydWVcIiB0eXBlPVwidGV4dFwiIHYtbW9kZWw9XCJpdGVtLmRhYTAxMVwiIC8+PCEtLeW3sueUn+S6p+aVsOmHjy0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0PC91bmktdGQ+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dW5pLXRkIGFsaWduPVwiY2VudGVyXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDxpbnB1dCBjbGFzcz1cImZvcm0taW5wdXRcIiBkaXNhYmxlZD1cInRydWVcIiB0eXBlPVwidGV4dFwiIDp2YWx1ZT1cIihpdGVtLmRhYTAwOCB8fCAwKSAtIChpdGVtLmRhYTAxMSB8fCAwKVwiIC8+PCEtLeacqueUn+S6p+aVsOmHjy0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0PC91bmktdGQ+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dW5pLXRkIGFsaWduPVwiY2VudGVyXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDxpbnB1dCBjbGFzcz1cImZvcm0taW5wdXRcIiBkaXNhYmxlZD1cInRydWVcIiB0eXBlPVwidGV4dFwiIHYtbW9kZWw9XCJpdGVtLmRhYTAwOFwiIC8+PCEtLea0vuW3peaVsOmHjy0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0PC91bmktdGQ+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dW5pLXRkIGFsaWduPVwiY2VudGVyXCI+XHJcblx0XHQgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWlucHV0XCIgZGlzYWJsZWQ9XCJ0cnVlXCIgdHlwZT1cInRleHRcIiB2LW1vZGVsPVwiaXRlbS5kYWEwMDhcIiAvPjwhLS3lt6XljZXmlbDph48tLT5cclxuXHRcdFx0XHRcdFx0XHRcdDwvdW5pLXRkPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHVuaS10ZCBhbGlnbj1cImNlbnRlclwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8aW5wdXQgY2xhc3M9XCJmb3JtLWlucHV0XCIgZGlzYWJsZWQ9XCJ0cnVlXCIgdHlwZT1cInRleHRcIiB2LW1vZGVsPVwiaXRlbS5kYWEwMThcIiAvPjwhLS3lt6XljZXnirbmgIEtLT5cclxuXHRcdFx0XHRcdFx0XHRcdDwvdW5pLXRkPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHVuaS10ZCBhbGlnbj1cImNlbnRlclwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8aW5wdXQgY2xhc3M9XCJmb3JtLWlucHV0XCIgZGlzYWJsZWQ9XCJ0cnVlXCIgdHlwZT1cInRleHRcIiB2LW1vZGVsPVwiaXRlbS5zdGFmZk5hbWVcIiAvPjwhLS3miqXlt6XkurotLT5cclxuXHRcdFx0XHRcdFx0XHRcdDwvdW5pLXRkPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHVuaS10ZD5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ1bmktZ3JvdXBcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8YnV0dG9uIGNsYXNzPVwic2VsZWN0LWJ0blwiIHR5cGU9XCJkZWZhdWx0XCIgQGNsaWNrPVwidG9EZXRhaWwoaXRlbSlcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdOmAieaLqVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwvYnV0dG9uPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L3VuaS10ZD5cclxuXHRcdFx0XHRcdFx0XHQ8L3VuaS10cj5cclxuXHRcdFx0XHRcdFx0PC91bmktdGFibGU+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJib3R0b20tc2VjdGlvblwiPlxyXG5cdFx0XHRcdFx0XHQ8YnV0dG9uIGNsYXNzPVwiY2FuY2VsLWJ0blwiIEBjbGljaz1cImNhbmNlbFwiPua4heepuumHjemAiTwvYnV0dG9uPlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cclxuXHRcdFx0XHRcdDx2aWV3PlxyXG5cdFx0XHRcdFx0XHQ8IS0tPHRleHQgc3R5bGU9XCJjb2xvcjogcmVkO1wiPlxyXG5cdFx0XHRcdFx0XHTor7TmmI465Y+q6IO95ZCM5pe25byA5bel5LiA5Liq5bel5Y2V44CC6YCJ5oup5a6M5oiQ77yM54K55Ye75L+d5a2Y6YCJ5oup44CC57O757uf5L+d55WZ6YCJ5Lit55qE5bel5Y2V44CCXHJcblx0XHRcdFx0XHRcdOWmguaenOimgemHjemAie+8jOeCueWHu+a4heepuumHjemAieWKn+iDveOAglxyXG5cdFx0XHRcdFx0PC90ZXh0Pi0tPlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8dmlldyB2LWlmPVwiY3VycmVudFRhYiA9PT0gMFwiIGNsYXNzPVwidGFiLWNvbnRlbnRcIj5cclxuXHRcdFx0XHQ8V29ya09yZGVyIDpvcmRlcklkPVwib3JkZXJJZFwiIDpvcmRlck5vPVwic2VsZWN0ZWRPcmRlclwiIDptYWNoaW5lTm89XCJtYWNoaW5lTm9cIlxyXG5cdFx0XHRcdFx0XHQgICA6ZGV2aWNlTnVtYmVyPVwibWFjaGluZU5hbWVcIiAvPlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDx2aWV3IHYtaWY9XCJjdXJyZW50VGFiID09PSAxXCIgY2xhc3M9XCJ0YWItY29udGVudFwiPlxyXG5cdFx0XHRcdDwhLS0gICAgICAgICZsdDshJm5kYXNoOyDosIPnlKggV29ya09yZGVyU3RhdHVzIOe7hOS7tiAmbmRhc2g7Jmd0Oy0tPlxyXG5cdFx0XHRcdDxXb3JrT3JkZXJTdGF0dXMgOm9yZGVySWQ9XCJvcmRlcklkXCIgOm9yZGVyTm89XCJzZWxlY3RlZE9yZGVyXCIgOm1hY2hpbmVObz1cIm1hY2hpbmVOb1wiIC8+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdFx0PHZpZXcgdi1pZj1cImN1cnJlbnRUYWIgPT09IDJcIiBjbGFzcz1cInRhYi1jb250ZW50XCI+XHJcblx0XHRcdFx0PCEtLSAgICAgICAgJmx0OyEmbmRhc2g7IOiwg+eUqCBtb2xkIOe7hOS7tiAmbmRhc2g7Jmd0Oy0tPlxyXG5cdFx0XHRcdDxtb2xkIDpvcmRlcklkPVwib3JkZXJJZFwiIDpvcmRlck5vPVwic2VsZWN0ZWRPcmRlclwiIDptYWNoaW5lTm89XCJtYWNoaW5lTm9cIiAvPlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDx2aWV3IHYtaWY9XCJjdXJyZW50VGFiID09PSAzXCIgY2xhc3M9XCJ0YWItY29udGVudFwiPlxyXG5cdFx0XHRcdDwhLS0gICAgICAgICZsdDshJm5kYXNoOyDosIPnlKggbW9sZCDnu4Tku7YgJm5kYXNoOyZndDstLT5cclxuXHRcdFx0XHQ8bWFjaGluZSA6b3JkZXJJZD1cIm9yZGVySWRcIiA6b3JkZXJObz1cInNlbGVjdGVkT3JkZXJcIiA6bWFjaGluZU5vPVwibWFjaGluZU5vXCIgLz5cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8dmlldyB2LWlmPVwiY3VycmVudFRhYiA9PT0gNFwiIGNsYXNzPVwidGFiLWNvbnRlbnRcIj5cclxuXHRcdFx0XHQ8IS0tICDosIPnlKggbW9sZCDnu4Tku7YgLS0+XHJcblx0XHRcdFx0PFdvcmtPcmRlclByaW50IDpvcmRlcklkPVwib3JkZXJJZFwiIDpvcmRlck5vPVwic2VsZWN0ZWRPcmRlclwiIDptYWNoaW5lTm89XCJtYWNoaW5lTm9cIiAvPlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDx2aWV3IHYtaWY9XCJjdXJyZW50VGFiID09PSA4XCIgY2xhc3M9XCJ0YWItY29udGVudFwiPlxyXG5cdFx0XHRcdDwhLS0g6LCD55SoIG1vbGQg57uE5Lu2IC0tPlxyXG5cdFx0XHRcdDxQcmludEluaXQgOm9yZGVySWQ9XCJvcmRlcklkXCIgOm9yZGVyTm89XCJzZWxlY3RlZE9yZGVyXCIgOm1hY2hpbmVObz1cIm1hY2hpbmVOb1wiIC8+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdFx0PHZpZXcgdi1pZj1cImN1cnJlbnRUYWIgPT09IDVcIiBjbGFzcz1cInRhYi1jb250ZW50XCI+XHJcblx0XHRcdFx0PFBERlNob3cgOm9yZGVySWQ9XCJvcmRlcklkXCIgOm9yZGVyTm89XCJzZWxlY3RlZE9yZGVyXCIgOm1hY2hpbmVObz1cIm1hY2hpbmVOb1wiIC8+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdFx0PHZpZXcgdi1pZj1cImN1cnJlbnRUYWIgPT09IDZcIiBjbGFzcz1cInRhYi1jb250ZW50XCI+XHJcblx0XHRcdFx0PFRlY2hub2xvZ3kgOm9yZGVySWQ9XCJvcmRlcklkXCIgOm9yZGVyTm89XCJzZWxlY3RlZE9yZGVyXCIgOm1hY2hpbmVObz1cIm1hY2hpbmVOb1wiIC8+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdFx0PHZpZXcgdi1pZj1cImN1cnJlbnRUYWIgPT09IDlcIiBjbGFzcz1cInRhYi1jb250ZW50XCI+XHJcblx0XHRcdFx0PCEtLSDorr7lpIfngrnmo4Dop4blm74gLS0+XHJcblx0XHRcdFx0PEVxdWlwbWVudEluc3BlY3Rpb24gOm1hY2hpbmVObz1cIm1hY2hpbmVOb1wiIC8+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdDwvc2Nyb2xsLXZpZXc+XHJcblxyXG5cclxuXHRcdDwhLS0g5by556qX5LiL5ouJ5qGG5Y+q5pi+56S65bel5Y2V54q25oCBIC0tPlxyXG5cdFx0PHZpZXcgdi1pZj1cImlzU2hvd1wiIGNsYXNzPVwib3ZlcmxheVwiPlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cInBvcHVwXCI+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmb3JtLXJvd1wiPlxyXG5cdFx0XHRcdFx0PHZpZXcgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyO1wiPlxyXG5cdFx0XHRcdFx0XHQ8bGFiZWwgc3R5bGU9XCJmbG9hdDogbGVmdDttYXJnaW4tdG9wOiAxOHB4O1wiPueCueWHu+aMiemSruetm+mAieW3peWNleeKtuaAgTo8L2xhYmVsPlxyXG5cdFx0XHRcdFx0XHQ8c3VwZXJ3ZWktY29tYm94IDpjYW5kaWRhdGVzPVwiZW5naW5lZXJpbmdOb01hcExpc3RcIiBwbGFjZWhvbGRlcj1cIuivt+mAieaLqVwiIHYtbW9kZWw9XCJlbmdpbmVlcmluZ05vXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQgQHNlbGVjdD1cIm9uRW5naW5lZXJpbmdOb0NoYW5nZVwiIGNsYXNzPVwicGlja2VyXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQgc3R5bGU9XCJwYWRkaW5nOiA3cHggNDZweDt3aWR0aDogNjUwcHg7XCI+PC9zdXBlcndlaS1jb21ib3g+XHJcblx0XHRcdFx0XHRcdDxzcGFuIHN0eWxlPVwibWFyZ2luLWxlZnQ6IDIwcHg7IGNvbG9yOiAjZmY2NjAwOyBmb250LXNpemU6IDE4cHg7XCI+5aSa6YCJ5pe25Y+q5L+d55WZ5pyA5ZCO5LiA5p2h5bel5Y2VPC9zcGFuPlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHJcblx0XHRcdFx0PGRpdiBzdHlsZT1cImhlaWdodDogNTAwcHg7IG92ZXJmbG93OiBhdXRvO1wiPlxyXG5cdFx0XHRcdFx0PHRhYmxlPlxyXG5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJzZWN0aW9uIGNhcmRcIj5cclxuXHRcdFx0XHRcdFx0XHQ8dW5pLXRhYmxlIHJlZj1cInRhYmxlXCIgdHlwZT1cInNlbGVjdGlvblwiIGJvcmRlciBzdHJpcGUgZW1wdHlUZXh0PVwi5pqC5peg5pu05aSa5pWw5o2uXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0ICAgY2xhc3M9XCJsYXJnZS1zZWxlY3Rpb24tdGFibGVcIiBAc2VsZWN0aW9uLWNoYW5nZT1cInNlbGVjdGlvbkNoYW5nZVwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHVuaS10cj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHVuaS10aCBhbGlnbj1cImNlbnRlclwiIGNsYXNzPVwidGhcIiBzdHlsZT1cImNvbG9yOiAjRkZGRkZGOyB3aWR0aDogMTAwcHg7XCI+5bel5bqPPC91bmktdGg+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDx1bmktdGggYWxpZ249XCJjZW50ZXJcIiBjbGFzcz1cInRoXCIgc3R5bGU9XCJjb2xvcjogI0ZGRkZGRjsgd2lkdGg6IDIwMHB4O1wiPuW3peWNleWPtzwvdW5pLXRoPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dW5pLXRoIGFsaWduPVwiY2VudGVyXCIgY2xhc3M9XCJ0aFwiIHN0eWxlPVwiY29sb3I6ICNGRkZGRkY7IHdpZHRoOiAxNTBweDtcIj7kuqflk4HnvJbnoIE8L3VuaS10aD5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHVuaS10aCBhbGlnbj1cImNlbnRlclwiIGNsYXNzPVwidGhcIiBzdHlsZT1cImNvbG9yOiAjRkZGRkZGOyB3aWR0aDogMjQwcHg7XCI+5Lqn5ZOB5ZCN56ewPC91bmktdGg+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDx1bmktdGggYWxpZ249XCJjZW50ZXJcIiBjbGFzcz1cInRoXCIgc3R5bGU9XCJjb2xvcjogI0ZGRkZGRjsgd2lkdGg6IDIwMHB4O1wiPuinhOagvDwvdW5pLXRoPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dW5pLXRoIGFsaWduPVwiY2VudGVyXCIgY2xhc3M9XCJ0aFwiIHN0eWxlPVwiY29sb3I6ICNGRkZGRkY7IHdpZHRoOiAxNTBweDtcIj7lt7LnlJ/kuqfmlbDph488L3VuaS10aD5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHVuaS10aCBhbGlnbj1cImNlbnRlclwiIGNsYXNzPVwidGhcIiBzdHlsZT1cImNvbG9yOiAjRkZGRkZGOyB3aWR0aDogMTUwcHg7XCI+5pyq55Sf5Lqn5pWw6YePPC91bmktdGg+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDx1bmktdGggYWxpZ249XCJjZW50ZXJcIiBjbGFzcz1cInRoXCIgc3R5bGU9XCJjb2xvcjogI0ZGRkZGRjsgd2lkdGg6IDE1MHB4O1wiPua0vuW3peaVsOmHjzwvdW5pLXRoPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dW5pLXRoIGFsaWduPVwiY2VudGVyXCIgY2xhc3M9XCJ0aFwiIHN0eWxlPVwiY29sb3I6ICNGRkZGRkY7IHdpZHRoOiAxNTBweDtcIj7lt6XljZXmlbDph488L3VuaS10aD5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHVuaS10aCBhbGlnbj1cImNlbnRlclwiIGNsYXNzPVwidGhcIiBzdHlsZT1cImNvbG9yOiAjRkZGRkZGOyB3aWR0aDogOTBweDtcIj7lt6XljZXnirbmgIE8L3VuaS10aD5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHVuaS10aCBhbGlnbj1cImNlbnRlclwiIGNsYXNzPVwidGhcIiBzdHlsZT1cImNvbG9yOiAjRkZGRkZGOyB3aWR0aDogOTBweDtcIj7miqXlt6Xkuro8L3VuaS10aD5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PCEtLTx1bmktdGggYWxpZ249XCJjZW50ZXJcIiBjbGFzcz1cInRoXCIgc3R5bGU9XCJjb2xvcjogI0ZGRkZGRjsgd2lkdGg6IDEwMHB4O1wiPumAieaLqTwvdW5pLXRoPi0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0PC91bmktdHI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dW5pLXRyIHYtZm9yPVwiKGl0ZW0sIGluZGV4KSBpbiB0YWJsZURhdGFcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDprZXk9XCJpbmRleFwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0OmNsYXNzPVwieydyb3ctc2VsZWN0ZWQnOiBzZWxlY3RlZEluZGV4cy5pbmNsdWRlcyhpbmRleCl9XCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRAY2xpY2s9XCJvblJvd0NsaWNrKGluZGV4KVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0c3R5bGU9XCJjdXJzb3I6IHBvaW50ZXI7XCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDx1bmktdGQgYWxpZ249XCJjZW50ZXJcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8aW5wdXQgY2xhc3M9XCJmb3JtLWlucHV0XCIgZGlzYWJsZWQ9XCJ0cnVlXCIgdHlwZT1cInRleHRcIiB2LW1vZGVsPVwiaXRlbS5wcm9jTmFtZVwiIC8+PCEtLeW3peW6jy0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8L3VuaS10ZD5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHVuaS10ZCBhbGlnbj1cImNlbnRlclwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmb3JtLWlucHV0XCI+e3sgaXRlbS5kYWEwMDEgfX08L2Rpdj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PC91bmktdGQ+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDx1bmktdGQgYWxpZ249XCJjZW50ZXJcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZm9ybS1pbnB1dFwiPnt7IGl0ZW0uZGFhMDAyIH19PC9kaXY+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDwvdW5pLXRkPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dW5pLXRkIGFsaWduPVwiY2VudGVyXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImZvcm0taW5wdXRcIj57eyBpdGVtLmRhYTAwMyB9fTwvZGl2PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8L3VuaS10ZD5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHVuaS10ZCBhbGlnbj1cImNlbnRlclwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmb3JtLWlucHV0XCI+e3sgaXRlbS5kYWEwMDQgfX08L2Rpdj48IS0t6KeE5qC8LS0+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDwvdW5pLXRkPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dW5pLXRkIGFsaWduPVwiY2VudGVyXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PGlucHV0IGNsYXNzPVwiZm9ybS1pbnB1dFwiIGRpc2FibGVkPVwidHJ1ZVwiIHR5cGU9XCJ0ZXh0XCIgdi1tb2RlbD1cIml0ZW0uZGFhMDExXCIgLz48IS0t5bey55Sf5Lqn5pWw6YePLS0+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDwvdW5pLXRkPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dW5pLXRkIGFsaWduPVwiY2VudGVyXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PGlucHV0IGNsYXNzPVwiZm9ybS1pbnB1dFwiIGRpc2FibGVkPVwidHJ1ZVwiIHR5cGU9XCJ0ZXh0XCIgOnZhbHVlPVwiKGl0ZW0uZGFhMDA4IHx8IDApIC0gKGl0ZW0uZGFhMDExIHx8IDApXCIgLz48IS0t5pyq55Sf5Lqn5pWw6YePLS0+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDwvdW5pLXRkPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dW5pLXRkIGFsaWduPVwiY2VudGVyXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PGlucHV0IGNsYXNzPVwiZm9ybS1pbnB1dFwiIGRpc2FibGVkPVwidHJ1ZVwiIHR5cGU9XCJ0ZXh0XCIgdi1tb2RlbD1cIml0ZW0uZGFhMDA4XCIgLz48IS0t5rS+5bel5pWw6YePLS0+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDwvdW5pLXRkPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dW5pLXRkIGFsaWduPVwiY2VudGVyXCI+XHJcblx0XHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1pbnB1dFwiIGRpc2FibGVkPVwidHJ1ZVwiIHR5cGU9XCJ0ZXh0XCIgdi1tb2RlbD1cIml0ZW0uZGFhMDA4XCIgLz48IS0t5bel5Y2V5pWw6YePLS0+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDwvdW5pLXRkPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dW5pLXRkIGFsaWduPVwiY2VudGVyXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PGlucHV0IGNsYXNzPVwiZm9ybS1pbnB1dFwiIGRpc2FibGVkPVwidHJ1ZVwiIHR5cGU9XCJ0ZXh0XCIgdi1tb2RlbD1cIml0ZW0uZGFhMDE4XCIgLz48IS0t5bel5Y2V54q25oCBLS0+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDwvdW5pLXRkPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8dW5pLXRkIGFsaWduPVwiY2VudGVyXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PGlucHV0IGNsYXNzPVwiZm9ybS1pbnB1dFwiIGRpc2FibGVkPVwidHJ1ZVwiIHR5cGU9XCJ0ZXh0XCIgdi1tb2RlbD1cIml0ZW0uc3RhZmZOYW1lXCIgLz48IS0t5oql5bel5Lq6LS0+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDwvdW5pLXRkPlxyXG5cdFx0XHRcdFx0XHRcdFx0PC91bmktdHI+XHJcblx0XHRcdFx0XHRcdFx0PC91bmktdGFibGU+XHJcblx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHJcblx0XHRcdFx0XHQ8L3RhYmxlPlxyXG5cdFx0XHRcdDwvZGl2PlxyXG5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cImJvdHRvbS1zZWN0aW9uXCI+XHJcblx0XHRcdFx0XHQ8YnV0dG9uIGNsYXNzPVwic2F2ZS1idG5cIiBAY2xpY2s9XCJzYXZlXCI+5L+d5a2Y6YCJ5oupPC9idXR0b24+XHJcblx0XHRcdFx0XHQ8YnV0dG9uIGNsYXNzPVwiY2FuY2VsLWJ0blwiIEBjbGljaz1cImlzU2hvdyA9ICFpc1Nob3dcIj7lj5bmtog8L2J1dHRvbj5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdDwvdmlldz5cclxuXHQ8L3ZpZXc+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0PlxyXG5pbXBvcnQgV29ya09yZGVyU3RhdHVzIGZyb20gJy4uL2NvbXBvbmVudHMvV29ya09yZGVyU3RhdHVzLnZ1ZSc7IC8vIOehruS/nei3r+W+hOato+ehrlxyXG5pbXBvcnQgVW5pVGFibGUgZnJvbSBcIi4uL3VuaV9tb2R1bGVzL3VuaS10YWJsZS9jb21wb25lbnRzL3VuaS10YWJsZS91bmktdGFibGUudnVlXCI7XHJcbmltcG9ydCBNb2xkIGZyb20gXCIuLi9jb21wb25lbnRzL21vbGQudnVlXCI7XHJcbmltcG9ydCBNYWNoaW5lIGZyb20gXCIuLi9jb21wb25lbnRzL21hY2hpbmUudnVlXCI7XHJcbmltcG9ydCBXb3JrT3JkZXJQcmludCBmcm9tIFwiLi4vY29tcG9uZW50cy9Xb3JrT3JkZXJQcmludC52dWVcIjtcclxuaW1wb3J0IFdvcmtPcmRlciBmcm9tIFwiLi4vY29tcG9uZW50cy9Xb3JrT3JkZXIudnVlXCI7XHJcbmltcG9ydCBUZWNobm9sb2d5IGZyb20gXCIuLi9jb21wb25lbnRzL1RlY2hub2xvZ3kudnVlXCI7XHJcbmltcG9ydCBQREZTaG93IGZyb20gXCIuLi9jb21wb25lbnRzL1BERlNob3cudnVlXCI7XHJcbmltcG9ydCBQcmludEluaXQgZnJvbSBcIi4uL2NvbXBvbmVudHMvUHJpbnRJbml0LnZ1ZVwiO1xyXG5pbXBvcnQgUHJpbnRUZXN0IGZyb20gXCIuLi9jb21wb25lbnRzL1ByaW50VGVzdC52dWVcIjtcclxuaW1wb3J0IEVxdWlwbWVudEluc3BlY3Rpb24gZnJvbSBcIi4uL2NvbXBvbmVudHMvRXF1aXBtZW50SW5zcGVjdGlvbi52dWVcIjtcclxuXHJcblx0ZXhwb3J0IGRlZmF1bHQge1xyXG5cdFx0Y29tcG9uZW50czoge1xyXG5cdFx0XHRUZWNobm9sb2d5LFxyXG5cdFx0XHRXb3JrT3JkZXIsXHJcblx0XHRcdFdvcmtPcmRlclByaW50LFxyXG5cdFx0XHRNYWNoaW5lLFxyXG5cdFx0XHRNb2xkLFxyXG5cdFx0XHRVbmlUYWJsZSxcclxuXHRcdFx0V29ya09yZGVyU3RhdHVzLFxyXG5cdFx0XHRQREZTaG93LFxyXG5cdFx0XHRQcmludEluaXQsXHJcblx0XHRcdFByaW50VGVzdCxcclxuXHRcdFx0RXF1aXBtZW50SW5zcGVjdGlvblxyXG5cdFx0fSxcclxuXHRcdGRhdGEoKSB7XHJcblx0XHRcdHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICBvcmRlclN0YXR1czogJycsIC8vIOm7mOiupOWFqOmDqFxyXG5cdFx0XHRcdGN1cnJlbnRUYWI6IDcsXHJcblxyXG4gICAgICAgICAgICAgICAgcHJvZHVjdENvZGU6ICcnLCAvLyDkuqflk4HnvJbnoIFcclxuICAgICAgICAgICAgICAgIHByb2R1Y3RTcGVjOiAnJywgLy8g5Lqn5ZOB6KeE5qC8XHJcblxyXG5cdFx0XHRcdG1hY2hpbmVMaXN0OiBbXSxcclxuXHJcblx0XHRcdFx0bWFjaGluZTogW10sXHJcblxyXG5cdFx0XHRcdGVuZ2luZWVyaW5nTm9MaXN0OiBbXSxcclxuXHRcdFx0XHRlbmdpbmVlcmluZ05vTWFwTGlzdDogW10sXHJcblx0XHRcdFx0ZW5naW5lZXJpbmdObzogJycsXHJcblxyXG5cdFx0XHRcdG1hY2hpbmVObzogJycsXHJcblx0XHRcdFx0bWFjaGluZU5hbWU6ICcnLFxyXG5cclxuXHRcdFx0XHR0YWJsZURhdGE6IFtdLFxyXG5cdFx0XHRcdGlzU2hvd1RhYmxlRGF0YTogW10sXHJcblxyXG5cdFx0XHRcdG9yZGVyU3RhdHVzOiAn5byA5belJyxcclxuXHRcdFx0XHRzZWxlY3RlZE9yZGVyOiAnJyxcclxuXHRcdFx0XHRvcmRlcklkOiAwLFxyXG5cclxuXHRcdFx0XHRzZWxlY3RlZEluZGV4czogW10sXHJcblxyXG5cdFx0XHRcdGlzU2hvdzogZmFsc2UsXHJcblx0XHRcdH07XHJcblx0XHR9LFxyXG5cdFx0Y3JlYXRlZCgpIHtcclxuXHJcblx0XHRcdC8v6LCD6K+V5L2/55So55qE5Luj56CBXHJcblx0XHRcdC8vIHRoaXMubWFjaGluZU5vID0gdW5pLmdldFN0b3JhZ2VTeW5jKCdtYWNoaW5lTm8nKTtcclxuXHRcdFx0Ly8gdGhpcy5tYWNoaW5lTmFtZSA9IHVuaS5nZXRTdG9yYWdlU3luYygnbWFjaGluZU5hbWUnKTtcclxuXHRcdFx0Ly9cclxuXHRcdFx0Ly8gaWYgKHRoaXMubWFjaGluZU5vKSB7XHJcblx0XHRcdC8vICAgdGhpcy5nZXRXb21kYWFJc1Nob3coKTtcclxuXHRcdFx0Ly8gfVxyXG5cclxuXHRcdFx0dW5pLmNsZWFyU3RvcmFnZVN5bmMoKTtcclxuXHRcdFx0XHJcblx0XHRcdHRoaXMuY2hlY2tGb3JVcGRhdGUoKTtcclxuXHRcdFx0XHJcblx0XHRcdC8v5bel5o6n5py65L2/55So55qE5Luj56CBXHJcblx0XHRcdHRoaXMuZ2V0UHJpbnRJbmZvKCk7XHJcblx0XHRcdFxyXG5cdFx0fSxcclxuXHRcdG9uTG9hZChvcHRpb25zKSB7XHJcblx0XHRcdHRoaXMuZ2V0TWFjaGluZUxpc3QoKTtcclxuXHRcdH0sXHJcblx0XHRvblNob3coKSB7XHJcblx0XHRcdHRoaXMucmVmcmVzaCgpO1xyXG5cdFx0fSxcclxuXHRcdG1ldGhvZHM6IHtcclxuICAgICAgICAgICAgb25Sb3dDbGljayhpbmRleCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEluZGV4cyA9IFtpbmRleF07IC8vIOWNlemAiVxyXG4gICAgICAgICAgICAgICAgLy8g5omL5Yqo6Kem5Y+RIHNlbGVjdGlvbkNoYW5nZSDku6XlkIzmraXlpI3pgInmoYZcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlKHsgZGV0YWlsOiB7IGluZGV4IH0gfSk7XHJcbiAgICAgICAgICAgIH0sXHJcblx0XHRcdGNoZWNrRm9yVXBkYXRlKCkge1xyXG5cdFx0XHRcdHRoaXMuJHBvc3Qoe1xyXG5cdFx0XHRcdFx0dXJsOiBcIi9EZXZNYWNoaW5lL2dldEFwcFVwZ3JhZGVJbmZvXCIsXHJcblx0XHRcdFx0XHRkYXRhOiB7fVxyXG5cdFx0XHRcdH0pLnRoZW4ocmVzID0+IHtcclxuXHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0bGV0IG5ld1ZlcnNpb24gPSByZXMuZGF0YS52ZXJzaW9uO1xyXG5cdFx0XHRcdFx0bGV0IGN1cnJlbnRWZXJzaW9uID0gdW5pLmdldFN5c3RlbUluZm9TeW5jKCk7IC8vIOiOt+WPluW9k+WJjSBBUEsg54mI5pys5Y+3XHJcblx0XHRcdFx0XHQgXHJcblx0XHRcdFx0XHRpZiAobmV3VmVyc2lvbiA+IGN1cnJlbnRWZXJzaW9uLmFwcFZlcnNpb24pIHtcclxuXHRcdFx0XHRcdFx0dW5pLnNob3dNb2RhbCh7XHJcblx0XHRcdFx0XHRcdFx0dGl0bGU6IFwi5Y+R546w5paw54mI5pysXCIsXHJcblx0XHRcdFx0XHRcdFx0Y29udGVudDogXCLmmK/lkKbkuIvovb3mnIDmlrDniYjmnKw/XCIsXHJcblx0XHRcdFx0XHRcdFx0c3VjY2VzczogKG1vZGFsUmVzKSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0XHRpZiAobW9kYWxSZXMuY29uZmlybSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR0aGlzLmRvd25sb2FkTmV3QXBrKHJlcy5kYXRhLmFwa1VybCk7XHJcblx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdFx0Ly90aGlzLmRvd25sb2FkTmV3QXBrKHJlcy5kYXRhLmFwa1VybCk7XHJcblx0XHRcdFx0XHRcdHRoaXMudXBkYXRlQ2hlY2tlZCA9IHRydWU7IC8vIOagh+iusOabtOaWsOW3suajgOafpei/h1xyXG5cdFx0XHRcdFx0XHQvLyAgICAgIC8vIOWmguaenOacieaWsOeJiOacrO+8jOW8gOWni+S4i+i9vVxyXG5cdFx0XHRcdFx0XHQvL2Rvd25sb2FkKHJlcy5kYXRhLmFwa1VybCk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSlcclxuXHRcdFx0XHRcclxuXHRcdFx0fSxcclxuXHRcdFx0XHJcblx0XHRcdGRvd25sb2FkTmV3QXBrKGFwa1VybCkge1xyXG5cdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xyXG5cdFx0XHRcdFx0dGl0bGU6IFwi5byA5aeL5LiL6L295pu05pawLi4uXCIsXHJcblx0XHRcdFx0XHRpY29uOiBcIm5vbmVcIixcclxuXHRcdFx0XHRcdGR1cmF0aW9uOiAyMDAwXHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdFxyXG5cdFx0XHRcdHVuaS5kb3dubG9hZEZpbGUoe1xyXG5cdFx0XHRcdFx0dXJsOiBhcGtVcmwsXHJcblx0XHRcdFx0XHRzdWNjZXNzOiAocmVzKSA9PiB7XHJcblx0XHRcdFx0XHRcdGlmIChyZXMuc3RhdHVzQ29kZSA9PT0gMjAwKSB7XHJcblx0XHRcdFx0XHRcdFx0cGx1cy5ydW50aW1lLmluc3RhbGwocmVzLnRlbXBGaWxlUGF0aCwge1xyXG5cdFx0XHRcdFx0XHRcdFx0Zm9yY2U6IHRydWVcclxuXHRcdFx0XHRcdFx0XHR9LCBmdW5jdGlvbigpIHtcclxuXHRcdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKFwi5a6J6KOF5oiQ5Yqf77yM6YeN5ZCv5bqU55SoXCIpO1xyXG5cdFx0XHRcdFx0XHRcdFx0Ly9wbHVzLnJ1bnRpbWUucmVzdGFydCgpO1xyXG5cdFx0XHRcdFx0XHRcdFx0Ly9wbHVzLnJ1bnRpbWUucXVpdCgpO1xyXG5cdFx0XHRcdFx0XHRcdFx0Ly8gdW5pLm5hdmlnYXRlQmFjaygpXHJcblx0XHRcdFx0XHRcdFx0fSwgZnVuY3Rpb24oZSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0Y29uc29sZS5lcnJvcihcIuWuieijheWksei0pTpcIiwgZSk7XHJcblx0XHRcdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRmYWlsOiAoZXJyKSA9PiB7XHJcblx0XHRcdFx0XHRcdGNvbnNvbGUuZXJyb3IoXCLkuIvovb3lpLHotKU6XCIsIGVycik7XHJcblx0XHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xyXG5cdFx0XHRcdFx0XHRcdHRpdGxlOiBcIuS4i+i9veWksei0pe+8jOivt+ajgOafpee9kee7nFwiLFxyXG5cdFx0XHRcdFx0XHRcdGljb246IFwibm9uZVwiLFxyXG5cdFx0XHRcdFx0XHRcdGR1cmF0aW9uOiAyMDAwXHJcblx0XHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRcclxuXHRcdFx0cmVmcmVzaCgpIHtcclxuXHRcdFx0XHR0aGlzLmdldE1hY2hpbmVMaXN0KCk7XHJcblx0XHRcdFx0dGhpcy5nZXRQcmludEluZm8oKTtcclxuXHRcdFx0XHR0aGlzLmdldFdvbWRhYUlzU2hvdygpO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRnZXRQcmludEluZm8oKSB7XHJcblx0XHRcdFx0dmFyIG1hYyA9IFwiXCI7XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0bWFjID0gXCI3NDoyNDpjYTo0ZjpiMjpjM1wiO1xyXG5cdFx0XHRcdHRoaXMuJHBvc3Qoe1xyXG5cdFx0XHRcdFx0dXJsOiBcIi9EZXZNYWNoaW5lL0dldERldk1hY2hpbmVCeVBkYU1hY1wiLFxyXG5cdFx0XHRcdFx0ZGF0YToge1xyXG5cdFx0XHRcdFx0XHRwZGFNYWM6IG1hYyxcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KS50aGVuKHJlcyA9PiB7XHJcblx0XHRcdFx0XHRsZXQgZGV2TWFjaGluZSA9IHJlcy5kYXRhLnRiQmlsbExpc3Q7XHJcblx0XHRcdFx0XHR0aGlzLm1hY2hpbmVObyA9IGRldk1hY2hpbmUubWFjaGluZU5vO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubWFjaGluZU5hbWUgPSBcIuiwg+ivleaooeW8j++8mlwiICsgdGhpcy5tYWNoaW5lTm8gKyBcIuWPt+m9v+i9ruaculwiXHJcblxyXG5cdFx0XHRcdFx0dW5pLnNldFN0b3JhZ2VTeW5jKCdtYWNoaW5lTm8nLCB0aGlzLm1hY2hpbmVObyk7XHJcblx0XHRcdFx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ3ByaW50TWFjJywgZGV2TWFjaGluZS5wcmludE1hYyk7XHJcblxyXG5cdFx0XHRcdFx0Y29uc29sZS5sb2coZGV2TWFjaGluZS5wcmludE1hYyk7XHJcblxyXG5cdFx0XHRcdFx0dGhpcy5nZXRXb21kYWFJc1Nob3coKTtcclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0XHJcblx0IFx0XHRcdGlmIChwbHVzLm9zLm5hbWUgPT0gXCJBbmRyb2lkXCIpIHtcclxuXHQgXHRcdFx0XHQvL+iOt+WPluaJi+acuk1BQ+WcsOWdgFxyXG5cdCBcdFx0XHRcdHZhciBDb250ZXh0ID0gcGx1cy5hbmRyb2lkLmltcG9ydENsYXNzKFwiYW5kcm9pZC5jb250ZW50LkNvbnRleHRcIik7XHJcblx0IFx0XHRcdFx0dmFyIFdpZmlNYW5hZ2VyID0gcGx1cy5hbmRyb2lkLmltcG9ydENsYXNzKFwiYW5kcm9pZC5uZXQud2lmaS5XaWZpTWFuYWdlclwiKTtcclxuXHQgXHRcdFx0XHR2YXIgd2lmaU1hbmFnZXIgPSBwbHVzLmFuZHJvaWQucnVudGltZU1haW5BY3Rpdml0eSgpLmdldFN5c3RlbVNlcnZpY2UoQ29udGV4dC5XSUZJX1NFUlZJQ0UpO1xyXG5cdCBcdFx0XHRcdHZhciBXaWZpSW5mbyA9IHBsdXMuYW5kcm9pZC5pbXBvcnRDbGFzcyhcImFuZHJvaWQubmV0LndpZmkuV2lmaUluZm9cIik7XHJcblx0IFx0XHRcdFx0dmFyIHdpZmlJbmZvID0gd2lmaU1hbmFnZXIuZ2V0Q29ubmVjdGlvbkluZm8oKTtcclxuXHQgXHRcdFx0XHRtYWMgPSB3aWZpSW5mby5nZXRNYWNBZGRyZXNzKCk7XHJcblx0XHRcdFx0XHRcclxuXHQgXHRcdFx0XHQvL+WmguaenG1hY+S4uuKAnDAyOjAwOjAwOjAwOjAwOjAw4oCd77yM5YiZ5Y+v6IO95piv5a6J5Y2TNi4w5Lul5LiK54mI5pys77yM5YiZ5L2/55So5Y+m5LiA56eN5pa55rOV6I635Y+WbWFj5Zyw5Z2AXHJcblx0IFx0XHRcdFx0aWYgKG1hYyA9PSBcIjAyOjAwOjAwOjAwOjAwOjAwXCIpIHtcclxuXHQgXHRcdFx0XHRcdG1hYyA9IHRoaXMuZ2V0TWFjTmV3KCk7XHJcblx0IFx0XHRcdFx0fVxyXG5cdCBcdFx0XHRcdC8v5aaC5p6cbWFj5L2/55So5paw5pa55rOV5L6d54S25piv4oCcMDI6MDA6MDA6MDA6MDA6MDDigJ3liJnkuI3ov5vooYzkv53lrZhcclxuXHQgXHRcdFx0XHRpZiAobWFjID09IFwiMDI6MDA6MDA6MDA6MDA6MDBcIikge1xyXG5cdCBcdFx0XHRcdFx0cmV0dXJuO1xyXG5cdCBcdFx0XHRcdH1cclxuXHQgXHRcdFx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ3BkYU1hYycsIG1hYyk7XHJcblxyXG5cdCBcdFx0XHRcdHRoaXMuJHBvc3Qoe1xyXG5cdCBcdFx0XHRcdFx0dXJsOiBcIi9EZXZNYWNoaW5lL0dldERldk1hY2hpbmVCeVBkYU1hY1wiLFxyXG5cdCBcdFx0XHRcdFx0ZGF0YToge1xyXG5cdCBcdFx0XHRcdFx0XHRwZGFNYWM6IG1hYyxcclxuXHQgXHRcdFx0XHRcdH1cclxuXHQgXHRcdFx0XHR9KS50aGVuKHJlcyA9PiB7XHJcblx0IFx0XHRcdFx0XHRsZXQgZGV2TWFjaGluZSA9IHJlcy5kYXRhLnRiQmlsbExpc3Q7XHJcblx0IFx0XHRcdFx0XHR0aGlzLm1hY2hpbmVObyA9IGRldk1hY2hpbmUubWFjaGluZU5vO1xyXG5cdCBcdFx0XHRcdFx0dGhpcy5tYWNoaW5lTmFtZSA9IFwi5b2T5YmN5py65Y+w77yaXCIgKyB0aGlzLm1hY2hpbmVObyArIFwi5Y+36b2/6L2u5py6XCI7XHJcblxyXG5cdCBcdFx0XHRcdFx0dW5pLnNldFN0b3JhZ2VTeW5jKCdtYWNoaW5lTm8nLCB0aGlzLm1hY2hpbmVObyk7XHJcblx0IFx0XHRcdFx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ3ByaW50TWFjJywgZGV2TWFjaGluZS5wcmludE1hYyk7XHJcbiBcclxuXHJcblx0IFx0XHRcdFx0XHR0aGlzLmdldFdvbWRhYUlzU2hvdygpO1xyXG5cclxuXHQgXHRcdFx0XHR9KTtcclxuXHQgXHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRzYXZlKCkge1xyXG5cdFx0XHRcdGxldCBkYXRhID0gdGhpcy5zZWxlY3RlZEl0ZW1zKCk7XHJcblxyXG5cdFx0XHRcdGlmIChkYXRhLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuJHNob3dNZXNzYWdlKFwi6K+36YCJ5oup5LiA5Liq5bel5Y2VXCIpO1xyXG5cdFx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHRcdH1cclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoZGF0YS5sZW5ndGggPiAxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy4kc2hvd01lc3NhZ2UoXCLkuIDmrKHlj6rog73pgInlj5bkuIDkuKrlt6XljZVcIik7XHJcblx0XHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHQvL2xldCBmaXJzdFZhbHVlID0gZGF0YVswXVtcIm1vbGRJZFwiXTsgLy8g6I635Y+W56ys5LiA5Liq5a+56LGh55qE5oyH5a6a5bGe5oCn5YC8XHJcblxyXG5cdFx0XHRcdC8vLy8g5L2/55SoIGV2ZXJ5IOaWueazleajgOafpeaJgOacieWvueixoeeahOivpeWxnuaAp+WAvOaYr+WQpuS4gOiHtFxyXG5cdFx0XHRcdC8vbGV0IGZsYWcgPSBkYXRhLmV2ZXJ5KGl0ZW0gPT4gaXRlbVtcIm1vbGRJZFwiXSA9PT0gZmlyc3RWYWx1ZSk7XHJcblx0XHRcdFx0Ly9pZiAoIWZsYWcpIHtcclxuXHRcdFx0XHQvL1x0dGhpcy4kc2hvd01lc3NhZ2UoXCLpgInlj5bnmoRcIiArIGRhdGEubGVuZ3RoICsgXCLkuKrlt6XljZXkuK3nmoTmqKHlhbfnvJblj7fkuI3kuIDoh7RcIik7XHJcblx0XHRcdFx0Ly9cdHJldHVybjtcclxuXHRcdFx0XHQvL31cclxuXHJcblx0XHRcdFx0bGV0IG9yZGVyU2VsZWN0ID0gW107XHJcblxyXG5cdFx0XHRcdGRhdGEuZm9yRWFjaChzID0+IHtcclxuXHRcdFx0XHRcdGxldCBlbnRpdHkgPSB7XHJcblx0XHRcdFx0XHRcdG9yZGVySWQ6IHMuaWQsXHJcblx0XHRcdFx0XHRcdG9yZGVyTm86IHMuZGFhMDAxLFxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0b3JkZXJTZWxlY3QucHVzaChlbnRpdHkpO1xyXG5cdFx0XHRcdH0pO1xyXG5cclxuXHRcdFx0XHRsZXQgZWRpdERhdGUgPSB0aGlzLmZvcm1hdERhdGUobmV3IERhdGUoKSk7XHJcblxyXG5cdFx0XHRcdHRoaXMuJHBvc3Qoe1xyXG5cdFx0XHRcdFx0dXJsOiBcIi9NZXNPcmRlclNlbGVjdC9BZGRcIixcclxuXHRcdFx0XHRcdGRhdGE6IHtcclxuXHRcdFx0XHRcdFx0bWFjaGluZU5vOiB0aGlzLm1hY2hpbmVObyxcclxuXHRcdFx0XHRcdFx0ZWRpdERhdGU6IGVkaXREYXRlLFxyXG5cdFx0XHRcdFx0XHRpdGVtOiBvcmRlclNlbGVjdFxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pLnRoZW4ocmVzID0+IHtcclxuXHRcdFx0XHRcdGlmIChyZXMuZGF0YS50YkJpbGxMaXN0KSB7XHJcblx0XHRcdFx0XHRcdHRoaXMuZ2V0V29tZGFhSXNTaG93KCk7XHJcblx0XHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICfkv53lrZjlt6XljZXmiJDlip8nLFxyXG5cdFx0XHRcdFx0XHRcdC8vdGl0bGU6ICflsIbms6jloZHmnLrlvIDlkIjmqKHmlbDmuIUwJyxcclxuXHRcdFx0XHRcdFx0XHQvL+WwhuWAvOiuvue9ruS4uiBzdWNjZXNzIOaIluiAheebtOaOpeS4jeeUqOWGmWljb27ov5nkuKrlj4LmlbBcclxuXHRcdFx0XHRcdFx0XHRpY29uOiAnc3VjY2VzcycsXHJcblx0XHRcdFx0XHRcdFx0Ly/mmL7npLrmjIHnu63ml7bpl7TkuLogNeenklxyXG5cdFx0XHRcdFx0XHRcdGR1cmF0aW9uOiA1MDAwXHJcblx0XHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0dGhpcy5pc1Nob3cgPSBmYWxzZTtcclxuXHRcdFx0XHR9KVxyXG5cclxuXHRcdFx0fSxcclxuXHRcdFx0Z2V0TWFjTmV3KCkge1xyXG5cdFx0XHRcdHZhciBzdHIgPSBcIlwiO1xyXG5cdFx0XHRcdHRyeSB7XHJcblx0XHRcdFx0XHRpZiAocGx1cy5vcy5uYW1lID09IFwiQW5kcm9pZFwiKSB7XHJcblx0XHRcdFx0XHRcdHZhciBOZXR3b3JrSW50ZXJmYWNlID0gcGx1cy5hbmRyb2lkLmltcG9ydENsYXNzKFwiamF2YS5uZXQuTmV0d29ya0ludGVyZmFjZVwiKTtcclxuXHRcdFx0XHRcdFx0dmFyIG5ldHdvcmtJbnRlcmZhY2UgPSBOZXR3b3JrSW50ZXJmYWNlLmdldEJ5TmFtZShcIndsYW4wXCIpO1xyXG5cdFx0XHRcdFx0XHR2YXIgYnl0ZXMgPSBuZXR3b3JrSW50ZXJmYWNlLmdldEhhcmR3YXJlQWRkcmVzcygpO1xyXG5cdFx0XHRcclxuXHRcdFx0XHRcdFx0Ly/lsIZieXRlW10g6L2s5o2i5oiQIFN0cmluZ1xyXG5cdFx0XHRcdFx0XHRmb3IgKHZhciBpID0gMDsgaSA8IGJ5dGVzLmxlbmd0aDsgaSsrKSB7XHJcblx0XHRcdFx0XHRcdFx0dmFyIHRtcCA9IFwiXCI7XHJcblx0XHRcdFx0XHRcdFx0dmFyIG51bSA9IGJ5dGVzW2ldO1xyXG5cdFx0XHRcdFx0XHRcdGlmIChudW0gPCAwKSB7XHJcblx0XHRcdFx0XHRcdFx0XHR0bXAgPSAoMjU1ICsgbnVtICsgMSkudG9TdHJpbmcoMTYpO1xyXG5cdFx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0XHR0bXAgPSBudW0udG9TdHJpbmcoMTYpO1xyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRpZiAodG1wLmxlbmd0aCA9PSAxKSB7XHJcblx0XHRcdFx0XHRcdFx0XHR0bXAgPSBcIjBcIiArIHRtcDtcclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0c3RyICs9IChpID09IDApID8gKHRtcCkgOiAoXCI6XCIgKyB0bXApO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSBjYXRjaCAoZXJyKSB7XHJcblx0XHRcdFx0XHRzdHIgPSBcIjAyOjAwOjAwOjAwOjAwOjAwXCI7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHJldHVybiBzdHI7XHJcblx0XHRcdH0sXHJcblxyXG4gICAgICAgICAgICBjYW5jZWwoKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMubWFjaGluZU5vKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIC8vIOebtOaOpeeUqCBmbGFnIOWIpOaWrVxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaGFzQmluZGVkQ3V0dGVyRmxhZykge1xyXG4gICAgICAgICAgICAgICAgICAgIHVuaS5zaG93VG9hc3Qoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ+W9k+WJjeW3peWNleW3sue7keWumuWIgOWFt++8jOS4jeiDvea4heepuumHjemAiScsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb246ICdlcnJvcicsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGR1cmF0aW9uOiAyMDAwXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGxldCBlZGl0RGF0ZSA9IHRoaXMuZm9ybWF0RGF0ZShuZXcgRGF0ZSgpKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleHMgPSBbXTtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLiRwb3N0KHtcclxuICAgICAgICAgICAgICAgICAgICB1cmw6IFwiL01lc09yZGVyU2VsZWN0L1JlbW92ZVwiLFxyXG4gICAgICAgICAgICAgICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWFjaGluZU5vOiB0aGlzLm1hY2hpbmVObyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZWRpdERhdGU6IGVkaXREYXRlXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIH0pLnRoZW4ocmVzID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzLmRhdGEudGJCaWxsTGlzdCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pc1Nob3dUYWJsZURhdGEgPSBbXTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSxcclxuXHJcblx0XHRcdGZvcm1hdERhdGUoZGF0ZSkge1xyXG5cdFx0XHRcdGxldCB5ZWFyID0gZGF0ZS5nZXRGdWxsWWVhcigpOyAvLyDojrflj5blubTku71cclxuXHRcdFx0XHRsZXQgbW9udGggPSBTdHJpbmcoZGF0ZS5nZXRNb250aCgpICsgMSkucGFkU3RhcnQoMiwgJzAnKTsgLy8g6I635Y+W5pyI5Lu95bm26KGl6Zu2XHJcblx0XHRcdFx0bGV0IGRheSA9IFN0cmluZyhkYXRlLmdldERhdGUoKSkucGFkU3RhcnQoMiwgJzAnKTsgLy8g6I635Y+W5pel5pyf5bm26KGl6Zu2XHJcblx0XHRcdFx0cmV0dXJuIGAke3llYXJ9LSR7bW9udGh9LSR7ZGF5fWA7IC8vIOi/lOWbnuagvOW8j+WMluWQjueahOWtl+espuS4slxyXG5cdFx0XHR9LFxyXG5cdFx0XHRzZWxlY3Rpb25DaGFuZ2UoZSkge1xyXG4gICAgICAgICAgICAgICAgLy8g5Y2V6YCJ55u05o6l6LWL5YC8XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSW5kZXhzID0gW2UuZGV0YWlsLmluZGV4XTtcclxuXHRcdFx0fSxcclxuXHJcblx0XHRcdHNlbGVjdGVkSXRlbXMoKSB7XHJcblx0XHRcdFx0cmV0dXJuIHRoaXMuc2VsZWN0ZWRJbmRleHMubWFwKGkgPT4gdGhpcy50YWJsZURhdGFbaV0pXHJcblx0XHRcdH0sXHJcblxyXG5cclxuXHRcdFx0Y2hhbmdlVGFiKGluZGV4KSB7XHJcblx0XHRcdFx0dGhpcy5jdXJyZW50VGFiID0gaW5kZXg7XHJcblx0XHRcdFx0Ly8g5b2T5YiH5o2i5Yiw5bel5Y2V6YCJ5oup6aG16Z2iKGluZGV4ID09PSA3KeaXtuiHquWKqOWIt+aWsFxyXG5cdFx0XHRcdGlmIChpbmRleCA9PT0gNykge1xyXG5cdFx0XHRcdFx0dGhpcy5yZWZyZXNoKCk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGNvbnNvbGUubG9nKGluZGV4KTtcclxuXHRcdFx0fSxcclxuXHRcdFx0b25NYWNoaW5lQ2hhbmdlKGV2ZW50KSB7XHJcblxyXG5cdFx0XHRcdHRoaXMubWFjaGluZU5hbWUgPSBldmVudDtcclxuXHJcblx0XHRcdFx0dGhpcy5tYWNoaW5lTm8gPSB0aGlzLm1hY2hpbmVbdGhpcy5tYWNoaW5lTGlzdC5pbmRleE9mKGV2ZW50KV0ubWFjaGluZU5vO1xyXG5cclxuXHRcdFx0XHR1bmkuY2xlYXJTdG9yYWdlU3luYygpO1xyXG5cclxuXHRcdFx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ21hY2hpbmVObycsIHRoaXMubWFjaGluZU5vKTtcclxuXHRcdFx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ21hY2hpbmVOYW1lJywgdGhpcy5tYWNoaW5lTmFtZSk7XHJcblxyXG5cdFx0XHRcdHRoaXMuZ2V0V29tZGFhSXNTaG93KCk7XHJcblx0XHRcdH0sXHJcblx0XHRcdG9uRW5naW5lZXJpbmdOb0NoYW5nZShldmVudCkge1xyXG5cclxuXHRcdFx0XHRsZXQgb3JkZSA9IHRoaXMuZW5naW5lZXJpbmdOb0xpc3RbdGhpcy5lbmdpbmVlcmluZ05vTWFwTGlzdC5pbmRleE9mKGV2ZW50KV07XHJcblxyXG5cdFx0XHRcdHRoaXMuZW5naW5lZXJpbmdObyA9IG9yZGUubW9sZElkO1xyXG5cclxuXHRcdFx0XHR0aGlzLmdldFdvbWRhYSgpO1xyXG5cclxuXHRcdFx0fSxcclxuXHRcdFx0Z2V0TWFjaGluZUxpc3QoKSB7XHJcblx0XHRcdFx0dGhpcy4kcG9zdCh7XHJcblx0XHRcdFx0XHR1cmw6IFwiL01lc01hY2hpbmUvR2V0SW5qZWN0aW9uTWFjaGluZVwiLFxyXG5cdFx0XHRcdH0pLnRoZW4ocmVzID0+IHtcclxuXHRcdFx0XHRcdHRoaXMubWFjaGluZSA9IHJlcy5kYXRhLnRiQmlsbExpc3Q7XHJcblx0XHRcdFx0XHR0aGlzLm1hY2hpbmVMaXN0ID0gdGhpcy5tYWNoaW5lLm1hcChzID0+IHMubWFjaGluZU5hbWUpO1xyXG5cdFx0XHRcdH0pXHJcblx0XHRcdH0sXHJcbiAgICAgICAgICAgIC8v6I635Y+W6KGo5qC855qE5pWw5o2u5rqQXHJcbiAgICAgICAgICAgIGdldFdvbWRhYUlzU2hvdygpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuJHBvc3Qoe1xyXG4gICAgICAgICAgICAgICAgICAgIHVybDogXCIvV29tZGFhL0dldFdvbWRhYXNCeVNob3dcIixcclxuICAgICAgICAgICAgICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hY2hpbmVObzogdGhpcy5tYWNoaW5lTm8sXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSkudGhlbihyZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNTaG93VGFibGVEYXRhID0gcmVzLmRhdGEudGJCaWxsTGlzdDtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgLy8g5Y+q5Yik5pat56ys5LiA5p2h77yI5Y+q5YWB6K645LiA5p2h5bel5Y2V77yJXHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3JkZXIgPSB0aGlzLmlzU2hvd1RhYmxlRGF0YVswXTtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgaGFzQmluZGVkQ3V0dGVyID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9yZGVyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGhhc0JpbmRlZEN1dHRlciA9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob3JkZXIub3V0VG9vbElkICYmIG9yZGVyLm91dFRvb2xJZC50b1N0cmluZygpLnRyaW0oKSAhPT0gJycpIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob3JkZXIub3V0VG9vbENvZGUgJiYgb3JkZXIub3V0VG9vbENvZGUudHJpbSgpICE9PSAnJykgfHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvcmRlci5vdXRUb29sTmFtZSAmJiBvcmRlci5vdXRUb29sTmFtZS50cmltKCkgIT09ICcnKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgLy8g5a2Y5YKo5YiwIGRhdGEg5Y+Y6YePXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oYXNCaW5kZWRDdXR0ZXJGbGFnID0gaGFzQmluZGVkQ3V0dGVyO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pc1Nob3dUYWJsZURhdGEubGVuZ3RoID09IDEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdW5pLnNldFN0b3JhZ2VTeW5jKCdkYWEwMDEnLCB0aGlzLmlzU2hvd1RhYmxlRGF0YVswXS5kYWEwMDEpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB1bmkuc2V0U3RvcmFnZVN5bmMoJ2lkJywgdGhpcy5pc1Nob3dUYWJsZURhdGFbMF0uaWQpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9LFxyXG5cclxuICAgICAgICAgICAgaXNTaG93VGFiKCkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNTaG93VGFibGVEYXRhLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICB1bmkuc2hvd1RvYXN0KHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICflt7LmnInmraPlnKjmk43kvZznmoTlt6XljZXvvIzkuI3og73lho3mrKHpgInmi6knLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiAnZXJyb3InLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkdXJhdGlvbjogMjAwMFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLmlzU2hvdyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAvLyDpu5jorqTpgInkuK3igJzlvoXlvIDlt6XigJ1cclxuICAgICAgICAgICAgICAgIHRoaXMuZW5naW5lZXJpbmdObyA9ICflvoXlvIDlt6XjgIHmnKrlvIDlt6XjgIHmmoLlgZwnO1xyXG4gICAgICAgICAgICAgICAgdGhpcy50YWJsZURhdGEgPSBbXTtcclxuICAgICAgICAgICAgICAgIC8vIOS4i+aLieahhuWPquaYvuekuuWQiOW5tuWQjueahOeKtuaAgeWSjOWFtuWug+eKtuaAgVxyXG4gICAgICAgICAgICAgICAgdGhpcy5lbmdpbmVlcmluZ05vTWFwTGlzdCA9IFtcclxuICAgICAgICAgICAgICAgICAgICAn5b6F5byA5bel44CB5pyq5byA5bel44CB5pqC5YGcJyxcclxuICAgICAgICAgICAgICAgICAgICAn5byA5belJyxcclxuICAgICAgICAgICAgICAgICAgICAn5a6M5belJ1xyXG4gICAgICAgICAgICAgICAgXTtcclxuICAgICAgICAgICAgICAgIC8vIOm7mOiupOaYvuekuuKAnOW+heW8gOW3peKAneW3peWNlVxyXG4gICAgICAgICAgICAgICAgdGhpcy5nZXRXb21kYWFCeVN0YXR1cygpO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAvLyDkuIvmi4nmoYbpgInkuK3lkI7vvIzmjInnirbmgIHnrZvpgInlt6XljZVcclxuICAgICAgICAgICAgb25FbmdpbmVlcmluZ05vQ2hhbmdlKHN0YXR1cykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5lbmdpbmVlcmluZ05vID0gc3RhdHVzO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5nZXRXb21kYWFCeVN0YXR1cygpO1xyXG4gICAgICAgICAgICB9LFxyXG5cdFx0XHRnZXRXb21kYWEoKSB7XHJcblxyXG5cdFx0XHRcdGxldCBlZGl0RGF0ZSA9IHRoaXMuZm9ybWF0RGF0ZShuZXcgRGF0ZSgpKTtcclxuXHJcblx0XHRcdFx0dGhpcy4kcG9zdCh7XHJcblx0XHRcdFx0XHR1cmw6IFwiL1dvbWRhYS9HZXRXb21kYWFzQnlNYWNoaW5lXCIsXHJcblx0XHRcdFx0XHRkYXRhOiB7XHJcblx0XHRcdFx0XHRcdG1hY2hpbmVObzogdGhpcy5tYWNoaW5lTm8sXHJcblx0XHRcdFx0XHRcdGVkaXREYXRlOiBlZGl0RGF0ZVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pLnRoZW4ocmVzID0+IHtcclxuXHRcdFx0XHRcdHRoaXMudGFibGVEYXRhID0gcmVzLmRhdGEudGJCaWxsTGlzdDtcclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9LFxyXG4gICAgICAgICAgICAvLyDmjInlt6XljZXnirbmgIHnrZvpgInlt6XljZVcclxuICAgICAgICAgICAgZ2V0V29tZGFhQnlTdGF0dXMoKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgZWRpdERhdGUgPSB0aGlzLmZvcm1hdERhdGUobmV3IERhdGUoKSk7XHJcbiAgICAgICAgICAgICAgICBsZXQgc3RhdHVzQXJyID0gW107XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5lbmdpbmVlcmluZ05vID09PSAn5b6F5byA5bel44CB5pyq5byA5bel44CB5pqC5YGcJykge1xyXG4gICAgICAgICAgICAgICAgICAgIHN0YXR1c0FyciA9IFsn5b6F5byA5belJywgJ+acquW8gOW3pScsICfmmoLlgZwnXTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc3RhdHVzQXJyID0gW3RoaXMuZW5naW5lZXJpbmdOb107XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLiRwb3N0KHtcclxuICAgICAgICAgICAgICAgICAgICB1cmw6IFwiL1dvbWRhYS9HZXRXb21kYWFzQnlFbmdpbmVlcmluZ05vXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBtYWNoaW5lTm86IHRoaXMubWFjaGluZU5vLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvcmRlclN0YXR1czogc3RhdHVzQXJyLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBlZGl0RGF0ZTogZWRpdERhdGVcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KS50aGVuKHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50YWJsZURhdGEgPSByZXMuZGF0YS50YkJpbGxMaXN0O1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0sXHJcblx0XHRcdHRvRGV0YWlsKGl0ZW0pIHtcclxuXHRcdFx0XHR0aGlzLm9yZGVySWQgPSBpdGVtLmlkO1xyXG5cdFx0XHRcdHRoaXMuc2VsZWN0ZWRPcmRlciA9IGl0ZW0uZGFhMDAxO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5wcm9kdWN0Q29kZSA9IGl0ZW0uZGFhMDAyOyAvLyDkuqflk4HnvJbnoIFcclxuICAgICAgICAgICAgICAgIHRoaXMucHJvZHVjdFNwZWMgPSBpdGVtLmRhYTAwNDsgLy8g5Lqn5ZOB6KeE5qC8XHJcblx0XHRcdFx0dGhpcy5jdXJyZW50VGFiID0gMDtcclxuXHRcdFx0fVxyXG5cdFx0fSxcclxuXHRcdGNvbXB1dGVkOiB7fVxyXG5cdH07XHJcbjwvc2NyaXB0PlxyXG5cclxuPHN0eWxlIGxhbmc9XCJzY3NzXCI+XHJcblxyXG4gICAgOmRlZXAoLmNoZWNrYm94KSxcclxuICAgIDpkZWVwKC5jaGVja2JveF9faW5uZXIpIHtcclxuICAgICAgICB3aWR0aDogNjBweCAhaW1wb3J0YW50O1xyXG4gICAgICAgIGhlaWdodDogNjBweCAhaW1wb3J0YW50O1xyXG4gICAgICAgIG1pbi13aWR0aDogNjBweCAhaW1wb3J0YW50O1xyXG4gICAgICAgIG1pbi1oZWlnaHQ6IDYwcHggIWltcG9ydGFudDtcclxuICAgICAgICBwYWRkaW5nOiAxNnB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4ICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgLnBvcHVwIC5sYXJnZS1zZWxlY3Rpb24tdGFibGUge1xyXG4gICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgdGFibGUtbGF5b3V0OiBhdXRvICFpbXBvcnRhbnQ7IC8vIOiuqeihqOagvOiHquWKqOWIhumFjeWuveW6plxyXG4gICAgfVxyXG5cclxuICAgIC5yb3ctc2VsZWN0ZWQge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlMGYzZmYgIWltcG9ydGFudDtcclxuICAgIH1cclxuXHJcblx0LmZvbnQge1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogIzY2NjY2NjtcclxuXHRcdGhlaWdodDogMzBweDtcclxuXHRcdHdpZHRoOiAxMDB2dztcclxuXHR9XHJcblxyXG5cclxuXHQvKiDkuIrpg6jljLrln5/moLflvI/vvIzlt6Y3MCUg5Y+zMzAlICovXHJcblx0LnRvcC1zZWN0aW9uIHtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcclxuXHRcdG1hcmdpbi1ib3R0b206IDIwcHg7XHJcblx0XHRwYWRkaW5nOiAyMHB4IDEwcHg7XHJcblx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xyXG5cdFx0ZmxleC13cmFwOiB3cmFwO1xyXG5cdFx0YWxpZ24tY29udGVudDogY2VudGVyO1xyXG5cdFx0YWxpZ24taXRlbXM6IHN0cmV0Y2g7XHJcblx0XHQvKiDlop7liqDkuIrkuIvnmoRwYWRkaW5nICovXHJcblx0fVxyXG5cclxuXHQucmlnaHQtc2lkZSB7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZjNmM2YzO1xyXG5cdFx0cGFkZGluZzogMTZweDtcclxuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHRcdGJvcmRlci1yYWRpdXM6IDhweDtcclxuXHRcdHdpZHRoOiAyNSU7XHJcblx0XHRmb250LXNpemU6IDE0cHg7XHJcblx0fVxyXG5cclxuXHQuZm9ybS1yb3cge1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuXHRcdG1hcmdpbi1ib3R0b206IDEuMnZoO1xyXG5cdH1cclxuXHJcblx0LmZvcm0taXRlbSB7XHJcblx0XHR3aWR0aDogMzAlO1xyXG5cdH1cclxuXHJcblx0LmlucCB7XHJcblx0XHR3aWR0aDogOTAlO1xyXG5cdFx0cGFkZGluZzogNHB4O1xyXG5cdFx0Ym9yZGVyOiAxcHggc29saWQgI2NjYztcclxuXHRcdGJvcmRlci1yYWRpdXM6IDRweDtcclxuXHRcdG1hcmdpbi10b3A6IDRweDtcclxuXHR9XHJcblxyXG5cdC5zdGF0dXMtYmxvY2sge1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdH1cclxuXHJcblx0LnN0YXR1cy1ibG9jayBwIHtcclxuXHRcdG1hcmdpbjogOHB4IDA7XHJcblx0XHRmb250LXNpemU6IDE2cHg7XHJcblx0XHRmb250LXdlaWdodDogYm9sZDtcclxuXHR9XHJcblxyXG5cdC5sZWZ0LXNpZGUge1xyXG5cdFx0d2lkdGg6IDY1JTtcclxuXHR9XHJcblxyXG5cdC50YWJsZS1yb3cge1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuXHRcdHBhZGRpbmc6IDhweDtcclxuXHRcdGJvcmRlcjogMXB4IHNvbGlkICMwMDAwMDA7XHJcblx0XHRmb250LXNpemU6IDIwcHg7XHJcblx0XHRmb250LXdlaWdodDogYm9sZDtcclxuXHR9XHJcblxyXG5cdC50YWJsZS1jZWxsIHtcclxuXHRcdHdpZHRoOiA1MCU7XHJcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0fVxyXG5cclxuXHQvKiDljaHniYfmoLflvI8gKi9cclxuICAgIC5jYXJkIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XHJcbiAgICAgICAgYm94LXNoYWRvdzogMCA0cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcclxuICAgICAgICBwYWRkaW5nOiAwOyAvLyDljrvpmaTlpJrkvZnlhoXovrnot51cclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjVweDtcclxuICAgICAgICB3aWR0aDogMTAwJTsgLy8g5aGr5ruh54i25a655ZmoXHJcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgIH1cclxuXHJcbi8qICAgIC8vLmNvbnRlbnQge1xyXG4gICAgLy8gICAgZmxleDogMTtcclxuICAgIC8vICAgIHBhZGRpbmc6IDF2aCAxdnc7IC8vIOS/neivgeaVtOS9k+acieW3puWPs+eVmeeZvVxyXG4gICAgLy8gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XHJcbiAgICAvLyAgICBmb250LXNpemU6IDEuNXZ3O1xyXG4gICAgLy99Ki9cclxuXHJcblx0Lyog5Y2h54mH5qCH6aKY5Zyo5bem5LiK6KeSICovXHJcblx0LmNhcmQtaGVhZGVyIHtcclxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdHRvcDogLTEwcHg7XHJcblx0XHRsZWZ0OiAxNnB4O1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcclxuXHRcdHBhZGRpbmc6IDJweCA4cHg7XHJcblx0XHRib3JkZXItcmFkaXVzOiA0cHg7XHJcblx0XHRmb250LXdlaWdodDogYm9sZDtcclxuXHR9XHJcblxyXG5cdC8qIOS4remDqOWMuuWfn++8jOavj+ihjDPkuKrlrZfmrrUgKi9cclxuXHQuc3RhdHVzLXJvdyxcclxuXHQuY2hlY2stcm93IHtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcblx0XHRtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG5cdH1cclxuXHJcblx0LnN0YXR1cy1yb3cgbGFiZWwsXHJcblx0LmNoZWNrLXJvdyBsYWJlbCB7XHJcblx0XHR3aWR0aDogMzAlO1xyXG5cdFx0cGFkZGluZy1yaWdodDogMTBweDtcclxuXHRcdHRleHQtYWxpZ246IHJpZ2h0O1xyXG5cdH1cclxuXHJcblx0LnN0YXR1cy1yb3cgaW5wdXQsXHJcblx0LmNoZWNrLXJvdyBpbnB1dCB7XHJcblx0XHR3aWR0aDogNjUlO1xyXG5cdH1cclxuXHJcblx0Ly/ln7rnoYDmoLflvI9cclxuXHQuY29udGFpbmVyIHtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG5cdH1cclxuXHJcblx0LnRhYi1iYXIge1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTtcclxuXHRcdHBhZGRpbmc6IDF2aDtcclxuXHRcdHBhZGRpbmctdG9wOiAzMHB4O1xyXG5cdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XHJcblx0fVxyXG5cclxuXHQudG9wLXJpZ2h0IHtcclxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdHRvcDogMTBweDtcclxuXHRcdHJpZ2h0OiA1MHB4O1xyXG5cdFx0ei1pbmRleDogMTAwMDtcclxuXHR9XHJcblxyXG5cdC5yZWZyZXNoLWJ0biB7XHJcblx0XHRwYWRkaW5nOiAxMHB4O1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogIzAwQTJFOTtcclxuXHRcdGNvbG9yOiB3aGl0ZTtcclxuXHRcdGJvcmRlcjogbm9uZTtcclxuXHRcdGZvbnQtc2l6ZTogMS41dnc7XHJcblx0XHRib3JkZXItcmFkaXVzOiA1cHg7XHJcblx0fVxyXG5cclxuXHQudGFiLWl0ZW0ge1xyXG5cdFx0ZmxleDogMTtcclxuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHRcdG1hcmdpbi1yaWdodDogMC41dnc7XHJcblx0XHRwYWRkaW5nOiAxdmg7XHJcblx0XHRib3JkZXItcmFkaXVzOiAwLjV2dztcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcblx0XHRjb2xvcjogIzAwN2FmZjtcclxuXHRcdGN1cnNvcjogcG9pbnRlcjtcclxuXHRcdGZvbnQtc2l6ZTogMS44dnc7XHJcblx0XHQvKiBJbmNyZWFzZWQgZm9udCBzaXplICovXHJcblx0XHR0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuM3MsIGNvbG9yIDAuM3M7XHJcblx0fVxyXG5cclxuXHQudGFiLWl0ZW0uYWN0aXZlIHtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICMwMDdhZmY7XHJcblx0XHRjb2xvcjogI2ZmZjtcclxuXHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xyXG5cdH1cclxuXHJcblx0LmNvbnRlbnQge1xyXG5cdFx0ZmxleDogMTtcclxuXHRcdHBhZGRpbmc6IDF2aCAxdnc7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcclxuXHRcdGZvbnQtc2l6ZTogMS41dnc7XHJcblx0XHQvKiBJbmNyZWFzZWQgZm9udCBzaXplIGZvciBjb250ZW50ICovXHJcblx0fVxyXG5cclxuICAgIC5waWNrZXIge1xyXG4gICAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDdweDtcclxuICAgICAgICBtYXJnaW4tbGVmdDogMTBweDtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgZm9udC1zaXplOiAzMnB4ICFpbXBvcnRhbnQ7IC8vIOW8uuWItuWkp+Wtl+S9k++8jOmAgumFjeS9juWvhuW6plxyXG4gICAgICAgIG1pbi1oZWlnaHQ6IDYwcHg7IC8vIOiuqemAieaLqeahhumrmOW6puS5n+WPmOWkp1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiA2MHB4O1xyXG4gICAgICAgIHBhZGRpbmc6IDUuNXB4IDFweDtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyAvLyDov5nph4zmlLnkuLrok53oibJcclxuICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAjMDA3YWZmOyAvLyDovrnmoYbkuZ/mlLnkuLrok53oibJcclxuICAgICAgICBjb2xvcjogIzAwN2FmZjsgLy8g5a2X5L2T6aKc6Imy5pS55Li655m96Imy77yM5L+d6K+B5Y+v6K+75oCnXHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4O1xyXG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4ycztcclxuICAgIH1cclxuXHJcbiAgICAudGgge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0c2t5Ymx1ZTtcclxuICAgICAgICBoZWlnaHQ6IDZ2aDtcclxuICAgICAgICBmb250LXNpemU6IDJ2dztcclxuICAgICAgICBmb250LXNpemU6IDIuNnZ3OyAvKiDlrZfkvZPmm7TlpKcgKi9cclxuICAgICAgICAvKiBJbmNyZWFzZWQgZm9udCBzaXplIGZvciB0YWJsZSBoZWFkZXJzICovXHJcbiAgICB9XHJcblxyXG4gICAgLmZvcm0taW5wdXQge1xyXG4gICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcclxuICAgICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgICAgICAgbWF4LXdpZHRoOiAxODBweDtcclxuICAgICAgICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS44dnc7XHJcbiAgICB9XHJcblxyXG5cdC8qIOW6lemDqOS/neWtmOWSjOWPlua2iOaMiemSriAqL1xyXG4gICAgLmJvdHRvbS1zZWN0aW9uIHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDJ2aDtcclxuICAgICAgICBwYWRkaW5nOiAydmggMXZ3O1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDE2MHB4OyAvLyDljp/mnaXmmK80MHB477yM5pS55oiQODBweO+8jOaMiemSruaVtOS9k+S4i+enu1xyXG4gICAgfVxyXG5cclxuXHQuc2F2ZS1idG4sXHJcblx0LmNhbmNlbC1idG4ge1xyXG5cdFx0d2lkdGg6IDQ4JTtcclxuXHRcdHBhZGRpbmc6IDEuNXZoO1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogIzAwYTJlOTtcclxuXHRcdGNvbG9yOiB3aGl0ZTtcclxuXHRcdGZvbnQtc2l6ZTogMS44dnc7XHJcblx0XHQvKiBJbmNyZWFzZWQgYnV0dG9uIGZvbnQgc2l6ZSAqL1xyXG5cdFx0Ym9yZGVyOiBub25lO1xyXG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xyXG5cdH1cclxuXHJcbiAgICAub3ZlcmxheSB7XHJcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgICAgIHRvcDogMDtcclxuICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNSk7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIHotaW5kZXg6IDIwMDA7IC8vIOWinuWKoHotaW5kZXjvvIznoa7kv53lvLnnqpflnKjliLfmlrDmjInpkq7kuYvkuIpcclxuICAgIH1cclxuXHJcbiAgICAucG9wdXAge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcbiAgICAgICAgcGFkZGluZzogMnZoO1xyXG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XHJcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDEwcHggcmdiYSgwLCAwLCAwLCAwLjEpO1xyXG4gICAgICAgIHdpZHRoOiA5OHZ3OyAvLyDljp/mnaXmmK8gOTB2d++8jOaUueaIkCA5OHZ3XHJcbiAgICAgICAgaGVpZ2h0OiA4NXZoO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS42dnc7XHJcbiAgICB9XHJcblxyXG5cdC5wcmludC1idG4ge1xyXG5cdFx0ZmxvYXQ6IGxlZnQ7XHJcblx0XHRtYXJnaW4tdG9wOiA0cHg7XHJcblx0XHRtYXJnaW4tbGVmdDogMTBweDtcclxuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHRcdGZvbnQtc2l6ZTogMTAwJTtcclxuXHRcdGNvbG9yOiBibGFjaztcclxuXHRcdHBhZGRpbmc6IDBweCA5MHB4O1xyXG5cdFx0Ym9yZGVyOiAycHggc29saWQgI2NjYztcclxuXHRcdGN1cnNvcjogcG9pbnRlcjtcclxuXHRcdGJvcmRlci1yYWRpdXM6IDAuOHZ3O1xyXG5cdH1cclxuXHJcbiAgICAubWFjaGluZS1uYW1lLWJveCB7XHJcbiAgICAgICAgYm9yZGVyOiAycHggc29saWQgIzAwN2FmZjsgLyog6JOd6Imy6L655qGGICovXHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xyXG4gICAgICAgIGZvbnQtZmFtaWx5OiBmYW50YXN5O1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMzNweDtcclxuICAgICAgICBtYXJnaW4tdG9wOiAyMHB4O1xyXG4gICAgICAgIHBhZGRpbmc6IDE1cHggMjhweDsgLyog5LiK5LiLMjBweO+8jOW3puWPszQ4cHjvvIzlop7liqDlhoXovrnot50gKi9cclxuICAgICAgICB3aWR0aDogMzAwcHg7IC8qIOabtOWuve+8jOS/neivgeWGheWuueWujOaVtOaYvuekuiAqL1xyXG4gICAgICAgIGhlaWdodDogNzBweDsgLyog5aKe5Yqg6auY5bqmICovXHJcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xyXG4gICAgICAgIGNvbG9yOiAjMjIyO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB9XHJcblxyXG4vKiAgICAvL3YtZGVlcCAuY2hlY2tib3gge1xyXG4gICAgLy8gICAgcGFkZGluZzogMTAgMTBweDtcclxuICAgIC8vICAgIHdpZHRoOiAyNnB4O1xyXG4gICAgLy8gICAgcGFkZGluZy1sZWZ0OiAxMnB4O1xyXG4gICAgLy8gICAgZGlzcGxheTogdGFibGUtY2VsbDtcclxuICAgIC8vICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgICAvLyAgICBjb2xvcjogIzMzMztcclxuICAgIC8vICAgIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgICAvLyAgICBib3JkZXItYm90dG9tOiAxcHggI2ViZWVmNSBzb2xpZDtcclxuICAgIC8vICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgIC8vfSovXHJcblxyXG4gICAgLnBvcHVwIC5jYXJkIHtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiA0MHB4ICFpbXBvcnRhbnQ7IC8vIOWOn+adpTI1MHB477yM5pS55Li6NDBweO+8jOepuueZveaYjuaYvuWHj+WwkVxyXG4gICAgfVxyXG5cclxuXHRAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxOTIwcHgpIHtcclxuXHRcdC50YWItaXRlbSB7XHJcblx0XHRcdGZvbnQtc2l6ZTogMS42dnc7XHJcblx0XHR9XHJcblxyXG5cdFx0LmNvbnRlbnQge1xyXG5cdFx0XHRwYWRkaW5nOiAxdnc7XHJcblx0XHRcdGZvbnQtc2l6ZTogMS41dnc7XHJcblx0XHR9XHJcblxyXG5cdFx0LmZvcm0taW5wdXQge1xyXG5cdFx0XHRmb250LXNpemU6IDEuNnZ3O1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcbiAgICAudW5pLXRkLFxyXG4gICAgdGQge1xyXG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWwgIWltcG9ydGFudDsgLy8g5YWB6K646Ieq5Yqo5o2i6KGMXHJcbiAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsICFpbXBvcnRhbnQ7IC8vIOWNleivjS/kuK3mlofpg73og73mlq3ooYxcclxuICAgICAgICBsaW5lLWhlaWdodDogMS40OyAvLyDooYzpq5jpgILlvZPvvIzkvr/kuo7lpJrooYzmmL7npLpcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IC8vIOWxheS4reaYvuekuu+8iOWmgumcgOW3puWvuem9kOWPr+aUueS4uiBsZWZ077yJXHJcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgLy8g5Z6C55u05bGF5LitXHJcbiAgICAgICAgbWF4LXdpZHRoOiAxODBweDsgLy8g5L+d5oyB5Y2V5YWD5qC85pyA5aSn5a695bqmXHJcbiAgICAgICAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsgLy8g5YW85a655oCn5pu05aW9XHJcbiAgICB9XHJcblxyXG4gICAgLy8g5pS+5aSn5by556qX5YaF6KGo5qC85a2X5L2T77yI6KGo5aS05ZKM5YaF5a6577yJXHJcbiAgICAucG9wdXAgLmxhcmdlLXNlbGVjdGlvbi10YWJsZSxcclxuICAgIC5wb3B1cCAubGFyZ2Utc2VsZWN0aW9uLXRhYmxlIC51bmktdGgsXHJcbiAgICAucG9wdXAgLmxhcmdlLXNlbGVjdGlvbi10YWJsZSAudW5pLXRkLFxyXG4gICAgLnBvcHVwIC5sYXJnZS1zZWxlY3Rpb24tdGFibGUgaW5wdXQuZm9ybS1pbnB1dCB7XHJcbiAgICAgICAgZm9udC1zaXplOiAyLjJ2dyAhaW1wb3J0YW50OyAvLyDlj6/moLnmja7lrp7pmYXpnIDmsYLosIPmlbRcclxuICAgIH1cclxuXHJcbiAgICAuc2VsZWN0LWJ0biB7XHJcbiAgICAgICAgd2lkdGg6IDE4MHB4OyAvLyDmm7Tlrr1cclxuICAgICAgICBoZWlnaHQ6IDgwcHg7IC8vIOabtOmrmFxyXG4gICAgICAgIGZvbnQtc2l6ZTogMS44dnc7IC8vIOWtl+S9k+S5n+eVpeWkp1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTtcclxuICAgICAgICBjb2xvcjogIzAwN2FmZjtcclxuICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAjMDA3YWZmO1xyXG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgfVxyXG5cclxuICAgIC50b3Atc2VjdGlvbiB7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG4gICAgICAgIHBhZGRpbmc6IDIwcHggMTBweDtcclxuICAgIH1cclxuXHJcbiAgICAuZm9ybS1yb3cuYWxpZ24tcm93IHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgIH1cclxuXHJcbiAgICAubWFjaGluZS1uYW1lLWJveCB7XHJcbiAgICAgICAgZmxleDogMSAxIDQ1JTtcclxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgLmZvcm0tZ3JvdXAge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICBmbGV4OiAxIDEgNDUlO1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcclxuICAgIH1cclxuXHJcbiAgICAub3JkZXItbGFiZWwge1xyXG4gICAgICAgIGZvbnQtZmFtaWx5OiBmYW50YXN5O1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMzNweDtcclxuICAgICAgICBtYXJnaW4tdG9wOiAyMHB4O1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcclxuICAgICAgICBmbG9hdDogbm9uZTtcclxuICAgIH1cclxuXHJcbiAgICAucHJpbnQtYnRuIHtcclxuICAgICAgICBtYXJnaW4tdG9wOiAyMHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC50b3AtcmlnaHQge1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB0b3A6IC0zMHB4OyAvLyDlvoDkuIrnp7tcclxuICAgICAgICByaWdodDogMDtcclxuICAgICAgICB6LWluZGV4OiAxMDAwO1xyXG4gICAgfVxyXG5cclxuLyog5pS+5aSn6KGo5aS05ZKM6KGo5qC85YaF5a655a2X5L2TICovXHJcbiAgICAudGgsXHJcbiAgICAudW5pLXRoLFxyXG4gICAgdGgge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS43dncgIWltcG9ydGFudDtcclxuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgICAgICBsZXR0ZXItc3BhY2luZzogMnB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5wb3B1cCAubGFyZ2Utc2VsZWN0aW9uLXRhYmxlIC50aCxcclxuICAgIC5wb3B1cCAubGFyZ2Utc2VsZWN0aW9uLXRhYmxlIC51bmktdGgsXHJcbiAgICAucG9wdXAgLmxhcmdlLXNlbGVjdGlvbi10YWJsZSB0aCB7XHJcbiAgICAgICAgZm9udC1zaXplOiAzMnB4ICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcblxyXG5cdC8qIOmSiOWvuTEyODB4ODAw55qE5bmz5p2/5L2/55So5aqS5L2T5p+l6K+i6L+b6KGM6YCC6YWNICovXHJcblx0QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTI4MHB4KSBhbmQgKG1heC13aWR0aDogMTkyMHB4KSB7XHJcblx0XHQucmlnaHQtc2lkZSB7XHJcblx0XHRcdHdpZHRoOiAzMCU7XHJcblx0XHR9XHJcblxyXG5cdFx0LnNhdmUtYnRuLFxyXG5cdFx0LmNhbmNlbC1idG4ge1xyXG5cdFx0XHRmb250LXNpemU6IDEuNnZ3O1xyXG5cdFx0fVxyXG5cclxuXHRcdC5pbnAge1xyXG5cdFx0XHR3aWR0aDogODUlO1xyXG5cdFx0XHRmb250LXNpemU6IDIwcHg7XHJcblx0XHR9XHJcblxyXG5cdFx0LnN0YXR1cy1ibG9jayBwIHtcclxuXHRcdFx0Zm9udC1zaXplOiAyMHB4O1xyXG5cdFx0fVxyXG5cclxuXHRcdC51bmktdHIsXHJcblx0XHQudW5pLXRkIHtcclxuXHRcdFx0Zm9udC1zaXplOiAyMHB4O1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcbjwvc3R5bGU+XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///52\n");
+eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 2);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 6));\nvar _WorkOrderStatus = _interopRequireDefault(__webpack_require__(/*! ../components/WorkOrderStatus.vue */ 53));\nvar _uniTable = _interopRequireDefault(__webpack_require__(/*! ../uni_modules/uni-table/components/uni-table/uni-table.vue */ 14));\nvar _mold = _interopRequireDefault(__webpack_require__(/*! ../components/mold.vue */ 58));\nvar _machine = _interopRequireDefault(__webpack_require__(/*! ../components/machine.vue */ 63));\nvar _WorkOrderPrint = _interopRequireDefault(__webpack_require__(/*! ../components/WorkOrderPrint.vue */ 68));\nvar _WorkOrder = _interopRequireDefault(__webpack_require__(/*! ../components/WorkOrder.vue */ 74));\nvar _Technology = _interopRequireDefault(__webpack_require__(/*! ../components/Technology.vue */ 79));\nvar _PDFShow = _interopRequireDefault(__webpack_require__(/*! ../components/PDFShow.vue */ 84));\nvar _PrintInit = _interopRequireDefault(__webpack_require__(/*! ../components/PrintInit.vue */ 89));\nvar _PrintTest = _interopRequireDefault(__webpack_require__(/*! ../components/PrintTest.vue */ 94));\nvar _EquipmentInspection = _interopRequireDefault(__webpack_require__(/*! ../components/EquipmentInspection.vue */ 99));\nvar _methods;\nvar _default = {\n components: {\n Technology: _Technology.default,\n WorkOrder: _WorkOrder.default,\n WorkOrderPrint: _WorkOrderPrint.default,\n Machine: _machine.default,\n Mold: _mold.default,\n UniTable: _uniTable.default,\n WorkOrderStatus: _WorkOrderStatus.default,\n PDFShow: _PDFShow.default,\n PrintInit: _PrintInit.default,\n PrintTest: _PrintTest.default,\n EquipmentInspection: _EquipmentInspection.default\n },\n data: function data() {\n var _ref;\n return _ref = {\n orderStatus: '',\n // 榛樿鍏ㄩ儴\n currentTab: 7,\n productCode: '',\n // 浜у搧缂栫爜\n productSpec: '',\n // 浜у搧瑙勬牸\n\n machineList: [],\n machine: [],\n engineeringNoList: [],\n engineeringNoMapList: [],\n engineeringNo: '',\n machineNo: '',\n machineName: '',\n tableData: [],\n isShowTableData: []\n }, (0, _defineProperty2.default)(_ref, \"orderStatus\", '寮�宸�'), (0, _defineProperty2.default)(_ref, \"selectedOrder\", ''), (0, _defineProperty2.default)(_ref, \"orderId\", 0), (0, _defineProperty2.default)(_ref, \"selectedIndexs\", []), (0, _defineProperty2.default)(_ref, \"isShow\", false), _ref;\n },\n created: function created() {\n //璋冭瘯浣跨敤鐨勪唬鐮乗n // this.machineNo = uni.getStorageSync('machineNo');\n // this.machineName = uni.getStorageSync('machineName');\n //\n // if (this.machineNo) {\n // this.getWomdaaIsShow();\n // }\n\n uni.clearStorageSync();\n this.checkForUpdate();\n\n //宸ユ帶鏈轰娇鐢ㄧ殑浠g爜\n this.getPrintInfo();\n },\n onLoad: function onLoad(options) {\n this.getMachineList();\n },\n onShow: function onShow() {\n this.refresh();\n },\n methods: (_methods = {\n onRowClick: function onRowClick(index) {\n this.selectedIndexs = [index]; // 鍗曢�塡n // 鎵嬪姩瑙﹀彂 selectionChange 浠ュ悓姝ュ閫夋\n this.selectionChange({\n detail: {\n index: index\n }\n });\n },\n checkForUpdate: function checkForUpdate() {\n var _this = this;\n this.$post({\n url: \"/DevMachine/getAppUpgradeInfo\",\n data: {}\n }).then(function (res) {\n var newVersion = res.data.version;\n var currentVersion = uni.getSystemInfoSync(); // 鑾峰彇褰撳墠 APK 鐗堟湰鍙穃n\n if (newVersion > currentVersion.appVersion) {\n uni.showModal({\n title: \"鍙戠幇鏂扮増鏈琝",\n content: \"鏄惁涓嬭浇鏈�鏂扮増鏈�?\",\n success: function success(modalRes) {\n if (modalRes.confirm) {\n _this.downloadNewApk(res.data.apkUrl);\n }\n }\n });\n //this.downloadNewApk(res.data.apkUrl);\n _this.updateChecked = true; // 鏍囪鏇存柊宸叉鏌ヨ繃\n // // 濡傛灉鏈夋柊鐗堟湰锛屽紑濮嬩笅杞絓n //download(res.data.apkUrl);\n }\n });\n },\n downloadNewApk: function downloadNewApk(apkUrl) {\n uni.showToast({\n title: \"寮�濮嬩笅杞芥洿鏂�...\",\n icon: \"none\",\n duration: 2000\n });\n uni.downloadFile({\n url: apkUrl,\n success: function success(res) {\n if (res.statusCode === 200) {\n plus.runtime.install(res.tempFilePath, {\n force: true\n }, function () {\n __f__(\"log\", \"瀹夎鎴愬姛锛岄噸鍚簲鐢╘", \" at pages/index.vue:391\");\n //plus.runtime.restart();\n //plus.runtime.quit();\n // uni.navigateBack()\n }, function (e) {\n __f__(\"error\", \"瀹夎澶辫触:\", e, \" at pages/index.vue:396\");\n });\n }\n },\n fail: function fail(err) {\n __f__(\"error\", \"涓嬭浇澶辫触:\", err, \" at pages/index.vue:401\");\n uni.showToast({\n title: \"涓嬭浇澶辫触锛岃妫�鏌ョ綉缁淺",\n icon: \"none\",\n duration: 2000\n });\n }\n });\n },\n refresh: function refresh() {\n this.getMachineList();\n this.getPrintInfo();\n this.getWomdaaIsShow();\n },\n getPrintInfo: function getPrintInfo() {\n var _this2 = this;\n var mac = \"\";\n mac = \"74:24:ca:4f:b2:c3\";\n this.$post({\n url: \"/DevMachine/GetDevMachineByPdaMac\",\n data: {\n pdaMac: mac\n }\n }).then(function (res) {\n var devMachine = res.data.tbBillList;\n _this2.machineNo = devMachine.machineNo;\n _this2.machineName = \"璋冭瘯妯″紡锛歕" + _this2.machineNo + \"鍙烽娇杞満\";\n uni.setStorageSync('machineNo', _this2.machineNo);\n uni.setStorageSync('printMac', devMachine.printMac);\n __f__(\"log\", devMachine.printMac, \" at pages/index.vue:433\");\n _this2.getWomdaaIsShow();\n });\n return;\n if (plus.os.name == \"Android\") {\n //鑾峰彇鎵嬫満MAC鍦板潃\n var Context = plus.android.importClass(\"android.content.Context\");\n var WifiManager = plus.android.importClass(\"android.net.wifi.WifiManager\");\n var wifiManager = plus.android.runtimeMainActivity().getSystemService(Context.WIFI_SERVICE);\n var WifiInfo = plus.android.importClass(\"android.net.wifi.WifiInfo\");\n var wifiInfo = wifiManager.getConnectionInfo();\n mac = wifiInfo.getMacAddress();\n\n //濡傛灉mac涓衡��02:00:00:00:00:00鈥濓紝鍒欏彲鑳芥槸瀹夊崜6.0浠ヤ笂鐗堟湰锛屽垯浣跨敤鍙︿竴绉嶆柟娉曡幏鍙杕ac鍦板潃\n if (mac == \"02:00:00:00:00:00\") {\n mac = this.getMacNew();\n }\n //濡傛灉mac浣跨敤鏂版柟娉曚緷鐒舵槸鈥�02:00:00:00:00:00鈥濆垯涓嶈繘琛屼繚瀛榎n if (mac == \"02:00:00:00:00:00\") {\n return;\n }\n uni.setStorageSync('pdaMac', mac);\n this.$post({\n url: \"/DevMachine/GetDevMachineByPdaMac\",\n data: {\n pdaMac: mac\n }\n }).then(function (res) {\n var devMachine = res.data.tbBillList;\n _this2.machineNo = devMachine.machineNo;\n _this2.machineName = \"褰撳墠鏈哄彴锛歕" + _this2.machineNo + \"鍙烽娇杞満\";\n uni.setStorageSync('machineNo', _this2.machineNo);\n uni.setStorageSync('printMac', devMachine.printMac);\n _this2.getWomdaaIsShow();\n });\n }\n },\n save: function save() {\n var _this3 = this;\n var data = this.selectedItems();\n if (data.length === 0) {\n this.$showMessage(\"璇烽�夋嫨涓�涓伐鍗昞");\n return;\n }\n if (data.length > 1) {\n this.$showMessage(\"涓�娆″彧鑳介�夊彇涓�涓伐鍗昞");\n return;\n }\n\n //let firstValue = data[0][\"moldId\"]; // 鑾峰彇绗竴涓璞$殑鎸囧畾灞炴�у�糪n\n //// 浣跨敤 every 鏂规硶妫�鏌ユ墍鏈夊璞$殑璇ュ睘鎬у�兼槸鍚︿竴鑷碶n //let flag = data.every(item => item[\"moldId\"] === firstValue);\n //if (!flag) {\n //\tthis.$showMessage(\"閫夊彇鐨刓" + data.length + \"涓伐鍗曚腑鐨勬ā鍏风紪鍙蜂笉涓�鑷碶");\n //\treturn;\n //}\n\n var orderSelect = [];\n data.forEach(function (s) {\n var entity = {\n orderId: s.id,\n orderNo: s.daa001\n };\n orderSelect.push(entity);\n });\n var editDate = this.formatDate(new Date());\n this.$post({\n url: \"/MesOrderSelect/Add\",\n data: {\n machineNo: this.machineNo,\n editDate: editDate,\n item: orderSelect\n }\n }).then(function (res) {\n if (res.data.tbBillList) {\n _this3.getWomdaaIsShow();\n uni.showToast({\n title: '淇濆瓨宸ュ崟鎴愬姛',\n //title: '灏嗘敞濉戞満寮�鍚堟ā鏁版竻0',\n //灏嗗�艰缃负 success 鎴栬�呯洿鎺ヤ笉鐢ㄥ啓icon杩欎釜鍙傛暟\n icon: 'success',\n //鏄剧ず鎸佺画鏃堕棿涓� 5绉抃n duration: 5000\n });\n }\n _this3.isShow = false;\n });\n },\n getMacNew: function getMacNew() {\n var str = \"\";\n try {\n if (plus.os.name == \"Android\") {\n var NetworkInterface = plus.android.importClass(\"java.net.NetworkInterface\");\n var networkInterface = NetworkInterface.getByName(\"wlan0\");\n var bytes = networkInterface.getHardwareAddress();\n\n //灏哹yte[] 杞崲鎴� String\n for (var i = 0; i < bytes.length; i++) {\n var tmp = \"\";\n var num = bytes[i];\n if (num < 0) {\n tmp = (255 + num + 1).toString(16);\n } else {\n tmp = num.toString(16);\n }\n if (tmp.length == 1) {\n tmp = \"0\" + tmp;\n }\n str += i == 0 ? tmp : \":\" + tmp;\n }\n }\n } catch (err) {\n str = \"02:00:00:00:00:00\";\n }\n return str;\n },\n cancel: function cancel() {\n var _this4 = this;\n if (!this.machineNo) {\n return;\n }\n\n // 鐩存帴鐢� flag 鍒ゆ柇\n if (this.hasBindedCutterFlag) {\n uni.showToast({\n title: '褰撳墠宸ュ崟宸茬粦瀹氬垁鍏凤紝涓嶈兘娓呯┖閲嶉��',\n icon: 'error',\n duration: 2000\n });\n return;\n }\n var editDate = this.formatDate(new Date());\n this.selectedIndexs = [];\n this.$post({\n url: \"/MesOrderSelect/Remove\",\n data: {\n machineNo: this.machineNo,\n editDate: editDate\n }\n }).then(function (res) {\n if (res.data.tbBillList > 0) {\n _this4.isShowTableData = [];\n }\n });\n },\n formatDate: function formatDate(date) {\n var year = date.getFullYear(); // 鑾峰彇骞翠唤\n var month = String(date.getMonth() + 1).padStart(2, '0'); // 鑾峰彇鏈堜唤骞惰ˉ闆禱n var day = String(date.getDate()).padStart(2, '0'); // 鑾峰彇鏃ユ湡骞惰ˉ闆禱n return \"\".concat(year, \"-\").concat(month, \"-\").concat(day); // 杩斿洖鏍煎紡鍖栧悗鐨勫瓧绗︿覆\n },\n selectionChange: function selectionChange(e) {\n // 鍗曢�夌洿鎺ヨ祴鍊糪n this.selectedIndexs = [e.detail.index];\n },\n selectedItems: function selectedItems() {\n var _this5 = this;\n return this.selectedIndexs.map(function (i) {\n return _this5.tableData[i];\n });\n },\n changeTab: function changeTab(index) {\n this.currentTab = index;\n // 褰撳垏鎹㈠埌宸ュ崟閫夋嫨椤甸潰(index === 7)鏃惰嚜鍔ㄥ埛鏂癨n if (index === 7) {\n this.refresh();\n }\n __f__(\"log\", index, \" at pages/index.vue:617\");\n },\n onMachineChange: function onMachineChange(event) {\n this.machineName = event;\n this.machineNo = this.machine[this.machineList.indexOf(event)].machineNo;\n uni.clearStorageSync();\n uni.setStorageSync('machineNo', this.machineNo);\n uni.setStorageSync('machineName', this.machineName);\n this.getWomdaaIsShow();\n },\n onEngineeringNoChange: function onEngineeringNoChange(event) {\n var orde = this.engineeringNoList[this.engineeringNoMapList.indexOf(event)];\n this.engineeringNo = orde.moldId;\n this.getWomdaa();\n },\n getMachineList: function getMachineList() {\n var _this6 = this;\n this.$post({\n url: \"/MesMachine/GetInjectionMachine\"\n }).then(function (res) {\n _this6.machine = res.data.tbBillList;\n _this6.machineList = _this6.machine.map(function (s) {\n return s.machineName;\n });\n });\n },\n //鑾峰彇琛ㄦ牸鐨勬暟鎹簮\n getWomdaaIsShow: function getWomdaaIsShow() {\n var _this7 = this;\n this.$post({\n url: \"/Womdaa/GetWomdaasByShow\",\n data: {\n machineNo: this.machineNo\n }\n }).then(function (res) {\n _this7.isShowTableData = res.data.tbBillList;\n\n // 鍙垽鏂涓�鏉★紙鍙厑璁镐竴鏉″伐鍗曪級\n var order = _this7.isShowTableData[0];\n var hasBindedCutter = false;\n if (order) {\n hasBindedCutter = order.outToolId && order.outToolId.toString().trim() !== '' || order.outToolCode && order.outToolCode.trim() !== '' || order.outToolName && order.outToolName.trim() !== '';\n }\n // 瀛樺偍鍒� data 鍙橀噺\n _this7.hasBindedCutterFlag = hasBindedCutter;\n if (_this7.isShowTableData.length == 1) {\n uni.setStorageSync('daa001', _this7.isShowTableData[0].daa001);\n uni.setStorageSync('id', _this7.isShowTableData[0].id);\n }\n });\n },\n isShowTab: function isShowTab() {\n if (this.isShowTableData.length > 0) {\n uni.showToast({\n title: '宸叉湁姝e湪鎿嶄綔鐨勫伐鍗曪紝涓嶈兘鍐嶆閫夋嫨',\n icon: 'error',\n duration: 2000\n });\n return;\n }\n this.isShow = true;\n // 榛樿閫変腑鈥滃緟寮�宸モ�漒n this.engineeringNo = '寰呭紑宸ャ�佹湭寮�宸ャ�佹殏鍋�';\n this.tableData = [];\n // 涓嬫媺妗嗗彧鏄剧ず鍚堝苟鍚庣殑鐘舵�佸拰鍏跺畠鐘舵�乗n this.engineeringNoMapList = ['寰呭紑宸ャ�佹湭寮�宸ャ�佹殏鍋�', '寮�宸�', '瀹屽伐'];\n // 榛樿鏄剧ず鈥滃緟寮�宸モ�濆伐鍗昞n this.getWomdaaByStatus();\n }\n }, (0, _defineProperty2.default)(_methods, \"onEngineeringNoChange\", function onEngineeringNoChange(status) {\n this.engineeringNo = status;\n this.getWomdaaByStatus();\n }), (0, _defineProperty2.default)(_methods, \"getWomdaa\", function getWomdaa() {\n var _this8 = this;\n var editDate = this.formatDate(new Date());\n this.$post({\n url: \"/Womdaa/GetWomdaasByMachine\",\n data: {\n machineNo: this.machineNo,\n editDate: editDate\n }\n }).then(function (res) {\n _this8.tableData = res.data.tbBillList;\n });\n }), (0, _defineProperty2.default)(_methods, \"getWomdaaByStatus\", function getWomdaaByStatus() {\n var _this9 = this;\n var editDate = this.formatDate(new Date());\n var statusArr = [];\n if (this.engineeringNo === '寰呭紑宸ャ�佹湭寮�宸ャ�佹殏鍋�') {\n statusArr = ['寰呭紑宸�', '鏈紑宸�', '鏆傚仠'];\n } else {\n statusArr = [this.engineeringNo];\n }\n this.$post({\n url: \"/Womdaa/GetWomdaasByEngineeringNo\",\n data: {\n machineNo: this.machineNo,\n orderStatus: statusArr,\n editDate: editDate\n }\n }).then(function (res) {\n _this9.tableData = res.data.tbBillList;\n });\n }), (0, _defineProperty2.default)(_methods, \"toDetail\", function toDetail(item) {\n this.orderId = item.id;\n this.selectedOrder = item.daa001;\n this.productCode = item.daa002; // 浜у搧缂栫爜\n this.productSpec = item.daa004; // 浜у搧瑙勬牸\n this.currentTab = 0;\n }), _methods),\n computed: {}\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 1)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaW5kZXgudnVlIl0sIm5hbWVzIjpbImNvbXBvbmVudHMiLCJUZWNobm9sb2d5IiwiV29ya09yZGVyIiwiV29ya09yZGVyUHJpbnQiLCJNYWNoaW5lIiwiTW9sZCIsIlVuaVRhYmxlIiwiV29ya09yZGVyU3RhdHVzIiwiUERGU2hvdyIsIlByaW50SW5pdCIsIlByaW50VGVzdCIsIkVxdWlwbWVudEluc3BlY3Rpb24iLCJkYXRhIiwib3JkZXJTdGF0dXMiLCJjdXJyZW50VGFiIiwicHJvZHVjdENvZGUiLCJwcm9kdWN0U3BlYyIsIm1hY2hpbmVMaXN0IiwibWFjaGluZSIsImVuZ2luZWVyaW5nTm9MaXN0IiwiZW5naW5lZXJpbmdOb01hcExpc3QiLCJlbmdpbmVlcmluZ05vIiwibWFjaGluZU5vIiwibWFjaGluZU5hbWUiLCJ0YWJsZURhdGEiLCJpc1Nob3dUYWJsZURhdGEiLCJjcmVhdGVkIiwidW5pIiwiY2xlYXJTdG9yYWdlU3luYyIsImNoZWNrRm9yVXBkYXRlIiwiZ2V0UHJpbnRJbmZvIiwib25Mb2FkIiwib3B0aW9ucyIsImdldE1hY2hpbmVMaXN0Iiwib25TaG93IiwicmVmcmVzaCIsIm1ldGhvZHMiLCJvblJvd0NsaWNrIiwiaW5kZXgiLCJzZWxlY3RlZEluZGV4cyIsInNlbGVjdGlvbkNoYW5nZSIsImRldGFpbCIsIiRwb3N0IiwidXJsIiwidGhlbiIsInJlcyIsIm5ld1ZlcnNpb24iLCJ2ZXJzaW9uIiwiY3VycmVudFZlcnNpb24iLCJnZXRTeXN0ZW1JbmZvU3luYyIsImFwcFZlcnNpb24iLCJzaG93TW9kYWwiLCJ0aXRsZSIsImNvbnRlbnQiLCJzdWNjZXNzIiwibW9kYWxSZXMiLCJjb25maXJtIiwiZG93bmxvYWROZXdBcGsiLCJhcGtVcmwiLCJ1cGRhdGVDaGVja2VkIiwic2hvd1RvYXN0IiwiaWNvbiIsImR1cmF0aW9uIiwiZG93bmxvYWRGaWxlIiwic3RhdHVzQ29kZSIsInBsdXMiLCJydW50aW1lIiwiaW5zdGFsbCIsInRlbXBGaWxlUGF0aCIsImZvcmNlIiwiZSIsImZhaWwiLCJlcnIiLCJnZXRXb21kYWFJc1Nob3ciLCJtYWMiLCJwZGFNYWMiLCJkZXZNYWNoaW5lIiwidGJCaWxsTGlzdCIsInNldFN0b3JhZ2VTeW5jIiwicHJpbnRNYWMiLCJvcyIsIm5hbWUiLCJDb250ZXh0IiwiYW5kcm9pZCIsImltcG9ydENsYXNzIiwiV2lmaU1hbmFnZXIiLCJ3aWZpTWFuYWdlciIsInJ1bnRpbWVNYWluQWN0aXZpdHkiLCJnZXRTeXN0ZW1TZXJ2aWNlIiwiV0lGSV9TRVJWSUNFIiwiV2lmaUluZm8iLCJ3aWZpSW5mbyIsImdldENvbm5lY3Rpb25JbmZvIiwiZ2V0TWFjQWRkcmVzcyIsImdldE1hY05ldyIsInNhdmUiLCJzZWxlY3RlZEl0ZW1zIiwibGVuZ3RoIiwiJHNob3dNZXNzYWdlIiwib3JkZXJTZWxlY3QiLCJmb3JFYWNoIiwicyIsImVudGl0eSIsIm9yZGVySWQiLCJpZCIsIm9yZGVyTm8iLCJkYWEwMDEiLCJwdXNoIiwiZWRpdERhdGUiLCJmb3JtYXREYXRlIiwiRGF0ZSIsIml0ZW0iLCJpc1Nob3ciLCJzdHIiLCJOZXR3b3JrSW50ZXJmYWNlIiwibmV0d29ya0ludGVyZmFjZSIsImdldEJ5TmFtZSIsImJ5dGVzIiwiZ2V0SGFyZHdhcmVBZGRyZXNzIiwiaSIsInRtcCIsIm51bSIsInRvU3RyaW5nIiwiY2FuY2VsIiwiaGFzQmluZGVkQ3V0dGVyRmxhZyIsImRhdGUiLCJ5ZWFyIiwiZ2V0RnVsbFllYXIiLCJtb250aCIsIlN0cmluZyIsImdldE1vbnRoIiwicGFkU3RhcnQiLCJkYXkiLCJnZXREYXRlIiwibWFwIiwiY2hhbmdlVGFiIiwib25NYWNoaW5lQ2hhbmdlIiwiZXZlbnQiLCJpbmRleE9mIiwib25FbmdpbmVlcmluZ05vQ2hhbmdlIiwib3JkZSIsIm1vbGRJZCIsImdldFdvbWRhYSIsIm9yZGVyIiwiaGFzQmluZGVkQ3V0dGVyIiwib3V0VG9vbElkIiwidHJpbSIsIm91dFRvb2xDb2RlIiwib3V0VG9vbE5hbWUiLCJpc1Nob3dUYWIiLCJnZXRXb21kYWFCeVN0YXR1cyIsInN0YXR1cyIsInN0YXR1c0FyciIsInNlbGVjdGVkT3JkZXIiLCJkYWEwMDIiLCJkYWEwMDQiLCJjb21wdXRlZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFxUUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUF3RTtBQUFBLGVBRXhEO0VBQ2RBLFVBQVUsRUFBRTtJQUNYQyxVQUFVLEVBQVZBLG1CQUFVO0lBQ1ZDLFNBQVMsRUFBVEEsa0JBQVM7SUFDVEMsY0FBYyxFQUFkQSx1QkFBYztJQUNkQyxPQUFPLEVBQVBBLGdCQUFPO0lBQ1BDLElBQUksRUFBSkEsYUFBSTtJQUNKQyxRQUFRLEVBQVJBLGlCQUFRO0lBQ1JDLGVBQWUsRUFBZkEsd0JBQWU7SUFDZkMsT0FBTyxFQUFQQSxnQkFBTztJQUNQQyxTQUFTLEVBQVRBLGtCQUFTO0lBQ1RDLFNBQVMsRUFBVEEsa0JBQVM7SUFDVEMsbUJBQW1CLEVBQW5CQTtFQUNELENBQUM7RUFDREMsSUFBSSxrQkFBRztJQUFBO0lBQ047TUFDYUMsV0FBVyxFQUFFLEVBQUU7TUFBRTtNQUM3QkMsVUFBVSxFQUFFLENBQUM7TUFFREMsV0FBVyxFQUFFLEVBQUU7TUFBRTtNQUNqQkMsV0FBVyxFQUFFLEVBQUU7TUFBRTs7TUFFN0JDLFdBQVcsRUFBRSxFQUFFO01BRWZDLE9BQU8sRUFBRSxFQUFFO01BRVhDLGlCQUFpQixFQUFFLEVBQUU7TUFDckJDLG9CQUFvQixFQUFFLEVBQUU7TUFDeEJDLGFBQWEsRUFBRSxFQUFFO01BRWpCQyxTQUFTLEVBQUUsRUFBRTtNQUNiQyxXQUFXLEVBQUUsRUFBRTtNQUVmQyxTQUFTLEVBQUUsRUFBRTtNQUNiQyxlQUFlLEVBQUU7SUFBRSxzREFFTixJQUFJLHdEQUNGLEVBQUUsa0RBQ1IsQ0FBQyx5REFFTSxFQUFFLGlEQUVWLEtBQUs7RUFFZixDQUFDO0VBQ0RDLE9BQU8scUJBQUc7SUFFVDtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTs7SUFFQUMsR0FBRyxDQUFDQyxnQkFBZ0IsRUFBRTtJQUV0QixJQUFJLENBQUNDLGNBQWMsRUFBRTs7SUFFckI7SUFDQSxJQUFJLENBQUNDLFlBQVksRUFBRTtFQUVwQixDQUFDO0VBQ0RDLE1BQU0sa0JBQUNDLE9BQU8sRUFBRTtJQUNmLElBQUksQ0FBQ0MsY0FBYyxFQUFFO0VBQ3RCLENBQUM7RUFDREMsTUFBTSxvQkFBRztJQUNSLElBQUksQ0FBQ0MsT0FBTyxFQUFFO0VBQ2YsQ0FBQztFQUNEQyxPQUFPO0lBQ0dDLFVBQVUsc0JBQUNDLEtBQUssRUFBRTtNQUNkLElBQUksQ0FBQ0MsY0FBYyxHQUFHLENBQUNELEtBQUssQ0FBQyxDQUFDLENBQUM7TUFDL0I7TUFDQSxJQUFJLENBQUNFLGVBQWUsQ0FBQztRQUFFQyxNQUFNLEVBQUU7VUFBRUgsS0FBSyxFQUFMQTtRQUFNO01BQUUsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFDVlQsY0FBYyw0QkFBRztNQUFBO01BQ2hCLElBQUksQ0FBQ2EsS0FBSyxDQUFDO1FBQ1ZDLEdBQUcsRUFBRSwrQkFBK0I7UUFDcEMvQixJQUFJLEVBQUUsQ0FBQztNQUNSLENBQUMsQ0FBQyxDQUFDZ0MsSUFBSSxDQUFDLFVBQUFDLEdBQUcsRUFBSTtRQUVkLElBQUlDLFVBQVUsR0FBR0QsR0FBRyxDQUFDakMsSUFBSSxDQUFDbUMsT0FBTztRQUNqQyxJQUFJQyxjQUFjLEdBQUdyQixHQUFHLENBQUNzQixpQkFBaUIsRUFBRSxDQUFDLENBQUM7O1FBRTlDLElBQUlILFVBQVUsR0FBR0UsY0FBYyxDQUFDRSxVQUFVLEVBQUU7VUFDM0N2QixHQUFHLENBQUN3QixTQUFTLENBQUM7WUFDYkMsS0FBSyxFQUFFLE9BQU87WUFDZEMsT0FBTyxFQUFFLFdBQVc7WUFDcEJDLE9BQU8sRUFBRSxpQkFBQ0MsUUFBUSxFQUFLO2NBQ3RCLElBQUlBLFFBQVEsQ0FBQ0MsT0FBTyxFQUFFO2dCQUNyQixLQUFJLENBQUNDLGNBQWMsQ0FBQ1osR0FBRyxDQUFDakMsSUFBSSxDQUFDOEMsTUFBTSxDQUFDO2NBQ3JDO1lBQ0Q7VUFDRCxDQUFDLENBQUM7VUFDRjtVQUNBLEtBQUksQ0FBQ0MsYUFBYSxHQUFHLElBQUksQ0FBQyxDQUFDO1VBQzNCO1VBQ0E7UUFDRDtNQUNELENBQUMsQ0FBQztJQUVILENBQUM7SUFFREYsY0FBYywwQkFBQ0MsTUFBTSxFQUFFO01BQ3RCL0IsR0FBRyxDQUFDaUMsU0FBUyxDQUFDO1FBQ2JSLEtBQUssRUFBRSxXQUFXO1FBQ2xCUyxJQUFJLEVBQUUsTUFBTTtRQUNaQyxRQUFRLEVBQUU7TUFDWCxDQUFDLENBQUM7TUFFRm5DLEdBQUcsQ0FBQ29DLFlBQVksQ0FBQztRQUNoQnBCLEdBQUcsRUFBRWUsTUFBTTtRQUNYSixPQUFPLEVBQUUsaUJBQUNULEdBQUcsRUFBSztVQUNqQixJQUFJQSxHQUFHLENBQUNtQixVQUFVLEtBQUssR0FBRyxFQUFFO1lBQzNCQyxJQUFJLENBQUNDLE9BQU8sQ0FBQ0MsT0FBTyxDQUFDdEIsR0FBRyxDQUFDdUIsWUFBWSxFQUFFO2NBQ3RDQyxLQUFLLEVBQUU7WUFDUixDQUFDLEVBQUUsWUFBVztjQUNiLGFBQVksV0FBVztjQUN2QjtjQUNBO2NBQ0E7WUFDRCxDQUFDLEVBQUUsVUFBU0MsQ0FBQyxFQUFFO2NBQ2QsZUFBYyxPQUFPLEVBQUVBLENBQUM7WUFDekIsQ0FBQyxDQUFDO1VBQ0g7UUFDRCxDQUFDO1FBQ0RDLElBQUksRUFBRSxjQUFDQyxHQUFHLEVBQUs7VUFDZCxlQUFjLE9BQU8sRUFBRUEsR0FBRztVQUMxQjdDLEdBQUcsQ0FBQ2lDLFNBQVMsQ0FBQztZQUNiUixLQUFLLEVBQUUsWUFBWTtZQUNuQlMsSUFBSSxFQUFFLE1BQU07WUFDWkMsUUFBUSxFQUFFO1VBQ1gsQ0FBQyxDQUFDO1FBQ0g7TUFDRCxDQUFDLENBQUM7SUFDSCxDQUFDO0lBRUQzQixPQUFPLHFCQUFHO01BQ1QsSUFBSSxDQUFDRixjQUFjLEVBQUU7TUFDckIsSUFBSSxDQUFDSCxZQUFZLEVBQUU7TUFDbkIsSUFBSSxDQUFDMkMsZUFBZSxFQUFFO0lBQ3ZCLENBQUM7SUFDRDNDLFlBQVksMEJBQUc7TUFBQTtNQUNkLElBQUk0QyxHQUFHLEdBQUcsRUFBRTtNQUVaQSxHQUFHLEdBQUcsbUJBQW1CO01BQ3pCLElBQUksQ0FBQ2hDLEtBQUssQ0FBQztRQUNWQyxHQUFHLEVBQUUsbUNBQW1DO1FBQ3hDL0IsSUFBSSxFQUFFO1VBQ0wrRCxNQUFNLEVBQUVEO1FBQ1Q7TUFDRCxDQUFDLENBQUMsQ0FBQzlCLElBQUksQ0FBQyxVQUFBQyxHQUFHLEVBQUk7UUFDZCxJQUFJK0IsVUFBVSxHQUFHL0IsR0FBRyxDQUFDakMsSUFBSSxDQUFDaUUsVUFBVTtRQUNwQyxNQUFJLENBQUN2RCxTQUFTLEdBQUdzRCxVQUFVLENBQUN0RCxTQUFTO1FBQ3RCLE1BQUksQ0FBQ0MsV0FBVyxHQUFHLE9BQU8sR0FBRyxNQUFJLENBQUNELFNBQVMsR0FBRyxNQUFNO1FBRW5FSyxHQUFHLENBQUNtRCxjQUFjLENBQUMsV0FBVyxFQUFFLE1BQUksQ0FBQ3hELFNBQVMsQ0FBQztRQUMvQ0ssR0FBRyxDQUFDbUQsY0FBYyxDQUFDLFVBQVUsRUFBRUYsVUFBVSxDQUFDRyxRQUFRLENBQUM7UUFFbkQsYUFBWUgsVUFBVSxDQUFDRyxRQUFRO1FBRS9CLE1BQUksQ0FBQ04sZUFBZSxFQUFFO01BQ3ZCLENBQUMsQ0FBQztNQUNGO01BR0MsSUFBSVIsSUFBSSxDQUFDZSxFQUFFLENBQUNDLElBQUksSUFBSSxTQUFTLEVBQUU7UUFDOUI7UUFDQSxJQUFJQyxPQUFPLEdBQUdqQixJQUFJLENBQUNrQixPQUFPLENBQUNDLFdBQVcsQ0FBQyx5QkFBeUIsQ0FBQztRQUNqRSxJQUFJQyxXQUFXLEdBQUdwQixJQUFJLENBQUNrQixPQUFPLENBQUNDLFdBQVcsQ0FBQyw4QkFBOEIsQ0FBQztRQUMxRSxJQUFJRSxXQUFXLEdBQUdyQixJQUFJLENBQUNrQixPQUFPLENBQUNJLG1CQUFtQixFQUFFLENBQUNDLGdCQUFnQixDQUFDTixPQUFPLENBQUNPLFlBQVksQ0FBQztRQUMzRixJQUFJQyxRQUFRLEdBQUd6QixJQUFJLENBQUNrQixPQUFPLENBQUNDLFdBQVcsQ0FBQywyQkFBMkIsQ0FBQztRQUNwRSxJQUFJTyxRQUFRLEdBQUdMLFdBQVcsQ0FBQ00saUJBQWlCLEVBQUU7UUFDOUNsQixHQUFHLEdBQUdpQixRQUFRLENBQUNFLGFBQWEsRUFBRTs7UUFFOUI7UUFDQSxJQUFJbkIsR0FBRyxJQUFJLG1CQUFtQixFQUFFO1VBQy9CQSxHQUFHLEdBQUcsSUFBSSxDQUFDb0IsU0FBUyxFQUFFO1FBQ3ZCO1FBQ0E7UUFDQSxJQUFJcEIsR0FBRyxJQUFJLG1CQUFtQixFQUFFO1VBQy9CO1FBQ0Q7UUFDQS9DLEdBQUcsQ0FBQ21ELGNBQWMsQ0FBQyxRQUFRLEVBQUVKLEdBQUcsQ0FBQztRQUVqQyxJQUFJLENBQUNoQyxLQUFLLENBQUM7VUFDVkMsR0FBRyxFQUFFLG1DQUFtQztVQUN4Qy9CLElBQUksRUFBRTtZQUNMK0QsTUFBTSxFQUFFRDtVQUNUO1FBQ0QsQ0FBQyxDQUFDLENBQUM5QixJQUFJLENBQUMsVUFBQUMsR0FBRyxFQUFJO1VBQ2QsSUFBSStCLFVBQVUsR0FBRy9CLEdBQUcsQ0FBQ2pDLElBQUksQ0FBQ2lFLFVBQVU7VUFDcEMsTUFBSSxDQUFDdkQsU0FBUyxHQUFHc0QsVUFBVSxDQUFDdEQsU0FBUztVQUNyQyxNQUFJLENBQUNDLFdBQVcsR0FBRyxPQUFPLEdBQUcsTUFBSSxDQUFDRCxTQUFTLEdBQUcsTUFBTTtVQUVwREssR0FBRyxDQUFDbUQsY0FBYyxDQUFDLFdBQVcsRUFBRSxNQUFJLENBQUN4RCxTQUFTLENBQUM7VUFDL0NLLEdBQUcsQ0FBQ21ELGNBQWMsQ0FBQyxVQUFVLEVBQUVGLFVBQVUsQ0FBQ0csUUFBUSxDQUFDO1VBR25ELE1BQUksQ0FBQ04sZUFBZSxFQUFFO1FBRXZCLENBQUMsQ0FBQztNQUNIO0lBQ0YsQ0FBQztJQUNEc0IsSUFBSSxrQkFBRztNQUFBO01BQ04sSUFBSW5GLElBQUksR0FBRyxJQUFJLENBQUNvRixhQUFhLEVBQUU7TUFFL0IsSUFBSXBGLElBQUksQ0FBQ3FGLE1BQU0sS0FBSyxDQUFDLEVBQUU7UUFDUCxJQUFJLENBQUNDLFlBQVksQ0FBQyxTQUFTLENBQUM7UUFDM0M7TUFDRDtNQUVZLElBQUl0RixJQUFJLENBQUNxRixNQUFNLEdBQUcsQ0FBQyxFQUFFO1FBQ2pCLElBQUksQ0FBQ0MsWUFBWSxDQUFDLFlBQVksQ0FBQztRQUM5QztNQUNEOztNQUVBOztNQUVBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTs7TUFFQSxJQUFJQyxXQUFXLEdBQUcsRUFBRTtNQUVwQnZGLElBQUksQ0FBQ3dGLE9BQU8sQ0FBQyxVQUFBQyxDQUFDLEVBQUk7UUFDakIsSUFBSUMsTUFBTSxHQUFHO1VBQ1pDLE9BQU8sRUFBRUYsQ0FBQyxDQUFDRyxFQUFFO1VBQ2JDLE9BQU8sRUFBRUosQ0FBQyxDQUFDSztRQUNaLENBQUM7UUFDRFAsV0FBVyxDQUFDUSxJQUFJLENBQUNMLE1BQU0sQ0FBQztNQUN6QixDQUFDLENBQUM7TUFFRixJQUFJTSxRQUFRLEdBQUcsSUFBSSxDQUFDQyxVQUFVLENBQUMsSUFBSUMsSUFBSSxFQUFFLENBQUM7TUFFMUMsSUFBSSxDQUFDcEUsS0FBSyxDQUFDO1FBQ1ZDLEdBQUcsRUFBRSxxQkFBcUI7UUFDMUIvQixJQUFJLEVBQUU7VUFDTFUsU0FBUyxFQUFFLElBQUksQ0FBQ0EsU0FBUztVQUN6QnNGLFFBQVEsRUFBRUEsUUFBUTtVQUNsQkcsSUFBSSxFQUFFWjtRQUNQO01BQ0QsQ0FBQyxDQUFDLENBQUN2RCxJQUFJLENBQUMsVUFBQUMsR0FBRyxFQUFJO1FBQ2QsSUFBSUEsR0FBRyxDQUFDakMsSUFBSSxDQUFDaUUsVUFBVSxFQUFFO1VBQ3hCLE1BQUksQ0FBQ0osZUFBZSxFQUFFO1VBQ3RCOUMsR0FBRyxDQUFDaUMsU0FBUyxDQUFDO1lBQ1FSLEtBQUssRUFBRSxRQUFRO1lBQ3BDO1lBQ0E7WUFDQVMsSUFBSSxFQUFFLFNBQVM7WUFDZjtZQUNBQyxRQUFRLEVBQUU7VUFDWCxDQUFDLENBQUM7UUFDSDtRQUNBLE1BQUksQ0FBQ2tELE1BQU0sR0FBRyxLQUFLO01BQ3BCLENBQUMsQ0FBQztJQUVILENBQUM7SUFDRGxCLFNBQVMsdUJBQUc7TUFDWCxJQUFJbUIsR0FBRyxHQUFHLEVBQUU7TUFDWixJQUFJO1FBQ0gsSUFBSWhELElBQUksQ0FBQ2UsRUFBRSxDQUFDQyxJQUFJLElBQUksU0FBUyxFQUFFO1VBQzlCLElBQUlpQyxnQkFBZ0IsR0FBR2pELElBQUksQ0FBQ2tCLE9BQU8sQ0FBQ0MsV0FBVyxDQUFDLDJCQUEyQixDQUFDO1VBQzVFLElBQUkrQixnQkFBZ0IsR0FBR0QsZ0JBQWdCLENBQUNFLFNBQVMsQ0FBQyxPQUFPLENBQUM7VUFDMUQsSUFBSUMsS0FBSyxHQUFHRixnQkFBZ0IsQ0FBQ0csa0JBQWtCLEVBQUU7O1VBRWpEO1VBQ0EsS0FBSyxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxFQUFFQSxDQUFDLEdBQUdGLEtBQUssQ0FBQ3BCLE1BQU0sRUFBRXNCLENBQUMsRUFBRSxFQUFFO1lBQ3RDLElBQUlDLEdBQUcsR0FBRyxFQUFFO1lBQ1osSUFBSUMsR0FBRyxHQUFHSixLQUFLLENBQUNFLENBQUMsQ0FBQztZQUNsQixJQUFJRSxHQUFHLEdBQUcsQ0FBQyxFQUFFO2NBQ1pELEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBR0MsR0FBRyxHQUFHLENBQUMsRUFBRUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUNuQyxDQUFDLE1BQU07Y0FDTkYsR0FBRyxHQUFHQyxHQUFHLENBQUNDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDdkI7WUFDQSxJQUFJRixHQUFHLENBQUN2QixNQUFNLElBQUksQ0FBQyxFQUFFO2NBQ3BCdUIsR0FBRyxHQUFHLEdBQUcsR0FBR0EsR0FBRztZQUNoQjtZQUNBUCxHQUFHLElBQUtNLENBQUMsSUFBSSxDQUFDLEdBQUtDLEdBQUcsR0FBSyxHQUFHLEdBQUdBLEdBQUk7VUFDdEM7UUFDRDtNQUNELENBQUMsQ0FBQyxPQUFPaEQsR0FBRyxFQUFFO1FBQ2J5QyxHQUFHLEdBQUcsbUJBQW1CO01BQzFCO01BQ0EsT0FBT0EsR0FBRztJQUNYLENBQUM7SUFFUVUsTUFBTSxvQkFBRztNQUFBO01BQ0wsSUFBSSxDQUFDLElBQUksQ0FBQ3JHLFNBQVMsRUFBRTtRQUNqQjtNQUNKOztNQUVBO01BQ0EsSUFBSSxJQUFJLENBQUNzRyxtQkFBbUIsRUFBRTtRQUMxQmpHLEdBQUcsQ0FBQ2lDLFNBQVMsQ0FBQztVQUNWUixLQUFLLEVBQUUsa0JBQWtCO1VBQ3pCUyxJQUFJLEVBQUUsT0FBTztVQUNiQyxRQUFRLEVBQUU7UUFDZCxDQUFDLENBQUM7UUFDRjtNQUNKO01BRUEsSUFBSThDLFFBQVEsR0FBRyxJQUFJLENBQUNDLFVBQVUsQ0FBQyxJQUFJQyxJQUFJLEVBQUUsQ0FBQztNQUMxQyxJQUFJLENBQUN2RSxjQUFjLEdBQUcsRUFBRTtNQUV4QixJQUFJLENBQUNHLEtBQUssQ0FBQztRQUNQQyxHQUFHLEVBQUUsd0JBQXdCO1FBQzdCL0IsSUFBSSxFQUFFO1VBQ0ZVLFNBQVMsRUFBRSxJQUFJLENBQUNBLFNBQVM7VUFDekJzRixRQUFRLEVBQUVBO1FBQ2Q7TUFDSixDQUFDLENBQUMsQ0FBQ2hFLElBQUksQ0FBQyxVQUFBQyxHQUFHLEVBQUk7UUFDWCxJQUFJQSxHQUFHLENBQUNqQyxJQUFJLENBQUNpRSxVQUFVLEdBQUcsQ0FBQyxFQUFFO1VBQ3pCLE1BQUksQ0FBQ3BELGVBQWUsR0FBRyxFQUFFO1FBQzdCO01BQ0osQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUVWb0YsVUFBVSxzQkFBQ2dCLElBQUksRUFBRTtNQUNoQixJQUFJQyxJQUFJLEdBQUdELElBQUksQ0FBQ0UsV0FBVyxFQUFFLENBQUMsQ0FBQztNQUMvQixJQUFJQyxLQUFLLEdBQUdDLE1BQU0sQ0FBQ0osSUFBSSxDQUFDSyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQ0MsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO01BQzFELElBQUlDLEdBQUcsR0FBR0gsTUFBTSxDQUFDSixJQUFJLENBQUNRLE9BQU8sRUFBRSxDQUFDLENBQUNGLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztNQUNuRCxpQkFBVUwsSUFBSSxjQUFJRSxLQUFLLGNBQUlJLEdBQUcsRUFBRyxDQUFDO0lBQ25DLENBQUM7SUFDRDVGLGVBQWUsMkJBQUM4QixDQUFDLEVBQUU7TUFDTjtNQUNBLElBQUksQ0FBQy9CLGNBQWMsR0FBRyxDQUFDK0IsQ0FBQyxDQUFDN0IsTUFBTSxDQUFDSCxLQUFLLENBQUM7SUFDbkQsQ0FBQztJQUVEMEQsYUFBYSwyQkFBRztNQUFBO01BQ2YsT0FBTyxJQUFJLENBQUN6RCxjQUFjLENBQUMrRixHQUFHLENBQUMsVUFBQWYsQ0FBQztRQUFBLE9BQUksTUFBSSxDQUFDL0YsU0FBUyxDQUFDK0YsQ0FBQyxDQUFDO01BQUEsRUFBQztJQUN2RCxDQUFDO0lBR0RnQixTQUFTLHFCQUFDakcsS0FBSyxFQUFFO01BQ2hCLElBQUksQ0FBQ3hCLFVBQVUsR0FBR3dCLEtBQUs7TUFDdkI7TUFDQSxJQUFJQSxLQUFLLEtBQUssQ0FBQyxFQUFFO1FBQ2hCLElBQUksQ0FBQ0gsT0FBTyxFQUFFO01BQ2Y7TUFDQSxhQUFZRyxLQUFLO0lBQ2xCLENBQUM7SUFDRGtHLGVBQWUsMkJBQUNDLEtBQUssRUFBRTtNQUV0QixJQUFJLENBQUNsSCxXQUFXLEdBQUdrSCxLQUFLO01BRXhCLElBQUksQ0FBQ25ILFNBQVMsR0FBRyxJQUFJLENBQUNKLE9BQU8sQ0FBQyxJQUFJLENBQUNELFdBQVcsQ0FBQ3lILE9BQU8sQ0FBQ0QsS0FBSyxDQUFDLENBQUMsQ0FBQ25ILFNBQVM7TUFFeEVLLEdBQUcsQ0FBQ0MsZ0JBQWdCLEVBQUU7TUFFdEJELEdBQUcsQ0FBQ21ELGNBQWMsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDeEQsU0FBUyxDQUFDO01BQy9DSyxHQUFHLENBQUNtRCxjQUFjLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQ3ZELFdBQVcsQ0FBQztNQUVuRCxJQUFJLENBQUNrRCxlQUFlLEVBQUU7SUFDdkIsQ0FBQztJQUNEa0UscUJBQXFCLGlDQUFDRixLQUFLLEVBQUU7TUFFNUIsSUFBSUcsSUFBSSxHQUFHLElBQUksQ0FBQ3pILGlCQUFpQixDQUFDLElBQUksQ0FBQ0Msb0JBQW9CLENBQUNzSCxPQUFPLENBQUNELEtBQUssQ0FBQyxDQUFDO01BRTNFLElBQUksQ0FBQ3BILGFBQWEsR0FBR3VILElBQUksQ0FBQ0MsTUFBTTtNQUVoQyxJQUFJLENBQUNDLFNBQVMsRUFBRTtJQUVqQixDQUFDO0lBQ0Q3RyxjQUFjLDRCQUFHO01BQUE7TUFDaEIsSUFBSSxDQUFDUyxLQUFLLENBQUM7UUFDVkMsR0FBRyxFQUFFO01BQ04sQ0FBQyxDQUFDLENBQUNDLElBQUksQ0FBQyxVQUFBQyxHQUFHLEVBQUk7UUFDZCxNQUFJLENBQUMzQixPQUFPLEdBQUcyQixHQUFHLENBQUNqQyxJQUFJLENBQUNpRSxVQUFVO1FBQ2xDLE1BQUksQ0FBQzVELFdBQVcsR0FBRyxNQUFJLENBQUNDLE9BQU8sQ0FBQ29ILEdBQUcsQ0FBQyxVQUFBakMsQ0FBQztVQUFBLE9BQUlBLENBQUMsQ0FBQzlFLFdBQVc7UUFBQSxFQUFDO01BQ3hELENBQUMsQ0FBQztJQUNILENBQUM7SUFDUTtJQUNBa0QsZUFBZSw2QkFBRztNQUFBO01BQ2QsSUFBSSxDQUFDL0IsS0FBSyxDQUFDO1FBQ1BDLEdBQUcsRUFBRSwwQkFBMEI7UUFDL0IvQixJQUFJLEVBQUU7VUFDRlUsU0FBUyxFQUFFLElBQUksQ0FBQ0E7UUFDcEI7TUFDSixDQUFDLENBQUMsQ0FBQ3NCLElBQUksQ0FBQyxVQUFBQyxHQUFHLEVBQUk7UUFDWCxNQUFJLENBQUNwQixlQUFlLEdBQUdvQixHQUFHLENBQUNqQyxJQUFJLENBQUNpRSxVQUFVOztRQUUxQztRQUNBLElBQU1rRSxLQUFLLEdBQUcsTUFBSSxDQUFDdEgsZUFBZSxDQUFDLENBQUMsQ0FBQztRQUNyQyxJQUFJdUgsZUFBZSxHQUFHLEtBQUs7UUFDM0IsSUFBSUQsS0FBSyxFQUFFO1VBQ1BDLGVBQWUsR0FDVkQsS0FBSyxDQUFDRSxTQUFTLElBQUlGLEtBQUssQ0FBQ0UsU0FBUyxDQUFDdkIsUUFBUSxFQUFFLENBQUN3QixJQUFJLEVBQUUsS0FBSyxFQUFFLElBQzNESCxLQUFLLENBQUNJLFdBQVcsSUFBSUosS0FBSyxDQUFDSSxXQUFXLENBQUNELElBQUksRUFBRSxLQUFLLEVBQUcsSUFDckRILEtBQUssQ0FBQ0ssV0FBVyxJQUFJTCxLQUFLLENBQUNLLFdBQVcsQ0FBQ0YsSUFBSSxFQUFFLEtBQUssRUFBRztRQUM5RDtRQUNBO1FBQ0EsTUFBSSxDQUFDdEIsbUJBQW1CLEdBQUdvQixlQUFlO1FBRTFDLElBQUksTUFBSSxDQUFDdkgsZUFBZSxDQUFDd0UsTUFBTSxJQUFJLENBQUMsRUFBRTtVQUNsQ3RFLEdBQUcsQ0FBQ21ELGNBQWMsQ0FBQyxRQUFRLEVBQUUsTUFBSSxDQUFDckQsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDaUYsTUFBTSxDQUFDO1VBQzVEL0UsR0FBRyxDQUFDbUQsY0FBYyxDQUFDLElBQUksRUFBRSxNQUFJLENBQUNyRCxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMrRSxFQUFFLENBQUM7UUFDeEQ7TUFDSixDQUFDLENBQUM7SUFDTixDQUFDO0lBRUQ2QyxTQUFTLHVCQUFHO01BQ1IsSUFBSSxJQUFJLENBQUM1SCxlQUFlLENBQUN3RSxNQUFNLEdBQUcsQ0FBQyxFQUFFO1FBQ2pDdEUsR0FBRyxDQUFDaUMsU0FBUyxDQUFDO1VBQ1ZSLEtBQUssRUFBRSxrQkFBa0I7VUFDekJTLElBQUksRUFBRSxPQUFPO1VBQ2JDLFFBQVEsRUFBRTtRQUNkLENBQUMsQ0FBQztRQUNGO01BQ0o7TUFFQSxJQUFJLENBQUNrRCxNQUFNLEdBQUcsSUFBSTtNQUNsQjtNQUNBLElBQUksQ0FBQzNGLGFBQWEsR0FBRyxZQUFZO01BQ2pDLElBQUksQ0FBQ0csU0FBUyxHQUFHLEVBQUU7TUFDbkI7TUFDQSxJQUFJLENBQUNKLG9CQUFvQixHQUFHLENBQ3hCLFlBQVksRUFDWixJQUFJLEVBQ0osSUFBSSxDQUNQO01BQ0Q7TUFDQSxJQUFJLENBQUNrSSxpQkFBaUIsRUFBRTtJQUM1QjtFQUFDLG1HQUVxQkMsTUFBTSxFQUFFO0lBQzFCLElBQUksQ0FBQ2xJLGFBQWEsR0FBR2tJLE1BQU07SUFDM0IsSUFBSSxDQUFDRCxpQkFBaUIsRUFBRTtFQUM1QixDQUFDLDZFQUNFO0lBQUE7SUFFWCxJQUFJMUMsUUFBUSxHQUFHLElBQUksQ0FBQ0MsVUFBVSxDQUFDLElBQUlDLElBQUksRUFBRSxDQUFDO0lBRTFDLElBQUksQ0FBQ3BFLEtBQUssQ0FBQztNQUNWQyxHQUFHLEVBQUUsNkJBQTZCO01BQ2xDL0IsSUFBSSxFQUFFO1FBQ0xVLFNBQVMsRUFBRSxJQUFJLENBQUNBLFNBQVM7UUFDekJzRixRQUFRLEVBQUVBO01BQ1g7SUFDRCxDQUFDLENBQUMsQ0FBQ2hFLElBQUksQ0FBQyxVQUFBQyxHQUFHLEVBQUk7TUFDZCxNQUFJLENBQUNyQixTQUFTLEdBQUdxQixHQUFHLENBQUNqQyxJQUFJLENBQUNpRSxVQUFVO0lBQ3JDLENBQUMsQ0FBQztFQUNILENBQUMsNkZBRTRCO0lBQUE7SUFDaEIsSUFBSStCLFFBQVEsR0FBRyxJQUFJLENBQUNDLFVBQVUsQ0FBQyxJQUFJQyxJQUFJLEVBQUUsQ0FBQztJQUMxQyxJQUFJMEMsU0FBUyxHQUFHLEVBQUU7SUFDbEIsSUFBSSxJQUFJLENBQUNuSSxhQUFhLEtBQUssWUFBWSxFQUFFO01BQ3JDbUksU0FBUyxHQUFHLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUM7SUFDcEMsQ0FBQyxNQUFNO01BQ0hBLFNBQVMsR0FBRyxDQUFDLElBQUksQ0FBQ25JLGFBQWEsQ0FBQztJQUNwQztJQUNBLElBQUksQ0FBQ3FCLEtBQUssQ0FBQztNQUNQQyxHQUFHLEVBQUUsbUNBQW1DO01BQ3hDL0IsSUFBSSxFQUFFO1FBQ0ZVLFNBQVMsRUFBRSxJQUFJLENBQUNBLFNBQVM7UUFDekJULFdBQVcsRUFBRTJJLFNBQVM7UUFDdEI1QyxRQUFRLEVBQUVBO01BQ2Q7SUFDSixDQUFDLENBQUMsQ0FBQ2hFLElBQUksQ0FBQyxVQUFBQyxHQUFHLEVBQUk7TUFDWCxNQUFJLENBQUNyQixTQUFTLEdBQUdxQixHQUFHLENBQUNqQyxJQUFJLENBQUNpRSxVQUFVO0lBQ3hDLENBQUMsQ0FBQztFQUNOLENBQUMseUVBQ0RrQyxJQUFJLEVBQUU7SUFDZCxJQUFJLENBQUNSLE9BQU8sR0FBR1EsSUFBSSxDQUFDUCxFQUFFO0lBQ3RCLElBQUksQ0FBQ2lELGFBQWEsR0FBRzFDLElBQUksQ0FBQ0wsTUFBTTtJQUNwQixJQUFJLENBQUMzRixXQUFXLEdBQUdnRyxJQUFJLENBQUMyQyxNQUFNLENBQUMsQ0FBQztJQUNoQyxJQUFJLENBQUMxSSxXQUFXLEdBQUcrRixJQUFJLENBQUM0QyxNQUFNLENBQUMsQ0FBQztJQUM1QyxJQUFJLENBQUM3SSxVQUFVLEdBQUcsQ0FBQztFQUNwQixDQUFDLFlBQ0Q7RUFDRDhJLFFBQVEsRUFBRSxDQUFDO0FBQ1osQ0FBQztBQUFBLDJCIiwiZmlsZSI6IjUyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuLy9cclxuXHJcbmltcG9ydCBXb3JrT3JkZXJTdGF0dXMgZnJvbSAnLi4vY29tcG9uZW50cy9Xb3JrT3JkZXJTdGF0dXMudnVlJzsgLy8g56Gu5L+d6Lev5b6E5q2j56GuXHJcbmltcG9ydCBVbmlUYWJsZSBmcm9tIFwiLi4vdW5pX21vZHVsZXMvdW5pLXRhYmxlL2NvbXBvbmVudHMvdW5pLXRhYmxlL3VuaS10YWJsZS52dWVcIjtcclxuaW1wb3J0IE1vbGQgZnJvbSBcIi4uL2NvbXBvbmVudHMvbW9sZC52dWVcIjtcclxuaW1wb3J0IE1hY2hpbmUgZnJvbSBcIi4uL2NvbXBvbmVudHMvbWFjaGluZS52dWVcIjtcclxuaW1wb3J0IFdvcmtPcmRlclByaW50IGZyb20gXCIuLi9jb21wb25lbnRzL1dvcmtPcmRlclByaW50LnZ1ZVwiO1xyXG5pbXBvcnQgV29ya09yZGVyIGZyb20gXCIuLi9jb21wb25lbnRzL1dvcmtPcmRlci52dWVcIjtcclxuaW1wb3J0IFRlY2hub2xvZ3kgZnJvbSBcIi4uL2NvbXBvbmVudHMvVGVjaG5vbG9neS52dWVcIjtcclxuaW1wb3J0IFBERlNob3cgZnJvbSBcIi4uL2NvbXBvbmVudHMvUERGU2hvdy52dWVcIjtcclxuaW1wb3J0IFByaW50SW5pdCBmcm9tIFwiLi4vY29tcG9uZW50cy9QcmludEluaXQudnVlXCI7XHJcbmltcG9ydCBQcmludFRlc3QgZnJvbSBcIi4uL2NvbXBvbmVudHMvUHJpbnRUZXN0LnZ1ZVwiO1xyXG5pbXBvcnQgRXF1aXBtZW50SW5zcGVjdGlvbiBmcm9tIFwiLi4vY29tcG9uZW50cy9FcXVpcG1lbnRJbnNwZWN0aW9uLnZ1ZVwiO1xyXG5cclxuXHRleHBvcnQgZGVmYXVsdCB7XHJcblx0XHRjb21wb25lbnRzOiB7XHJcblx0XHRcdFRlY2hub2xvZ3ksXHJcblx0XHRcdFdvcmtPcmRlcixcclxuXHRcdFx0V29ya09yZGVyUHJpbnQsXHJcblx0XHRcdE1hY2hpbmUsXHJcblx0XHRcdE1vbGQsXHJcblx0XHRcdFVuaVRhYmxlLFxyXG5cdFx0XHRXb3JrT3JkZXJTdGF0dXMsXHJcblx0XHRcdFBERlNob3csXHJcblx0XHRcdFByaW50SW5pdCxcclxuXHRcdFx0UHJpbnRUZXN0LFxyXG5cdFx0XHRFcXVpcG1lbnRJbnNwZWN0aW9uXHJcblx0XHR9LFxyXG5cdFx0ZGF0YSgpIHtcclxuXHRcdFx0cmV0dXJuIHtcclxuICAgICAgICAgICAgICAgIG9yZGVyU3RhdHVzOiAnJywgLy8g6buY6K6k5YWo6YOoXHJcblx0XHRcdFx0Y3VycmVudFRhYjogNyxcclxuXHJcbiAgICAgICAgICAgICAgICBwcm9kdWN0Q29kZTogJycsIC8vIOS6p+WTgee8lueggVxyXG4gICAgICAgICAgICAgICAgcHJvZHVjdFNwZWM6ICcnLCAvLyDkuqflk4Hop4TmoLxcclxuXHJcblx0XHRcdFx0bWFjaGluZUxpc3Q6IFtdLFxyXG5cclxuXHRcdFx0XHRtYWNoaW5lOiBbXSxcclxuXHJcblx0XHRcdFx0ZW5naW5lZXJpbmdOb0xpc3Q6IFtdLFxyXG5cdFx0XHRcdGVuZ2luZWVyaW5nTm9NYXBMaXN0OiBbXSxcclxuXHRcdFx0XHRlbmdpbmVlcmluZ05vOiAnJyxcclxuXHJcblx0XHRcdFx0bWFjaGluZU5vOiAnJyxcclxuXHRcdFx0XHRtYWNoaW5lTmFtZTogJycsXHJcblxyXG5cdFx0XHRcdHRhYmxlRGF0YTogW10sXHJcblx0XHRcdFx0aXNTaG93VGFibGVEYXRhOiBbXSxcclxuXHJcblx0XHRcdFx0b3JkZXJTdGF0dXM6ICflvIDlt6UnLFxyXG5cdFx0XHRcdHNlbGVjdGVkT3JkZXI6ICcnLFxyXG5cdFx0XHRcdG9yZGVySWQ6IDAsXHJcblxyXG5cdFx0XHRcdHNlbGVjdGVkSW5kZXhzOiBbXSxcclxuXHJcblx0XHRcdFx0aXNTaG93OiBmYWxzZSxcclxuXHRcdFx0fTtcclxuXHRcdH0sXHJcblx0XHRjcmVhdGVkKCkge1xyXG5cclxuXHRcdFx0Ly/osIPor5Xkvb/nlKjnmoTku6PnoIFcclxuXHRcdFx0Ly8gdGhpcy5tYWNoaW5lTm8gPSB1bmkuZ2V0U3RvcmFnZVN5bmMoJ21hY2hpbmVObycpO1xyXG5cdFx0XHQvLyB0aGlzLm1hY2hpbmVOYW1lID0gdW5pLmdldFN0b3JhZ2VTeW5jKCdtYWNoaW5lTmFtZScpO1xyXG5cdFx0XHQvL1xyXG5cdFx0XHQvLyBpZiAodGhpcy5tYWNoaW5lTm8pIHtcclxuXHRcdFx0Ly8gICB0aGlzLmdldFdvbWRhYUlzU2hvdygpO1xyXG5cdFx0XHQvLyB9XHJcblxyXG5cdFx0XHR1bmkuY2xlYXJTdG9yYWdlU3luYygpO1xyXG5cdFx0XHRcclxuXHRcdFx0dGhpcy5jaGVja0ZvclVwZGF0ZSgpO1xyXG5cdFx0XHRcclxuXHRcdFx0Ly/lt6XmjqfmnLrkvb/nlKjnmoTku6PnoIFcclxuXHRcdFx0dGhpcy5nZXRQcmludEluZm8oKTtcclxuXHRcdFx0XHJcblx0XHR9LFxyXG5cdFx0b25Mb2FkKG9wdGlvbnMpIHtcclxuXHRcdFx0dGhpcy5nZXRNYWNoaW5lTGlzdCgpO1xyXG5cdFx0fSxcclxuXHRcdG9uU2hvdygpIHtcclxuXHRcdFx0dGhpcy5yZWZyZXNoKCk7XHJcblx0XHR9LFxyXG5cdFx0bWV0aG9kczoge1xyXG4gICAgICAgICAgICBvblJvd0NsaWNrKGluZGV4KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSW5kZXhzID0gW2luZGV4XTsgLy8g5Y2V6YCJXHJcbiAgICAgICAgICAgICAgICAvLyDmiYvliqjop6blj5Egc2VsZWN0aW9uQ2hhbmdlIOS7peWQjOatpeWkjemAieahhlxyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UoeyBkZXRhaWw6IHsgaW5kZXggfSB9KTtcclxuICAgICAgICAgICAgfSxcclxuXHRcdFx0Y2hlY2tGb3JVcGRhdGUoKSB7XHJcblx0XHRcdFx0dGhpcy4kcG9zdCh7XHJcblx0XHRcdFx0XHR1cmw6IFwiL0Rldk1hY2hpbmUvZ2V0QXBwVXBncmFkZUluZm9cIixcclxuXHRcdFx0XHRcdGRhdGE6IHt9XHJcblx0XHRcdFx0fSkudGhlbihyZXMgPT4ge1xyXG5cdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRsZXQgbmV3VmVyc2lvbiA9IHJlcy5kYXRhLnZlcnNpb247XHJcblx0XHRcdFx0XHRsZXQgY3VycmVudFZlcnNpb24gPSB1bmkuZ2V0U3lzdGVtSW5mb1N5bmMoKTsgLy8g6I635Y+W5b2T5YmNIEFQSyDniYjmnKzlj7dcclxuXHRcdFx0XHRcdCBcclxuXHRcdFx0XHRcdGlmIChuZXdWZXJzaW9uID4gY3VycmVudFZlcnNpb24uYXBwVmVyc2lvbikge1xyXG5cdFx0XHRcdFx0XHR1bmkuc2hvd01vZGFsKHtcclxuXHRcdFx0XHRcdFx0XHR0aXRsZTogXCLlj5HnjrDmlrDniYjmnKxcIixcclxuXHRcdFx0XHRcdFx0XHRjb250ZW50OiBcIuaYr+WQpuS4i+i9veacgOaWsOeJiOacrD9cIixcclxuXHRcdFx0XHRcdFx0XHRzdWNjZXNzOiAobW9kYWxSZXMpID0+IHtcclxuXHRcdFx0XHRcdFx0XHRcdGlmIChtb2RhbFJlcy5jb25maXJtKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHRoaXMuZG93bmxvYWROZXdBcGsocmVzLmRhdGEuYXBrVXJsKTtcclxuXHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0XHQvL3RoaXMuZG93bmxvYWROZXdBcGsocmVzLmRhdGEuYXBrVXJsKTtcclxuXHRcdFx0XHRcdFx0dGhpcy51cGRhdGVDaGVja2VkID0gdHJ1ZTsgLy8g5qCH6K6w5pu05paw5bey5qOA5p+l6L+HXHJcblx0XHRcdFx0XHRcdC8vICAgICAgLy8g5aaC5p6c5pyJ5paw54mI5pys77yM5byA5aeL5LiL6L29XHJcblx0XHRcdFx0XHRcdC8vZG93bmxvYWQocmVzLmRhdGEuYXBrVXJsKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KVxyXG5cdFx0XHRcdFxyXG5cdFx0XHR9LFxyXG5cdFx0XHRcclxuXHRcdFx0ZG93bmxvYWROZXdBcGsoYXBrVXJsKSB7XHJcblx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XHJcblx0XHRcdFx0XHR0aXRsZTogXCLlvIDlp4vkuIvovb3mm7TmlrAuLi5cIixcclxuXHRcdFx0XHRcdGljb246IFwibm9uZVwiLFxyXG5cdFx0XHRcdFx0ZHVyYXRpb246IDIwMDBcclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0XHJcblx0XHRcdFx0dW5pLmRvd25sb2FkRmlsZSh7XHJcblx0XHRcdFx0XHR1cmw6IGFwa1VybCxcclxuXHRcdFx0XHRcdHN1Y2Nlc3M6IChyZXMpID0+IHtcclxuXHRcdFx0XHRcdFx0aWYgKHJlcy5zdGF0dXNDb2RlID09PSAyMDApIHtcclxuXHRcdFx0XHRcdFx0XHRwbHVzLnJ1bnRpbWUuaW5zdGFsbChyZXMudGVtcEZpbGVQYXRoLCB7XHJcblx0XHRcdFx0XHRcdFx0XHRmb3JjZTogdHJ1ZVxyXG5cdFx0XHRcdFx0XHRcdH0sIGZ1bmN0aW9uKCkge1xyXG5cdFx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coXCLlronoo4XmiJDlip/vvIzph43lkK/lupTnlKhcIik7XHJcblx0XHRcdFx0XHRcdFx0XHQvL3BsdXMucnVudGltZS5yZXN0YXJ0KCk7XHJcblx0XHRcdFx0XHRcdFx0XHQvL3BsdXMucnVudGltZS5xdWl0KCk7XHJcblx0XHRcdFx0XHRcdFx0XHQvLyB1bmkubmF2aWdhdGVCYWNrKClcclxuXHRcdFx0XHRcdFx0XHR9LCBmdW5jdGlvbihlKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRjb25zb2xlLmVycm9yKFwi5a6J6KOF5aSx6LSlOlwiLCBlKTtcclxuXHRcdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdGZhaWw6IChlcnIpID0+IHtcclxuXHRcdFx0XHRcdFx0Y29uc29sZS5lcnJvcihcIuS4i+i9veWksei0pTpcIiwgZXJyKTtcclxuXHRcdFx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XHJcblx0XHRcdFx0XHRcdFx0dGl0bGU6IFwi5LiL6L295aSx6LSl77yM6K+35qOA5p+l572R57ucXCIsXHJcblx0XHRcdFx0XHRcdFx0aWNvbjogXCJub25lXCIsXHJcblx0XHRcdFx0XHRcdFx0ZHVyYXRpb246IDIwMDBcclxuXHRcdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdH0sXHJcblx0XHRcdFxyXG5cdFx0XHRyZWZyZXNoKCkge1xyXG5cdFx0XHRcdHRoaXMuZ2V0TWFjaGluZUxpc3QoKTtcclxuXHRcdFx0XHR0aGlzLmdldFByaW50SW5mbygpO1xyXG5cdFx0XHRcdHRoaXMuZ2V0V29tZGFhSXNTaG93KCk7XHJcblx0XHRcdH0sXHJcblx0XHRcdGdldFByaW50SW5mbygpIHtcclxuXHRcdFx0XHR2YXIgbWFjID0gXCJcIjtcclxuXHRcdFx0XHRcclxuXHRcdFx0XHRtYWMgPSBcIjc0OjI0OmNhOjRmOmIyOmMzXCI7XHJcblx0XHRcdFx0dGhpcy4kcG9zdCh7XHJcblx0XHRcdFx0XHR1cmw6IFwiL0Rldk1hY2hpbmUvR2V0RGV2TWFjaGluZUJ5UGRhTWFjXCIsXHJcblx0XHRcdFx0XHRkYXRhOiB7XHJcblx0XHRcdFx0XHRcdHBkYU1hYzogbWFjLFxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pLnRoZW4ocmVzID0+IHtcclxuXHRcdFx0XHRcdGxldCBkZXZNYWNoaW5lID0gcmVzLmRhdGEudGJCaWxsTGlzdDtcclxuXHRcdFx0XHRcdHRoaXMubWFjaGluZU5vID0gZGV2TWFjaGluZS5tYWNoaW5lTm87XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tYWNoaW5lTmFtZSA9IFwi6LCD6K+V5qih5byP77yaXCIgKyB0aGlzLm1hY2hpbmVObyArIFwi5Y+36b2/6L2u5py6XCJcclxuXHJcblx0XHRcdFx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ21hY2hpbmVObycsIHRoaXMubWFjaGluZU5vKTtcclxuXHRcdFx0XHRcdHVuaS5zZXRTdG9yYWdlU3luYygncHJpbnRNYWMnLCBkZXZNYWNoaW5lLnByaW50TWFjKTtcclxuXHJcblx0XHRcdFx0XHRjb25zb2xlLmxvZyhkZXZNYWNoaW5lLnByaW50TWFjKTtcclxuXHJcblx0XHRcdFx0XHR0aGlzLmdldFdvbWRhYUlzU2hvdygpO1xyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHRcdHJldHVybjtcclxuXHRcdFx0XHRcclxuXHRcdFx0XHRcclxuXHQgXHRcdFx0aWYgKHBsdXMub3MubmFtZSA9PSBcIkFuZHJvaWRcIikge1xyXG5cdCBcdFx0XHRcdC8v6I635Y+W5omL5py6TUFD5Zyw5Z2AXHJcblx0IFx0XHRcdFx0dmFyIENvbnRleHQgPSBwbHVzLmFuZHJvaWQuaW1wb3J0Q2xhc3MoXCJhbmRyb2lkLmNvbnRlbnQuQ29udGV4dFwiKTtcclxuXHQgXHRcdFx0XHR2YXIgV2lmaU1hbmFnZXIgPSBwbHVzLmFuZHJvaWQuaW1wb3J0Q2xhc3MoXCJhbmRyb2lkLm5ldC53aWZpLldpZmlNYW5hZ2VyXCIpO1xyXG5cdCBcdFx0XHRcdHZhciB3aWZpTWFuYWdlciA9IHBsdXMuYW5kcm9pZC5ydW50aW1lTWFpbkFjdGl2aXR5KCkuZ2V0U3lzdGVtU2VydmljZShDb250ZXh0LldJRklfU0VSVklDRSk7XHJcblx0IFx0XHRcdFx0dmFyIFdpZmlJbmZvID0gcGx1cy5hbmRyb2lkLmltcG9ydENsYXNzKFwiYW5kcm9pZC5uZXQud2lmaS5XaWZpSW5mb1wiKTtcclxuXHQgXHRcdFx0XHR2YXIgd2lmaUluZm8gPSB3aWZpTWFuYWdlci5nZXRDb25uZWN0aW9uSW5mbygpO1xyXG5cdCBcdFx0XHRcdG1hYyA9IHdpZmlJbmZvLmdldE1hY0FkZHJlc3MoKTtcclxuXHRcdFx0XHRcdFxyXG5cdCBcdFx0XHRcdC8v5aaC5p6cbWFj5Li64oCcMDI6MDA6MDA6MDA6MDA6MDDigJ3vvIzliJnlj6/og73mmK/lronljZM2LjDku6XkuIrniYjmnKzvvIzliJnkvb/nlKjlj6bkuIDnp43mlrnms5Xojrflj5ZtYWPlnLDlnYBcclxuXHQgXHRcdFx0XHRpZiAobWFjID09IFwiMDI6MDA6MDA6MDA6MDA6MDBcIikge1xyXG5cdCBcdFx0XHRcdFx0bWFjID0gdGhpcy5nZXRNYWNOZXcoKTtcclxuXHQgXHRcdFx0XHR9XHJcblx0IFx0XHRcdFx0Ly/lpoLmnpxtYWPkvb/nlKjmlrDmlrnms5Xkvp3nhLbmmK/igJwwMjowMDowMDowMDowMDowMOKAneWImeS4jei/m+ihjOS/neWtmFxyXG5cdCBcdFx0XHRcdGlmIChtYWMgPT0gXCIwMjowMDowMDowMDowMDowMFwiKSB7XHJcblx0IFx0XHRcdFx0XHRyZXR1cm47XHJcblx0IFx0XHRcdFx0fVxyXG5cdCBcdFx0XHRcdHVuaS5zZXRTdG9yYWdlU3luYygncGRhTWFjJywgbWFjKTtcclxuXHJcblx0IFx0XHRcdFx0dGhpcy4kcG9zdCh7XHJcblx0IFx0XHRcdFx0XHR1cmw6IFwiL0Rldk1hY2hpbmUvR2V0RGV2TWFjaGluZUJ5UGRhTWFjXCIsXHJcblx0IFx0XHRcdFx0XHRkYXRhOiB7XHJcblx0IFx0XHRcdFx0XHRcdHBkYU1hYzogbWFjLFxyXG5cdCBcdFx0XHRcdFx0fVxyXG5cdCBcdFx0XHRcdH0pLnRoZW4ocmVzID0+IHtcclxuXHQgXHRcdFx0XHRcdGxldCBkZXZNYWNoaW5lID0gcmVzLmRhdGEudGJCaWxsTGlzdDtcclxuXHQgXHRcdFx0XHRcdHRoaXMubWFjaGluZU5vID0gZGV2TWFjaGluZS5tYWNoaW5lTm87XHJcblx0IFx0XHRcdFx0XHR0aGlzLm1hY2hpbmVOYW1lID0gXCLlvZPliY3mnLrlj7DvvJpcIiArIHRoaXMubWFjaGluZU5vICsgXCLlj7fpvb/ova7mnLpcIjtcclxuXHJcblx0IFx0XHRcdFx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ21hY2hpbmVObycsIHRoaXMubWFjaGluZU5vKTtcclxuXHQgXHRcdFx0XHRcdHVuaS5zZXRTdG9yYWdlU3luYygncHJpbnRNYWMnLCBkZXZNYWNoaW5lLnByaW50TWFjKTtcclxuIFxyXG5cclxuXHQgXHRcdFx0XHRcdHRoaXMuZ2V0V29tZGFhSXNTaG93KCk7XHJcblxyXG5cdCBcdFx0XHRcdH0pO1xyXG5cdCBcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHRcdHNhdmUoKSB7XHJcblx0XHRcdFx0bGV0IGRhdGEgPSB0aGlzLnNlbGVjdGVkSXRlbXMoKTtcclxuXHJcblx0XHRcdFx0aWYgKGRhdGEubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy4kc2hvd01lc3NhZ2UoXCLor7fpgInmi6nkuIDkuKrlt6XljZVcIik7XHJcblx0XHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdFx0fVxyXG5cclxuICAgICAgICAgICAgICAgIGlmIChkYXRhLmxlbmd0aCA+IDEpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLiRzaG93TWVzc2FnZShcIuS4gOasoeWPquiDvemAieWPluS4gOS4quW3peWNlVwiKTtcclxuXHRcdFx0XHRcdHJldHVybjtcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdC8vbGV0IGZpcnN0VmFsdWUgPSBkYXRhWzBdW1wibW9sZElkXCJdOyAvLyDojrflj5bnrKzkuIDkuKrlr7nosaHnmoTmjIflrprlsZ7mgKflgLxcclxuXHJcblx0XHRcdFx0Ly8vLyDkvb/nlKggZXZlcnkg5pa55rOV5qOA5p+l5omA5pyJ5a+56LGh55qE6K+l5bGe5oCn5YC85piv5ZCm5LiA6Ie0XHJcblx0XHRcdFx0Ly9sZXQgZmxhZyA9IGRhdGEuZXZlcnkoaXRlbSA9PiBpdGVtW1wibW9sZElkXCJdID09PSBmaXJzdFZhbHVlKTtcclxuXHRcdFx0XHQvL2lmICghZmxhZykge1xyXG5cdFx0XHRcdC8vXHR0aGlzLiRzaG93TWVzc2FnZShcIumAieWPlueahFwiICsgZGF0YS5sZW5ndGggKyBcIuS4quW3peWNleS4reeahOaooeWFt+e8luWPt+S4jeS4gOiHtFwiKTtcclxuXHRcdFx0XHQvL1x0cmV0dXJuO1xyXG5cdFx0XHRcdC8vfVxyXG5cclxuXHRcdFx0XHRsZXQgb3JkZXJTZWxlY3QgPSBbXTtcclxuXHJcblx0XHRcdFx0ZGF0YS5mb3JFYWNoKHMgPT4ge1xyXG5cdFx0XHRcdFx0bGV0IGVudGl0eSA9IHtcclxuXHRcdFx0XHRcdFx0b3JkZXJJZDogcy5pZCxcclxuXHRcdFx0XHRcdFx0b3JkZXJObzogcy5kYWEwMDEsXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRvcmRlclNlbGVjdC5wdXNoKGVudGl0eSk7XHJcblx0XHRcdFx0fSk7XHJcblxyXG5cdFx0XHRcdGxldCBlZGl0RGF0ZSA9IHRoaXMuZm9ybWF0RGF0ZShuZXcgRGF0ZSgpKTtcclxuXHJcblx0XHRcdFx0dGhpcy4kcG9zdCh7XHJcblx0XHRcdFx0XHR1cmw6IFwiL01lc09yZGVyU2VsZWN0L0FkZFwiLFxyXG5cdFx0XHRcdFx0ZGF0YToge1xyXG5cdFx0XHRcdFx0XHRtYWNoaW5lTm86IHRoaXMubWFjaGluZU5vLFxyXG5cdFx0XHRcdFx0XHRlZGl0RGF0ZTogZWRpdERhdGUsXHJcblx0XHRcdFx0XHRcdGl0ZW06IG9yZGVyU2VsZWN0XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSkudGhlbihyZXMgPT4ge1xyXG5cdFx0XHRcdFx0aWYgKHJlcy5kYXRhLnRiQmlsbExpc3QpIHtcclxuXHRcdFx0XHRcdFx0dGhpcy5nZXRXb21kYWFJc1Nob3coKTtcclxuXHRcdFx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ+S/neWtmOW3peWNleaIkOWKnycsXHJcblx0XHRcdFx0XHRcdFx0Ly90aXRsZTogJ+WwhuazqOWhkeacuuW8gOWQiOaooeaVsOa4hTAnLFxyXG5cdFx0XHRcdFx0XHRcdC8v5bCG5YC86K6+572u5Li6IHN1Y2Nlc3Mg5oiW6ICF55u05o6l5LiN55So5YaZaWNvbui/meS4quWPguaVsFxyXG5cdFx0XHRcdFx0XHRcdGljb246ICdzdWNjZXNzJyxcclxuXHRcdFx0XHRcdFx0XHQvL+aYvuekuuaMgee7reaXtumXtOS4uiA156eSXHJcblx0XHRcdFx0XHRcdFx0ZHVyYXRpb246IDUwMDBcclxuXHRcdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR0aGlzLmlzU2hvdyA9IGZhbHNlO1xyXG5cdFx0XHRcdH0pXHJcblxyXG5cdFx0XHR9LFxyXG5cdFx0XHRnZXRNYWNOZXcoKSB7XHJcblx0XHRcdFx0dmFyIHN0ciA9IFwiXCI7XHJcblx0XHRcdFx0dHJ5IHtcclxuXHRcdFx0XHRcdGlmIChwbHVzLm9zLm5hbWUgPT0gXCJBbmRyb2lkXCIpIHtcclxuXHRcdFx0XHRcdFx0dmFyIE5ldHdvcmtJbnRlcmZhY2UgPSBwbHVzLmFuZHJvaWQuaW1wb3J0Q2xhc3MoXCJqYXZhLm5ldC5OZXR3b3JrSW50ZXJmYWNlXCIpO1xyXG5cdFx0XHRcdFx0XHR2YXIgbmV0d29ya0ludGVyZmFjZSA9IE5ldHdvcmtJbnRlcmZhY2UuZ2V0QnlOYW1lKFwid2xhbjBcIik7XHJcblx0XHRcdFx0XHRcdHZhciBieXRlcyA9IG5ldHdvcmtJbnRlcmZhY2UuZ2V0SGFyZHdhcmVBZGRyZXNzKCk7XHJcblx0XHRcdFxyXG5cdFx0XHRcdFx0XHQvL+WwhmJ5dGVbXSDovazmjaLmiJAgU3RyaW5nXHJcblx0XHRcdFx0XHRcdGZvciAodmFyIGkgPSAwOyBpIDwgYnl0ZXMubGVuZ3RoOyBpKyspIHtcclxuXHRcdFx0XHRcdFx0XHR2YXIgdG1wID0gXCJcIjtcclxuXHRcdFx0XHRcdFx0XHR2YXIgbnVtID0gYnl0ZXNbaV07XHJcblx0XHRcdFx0XHRcdFx0aWYgKG51bSA8IDApIHtcclxuXHRcdFx0XHRcdFx0XHRcdHRtcCA9ICgyNTUgKyBudW0gKyAxKS50b1N0cmluZygxNik7XHJcblx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRcdHRtcCA9IG51bS50b1N0cmluZygxNik7XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdGlmICh0bXAubGVuZ3RoID09IDEpIHtcclxuXHRcdFx0XHRcdFx0XHRcdHRtcCA9IFwiMFwiICsgdG1wO1xyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRzdHIgKz0gKGkgPT0gMCkgPyAodG1wKSA6IChcIjpcIiArIHRtcCk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9IGNhdGNoIChlcnIpIHtcclxuXHRcdFx0XHRcdHN0ciA9IFwiMDI6MDA6MDA6MDA6MDA6MDBcIjtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0cmV0dXJuIHN0cjtcclxuXHRcdFx0fSxcclxuXHJcbiAgICAgICAgICAgIGNhbmNlbCgpIHtcclxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5tYWNoaW5lTm8pIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgLy8g55u05o6l55SoIGZsYWcg5Yik5patXHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5oYXNCaW5kZWRDdXR0ZXJGbGFnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdW5pLnNob3dUb2FzdCh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiAn5b2T5YmN5bel5Y2V5bey57uR5a6a5YiA5YW377yM5LiN6IO95riF56m66YeN6YCJJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogJ2Vycm9yJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZHVyYXRpb246IDIwMDBcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgbGV0IGVkaXREYXRlID0gdGhpcy5mb3JtYXREYXRlKG5ldyBEYXRlKCkpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEluZGV4cyA9IFtdO1xyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMuJHBvc3Qoe1xyXG4gICAgICAgICAgICAgICAgICAgIHVybDogXCIvTWVzT3JkZXJTZWxlY3QvUmVtb3ZlXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBtYWNoaW5lTm86IHRoaXMubWFjaGluZU5vLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBlZGl0RGF0ZTogZWRpdERhdGVcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgfSkudGhlbihyZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXMuZGF0YS50YkJpbGxMaXN0ID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlzU2hvd1RhYmxlRGF0YSA9IFtdO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9LFxyXG5cclxuXHRcdFx0Zm9ybWF0RGF0ZShkYXRlKSB7XHJcblx0XHRcdFx0bGV0IHllYXIgPSBkYXRlLmdldEZ1bGxZZWFyKCk7IC8vIOiOt+WPluW5tOS7vVxyXG5cdFx0XHRcdGxldCBtb250aCA9IFN0cmluZyhkYXRlLmdldE1vbnRoKCkgKyAxKS5wYWRTdGFydCgyLCAnMCcpOyAvLyDojrflj5bmnIjku73lubbooaXpm7ZcclxuXHRcdFx0XHRsZXQgZGF5ID0gU3RyaW5nKGRhdGUuZ2V0RGF0ZSgpKS5wYWRTdGFydCgyLCAnMCcpOyAvLyDojrflj5bml6XmnJ/lubbooaXpm7ZcclxuXHRcdFx0XHRyZXR1cm4gYCR7eWVhcn0tJHttb250aH0tJHtkYXl9YDsgLy8g6L+U5Zue5qC85byP5YyW5ZCO55qE5a2X56ym5LiyXHJcblx0XHRcdH0sXHJcblx0XHRcdHNlbGVjdGlvbkNoYW5nZShlKSB7XHJcbiAgICAgICAgICAgICAgICAvLyDljZXpgInnm7TmjqXotYvlgLxcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleHMgPSBbZS5kZXRhaWwuaW5kZXhdO1xyXG5cdFx0XHR9LFxyXG5cclxuXHRcdFx0c2VsZWN0ZWRJdGVtcygpIHtcclxuXHRcdFx0XHRyZXR1cm4gdGhpcy5zZWxlY3RlZEluZGV4cy5tYXAoaSA9PiB0aGlzLnRhYmxlRGF0YVtpXSlcclxuXHRcdFx0fSxcclxuXHJcblxyXG5cdFx0XHRjaGFuZ2VUYWIoaW5kZXgpIHtcclxuXHRcdFx0XHR0aGlzLmN1cnJlbnRUYWIgPSBpbmRleDtcclxuXHRcdFx0XHQvLyDlvZPliIfmjaLliLDlt6XljZXpgInmi6npobXpnaIoaW5kZXggPT09IDcp5pe26Ieq5Yqo5Yi35pawXHJcblx0XHRcdFx0aWYgKGluZGV4ID09PSA3KSB7XHJcblx0XHRcdFx0XHR0aGlzLnJlZnJlc2goKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0Y29uc29sZS5sb2coaW5kZXgpO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRvbk1hY2hpbmVDaGFuZ2UoZXZlbnQpIHtcclxuXHJcblx0XHRcdFx0dGhpcy5tYWNoaW5lTmFtZSA9IGV2ZW50O1xyXG5cclxuXHRcdFx0XHR0aGlzLm1hY2hpbmVObyA9IHRoaXMubWFjaGluZVt0aGlzLm1hY2hpbmVMaXN0LmluZGV4T2YoZXZlbnQpXS5tYWNoaW5lTm87XHJcblxyXG5cdFx0XHRcdHVuaS5jbGVhclN0b3JhZ2VTeW5jKCk7XHJcblxyXG5cdFx0XHRcdHVuaS5zZXRTdG9yYWdlU3luYygnbWFjaGluZU5vJywgdGhpcy5tYWNoaW5lTm8pO1xyXG5cdFx0XHRcdHVuaS5zZXRTdG9yYWdlU3luYygnbWFjaGluZU5hbWUnLCB0aGlzLm1hY2hpbmVOYW1lKTtcclxuXHJcblx0XHRcdFx0dGhpcy5nZXRXb21kYWFJc1Nob3coKTtcclxuXHRcdFx0fSxcclxuXHRcdFx0b25FbmdpbmVlcmluZ05vQ2hhbmdlKGV2ZW50KSB7XHJcblxyXG5cdFx0XHRcdGxldCBvcmRlID0gdGhpcy5lbmdpbmVlcmluZ05vTGlzdFt0aGlzLmVuZ2luZWVyaW5nTm9NYXBMaXN0LmluZGV4T2YoZXZlbnQpXTtcclxuXHJcblx0XHRcdFx0dGhpcy5lbmdpbmVlcmluZ05vID0gb3JkZS5tb2xkSWQ7XHJcblxyXG5cdFx0XHRcdHRoaXMuZ2V0V29tZGFhKCk7XHJcblxyXG5cdFx0XHR9LFxyXG5cdFx0XHRnZXRNYWNoaW5lTGlzdCgpIHtcclxuXHRcdFx0XHR0aGlzLiRwb3N0KHtcclxuXHRcdFx0XHRcdHVybDogXCIvTWVzTWFjaGluZS9HZXRJbmplY3Rpb25NYWNoaW5lXCIsXHJcblx0XHRcdFx0fSkudGhlbihyZXMgPT4ge1xyXG5cdFx0XHRcdFx0dGhpcy5tYWNoaW5lID0gcmVzLmRhdGEudGJCaWxsTGlzdDtcclxuXHRcdFx0XHRcdHRoaXMubWFjaGluZUxpc3QgPSB0aGlzLm1hY2hpbmUubWFwKHMgPT4gcy5tYWNoaW5lTmFtZSk7XHJcblx0XHRcdFx0fSlcclxuXHRcdFx0fSxcclxuICAgICAgICAgICAgLy/ojrflj5booajmoLznmoTmlbDmja7mupBcclxuICAgICAgICAgICAgZ2V0V29tZGFhSXNTaG93KCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy4kcG9zdCh7XHJcbiAgICAgICAgICAgICAgICAgICAgdXJsOiBcIi9Xb21kYWEvR2V0V29tZGFhc0J5U2hvd1wiLFxyXG4gICAgICAgICAgICAgICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWFjaGluZU5vOiB0aGlzLm1hY2hpbmVObyxcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KS50aGVuKHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc1Nob3dUYWJsZURhdGEgPSByZXMuZGF0YS50YkJpbGxMaXN0O1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAvLyDlj6rliKTmlq3nrKzkuIDmnaHvvIjlj6rlhYHorrjkuIDmnaHlt6XljZXvvIlcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBvcmRlciA9IHRoaXMuaXNTaG93VGFibGVEYXRhWzBdO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBoYXNCaW5kZWRDdXR0ZXIgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAob3JkZXIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaGFzQmluZGVkQ3V0dGVyID1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvcmRlci5vdXRUb29sSWQgJiYgb3JkZXIub3V0VG9vbElkLnRvU3RyaW5nKCkudHJpbSgpICE9PSAnJykgfHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvcmRlci5vdXRUb29sQ29kZSAmJiBvcmRlci5vdXRUb29sQ29kZS50cmltKCkgIT09ICcnKSB8fFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9yZGVyLm91dFRvb2xOYW1lICYmIG9yZGVyLm91dFRvb2xOYW1lLnRyaW0oKSAhPT0gJycpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAvLyDlrZjlgqjliLAgZGF0YSDlj5jph49cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmhhc0JpbmRlZEN1dHRlckZsYWcgPSBoYXNCaW5kZWRDdXR0ZXI7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzU2hvd1RhYmxlRGF0YS5sZW5ndGggPT0gMSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB1bmkuc2V0U3RvcmFnZVN5bmMoJ2RhYTAwMScsIHRoaXMuaXNTaG93VGFibGVEYXRhWzBdLmRhYTAwMSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHVuaS5zZXRTdG9yYWdlU3luYygnaWQnLCB0aGlzLmlzU2hvd1RhYmxlRGF0YVswXS5pZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0sXHJcblxyXG4gICAgICAgICAgICBpc1Nob3dUYWIoKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc1Nob3dUYWJsZURhdGEubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHVuaS5zaG93VG9hc3Qoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ+W3suacieato+WcqOaTjeS9nOeahOW3peWNle+8jOS4jeiDveWGjeasoemAieaLqScsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb246ICdlcnJvcicsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGR1cmF0aW9uOiAyMDAwXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMuaXNTaG93ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIC8vIOm7mOiupOmAieS4reKAnOW+heW8gOW3peKAnVxyXG4gICAgICAgICAgICAgICAgdGhpcy5lbmdpbmVlcmluZ05vID0gJ+W+heW8gOW3peOAgeacquW8gOW3peOAgeaaguWBnCc7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlRGF0YSA9IFtdO1xyXG4gICAgICAgICAgICAgICAgLy8g5LiL5ouJ5qGG5Y+q5pi+56S65ZCI5bm25ZCO55qE54q25oCB5ZKM5YW25a6D54q25oCBXHJcbiAgICAgICAgICAgICAgICB0aGlzLmVuZ2luZWVyaW5nTm9NYXBMaXN0ID0gW1xyXG4gICAgICAgICAgICAgICAgICAgICflvoXlvIDlt6XjgIHmnKrlvIDlt6XjgIHmmoLlgZwnLFxyXG4gICAgICAgICAgICAgICAgICAgICflvIDlt6UnLFxyXG4gICAgICAgICAgICAgICAgICAgICflrozlt6UnXHJcbiAgICAgICAgICAgICAgICBdO1xyXG4gICAgICAgICAgICAgICAgLy8g6buY6K6k5pi+56S64oCc5b6F5byA5bel4oCd5bel5Y2VXHJcbiAgICAgICAgICAgICAgICB0aGlzLmdldFdvbWRhYUJ5U3RhdHVzKCk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIC8vIOS4i+aLieahhumAieS4reWQju+8jOaMieeKtuaAgeetm+mAieW3peWNlVxyXG4gICAgICAgICAgICBvbkVuZ2luZWVyaW5nTm9DaGFuZ2Uoc3RhdHVzKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmVuZ2luZWVyaW5nTm8gPSBzdGF0dXM7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmdldFdvbWRhYUJ5U3RhdHVzKCk7XHJcbiAgICAgICAgICAgIH0sXHJcblx0XHRcdGdldFdvbWRhYSgpIHtcclxuXHJcblx0XHRcdFx0bGV0IGVkaXREYXRlID0gdGhpcy5mb3JtYXREYXRlKG5ldyBEYXRlKCkpO1xyXG5cclxuXHRcdFx0XHR0aGlzLiRwb3N0KHtcclxuXHRcdFx0XHRcdHVybDogXCIvV29tZGFhL0dldFdvbWRhYXNCeU1hY2hpbmVcIixcclxuXHRcdFx0XHRcdGRhdGE6IHtcclxuXHRcdFx0XHRcdFx0bWFjaGluZU5vOiB0aGlzLm1hY2hpbmVObyxcclxuXHRcdFx0XHRcdFx0ZWRpdERhdGU6IGVkaXREYXRlXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSkudGhlbihyZXMgPT4ge1xyXG5cdFx0XHRcdFx0dGhpcy50YWJsZURhdGEgPSByZXMuZGF0YS50YkJpbGxMaXN0O1xyXG5cdFx0XHRcdH0pXHJcblx0XHRcdH0sXHJcbiAgICAgICAgICAgIC8vIOaMieW3peWNleeKtuaAgeetm+mAieW3peWNlVxyXG4gICAgICAgICAgICBnZXRXb21kYWFCeVN0YXR1cygpIHtcclxuICAgICAgICAgICAgICAgIGxldCBlZGl0RGF0ZSA9IHRoaXMuZm9ybWF0RGF0ZShuZXcgRGF0ZSgpKTtcclxuICAgICAgICAgICAgICAgIGxldCBzdGF0dXNBcnIgPSBbXTtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmVuZ2luZWVyaW5nTm8gPT09ICflvoXlvIDlt6XjgIHmnKrlvIDlt6XjgIHmmoLlgZwnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc3RhdHVzQXJyID0gWyflvoXlvIDlt6UnLCAn5pyq5byA5belJywgJ+aaguWBnCddO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBzdGF0dXNBcnIgPSBbdGhpcy5lbmdpbmVlcmluZ05vXTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHRoaXMuJHBvc3Qoe1xyXG4gICAgICAgICAgICAgICAgICAgIHVybDogXCIvV29tZGFhL0dldFdvbWRhYXNCeUVuZ2luZWVyaW5nTm9cIixcclxuICAgICAgICAgICAgICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hY2hpbmVObzogdGhpcy5tYWNoaW5lTm8sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9yZGVyU3RhdHVzOiBzdGF0dXNBcnIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVkaXREYXRlOiBlZGl0RGF0ZVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pLnRoZW4ocmVzID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRhYmxlRGF0YSA9IHJlcy5kYXRhLnRiQmlsbExpc3Q7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSxcclxuXHRcdFx0dG9EZXRhaWwoaXRlbSkge1xyXG5cdFx0XHRcdHRoaXMub3JkZXJJZCA9IGl0ZW0uaWQ7XHJcblx0XHRcdFx0dGhpcy5zZWxlY3RlZE9yZGVyID0gaXRlbS5kYWEwMDE7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnByb2R1Y3RDb2RlID0gaXRlbS5kYWEwMDI7IC8vIOS6p+WTgee8lueggVxyXG4gICAgICAgICAgICAgICAgdGhpcy5wcm9kdWN0U3BlYyA9IGl0ZW0uZGFhMDA0OyAvLyDkuqflk4Hop4TmoLxcclxuXHRcdFx0XHR0aGlzLmN1cnJlbnRUYWIgPSAwO1xyXG5cdFx0XHR9XHJcblx0XHR9LFxyXG5cdFx0Y29tcHV0ZWQ6IHt9XHJcblx0fTtcclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///52\n");
/***/ }),
/* 53 */
@@ -6201,7 +6201,7 @@
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _printTemplate = __webpack_require__(/*! ../utils/printTemplate */ 73);\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\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 props: {\n orderNo: String,\n orderId: Number,\n machineNo: String\n },\n data: function data() {\n return {\n isShowUserSelect: false,\n currentUser: '',\n barcodeAmount: '',\n users: [],\n userForm: [],\n staff: [],\n user: {},\n productionCount: 0,\n printedCount: 0,\n defectiveCount: 0,\n order: {},\n icount: 1,\n bqty: 0,\n sQuantity: 0,\n kgQty: 0,\n initialValue: 0,\n qqty: 0,\n ngStaid: 0,\n bufferData: '',\n dataToPrint: [],\n isLoading: false,\n but: false,\n DAA003List: [],\n lineList: [],\n isShow: false,\n barcodeIsShow: false,\n barcodeList: [],\n staffNo: '',\n printStr: '',\n printMac: '',\n bluetoothSocket: {},\n device: '',\n uuid: '',\n printNum: 1,\n reportingList: [],\n printLoading: false,\n customAmount: '',\n isGeneratingBarcode: false,\n lastGenerateTime: 0,\n generateRequestId: null,\n nowTimeTimer: null,\n nowTime: '',\n userSearch: '',\n refreshTimer: null,\n // 鏂板锛氳嚜鍔ㄥ埛鏂板畾鏃跺櫒\n /* 鏂板锛氬巻鍙叉姤宸ヨ褰曟暟缁� */\n reportingHistory: []\n };\n },\n computed: {\n //鑹搧鏁板疄鏃惰绠梊n realTimeDefectiveCount: function realTimeDefectiveCount() {\n // 浼樺厛鐢ㄨ緭鍏ユ鐨勫�硷紝鍚﹀垯鐢ㄦ帴鍙f暟鎹甛n var val = Number(this.customAmount);\n if (!isNaN(val) && this.customAmount !== '') return val;\n return this.calculatedDefectiveCount;\n },\n realTimeOkCount: function realTimeOkCount() {\n // 鑹搧鏁� = 鎶ュ伐鏁帮紙璁$畻锛� - 涓嶈壇鏁癨n var total = (this.order.currentCjNum || 0) - (this.order.initCjNum || 0);\n return total - this.realTimeDefectiveCount;\n },\n calculatedCurrentCount: function calculatedCurrentCount() {\n return (this.productionCount || 0) - (this.initialValue || 0);\n },\n calculatedTotalProduction: function calculatedTotalProduction() {\n return this.kgQty || 0;\n },\n // 鑻ラ渶鎭㈠鏃ч�昏緫鍙敤 (this.kgQty||0)+this.calculatedCurrentCount\n calculatedDefectiveCount: function calculatedDefectiveCount() {\n return this.calculatedTotalProduction - (this.sQuantity || 0);\n },\n planQtyDisplay: function planQtyDisplay() {\n return this.order.planQty || this.order.planQuantity || this.order.daa008 || 0;\n },\n staffDisplay: function staffDisplay() {\n if (!this.staffNo) return '';\n var segs = this.staffNo.split(':');\n return segs.length > 1 ? \"\".concat(segs[0], \" \").concat(segs[1]) : this.staffNo;\n },\n filteredUsers: function filteredUsers() {\n if (!this.userSearch) return this.users;\n var kw = this.userSearch.trim().toLowerCase();\n return this.users.filter(function (u) {\n return u.toLowerCase().includes(kw);\n });\n }\n },\n created: function created() {\n this.initializeData();\n this.fetchData(true);\n this.init();\n this.getXS0101();\n this.updateNowTime();\n // 绉掔骇鍒锋柊锛涘涓嶉渶鍔ㄦ�佽烦绉掑彲鏀逛负 60000\n this.nowTimeTimer = setInterval(this.updateNowTime, 1000);\n\n // 鏂板锛氭瘡鍒嗛挓鑷姩鍒锋柊鏁版嵁锛�60000姣 = 1鍒嗛挓锛塡n this.startAutoRefresh();\n },\n beforeDestroy: function beforeDestroy() {\n if (this.nowTimeTimer) clearInterval(this.nowTimeTimer);\n // 鏂板锛氭竻鐞嗚嚜鍔ㄥ埛鏂板畾鏃跺櫒\n this.stopAutoRefresh();\n },\n methods: {\n // 鏂板锛氬紑濮嬭嚜鍔ㄥ埛鏂癨n startAutoRefresh: function startAutoRefresh() {\n var _this = this;\n // 鍏堟竻闄ゅ彲鑳藉瓨鍦ㄧ殑鏃у畾鏃跺櫒\n this.stopAutoRefresh();\n // 璁剧疆鏂扮殑瀹氭椂鍣紝姣忓垎閽熸墽琛屼竴娆n this.refreshTimer = setInterval(function () {\n __f__(\"log\", '鑷姩鍒锋柊鏁版嵁...', \" at components/WorkOrderPrint.vue:311\");\n _this.refresh();\n }, 60000); // 60000姣 = 1鍒嗛挓\n },\n // 鏂板锛氬仠姝㈣嚜鍔ㄥ埛鏂癨n stopAutoRefresh: function stopAutoRefresh() {\n if (this.refreshTimer) {\n clearInterval(this.refreshTimer);\n this.refreshTimer = null;\n }\n },\n formatUser: function formatUser(u) {\n if (!u) return '';\n var segs = u.split(':');\n return segs.length > 1 ? \"\".concat(segs[0], \" \").concat(segs[1]) : u;\n },\n selectUser: function selectUser(u) {\n this.staffNo = u;\n this.isShowUserSelect = false;\n this.userSearch = '';\n },\n /* 淇敼锛氬鍔犵 */updateNowTime: function updateNowTime() {\n var d = new Date(),\n p = function p(n) {\n return n.toString().padStart(2, '0');\n };\n this.nowTime = \"\".concat(d.getFullYear(), \"-\").concat(p(d.getMonth() + 1), \"-\").concat(p(d.getDate()), \" \").concat(p(d.getHours()), \":\").concat(p(d.getMinutes()), \":\").concat(p(d.getSeconds()));\n },\n initializeData: function initializeData() {\n this.productionCount = this.printedCount = this.defectiveCount = 0;\n this.icount = 1;\n this.bqty = 0;\n this.sQuantity = 0;\n this.kgQty = 0;\n this.initialValue = 0;\n this.qqty = 0;\n this.isGeneratingBarcode = false;\n this.lastGenerateTime = 0;\n this.generateRequestId = null;\n },\n resetGenerateState: function resetGenerateState() {\n this.isGeneratingBarcode = false;\n this.generateRequestId = null;\n this.lastGenerateTime = 0;\n this.$showMessage(\"宸查噸缃潯鐮佺敓鎴愮姸鎬乗");\n },\n // 淇敼锛氬湪鎵嬪姩鍒锋柊鏃朵篃閲嶇疆鑷姩鍒锋柊璁℃椂鍣╘n refresh: function refresh() {\n var _this2 = this;\n this.$sendPostRequest({\n url: \"http://192.168.0.94:9095/Numerical/RefreshDevBycl\",\n data: {\n machineNo: this.order.machineNo\n },\n contentType: \"application/json\"\n }).then(function (r) {\n if (r.code == 200) {\n _this2.fetchData(true);\n _this2.$showMessage(\"鏁版嵁鍒锋柊鎴愬姛\");\n } else {\n _this2.$showMessage(\"鍚屾澶辫触\");\n }\n }).catch(function (error) {\n __f__(\"error\", '鍒锋柊澶辫触:', error, \" at components/WorkOrderPrint.vue:358\");\n _this2.$showMessage(\"鍒锋柊澶辫触锛岃妫�鏌ョ綉缁滆繛鎺");\n });\n },\n onDaa003Change: function onDaa003Change(v) {\n var o = this.lineList[this.DAA003List.indexOf(v)];\n this.orderId = o.id;\n this.orderNo = o.daa001;\n uni.setStorageSync('machine', this.machineNo);\n uni.setStorageSync('orderId', this.orderId);\n uni.setStorageSync('orderNo', this.orderNo);\n this.fetchData(false);\n },\n fetchData: function fetchData(flag) {\n var _this3 = this;\n if (!this.orderId && !this.orderNo) return;\n this.getOrderById();\n this.getWomdaaPrintById();\n this.getReportingHistory(); // 鏂板锛氭瘡娆″埛鏂板悓姝ュ巻鍙瞈n if (flag) {\n this.$post({\n url: \"/Womdaa/GetWomdaasByShow\",\n data: {\n machineNo: this.machineNo\n }\n }).then(function (res) {\n _this3.lineList = res.data.tbBillList;\n _this3.DAA003List = res.data.tbBillList.map(function (i) {\n return i.daa003;\n });\n });\n }\n },\n /* 鏂板锛氳幏鍙栧巻鍙叉姤宸ヨ褰� */\n /* 淇敼锛氳鑼冨巻鍙叉椂闂村埌绉� */\n getReportingHistory: function getReportingHistory() {\n var _this4 = this;\n if (!this.orderNo) {\n this.reportingHistory = [];\n return;\n }\n var fmtSec = function fmtSec(v) {\n if (!v) return '';\n // 鍏煎鍚庣鍙兘杩斿洖鐨勪笉鍚屾牸寮廫n var d = new Date(typeof v === 'string' ? v.replace(/-/g, '/') : v);\n if (isNaN(d.getTime())) return v; // 鏃犳硶瑙f瀽鍒欏師鏍疯繑鍥瀄n var p = function p(n) {\n return n.toString().padStart(2, '0');\n };\n return \"\".concat(d.getFullYear(), \"-\").concat(p(d.getMonth() + 1), \"-\").concat(p(d.getDate()), \" \").concat(p(d.getHours()), \":\").concat(p(d.getMinutes()), \":\").concat(p(d.getSeconds()));\n };\n this.$post({\n url: \"/Womdaa/GetByBillNoBG\",\n data: {\n billNo: this.orderNo,\n machineNo: this.machineNo || null\n }\n }).then(function (res) {\n var _res$data;\n var list = (res === null || res === void 0 ? void 0 : (_res$data = res.data) === null || _res$data === void 0 ? void 0 : _res$data.tbBillList) || (res === null || res === void 0 ? void 0 : res.data) || [];\n _this4.reportingHistory = list.map(function (r) {\n var _r$csQty, _r$cjQty, _ref;\n // 渚濇嵁浣犳暟鎹簱瀛楁鍋氭槧灏勶紙涓嬮潰瀛楁鍚嶆寜甯歌鍛藉悕涓句緥锛岄渶瑕佹寜瀹為檯鏀癸級\n return {\n bgDate: r.bgDate || '',\n // 鎶ュ伐鏃堕棿\n staff: r.staffNo ? r.staffNo + ' ' + (r.staffName || '') : r.staffName || '',\n //鎶ュ伐浜篭n orderNo: r.billNo,\n //宸ュ崟鍙穃n machineNo: r.machineNo,\n //鏈哄彴鍙穃n initialValue: (_r$csQty = r.csQty) !== null && _r$csQty !== void 0 ? _r$csQty : 0,\n //鍒濆閲囬泦鏁癨n productionCount: (_r$cjQty = r.cjQty) !== null && _r$cjQty !== void 0 ? _r$cjQty : 0,\n //鎶ュ伐鏃堕噰闆嗘暟\n totalProduction: (_ref = r.cjQty - r.csQty) !== null && _ref !== void 0 ? _ref : 0,\n //鎶ュ伐鏁帮紙璁$畻锛塡n BfQty: r.bfQty,\n //涓嶈壇鏁癨n OkQty: r.okQty,\n //鑹搧鏁帮紙璁$畻锛塡n reportType: r.remark //鎶ュ伐绫诲瀷\n };\n });\n }).catch(function () {\n _this4.reportingHistory = [];\n });\n },\n toggleUser: function toggleUser(u) {\n if (!u) return;\n this.user = this.user === u ? null : u;\n this.staffNo = this.user;\n },\n //閫夋嫨鎶ュ伐浜篭n confirmCustomAmount: function confirmCustomAmount() {\n var _this5 = this;\n if (!this.customAmount || isNaN(Number(this.customAmount))) {\n this.$showMessage('璇疯緭鍏ユ湁鏁堢殑鏁伴噺');\n return;\n }\n if (!this.staffNo) {\n this.$showMessage('璇烽�夋嫨鎶ュ伐浜�');\n return;\n }\n var staffNo = this.staffNo.split(':')[0];\n var amount = Number(this.customAmount);\n this.$post({\n url: \"/MesInvItemBarcodes/AddBFToBarcodes\",\n data: {\n orderNo: this.orderNo,\n orderId: this.orderId,\n bf: amount,\n staffNo: staffNo,\n initCjNum: this.order.initCjNum,\n // 鍒濆閲囬泦鏁癨n currentCjNum: this.order.currentCjNum // 鎶ュ伐鏃堕噰闆嗘暟\n }\n }).then(function (res) {\n if (res.status == 1) {\n _this5.$showMessage(res.message);\n return;\n }\n _this5.$showMessage('鎶ュ簾鏁伴噺濉啓鎴愬姛');\n _this5.fetchData(true); // 鑷姩鍒锋柊鍘嗗彶\n _this5.customAmount = '';\n }).catch(function () {\n return _this5.$showMessage('鎶ュ簾鏁伴噺濉啓澶辫触锛岃閲嶈瘯');\n });\n },\n // 鏂板锛氳皟鏈烘姤宸n confirmTiaojiBaogong: function confirmTiaojiBaogong() {\n var _this6 = this;\n if (!this.customAmount || isNaN(Number(this.customAmount))) {\n this.$showMessage('璇疯緭鍏ユ湁鏁堢殑鏁伴噺');\n return;\n }\n if (!this.staffNo) {\n this.$showMessage('璇烽�夋嫨鎶ュ伐浜�');\n return;\n }\n var staffNo = this.staffNo.split(':')[0];\n var amount = Number(this.customAmount);\n this.$post({\n url: \"/MesInvItemBarcodes/AddBFToBarcodes\",\n // 濡傛湁璋冩満涓撶敤鎺ュ彛璇锋浛鎹n data: {\n orderNo: this.orderNo,\n orderId: this.orderId,\n bf: amount,\n staffNo: staffNo,\n initCjNum: this.order.initCjNum,\n currentCjNum: this.order.currentCjNum,\n type: 'tiaoji' // 鍙姞鍖哄垎瀛楁锛屽悗绔闇�鍖哄垎璋冩満鎶ュ伐\n }\n }).then(function (res) {\n if (res.status == 1) {\n _this6.$showMessage(res.message);\n return;\n }\n _this6.$showMessage('璋冩満鎶ュ伐鎴愬姛');\n _this6.fetchData(true);\n _this6.customAmount = '';\n }).catch(function () {\n return _this6.$showMessage('璋冩満鎶ュ伐澶辫触锛岃閲嶈瘯');\n });\n },\n save: function save() {\n if (!this.staffNo) {\n this.$showMessage('璇烽�夋嫨鎶ュ伐浜�');\n return;\n }\n uni.showToast({\n title: '淇濆瓨鎴愬姛',\n icon: 'success'\n });\n this.getReportingHistory(); // 淇濆瓨鍚庝篃鍙埛鏂癨n },\n cancel: function cancel() {\n uni.showToast({\n title: '鍙栨秷鎿嶄綔',\n icon: 'none'\n });\n },\n getOrderById: function getOrderById() {\n var _this7 = this;\n this.$post({\n url: \"/Womdaa/GetWomdaaById\",\n data: {\n orderId: this.orderId,\n orderNo: this.orderNo\n }\n }).then(function (res) {\n _this7.order = res.data.tbBillList;\n _this7.printedCount = res.data.tbBillList.bgqty || 0;\n _this7.defectiveCount = res.data.tbBillList.blQty || 0;\n _this7.productionCount = _this7.order.todayOutput || 0;\n });\n },\n getXS0101: function getXS0101() {\n var _this8 = this;\n this.$post({\n url: \"/MesStaff/GetAllXS0101\"\n }).then(function (res) {\n _this8.staff = res.data.tbBillList;\n _this8.users = _this8.staff.map(function (s) {\n return s.staffNo + \":\" + s.staffName;\n });\n });\n },\n getWomdaaPrintById: function getWomdaaPrintById() {\n var _this9 = this;\n this.$post({\n url: \"/Womdaa/GetWomdaaPrintById\",\n data: {\n orderId: this.orderId\n }\n }).then(function (res) {\n var _res$data2;\n if (!(res !== null && res !== void 0 && (_res$data2 = res.data) !== null && _res$data2 !== void 0 && _res$data2.tbBillList)) return;\n var d = res.data.tbBillList;\n _this9.bqty = d.bqty;\n _this9.icount = 1;\n _this9.sQuantity = d.sQuantity || 0;\n _this9.initialValue = d.initialValue || 0;\n _this9.kgQty = d.kgQty || 0;\n _this9.barcodeAmount = d.qqty || 0;\n if (_this9.bqty === 0) _this9.Completed();\n }).catch(function () {});\n },\n Completed: function Completed() {\n this.$post({\n url: \"/MesOrderSta/Completed\",\n data: {\n orderId: this.orderId,\n orderNo: this.orderNo\n }\n });\n },\n init: function init() {\n try {\n var v = this.getAndroidVersion();\n v >= 12 ? this.initForAndroid12Plus() : this.initForAndroidLegacy();\n } catch (e) {\n __f__(\"error\", e, \" at components/WorkOrderPrint.vue:512\");\n }\n },\n getAndroidVersion: function getAndroidVersion() {\n try {\n var Build = plus.android.importClass(\"android.os.Build\");\n return Build.VERSION.SDK_INT;\n } catch (_unused) {\n return 30;\n }\n },\n initForAndroid12Plus: function initForAndroid12Plus() {\n try {\n var main = plus.android.runtimeMainActivity();\n var BluetoothManager = plus.android.importClass(\"android.bluetooth.BluetoothManager\");\n var Context = plus.android.importClass(\"android.content.Context\");\n var UUID = plus.android.importClass(\"java.util.UUID\");\n this.uuid = UUID.fromString(\"00001101-0000-1000-8000-00805F9B34FB\");\n var mgr = main.getSystemService(Context.BLUETOOTH_SERVICE);\n var adp = mgr.getAdapter();\n if (adp && adp.isDiscovering()) adp.cancelDiscovery();\n this.printMac = uni.getStorageSync('printMac');\n var mac = this.printMac || \"DC:1D:30:91:06:52\";\n if (adp) {\n this.device = adp.getRemoteDevice(mac);\n plus.android.importClass(this.device);\n }\n } catch (e) {\n this.initForAndroidLegacy();\n }\n },\n initForAndroidLegacy: function initForAndroidLegacy() {\n try {\n var BluetoothAdapter = plus.android.importClass(\"android.bluetooth.BluetoothAdapter\");\n var UUID = plus.android.importClass(\"java.util.UUID\");\n this.uuid = UUID.fromString(\"00001101-0000-1000-8000-00805F9B34FB\");\n var BAdapter = BluetoothAdapter.getDefaultAdapter();\n if (BAdapter) BAdapter.cancelDiscovery();\n this.printMac = uni.getStorageSync('printMac');\n var mac = this.printMac || \"DC:1D:30:91:06:52\";\n if (BAdapter) {\n this.device = BAdapter.getRemoteDevice(mac);\n plus.android.importClass(this.device);\n this.bluetoothSocket = this.device.createInsecureRfcommSocketToServiceRecord(this.uuid);\n plus.android.importClass(this.bluetoothSocket);\n }\n } catch (e) {}\n },\n deleteBarcode: function deleteBarcode() {\n this.isShow = false;\n this.isGeneratingBarcode = false;\n this.generateRequestId = null;\n this.bufferData = '';\n this.dataToPrint = [];\n this.staffNo = null;\n this.user = '';\n this.barcodeAmount = '';\n this.icount = 1;\n this.staff = null;\n }\n }\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 1)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vY29tcG9uZW50cy9Xb3JrT3JkZXJQcmludC52dWUiXSwibmFtZXMiOlsicHJvcHMiLCJvcmRlck5vIiwib3JkZXJJZCIsIm1hY2hpbmVObyIsImRhdGEiLCJpc1Nob3dVc2VyU2VsZWN0IiwiY3VycmVudFVzZXIiLCJiYXJjb2RlQW1vdW50IiwidXNlcnMiLCJ1c2VyRm9ybSIsInN0YWZmIiwidXNlciIsInByb2R1Y3Rpb25Db3VudCIsInByaW50ZWRDb3VudCIsImRlZmVjdGl2ZUNvdW50Iiwib3JkZXIiLCJpY291bnQiLCJicXR5Iiwic1F1YW50aXR5Iiwia2dRdHkiLCJpbml0aWFsVmFsdWUiLCJxcXR5IiwibmdTdGFpZCIsImJ1ZmZlckRhdGEiLCJkYXRhVG9QcmludCIsImlzTG9hZGluZyIsImJ1dCIsIkRBQTAwM0xpc3QiLCJsaW5lTGlzdCIsImlzU2hvdyIsImJhcmNvZGVJc1Nob3ciLCJiYXJjb2RlTGlzdCIsInN0YWZmTm8iLCJwcmludFN0ciIsInByaW50TWFjIiwiYmx1ZXRvb3RoU29ja2V0IiwiZGV2aWNlIiwidXVpZCIsInByaW50TnVtIiwicmVwb3J0aW5nTGlzdCIsInByaW50TG9hZGluZyIsImN1c3RvbUFtb3VudCIsImlzR2VuZXJhdGluZ0JhcmNvZGUiLCJsYXN0R2VuZXJhdGVUaW1lIiwiZ2VuZXJhdGVSZXF1ZXN0SWQiLCJub3dUaW1lVGltZXIiLCJub3dUaW1lIiwidXNlclNlYXJjaCIsInJlZnJlc2hUaW1lciIsInJlcG9ydGluZ0hpc3RvcnkiLCJjb21wdXRlZCIsInJlYWxUaW1lRGVmZWN0aXZlQ291bnQiLCJyZWFsVGltZU9rQ291bnQiLCJjYWxjdWxhdGVkQ3VycmVudENvdW50IiwiY2FsY3VsYXRlZFRvdGFsUHJvZHVjdGlvbiIsImNhbGN1bGF0ZWREZWZlY3RpdmVDb3VudCIsInBsYW5RdHlEaXNwbGF5Iiwic3RhZmZEaXNwbGF5IiwiZmlsdGVyZWRVc2VycyIsImNyZWF0ZWQiLCJiZWZvcmVEZXN0cm95IiwibWV0aG9kcyIsInN0YXJ0QXV0b1JlZnJlc2giLCJzdG9wQXV0b1JlZnJlc2giLCJjbGVhckludGVydmFsIiwiZm9ybWF0VXNlciIsInNlbGVjdFVzZXIiLCJ1cGRhdGVOb3dUaW1lIiwicCIsImluaXRpYWxpemVEYXRhIiwicmVzZXRHZW5lcmF0ZVN0YXRlIiwicmVmcmVzaCIsInVybCIsImNvbnRlbnRUeXBlIiwib25EYWEwMDNDaGFuZ2UiLCJ1bmkiLCJmZXRjaERhdGEiLCJ0aGVuIiwiZ2V0UmVwb3J0aW5nSGlzdG9yeSIsImJpbGxObyIsImJnRGF0ZSIsInRvdGFsUHJvZHVjdGlvbiIsIkJmUXR5IiwiT2tRdHkiLCJyZXBvcnRUeXBlIiwidG9nZ2xlVXNlciIsImNvbmZpcm1DdXN0b21BbW91bnQiLCJiZiIsImluaXRDak51bSIsImN1cnJlbnRDak51bSIsImNvbmZpcm1UaWFvamlCYW9nb25nIiwidHlwZSIsInNhdmUiLCJ0aXRsZSIsImljb24iLCJjYW5jZWwiLCJnZXRPcmRlckJ5SWQiLCJnZXRYUzAxMDEiLCJnZXRXb21kYWFQcmludEJ5SWQiLCJDb21wbGV0ZWQiLCJpbml0IiwidiIsImdldEFuZHJvaWRWZXJzaW9uIiwiaW5pdEZvckFuZHJvaWQxMlBsdXMiLCJwbHVzIiwiaW5pdEZvckFuZHJvaWRMZWdhY3kiLCJkZWxldGVCYXJjb2RlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUEwT0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztlQUVBO0VBQ0FBO0lBQUFDO0lBQUFDO0lBQUFDO0VBQUE7RUFDQUM7SUFDQTtNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUFBQztNQUFBQztNQUFBQztNQUNBQztNQUFBQztNQUFBQztNQUFBQztNQUNBQztNQUFBQztNQUFBQztNQUFBQztNQUFBQztNQUFBQztNQUNBQztNQUFBQztNQUFBQztNQUFBQztNQUFBQztNQUNBQztNQUFBQztNQUFBQztNQUFBQztNQUFBQztNQUNBQztNQUFBQztNQUFBQztNQUFBQztNQUFBQztNQUFBQztNQUNBQztNQUFBQztNQUFBQztNQUFBQztNQUNBQztNQUFBQztNQUFBQztNQUNBQztNQUFBQztNQUNBQztNQUNBQztNQUFBO01BQ0E7TUFDQUM7SUFDQTtFQUNBO0VBQ0FDO0lBQ0E7SUFDQUM7TUFDQTtNQUNBO01BQ0E7TUFDQTtJQUNBO0lBQ0FDO01BQ0E7TUFDQTtNQUNBO0lBQ0E7SUFDQUM7TUFBQTtJQUFBO0lBQ0FDO01BQUE7SUFBQTtJQUFBO0lBQ0FDO01BQUE7SUFBQTtJQUNBQztNQUFBO0lBQUE7SUFDQUM7TUFDQTtNQUNBO01BQ0E7SUFDQTtJQUNBQztNQUNBO01BQ0E7TUFDQTtRQUFBO01BQUE7SUFDQTtFQUNBO0VBQ0FDO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7O0lBRUE7SUFDQTtFQUNBO0VBQ0FDO0lBQ0E7SUFDQTtJQUNBO0VBQ0E7RUFDQUM7SUFDQTtJQUNBQztNQUFBO01BQ0E7TUFDQTtNQUNBO01BQ0E7UUFDQTtRQUNBO01BQ0E7SUFDQTtJQUNBO0lBQ0FDO01BQ0E7UUFDQUM7UUFDQTtNQUNBO0lBQ0E7SUFFQUM7TUFDQTtNQUNBO01BQ0E7SUFDQTtJQUNBQztNQUFBO01BQUE7TUFBQTtJQUFBO0lBQ0EsWUFDQUM7TUFDQTtRQUFBQztVQUFBO1FBQUE7TUFDQTtJQUNBO0lBQ0FDO01BQ0E7TUFDQTtNQUFBO01BQUE7TUFBQTtNQUNBO01BQUE7TUFDQTtNQUFBO01BQUE7SUFDQTtJQUNBQztNQUNBO01BQUE7TUFBQTtNQUNBO0lBQ0E7SUFDQTtJQUNBQztNQUFBO01BQ0E7UUFDQUM7UUFDQXBFO1VBQUFEO1FBQUE7UUFDQXNFO01BQ0E7UUFDQTtVQUNBO1VBQ0E7UUFDQTtVQUNBO1FBQ0E7TUFDQTtRQUNBO1FBQ0E7TUFDQTtJQUNBO0lBQ0FDO01BQ0E7TUFDQTtNQUFBO01BQ0FDO01BQ0FBO01BQ0FBO01BQ0E7SUFDQTtJQUNBQztNQUFBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtRQUNBO1VBQUFKO1VBQUFwRTtZQUFBRDtVQUFBO1FBQUEsR0FDQTBFO1VBQ0E7VUFDQTtZQUFBO1VBQUE7UUFDQTtNQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0FDO01BQUE7TUFDQTtRQUFBO1FBQUE7TUFBQTtNQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtVQUFBO1FBQUE7UUFDQTtNQUNBO01BQ0E7UUFDQU47UUFDQXBFO1VBQUEyRTtVQUFBNUU7UUFBQTtNQUNBO1FBQUE7UUFDQTtRQUNBO1VBQUE7VUFDQTtVQUNBO1lBQ0E2RTtZQUFBO1lBQ0F0RTtZQUFBO1lBQ0FUO1lBQUE7WUFDQUU7WUFBQTtZQUNBaUI7WUFBQTtZQUNBUjtZQUFBO1lBQ0FxRTtZQUFBO1lBQ0FDO1lBQUE7WUFDQUM7WUFBQTtZQUNBQztVQUNBO1FBQ0E7TUFDQTtRQUFBO01BQUE7SUFDQTtJQUNBQztNQUNBO01BQ0E7TUFDQTtJQUNBO0lBQ0E7SUFDQUM7TUFBQTtNQUNBO1FBQUE7UUFBQTtNQUFBO01BQ0E7UUFBQTtRQUFBO01BQUE7TUFDQTtNQUNBO01BQ0E7UUFDQWQ7UUFDQXBFO1VBQ0FIO1VBQ0FDO1VBQ0FxRjtVQUNBdkQ7VUFDQXdEO1VBQUE7VUFDQUM7UUFDQTtNQUNBO1FBQ0E7VUFBQTtVQUFBO1FBQUE7UUFDQTtRQUNBO1FBQ0E7TUFDQTtRQUFBO01BQUE7SUFDQTtJQUNBO0lBQ0FDO01BQUE7TUFDQTtRQUFBO1FBQUE7TUFBQTtNQUNBO1FBQUE7UUFBQTtNQUFBO01BQ0E7TUFDQTtNQUNBO1FBQ0FsQjtRQUFBO1FBQ0FwRTtVQUNBSDtVQUNBQztVQUNBcUY7VUFDQXZEO1VBQ0F3RDtVQUNBQztVQUNBRTtRQUNBO01BQ0E7UUFDQTtVQUFBO1VBQUE7UUFBQTtRQUNBO1FBQ0E7UUFDQTtNQUNBO1FBQUE7TUFBQTtJQUNBO0lBQ0FDO01BQ0E7UUFBQTtRQUFBO01BQUE7TUFDQWpCO1FBQUFrQjtRQUFBQztNQUFBO01BQ0E7SUFDQTtJQUNBQztNQUFBcEI7UUFBQWtCO1FBQUFDO01BQUE7SUFBQTtJQUNBRTtNQUFBO01BQ0E7UUFBQXhCO1FBQUFwRTtVQUFBRjtVQUFBRDtRQUFBO01BQUEsR0FDQTRFO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7TUFDQTtJQUNBO0lBQ0FvQjtNQUFBO01BQ0E7UUFBQXpCO01BQUEsR0FDQUs7UUFDQTtRQUNBO1VBQUE7UUFBQTtNQUNBO0lBQ0E7SUFDQXFCO01BQUE7TUFDQTtRQUFBMUI7UUFBQXBFO1VBQUFGO1FBQUE7TUFBQSxHQUNBMkU7UUFBQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtNQUNBO0lBQ0E7SUFDQXNCO01BQ0E7UUFBQTNCO1FBQUFwRTtVQUFBRjtVQUFBRDtRQUFBO01BQUE7SUFDQTtJQUNBbUc7TUFDQTtRQUNBO1FBQ0FDO01BQ0E7UUFBQTtNQUFBO0lBQ0E7SUFDQUM7TUFDQTtRQUFBO1FBQUE7TUFBQSxFQUNBO1FBQUE7TUFBQTtJQUNBO0lBQ0FDO01BQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1VBQ0E7VUFDQUM7UUFDQTtNQUNBO1FBQUE7TUFBQTtJQUNBO0lBQ0FDO01BQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1VBQ0E7VUFDQUQ7VUFDQTtVQUNBQTtRQUNBO01BQ0E7SUFDQTtJQUNBRTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQUE7TUFDQTtNQUFBO01BQUE7TUFBQTtNQUFBO0lBQ0E7RUFDQTtBQUNBO0FBQUEsMkIiLCJmaWxlIjoiNzIuanMiLCJzb3VyY2VzQ29udGVudCI6WyI8dGVtcGxhdGU+XHJcbiAgICA8dmlldyBjbGFzcz1cInBhZ2Ugd2lkZS1sYXlvdXRcIiA6Y2xhc3M9XCJ7J2hhcy1vdmVybGF5JzogKGlzU2hvd1VzZXJTZWxlY3QgfHwgaXNTaG93IHx8IGJhcmNvZGVJc1Nob3cpfVwiPlxyXG4gICAgICAgIDx2aWV3IGNsYXNzPVwic3RhdHVzLXNlY3Rpb25cIj5cclxuICAgICAgICAgICAgPCEtLSDmiqXlt6XorrDlvZXooajpg6jliIbvvIzlnKjmoIfpopjooYzmt7vliqDliLfmlrDmjInpkq4gLS0+XHJcbiAgICAgICAgICAgIDx2aWV3IGNsYXNzPVwicmVwb3J0LXRhYmxlLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgIDx2aWV3IGNsYXNzPVwicmVwb3J0LWhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDx2aWV3IGNsYXNzPVwicmVwb3J0LXRpdGxlXCI+5oql5bel6K6w5b2V6KGoPC92aWV3PlxyXG4gICAgICAgICAgICAgICAgICAgIDx2aWV3IGNsYXNzPVwiaGVhZGVyLWJ1dHRvbnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInJlZnJlc2gtYnRuLWhlYWRlclwiIEBjbGljaz1cInJlZnJlc2hcIj7liLfmlrA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB2LWlmPVwiaXNHZW5lcmF0aW5nQmFyY29kZVwiIGNsYXNzPVwicmVzZXQtYnRuLWhlYWRlclwiIEBjbGljaz1cInJlc2V0R2VuZXJhdGVTdGF0ZVwiPumHjee9rjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdmlldz5cclxuICAgICAgICAgICAgICAgIDwvdmlldz5cclxuXHJcbiAgICAgICAgICAgICAgICA8IS0tIOaVsOmHh+aAu+S6p+mHjyAtLT5cclxuICAgICAgICAgICAgICAgIDx2aWV3IGNsYXNzPVwic2VjdGlvbi10aXRsZVwiPuW9k+WJjeaVsOmHh+S6p+mHj+aKpeW3peiusOW9lTwvdmlldz5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1zY3JvbGxcIj5cclxuICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9XCJyZXBvcnQtdGFibGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoZWFkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD7ml7bpl7Q8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD7miqXlt6Xkuro8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD7lt6XljZXlj7c8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD7kuqflk4HlkI3np7A8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD7orqHliJLnlJ/kuqfmlbA8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD7mnKrmiqXlt6XmlbDph488L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD7mnLrlj7Dlj7c8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD7liJ3lp4vph4fpm4bmlbA8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD7miqXlt6Xml7bph4fpm4bmlbA8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD7ln7rkuo7mlbDph4fnmoTmiqXlt6XmlbA8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD7kuI3oia/mlbA8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD7oia/lk4HmlbDvvIjorqHnrpfvvIk8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD7miqXlt6Xnsbvlnos8L3RoPiA8IS0tIOaWsOWiniAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0Ym9keT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz1cInN1bW1hcnktcm93IGhpZ2hsaWdodC1yb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3sgbm93VGltZSB9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7IHN0YWZmRGlzcGxheSB8fCAnLScgfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57eyBvcmRlck5vIHx8ICctJyB9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7IG9yZGVyLmRhYTAwMyB8fCAnLScgfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57eyBwbGFuUXR5RGlzcGxheSB9fTwvdGQ+PCEtLeiuoeWIkueUn+S6p+aVsC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57eyBvcmRlci5kYWEwMDggLSBvcmRlci5kYWEwMTEgfX08L3RkPiA8IS0tIOaWsOWinu+8muacquaKpeW3peaVsOmHjyAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3sgbWFjaGluZU5vIHx8ICctJyB9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7IG9yZGVyLmluaXRDak51bSB9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7IG9yZGVyLmN1cnJlbnRDak51bSB9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7IG9yZGVyLmN1cnJlbnRDak51bSAtIG9yZGVyLmluaXRDak51bSB9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7IHJlYWxUaW1lRGVmZWN0aXZlQ291bnQgfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57eyByZWFsVGltZU9rQ291bnQgfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgb3JkZXIuZGFhMDE4ID09PSAn5byA5belJyA/ICfnlJ/kuqfmiqXlt6UnIDogJ+iwg+acuuaKpeW3pScgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC90Ym9keT5cclxuICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPCEtLSDljoblj7LmiqXlt6XorrDlvZUgLS0+XHJcbiAgICAgICAgICAgICAgICA8dmlldyBjbGFzcz1cInNlY3Rpb24tdGl0bGUgaGlzdG9yeS10aXRsZVwiPuWOhuWPsuaKpeW3peiusOW9lTwvdmlldz5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1zY3JvbGwgaGlzdG9yeS10YWJsZS1zY3JvbGxcIj5cclxuICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9XCJyZXBvcnQtdGFibGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoZWFkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD7ml7bpl7Q8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD7miqXlt6Xkuro8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD7lt6XljZXlj7c8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD7kuqflk4HlkI3np7A8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD7orqHliJLnlJ/kuqfmlbA8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD7mnLrlj7Dlj7c8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD7liJ3lp4vph4fpm4bmlbA8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD7miqXlt6Xml7bph4fpm4bmlbA8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD7miqXlt6XmlbDvvIjorqHnrpfvvIk8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD7kuI3oia/mlbA8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD7oia/lk4HmlbDvvIjorqHnrpfvvIk8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD7miqXlt6Xnsbvlnos8L3RoPiA8IS0tIOaWsOWiniAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0Ym9keT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ciB2LWZvcj1cIihyLCBpZHgpIGluIHJlcG9ydGluZ0hpc3RvcnlcIiA6a2V5PVwiaWR4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7IHIuYmdEYXRlIH19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3sgci5zdGFmZiB8fCAnLScgfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57eyByLm9yZGVyTm8gfHwgJy0nIH19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3sgb3JkZXIuZGFhMDAzIHx8ICctJyB9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7IHBsYW5RdHlEaXNwbGF5IH19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3sgci5tYWNoaW5lTm8gfHwgJy0nIH19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3sgci5pbml0aWFsVmFsdWUgfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57eyByLnByb2R1Y3Rpb25Db3VudCB9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7IHIudG90YWxQcm9kdWN0aW9uIH19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3sgci5CZlF0eSB9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7IHIuT2tRdHkgfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57eyByLnJlcG9ydFR5cGUgfHwgJy0nIH19PC90ZD4gPCEtLSDmlrDlop4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyIHYtaWY9XCIhcmVwb3J0aW5nSGlzdG9yeS5sZW5ndGhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj1cIjEyXCIgY2xhc3M9XCJuby1kYXRhXCI+5pqC5peg5Y6G5Y+y5oql5bel6K6w5b2VPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90YWJsZT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L3ZpZXc+XHJcblxyXG4gICAgICAgICAgICA8IS0tIOenu+mZpOS6huWOn+adpeeahOeKtuaAgeihjOS4reeahOaMiemSrue7hCAtLT5cclxuICAgICAgICAgICAgPHZpZXcgY2xhc3M9XCJzdGF0dXMtcm93XCI+XHJcbiAgICAgICAgICAgICAgICA8IS0tPHZpZXcgY2xhc3M9XCJzdGF0dXMtYm94XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRleHQ+5py65Y+w6Z2i5p2/5pWw77yaPC90ZXh0PlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCB2LW1vZGVsPVwicHJvZHVjdGlvbkNvdW50XCIgY2xhc3M9XCJoaWdobGlnaHRcIiBkaXNhYmxlZCAvPlxyXG4gICAgICAgICAgICAgICAgPC92aWV3PlxyXG4gICAgICAgICAgICAgICAgPHZpZXcgY2xhc3M9XCJzdGF0dXMtYm94XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRleHQ+5b2T5YmN6YeH6ZuG5pWw77yaPC90ZXh0PlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCB2LW1vZGVsPVwiY2FsY3VsYXRlZEN1cnJlbnRDb3VudFwiIGNsYXNzPVwiaGlnaGxpZ2h0XCIgZGlzYWJsZWQgLz5cclxuICAgICAgICAgICAgICAgIDwvdmlldz5cclxuICAgICAgICAgICAgICAgIDx2aWV3IGNsYXNzPVwib3BlcmF0b3ItYm94XCI+LTwvdmlldz5cclxuICAgICAgICAgICAgICAgIDx2aWV3IGNsYXNzPVwic3RhdHVzLWJveCBzdGFuZGFsb25lLWJveFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0ZXh0PuW3suaJk+WNsOadoeeggeaVsO+8mjwvdGV4dD5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdi1tb2RlbD1cInNRdWFudGl0eVwiIGNsYXNzPVwiaGlnaGxpZ2h0XCIgZGlzYWJsZWQgLz5cclxuICAgICAgICAgICAgICAgIDwvdmlldz5cclxuICAgICAgICAgICAgICAgIDx2aWV3IGNsYXNzPVwib3BlcmF0b3ItYm94XCI+PTwvdmlldz5cclxuICAgICAgICAgICAgICAgIDx2aWV3IGNsYXNzPVwic3RhdHVzLWJveFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0ZXh0PuacuumHh+S4jeiJr+aVsO+8mjwvdGV4dD5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdi1tb2RlbD1cImNhbGN1bGF0ZWREZWZlY3RpdmVDb3VudFwiIGNsYXNzPVwiaGlnaGxpZ2h0XCIgZGlzYWJsZWQgLz5cclxuICAgICAgICAgICAgICAgIDwvdmlldz5cclxuICAgICAgICAgICAgICAgIDx2aWV3IGNsYXNzPVwic3RhdHVzLWJveCByZXN1bHQtYm94XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRleHQ+5bey55Sf5Lqn5pWw77yaPC90ZXh0PlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCB2LW1vZGVsPVwiY2FsY3VsYXRlZFRvdGFsUHJvZHVjdGlvblwiIGNsYXNzPVwiaGlnaGxpZ2h0XCIgZGlzYWJsZWQgLz5cclxuICAgICAgICAgICAgICAgIDwvdmlldz4tLT5cclxuICAgICAgICAgICAgPC92aWV3PlxyXG5cclxuICAgICAgICAgICAgPHZpZXcgY2xhc3M9XCJmbGV4LXJvdyBnYXAtbGdcIj5cclxuICAgICAgICAgICAgICAgIDwhLS0g5b2T5YmN5oql5bel5Lq66YOo5YiGIC0tPlxyXG4gICAgICAgICAgICAgICAgPHZpZXcgY2xhc3M9XCJjdXJyZW50LXVzZXItc2VjdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0ZXh0PuW9k+WJjeaKpeW3peS6uu+8mjwvdGV4dD5cclxuICAgICAgICAgICAgICAgICAgICA8dGV4dCBjbGFzcz1cImN1cnJlbnQtdXNlci1uYW1lXCI+e3sgc3RhZmZEaXNwbGF5IHx8ICfmnKrpgInmi6knIH19PC90ZXh0PlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJzZWxlY3QtdXNlci1idG5cIiBAY2xpY2s9XCJpc1Nob3dVc2VyU2VsZWN0ID0gdHJ1ZVwiPumAieS6ujwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC92aWV3PlxyXG5cclxuICAgICAgICAgICAgICAgIDwhLS0g5LiN6Imv5pWw6YeP6YOo5YiGIC0tPlxyXG4gICAgICAgICAgICAgICAgPHZpZXcgY2xhc3M9XCJkZWZlY3RpdmUtc2VjdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0ZXh0PuS4jeiJr+aVsOmHj++8mjwvdGV4dD5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdi1tb2RlbD1cImN1c3RvbUFtb3VudFwiIGNsYXNzPVwiaW5wIGJhZC1pbnB1dFwiIHBsYWNlaG9sZGVyPVwi6K+36L6T5YWl5pWw6YePXCIgLz5cclxuICAgICAgICAgICAgICAgIDwvdmlldz5cclxuXHJcbiAgICAgICAgICAgICAgICA8IS0tIOehruiupOaPkOS6pOWSjOiwg+acuuaKpeW3peaMiemSriAtLT5cclxuICAgICAgICAgICAgICAgIDx2aWV3IGNsYXNzPVwic3VibWl0LXNlY3Rpb25cIj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiZGV0YWlscy1idG5cIiBAY2xpY2s9XCJjb25maXJtQ3VzdG9tQW1vdW50XCI+56Gu6K6k5o+Q5LqkPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImRldGFpbHMtYnRuXCIgQGNsaWNrPVwiY29uZmlybVRpYW9qaUJhb2dvbmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAg5oql6K+V5Lqn5pWwPGJyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToyNHB4O1wiPu+8iOS7juiwg+acuuW8gOWni+WIsOW8gOW3peWJjeeahOivleS6p+aVsOmHj++8iTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvdmlldz5cclxuICAgICAgICAgICAgPC92aWV3PlxyXG5cclxuICAgICAgICAgICAgPCEtLSDpgInkurrlvLnnqpcgLS0+XHJcbiAgICAgICAgICAgIDx2aWV3IHYtaWY9XCJpc1Nob3dVc2VyU2VsZWN0XCIgY2xhc3M9XCJvdmVybGF5XCI+XHJcbiAgICAgICAgICAgICAgICA8dmlldyBjbGFzcz1cInBvcHVwIHVzZXItc2VsZWN0LXBvcHVwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSDmkJzntKLmoI8gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPHZpZXcgY2xhc3M9XCJ1c2VyLXNlYXJjaC1iYXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHYtbW9kZWwudHJpbT1cInVzZXJTZWFyY2hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ1c2VyLXNlYXJjaC1pbnB1dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIui+k+WFpeW3peWPt+aIluWnk+WQjeaQnOe0olwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAa2V5ZG93bi5lbnRlci5wcmV2ZW50IC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdi1pZj1cInVzZXJTZWFyY2hcIiBjbGFzcz1cInVzZXItc2VhcmNoLWNsZWFyXCIgQGNsaWNrPVwidXNlclNlYXJjaD0nJ1wiPua4heepujwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dmlldyBjbGFzcz1cInVzZXItc2VhcmNoLWluZm9cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIOWMuemFje+8mnt7IGZpbHRlcmVkVXNlcnMubGVuZ3RoIH19IC8ge3sgdXNlcnMubGVuZ3RoIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdmlldz5cclxuICAgICAgICAgICAgICAgICAgICA8L3ZpZXc+XHJcbiAgICAgICAgICAgICAgICAgICAgPHZpZXcgY2xhc3M9XCJ1c2VyLWxpc3Qtc2Nyb2xsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZSB2LWlmPVwiZmlsdGVyZWRVc2Vycy5sZW5ndGhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx2aWV3IGNsYXNzPVwidXNlci1saXN0LWdyaWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHYtZm9yPVwiKHUsIGluZGV4KSBpbiBmaWx0ZXJlZFVzZXJzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDprZXk9XCJpbmRleFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6Y2xhc3M9XCJbJ3VzZXItbGlzdC1idG4nLCB7J3NlbGVjdGVkJzogdT09PXN0YWZmTm99XVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9XCJzZWxlY3RVc2VyKHUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidXNlci1jb2RlXCI+e3sgdS5zcGxpdCgnOicpWzBdIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInVzZXItbmFtZVwiPnt7IHUuc3BsaXQoJzonKVsxXSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdmlldz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHZpZXcgdi1lbHNlIGNsYXNzPVwibm8tdXNlci1yZXN1bHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIOacquaJvuWIsOWMuemFjeS6uuWRmFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3ZpZXc+XHJcbiAgICAgICAgICAgICAgICAgICAgPC92aWV3PlxyXG4gICAgICAgICAgICAgICAgICAgIDx2aWV3IGNsYXNzPVwidXNlci1wb3B1cC1mb290ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImNsZWFuLWJ0biB3aWRlLWJ0blwiIEBjbGljaz1cImlzU2hvd1VzZXJTZWxlY3QgPSBmYWxzZVwiPuWFs+mXrTwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdmlldz5cclxuICAgICAgICAgICAgICAgIDwvdmlldz5cclxuICAgICAgICAgICAgPC92aWV3PlxyXG5cclxuICAgICAgICAgICAgPCEtLSDnpoHnlKjmjInpkq7vvJrigJjkv53lrZjlubbnlJ/mlYgn44CB4oCY5Y+W5raI4oCZIC0tPlxyXG4gICAgICAgICAgICA8IS0tPHZpZXcgY2xhc3M9XCJib3R0b20tc2VjdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInNhdmUtYnRuXCIgQGNsaWNrPVwic2F2ZVwiPuS/neWtmOW5tueUn+aViDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImNhbmNlbC1idG5cIiBAY2xpY2s9XCJjYW5jZWxcIj7lj5bmtog8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC92aWV3Pi0tPlxyXG4gICAgICAgICAgICA8IS0tIOS/neeVmeaXp+W8ueeqlyAtLT5cclxuICAgICAgICAgICAgPHZpZXcgdi1pZj1cImlzU2hvd1wiIGNsYXNzPVwib3ZlcmxheVwiPlxyXG4gICAgICAgICAgICAgICAgPHZpZXcgY2xhc3M9XCJwb3B1cFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDx2aWV3IGNsYXNzPVwiYm90dG9tLXNlY3Rpb24xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJjbGVhbi1idG5cIiB0eXBlPVwid2FyblwiIEBjbGljaz1cImRlbGV0ZUJhcmNvZGVcIj7lhbPpl608L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L3ZpZXc+XHJcbiAgICAgICAgICAgICAgICAgICAgPHZpZXcgY2xhc3M9XCJyZWFzb24tc2VjdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGV4dD7miqXlt6XkurrvvJo8L3RleHQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx2aWV3IGNsYXNzPVwicmVhc29uLWJ1dHRvbnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdi1mb3I9XCIodSxpbmRleCkgaW4gdXNlcnNcIiA6a2V5PVwiaW5kZXhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6Y2xhc3M9XCJ7J3JlYXNvbi1idG4nOnRydWUsJ3NlbGVjdGVkJzogdXNlcj09PXV9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPVwidG9nZ2xlVXNlcih1KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGZvcm1hdFVzZXIodSkgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3ZpZXc+XHJcbiAgICAgICAgICAgICAgICAgICAgPC92aWV3PlxyXG4gICAgICAgICAgICAgICAgPC92aWV3PlxyXG4gICAgICAgICAgICA8L3ZpZXc+XHJcblxyXG4gICAgICAgICAgICA8dmlldyB2LWlmPVwiYmFyY29kZUlzU2hvd1wiIGNsYXNzPVwib3ZlcmxheVwiPlxyXG4gICAgICAgICAgICAgICAgPHZpZXcgY2xhc3M9XCJwb3B1cFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDx1bmktdGFibGUgcmVmPVwidGFibGVcIiBib3JkZXIgc3RyaXBlIGVtcHR5VGV4dD1cIuaaguaXoOabtOWkmuaVsOaNrlwiIGNsYXNzPVwidGFibGUxXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx1bmktdHI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dW5pLXRoIGFsaWduPVwiY2VudGVyXCIgc3R5bGU9XCJmb250LXNpemU6NDBweDtcIj7nlJ/miJDml7bpl7Q8L3VuaS10aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bmktdGggYWxpZ249XCJjZW50ZXJcIiBzdHlsZT1cIndpZHRoOjM5JTtmb250LXNpemU6NDBweDtcIj7mnaHnoIE8L3VuaS10aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bmktdGggYWxpZ249XCJjZW50ZXJcIiBzdHlsZT1cImZvbnQtc2l6ZTo0MHB4O1wiPuaKpeW3peS6ujwvdW5pLXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVuaS10aCBhbGlnbj1cImNlbnRlclwiIHN0eWxlPVwiZm9udC1zaXplOjQwcHg7XCI+5oql5bel5pWw6YePPC91bmktdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdW5pLXRyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dW5pLXRyIHYtZm9yPVwiKGl0ZW0saW5kZXgpIGluIHJlcG9ydGluZ0xpc3RcIiA6a2V5PVwiaW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bmktdGQgYWxpZ249XCJjZW50ZXJcIj48aW5wdXQgdHlwZT1cInRleHRcIiB2LW1vZGVsPVwiaXRlbS5iZ0RhdGVcIiBzdHlsZT1cIndpZHRoOjI2dmg7XCIgLz48L3VuaS10ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bmktdGQgYWxpZ249XCJjZW50ZXJcIj48aW5wdXQgdi1tb2RlbD1cIml0ZW0uaXRlbU5vQ2FkZVwiIHN0eWxlPVwid2lkdGg6NDB2aDtcIiAvPjwvdW5pLXRkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVuaS10ZCBhbGlnbj1cImNlbnRlclwiPjxpbnB1dCB2LW1vZGVsPVwiaXRlbS5zdGFmZk5hbWVcIiAvPjwvdW5pLXRkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVuaS10ZCBhbGlnbj1cImNlbnRlclwiPjxpbnB1dCB2LW1vZGVsPVwiaXRlbS5va1F0eVwiIC8+PC91bmktdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdW5pLXRyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdW5pLXRhYmxlPlxyXG4gICAgICAgICAgICAgICAgICAgIDx2aWV3PjxidXR0b24gY2xhc3M9XCJjbGVhbi1idG5cIiB0eXBlPVwid2FyblwiIEBjbGljaz1cImJhcmNvZGVJc1Nob3c9ZmFsc2VcIj7lhbPpl608L2J1dHRvbj48L3ZpZXc+XHJcbiAgICAgICAgICAgICAgICA8L3ZpZXc+XHJcbiAgICAgICAgICAgIDwvdmlldz5cclxuICAgICAgICA8L3ZpZXc+XHJcbiAgICA8L3ZpZXc+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0PlxyXG4gICAgaW1wb3J0IHsgcHJpbnRUZW1wbGF0ZTMgfSBmcm9tIFwiLi4vdXRpbHMvcHJpbnRUZW1wbGF0ZVwiO1xyXG5cclxuICAgIGV4cG9ydCBkZWZhdWx0IHtcclxuICAgICAgICBwcm9wczogeyBvcmRlck5vOiBTdHJpbmcsIG9yZGVySWQ6IE51bWJlciwgbWFjaGluZU5vOiBTdHJpbmcgfSxcclxuICAgICAgICBkYXRhKCkge1xyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgaXNTaG93VXNlclNlbGVjdDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICBjdXJyZW50VXNlcjogJycsXHJcbiAgICAgICAgICAgICAgICBiYXJjb2RlQW1vdW50OiAnJyxcclxuICAgICAgICAgICAgICAgIHVzZXJzOiBbXSwgdXNlckZvcm06IFtdLCBzdGFmZjogW10sIHVzZXI6IHt9LFxyXG4gICAgICAgICAgICAgICAgcHJvZHVjdGlvbkNvdW50OiAwLCBwcmludGVkQ291bnQ6IDAsIGRlZmVjdGl2ZUNvdW50OiAwLCBvcmRlcjoge30sXHJcbiAgICAgICAgICAgICAgICBpY291bnQ6IDEsIGJxdHk6IDAsIHNRdWFudGl0eTogMCwga2dRdHk6IDAsIGluaXRpYWxWYWx1ZTogMCwgcXF0eTogMCxcclxuICAgICAgICAgICAgICAgIG5nU3RhaWQ6IDAsIGJ1ZmZlckRhdGE6ICcnLCBkYXRhVG9QcmludDogW10sIGlzTG9hZGluZzogZmFsc2UsIGJ1dDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICBEQUEwMDNMaXN0OiBbXSwgbGluZUxpc3Q6IFtdLCBpc1Nob3c6IGZhbHNlLCBiYXJjb2RlSXNTaG93OiBmYWxzZSwgYmFyY29kZUxpc3Q6IFtdLFxyXG4gICAgICAgICAgICAgICAgc3RhZmZObzogJycsIHByaW50U3RyOiAnJywgcHJpbnRNYWM6ICcnLCBibHVldG9vdGhTb2NrZXQ6IHt9LCBkZXZpY2U6ICcnLCB1dWlkOiAnJyxcclxuICAgICAgICAgICAgICAgIHByaW50TnVtOiAxLCByZXBvcnRpbmdMaXN0OiBbXSwgcHJpbnRMb2FkaW5nOiBmYWxzZSwgY3VzdG9tQW1vdW50OiAnJyxcclxuICAgICAgICAgICAgICAgIGlzR2VuZXJhdGluZ0JhcmNvZGU6IGZhbHNlLCBsYXN0R2VuZXJhdGVUaW1lOiAwLCBnZW5lcmF0ZVJlcXVlc3RJZDogbnVsbCxcclxuICAgICAgICAgICAgICAgIG5vd1RpbWVUaW1lcjogbnVsbCwgbm93VGltZTogJycsXHJcbiAgICAgICAgICAgICAgICB1c2VyU2VhcmNoOiAnJyxcclxuICAgICAgICAgICAgICAgIHJlZnJlc2hUaW1lcjogbnVsbCwgLy8g5paw5aKe77ya6Ieq5Yqo5Yi35paw5a6a5pe25ZmoXHJcbiAgICAgICAgICAgICAgICAvKiDmlrDlop7vvJrljoblj7LmiqXlt6XorrDlvZXmlbDnu4QgKi9cclxuICAgICAgICAgICAgICAgIHJlcG9ydGluZ0hpc3Rvcnk6IFtdXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGNvbXB1dGVkOiB7XHJcbiAgICAgICAgICAgIC8v6Imv5ZOB5pWw5a6e5pe26K6h566XXHJcbiAgICAgICAgICAgIHJlYWxUaW1lRGVmZWN0aXZlQ291bnQoKSB7XHJcbiAgICAgICAgICAgICAgICAvLyDkvJjlhYjnlKjovpPlhaXmoYbnmoTlgLzvvIzlkKbliJnnlKjmjqXlj6PmlbDmja5cclxuICAgICAgICAgICAgICAgIGNvbnN0IHZhbCA9IE51bWJlcih0aGlzLmN1c3RvbUFtb3VudCk7XHJcbiAgICAgICAgICAgICAgICBpZiAoIWlzTmFOKHZhbCkgJiYgdGhpcy5jdXN0b21BbW91bnQgIT09ICcnKSByZXR1cm4gdmFsO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2FsY3VsYXRlZERlZmVjdGl2ZUNvdW50O1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICByZWFsVGltZU9rQ291bnQoKSB7XHJcbiAgICAgICAgICAgICAgICAvLyDoia/lk4HmlbAgPSDmiqXlt6XmlbDvvIjorqHnrpfvvIkgLSDkuI3oia/mlbBcclxuICAgICAgICAgICAgICAgIGNvbnN0IHRvdGFsID0gKHRoaXMub3JkZXIuY3VycmVudENqTnVtIHx8IDApIC0gKHRoaXMub3JkZXIuaW5pdENqTnVtIHx8IDApO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRvdGFsIC0gdGhpcy5yZWFsVGltZURlZmVjdGl2ZUNvdW50O1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBjYWxjdWxhdGVkQ3VycmVudENvdW50KCkgeyByZXR1cm4gKHRoaXMucHJvZHVjdGlvbkNvdW50IHx8IDApIC0gKHRoaXMuaW5pdGlhbFZhbHVlIHx8IDApOyB9LFxyXG4gICAgICAgICAgICBjYWxjdWxhdGVkVG90YWxQcm9kdWN0aW9uKCkgeyByZXR1cm4gKHRoaXMua2dRdHkgfHwgMCk7IH0sIC8vIOiLpemcgOaBouWkjeaXp+mAu+i+keWPr+eUqCAodGhpcy5rZ1F0eXx8MCkrdGhpcy5jYWxjdWxhdGVkQ3VycmVudENvdW50XHJcbiAgICAgICAgICAgIGNhbGN1bGF0ZWREZWZlY3RpdmVDb3VudCgpIHsgcmV0dXJuIHRoaXMuY2FsY3VsYXRlZFRvdGFsUHJvZHVjdGlvbiAtICh0aGlzLnNRdWFudGl0eSB8fCAwKTsgfSxcclxuICAgICAgICAgICAgcGxhblF0eURpc3BsYXkoKSB7IHJldHVybiB0aGlzLm9yZGVyLnBsYW5RdHkgfHwgdGhpcy5vcmRlci5wbGFuUXVhbnRpdHkgfHwgdGhpcy5vcmRlci5kYWEwMDggfHwgMDsgfSxcclxuICAgICAgICAgICAgc3RhZmZEaXNwbGF5KCkge1xyXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLnN0YWZmTm8pIHJldHVybiAnJztcclxuICAgICAgICAgICAgICAgIGNvbnN0IHNlZ3MgPSB0aGlzLnN0YWZmTm8uc3BsaXQoJzonKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBzZWdzLmxlbmd0aCA+IDEgPyBgJHtzZWdzWzBdfSAke3NlZ3NbMV19YCA6IHRoaXMuc3RhZmZObztcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZmlsdGVyZWRVc2VycygpIHtcclxuICAgICAgICAgICAgICAgIGlmICghdGhpcy51c2VyU2VhcmNoKSByZXR1cm4gdGhpcy51c2VycztcclxuICAgICAgICAgICAgICAgIGNvbnN0IGt3ID0gdGhpcy51c2VyU2VhcmNoLnRyaW0oKS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudXNlcnMuZmlsdGVyKHUgPT4gdS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGt3KSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGNyZWF0ZWQoKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZURhdGEoKTtcclxuICAgICAgICAgICAgdGhpcy5mZXRjaERhdGEodHJ1ZSk7XHJcbiAgICAgICAgICAgIHRoaXMuaW5pdCgpO1xyXG4gICAgICAgICAgICB0aGlzLmdldFhTMDEwMSgpO1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZU5vd1RpbWUoKTtcclxuICAgICAgICAgICAgLy8g56eS57qn5Yi35paw77yb5aaC5LiN6ZyA5Yqo5oCB6Lez56eS5Y+v5pS55Li6IDYwMDAwXHJcbiAgICAgICAgICAgIHRoaXMubm93VGltZVRpbWVyID0gc2V0SW50ZXJ2YWwodGhpcy51cGRhdGVOb3dUaW1lLCAxMDAwKTtcclxuXHJcbiAgICAgICAgICAgIC8vIOaWsOWinu+8muavj+WIhumSn+iHquWKqOWIt+aWsOaVsOaNru+8iDYwMDAw5q+r56eSID0gMeWIhumSn++8iVxyXG4gICAgICAgICAgICB0aGlzLnN0YXJ0QXV0b1JlZnJlc2goKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGJlZm9yZURlc3Ryb3koKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLm5vd1RpbWVUaW1lcikgY2xlYXJJbnRlcnZhbCh0aGlzLm5vd1RpbWVUaW1lcik7XHJcbiAgICAgICAgICAgIC8vIOaWsOWinu+8mua4heeQhuiHquWKqOWIt+aWsOWumuaXtuWZqFxyXG4gICAgICAgICAgICB0aGlzLnN0b3BBdXRvUmVmcmVzaCgpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgbWV0aG9kczoge1xyXG4gICAgICAgICAgICAvLyDmlrDlop7vvJrlvIDlp4voh6rliqjliLfmlrBcclxuICAgICAgICAgICAgc3RhcnRBdXRvUmVmcmVzaCgpIHtcclxuICAgICAgICAgICAgICAgIC8vIOWFiOa4hemZpOWPr+iDveWtmOWcqOeahOaXp+WumuaXtuWZqFxyXG4gICAgICAgICAgICAgICAgdGhpcy5zdG9wQXV0b1JlZnJlc2goKTtcclxuICAgICAgICAgICAgICAgIC8vIOiuvue9ruaWsOeahOWumuaXtuWZqO+8jOavj+WIhumSn+aJp+ihjOS4gOasoVxyXG4gICAgICAgICAgICAgICAgdGhpcy5yZWZyZXNoVGltZXIgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ+iHquWKqOWIt+aWsOaVsOaNri4uLicpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVmcmVzaCgpO1xyXG4gICAgICAgICAgICAgICAgfSwgNjAwMDApOyAvLyA2MDAwMOavq+enkiA9IDHliIbpkp9cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgLy8g5paw5aKe77ya5YGc5q2i6Ieq5Yqo5Yi35pawXHJcbiAgICAgICAgICAgIHN0b3BBdXRvUmVmcmVzaCgpIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnJlZnJlc2hUaW1lcikge1xyXG4gICAgICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5yZWZyZXNoVGltZXIpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVmcmVzaFRpbWVyID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSxcclxuXHJcbiAgICAgICAgICAgIGZvcm1hdFVzZXIodSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKCF1KSByZXR1cm4gJyc7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBzZWdzID0gdS5zcGxpdCgnOicpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHNlZ3MubGVuZ3RoID4gMSA/IGAke3NlZ3NbMF19ICR7c2Vnc1sxXX1gIDogdTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgc2VsZWN0VXNlcih1KSB7IHRoaXMuc3RhZmZObyA9IHU7IHRoaXMuaXNTaG93VXNlclNlbGVjdCA9IGZhbHNlOyB0aGlzLnVzZXJTZWFyY2ggPSAnJzsgfSxcclxuICAgICAgICAgICAgLyog5L+u5pS577ya5aKe5Yqg56eSICovXHJcbiAgICAgICAgICAgIHVwZGF0ZU5vd1RpbWUoKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBkID0gbmV3IERhdGUoKSwgcCA9IG4gPT4gbi50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vd1RpbWUgPSBgJHtkLmdldEZ1bGxZZWFyKCl9LSR7cChkLmdldE1vbnRoKCkgKyAxKX0tJHtwKGQuZ2V0RGF0ZSgpKX0gJHtwKGQuZ2V0SG91cnMoKSl9OiR7cChkLmdldE1pbnV0ZXMoKSl9OiR7cChkLmdldFNlY29uZHMoKSl9YDtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgaW5pdGlhbGl6ZURhdGEoKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnByb2R1Y3Rpb25Db3VudCA9IHRoaXMucHJpbnRlZENvdW50ID0gdGhpcy5kZWZlY3RpdmVDb3VudCA9IDA7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmljb3VudCA9IDE7IHRoaXMuYnF0eSA9IDA7IHRoaXMuc1F1YW50aXR5ID0gMDsgdGhpcy5rZ1F0eSA9IDA7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmluaXRpYWxWYWx1ZSA9IDA7IHRoaXMucXF0eSA9IDA7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmlzR2VuZXJhdGluZ0JhcmNvZGUgPSBmYWxzZTsgdGhpcy5sYXN0R2VuZXJhdGVUaW1lID0gMDsgdGhpcy5nZW5lcmF0ZVJlcXVlc3RJZCA9IG51bGw7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHJlc2V0R2VuZXJhdGVTdGF0ZSgpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaXNHZW5lcmF0aW5nQmFyY29kZSA9IGZhbHNlOyB0aGlzLmdlbmVyYXRlUmVxdWVzdElkID0gbnVsbDsgdGhpcy5sYXN0R2VuZXJhdGVUaW1lID0gMDtcclxuICAgICAgICAgICAgICAgIHRoaXMuJHNob3dNZXNzYWdlKFwi5bey6YeN572u5p2h56CB55Sf5oiQ54q25oCBXCIpO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAvLyDkv67mlLnvvJrlnKjmiYvliqjliLfmlrDml7bkuZ/ph43nva7oh6rliqjliLfmlrDorqHml7blmahcclxuICAgICAgICAgICAgcmVmcmVzaCgpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuJHNlbmRQb3N0UmVxdWVzdCh7XHJcbiAgICAgICAgICAgICAgICAgICAgdXJsOiBcImh0dHA6Ly8xOTIuMTY4LjAuOTQ6OTA5NS9OdW1lcmljYWwvUmVmcmVzaERldkJ5Y2xcIixcclxuICAgICAgICAgICAgICAgICAgICBkYXRhOiB7IG1hY2hpbmVObzogdGhpcy5vcmRlci5tYWNoaW5lTm8gfSxcclxuICAgICAgICAgICAgICAgICAgICBjb250ZW50VHlwZTogXCJhcHBsaWNhdGlvbi9qc29uXCJcclxuICAgICAgICAgICAgICAgIH0pLnRoZW4ociA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHIuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mZXRjaERhdGEodHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuJHNob3dNZXNzYWdlKFwi5pWw5o2u5Yi35paw5oiQ5YqfXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuJHNob3dNZXNzYWdlKFwi5ZCM5q2l5aSx6LSlXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pLmNhdGNoKGVycm9yID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCfliLfmlrDlpLHotKU6JywgZXJyb3IpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuJHNob3dNZXNzYWdlKFwi5Yi35paw5aSx6LSl77yM6K+35qOA5p+l572R57uc6L+e5o6lXCIpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIG9uRGFhMDAzQ2hhbmdlKHYpIHtcclxuICAgICAgICAgICAgICAgIGxldCBvID0gdGhpcy5saW5lTGlzdFt0aGlzLkRBQTAwM0xpc3QuaW5kZXhPZih2KV07XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9yZGVySWQgPSBvLmlkOyB0aGlzLm9yZGVyTm8gPSBvLmRhYTAwMTtcclxuICAgICAgICAgICAgICAgIHVuaS5zZXRTdG9yYWdlU3luYygnbWFjaGluZScsIHRoaXMubWFjaGluZU5vKTtcclxuICAgICAgICAgICAgICAgIHVuaS5zZXRTdG9yYWdlU3luYygnb3JkZXJJZCcsIHRoaXMub3JkZXJJZCk7XHJcbiAgICAgICAgICAgICAgICB1bmkuc2V0U3RvcmFnZVN5bmMoJ29yZGVyTm8nLCB0aGlzLm9yZGVyTm8pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5mZXRjaERhdGEoZmFsc2UpO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBmZXRjaERhdGEoZmxhZykge1xyXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLm9yZGVySWQgJiYgIXRoaXMub3JkZXJObykgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5nZXRPcmRlckJ5SWQoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0V29tZGFhUHJpbnRCeUlkKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmdldFJlcG9ydGluZ0hpc3RvcnkoKTsgLy8g5paw5aKe77ya5q+P5qyh5Yi35paw5ZCM5q2l5Y6G5Y+yXHJcbiAgICAgICAgICAgICAgICBpZiAoZmxhZykge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuJHBvc3QoeyB1cmw6IFwiL1dvbWRhYS9HZXRXb21kYWFzQnlTaG93XCIsIGRhdGE6IHsgbWFjaGluZU5vOiB0aGlzLm1hY2hpbmVObyB9IH0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC50aGVuKHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxpbmVMaXN0ID0gcmVzLmRhdGEudGJCaWxsTGlzdDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuREFBMDAzTGlzdCA9IHJlcy5kYXRhLnRiQmlsbExpc3QubWFwKGkgPT4gaS5kYWEwMDMpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgLyog5paw5aKe77ya6I635Y+W5Y6G5Y+y5oql5bel6K6w5b2VICovXHJcbiAgICAgICAgICAgIC8qIOS/ruaUue+8muinhOiMg+WOhuWPsuaXtumXtOWIsOenkiAqL1xyXG4gICAgICAgICAgICBnZXRSZXBvcnRpbmdIaXN0b3J5KCkge1xyXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLm9yZGVyTm8pIHsgdGhpcy5yZXBvcnRpbmdIaXN0b3J5ID0gW107IHJldHVybjsgfVxyXG4gICAgICAgICAgICAgICAgY29uc3QgZm10U2VjID0gdiA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF2KSByZXR1cm4gJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8g5YW85a655ZCO56uv5Y+v6IO96L+U5Zue55qE5LiN5ZCM5qC85byPXHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZCA9IG5ldyBEYXRlKHR5cGVvZiB2ID09PSAnc3RyaW5nJyA/IHYucmVwbGFjZSgvLS9nLCAnLycpIDogdik7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzTmFOKGQuZ2V0VGltZSgpKSkgcmV0dXJuIHY7IC8vIOaXoOazleino+aekOWImeWOn+agt+i/lOWbnlxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHAgPSBuID0+IG4udG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtkLmdldEZ1bGxZZWFyKCl9LSR7cChkLmdldE1vbnRoKCkgKyAxKX0tJHtwKGQuZ2V0RGF0ZSgpKX0gJHtwKGQuZ2V0SG91cnMoKSl9OiR7cChkLmdldE1pbnV0ZXMoKSl9OiR7cChkLmdldFNlY29uZHMoKSl9YDtcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICB0aGlzLiRwb3N0KHtcclxuICAgICAgICAgICAgICAgICAgICB1cmw6IFwiL1dvbWRhYS9HZXRCeUJpbGxOb0JHXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgZGF0YTogeyBiaWxsTm86IHRoaXMub3JkZXJObywgbWFjaGluZU5vOiB0aGlzLm1hY2hpbmVObyB8fCBudWxsIH1cclxuICAgICAgICAgICAgICAgIH0pLnRoZW4ocmVzID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBsaXN0ID0gcmVzPy5kYXRhPy50YkJpbGxMaXN0IHx8IHJlcz8uZGF0YSB8fCBbXTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlcG9ydGluZ0hpc3RvcnkgPSBsaXN0Lm1hcChyID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8g5L6d5o2u5L2g5pWw5o2u5bqT5a2X5q615YGa5pig5bCE77yI5LiL6Z2i5a2X5q615ZCN5oyJ5bi46KeB5ZG95ZCN5Li+5L6L77yM6ZyA6KaB5oyJ5a6e6ZmF5pS577yJXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZ0RhdGU6IHIuYmdEYXRlIHx8ICcnLCAvLyDmiqXlt6Xml7bpl7RcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YWZmOiAoci5zdGFmZk5vID8gKHIuc3RhZmZObyArICcgJyArIChyLnN0YWZmTmFtZSB8fCAnJykpIDogKHIuc3RhZmZOYW1lIHx8ICcnKSksLy/miqXlt6XkurpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yZGVyTm86IHIuYmlsbE5vLC8v5bel5Y2V5Y+3XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYWNoaW5lTm86IHIubWFjaGluZU5vLC8v5py65Y+w5Y+3XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbml0aWFsVmFsdWU6IHIuY3NRdHkgPz8gMCwvL+WIneWni+mHh+mbhuaVsFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvZHVjdGlvbkNvdW50OiByLmNqUXR5ID8/IDAsLy/miqXlt6Xml7bph4fpm4bmlbBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsUHJvZHVjdGlvbjogKHIuY2pRdHkgLSByLmNzUXR5KSA/PyAwLC8v5oql5bel5pWw77yI6K6h566X77yJXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCZlF0eTogci5iZlF0eSwvL+S4jeiJr+aVsFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgT2tRdHk6IHIub2tRdHksLy/oia/lk4HmlbDvvIjorqHnrpfvvIlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcG9ydFR5cGU6ci5yZW1hcmsgLy/miqXlt6XnsbvlnotcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfSkuY2F0Y2goKCkgPT4geyB0aGlzLnJlcG9ydGluZ0hpc3RvcnkgPSBbXTsgfSk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHRvZ2dsZVVzZXIodSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKCF1KSByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB0aGlzLnVzZXIgPSB0aGlzLnVzZXIgPT09IHUgPyBudWxsIDogdTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RhZmZObyA9IHRoaXMudXNlcjtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgLy/pgInmi6nmiqXlt6XkurpcclxuICAgICAgICAgICAgY29uZmlybUN1c3RvbUFtb3VudCgpIHtcclxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5jdXN0b21BbW91bnQgfHwgaXNOYU4oTnVtYmVyKHRoaXMuY3VzdG9tQW1vdW50KSkpIHsgdGhpcy4kc2hvd01lc3NhZ2UoJ+ivt+i+k+WFpeacieaViOeahOaVsOmHjycpOyByZXR1cm47IH1cclxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5zdGFmZk5vKSB7IHRoaXMuJHNob3dNZXNzYWdlKCfor7fpgInmi6nmiqXlt6XkuronKTsgcmV0dXJuOyB9XHJcbiAgICAgICAgICAgICAgICBjb25zdCBzdGFmZk5vID0gdGhpcy5zdGFmZk5vLnNwbGl0KCc6JylbMF07XHJcbiAgICAgICAgICAgICAgICBjb25zdCBhbW91bnQgPSBOdW1iZXIodGhpcy5jdXN0b21BbW91bnQpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy4kcG9zdCh7XHJcbiAgICAgICAgICAgICAgICAgICAgdXJsOiBcIi9NZXNJbnZJdGVtQmFyY29kZXMvQWRkQkZUb0JhcmNvZGVzXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBvcmRlck5vOiB0aGlzLm9yZGVyTm8sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9yZGVySWQ6IHRoaXMub3JkZXJJZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmY6IGFtb3VudCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhZmZObzogc3RhZmZObyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaW5pdENqTnVtOiB0aGlzLm9yZGVyLmluaXRDak51bSwgICAgICAgIC8vIOWIneWni+mHh+mbhuaVsFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50Q2pOdW06IHRoaXMub3JkZXIuY3VycmVudENqTnVtICAgLy8g5oql5bel5pe26YeH6ZuG5pWwXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSkudGhlbihyZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXMuc3RhdHVzID09IDEpIHsgdGhpcy4kc2hvd01lc3NhZ2UocmVzLm1lc3NhZ2UpOyByZXR1cm47IH1cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLiRzaG93TWVzc2FnZSgn5oql5bqf5pWw6YeP5aGr5YaZ5oiQ5YqfJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mZXRjaERhdGEodHJ1ZSk7IC8vIOiHquWKqOWIt+aWsOWOhuWPslxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3VzdG9tQW1vdW50ID0gJyc7XHJcbiAgICAgICAgICAgICAgICB9KS5jYXRjaCgoKSA9PiB0aGlzLiRzaG93TWVzc2FnZSgn5oql5bqf5pWw6YeP5aGr5YaZ5aSx6LSl77yM6K+36YeN6K+VJykpO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAvLyDmlrDlop7vvJrosIPmnLrmiqXlt6VcclxuICAgICAgICAgICAgY29uZmlybVRpYW9qaUJhb2dvbmcoKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuY3VzdG9tQW1vdW50IHx8IGlzTmFOKE51bWJlcih0aGlzLmN1c3RvbUFtb3VudCkpKSB7IHRoaXMuJHNob3dNZXNzYWdlKCfor7fovpPlhaXmnInmlYjnmoTmlbDph48nKTsgcmV0dXJuOyB9XHJcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuc3RhZmZObykgeyB0aGlzLiRzaG93TWVzc2FnZSgn6K+36YCJ5oup5oql5bel5Lq6Jyk7IHJldHVybjsgfVxyXG4gICAgICAgICAgICAgICAgY29uc3Qgc3RhZmZObyA9IHRoaXMuc3RhZmZOby5zcGxpdCgnOicpWzBdO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgYW1vdW50ID0gTnVtYmVyKHRoaXMuY3VzdG9tQW1vdW50KTtcclxuICAgICAgICAgICAgICAgIHRoaXMuJHBvc3Qoe1xyXG4gICAgICAgICAgICAgICAgICAgIHVybDogXCIvTWVzSW52SXRlbUJhcmNvZGVzL0FkZEJGVG9CYXJjb2Rlc1wiLCAvLyDlpoLmnInosIPmnLrkuJPnlKjmjqXlj6Por7fmm7/mjaJcclxuICAgICAgICAgICAgICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9yZGVyTm86IHRoaXMub3JkZXJObyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgb3JkZXJJZDogdGhpcy5vcmRlcklkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBiZjogYW1vdW50LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFmZk5vOiBzdGFmZk5vLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpbml0Q2pOdW06IHRoaXMub3JkZXIuaW5pdENqTnVtLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50Q2pOdW06IHRoaXMub3JkZXIuY3VycmVudENqTnVtLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAndGlhb2ppJyAvLyDlj6/liqDljLrliIblrZfmrrXvvIzlkI7nq6/lpoLpnIDljLrliIbosIPmnLrmiqXlt6VcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KS50aGVuKHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlcy5zdGF0dXMgPT0gMSkgeyB0aGlzLiRzaG93TWVzc2FnZShyZXMubWVzc2FnZSk7IHJldHVybjsgfVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuJHNob3dNZXNzYWdlKCfosIPmnLrmiqXlt6XmiJDlip8nKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZldGNoRGF0YSh0cnVlKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmN1c3RvbUFtb3VudCA9ICcnO1xyXG4gICAgICAgICAgICAgICAgfSkuY2F0Y2goKCkgPT4gdGhpcy4kc2hvd01lc3NhZ2UoJ+iwg+acuuaKpeW3peWksei0pe+8jOivt+mHjeivlScpKTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgc2F2ZSgpIHtcclxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5zdGFmZk5vKSB7IHRoaXMuJHNob3dNZXNzYWdlKCfor7fpgInmi6nmiqXlt6XkuronKTsgcmV0dXJuOyB9XHJcbiAgICAgICAgICAgICAgICB1bmkuc2hvd1RvYXN0KHsgdGl0bGU6ICfkv53lrZjmiJDlip8nLCBpY29uOiAnc3VjY2VzcycgfSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmdldFJlcG9ydGluZ0hpc3RvcnkoKTsgLy8g5L+d5a2Y5ZCO5Lmf5Y+v5Yi35pawXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGNhbmNlbCgpIHsgdW5pLnNob3dUb2FzdCh7IHRpdGxlOiAn5Y+W5raI5pON5L2cJywgaWNvbjogJ25vbmUnIH0pOyB9LFxyXG4gICAgICAgICAgICBnZXRPcmRlckJ5SWQoKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLiRwb3N0KHsgdXJsOiBcIi9Xb21kYWEvR2V0V29tZGFhQnlJZFwiLCBkYXRhOiB7IG9yZGVySWQ6IHRoaXMub3JkZXJJZCwgb3JkZXJObzogdGhpcy5vcmRlck5vIH0gfSlcclxuICAgICAgICAgICAgICAgICAgICAudGhlbihyZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9yZGVyID0gcmVzLmRhdGEudGJCaWxsTGlzdDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcmludGVkQ291bnQgPSByZXMuZGF0YS50YkJpbGxMaXN0LmJncXR5IHx8IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGVmZWN0aXZlQ291bnQgPSByZXMuZGF0YS50YkJpbGxMaXN0LmJsUXR5IHx8IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvZHVjdGlvbkNvdW50ID0gdGhpcy5vcmRlci50b2RheU91dHB1dCB8fCAwO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBnZXRYUzAxMDEoKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLiRwb3N0KHsgdXJsOiBcIi9NZXNTdGFmZi9HZXRBbGxYUzAxMDFcIiB9KVxyXG4gICAgICAgICAgICAgICAgICAgIC50aGVuKHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhZmYgPSByZXMuZGF0YS50YkJpbGxMaXN0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVzZXJzID0gdGhpcy5zdGFmZi5tYXAocyA9PiBzLnN0YWZmTm8gKyBcIjpcIiArIHMuc3RhZmZOYW1lKTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZ2V0V29tZGFhUHJpbnRCeUlkKCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy4kcG9zdCh7IHVybDogXCIvV29tZGFhL0dldFdvbWRhYVByaW50QnlJZFwiLCBkYXRhOiB7IG9yZGVySWQ6IHRoaXMub3JkZXJJZCB9IH0pXHJcbiAgICAgICAgICAgICAgICAgICAgLnRoZW4ocmVzID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXM/LmRhdGE/LnRiQmlsbExpc3QpIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZCA9IHJlcy5kYXRhLnRiQmlsbExpc3Q7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYnF0eSA9IGQuYnF0eTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pY291bnQgPSAxO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNRdWFudGl0eSA9IGQuc1F1YW50aXR5IHx8IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW5pdGlhbFZhbHVlID0gZC5pbml0aWFsVmFsdWUgfHwgMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5rZ1F0eSA9IGQua2dRdHkgfHwgMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5iYXJjb2RlQW1vdW50ID0gZC5xcXR5IHx8IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmJxdHkgPT09IDApIHRoaXMuQ29tcGxldGVkKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSkuY2F0Y2goKCkgPT4geyB9KTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgQ29tcGxldGVkKCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy4kcG9zdCh7IHVybDogXCIvTWVzT3JkZXJTdGEvQ29tcGxldGVkXCIsIGRhdGE6IHsgb3JkZXJJZDogdGhpcy5vcmRlcklkLCBvcmRlck5vOiB0aGlzLm9yZGVyTm8gfSB9KTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgaW5pdCgpIHtcclxuICAgICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdiA9IHRoaXMuZ2V0QW5kcm9pZFZlcnNpb24oKTtcclxuICAgICAgICAgICAgICAgICAgICB2ID49IDEyID8gdGhpcy5pbml0Rm9yQW5kcm9pZDEyUGx1cygpIDogdGhpcy5pbml0Rm9yQW5kcm9pZExlZ2FjeSgpO1xyXG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgeyBjb25zb2xlLmVycm9yKGUpOyB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGdldEFuZHJvaWRWZXJzaW9uKCkge1xyXG4gICAgICAgICAgICAgICAgdHJ5IHsgdmFyIEJ1aWxkID0gcGx1cy5hbmRyb2lkLmltcG9ydENsYXNzKFwiYW5kcm9pZC5vcy5CdWlsZFwiKTsgcmV0dXJuIEJ1aWxkLlZFUlNJT04uU0RLX0lOVDsgfVxyXG4gICAgICAgICAgICAgICAgY2F0Y2ggeyByZXR1cm4gMzA7IH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgaW5pdEZvckFuZHJvaWQxMlBsdXMoKSB7XHJcbiAgICAgICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciBtYWluID0gcGx1cy5hbmRyb2lkLnJ1bnRpbWVNYWluQWN0aXZpdHkoKTtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgQmx1ZXRvb3RoTWFuYWdlciA9IHBsdXMuYW5kcm9pZC5pbXBvcnRDbGFzcyhcImFuZHJvaWQuYmx1ZXRvb3RoLkJsdWV0b290aE1hbmFnZXJcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIENvbnRleHQgPSBwbHVzLmFuZHJvaWQuaW1wb3J0Q2xhc3MoXCJhbmRyb2lkLmNvbnRlbnQuQ29udGV4dFwiKTtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgVVVJRCA9IHBsdXMuYW5kcm9pZC5pbXBvcnRDbGFzcyhcImphdmEudXRpbC5VVUlEXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXVpZCA9IFVVSUQuZnJvbVN0cmluZyhcIjAwMDAxMTAxLTAwMDAtMTAwMC04MDAwLTAwODA1RjlCMzRGQlwiKTtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgbWdyID0gbWFpbi5nZXRTeXN0ZW1TZXJ2aWNlKENvbnRleHQuQkxVRVRPT1RIX1NFUlZJQ0UpO1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciBhZHAgPSBtZ3IuZ2V0QWRhcHRlcigpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChhZHAgJiYgYWRwLmlzRGlzY292ZXJpbmcoKSkgYWRwLmNhbmNlbERpc2NvdmVyeSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucHJpbnRNYWMgPSB1bmkuZ2V0U3RvcmFnZVN5bmMoJ3ByaW50TWFjJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIG1hYyA9IHRoaXMucHJpbnRNYWMgfHwgXCJEQzoxRDozMDo5MTowNjo1MlwiO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChhZHApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kZXZpY2UgPSBhZHAuZ2V0UmVtb3RlRGV2aWNlKG1hYyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsdXMuYW5kcm9pZC5pbXBvcnRDbGFzcyh0aGlzLmRldmljZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgeyB0aGlzLmluaXRGb3JBbmRyb2lkTGVnYWN5KCk7IH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgaW5pdEZvckFuZHJvaWRMZWdhY3koKSB7XHJcbiAgICAgICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciBCbHVldG9vdGhBZGFwdGVyID0gcGx1cy5hbmRyb2lkLmltcG9ydENsYXNzKFwiYW5kcm9pZC5ibHVldG9vdGguQmx1ZXRvb3RoQWRhcHRlclwiKTtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgVVVJRCA9IHBsdXMuYW5kcm9pZC5pbXBvcnRDbGFzcyhcImphdmEudXRpbC5VVUlEXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXVpZCA9IFVVSUQuZnJvbVN0cmluZyhcIjAwMDAxMTAxLTAwMDAtMTAwMC04MDAwLTAwODA1RjlCMzRGQlwiKTtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgQkFkYXB0ZXIgPSBCbHVldG9vdGhBZGFwdGVyLmdldERlZmF1bHRBZGFwdGVyKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKEJBZGFwdGVyKSBCQWRhcHRlci5jYW5jZWxEaXNjb3ZlcnkoKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnByaW50TWFjID0gdW5pLmdldFN0b3JhZ2VTeW5jKCdwcmludE1hYycpO1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciBtYWMgPSB0aGlzLnByaW50TWFjIHx8IFwiREM6MUQ6MzA6OTE6MDY6NTJcIjtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoQkFkYXB0ZXIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kZXZpY2UgPSBCQWRhcHRlci5nZXRSZW1vdGVEZXZpY2UobWFjKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGx1cy5hbmRyb2lkLmltcG9ydENsYXNzKHRoaXMuZGV2aWNlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ibHVldG9vdGhTb2NrZXQgPSB0aGlzLmRldmljZS5jcmVhdGVJbnNlY3VyZVJmY29tbVNvY2tldFRvU2VydmljZVJlY29yZCh0aGlzLnV1aWQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwbHVzLmFuZHJvaWQuaW1wb3J0Q2xhc3ModGhpcy5ibHVldG9vdGhTb2NrZXQpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBkZWxldGVCYXJjb2RlKCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pc1Nob3cgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHRoaXMuaXNHZW5lcmF0aW5nQmFyY29kZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RJZCA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmJ1ZmZlckRhdGEgPSAnJzsgdGhpcy5kYXRhVG9QcmludCA9IFtdO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdGFmZk5vID0gbnVsbDsgdGhpcy51c2VyID0gJyc7IHRoaXMuYmFyY29kZUFtb3VudCA9ICcnOyB0aGlzLmljb3VudCA9IDE7IHRoaXMuc3RhZmYgPSBudWxsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBzY29wZWQ+XHJcbiAgICAuc2VjdGlvbi10aXRsZSB7XHJcbiAgICAgICAgZm9udC1zaXplOiAyMHB4O1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgICAgIG1hcmdpbjogMThweCAwIDhweCAwO1xyXG4gICAgICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICMwMDdhZmY7XHJcbiAgICAgICAgcGFkZGluZzogOHB4IDE4cHg7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4IDhweCAwIDA7XHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgfVxyXG5cclxuICAgIC5oaXN0b3J5LXRpdGxlIHtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAjNTU1O1xyXG4gICAgfVxyXG5cclxuICAgIC5oaWdobGlnaHQtcm93IHtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZlOWIzICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICB9XHJcblxyXG4gICAgLnJlcG9ydC10YWJsZSAuc3VtbWFyeS1yb3cge1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICNmMGY4ZmY7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgIH1cclxuXHJcbiAgICAucmVwb3J0LXRhYmxlIC5uby1kYXRhIHtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgY29sb3I6ICM3Nzc7XHJcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5yZXBvcnQtaGVhZGVyIHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDhweDtcclxuICAgIH1cclxuXHJcbiAgICAuaGVhZGVyLWJ1dHRvbnMge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICBnYXA6IDEycHg7XHJcbiAgICB9XHJcblxyXG4gICAgLnJlZnJlc2gtYnRuLWhlYWRlciB7XHJcbiAgICAgICAgYmFja2dyb3VuZDogIzAwQTJFOTtcclxuICAgICAgICBjb2xvcjogI2ZmZjtcclxuICAgICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcclxuICAgICAgICBwYWRkaW5nOiA4cHggMjBweDtcclxuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzO1xyXG4gICAgfVxyXG5cclxuICAgICAgICAucmVmcmVzaC1idG4taGVhZGVyOmhvdmVyIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogIzAwODZjMDtcclxuICAgICAgICB9XHJcblxyXG4gICAgLnJlc2V0LWJ0bi1oZWFkZXIge1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICNmZjZiNmI7XHJcbiAgICAgICAgY29sb3I6ICNmZmY7XHJcbiAgICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XHJcbiAgICAgICAgcGFkZGluZzogOHB4IDE2cHg7XHJcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cztcclxuICAgIH1cclxuXHJcbiAgICAgICAgLnJlc2V0LWJ0bi1oZWFkZXI6aG92ZXIge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZTk0ZDRkO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAucGFnZSB7XHJcbiAgICAgICAgcGFkZGluZzogMS4ydmggMnZ3O1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgfVxyXG5cclxuICAgIC53aWRlLWxheW91dCB7XHJcbiAgICAgICAgbWF4LXdpZHRoOiBub25lO1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgfVxyXG5cclxuICAgIC5wYWdlLmhhcy1vdmVybGF5IC5zdGF0dXMtc2VjdGlvbiA+IDpub3QoLm92ZXJsYXkpIHtcclxuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICAgIH1cclxuXHJcbiAgICAucGFnZS5oYXMtb3ZlcmxheSAuc3RhdHVzLXNlY3Rpb24gPiAub3ZlcmxheSB7XHJcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87XHJcbiAgICB9XHJcblxyXG4gICAgLnJlcG9ydC10YWJsZS13cmFwcGVyIHtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XHJcbiAgICB9XHJcblxyXG4gICAgLnRhYmxlLXNjcm9sbCB7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgbWluLWhlaWdodDogNDBweDtcclxuICAgIH1cclxuXHJcbiAgICAucmVwb3J0LXRpdGxlIHtcclxuICAgICAgICBmb250LXNpemU6IDMycHg7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgfVxyXG5cclxuICAgIC8qIDIuIOWMuuWdl+agh+mimCAqL1xyXG4gICAgLnNlY3Rpb24tdGl0bGUsIC5oaXN0b3J5LXRpdGxlIHtcclxuICAgICAgICBmb250LXNpemU6IDI2cHg7XHJcbiAgICB9XHJcblxyXG4gICAgLyogMy4g6KGo5qC85a2X5L2TICovXHJcbiAgICAucmVwb3J0LXRhYmxlLCAucmVwb3J0LXRhYmxlIHRoLCAucmVwb3J0LXRhYmxlIHRkIHtcclxuICAgICAgICBmb250LXNpemU6IDIycHg7XHJcbiAgICB9XHJcblxyXG4gICAgLyogNC4g5b2T5YmN5oql5bel5Lq644CB5LiN6Imv5pWw6YeP562J6L6T5YWl5Yy6ICovXHJcbiAgICAuY3VycmVudC11c2VyLXNlY3Rpb24sXHJcbiAgICAuZGVmZWN0aXZlLXNlY3Rpb24sXHJcbiAgICAuc3VibWl0LXNlY3Rpb24ge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMzBweDtcclxuICAgIH1cclxuXHJcbiAgICAvKiA1LiDovpPlhaXmoYblrZfkvZMgKi9cclxuICAgIC5pbnAsIC5iYWQtaW5wdXQge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMjhweDtcclxuICAgIH1cclxuXHJcbiAgICAvKiA2LiDmjInpkq7lrZfkvZMgKi9cclxuICAgIC5kZXRhaWxzLWJ0bixcclxuICAgIC5zZWxlY3QtdXNlci1idG4sXHJcbiAgICAucmVmcmVzaC1idG4taGVhZGVyLFxyXG4gICAgLnJlc2V0LWJ0bi1oZWFkZXIge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMjJweDtcclxuICAgIH1cclxuXHJcbiAgICAucmVwb3J0LXRhYmxlIHtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBtaW4td2lkdGg6IDE4MDBweDtcclxuICAgICAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XHJcbiAgICB9XHJcblxyXG4gICAgICAgIC5yZXBvcnQtdGFibGUgdGgsIC5yZXBvcnQtdGFibGUgdGQge1xyXG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjNTU1O1xyXG4gICAgICAgICAgICBwYWRkaW5nOiA2cHggOHB4O1xyXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7IC8q5YWB6K645o2i6KGMKi9cclxuICAgICAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsOyAvKumVv+WNleivjSAv5pWw5a2X5Lmf5o2i6KGMKi9cclxuICAgICAgICB9XHJcblxyXG4gICAgLnN0YXR1cy1zZWN0aW9uIHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgICAgZ2FwOiAxMHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5zdGF0dXMtcm93IHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIGdhcDogMTBweDtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAjZjlmOWY5O1xyXG4gICAgICAgIHBhZGRpbmc6IDEwcHggMTRweDtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XHJcbiAgICAgICAgYm94LXNoYWRvdzogMCAxcHggNHB4IHJnYmEoMCwwLDAsLjA2KTtcclxuICAgIH1cclxuXHJcbiAgICAuc3RhdHVzLWJveCB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgfVxyXG5cclxuICAgIC5yZXN1bHQtYm94IHtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAjZjBmOGZmO1xyXG4gICAgICAgIHBhZGRpbmc6IDRweCAxMnB4O1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcclxuICAgICAgICBib3JkZXItbGVmdDogNXB4IHNvbGlkICMwMDdhZmY7XHJcbiAgICB9XHJcblxyXG4gICAgaW5wdXQuaGlnaGxpZ2h0IHtcclxuICAgICAgICB3aWR0aDogOXZ3O1xyXG4gICAgICAgIG1pbi13aWR0aDogMTEwcHg7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgZm9udC1zaXplOiAxOHB4O1xyXG4gICAgICAgIHBhZGRpbmc6IDZweCAwO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcclxuICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAzcHggcmdiYSgwLDAsMCwuMTIpO1xyXG4gICAgfVxyXG5cclxuICAgIC5vcGVyYXRvci1ib3gge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICBmb250LXNpemU6IDI4cHg7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICAgICAgY29sb3I6ICMwMDdhZmY7XHJcbiAgICAgICAgbWFyZ2luOiAwIDZweDtcclxuICAgIH1cclxuXHJcbiAgICAuYnRuLWdyb3VwIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgZ2FwOiAxMnB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5yZWZyZXNoLWJ0bi1pbmxpbmUsIC5yZXNldC1idG4taW5saW5lIHtcclxuICAgICAgICB0cmFuc2l0aW9uOiAuMTVzO1xyXG4gICAgfVxyXG5cclxuICAgIC5yZWZyZXNoLWJ0bi1pbmxpbmUge1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICMwMEEyRTk7XHJcbiAgICAgICAgY29sb3I6ICNmZmY7XHJcbiAgICAgICAgZm9udC1zaXplOiAxOHB4O1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XHJcbiAgICAgICAgcGFkZGluZzogOHB4IDMwcHg7XHJcbiAgICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgfVxyXG5cclxuICAgICAgICAucmVmcmVzaC1idG4taW5saW5lOmhvdmVyIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogIzAwODZjMDtcclxuICAgICAgICB9XHJcblxyXG4gICAgLnJlc2V0LWJ0bi1pbmxpbmUge1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICNmZjZiNmI7XHJcbiAgICAgICAgY29sb3I6ICNmZmY7XHJcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XHJcbiAgICAgICAgcGFkZGluZzogOHB4IDE4cHg7XHJcbiAgICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgfVxyXG5cclxuICAgICAgICAucmVzZXQtYnRuLWlubGluZTpob3ZlciB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNlOTRkNGQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIC5mbGV4LXJvdyB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICAgICAgZ2FwOiAyMHB4O1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xyXG4gICAgfVxyXG5cclxuICAgIC5mbGV4LWdyb3cge1xyXG4gICAgICAgIGZsZXg6IDEgMSA1NDBweDtcclxuICAgIH1cclxuXHJcbiAgICAuZ2FwLWxnIHtcclxuICAgICAgICBnYXA6IDMwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgLyog5LiN6Imv5pWw6YeP5Yy65Z+fICovXHJcbiAgICAuZGVmZWN0aXZlLXNlY3Rpb24ge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICBnYXA6IDE0cHg7XHJcbiAgICAgICAgZm9udC1zaXplOiAzNnB4OyAvKiDku44zMnB45pS55Li6MzZweCAqL1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOyAvKiDlj6/pgInvvJrliqDnspflrZfkvZMgKi9cclxuICAgIH1cclxuXHJcbiAgICAuc3VibWl0LXNlY3Rpb24ge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIH1cclxuXHJcbiAgICAuaW5wIHtcclxuICAgICAgICBwYWRkaW5nOiA4cHg7XHJcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xyXG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM4MDgwODA7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xyXG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICB9XHJcblxyXG4gICAgLyog5LiN6Imv5pWw6YeP6L6T5YWl5qGGICovXHJcbiAgICAuYmFkLWlucHV0IHtcclxuICAgICAgICB3aWR0aDogMzIwcHg7XHJcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgICAgIGhlaWdodDogNjZweDtcclxuICAgICAgICBib3JkZXI6IDNweCBzb2xpZCAjODA4MDgwO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogNDJweDtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICB9XHJcblxyXG4gICAgLyog56Gu6K6k5o+Q5Lqk5oyJ6ZKuKi9cclxuICAgIC5kZXRhaWxzLWJ0biB7XHJcbiAgICAgICAgcGFkZGluZzogMTJweCAzNHB4O1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICMwMGEyZTk7XHJcbiAgICAgICAgY29sb3I6ICNmZmY7XHJcbiAgICAgICAgZm9udC1zaXplOiAzMnB4O1xyXG4gICAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDtcclxuICAgIH1cclxuXHJcbiAgICAgICAgLmRldGFpbHMtYnRuOmhvdmVyIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogIzAwOGFjMjtcclxuICAgICAgICB9XHJcblxyXG4gICAgLmN1cnJlbnQtdXNlci1zZWN0aW9uIHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgZm9udC1zaXplOiAzMnB4O1xyXG4gICAgICAgIGJvcmRlcjogMS41cHggc29saWQgI2YwMDtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4gICAgICAgIHBhZGRpbmc6IDE0cHggMjJweDtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xyXG4gICAgICAgIGdhcDogMTRweDtcclxuICAgICAgICBmbGV4OiAwIDAgYXV0bztcclxuICAgIH1cclxuXHJcbiAgICAuY3VycmVudC11c2VyLW5hbWUge1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMzJweDtcclxuICAgIH1cclxuXHJcbiAgICAvKiDpgInkurrmjInpkq4gLSDok53oibLkuLvpopggKi9cclxuICAgIC5zZWxlY3QtdXNlci1idG4ge1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICMwMGEyZTk7IC8qIOS4juaPkOS6pOaMiemSruebuOWQjOeahOiTneiJsiAqL1xyXG4gICAgICAgIGNvbG9yOiAjZmZmOyAvKiDnmb3oibLmloflrZcgKi9cclxuICAgICAgICBib3JkZXI6IG5vbmU7IC8qIOenu+mZpOi+ueahhiAqL1xyXG4gICAgICAgIHBhZGRpbmc6IDEycHggMjJweDsgLyog6LCD5pW05YaF6L656Led5LiO5o+Q5Lqk5oyJ6ZKu5Y2P6LCDICovXHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDsgLyog5LiO5o+Q5Lqk5oyJ6ZKu55u45ZCM55qE5ZyG6KeSICovXHJcbiAgICAgICAgZm9udC1zaXplOiAzMnB4OyAvKiDkv53mjIHlrZfkvZPlpKflsI8gKi9cclxuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1czsgLyog5re75Yqg6L+H5rih5pWI5p6cICovXHJcbiAgICB9XHJcblxyXG4gICAgICAgIC5zZWxlY3QtdXNlci1idG46aG92ZXIge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjMDA4YWMyO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAub3ZlcmxheSB7XHJcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgICAgIHRvcDogMDtcclxuICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLC40NSk7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIHotaW5kZXg6IDEwMDA7XHJcbiAgICB9XHJcblxyXG4gICAgLnBvcHVwIHtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xyXG4gICAgICAgIHBhZGRpbmc6IDJ2aDtcclxuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xyXG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAxNHB4IHJnYmEoMCwwLDAsLjEyKTtcclxuICAgICAgICB3aWR0aDogNzJ2dztcclxuICAgICAgICBtYXgtd2lkdGg6IDE0MDBweDtcclxuICAgICAgICBoZWlnaHQ6IDcwdmg7XHJcbiAgICAgICAgZm9udC1zaXplOiAxLjR2dztcclxuICAgICAgICBtYXgtaGVpZ2h0OiA4MHZoO1xyXG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG87XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDtcclxuICAgICAgICB6LWluZGV4OiAxMDAxO1xyXG4gICAgfVxyXG5cclxuICAgIC8qIOmAieS6uuW8ueeql+abtOWuve+8jOWQjeWtl+abtOWkp++8jOWFs+mXreaMiemSruabtOWwjyAqL1xyXG4gICAgLnVzZXItc2VsZWN0LXBvcHVwIHtcclxuICAgICAgICB3aWR0aDogMTYwMHB4O1xyXG4gICAgICAgIG1heC13aWR0aDogOTl2dztcclxuICAgICAgICBtaW4td2lkdGg6IDEwMDBweDtcclxuICAgICAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICAgICAgbWluLWhlaWdodDogNTIwcHg7XHJcbiAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgICAgZm9udC1zaXplOiAzMnB4O1xyXG4gICAgfVxyXG5cclxuICAgIC51c2VyLXNlYXJjaC1iYXIge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICBnYXA6IDE4cHg7XHJcbiAgICAgICAgcGFkZGluZzogMjRweCA2NHB4IDAgNjRweDtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xyXG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgIH1cclxuXHJcbiAgICAudXNlci1zZWFyY2gtaW5wdXQge1xyXG4gICAgICAgIGZsZXg6IDEgMSAyNjBweDtcclxuICAgICAgICBwYWRkaW5nOiAxNnB4IDIwcHg7XHJcbiAgICAgICAgZm9udC1zaXplOiAyOHB4O1xyXG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNiYmI7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xyXG4gICAgICAgIG91dGxpbmU6IG5vbmU7XHJcbiAgICAgICAgaGVpZ2h0OiA1NHB4O1xyXG4gICAgfVxyXG5cclxuICAgICAgICAudXNlci1zZWFyY2gtaW5wdXQ6Zm9jdXMge1xyXG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICMwMDdhZmY7XHJcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCByZ2JhKDAsMTIyLDI1NSwuMTUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAudXNlci1zZWFyY2gtY2xlYXIge1xyXG4gICAgICAgIHBhZGRpbmc6IDEycHggMjhweDtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAjZmY5ZjQzO1xyXG4gICAgICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XHJcbiAgICAgICAgZm9udC1zaXplOiAyNHB4O1xyXG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIH1cclxuXHJcbiAgICAgICAgLnVzZXItc2VhcmNoLWNsZWFyOmhvdmVyIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogI2ZmODkyMDtcclxuICAgICAgICB9XHJcblxyXG4gICAgLnVzZXItc2VhcmNoLWluZm8ge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMjJweDtcclxuICAgICAgICBjb2xvcjogIzU1NTtcclxuICAgIH1cclxuXHJcbiAgICAudXNlci1saXN0LXNjcm9sbCB7XHJcbiAgICAgICAgZmxleDogMSAxIGF1dG87XHJcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcclxuICAgICAgICBwYWRkaW5nOiAzMnB4IDY0cHggMCA2NHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC51c2VyLWxpc3QtZ3JpZCB7XHJcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcclxuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsbWlubWF4KDIwMHB4LDFmcikpO1xyXG4gICAgICAgIGdhcDogMjJweCAyMnB4O1xyXG4gICAgfVxyXG5cclxuICAgIC51c2VyLWxpc3QtYnRuIHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICBnYXA6IDJweDsgLyog5Y6fOHB477yM5YeP5bCP6KGM6Ze06LedICovXHJcbiAgICAgICAgcGFkZGluZzogMTBweCAxMHB4OyAvKiDpgILlvZPlh4/lsI/kuIrkuIvlhoXovrnot50gKi9cclxuICAgICAgICBoZWlnaHQ6IDEwMHB4OyAvKiDlj6/pgILlvZPlh4/lsI/pq5jluqYgKi9cclxuICAgICAgICBmb250LXNpemU6IDMwcHg7XHJcbiAgICAgICAgYmFja2dyb3VuZDogIzAwYTJlOTtcclxuICAgICAgICBjb2xvcjogI2ZmZjtcclxuICAgICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xyXG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XHJcbiAgICB9XHJcblxyXG4gICAgICAgIC51c2VyLWxpc3QtYnRuIC51c2VyLWNvZGUge1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDM2cHg7XHJcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE7IC8qIOe0p+WHkeS4gOeCuSAqL1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnVzZXItbGlzdC1idG4gLnVzZXItbmFtZSB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMzJweDtcclxuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTsgLyog57Sn5YeR5LiA54K5ICovXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAudXNlci1saXN0LWJ0bi5zZWxlY3RlZCB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICMwMDcyYzk7XHJcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCByZ2JhKDI1NSwyNTUsMjU1LC42KSBpbnNldDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC51c2VyLWxpc3QtYnRuOmhvdmVyIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogIzAwOGVkMDtcclxuICAgICAgICB9XHJcblxyXG4gICAgLm5vLXVzZXItcmVzdWx0IHtcclxuICAgICAgICBwYWRkaW5nOiA0MHB4IDA7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMjhweDtcclxuICAgICAgICBjb2xvcjogIzY2NjtcclxuICAgIH1cclxuXHJcbiAgICAudXNlci1wb3B1cC1mb290ZXIge1xyXG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xyXG4gICAgICAgIHBhZGRpbmc6IDI0cHggNjRweCAzMnB4IDY0cHg7XHJcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICB9XHJcblxyXG4gICAgLmNsZWFuLWJ0biB7XHJcbiAgICAgICAgd2lkdGg6IDI0JTtcclxuICAgICAgICBwYWRkaW5nOiAxMHB4IDA7XHJcbiAgICAgICAgY29sb3I6ICNmZmY7XHJcbiAgICAgICAgZm9udC1zaXplOiAyMHB4O1xyXG4gICAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNnZ3O1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICMwMDdhZmY7XHJcbiAgICB9XHJcblxyXG4gICAgICAgIC5jbGVhbi1idG4ud2lkZS1idG4ge1xyXG4gICAgICAgICAgICB3aWR0aDogMzAlO1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDIycHg7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDEycHggMDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5jbGVhbi1idG46aG92ZXIge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjMDA2MmM5O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAucmVhc29uLXNlY3Rpb24ge1xyXG4gICAgICAgIG1hcmdpbjogMTRweCAwIDE4cHg7XHJcbiAgICB9XHJcblxyXG4gICAgLnJlYXNvbi1idXR0b25zIHtcclxuICAgICAgICBkaXNwbGF5OiBncmlkO1xyXG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDUsMWZyKTtcclxuICAgICAgICBnYXA6IDEycHg7XHJcbiAgICB9XHJcblxyXG4gICAgLnJlYXNvbi1idG4ge1xyXG4gICAgICAgIHBhZGRpbmc6IDEwcHggNnB4O1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICM4MDgwODA7XHJcbiAgICAgICAgY29sb3I6ICNmZmY7XHJcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XHJcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgfVxyXG5cclxuICAgICAgICAucmVhc29uLWJ0bi5zZWxlY3RlZCB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNGRkQ3MDA7XHJcbiAgICAgICAgICAgIGNvbG9yOiAjMDAwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAuYm90dG9tLXNlY3Rpb24ge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDE2cHg7XHJcbiAgICAgICAgZ2FwOiAxNnB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5zYXZlLWJ0biwgLmNhbmNlbC1idG4ge1xyXG4gICAgICAgIGZsZXg6IDE7XHJcbiAgICAgICAgcGFkZGluZzogMTZweCAwO1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICMwMEEyRTk7XHJcbiAgICAgICAgY29sb3I6ICNmZmY7XHJcbiAgICAgICAgZm9udC1zaXplOiAyMHB4O1xyXG4gICAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4gICAgfVxyXG5cclxuICAgICAgICAuc2F2ZS1idG46aG92ZXIsIC5jYW5jZWwtYnRuOmhvdmVyIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogIzAwODZjMDtcclxuICAgICAgICB9XHJcblxyXG4gICAgLnRhYmxlMSB7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgYm9yZGVyLXNwYWNpbmc6IDNweDtcclxuICAgIH1cclxuXHJcbiAgICAuaGlzdG9yeS10YWJsZS1zY3JvbGwge1xyXG4gICAgICAgIG1heC1oZWlnaHQ6IDQyMHB4OyAvKiDlj6/moLnmja7lrp7pmYXpobXpnaLosIPmlbTpq5jluqYgKi9cclxuICAgICAgICBvdmVyZmxvdy15OiBzY3JvbGw7IC8qIOWni+e7iOaYvuekuue6teWQkea7keadoSAqL1xyXG4gICAgICAgIG92ZXJmbG93LXg6IGF1dG87XHJcbiAgICAgICAgYm9yZGVyOiAycHggc29saWQgI2QwMDtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xyXG4gICAgfVxyXG5cclxuICAgICAgICAvKiDooajlpLTlm7rlrpogKi9cclxuICAgICAgICAuaGlzdG9yeS10YWJsZS1zY3JvbGwgdGhlYWQgdHIgdGgge1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xyXG4gICAgICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgICAgIHotaW5kZXg6IDI7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XHJcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDZweCByZ2JhKDAsMCwwLDAuMDQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICBAbWVkaWEgKG1heC13aWR0aDoxNDAwcHgpIHtcclxuICAgICAgICBpbnB1dC5oaWdobGlnaHQge1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDE2cHg7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAudXNlci1saXN0LWJ0biB7XHJcbiAgICAgICAgICAgIGhlaWdodDogNzBweDtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxOHB4O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC51c2VyLWxpc3QtYnRuIC51c2VyLWNvZGUge1xyXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxOHB4O1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAudXNlci1saXN0LWJ0biAudXNlci1uYW1lIHtcclxuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAucmVhc29uLWJ0biB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5yZWZyZXNoLWJ0bi1oZWFkZXIge1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDZweCAxNnB4O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnJlc2V0LWJ0bi1oZWFkZXIge1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDZweCAxMnB4O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuPC9zdHlsZT4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///72\n");
+eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _printTemplate = __webpack_require__(/*! ../utils/printTemplate */ 73);\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\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 props: {\n orderNo: String,\n orderId: Number,\n machineNo: String\n },\n data: function data() {\n return {\n isShowUserSelect: false,\n currentUser: '',\n barcodeAmount: '',\n users: [],\n userForm: [],\n staff: [],\n user: {},\n productionCount: 0,\n printedCount: 0,\n defectiveCount: 0,\n order: {},\n icount: 1,\n bqty: 0,\n sQuantity: 0,\n kgQty: 0,\n initialValue: 0,\n qqty: 0,\n ngStaid: 0,\n bufferData: '',\n dataToPrint: [],\n isLoading: false,\n but: false,\n DAA003List: [],\n lineList: [],\n isShow: false,\n barcodeIsShow: false,\n barcodeList: [],\n staffNo: '',\n printStr: '',\n printMac: '',\n bluetoothSocket: {},\n device: '',\n uuid: '',\n printNum: 1,\n reportingList: [],\n printLoading: false,\n customAmount: '',\n isGeneratingBarcode: false,\n lastGenerateTime: 0,\n generateRequestId: null,\n nowTimeTimer: null,\n nowTime: '',\n userSearch: '',\n refreshTimer: null,\n // 鏂板锛氳嚜鍔ㄥ埛鏂板畾鏃跺櫒\n /* 鏂板锛氬巻鍙叉姤宸ヨ褰曟暟缁� */\n reportingHistory: []\n };\n },\n computed: {\n //鑹搧鏁板疄鏃惰绠梊n realTimeDefectiveCount: function realTimeDefectiveCount() {\n // 浼樺厛鐢ㄨ緭鍏ユ鐨勫�硷紝鍚﹀垯鐢ㄦ帴鍙f暟鎹甛n var val = Number(this.customAmount);\n if (!isNaN(val) && this.customAmount !== '') return val;\n return this.calculatedDefectiveCount;\n },\n realTimeOkCount: function realTimeOkCount() {\n // 鑹搧鏁� = 鎶ュ伐鏁帮紙璁$畻锛� - 涓嶈壇鏁癨n var total = (this.order.currentCjNum || 0) - (this.order.initCjNum || 0);\n return total - this.realTimeDefectiveCount;\n },\n calculatedCurrentCount: function calculatedCurrentCount() {\n return (this.productionCount || 0) - (this.initialValue || 0);\n },\n calculatedTotalProduction: function calculatedTotalProduction() {\n return this.kgQty || 0;\n },\n // 鑻ラ渶鎭㈠鏃ч�昏緫鍙敤 (this.kgQty||0)+this.calculatedCurrentCount\n calculatedDefectiveCount: function calculatedDefectiveCount() {\n return this.calculatedTotalProduction - (this.sQuantity || 0);\n },\n planQtyDisplay: function planQtyDisplay() {\n return this.order.planQty || this.order.planQuantity || this.order.daa008 || 0;\n },\n staffDisplay: function staffDisplay() {\n if (!this.staffNo) return '';\n var segs = this.staffNo.split(':');\n return segs.length > 1 ? \"\".concat(segs[0], \" \").concat(segs[1]) : this.staffNo;\n },\n filteredUsers: function filteredUsers() {\n if (!this.userSearch) return this.users;\n var kw = this.userSearch.trim().toLowerCase();\n return this.users.filter(function (u) {\n return u.toLowerCase().includes(kw);\n });\n }\n },\n created: function created() {\n this.initializeData();\n this.fetchData(true);\n this.init();\n this.getXS0101();\n this.updateNowTime();\n // 绉掔骇鍒锋柊锛涘涓嶉渶鍔ㄦ�佽烦绉掑彲鏀逛负 60000\n this.nowTimeTimer = setInterval(this.updateNowTime, 1000);\n\n // 鏂板锛氭瘡鍒嗛挓鑷姩鍒锋柊鏁版嵁锛�60000姣 = 1鍒嗛挓锛塡n this.startAutoRefresh();\n },\n beforeDestroy: function beforeDestroy() {\n if (this.nowTimeTimer) clearInterval(this.nowTimeTimer);\n // 鏂板锛氭竻鐞嗚嚜鍔ㄥ埛鏂板畾鏃跺櫒\n this.stopAutoRefresh();\n },\n methods: {\n // 鏂板锛氬紑濮嬭嚜鍔ㄥ埛鏂癨n startAutoRefresh: function startAutoRefresh() {\n var _this = this;\n // 鍏堟竻闄ゅ彲鑳藉瓨鍦ㄧ殑鏃у畾鏃跺櫒\n this.stopAutoRefresh();\n // 璁剧疆鏂扮殑瀹氭椂鍣紝姣忓垎閽熸墽琛屼竴娆n this.refreshTimer = setInterval(function () {\n __f__(\"log\", '鑷姩鍒锋柊鏁版嵁...', \" at components/WorkOrderPrint.vue:311\");\n _this.refresh();\n }, 60000); // 60000姣 = 1鍒嗛挓\n },\n // 鏂板锛氬仠姝㈣嚜鍔ㄥ埛鏂癨n stopAutoRefresh: function stopAutoRefresh() {\n if (this.refreshTimer) {\n clearInterval(this.refreshTimer);\n this.refreshTimer = null;\n }\n },\n formatUser: function formatUser(u) {\n if (!u) return '';\n var segs = u.split(':');\n return segs.length > 1 ? \"\".concat(segs[0], \" \").concat(segs[1]) : u;\n },\n selectUser: function selectUser(u) {\n this.staffNo = u;\n this.isShowUserSelect = false;\n this.userSearch = '';\n },\n /* 淇敼锛氬鍔犵 */updateNowTime: function updateNowTime() {\n var d = new Date(),\n p = function p(n) {\n return n.toString().padStart(2, '0');\n };\n this.nowTime = \"\".concat(d.getFullYear(), \"-\").concat(p(d.getMonth() + 1), \"-\").concat(p(d.getDate()), \" \").concat(p(d.getHours()), \":\").concat(p(d.getMinutes()), \":\").concat(p(d.getSeconds()));\n },\n initializeData: function initializeData() {\n this.productionCount = this.printedCount = this.defectiveCount = 0;\n this.icount = 1;\n this.bqty = 0;\n this.sQuantity = 0;\n this.kgQty = 0;\n this.initialValue = 0;\n this.qqty = 0;\n this.isGeneratingBarcode = false;\n this.lastGenerateTime = 0;\n this.generateRequestId = null;\n },\n resetGenerateState: function resetGenerateState() {\n this.isGeneratingBarcode = false;\n this.generateRequestId = null;\n this.lastGenerateTime = 0;\n this.$showMessage(\"宸查噸缃潯鐮佺敓鎴愮姸鎬乗");\n },\n // 淇敼锛氬湪鎵嬪姩鍒锋柊鏃朵篃閲嶇疆鑷姩鍒锋柊璁℃椂鍣╘n refresh: function refresh() {\n var _this2 = this;\n this.$sendPostRequest({\n url: \"http://192.168.0.94:9095/Numerical/RefreshDevBycl\",\n data: {\n machineNo: this.order.machineNo\n },\n contentType: \"application/json\"\n }).then(function (r) {\n if (r.code == 200) {\n _this2.fetchData(true);\n _this2.$showMessage(\"鏁版嵁鍒锋柊鎴愬姛\");\n } else {\n _this2.$showMessage(\"鍚屾澶辫触\");\n }\n }).catch(function (error) {\n __f__(\"error\", '鍒锋柊澶辫触:', error, \" at components/WorkOrderPrint.vue:358\");\n _this2.$showMessage(\"鍒锋柊澶辫触锛岃妫�鏌ョ綉缁滆繛鎺");\n });\n },\n onDaa003Change: function onDaa003Change(v) {\n var o = this.lineList[this.DAA003List.indexOf(v)];\n this.orderId = o.id;\n this.orderNo = o.daa001;\n uni.setStorageSync('machine', this.machineNo);\n uni.setStorageSync('orderId', this.orderId);\n uni.setStorageSync('orderNo', this.orderNo);\n this.fetchData(false);\n },\n fetchData: function fetchData(flag) {\n var _this3 = this;\n if (!this.orderId && !this.orderNo) return;\n this.getOrderById();\n this.getWomdaaPrintById();\n this.getReportingHistory(); // 鏂板锛氭瘡娆″埛鏂板悓姝ュ巻鍙瞈n if (flag) {\n this.$post({\n url: \"/Womdaa/GetWomdaasByShow\",\n data: {\n machineNo: this.machineNo\n }\n }).then(function (res) {\n _this3.lineList = res.data.tbBillList;\n _this3.DAA003List = res.data.tbBillList.map(function (i) {\n return i.daa003;\n });\n });\n }\n },\n /* 鏂板锛氳幏鍙栧巻鍙叉姤宸ヨ褰� */\n /* 淇敼锛氳鑼冨巻鍙叉椂闂村埌绉� */\n getReportingHistory: function getReportingHistory() {\n var _this4 = this;\n if (!this.orderNo) {\n this.reportingHistory = [];\n return;\n }\n var fmtSec = function fmtSec(v) {\n if (!v) return '';\n // 鍏煎鍚庣鍙兘杩斿洖鐨勪笉鍚屾牸寮廫n var d = new Date(typeof v === 'string' ? v.replace(/-/g, '/') : v);\n if (isNaN(d.getTime())) return v; // 鏃犳硶瑙f瀽鍒欏師鏍疯繑鍥瀄n var p = function p(n) {\n return n.toString().padStart(2, '0');\n };\n return \"\".concat(d.getFullYear(), \"-\").concat(p(d.getMonth() + 1), \"-\").concat(p(d.getDate()), \" \").concat(p(d.getHours()), \":\").concat(p(d.getMinutes()), \":\").concat(p(d.getSeconds()));\n };\n this.$post({\n url: \"/Womdaa/GetByBillNoBG\",\n data: {\n billNo: this.orderNo,\n machineNo: this.machineNo || null\n }\n }).then(function (res) {\n var _res$data;\n var list = (res === null || res === void 0 ? void 0 : (_res$data = res.data) === null || _res$data === void 0 ? void 0 : _res$data.tbBillList) || (res === null || res === void 0 ? void 0 : res.data) || [];\n _this4.reportingHistory = list.map(function (r) {\n var _r$csQty, _r$cjQty, _ref;\n // 渚濇嵁浣犳暟鎹簱瀛楁鍋氭槧灏勶紙涓嬮潰瀛楁鍚嶆寜甯歌鍛藉悕涓句緥锛岄渶瑕佹寜瀹為檯鏀癸級\n return {\n bgDate: r.bgDate || '',\n // 鎶ュ伐鏃堕棿\n staff: r.staffNo ? r.staffNo + ' ' + (r.staffName || '') : r.staffName || '',\n //鎶ュ伐浜篭n orderNo: r.billNo,\n //宸ュ崟鍙穃n machineNo: r.machineNo,\n //鏈哄彴鍙穃n initialValue: (_r$csQty = r.csQty) !== null && _r$csQty !== void 0 ? _r$csQty : 0,\n //鍒濆閲囬泦鏁癨n productionCount: (_r$cjQty = r.cjQty) !== null && _r$cjQty !== void 0 ? _r$cjQty : 0,\n //鎶ュ伐鏃堕噰闆嗘暟\n totalProduction: (_ref = r.cjQty - r.csQty) !== null && _ref !== void 0 ? _ref : 0,\n //鎶ュ伐鏁帮紙璁$畻锛塡n BfQty: r.bfQty,\n //涓嶈壇鏁癨n OkQty: r.okQty,\n //鑹搧鏁帮紙璁$畻锛塡n reportType: r.remark //鎶ュ伐绫诲瀷\n };\n });\n }).catch(function () {\n _this4.reportingHistory = [];\n });\n },\n toggleUser: function toggleUser(u) {\n if (!u) return;\n this.user = this.user === u ? null : u;\n this.staffNo = this.user;\n },\n //閫夋嫨鎶ュ伐浜篭n confirmCustomAmount: function confirmCustomAmount() {\n var _this5 = this;\n if (!this.customAmount || isNaN(Number(this.customAmount))) {\n this.$showMessage('璇疯緭鍏ユ湁鏁堢殑鏁伴噺');\n return;\n }\n if (!this.staffNo) {\n this.$showMessage('璇烽�夋嫨鎶ュ伐浜�');\n return;\n }\n var staffNo = this.staffNo.split(':')[0];\n var amount = Number(this.customAmount);\n this.$post({\n url: \"/MesInvItemBarcodes/AddBFToBarcodes\",\n data: {\n orderNo: this.orderNo,\n orderId: this.orderId,\n bf: amount,\n staffNo: staffNo,\n initCjNum: this.order.initCjNum,\n // 鍒濆閲囬泦鏁癨n currentCjNum: this.order.currentCjNum // 鎶ュ伐鏃堕噰闆嗘暟\n }\n }).then(function (res) {\n if (res.status == 1) {\n _this5.$showMessage(res.message);\n return;\n }\n _this5.$showMessage('鎶ュ簾鏁伴噺濉啓鎴愬姛');\n _this5.fetchData(true); // 鑷姩鍒锋柊鍘嗗彶\n _this5.customAmount = '';\n }).catch(function () {\n return _this5.$showMessage('鎶ュ簾鏁伴噺濉啓澶辫触锛岃閲嶈瘯');\n });\n },\n // 鏂板锛氳皟鏈烘姤宸n confirmTiaojiBaogong: function confirmTiaojiBaogong() {\n var _this6 = this;\n if (!this.customAmount || isNaN(Number(this.customAmount))) {\n this.$showMessage('璇疯緭鍏ユ湁鏁堢殑鏁伴噺');\n return;\n }\n if (!this.staffNo) {\n this.$showMessage('璇烽�夋嫨鎶ュ伐浜�');\n return;\n }\n var staffNo = this.staffNo.split(':')[0];\n var amount = Number(this.customAmount);\n this.$post({\n url: \"/MesInvItemBarcodes/AddBFToBarcodes\",\n // 濡傛湁璋冩満涓撶敤鎺ュ彛璇锋浛鎹n data: {\n orderNo: this.orderNo,\n orderId: this.orderId,\n bf: amount,\n staffNo: staffNo,\n initCjNum: this.order.initCjNum,\n currentCjNum: this.order.currentCjNum,\n type: 'tiaoji' // 鍙姞鍖哄垎瀛楁锛屽悗绔闇�鍖哄垎璋冩満鎶ュ伐\n }\n }).then(function (res) {\n if (res.status == 1) {\n _this6.$showMessage(res.message);\n return;\n }\n _this6.$showMessage('璋冩満鎶ュ伐鎴愬姛');\n _this6.fetchData(true);\n _this6.customAmount = '';\n }).catch(function () {\n return _this6.$showMessage('璋冩満鎶ュ伐澶辫触锛岃閲嶈瘯');\n });\n },\n save: function save() {\n if (!this.staffNo) {\n this.$showMessage('璇烽�夋嫨鎶ュ伐浜�');\n return;\n }\n uni.showToast({\n title: '淇濆瓨鎴愬姛',\n icon: 'success'\n });\n this.getReportingHistory(); // 淇濆瓨鍚庝篃鍙埛鏂癨n },\n cancel: function cancel() {\n uni.showToast({\n title: '鍙栨秷鎿嶄綔',\n icon: 'none'\n });\n },\n getOrderById: function getOrderById() {\n var _this7 = this;\n this.$post({\n url: \"/Womdaa/GetWomdaaById\",\n data: {\n orderId: this.orderId,\n orderNo: this.orderNo\n }\n }).then(function (res) {\n _this7.order = res.data.tbBillList;\n _this7.printedCount = res.data.tbBillList.bgqty || 0;\n _this7.defectiveCount = res.data.tbBillList.blQty || 0;\n _this7.productionCount = _this7.order.todayOutput || 0;\n });\n },\n getXS0101: function getXS0101() {\n var _this8 = this;\n this.$post({\n url: \"/MesStaff/GetAllXS0101\"\n }).then(function (res) {\n _this8.staff = res.data.tbBillList;\n _this8.users = _this8.staff.map(function (s) {\n return s.staffNo + \":\" + s.staffName;\n });\n });\n },\n getWomdaaPrintById: function getWomdaaPrintById() {\n var _this9 = this;\n this.$post({\n url: \"/Womdaa/GetWomdaaPrintById\",\n data: {\n orderId: this.orderId\n }\n }).then(function (res) {\n var _res$data2;\n if (!(res !== null && res !== void 0 && (_res$data2 = res.data) !== null && _res$data2 !== void 0 && _res$data2.tbBillList)) return;\n var d = res.data.tbBillList;\n _this9.bqty = d.bqty;\n _this9.icount = 1;\n _this9.sQuantity = d.sQuantity || 0;\n _this9.initialValue = d.initialValue || 0;\n _this9.kgQty = d.kgQty || 0;\n _this9.barcodeAmount = d.qqty || 0;\n if (_this9.bqty === 0) _this9.Completed();\n }).catch(function () {});\n },\n Completed: function Completed() {\n this.$post({\n url: \"/MesOrderSta/Completed\",\n data: {\n orderId: this.orderId,\n orderNo: this.orderNo\n }\n });\n },\n init: function init() {\n try {\n var v = this.getAndroidVersion();\n v >= 12 ? this.initForAndroid12Plus() : this.initForAndroidLegacy();\n } catch (e) {\n __f__(\"error\", e, \" at components/WorkOrderPrint.vue:512\");\n }\n },\n getAndroidVersion: function getAndroidVersion() {\n try {\n var Build = plus.android.importClass(\"android.os.Build\");\n return Build.VERSION.SDK_INT;\n } catch (_unused) {\n return 30;\n }\n },\n initForAndroid12Plus: function initForAndroid12Plus() {\n try {\n var main = plus.android.runtimeMainActivity();\n var BluetoothManager = plus.android.importClass(\"android.bluetooth.BluetoothManager\");\n var Context = plus.android.importClass(\"android.content.Context\");\n var UUID = plus.android.importClass(\"java.util.UUID\");\n this.uuid = UUID.fromString(\"00001101-0000-1000-8000-00805F9B34FB\");\n var mgr = main.getSystemService(Context.BLUETOOTH_SERVICE);\n var adp = mgr.getAdapter();\n if (adp && adp.isDiscovering()) adp.cancelDiscovery();\n this.printMac = uni.getStorageSync('printMac');\n var mac = this.printMac || \"DC:1D:30:91:06:52\";\n if (adp) {\n this.device = adp.getRemoteDevice(mac);\n plus.android.importClass(this.device);\n }\n } catch (e) {\n this.initForAndroidLegacy();\n }\n },\n initForAndroidLegacy: function initForAndroidLegacy() {\n try {\n var BluetoothAdapter = plus.android.importClass(\"android.bluetooth.BluetoothAdapter\");\n var UUID = plus.android.importClass(\"java.util.UUID\");\n this.uuid = UUID.fromString(\"00001101-0000-1000-8000-00805F9B34FB\");\n var BAdapter = BluetoothAdapter.getDefaultAdapter();\n if (BAdapter) BAdapter.cancelDiscovery();\n this.printMac = uni.getStorageSync('printMac');\n var mac = this.printMac || \"DC:1D:30:91:06:52\";\n if (BAdapter) {\n this.device = BAdapter.getRemoteDevice(mac);\n plus.android.importClass(this.device);\n this.bluetoothSocket = this.device.createInsecureRfcommSocketToServiceRecord(this.uuid);\n plus.android.importClass(this.bluetoothSocket);\n }\n } catch (e) {}\n },\n deleteBarcode: function deleteBarcode() {\n this.isShow = false;\n this.isGeneratingBarcode = false;\n this.generateRequestId = null;\n this.bufferData = '';\n this.dataToPrint = [];\n this.staffNo = null;\n this.user = '';\n this.barcodeAmount = '';\n this.icount = 1;\n this.staff = null;\n }\n }\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 1)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vY29tcG9uZW50cy9Xb3JrT3JkZXJQcmludC52dWUiXSwibmFtZXMiOlsicHJvcHMiLCJvcmRlck5vIiwib3JkZXJJZCIsIm1hY2hpbmVObyIsImRhdGEiLCJpc1Nob3dVc2VyU2VsZWN0IiwiY3VycmVudFVzZXIiLCJiYXJjb2RlQW1vdW50IiwidXNlcnMiLCJ1c2VyRm9ybSIsInN0YWZmIiwidXNlciIsInByb2R1Y3Rpb25Db3VudCIsInByaW50ZWRDb3VudCIsImRlZmVjdGl2ZUNvdW50Iiwib3JkZXIiLCJpY291bnQiLCJicXR5Iiwic1F1YW50aXR5Iiwia2dRdHkiLCJpbml0aWFsVmFsdWUiLCJxcXR5IiwibmdTdGFpZCIsImJ1ZmZlckRhdGEiLCJkYXRhVG9QcmludCIsImlzTG9hZGluZyIsImJ1dCIsIkRBQTAwM0xpc3QiLCJsaW5lTGlzdCIsImlzU2hvdyIsImJhcmNvZGVJc1Nob3ciLCJiYXJjb2RlTGlzdCIsInN0YWZmTm8iLCJwcmludFN0ciIsInByaW50TWFjIiwiYmx1ZXRvb3RoU29ja2V0IiwiZGV2aWNlIiwidXVpZCIsInByaW50TnVtIiwicmVwb3J0aW5nTGlzdCIsInByaW50TG9hZGluZyIsImN1c3RvbUFtb3VudCIsImlzR2VuZXJhdGluZ0JhcmNvZGUiLCJsYXN0R2VuZXJhdGVUaW1lIiwiZ2VuZXJhdGVSZXF1ZXN0SWQiLCJub3dUaW1lVGltZXIiLCJub3dUaW1lIiwidXNlclNlYXJjaCIsInJlZnJlc2hUaW1lciIsInJlcG9ydGluZ0hpc3RvcnkiLCJjb21wdXRlZCIsInJlYWxUaW1lRGVmZWN0aXZlQ291bnQiLCJyZWFsVGltZU9rQ291bnQiLCJjYWxjdWxhdGVkQ3VycmVudENvdW50IiwiY2FsY3VsYXRlZFRvdGFsUHJvZHVjdGlvbiIsImNhbGN1bGF0ZWREZWZlY3RpdmVDb3VudCIsInBsYW5RdHlEaXNwbGF5Iiwic3RhZmZEaXNwbGF5IiwiZmlsdGVyZWRVc2VycyIsImNyZWF0ZWQiLCJiZWZvcmVEZXN0cm95IiwibWV0aG9kcyIsInN0YXJ0QXV0b1JlZnJlc2giLCJzdG9wQXV0b1JlZnJlc2giLCJjbGVhckludGVydmFsIiwiZm9ybWF0VXNlciIsInNlbGVjdFVzZXIiLCJ1cGRhdGVOb3dUaW1lIiwicCIsImluaXRpYWxpemVEYXRhIiwicmVzZXRHZW5lcmF0ZVN0YXRlIiwicmVmcmVzaCIsInVybCIsImNvbnRlbnRUeXBlIiwib25EYWEwMDNDaGFuZ2UiLCJ1bmkiLCJmZXRjaERhdGEiLCJ0aGVuIiwiZ2V0UmVwb3J0aW5nSGlzdG9yeSIsImJpbGxObyIsImJnRGF0ZSIsInRvdGFsUHJvZHVjdGlvbiIsIkJmUXR5IiwiT2tRdHkiLCJyZXBvcnRUeXBlIiwidG9nZ2xlVXNlciIsImNvbmZpcm1DdXN0b21BbW91bnQiLCJiZiIsImluaXRDak51bSIsImN1cnJlbnRDak51bSIsImNvbmZpcm1UaWFvamlCYW9nb25nIiwidHlwZSIsInNhdmUiLCJ0aXRsZSIsImljb24iLCJjYW5jZWwiLCJnZXRPcmRlckJ5SWQiLCJnZXRYUzAxMDEiLCJnZXRXb21kYWFQcmludEJ5SWQiLCJDb21wbGV0ZWQiLCJpbml0IiwidiIsImdldEFuZHJvaWRWZXJzaW9uIiwiaW5pdEZvckFuZHJvaWQxMlBsdXMiLCJwbHVzIiwiaW5pdEZvckFuZHJvaWRMZWdhY3kiLCJkZWxldGVCYXJjb2RlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUEwT0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztlQUVBO0VBQ0FBO0lBQUFDO0lBQUFDO0lBQUFDO0VBQUE7RUFDQUM7SUFDQTtNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUFBQztNQUFBQztNQUFBQztNQUNBQztNQUFBQztNQUFBQztNQUFBQztNQUNBQztNQUFBQztNQUFBQztNQUFBQztNQUFBQztNQUFBQztNQUNBQztNQUFBQztNQUFBQztNQUFBQztNQUFBQztNQUNBQztNQUFBQztNQUFBQztNQUFBQztNQUFBQztNQUNBQztNQUFBQztNQUFBQztNQUFBQztNQUFBQztNQUFBQztNQUNBQztNQUFBQztNQUFBQztNQUFBQztNQUNBQztNQUFBQztNQUFBQztNQUNBQztNQUFBQztNQUNBQztNQUNBQztNQUFBO01BQ0E7TUFDQUM7SUFDQTtFQUNBO0VBQ0FDO0lBQ0E7SUFDQUM7TUFDQTtNQUNBO01BQ0E7TUFDQTtJQUNBO0lBQ0FDO01BQ0E7TUFDQTtNQUNBO0lBQ0E7SUFDQUM7TUFBQTtJQUFBO0lBQ0FDO01BQUE7SUFBQTtJQUFBO0lBQ0FDO01BQUE7SUFBQTtJQUNBQztNQUFBO0lBQUE7SUFDQUM7TUFDQTtNQUNBO01BQ0E7SUFDQTtJQUNBQztNQUNBO01BQ0E7TUFDQTtRQUFBO01BQUE7SUFDQTtFQUNBO0VBQ0FDO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7O0lBRUE7SUFDQTtFQUNBO0VBQ0FDO0lBQ0E7SUFDQTtJQUNBO0VBQ0E7RUFDQUM7SUFDQTtJQUNBQztNQUFBO01BQ0E7TUFDQTtNQUNBO01BQ0E7UUFDQTtRQUNBO01BQ0E7SUFDQTtJQUNBO0lBQ0FDO01BQ0E7UUFDQUM7UUFDQTtNQUNBO0lBQ0E7SUFFQUM7TUFDQTtNQUNBO01BQ0E7SUFDQTtJQUNBQztNQUFBO01BQUE7TUFBQTtJQUFBO0lBQ0EsWUFDQUM7TUFDQTtRQUFBQztVQUFBO1FBQUE7TUFDQTtJQUNBO0lBQ0FDO01BQ0E7TUFDQTtNQUFBO01BQUE7TUFBQTtNQUNBO01BQUE7TUFDQTtNQUFBO01BQUE7SUFDQTtJQUNBQztNQUNBO01BQUE7TUFBQTtNQUNBO0lBQ0E7SUFDQTtJQUNBQztNQUFBO01BQ0E7UUFDQUM7UUFDQXBFO1VBQUFEO1FBQUE7UUFDQXNFO01BQ0E7UUFDQTtVQUNBO1VBQ0E7UUFDQTtVQUNBO1FBQ0E7TUFDQTtRQUNBO1FBQ0E7TUFDQTtJQUNBO0lBQ0FDO01BQ0E7TUFDQTtNQUFBO01BQ0FDO01BQ0FBO01BQ0FBO01BQ0E7SUFDQTtJQUNBQztNQUFBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtRQUNBO1VBQUFKO1VBQUFwRTtZQUFBRDtVQUFBO1FBQUEsR0FDQTBFO1VBQ0E7VUFDQTtZQUFBO1VBQUE7UUFDQTtNQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0FDO01BQUE7TUFDQTtRQUFBO1FBQUE7TUFBQTtNQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtVQUFBO1FBQUE7UUFDQTtNQUNBO01BQ0E7UUFDQU47UUFDQXBFO1VBQUEyRTtVQUFBNUU7UUFBQTtNQUNBO1FBQUE7UUFDQTtRQUNBO1VBQUE7VUFDQTtVQUNBO1lBQ0E2RTtZQUFBO1lBQ0F0RTtZQUFBO1lBQ0FUO1lBQUE7WUFDQUU7WUFBQTtZQUNBaUI7WUFBQTtZQUNBUjtZQUFBO1lBQ0FxRTtZQUFBO1lBQ0FDO1lBQUE7WUFDQUM7WUFBQTtZQUNBQztVQUNBO1FBQ0E7TUFDQTtRQUFBO01BQUE7SUFDQTtJQUNBQztNQUNBO01BQ0E7TUFDQTtJQUNBO0lBQ0E7SUFDQUM7TUFBQTtNQUNBO1FBQUE7UUFBQTtNQUFBO01BQ0E7UUFBQTtRQUFBO01BQUE7TUFDQTtNQUNBO01BQ0E7UUFDQWQ7UUFDQXBFO1VBQ0FIO1VBQ0FDO1VBQ0FxRjtVQUNBdkQ7VUFDQXdEO1VBQUE7VUFDQUM7UUFDQTtNQUNBO1FBQ0E7VUFBQTtVQUFBO1FBQUE7UUFDQTtRQUNBO1FBQ0E7TUFDQTtRQUFBO01BQUE7SUFDQTtJQUNBO0lBQ0FDO01BQUE7TUFDQTtRQUFBO1FBQUE7TUFBQTtNQUNBO1FBQUE7UUFBQTtNQUFBO01BQ0E7TUFDQTtNQUNBO1FBQ0FsQjtRQUFBO1FBQ0FwRTtVQUNBSDtVQUNBQztVQUNBcUY7VUFDQXZEO1VBQ0F3RDtVQUNBQztVQUNBRTtRQUNBO01BQ0E7UUFDQTtVQUFBO1VBQUE7UUFBQTtRQUNBO1FBQ0E7UUFDQTtNQUNBO1FBQUE7TUFBQTtJQUNBO0lBQ0FDO01BQ0E7UUFBQTtRQUFBO01BQUE7TUFDQWpCO1FBQUFrQjtRQUFBQztNQUFBO01BQ0E7SUFDQTtJQUNBQztNQUFBcEI7UUFBQWtCO1FBQUFDO01BQUE7SUFBQTtJQUNBRTtNQUFBO01BQ0E7UUFBQXhCO1FBQUFwRTtVQUFBRjtVQUFBRDtRQUFBO01BQUEsR0FDQTRFO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7TUFDQTtJQUNBO0lBQ0FvQjtNQUFBO01BQ0E7UUFBQXpCO01BQUEsR0FDQUs7UUFDQTtRQUNBO1VBQUE7UUFBQTtNQUNBO0lBQ0E7SUFDQXFCO01BQUE7TUFDQTtRQUFBMUI7UUFBQXBFO1VBQUFGO1FBQUE7TUFBQSxHQUNBMkU7UUFBQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtNQUNBO0lBQ0E7SUFDQXNCO01BQ0E7UUFBQTNCO1FBQUFwRTtVQUFBRjtVQUFBRDtRQUFBO01BQUE7SUFDQTtJQUNBbUc7TUFDQTtRQUNBO1FBQ0FDO01BQ0E7UUFBQTtNQUFBO0lBQ0E7SUFDQUM7TUFDQTtRQUFBO1FBQUE7TUFBQSxFQUNBO1FBQUE7TUFBQTtJQUNBO0lBQ0FDO01BQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1VBQ0E7VUFDQUM7UUFDQTtNQUNBO1FBQUE7TUFBQTtJQUNBO0lBQ0FDO01BQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1VBQ0E7VUFDQUQ7VUFDQTtVQUNBQTtRQUNBO01BQ0E7SUFDQTtJQUNBRTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQUE7TUFDQTtNQUFBO01BQUE7TUFBQTtNQUFBO0lBQ0E7RUFDQTtBQUNBO0FBQUEsMkIiLCJmaWxlIjoiNzIuanMiLCJzb3VyY2VzQ29udGVudCI6WyI8dGVtcGxhdGU+XHJcbiAgICA8dmlldyBjbGFzcz1cInBhZ2Ugd2lkZS1sYXlvdXRcIiA6Y2xhc3M9XCJ7J2hhcy1vdmVybGF5JzogKGlzU2hvd1VzZXJTZWxlY3QgfHwgaXNTaG93IHx8IGJhcmNvZGVJc1Nob3cpfVwiPlxyXG4gICAgICAgIDx2aWV3IGNsYXNzPVwic3RhdHVzLXNlY3Rpb25cIj5cclxuICAgICAgICAgICAgPCEtLSDmiqXlt6XorrDlvZXooajpg6jliIbvvIzlnKjmoIfpopjooYzmt7vliqDliLfmlrDmjInpkq4gLS0+XHJcbiAgICAgICAgICAgIDx2aWV3IGNsYXNzPVwicmVwb3J0LXRhYmxlLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgIDx2aWV3IGNsYXNzPVwicmVwb3J0LWhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDx2aWV3IGNsYXNzPVwicmVwb3J0LXRpdGxlXCI+5oql5bel6K6w5b2V6KGoPC92aWV3PlxyXG4gICAgICAgICAgICAgICAgICAgIDx2aWV3IGNsYXNzPVwiaGVhZGVyLWJ1dHRvbnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInJlZnJlc2gtYnRuLWhlYWRlclwiIEBjbGljaz1cInJlZnJlc2hcIj7liLfmlrA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB2LWlmPVwiaXNHZW5lcmF0aW5nQmFyY29kZVwiIGNsYXNzPVwicmVzZXQtYnRuLWhlYWRlclwiIEBjbGljaz1cInJlc2V0R2VuZXJhdGVTdGF0ZVwiPumHjee9rjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdmlldz5cclxuICAgICAgICAgICAgICAgIDwvdmlldz5cclxuXHJcbiAgICAgICAgICAgICAgICA8IS0tIOaVsOmHh+aAu+S6p+mHjyAtLT5cclxuICAgICAgICAgICAgICAgIDx2aWV3IGNsYXNzPVwic2VjdGlvbi10aXRsZVwiPuW9k+WJjeaVsOmHh+S6p+mHj+aKpeW3peiusOW9lTwvdmlldz5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1zY3JvbGxcIj5cclxuICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9XCJyZXBvcnQtdGFibGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoZWFkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD7ml7bpl7Q8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD7miqXlt6Xkuro8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD7lt6XljZXlj7c8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD7kuqflk4HlkI3np7A8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD7orqHliJLnlJ/kuqfmlbA8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD7mnKrmiqXlt6XmlbDph488L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD7mnLrlj7Dlj7c8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD7liJ3lp4vph4fpm4bmlbA8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD7miqXlt6Xml7bph4fpm4bmlbA8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD7ln7rkuo7mlbDph4fnmoTmiqXlt6XmlbA8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD7kuI3oia/mlbA8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD7oia/lk4HmlbDvvIjorqHnrpfvvIk8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD7miqXlt6Xnsbvlnos8L3RoPiA8IS0tIOaWsOWiniAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0Ym9keT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz1cInN1bW1hcnktcm93IGhpZ2hsaWdodC1yb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3sgbm93VGltZSB9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7IHN0YWZmRGlzcGxheSB8fCAnLScgfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57eyBvcmRlck5vIHx8ICctJyB9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7IG9yZGVyLmRhYTAwMyB8fCAnLScgfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57eyBwbGFuUXR5RGlzcGxheSB9fTwvdGQ+PCEtLeiuoeWIkueUn+S6p+aVsC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57eyBvcmRlci5kYWEwMDggLSBvcmRlci5kYWEwMTEgfX08L3RkPiA8IS0tIOaWsOWinu+8muacquaKpeW3peaVsOmHjyAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3sgbWFjaGluZU5vIHx8ICctJyB9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7IG9yZGVyLmluaXRDak51bSB9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7IG9yZGVyLmN1cnJlbnRDak51bSB9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7IG9yZGVyLmN1cnJlbnRDak51bSAtIG9yZGVyLmluaXRDak51bSB9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7IHJlYWxUaW1lRGVmZWN0aXZlQ291bnQgfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57eyByZWFsVGltZU9rQ291bnQgfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgb3JkZXIuZGFhMDE4ID09PSAn5byA5belJyA/ICfnlJ/kuqfmiqXlt6UnIDogJ+iwg+acuuaKpeW3pScgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC90Ym9keT5cclxuICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPCEtLSDljoblj7LmiqXlt6XorrDlvZUgLS0+XHJcbiAgICAgICAgICAgICAgICA8dmlldyBjbGFzcz1cInNlY3Rpb24tdGl0bGUgaGlzdG9yeS10aXRsZVwiPuWOhuWPsuaKpeW3peiusOW9lTwvdmlldz5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1zY3JvbGwgaGlzdG9yeS10YWJsZS1zY3JvbGxcIj5cclxuICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9XCJyZXBvcnQtdGFibGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoZWFkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD7ml7bpl7Q8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD7miqXlt6Xkuro8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD7lt6XljZXlj7c8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD7kuqflk4HlkI3np7A8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD7orqHliJLnlJ/kuqfmlbA8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD7mnLrlj7Dlj7c8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD7liJ3lp4vph4fpm4bmlbA8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD7miqXlt6Xml7bph4fpm4bmlbA8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD7miqXlt6XmlbDvvIjorqHnrpfvvIk8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD7kuI3oia/mlbA8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD7oia/lk4HmlbDvvIjorqHnrpfvvIk8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD7miqXlt6Xnsbvlnos8L3RoPiA8IS0tIOaWsOWiniAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0Ym9keT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ciB2LWZvcj1cIihyLCBpZHgpIGluIHJlcG9ydGluZ0hpc3RvcnlcIiA6a2V5PVwiaWR4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7IHIuYmdEYXRlIH19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3sgci5zdGFmZiB8fCAnLScgfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57eyByLm9yZGVyTm8gfHwgJy0nIH19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3sgb3JkZXIuZGFhMDAzIHx8ICctJyB9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7IHBsYW5RdHlEaXNwbGF5IH19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3sgci5tYWNoaW5lTm8gfHwgJy0nIH19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3sgci5pbml0aWFsVmFsdWUgfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57eyByLnByb2R1Y3Rpb25Db3VudCB9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7IHIudG90YWxQcm9kdWN0aW9uIH19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3sgci5CZlF0eSB9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7IHIuT2tRdHkgfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57eyByLnJlcG9ydFR5cGUgfHwgJy0nIH19PC90ZD4gPCEtLSDmlrDlop4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyIHYtaWY9XCIhcmVwb3J0aW5nSGlzdG9yeS5sZW5ndGhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj1cIjEyXCIgY2xhc3M9XCJuby1kYXRhXCI+5pqC5peg5Y6G5Y+y5oql5bel6K6w5b2VPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90YWJsZT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L3ZpZXc+XHJcblxyXG4gICAgICAgICAgICA8IS0tIOenu+mZpOS6huWOn+adpeeahOeKtuaAgeihjOS4reeahOaMiemSrue7hCAtLT5cclxuICAgICAgICAgICAgPHZpZXcgY2xhc3M9XCJzdGF0dXMtcm93XCI+XHJcbiAgICAgICAgICAgICAgICA8IS0tPHZpZXcgY2xhc3M9XCJzdGF0dXMtYm94XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRleHQ+5py65Y+w6Z2i5p2/5pWw77yaPC90ZXh0PlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCB2LW1vZGVsPVwicHJvZHVjdGlvbkNvdW50XCIgY2xhc3M9XCJoaWdobGlnaHRcIiBkaXNhYmxlZCAvPlxyXG4gICAgICAgICAgICAgICAgPC92aWV3PlxyXG4gICAgICAgICAgICAgICAgPHZpZXcgY2xhc3M9XCJzdGF0dXMtYm94XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRleHQ+5b2T5YmN6YeH6ZuG5pWw77yaPC90ZXh0PlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCB2LW1vZGVsPVwiY2FsY3VsYXRlZEN1cnJlbnRDb3VudFwiIGNsYXNzPVwiaGlnaGxpZ2h0XCIgZGlzYWJsZWQgLz5cclxuICAgICAgICAgICAgICAgIDwvdmlldz5cclxuICAgICAgICAgICAgICAgIDx2aWV3IGNsYXNzPVwib3BlcmF0b3ItYm94XCI+LTwvdmlldz5cclxuICAgICAgICAgICAgICAgIDx2aWV3IGNsYXNzPVwic3RhdHVzLWJveCBzdGFuZGFsb25lLWJveFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0ZXh0PuW3suaJk+WNsOadoeeggeaVsO+8mjwvdGV4dD5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdi1tb2RlbD1cInNRdWFudGl0eVwiIGNsYXNzPVwiaGlnaGxpZ2h0XCIgZGlzYWJsZWQgLz5cclxuICAgICAgICAgICAgICAgIDwvdmlldz5cclxuICAgICAgICAgICAgICAgIDx2aWV3IGNsYXNzPVwib3BlcmF0b3ItYm94XCI+PTwvdmlldz5cclxuICAgICAgICAgICAgICAgIDx2aWV3IGNsYXNzPVwic3RhdHVzLWJveFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0ZXh0PuacuumHh+S4jeiJr+aVsO+8mjwvdGV4dD5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdi1tb2RlbD1cImNhbGN1bGF0ZWREZWZlY3RpdmVDb3VudFwiIGNsYXNzPVwiaGlnaGxpZ2h0XCIgZGlzYWJsZWQgLz5cclxuICAgICAgICAgICAgICAgIDwvdmlldz5cclxuICAgICAgICAgICAgICAgIDx2aWV3IGNsYXNzPVwic3RhdHVzLWJveCByZXN1bHQtYm94XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRleHQ+5bey55Sf5Lqn5pWw77yaPC90ZXh0PlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCB2LW1vZGVsPVwiY2FsY3VsYXRlZFRvdGFsUHJvZHVjdGlvblwiIGNsYXNzPVwiaGlnaGxpZ2h0XCIgZGlzYWJsZWQgLz5cclxuICAgICAgICAgICAgICAgIDwvdmlldz4tLT5cclxuICAgICAgICAgICAgPC92aWV3PlxyXG5cclxuICAgICAgICAgICAgPHZpZXcgY2xhc3M9XCJmbGV4LXJvdyBnYXAtbGdcIj5cclxuICAgICAgICAgICAgICAgIDwhLS0g5b2T5YmN5oql5bel5Lq66YOo5YiGIC0tPlxyXG4gICAgICAgICAgICAgICAgPHZpZXcgY2xhc3M9XCJjdXJyZW50LXVzZXItc2VjdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0ZXh0PuW9k+WJjeaKpeW3peS6uu+8mjwvdGV4dD5cclxuICAgICAgICAgICAgICAgICAgICA8dGV4dCBjbGFzcz1cImN1cnJlbnQtdXNlci1uYW1lXCI+e3sgc3RhZmZEaXNwbGF5IHx8ICfmnKrpgInmi6knIH19PC90ZXh0PlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJzZWxlY3QtdXNlci1idG5cIiBAY2xpY2s9XCJpc1Nob3dVc2VyU2VsZWN0ID0gdHJ1ZVwiPumAieS6ujwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC92aWV3PlxyXG5cclxuICAgICAgICAgICAgICAgIDwhLS0g5LiN6Imv5pWw6YeP6YOo5YiGIC0tPlxyXG4gICAgICAgICAgICAgICAgPHZpZXcgY2xhc3M9XCJkZWZlY3RpdmUtc2VjdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0ZXh0PuS4jeiJr+aVsOmHj++8mjwvdGV4dD5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdi1tb2RlbD1cImN1c3RvbUFtb3VudFwiIGNsYXNzPVwiaW5wIGJhZC1pbnB1dFwiIHBsYWNlaG9sZGVyPVwi6K+36L6T5YWl5pWw6YePXCIgLz5cclxuICAgICAgICAgICAgICAgIDwvdmlldz5cclxuXHJcbiAgICAgICAgICAgICAgICA8IS0tIOehruiupOaPkOS6pOWSjOiwg+acuuaKpeW3peaMiemSriAtLT5cclxuICAgICAgICAgICAgICAgIDx2aWV3IGNsYXNzPVwic3VibWl0LXNlY3Rpb25cIj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiZGV0YWlscy1idG5cIiBAY2xpY2s9XCJjb25maXJtQ3VzdG9tQW1vdW50XCI+56Gu6K6k5o+Q5LqkPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImRldGFpbHMtYnRuXCIgQGNsaWNrPVwiY29uZmlybVRpYW9qaUJhb2dvbmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAg5oql6K+V5Lqn5pWwPGJyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToyNHB4O1wiPu+8iOS7juiwg+acuuW8gOWni+WIsOW8gOW3peWJjeeahOivleS6p+aVsOmHj++8iTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvdmlldz5cclxuICAgICAgICAgICAgPC92aWV3PlxyXG5cclxuICAgICAgICAgICAgPCEtLSDpgInkurrlvLnnqpcgLS0+XHJcbiAgICAgICAgICAgIDx2aWV3IHYtaWY9XCJpc1Nob3dVc2VyU2VsZWN0XCIgY2xhc3M9XCJvdmVybGF5XCI+XHJcbiAgICAgICAgICAgICAgICA8dmlldyBjbGFzcz1cInBvcHVwIHVzZXItc2VsZWN0LXBvcHVwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSDmkJzntKLmoI8gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPHZpZXcgY2xhc3M9XCJ1c2VyLXNlYXJjaC1iYXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHYtbW9kZWwudHJpbT1cInVzZXJTZWFyY2hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ1c2VyLXNlYXJjaC1pbnB1dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIui+k+WFpeW3peWPt+aIluWnk+WQjeaQnOe0olwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAa2V5ZG93bi5lbnRlci5wcmV2ZW50IC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdi1pZj1cInVzZXJTZWFyY2hcIiBjbGFzcz1cInVzZXItc2VhcmNoLWNsZWFyXCIgQGNsaWNrPVwidXNlclNlYXJjaD0nJ1wiPua4heepujwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dmlldyBjbGFzcz1cInVzZXItc2VhcmNoLWluZm9cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIOWMuemFje+8mnt7IGZpbHRlcmVkVXNlcnMubGVuZ3RoIH19IC8ge3sgdXNlcnMubGVuZ3RoIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdmlldz5cclxuICAgICAgICAgICAgICAgICAgICA8L3ZpZXc+XHJcbiAgICAgICAgICAgICAgICAgICAgPHZpZXcgY2xhc3M9XCJ1c2VyLWxpc3Qtc2Nyb2xsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZSB2LWlmPVwiZmlsdGVyZWRVc2Vycy5sZW5ndGhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx2aWV3IGNsYXNzPVwidXNlci1saXN0LWdyaWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHYtZm9yPVwiKHUsIGluZGV4KSBpbiBmaWx0ZXJlZFVzZXJzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDprZXk9XCJpbmRleFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6Y2xhc3M9XCJbJ3VzZXItbGlzdC1idG4nLCB7J3NlbGVjdGVkJzogdT09PXN0YWZmTm99XVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9XCJzZWxlY3RVc2VyKHUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidXNlci1jb2RlXCI+e3sgdS5zcGxpdCgnOicpWzBdIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInVzZXItbmFtZVwiPnt7IHUuc3BsaXQoJzonKVsxXSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdmlldz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHZpZXcgdi1lbHNlIGNsYXNzPVwibm8tdXNlci1yZXN1bHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIOacquaJvuWIsOWMuemFjeS6uuWRmFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3ZpZXc+XHJcbiAgICAgICAgICAgICAgICAgICAgPC92aWV3PlxyXG4gICAgICAgICAgICAgICAgICAgIDx2aWV3IGNsYXNzPVwidXNlci1wb3B1cC1mb290ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImNsZWFuLWJ0biB3aWRlLWJ0blwiIEBjbGljaz1cImlzU2hvd1VzZXJTZWxlY3QgPSBmYWxzZVwiPuWFs+mXrTwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdmlldz5cclxuICAgICAgICAgICAgICAgIDwvdmlldz5cclxuICAgICAgICAgICAgPC92aWV3PlxyXG5cclxuICAgICAgICAgICAgPCEtLSDnpoHnlKjmjInpkq7vvJrigJjkv53lrZjlubbnlJ/mlYgn44CB4oCY5Y+W5raI4oCZIC0tPlxyXG4gICAgICAgICAgICA8IS0tPHZpZXcgY2xhc3M9XCJib3R0b20tc2VjdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInNhdmUtYnRuXCIgQGNsaWNrPVwic2F2ZVwiPuS/neWtmOW5tueUn+aViDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImNhbmNlbC1idG5cIiBAY2xpY2s9XCJjYW5jZWxcIj7lj5bmtog8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC92aWV3Pi0tPlxyXG4gICAgICAgICAgICA8IS0tIOS/neeVmeaXp+W8ueeqlyAtLT5cclxuICAgICAgICAgICAgPHZpZXcgdi1pZj1cImlzU2hvd1wiIGNsYXNzPVwib3ZlcmxheVwiPlxyXG4gICAgICAgICAgICAgICAgPHZpZXcgY2xhc3M9XCJwb3B1cFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDx2aWV3IGNsYXNzPVwiYm90dG9tLXNlY3Rpb24xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJjbGVhbi1idG5cIiB0eXBlPVwid2FyblwiIEBjbGljaz1cImRlbGV0ZUJhcmNvZGVcIj7lhbPpl608L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L3ZpZXc+XHJcbiAgICAgICAgICAgICAgICAgICAgPHZpZXcgY2xhc3M9XCJyZWFzb24tc2VjdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGV4dD7miqXlt6XkurrvvJo8L3RleHQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx2aWV3IGNsYXNzPVwicmVhc29uLWJ1dHRvbnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdi1mb3I9XCIodSxpbmRleCkgaW4gdXNlcnNcIiA6a2V5PVwiaW5kZXhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6Y2xhc3M9XCJ7J3JlYXNvbi1idG4nOnRydWUsJ3NlbGVjdGVkJzogdXNlcj09PXV9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPVwidG9nZ2xlVXNlcih1KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGZvcm1hdFVzZXIodSkgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3ZpZXc+XHJcbiAgICAgICAgICAgICAgICAgICAgPC92aWV3PlxyXG4gICAgICAgICAgICAgICAgPC92aWV3PlxyXG4gICAgICAgICAgICA8L3ZpZXc+XHJcblxyXG4gICAgICAgICAgICA8dmlldyB2LWlmPVwiYmFyY29kZUlzU2hvd1wiIGNsYXNzPVwib3ZlcmxheVwiPlxyXG4gICAgICAgICAgICAgICAgPHZpZXcgY2xhc3M9XCJwb3B1cFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDx1bmktdGFibGUgcmVmPVwidGFibGVcIiBib3JkZXIgc3RyaXBlIGVtcHR5VGV4dD1cIuaaguaXoOabtOWkmuaVsOaNrlwiIGNsYXNzPVwidGFibGUxXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx1bmktdHI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dW5pLXRoIGFsaWduPVwiY2VudGVyXCIgc3R5bGU9XCJmb250LXNpemU6NDBweDtcIj7nlJ/miJDml7bpl7Q8L3VuaS10aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bmktdGggYWxpZ249XCJjZW50ZXJcIiBzdHlsZT1cIndpZHRoOjM5JTtmb250LXNpemU6NDBweDtcIj7mnaHnoIE8L3VuaS10aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bmktdGggYWxpZ249XCJjZW50ZXJcIiBzdHlsZT1cImZvbnQtc2l6ZTo0MHB4O1wiPuaKpeW3peS6ujwvdW5pLXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVuaS10aCBhbGlnbj1cImNlbnRlclwiIHN0eWxlPVwiZm9udC1zaXplOjQwcHg7XCI+5oql5bel5pWw6YePPC91bmktdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdW5pLXRyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dW5pLXRyIHYtZm9yPVwiKGl0ZW0saW5kZXgpIGluIHJlcG9ydGluZ0xpc3RcIiA6a2V5PVwiaW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bmktdGQgYWxpZ249XCJjZW50ZXJcIj48aW5wdXQgdHlwZT1cInRleHRcIiB2LW1vZGVsPVwiaXRlbS5iZ0RhdGVcIiBzdHlsZT1cIndpZHRoOjI2dmg7XCIgLz48L3VuaS10ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bmktdGQgYWxpZ249XCJjZW50ZXJcIj48aW5wdXQgdi1tb2RlbD1cIml0ZW0uaXRlbU5vQ2FkZVwiIHN0eWxlPVwid2lkdGg6NDB2aDtcIiAvPjwvdW5pLXRkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVuaS10ZCBhbGlnbj1cImNlbnRlclwiPjxpbnB1dCB2LW1vZGVsPVwiaXRlbS5zdGFmZk5hbWVcIiAvPjwvdW5pLXRkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVuaS10ZCBhbGlnbj1cImNlbnRlclwiPjxpbnB1dCB2LW1vZGVsPVwiaXRlbS5va1F0eVwiIC8+PC91bmktdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdW5pLXRyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdW5pLXRhYmxlPlxyXG4gICAgICAgICAgICAgICAgICAgIDx2aWV3PjxidXR0b24gY2xhc3M9XCJjbGVhbi1idG5cIiB0eXBlPVwid2FyblwiIEBjbGljaz1cImJhcmNvZGVJc1Nob3c9ZmFsc2VcIj7lhbPpl608L2J1dHRvbj48L3ZpZXc+XHJcbiAgICAgICAgICAgICAgICA8L3ZpZXc+XHJcbiAgICAgICAgICAgIDwvdmlldz5cclxuICAgICAgICA8L3ZpZXc+XHJcbiAgICA8L3ZpZXc+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0PlxyXG4gICAgaW1wb3J0IHsgcHJpbnRUZW1wbGF0ZTMgfSBmcm9tIFwiLi4vdXRpbHMvcHJpbnRUZW1wbGF0ZVwiO1xyXG5cclxuICAgIGV4cG9ydCBkZWZhdWx0IHtcclxuICAgICAgICBwcm9wczogeyBvcmRlck5vOiBTdHJpbmcsIG9yZGVySWQ6IE51bWJlciwgbWFjaGluZU5vOiBTdHJpbmcgfSxcclxuICAgICAgICBkYXRhKCkge1xyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgaXNTaG93VXNlclNlbGVjdDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICBjdXJyZW50VXNlcjogJycsXHJcbiAgICAgICAgICAgICAgICBiYXJjb2RlQW1vdW50OiAnJyxcclxuICAgICAgICAgICAgICAgIHVzZXJzOiBbXSwgdXNlckZvcm06IFtdLCBzdGFmZjogW10sIHVzZXI6IHt9LFxyXG4gICAgICAgICAgICAgICAgcHJvZHVjdGlvbkNvdW50OiAwLCBwcmludGVkQ291bnQ6IDAsIGRlZmVjdGl2ZUNvdW50OiAwLCBvcmRlcjoge30sXHJcbiAgICAgICAgICAgICAgICBpY291bnQ6IDEsIGJxdHk6IDAsIHNRdWFudGl0eTogMCwga2dRdHk6IDAsIGluaXRpYWxWYWx1ZTogMCwgcXF0eTogMCxcclxuICAgICAgICAgICAgICAgIG5nU3RhaWQ6IDAsIGJ1ZmZlckRhdGE6ICcnLCBkYXRhVG9QcmludDogW10sIGlzTG9hZGluZzogZmFsc2UsIGJ1dDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICBEQUEwMDNMaXN0OiBbXSwgbGluZUxpc3Q6IFtdLCBpc1Nob3c6IGZhbHNlLCBiYXJjb2RlSXNTaG93OiBmYWxzZSwgYmFyY29kZUxpc3Q6IFtdLFxyXG4gICAgICAgICAgICAgICAgc3RhZmZObzogJycsIHByaW50U3RyOiAnJywgcHJpbnRNYWM6ICcnLCBibHVldG9vdGhTb2NrZXQ6IHt9LCBkZXZpY2U6ICcnLCB1dWlkOiAnJyxcclxuICAgICAgICAgICAgICAgIHByaW50TnVtOiAxLCByZXBvcnRpbmdMaXN0OiBbXSwgcHJpbnRMb2FkaW5nOiBmYWxzZSwgY3VzdG9tQW1vdW50OiAnJyxcclxuICAgICAgICAgICAgICAgIGlzR2VuZXJhdGluZ0JhcmNvZGU6IGZhbHNlLCBsYXN0R2VuZXJhdGVUaW1lOiAwLCBnZW5lcmF0ZVJlcXVlc3RJZDogbnVsbCxcclxuICAgICAgICAgICAgICAgIG5vd1RpbWVUaW1lcjogbnVsbCwgbm93VGltZTogJycsXHJcbiAgICAgICAgICAgICAgICB1c2VyU2VhcmNoOiAnJyxcclxuICAgICAgICAgICAgICAgIHJlZnJlc2hUaW1lcjogbnVsbCwgLy8g5paw5aKe77ya6Ieq5Yqo5Yi35paw5a6a5pe25ZmoXHJcbiAgICAgICAgICAgICAgICAvKiDmlrDlop7vvJrljoblj7LmiqXlt6XorrDlvZXmlbDnu4QgKi9cclxuICAgICAgICAgICAgICAgIHJlcG9ydGluZ0hpc3Rvcnk6IFtdXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGNvbXB1dGVkOiB7XHJcbiAgICAgICAgICAgIC8v6Imv5ZOB5pWw5a6e5pe26K6h566XXHJcbiAgICAgICAgICAgIHJlYWxUaW1lRGVmZWN0aXZlQ291bnQoKSB7XHJcbiAgICAgICAgICAgICAgICAvLyDkvJjlhYjnlKjovpPlhaXmoYbnmoTlgLzvvIzlkKbliJnnlKjmjqXlj6PmlbDmja5cclxuICAgICAgICAgICAgICAgIGNvbnN0IHZhbCA9IE51bWJlcih0aGlzLmN1c3RvbUFtb3VudCk7XHJcbiAgICAgICAgICAgICAgICBpZiAoIWlzTmFOKHZhbCkgJiYgdGhpcy5jdXN0b21BbW91bnQgIT09ICcnKSByZXR1cm4gdmFsO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2FsY3VsYXRlZERlZmVjdGl2ZUNvdW50O1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICByZWFsVGltZU9rQ291bnQoKSB7XHJcbiAgICAgICAgICAgICAgICAvLyDoia/lk4HmlbAgPSDmiqXlt6XmlbDvvIjorqHnrpfvvIkgLSDkuI3oia/mlbBcclxuICAgICAgICAgICAgICAgIGNvbnN0IHRvdGFsID0gKHRoaXMub3JkZXIuY3VycmVudENqTnVtIHx8IDApIC0gKHRoaXMub3JkZXIuaW5pdENqTnVtIHx8IDApO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRvdGFsIC0gdGhpcy5yZWFsVGltZURlZmVjdGl2ZUNvdW50O1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBjYWxjdWxhdGVkQ3VycmVudENvdW50KCkgeyByZXR1cm4gKHRoaXMucHJvZHVjdGlvbkNvdW50IHx8IDApIC0gKHRoaXMuaW5pdGlhbFZhbHVlIHx8IDApOyB9LFxyXG4gICAgICAgICAgICBjYWxjdWxhdGVkVG90YWxQcm9kdWN0aW9uKCkgeyByZXR1cm4gKHRoaXMua2dRdHkgfHwgMCk7IH0sIC8vIOiLpemcgOaBouWkjeaXp+mAu+i+keWPr+eUqCAodGhpcy5rZ1F0eXx8MCkrdGhpcy5jYWxjdWxhdGVkQ3VycmVudENvdW50XHJcbiAgICAgICAgICAgIGNhbGN1bGF0ZWREZWZlY3RpdmVDb3VudCgpIHsgcmV0dXJuIHRoaXMuY2FsY3VsYXRlZFRvdGFsUHJvZHVjdGlvbiAtICh0aGlzLnNRdWFudGl0eSB8fCAwKTsgfSxcclxuICAgICAgICAgICAgcGxhblF0eURpc3BsYXkoKSB7IHJldHVybiB0aGlzLm9yZGVyLnBsYW5RdHkgfHwgdGhpcy5vcmRlci5wbGFuUXVhbnRpdHkgfHwgdGhpcy5vcmRlci5kYWEwMDggfHwgMDsgfSxcclxuICAgICAgICAgICAgc3RhZmZEaXNwbGF5KCkge1xyXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLnN0YWZmTm8pIHJldHVybiAnJztcclxuICAgICAgICAgICAgICAgIGNvbnN0IHNlZ3MgPSB0aGlzLnN0YWZmTm8uc3BsaXQoJzonKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBzZWdzLmxlbmd0aCA+IDEgPyBgJHtzZWdzWzBdfSAke3NlZ3NbMV19YCA6IHRoaXMuc3RhZmZObztcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZmlsdGVyZWRVc2VycygpIHtcclxuICAgICAgICAgICAgICAgIGlmICghdGhpcy51c2VyU2VhcmNoKSByZXR1cm4gdGhpcy51c2VycztcclxuICAgICAgICAgICAgICAgIGNvbnN0IGt3ID0gdGhpcy51c2VyU2VhcmNoLnRyaW0oKS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudXNlcnMuZmlsdGVyKHUgPT4gdS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGt3KSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGNyZWF0ZWQoKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZURhdGEoKTtcclxuICAgICAgICAgICAgdGhpcy5mZXRjaERhdGEodHJ1ZSk7XHJcbiAgICAgICAgICAgIHRoaXMuaW5pdCgpO1xyXG4gICAgICAgICAgICB0aGlzLmdldFhTMDEwMSgpO1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZU5vd1RpbWUoKTtcclxuICAgICAgICAgICAgLy8g56eS57qn5Yi35paw77yb5aaC5LiN6ZyA5Yqo5oCB6Lez56eS5Y+v5pS55Li6IDYwMDAwXHJcbiAgICAgICAgICAgIHRoaXMubm93VGltZVRpbWVyID0gc2V0SW50ZXJ2YWwodGhpcy51cGRhdGVOb3dUaW1lLCAxMDAwKTtcclxuXHJcbiAgICAgICAgICAgIC8vIOaWsOWinu+8muavj+WIhumSn+iHquWKqOWIt+aWsOaVsOaNru+8iDYwMDAw5q+r56eSID0gMeWIhumSn++8iVxyXG4gICAgICAgICAgICB0aGlzLnN0YXJ0QXV0b1JlZnJlc2goKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGJlZm9yZURlc3Ryb3koKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLm5vd1RpbWVUaW1lcikgY2xlYXJJbnRlcnZhbCh0aGlzLm5vd1RpbWVUaW1lcik7XHJcbiAgICAgICAgICAgIC8vIOaWsOWinu+8mua4heeQhuiHquWKqOWIt+aWsOWumuaXtuWZqFxyXG4gICAgICAgICAgICB0aGlzLnN0b3BBdXRvUmVmcmVzaCgpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgbWV0aG9kczoge1xyXG4gICAgICAgICAgICAvLyDmlrDlop7vvJrlvIDlp4voh6rliqjliLfmlrBcclxuICAgICAgICAgICAgc3RhcnRBdXRvUmVmcmVzaCgpIHtcclxuICAgICAgICAgICAgICAgIC8vIOWFiOa4hemZpOWPr+iDveWtmOWcqOeahOaXp+WumuaXtuWZqFxyXG4gICAgICAgICAgICAgICAgdGhpcy5zdG9wQXV0b1JlZnJlc2goKTtcclxuICAgICAgICAgICAgICAgIC8vIOiuvue9ruaWsOeahOWumuaXtuWZqO+8jOavj+WIhumSn+aJp+ihjOS4gOasoVxyXG4gICAgICAgICAgICAgICAgdGhpcy5yZWZyZXNoVGltZXIgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ+iHquWKqOWIt+aWsOaVsOaNri4uLicpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVmcmVzaCgpO1xyXG4gICAgICAgICAgICAgICAgfSwgNjAwMDApOyAvLyA2MDAwMOavq+enkiA9IDHliIbpkp9cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgLy8g5paw5aKe77ya5YGc5q2i6Ieq5Yqo5Yi35pawXHJcbiAgICAgICAgICAgIHN0b3BBdXRvUmVmcmVzaCgpIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnJlZnJlc2hUaW1lcikge1xyXG4gICAgICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5yZWZyZXNoVGltZXIpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVmcmVzaFRpbWVyID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSxcclxuXHJcbiAgICAgICAgICAgIGZvcm1hdFVzZXIodSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKCF1KSByZXR1cm4gJyc7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBzZWdzID0gdS5zcGxpdCgnOicpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHNlZ3MubGVuZ3RoID4gMSA/IGAke3NlZ3NbMF19ICR7c2Vnc1sxXX1gIDogdTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgc2VsZWN0VXNlcih1KSB7IHRoaXMuc3RhZmZObyA9IHU7IHRoaXMuaXNTaG93VXNlclNlbGVjdCA9IGZhbHNlOyB0aGlzLnVzZXJTZWFyY2ggPSAnJzsgfSxcclxuICAgICAgICAgICAgLyog5L+u5pS577ya5aKe5Yqg56eSICovXHJcbiAgICAgICAgICAgIHVwZGF0ZU5vd1RpbWUoKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBkID0gbmV3IERhdGUoKSwgcCA9IG4gPT4gbi50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vd1RpbWUgPSBgJHtkLmdldEZ1bGxZZWFyKCl9LSR7cChkLmdldE1vbnRoKCkgKyAxKX0tJHtwKGQuZ2V0RGF0ZSgpKX0gJHtwKGQuZ2V0SG91cnMoKSl9OiR7cChkLmdldE1pbnV0ZXMoKSl9OiR7cChkLmdldFNlY29uZHMoKSl9YDtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgaW5pdGlhbGl6ZURhdGEoKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnByb2R1Y3Rpb25Db3VudCA9IHRoaXMucHJpbnRlZENvdW50ID0gdGhpcy5kZWZlY3RpdmVDb3VudCA9IDA7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmljb3VudCA9IDE7IHRoaXMuYnF0eSA9IDA7IHRoaXMuc1F1YW50aXR5ID0gMDsgdGhpcy5rZ1F0eSA9IDA7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmluaXRpYWxWYWx1ZSA9IDA7IHRoaXMucXF0eSA9IDA7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmlzR2VuZXJhdGluZ0JhcmNvZGUgPSBmYWxzZTsgdGhpcy5sYXN0R2VuZXJhdGVUaW1lID0gMDsgdGhpcy5nZW5lcmF0ZVJlcXVlc3RJZCA9IG51bGw7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHJlc2V0R2VuZXJhdGVTdGF0ZSgpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaXNHZW5lcmF0aW5nQmFyY29kZSA9IGZhbHNlOyB0aGlzLmdlbmVyYXRlUmVxdWVzdElkID0gbnVsbDsgdGhpcy5sYXN0R2VuZXJhdGVUaW1lID0gMDtcclxuICAgICAgICAgICAgICAgIHRoaXMuJHNob3dNZXNzYWdlKFwi5bey6YeN572u5p2h56CB55Sf5oiQ54q25oCBXCIpO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAvLyDkv67mlLnvvJrlnKjmiYvliqjliLfmlrDml7bkuZ/ph43nva7oh6rliqjliLfmlrDorqHml7blmahcclxuICAgICAgICAgICAgcmVmcmVzaCgpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuJHNlbmRQb3N0UmVxdWVzdCh7XHJcbiAgICAgICAgICAgICAgICAgICAgdXJsOiBcImh0dHA6Ly8xOTIuMTY4LjAuOTQ6OTA5NS9OdW1lcmljYWwvUmVmcmVzaERldkJ5Y2xcIixcclxuICAgICAgICAgICAgICAgICAgICBkYXRhOiB7IG1hY2hpbmVObzogdGhpcy5vcmRlci5tYWNoaW5lTm8gfSxcclxuICAgICAgICAgICAgICAgICAgICBjb250ZW50VHlwZTogXCJhcHBsaWNhdGlvbi9qc29uXCJcclxuICAgICAgICAgICAgICAgIH0pLnRoZW4ociA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHIuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mZXRjaERhdGEodHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuJHNob3dNZXNzYWdlKFwi5pWw5o2u5Yi35paw5oiQ5YqfXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuJHNob3dNZXNzYWdlKFwi5ZCM5q2l5aSx6LSlXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pLmNhdGNoKGVycm9yID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCfliLfmlrDlpLHotKU6JywgZXJyb3IpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuJHNob3dNZXNzYWdlKFwi5Yi35paw5aSx6LSl77yM6K+35qOA5p+l572R57uc6L+e5o6lXCIpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIG9uRGFhMDAzQ2hhbmdlKHYpIHtcclxuICAgICAgICAgICAgICAgIGxldCBvID0gdGhpcy5saW5lTGlzdFt0aGlzLkRBQTAwM0xpc3QuaW5kZXhPZih2KV07XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9yZGVySWQgPSBvLmlkOyB0aGlzLm9yZGVyTm8gPSBvLmRhYTAwMTtcclxuICAgICAgICAgICAgICAgIHVuaS5zZXRTdG9yYWdlU3luYygnbWFjaGluZScsIHRoaXMubWFjaGluZU5vKTtcclxuICAgICAgICAgICAgICAgIHVuaS5zZXRTdG9yYWdlU3luYygnb3JkZXJJZCcsIHRoaXMub3JkZXJJZCk7XHJcbiAgICAgICAgICAgICAgICB1bmkuc2V0U3RvcmFnZVN5bmMoJ29yZGVyTm8nLCB0aGlzLm9yZGVyTm8pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5mZXRjaERhdGEoZmFsc2UpO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBmZXRjaERhdGEoZmxhZykge1xyXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLm9yZGVySWQgJiYgIXRoaXMub3JkZXJObykgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5nZXRPcmRlckJ5SWQoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0V29tZGFhUHJpbnRCeUlkKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmdldFJlcG9ydGluZ0hpc3RvcnkoKTsgLy8g5paw5aKe77ya5q+P5qyh5Yi35paw5ZCM5q2l5Y6G5Y+yXHJcbiAgICAgICAgICAgICAgICBpZiAoZmxhZykge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuJHBvc3QoeyB1cmw6IFwiL1dvbWRhYS9HZXRXb21kYWFzQnlTaG93XCIsIGRhdGE6IHsgbWFjaGluZU5vOiB0aGlzLm1hY2hpbmVObyB9IH0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC50aGVuKHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxpbmVMaXN0ID0gcmVzLmRhdGEudGJCaWxsTGlzdDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuREFBMDAzTGlzdCA9IHJlcy5kYXRhLnRiQmlsbExpc3QubWFwKGkgPT4gaS5kYWEwMDMpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgLyog5paw5aKe77ya6I635Y+W5Y6G5Y+y5oql5bel6K6w5b2VICovXHJcbiAgICAgICAgICAgIC8qIOS/ruaUue+8muinhOiMg+WOhuWPsuaXtumXtOWIsOenkiAqL1xyXG4gICAgICAgICAgICBnZXRSZXBvcnRpbmdIaXN0b3J5KCkge1xyXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLm9yZGVyTm8pIHsgdGhpcy5yZXBvcnRpbmdIaXN0b3J5ID0gW107IHJldHVybjsgfVxyXG4gICAgICAgICAgICAgICAgY29uc3QgZm10U2VjID0gdiA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF2KSByZXR1cm4gJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8g5YW85a655ZCO56uv5Y+v6IO96L+U5Zue55qE5LiN5ZCM5qC85byPXHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZCA9IG5ldyBEYXRlKHR5cGVvZiB2ID09PSAnc3RyaW5nJyA/IHYucmVwbGFjZSgvLS9nLCAnLycpIDogdik7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzTmFOKGQuZ2V0VGltZSgpKSkgcmV0dXJuIHY7IC8vIOaXoOazleino+aekOWImeWOn+agt+i/lOWbnlxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHAgPSBuID0+IG4udG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtkLmdldEZ1bGxZZWFyKCl9LSR7cChkLmdldE1vbnRoKCkgKyAxKX0tJHtwKGQuZ2V0RGF0ZSgpKX0gJHtwKGQuZ2V0SG91cnMoKSl9OiR7cChkLmdldE1pbnV0ZXMoKSl9OiR7cChkLmdldFNlY29uZHMoKSl9YDtcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICB0aGlzLiRwb3N0KHtcclxuICAgICAgICAgICAgICAgICAgICB1cmw6IFwiL1dvbWRhYS9HZXRCeUJpbGxOb0JHXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgZGF0YTogeyBiaWxsTm86IHRoaXMub3JkZXJObywgbWFjaGluZU5vOiB0aGlzLm1hY2hpbmVObyB8fCBudWxsIH1cclxuICAgICAgICAgICAgICAgIH0pLnRoZW4ocmVzID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBsaXN0ID0gcmVzPy5kYXRhPy50YkJpbGxMaXN0IHx8IHJlcz8uZGF0YSB8fCBbXTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlcG9ydGluZ0hpc3RvcnkgPSBsaXN0Lm1hcChyID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8g5L6d5o2u5L2g5pWw5o2u5bqT5a2X5q615YGa5pig5bCE77yI5LiL6Z2i5a2X5q615ZCN5oyJ5bi46KeB5ZG95ZCN5Li+5L6L77yM6ZyA6KaB5oyJ5a6e6ZmF5pS577yJXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZ0RhdGU6IHIuYmdEYXRlIHx8ICcnLCAvLyDmiqXlt6Xml7bpl7RcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YWZmOiAoci5zdGFmZk5vID8gKHIuc3RhZmZObyArICcgJyArIChyLnN0YWZmTmFtZSB8fCAnJykpIDogKHIuc3RhZmZOYW1lIHx8ICcnKSksLy/miqXlt6XkurpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yZGVyTm86IHIuYmlsbE5vLC8v5bel5Y2V5Y+3XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYWNoaW5lTm86IHIubWFjaGluZU5vLC8v5py65Y+w5Y+3XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbml0aWFsVmFsdWU6IHIuY3NRdHkgPz8gMCwvL+WIneWni+mHh+mbhuaVsFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvZHVjdGlvbkNvdW50OiByLmNqUXR5ID8/IDAsLy/miqXlt6Xml7bph4fpm4bmlbBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsUHJvZHVjdGlvbjogKHIuY2pRdHkgLSByLmNzUXR5KSA/PyAwLC8v5oql5bel5pWw77yI6K6h566X77yJXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCZlF0eTogci5iZlF0eSwvL+S4jeiJr+aVsFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgT2tRdHk6IHIub2tRdHksLy/oia/lk4HmlbDvvIjorqHnrpfvvIlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcG9ydFR5cGU6ci5yZW1hcmsgLy/miqXlt6XnsbvlnotcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfSkuY2F0Y2goKCkgPT4geyB0aGlzLnJlcG9ydGluZ0hpc3RvcnkgPSBbXTsgfSk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHRvZ2dsZVVzZXIodSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKCF1KSByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB0aGlzLnVzZXIgPSB0aGlzLnVzZXIgPT09IHUgPyBudWxsIDogdTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RhZmZObyA9IHRoaXMudXNlcjtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgLy/pgInmi6nmiqXlt6XkurpcclxuICAgICAgICAgICAgY29uZmlybUN1c3RvbUFtb3VudCgpIHtcclxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5jdXN0b21BbW91bnQgfHwgaXNOYU4oTnVtYmVyKHRoaXMuY3VzdG9tQW1vdW50KSkpIHsgdGhpcy4kc2hvd01lc3NhZ2UoJ+ivt+i+k+WFpeacieaViOeahOaVsOmHjycpOyByZXR1cm47IH1cclxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5zdGFmZk5vKSB7IHRoaXMuJHNob3dNZXNzYWdlKCfor7fpgInmi6nmiqXlt6XkuronKTsgcmV0dXJuOyB9XHJcbiAgICAgICAgICAgICAgICBjb25zdCBzdGFmZk5vID0gdGhpcy5zdGFmZk5vLnNwbGl0KCc6JylbMF07XHJcbiAgICAgICAgICAgICAgICBjb25zdCBhbW91bnQgPSBOdW1iZXIodGhpcy5jdXN0b21BbW91bnQpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy4kcG9zdCh7XHJcbiAgICAgICAgICAgICAgICAgICAgdXJsOiBcIi9NZXNJbnZJdGVtQmFyY29kZXMvQWRkQkZUb0JhcmNvZGVzXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBvcmRlck5vOiB0aGlzLm9yZGVyTm8sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9yZGVySWQ6IHRoaXMub3JkZXJJZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmY6IGFtb3VudCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhZmZObzogc3RhZmZObyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaW5pdENqTnVtOiB0aGlzLm9yZGVyLmluaXRDak51bSwgICAgICAgIC8vIOWIneWni+mHh+mbhuaVsFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50Q2pOdW06IHRoaXMub3JkZXIuY3VycmVudENqTnVtICAgLy8g5oql5bel5pe26YeH6ZuG5pWwXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSkudGhlbihyZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXMuc3RhdHVzID09IDEpIHsgdGhpcy4kc2hvd01lc3NhZ2UocmVzLm1lc3NhZ2UpOyByZXR1cm47IH1cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLiRzaG93TWVzc2FnZSgn5oql5bqf5pWw6YeP5aGr5YaZ5oiQ5YqfJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mZXRjaERhdGEodHJ1ZSk7IC8vIOiHquWKqOWIt+aWsOWOhuWPslxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3VzdG9tQW1vdW50ID0gJyc7XHJcbiAgICAgICAgICAgICAgICB9KS5jYXRjaCgoKSA9PiB0aGlzLiRzaG93TWVzc2FnZSgn5oql5bqf5pWw6YeP5aGr5YaZ5aSx6LSl77yM6K+36YeN6K+VJykpO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAvLyDmlrDlop7vvJrosIPmnLrmiqXlt6VcclxuICAgICAgICAgICAgY29uZmlybVRpYW9qaUJhb2dvbmcoKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuY3VzdG9tQW1vdW50IHx8IGlzTmFOKE51bWJlcih0aGlzLmN1c3RvbUFtb3VudCkpKSB7IHRoaXMuJHNob3dNZXNzYWdlKCfor7fovpPlhaXmnInmlYjnmoTmlbDph48nKTsgcmV0dXJuOyB9XHJcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuc3RhZmZObykgeyB0aGlzLiRzaG93TWVzc2FnZSgn6K+36YCJ5oup5oql5bel5Lq6Jyk7IHJldHVybjsgfVxyXG4gICAgICAgICAgICAgICAgY29uc3Qgc3RhZmZObyA9IHRoaXMuc3RhZmZOby5zcGxpdCgnOicpWzBdO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgYW1vdW50ID0gTnVtYmVyKHRoaXMuY3VzdG9tQW1vdW50KTtcclxuICAgICAgICAgICAgICAgIHRoaXMuJHBvc3Qoe1xyXG4gICAgICAgICAgICAgICAgICAgIHVybDogXCIvTWVzSW52SXRlbUJhcmNvZGVzL0FkZEJGVG9CYXJjb2Rlc1wiLCAvLyDlpoLmnInosIPmnLrkuJPnlKjmjqXlj6Por7fmm7/mjaJcclxuICAgICAgICAgICAgICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9yZGVyTm86IHRoaXMub3JkZXJObyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgb3JkZXJJZDogdGhpcy5vcmRlcklkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBiZjogYW1vdW50LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFmZk5vOiBzdGFmZk5vLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpbml0Q2pOdW06IHRoaXMub3JkZXIuaW5pdENqTnVtLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50Q2pOdW06IHRoaXMub3JkZXIuY3VycmVudENqTnVtLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAndGlhb2ppJyAvLyDlj6/liqDljLrliIblrZfmrrXvvIzlkI7nq6/lpoLpnIDljLrliIbosIPmnLrmiqXlt6VcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KS50aGVuKHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlcy5zdGF0dXMgPT0gMSkgeyB0aGlzLiRzaG93TWVzc2FnZShyZXMubWVzc2FnZSk7IHJldHVybjsgfVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuJHNob3dNZXNzYWdlKCfosIPmnLrmiqXlt6XmiJDlip8nKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZldGNoRGF0YSh0cnVlKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmN1c3RvbUFtb3VudCA9ICcnO1xyXG4gICAgICAgICAgICAgICAgfSkuY2F0Y2goKCkgPT4gdGhpcy4kc2hvd01lc3NhZ2UoJ+iwg+acuuaKpeW3peWksei0pe+8jOivt+mHjeivlScpKTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgc2F2ZSgpIHtcclxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5zdGFmZk5vKSB7IHRoaXMuJHNob3dNZXNzYWdlKCfor7fpgInmi6nmiqXlt6XkuronKTsgcmV0dXJuOyB9XHJcbiAgICAgICAgICAgICAgICB1bmkuc2hvd1RvYXN0KHsgdGl0bGU6ICfkv53lrZjmiJDlip8nLCBpY29uOiAnc3VjY2VzcycgfSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmdldFJlcG9ydGluZ0hpc3RvcnkoKTsgLy8g5L+d5a2Y5ZCO5Lmf5Y+v5Yi35pawXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGNhbmNlbCgpIHsgdW5pLnNob3dUb2FzdCh7IHRpdGxlOiAn5Y+W5raI5pON5L2cJywgaWNvbjogJ25vbmUnIH0pOyB9LFxyXG4gICAgICAgICAgICBnZXRPcmRlckJ5SWQoKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLiRwb3N0KHsgdXJsOiBcIi9Xb21kYWEvR2V0V29tZGFhQnlJZFwiLCBkYXRhOiB7IG9yZGVySWQ6IHRoaXMub3JkZXJJZCwgb3JkZXJObzogdGhpcy5vcmRlck5vIH0gfSlcclxuICAgICAgICAgICAgICAgICAgICAudGhlbihyZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9yZGVyID0gcmVzLmRhdGEudGJCaWxsTGlzdDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcmludGVkQ291bnQgPSByZXMuZGF0YS50YkJpbGxMaXN0LmJncXR5IHx8IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGVmZWN0aXZlQ291bnQgPSByZXMuZGF0YS50YkJpbGxMaXN0LmJsUXR5IHx8IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvZHVjdGlvbkNvdW50ID0gdGhpcy5vcmRlci50b2RheU91dHB1dCB8fCAwO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBnZXRYUzAxMDEoKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLiRwb3N0KHsgdXJsOiBcIi9NZXNTdGFmZi9HZXRBbGxYUzAxMDFcIiB9KVxyXG4gICAgICAgICAgICAgICAgICAgIC50aGVuKHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhZmYgPSByZXMuZGF0YS50YkJpbGxMaXN0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVzZXJzID0gdGhpcy5zdGFmZi5tYXAocyA9PiBzLnN0YWZmTm8gKyBcIjpcIiArIHMuc3RhZmZOYW1lKTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZ2V0V29tZGFhUHJpbnRCeUlkKCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy4kcG9zdCh7IHVybDogXCIvV29tZGFhL0dldFdvbWRhYVByaW50QnlJZFwiLCBkYXRhOiB7IG9yZGVySWQ6IHRoaXMub3JkZXJJZCB9IH0pXHJcbiAgICAgICAgICAgICAgICAgICAgLnRoZW4ocmVzID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXM/LmRhdGE/LnRiQmlsbExpc3QpIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZCA9IHJlcy5kYXRhLnRiQmlsbExpc3Q7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYnF0eSA9IGQuYnF0eTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pY291bnQgPSAxO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNRdWFudGl0eSA9IGQuc1F1YW50aXR5IHx8IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW5pdGlhbFZhbHVlID0gZC5pbml0aWFsVmFsdWUgfHwgMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5rZ1F0eSA9IGQua2dRdHkgfHwgMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5iYXJjb2RlQW1vdW50ID0gZC5xcXR5IHx8IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmJxdHkgPT09IDApIHRoaXMuQ29tcGxldGVkKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSkuY2F0Y2goKCkgPT4geyB9KTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgQ29tcGxldGVkKCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy4kcG9zdCh7IHVybDogXCIvTWVzT3JkZXJTdGEvQ29tcGxldGVkXCIsIGRhdGE6IHsgb3JkZXJJZDogdGhpcy5vcmRlcklkLCBvcmRlck5vOiB0aGlzLm9yZGVyTm8gfSB9KTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgaW5pdCgpIHtcclxuICAgICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdiA9IHRoaXMuZ2V0QW5kcm9pZFZlcnNpb24oKTtcclxuICAgICAgICAgICAgICAgICAgICB2ID49IDEyID8gdGhpcy5pbml0Rm9yQW5kcm9pZDEyUGx1cygpIDogdGhpcy5pbml0Rm9yQW5kcm9pZExlZ2FjeSgpO1xyXG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgeyBjb25zb2xlLmVycm9yKGUpOyB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGdldEFuZHJvaWRWZXJzaW9uKCkge1xyXG4gICAgICAgICAgICAgICAgdHJ5IHsgdmFyIEJ1aWxkID0gcGx1cy5hbmRyb2lkLmltcG9ydENsYXNzKFwiYW5kcm9pZC5vcy5CdWlsZFwiKTsgcmV0dXJuIEJ1aWxkLlZFUlNJT04uU0RLX0lOVDsgfVxyXG4gICAgICAgICAgICAgICAgY2F0Y2ggeyByZXR1cm4gMzA7IH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgaW5pdEZvckFuZHJvaWQxMlBsdXMoKSB7XHJcbiAgICAgICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciBtYWluID0gcGx1cy5hbmRyb2lkLnJ1bnRpbWVNYWluQWN0aXZpdHkoKTtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgQmx1ZXRvb3RoTWFuYWdlciA9IHBsdXMuYW5kcm9pZC5pbXBvcnRDbGFzcyhcImFuZHJvaWQuYmx1ZXRvb3RoLkJsdWV0b290aE1hbmFnZXJcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIENvbnRleHQgPSBwbHVzLmFuZHJvaWQuaW1wb3J0Q2xhc3MoXCJhbmRyb2lkLmNvbnRlbnQuQ29udGV4dFwiKTtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgVVVJRCA9IHBsdXMuYW5kcm9pZC5pbXBvcnRDbGFzcyhcImphdmEudXRpbC5VVUlEXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXVpZCA9IFVVSUQuZnJvbVN0cmluZyhcIjAwMDAxMTAxLTAwMDAtMTAwMC04MDAwLTAwODA1RjlCMzRGQlwiKTtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgbWdyID0gbWFpbi5nZXRTeXN0ZW1TZXJ2aWNlKENvbnRleHQuQkxVRVRPT1RIX1NFUlZJQ0UpO1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciBhZHAgPSBtZ3IuZ2V0QWRhcHRlcigpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChhZHAgJiYgYWRwLmlzRGlzY292ZXJpbmcoKSkgYWRwLmNhbmNlbERpc2NvdmVyeSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucHJpbnRNYWMgPSB1bmkuZ2V0U3RvcmFnZVN5bmMoJ3ByaW50TWFjJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIG1hYyA9IHRoaXMucHJpbnRNYWMgfHwgXCJEQzoxRDozMDo5MTowNjo1MlwiO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChhZHApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kZXZpY2UgPSBhZHAuZ2V0UmVtb3RlRGV2aWNlKG1hYyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsdXMuYW5kcm9pZC5pbXBvcnRDbGFzcyh0aGlzLmRldmljZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgeyB0aGlzLmluaXRGb3JBbmRyb2lkTGVnYWN5KCk7IH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgaW5pdEZvckFuZHJvaWRMZWdhY3koKSB7XHJcbiAgICAgICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciBCbHVldG9vdGhBZGFwdGVyID0gcGx1cy5hbmRyb2lkLmltcG9ydENsYXNzKFwiYW5kcm9pZC5ibHVldG9vdGguQmx1ZXRvb3RoQWRhcHRlclwiKTtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgVVVJRCA9IHBsdXMuYW5kcm9pZC5pbXBvcnRDbGFzcyhcImphdmEudXRpbC5VVUlEXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXVpZCA9IFVVSUQuZnJvbVN0cmluZyhcIjAwMDAxMTAxLTAwMDAtMTAwMC04MDAwLTAwODA1RjlCMzRGQlwiKTtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgQkFkYXB0ZXIgPSBCbHVldG9vdGhBZGFwdGVyLmdldERlZmF1bHRBZGFwdGVyKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKEJBZGFwdGVyKSBCQWRhcHRlci5jYW5jZWxEaXNjb3ZlcnkoKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnByaW50TWFjID0gdW5pLmdldFN0b3JhZ2VTeW5jKCdwcmludE1hYycpO1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciBtYWMgPSB0aGlzLnByaW50TWFjIHx8IFwiREM6MUQ6MzA6OTE6MDY6NTJcIjtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoQkFkYXB0ZXIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kZXZpY2UgPSBCQWRhcHRlci5nZXRSZW1vdGVEZXZpY2UobWFjKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGx1cy5hbmRyb2lkLmltcG9ydENsYXNzKHRoaXMuZGV2aWNlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ibHVldG9vdGhTb2NrZXQgPSB0aGlzLmRldmljZS5jcmVhdGVJbnNlY3VyZVJmY29tbVNvY2tldFRvU2VydmljZVJlY29yZCh0aGlzLnV1aWQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwbHVzLmFuZHJvaWQuaW1wb3J0Q2xhc3ModGhpcy5ibHVldG9vdGhTb2NrZXQpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBkZWxldGVCYXJjb2RlKCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pc1Nob3cgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHRoaXMuaXNHZW5lcmF0aW5nQmFyY29kZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RJZCA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmJ1ZmZlckRhdGEgPSAnJzsgdGhpcy5kYXRhVG9QcmludCA9IFtdO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdGFmZk5vID0gbnVsbDsgdGhpcy51c2VyID0gJyc7IHRoaXMuYmFyY29kZUFtb3VudCA9ICcnOyB0aGlzLmljb3VudCA9IDE7IHRoaXMuc3RhZmYgPSBudWxsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBzY29wZWQ+XHJcbi8qICAgIC5zZWN0aW9uLXRpdGxlIHtcclxuICAgICAgICBmb250LXNpemU6IDIwcHg7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICAgICAgbWFyZ2luOiAxOHB4IDAgOHB4IDA7XHJcbiAgICAgICAgY29sb3I6ICNmZmY7XHJcbiAgICAgICAgYmFja2dyb3VuZDogIzAwN2FmZjtcclxuICAgICAgICBwYWRkaW5nOiA4cHggMThweDtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHggOHB4IDAgMDtcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICB9Ki9cclxuXHJcbiAgICAuc2VjdGlvbi10aXRsZSB7XHJcbiAgICAgICAgZm9udC1zaXplOiAyMHB4O1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7IC8qIOW3suWPlua2iOWKoOeylyAqL1xyXG4gICAgICAgIG1hcmdpbjogMThweCAwIDhweCAwO1xyXG4gICAgICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICMwMDdhZmY7XHJcbiAgICAgICAgcGFkZGluZzogOHB4IDE4cHg7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4IDhweCAwIDA7XHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgfVxyXG5cclxuICAgIC5oaXN0b3J5LXRpdGxlIHtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAjNTU1O1xyXG4gICAgfVxyXG5cclxuICAgIC5oaWdobGlnaHQtcm93IHtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZlOWIzICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICB9XHJcblxyXG4gICAgLnJlcG9ydC10YWJsZSAuc3VtbWFyeS1yb3cge1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICNmMGY4ZmY7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgIH1cclxuXHJcbiAgICAucmVwb3J0LXRhYmxlIC5uby1kYXRhIHtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgY29sb3I6ICM3Nzc7XHJcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5yZXBvcnQtaGVhZGVyIHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDhweDtcclxuICAgIH1cclxuXHJcbiAgICAuaGVhZGVyLWJ1dHRvbnMge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICBnYXA6IDEycHg7XHJcbiAgICB9XHJcblxyXG4gICAgLnJlZnJlc2gtYnRuLWhlYWRlciB7XHJcbiAgICAgICAgYmFja2dyb3VuZDogIzAwQTJFOTtcclxuICAgICAgICBjb2xvcjogI2ZmZjtcclxuICAgICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcclxuICAgICAgICBwYWRkaW5nOiA4cHggMjBweDtcclxuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzO1xyXG4gICAgfVxyXG5cclxuICAgICAgICAucmVmcmVzaC1idG4taGVhZGVyOmhvdmVyIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogIzAwODZjMDtcclxuICAgICAgICB9XHJcblxyXG4gICAgLnJlc2V0LWJ0bi1oZWFkZXIge1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICNmZjZiNmI7XHJcbiAgICAgICAgY29sb3I6ICNmZmY7XHJcbiAgICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XHJcbiAgICAgICAgcGFkZGluZzogOHB4IDE2cHg7XHJcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cztcclxuICAgIH1cclxuXHJcbiAgICAgICAgLnJlc2V0LWJ0bi1oZWFkZXI6aG92ZXIge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZTk0ZDRkO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAucGFnZSB7XHJcbiAgICAgICAgcGFkZGluZzogMS4ydmggMnZ3O1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgfVxyXG5cclxuICAgIC53aWRlLWxheW91dCB7XHJcbiAgICAgICAgbWF4LXdpZHRoOiBub25lO1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgfVxyXG5cclxuICAgIC5wYWdlLmhhcy1vdmVybGF5IC5zdGF0dXMtc2VjdGlvbiA+IDpub3QoLm92ZXJsYXkpIHtcclxuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICAgIH1cclxuXHJcbiAgICAucGFnZS5oYXMtb3ZlcmxheSAuc3RhdHVzLXNlY3Rpb24gPiAub3ZlcmxheSB7XHJcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87XHJcbiAgICB9XHJcblxyXG4gICAgLnJlcG9ydC10YWJsZS13cmFwcGVyIHtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XHJcbiAgICB9XHJcblxyXG4gICAgLnRhYmxlLXNjcm9sbCB7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgbWluLWhlaWdodDogNDBweDtcclxuICAgIH1cclxuXHJcbiAgICAucmVwb3J0LXRpdGxlIHtcclxuICAgICAgICBmb250LXNpemU6IDMycHg7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgfVxyXG5cclxuICAgIC8qIDIuIOWMuuWdl+agh+mimCAqL1xyXG4gICAgLnNlY3Rpb24tdGl0bGUsIC5oaXN0b3J5LXRpdGxlIHtcclxuICAgICAgICBmb250LXNpemU6IDI2cHg7XHJcbiAgICB9XHJcblxyXG4gICAgLyogMy4g6KGo5qC85a2X5L2TICovXHJcbiAgICAucmVwb3J0LXRhYmxlLCAucmVwb3J0LXRhYmxlIHRoLCAucmVwb3J0LXRhYmxlIHRkIHtcclxuICAgICAgICBmb250LXNpemU6IDIycHg7XHJcbiAgICB9XHJcblxyXG4gICAgLyogNC4g5b2T5YmN5oql5bel5Lq644CB5LiN6Imv5pWw6YeP562J6L6T5YWl5Yy6ICovXHJcbiAgICAuY3VycmVudC11c2VyLXNlY3Rpb24sXHJcbiAgICAuZGVmZWN0aXZlLXNlY3Rpb24sXHJcbiAgICAuc3VibWl0LXNlY3Rpb24ge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMzBweDtcclxuICAgIH1cclxuXHJcbiAgICAvKiA1LiDovpPlhaXmoYblrZfkvZMgKi9cclxuICAgIC5pbnAsIC5iYWQtaW5wdXQge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMjhweDtcclxuICAgIH1cclxuXHJcbiAgICAvKiA2LiDmjInpkq7lrZfkvZMgKi9cclxuICAgIC5kZXRhaWxzLWJ0bixcclxuICAgIC5zZWxlY3QtdXNlci1idG4sXHJcbiAgICAucmVmcmVzaC1idG4taGVhZGVyLFxyXG4gICAgLnJlc2V0LWJ0bi1oZWFkZXIge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMjJweDtcclxuICAgIH1cclxuXHJcbiAgICAucmVwb3J0LXRhYmxlIHtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBtaW4td2lkdGg6IDE4MDBweDtcclxuICAgICAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XHJcbiAgICB9XHJcblxyXG4gICAgICAgIC5yZXBvcnQtdGFibGUgdGgsIC5yZXBvcnQtdGFibGUgdGQge1xyXG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjNTU1O1xyXG4gICAgICAgICAgICBwYWRkaW5nOiA2cHggOHB4O1xyXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7IC8q5YWB6K645o2i6KGMKi9cclxuICAgICAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsOyAvKumVv+WNleivjSAv5pWw5a2X5Lmf5o2i6KGMKi9cclxuICAgICAgICB9XHJcblxyXG4gICAgLnN0YXR1cy1zZWN0aW9uIHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgICAgZ2FwOiAxMHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5zdGF0dXMtcm93IHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIGdhcDogMTBweDtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAjZjlmOWY5O1xyXG4gICAgICAgIHBhZGRpbmc6IDEwcHggMTRweDtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XHJcbiAgICAgICAgYm94LXNoYWRvdzogMCAxcHggNHB4IHJnYmEoMCwwLDAsLjA2KTtcclxuICAgIH1cclxuXHJcbiAgICAuc3RhdHVzLWJveCB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgfVxyXG5cclxuICAgIC5yZXN1bHQtYm94IHtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAjZjBmOGZmO1xyXG4gICAgICAgIHBhZGRpbmc6IDRweCAxMnB4O1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcclxuICAgICAgICBib3JkZXItbGVmdDogNXB4IHNvbGlkICMwMDdhZmY7XHJcbiAgICB9XHJcblxyXG4gICAgaW5wdXQuaGlnaGxpZ2h0IHtcclxuICAgICAgICB3aWR0aDogOXZ3O1xyXG4gICAgICAgIG1pbi13aWR0aDogMTEwcHg7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgZm9udC1zaXplOiAxOHB4O1xyXG4gICAgICAgIHBhZGRpbmc6IDZweCAwO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcclxuICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAzcHggcmdiYSgwLDAsMCwuMTIpO1xyXG4gICAgfVxyXG5cclxuICAgIC5vcGVyYXRvci1ib3gge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICBmb250LXNpemU6IDI4cHg7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICAgICAgY29sb3I6ICMwMDdhZmY7XHJcbiAgICAgICAgbWFyZ2luOiAwIDZweDtcclxuICAgIH1cclxuXHJcbiAgICAuYnRuLWdyb3VwIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgZ2FwOiAxMnB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5yZWZyZXNoLWJ0bi1pbmxpbmUsIC5yZXNldC1idG4taW5saW5lIHtcclxuICAgICAgICB0cmFuc2l0aW9uOiAuMTVzO1xyXG4gICAgfVxyXG5cclxuICAgIC5yZWZyZXNoLWJ0bi1pbmxpbmUge1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICMwMEEyRTk7XHJcbiAgICAgICAgY29sb3I6ICNmZmY7XHJcbiAgICAgICAgZm9udC1zaXplOiAxOHB4O1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XHJcbiAgICAgICAgcGFkZGluZzogOHB4IDMwcHg7XHJcbiAgICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgfVxyXG5cclxuICAgICAgICAucmVmcmVzaC1idG4taW5saW5lOmhvdmVyIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogIzAwODZjMDtcclxuICAgICAgICB9XHJcblxyXG4gICAgLnJlc2V0LWJ0bi1pbmxpbmUge1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICNmZjZiNmI7XHJcbiAgICAgICAgY29sb3I6ICNmZmY7XHJcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XHJcbiAgICAgICAgcGFkZGluZzogOHB4IDE4cHg7XHJcbiAgICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgfVxyXG5cclxuICAgICAgICAucmVzZXQtYnRuLWlubGluZTpob3ZlciB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNlOTRkNGQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIC5mbGV4LXJvdyB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICAgICAgZ2FwOiAyMHB4O1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xyXG4gICAgfVxyXG5cclxuICAgIC5mbGV4LWdyb3cge1xyXG4gICAgICAgIGZsZXg6IDEgMSA1NDBweDtcclxuICAgIH1cclxuXHJcbiAgICAuZ2FwLWxnIHtcclxuICAgICAgICBnYXA6IDMwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgLyog5LiN6Imv5pWw6YeP5Yy65Z+fICovXHJcbiAgICAuZGVmZWN0aXZlLXNlY3Rpb24ge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICBnYXA6IDE0cHg7XHJcbiAgICAgICAgZm9udC1zaXplOiAzNnB4OyAvKiDku44zMnB45pS55Li6MzZweCAqL1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOyAvKiDlj6/pgInvvJrliqDnspflrZfkvZMgKi9cclxuICAgIH1cclxuXHJcbiAgICAuc3VibWl0LXNlY3Rpb24ge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIH1cclxuXHJcbiAgICAuaW5wIHtcclxuICAgICAgICBwYWRkaW5nOiA4cHg7XHJcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xyXG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM4MDgwODA7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xyXG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICB9XHJcblxyXG4gICAgLyog5LiN6Imv5pWw6YeP6L6T5YWl5qGGICovXHJcbiAgICAuYmFkLWlucHV0IHtcclxuICAgICAgICB3aWR0aDogMzIwcHg7XHJcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgICAgIGhlaWdodDogNjZweDtcclxuICAgICAgICBib3JkZXI6IDNweCBzb2xpZCAjODA4MDgwO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogNDJweDtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICB9XHJcblxyXG4gICAgLyog56Gu6K6k5o+Q5Lqk5oyJ6ZKuKi9cclxuICAgIC8qLmRldGFpbHMtYnRuIHtcclxuICAgICAgICBwYWRkaW5nOiAxMnB4IDM0cHg7XHJcbiAgICAgICAgYmFja2dyb3VuZDogIzAwYTJlOTtcclxuICAgICAgICBjb2xvcjogI2ZmZjtcclxuICAgICAgICBmb250LXNpemU6IDMycHg7XHJcbiAgICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xyXG4gICAgfSovXHJcblxyXG4gICAgLmRldGFpbHMtYnRuIHtcclxuICAgICAgICBwYWRkaW5nOiAxMnB4IDM0cHg7XHJcbiAgICAgICAgYmFja2dyb3VuZDogIzAwYTJlOTtcclxuICAgICAgICBjb2xvcjogI2ZmZjtcclxuICAgICAgICBmb250LXNpemU6IDMycHg7XHJcbiAgICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xyXG4gICAgICAgIGhlaWdodDogNjZweDsgLyog5Zu65a6a6auY5bqm77yM5ZKM56Gu6K6k5o+Q5Lqk5LiA5qC3ICovXHJcbiAgICAgICAgbWluLXdpZHRoOiAxODBweDsgLyog5Y+v6YCJ77yM5L+d6K+B5a695bqm5LiA6Ie0ICovXHJcbiAgICAgICAgZGlzcGxheTogZmxleDsgLyog6K6p5YaF5a655Z6C55u05bGF5LitICovXHJcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE7IC8qIOe0p+WHkeihjOmrmCAqL1xyXG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICB9XHJcblxyXG4gICAgICAgIC5kZXRhaWxzLWJ0biBzcGFuIHtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAyNHB4O1xyXG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwcHg7IC8qIOWOu+aOieWkmuS9memXtOi3nSAqL1xyXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS4xO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmRldGFpbHMtYnRuOmhvdmVyIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogIzAwOGFjMjtcclxuICAgICAgICB9XHJcblxyXG4gICAgLmN1cnJlbnQtdXNlci1zZWN0aW9uIHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgZm9udC1zaXplOiAzMnB4O1xyXG4gICAgICAgIGJvcmRlcjogMS41cHggc29saWQgI2YwMDtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4gICAgICAgIHBhZGRpbmc6IDE0cHggMjJweDtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xyXG4gICAgICAgIGdhcDogMTRweDtcclxuICAgICAgICBmbGV4OiAwIDAgYXV0bztcclxuICAgIH1cclxuXHJcbiAgICAuY3VycmVudC11c2VyLW5hbWUge1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMzJweDtcclxuICAgIH1cclxuXHJcbiAgICAvKiDpgInkurrmjInpkq4gLSDok53oibLkuLvpopggKi9cclxuICAgIC5zZWxlY3QtdXNlci1idG4ge1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICMwMGEyZTk7IC8qIOS4juaPkOS6pOaMiemSruebuOWQjOeahOiTneiJsiAqL1xyXG4gICAgICAgIGNvbG9yOiAjZmZmOyAvKiDnmb3oibLmloflrZcgKi9cclxuICAgICAgICBib3JkZXI6IG5vbmU7IC8qIOenu+mZpOi+ueahhiAqL1xyXG4gICAgICAgIHBhZGRpbmc6IDEycHggMjJweDsgLyog6LCD5pW05YaF6L656Led5LiO5o+Q5Lqk5oyJ6ZKu5Y2P6LCDICovXHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDsgLyog5LiO5o+Q5Lqk5oyJ6ZKu55u45ZCM55qE5ZyG6KeSICovXHJcbiAgICAgICAgZm9udC1zaXplOiAzMnB4OyAvKiDkv53mjIHlrZfkvZPlpKflsI8gKi9cclxuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1czsgLyog5re75Yqg6L+H5rih5pWI5p6cICovXHJcbiAgICB9XHJcblxyXG4gICAgICAgIC5zZWxlY3QtdXNlci1idG46aG92ZXIge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjMDA4YWMyO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAub3ZlcmxheSB7XHJcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgICAgIHRvcDogMDtcclxuICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLC40NSk7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIHotaW5kZXg6IDEwMDA7XHJcbiAgICB9XHJcblxyXG4gICAgLnBvcHVwIHtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xyXG4gICAgICAgIHBhZGRpbmc6IDJ2aDtcclxuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xyXG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAxNHB4IHJnYmEoMCwwLDAsLjEyKTtcclxuICAgICAgICB3aWR0aDogNzJ2dztcclxuICAgICAgICBtYXgtd2lkdGg6IDE0MDBweDtcclxuICAgICAgICBoZWlnaHQ6IDcwdmg7XHJcbiAgICAgICAgZm9udC1zaXplOiAxLjR2dztcclxuICAgICAgICBtYXgtaGVpZ2h0OiA4MHZoO1xyXG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG87XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDtcclxuICAgICAgICB6LWluZGV4OiAxMDAxO1xyXG4gICAgfVxyXG5cclxuICAgIC8qIOmAieS6uuW8ueeql+abtOWuve+8jOWQjeWtl+abtOWkp++8jOWFs+mXreaMiemSruabtOWwjyAqL1xyXG4gICAgLnVzZXItc2VsZWN0LXBvcHVwIHtcclxuICAgICAgICB3aWR0aDogMTYwMHB4O1xyXG4gICAgICAgIG1heC13aWR0aDogOTl2dztcclxuICAgICAgICBtaW4td2lkdGg6IDEwMDBweDtcclxuICAgICAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICAgICAgbWluLWhlaWdodDogNTIwcHg7XHJcbiAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgICAgZm9udC1zaXplOiAzMnB4O1xyXG4gICAgfVxyXG5cclxuICAgIC51c2VyLXNlYXJjaC1iYXIge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICBnYXA6IDE4cHg7XHJcbiAgICAgICAgcGFkZGluZzogMjRweCA2NHB4IDAgNjRweDtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xyXG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgIH1cclxuXHJcbiAgICAudXNlci1zZWFyY2gtaW5wdXQge1xyXG4gICAgICAgIGZsZXg6IDEgMSAyNjBweDtcclxuICAgICAgICBwYWRkaW5nOiAxNnB4IDIwcHg7XHJcbiAgICAgICAgZm9udC1zaXplOiAyOHB4O1xyXG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNiYmI7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xyXG4gICAgICAgIG91dGxpbmU6IG5vbmU7XHJcbiAgICAgICAgaGVpZ2h0OiA1NHB4O1xyXG4gICAgfVxyXG5cclxuICAgICAgICAudXNlci1zZWFyY2gtaW5wdXQ6Zm9jdXMge1xyXG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICMwMDdhZmY7XHJcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCByZ2JhKDAsMTIyLDI1NSwuMTUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAudXNlci1zZWFyY2gtY2xlYXIge1xyXG4gICAgICAgIHBhZGRpbmc6IDEycHggMjhweDtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAjZmY5ZjQzO1xyXG4gICAgICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XHJcbiAgICAgICAgZm9udC1zaXplOiAyNHB4O1xyXG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIH1cclxuXHJcbiAgICAgICAgLnVzZXItc2VhcmNoLWNsZWFyOmhvdmVyIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogI2ZmODkyMDtcclxuICAgICAgICB9XHJcblxyXG4gICAgLnVzZXItc2VhcmNoLWluZm8ge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMjJweDtcclxuICAgICAgICBjb2xvcjogIzU1NTtcclxuICAgIH1cclxuXHJcbiAgICAudXNlci1saXN0LXNjcm9sbCB7XHJcbiAgICAgICAgZmxleDogMSAxIGF1dG87XHJcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcclxuICAgICAgICBwYWRkaW5nOiAzMnB4IDY0cHggMCA2NHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC51c2VyLWxpc3QtZ3JpZCB7XHJcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcclxuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsbWlubWF4KDIwMHB4LDFmcikpO1xyXG4gICAgICAgIGdhcDogMjJweCAyMnB4O1xyXG4gICAgfVxyXG5cclxuICAgIC51c2VyLWxpc3QtYnRuIHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICBnYXA6IDJweDsgLyog5Y6fOHB477yM5YeP5bCP6KGM6Ze06LedICovXHJcbiAgICAgICAgcGFkZGluZzogMTBweCAxMHB4OyAvKiDpgILlvZPlh4/lsI/kuIrkuIvlhoXovrnot50gKi9cclxuICAgICAgICBoZWlnaHQ6IDEwMHB4OyAvKiDlj6/pgILlvZPlh4/lsI/pq5jluqYgKi9cclxuICAgICAgICBmb250LXNpemU6IDMwcHg7XHJcbiAgICAgICAgYmFja2dyb3VuZDogIzAwYTJlOTtcclxuICAgICAgICBjb2xvcjogI2ZmZjtcclxuICAgICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xyXG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XHJcbiAgICB9XHJcblxyXG4gICAgICAgIC51c2VyLWxpc3QtYnRuIC51c2VyLWNvZGUge1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDM2cHg7XHJcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE7IC8qIOe0p+WHkeS4gOeCuSAqL1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnVzZXItbGlzdC1idG4gLnVzZXItbmFtZSB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMzJweDtcclxuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTsgLyog57Sn5YeR5LiA54K5ICovXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAudXNlci1saXN0LWJ0bi5zZWxlY3RlZCB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICMwMDcyYzk7XHJcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCByZ2JhKDI1NSwyNTUsMjU1LC42KSBpbnNldDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC51c2VyLWxpc3QtYnRuOmhvdmVyIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogIzAwOGVkMDtcclxuICAgICAgICB9XHJcblxyXG4gICAgLm5vLXVzZXItcmVzdWx0IHtcclxuICAgICAgICBwYWRkaW5nOiA0MHB4IDA7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMjhweDtcclxuICAgICAgICBjb2xvcjogIzY2NjtcclxuICAgIH1cclxuXHJcbiAgICAudXNlci1wb3B1cC1mb290ZXIge1xyXG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xyXG4gICAgICAgIHBhZGRpbmc6IDI0cHggNjRweCAzMnB4IDY0cHg7XHJcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICB9XHJcblxyXG4gICAgLmNsZWFuLWJ0biB7XHJcbiAgICAgICAgd2lkdGg6IDI0JTtcclxuICAgICAgICBwYWRkaW5nOiAxMHB4IDA7XHJcbiAgICAgICAgY29sb3I6ICNmZmY7XHJcbiAgICAgICAgZm9udC1zaXplOiAyMHB4O1xyXG4gICAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNnZ3O1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICMwMDdhZmY7XHJcbiAgICB9XHJcblxyXG4gICAgICAgIC5jbGVhbi1idG4ud2lkZS1idG4ge1xyXG4gICAgICAgICAgICB3aWR0aDogMzAlO1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDIycHg7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDEycHggMDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5jbGVhbi1idG46aG92ZXIge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjMDA2MmM5O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAucmVhc29uLXNlY3Rpb24ge1xyXG4gICAgICAgIG1hcmdpbjogMTRweCAwIDE4cHg7XHJcbiAgICB9XHJcblxyXG4gICAgLnJlYXNvbi1idXR0b25zIHtcclxuICAgICAgICBkaXNwbGF5OiBncmlkO1xyXG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDUsMWZyKTtcclxuICAgICAgICBnYXA6IDEycHg7XHJcbiAgICB9XHJcblxyXG4gICAgLnJlYXNvbi1idG4ge1xyXG4gICAgICAgIHBhZGRpbmc6IDEwcHggNnB4O1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICM4MDgwODA7XHJcbiAgICAgICAgY29sb3I6ICNmZmY7XHJcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XHJcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgfVxyXG5cclxuICAgICAgICAucmVhc29uLWJ0bi5zZWxlY3RlZCB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNGRkQ3MDA7XHJcbiAgICAgICAgICAgIGNvbG9yOiAjMDAwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAuYm90dG9tLXNlY3Rpb24ge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDE2cHg7XHJcbiAgICAgICAgZ2FwOiAxNnB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5zYXZlLWJ0biwgLmNhbmNlbC1idG4ge1xyXG4gICAgICAgIGZsZXg6IDE7XHJcbiAgICAgICAgcGFkZGluZzogMTZweCAwO1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICMwMEEyRTk7XHJcbiAgICAgICAgY29sb3I6ICNmZmY7XHJcbiAgICAgICAgZm9udC1zaXplOiAyMHB4O1xyXG4gICAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4gICAgfVxyXG5cclxuICAgICAgICAuc2F2ZS1idG46aG92ZXIsIC5jYW5jZWwtYnRuOmhvdmVyIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogIzAwODZjMDtcclxuICAgICAgICB9XHJcblxyXG4gICAgLnRhYmxlMSB7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgYm9yZGVyLXNwYWNpbmc6IDNweDtcclxuICAgIH1cclxuXHJcbiAgICAuaGlzdG9yeS10YWJsZS1zY3JvbGwge1xyXG4gICAgICAgIG1heC1oZWlnaHQ6IDQyMHB4OyAvKiDlj6/moLnmja7lrp7pmYXpobXpnaLosIPmlbTpq5jluqYgKi9cclxuICAgICAgICBvdmVyZmxvdy15OiBzY3JvbGw7IC8qIOWni+e7iOaYvuekuue6teWQkea7keadoSAqL1xyXG4gICAgICAgIG92ZXJmbG93LXg6IGF1dG87XHJcbiAgICAgICAgYm9yZGVyOiAycHggc29saWQgI2QwMDtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xyXG4gICAgfVxyXG5cclxuICAgICAgICAvKiDooajlpLTlm7rlrpogKi9cclxuICAgICAgICAuaGlzdG9yeS10YWJsZS1zY3JvbGwgdGhlYWQgdHIgdGgge1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xyXG4gICAgICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgICAgIHotaW5kZXg6IDI7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XHJcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDZweCByZ2JhKDAsMCwwLDAuMDQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICBAbWVkaWEgKG1heC13aWR0aDoxNDAwcHgpIHtcclxuICAgICAgICBpbnB1dC5oaWdobGlnaHQge1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDE2cHg7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAudXNlci1saXN0LWJ0biB7XHJcbiAgICAgICAgICAgIGhlaWdodDogNzBweDtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxOHB4O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC51c2VyLWxpc3QtYnRuIC51c2VyLWNvZGUge1xyXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxOHB4O1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAudXNlci1saXN0LWJ0biAudXNlci1uYW1lIHtcclxuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAucmVhc29uLWJ0biB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5yZWZyZXNoLWJ0bi1oZWFkZXIge1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDZweCAxNnB4O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnJlc2V0LWJ0bi1oZWFkZXIge1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDZweCAxMnB4O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuPC9zdHlsZT4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///72\n");
/***/ }),
/* 73 */
--
Gitblit v1.9.3