From 552a0e2b2cce92fc5e14acb5123bb4c5a0cc7e45 Mon Sep 17 00:00:00 2001 From: 123456 Date: Wed, 6 Nov 2024 11:11:22 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/pipei/shipin/detail.nvue | 2 +- unpackage/dist/dev/app-plus/pages/pipei/shipin/detail.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pages/pipei/shipin/detail.nvue b/pages/pipei/shipin/detail.nvue index 0afbf9e..f47a51f 100644 --- a/pages/pipei/shipin/detail.nvue +++ b/pages/pipei/shipin/detail.nvue @@ -306,7 +306,7 @@ if(type == 1){ uni.$emit("showToast",this.isJieshou) } - // this.socialConsumption(); + this.socialConsumption(); clearInterval(timer) if(this.toIsBack == false){ return ; diff --git a/unpackage/dist/dev/app-plus/pages/pipei/shipin/detail.js b/unpackage/dist/dev/app-plus/pages/pipei/shipin/detail.js index b7b9bac..67cd71a 100644 --- a/unpackage/dist/dev/app-plus/pages/pipei/shipin/detail.js +++ b/unpackage/dist/dev/app-plus/pages/pipei/shipin/detail.js @@ -1707,7 +1707,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _rua /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 11);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ 12));\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ 15));\nvar _index = _interopRequireDefault(__webpack_require__(/*! @/api/index.js */ 17));\nvar _permission = _interopRequireDefault(__webpack_require__(/*! @/js_sdk/wa-permission/permission.js */ 32));\nvar _ZegoExpressEngine = _interopRequireDefault(__webpack_require__(/*! @/uni_modules/zego-ZegoExpressUniApp-JS/components/zego-ZegoExpressUniApp-JS/lib/ZegoExpressEngine */ 33));\nvar _ZegoRemoteView = _interopRequireDefault(__webpack_require__(/*! @/uni_modules/zego-ZegoExpressUniApp-JS/components/zego-ZegoExpressUniApp-JS/zego-view/ZegoRemoteView */ 47));\nvar _ZegoLocalView = _interopRequireDefault(__webpack_require__(/*! @/uni_modules/zego-ZegoExpressUniApp-JS/components/zego-ZegoExpressUniApp-JS/zego-view/ZegoLocalView */ 52));\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\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 timer = null;\nvar roomConfig = {};\nroomConfig.isUserStatusNotify = true;\nvar profile = {\n appID: 267111980,\n appSign: 'afcaa90a7750ee556e450ca62287c5f9a362e9ed711789717cda0e18f088858e',\n scenario: 0\n};\nvar _default = {\n components: {\n ZegoLocalView: _ZegoLocalView.default,\n ZegoRemoteView: _ZegoRemoteView.default\n },\n data: function data() {\n return {\n isOpenSocket: true,\n isYuyin: true,\n isGuaduan: true,\n isYangshengqi: true,\n isShexiang: true,\n isJieshou: true,\n isToggle: true,\n winWidth: 0,\n winHeight: 0,\n userInfo: {},\n playStreamId: \"\",\n title: \"\",\n count: 0,\n balanceInfo: {},\n userOtherInfo: {},\n background: {\n // 导航栏背景图\n background: 'url(https://api.lyiyuan.cn/profile/upload/static/yuyin-bg.png) center top no-repeat',\n // 还可以设置背景图size属性\n backgroundSize: '100 auto'\n },\n engine: null,\n roomId: \"\",\n type: 2,\n statusBarHeight: 0,\n sellerStreamId: \"\",\n viewModeIndex: 0,\n isCamera: true,\n isStart: true,\n toIsBack: true\n };\n },\n onLoad: function onLoad(o) {\n __f__(\"log\", o, \" at pages/pipei/shipin/detail.nvue:202\");\n this.id = o.id;\n this.type = o.type;\n this.title = this.type == 1 || this.type == 3 ? \"语音通话\" : \"视频通话\";\n this.isStart = this.type == 3 || this.type == 4 ? o.fid ? false : true : true;\n this.isShexiang = this.type == 2 || this.type == 4 ? true : false;\n this.isJieshou = o.type <= 2 ? true : false;\n this.statusBarHeight = uni.getSystemInfoSync().statusBarHeight;\n this.winWidth = uni.getSystemInfoSync().windowWidth;\n this.winHeight = uni.getSystemInfoSync().windowHeight;\n },\n onReady: function onReady() {\n var _this = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {\n var that, res, res1;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n that = _this;\n uni.$on(\"watchEvent\", function (obj) {\n __f__(\"log\", obj, \" at pages/pipei/shipin/detail.nvue:216\");\n if (obj.topic == 'message') {\n if (obj.type == 12) {\n if (uni.getStorageSync(\"userInfo\").id == obj.sellerId) {\n that.isGuaduan = false;\n that.toGuaduan(1);\n }\n }\n }\n });\n uni.$on(\"toJieshouYinship\", function (obj) {\n __f__(\"log\", \"toJieshouYinship\", obj, \" at pages/pipei/shipin/detail.nvue:228\");\n if (obj.topic == 'message') {\n if (obj.type == 20) {\n if (uni.getStorageSync(\"userInfo\").id == obj.sellerId) {\n that.toJieshou();\n _this.isOpenSocket = false;\n } else {\n _this.isOpenSocket = false;\n }\n }\n }\n });\n if (!(uni.getSystemInfoSync().platform === \"android\")) {\n _context.next = 13;\n break;\n }\n _context.next = 6;\n return _permission.default.requestAndroidPermission(\"android.permission.RECORD_AUDIO\");\n case 6:\n res = _context.sent;\n _context.next = 9;\n return _permission.default.requestAndroidPermission(\"android.permission.CAMERA\");\n case 9:\n res1 = _context.sent;\n if (res == 1 && res1 == 1) {\n if (_this.type <= 2) {\n _this.toPermission();\n } else {\n _this.getUserInfo(1);\n }\n }\n _this.getOtherUserInfo();\n return _context.abrupt(\"return\");\n case 13:\n if (_this.type <= 2) {\n _this.toPermission();\n } else {\n _this.getUserInfo(1);\n }\n _this.getOtherUserInfo();\n case 15:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }))();\n },\n methods: {\n qiehuan: function qiehuan() {\n this.isToggle = !this.isToggle;\n __f__(\"log\", this.isToggle, \" at pages/pipei/shipin/detail.nvue:270\");\n },\n toJieshou1: function toJieshou1() {\n uni.$emit(\"jieshouYinship\", {\n \"userId\": uni.getStorageSync(\"userInfo\").id,\n sellerId: this.id,\n type: 20,\n \"topic\": \"message\"\n });\n if (this.isStart == false) {\n this.toJieshou();\n }\n },\n onBack: function onBack() {\n var that = this;\n uni.showModal({\n title: \"温馨提示\",\n content: \"是否要退出房间?\",\n confirmColor: \"#000000\",\n success: function success(res) {\n if (res.confirm) {\n that.isGuaduan = false;\n that.toGuaduan();\n }\n }\n });\n },\n toGuaduan: function toGuaduan(type) {\n var _this$engine, _this$engine2, _this$engine3, _this$engine4;\n if (type != 1) {\n uni.$emit(\"duanYinship\", {\n \"userId\": uni.getStorageSync(\"userInfo\").id,\n sellerId: this.id,\n type: 12,\n \"topic\": \"message\"\n });\n }\n if (type == 1) {\n uni.$emit(\"showToast\", this.isJieshou);\n }\n // this.socialConsumption();\n clearInterval(timer);\n if (this.toIsBack == false) {\n return;\n }\n this.toIsBack = false;\n this.isGuaduan = false;\n /** 停止推流 */\n (_this$engine = this.engine) === null || _this$engine === void 0 ? void 0 : _this$engine.stopPublishingStream();\n /** 停止本地预览 */\n (_this$engine2 = this.engine) === null || _this$engine2 === void 0 ? void 0 : _this$engine2.stopPreview();\n /** 停止拉流 */\n (_this$engine3 = this.engine) === null || _this$engine3 === void 0 ? void 0 : _this$engine3.stopPlayingStream(this.sellerStreamId);\n /** 退出房间 */\n (_this$engine4 = this.engine) === null || _this$engine4 === void 0 ? void 0 : _this$engine4.logoutRoom(this.roomId);\n /** 销毁引擎 */\n _ZegoExpressEngine.default.destroyEngine();\n uni.$off(\"watchEvent\");\n uni.$off(\"toJieshouYinship\");\n uni.navigateBack({\n delta: 1\n });\n },\n toJieshou: function toJieshou() {\n this.toPermission();\n this.$forceUpdate();\n },\n toggleYuyin: function toggleYuyin() {\n this.isYuyin = !this.isYuyin;\n this.engine.muteMicrophone(!this.isYuyin);\n },\n toggleShexiang: function toggleShexiang() {\n this.isShexiang = !this.isShexiang;\n this.engine.enableCamera(this.isShexiang);\n },\n toggleHuamian: function toggleHuamian() {\n this.isCamera = !this.isCamera;\n this.engine.useFrontCamera(this.isCamera);\n },\n toggleYangsheng: function toggleYangsheng() {\n this.isYangshengqi = !this.isYangshengqi;\n this.engine.setAudioRouteToSpeaker(this.isCamera);\n },\n toPermission: function toPermission() {\n var _this2 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {\n return _regenerator.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _this2.getUserInfo();\n case 1:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }))();\n },\n //查询个人信息\n getUserInfo: function getUserInfo(type) {\n var _this3 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {\n var _yield$api$findUserIn, code, data, msg;\n return _regenerator.default.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n _context3.next = 2;\n return _index.default.findUserInfo({\n userId: uni.getStorageSync(\"userInfo\").id\n });\n case 2:\n _yield$api$findUserIn = _context3.sent;\n code = _yield$api$findUserIn.code;\n data = _yield$api$findUserIn.data;\n msg = _yield$api$findUserIn.msg;\n if (code == 200) {\n _this3.userInfo = data;\n if (type != 1) {\n _this3.userBalance();\n _this3.loginRoom();\n }\n } else {\n uni.showToast({\n title: msg,\n position: \"bottom\",\n icon: \"none\"\n });\n }\n case 7:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3);\n }))();\n },\n //查询taren个人信息\n getOtherUserInfo: function getOtherUserInfo(type) {\n var _this4 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {\n var _yield$api$findOtherU, code, data, msg;\n return _regenerator.default.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n _context4.next = 2;\n return _index.default.findOtherUserInfo({\n userId: uni.getStorageSync(\"userInfo\").id,\n sellerId: _this4.id\n });\n case 2:\n _yield$api$findOtherU = _context4.sent;\n code = _yield$api$findOtherU.code;\n data = _yield$api$findOtherU.data;\n msg = _yield$api$findOtherU.msg;\n if (code == 200) {\n __f__(\"log\", \"getOtherUserInfo\", data, \" at pages/pipei/shipin/detail.nvue:377\");\n _this4.userOtherInfo = data;\n } else {\n uni.showToast({\n title: msg,\n position: \"bottom\",\n icon: \"none\"\n });\n }\n case 7:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4);\n }))();\n },\n loginRoom: function loginRoom() {\n var _this5 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5() {\n var that, res, beautyParam;\n return _regenerator.default.wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n that = _this5;\n _context5.next = 3;\n return _index.default.findZegoToken({\n userId: uni.getStorageSync(\"userInfo\").id,\n sellerId: _this5.id\n });\n case 3:\n res = _context5.sent;\n if (!(res.code == 200)) {\n _context5.next = 38;\n break;\n }\n // 获取token传入\n roomConfig.token = res.data.token;\n _this5.playStreamId = res.data.userStreamId;\n _this5.sellerStreamId = res.data.sellerStreamId;\n _this5.roomId = res.data.roomId;\n __f__(\"log\", \"loginRoom11\", res.data, \" at pages/pipei/shipin/detail.nvue:399\");\n _context5.next = 12;\n return _ZegoExpressEngine.default.createEngineWithProfile(profile);\n case 12:\n _this5.engine = _context5.sent;\n _this5.engine.enableCamera(_this5.isShexiang);\n // 创建美颜环境\n _context5.next = 16;\n return _this5.engine.startEffectsEnv();\n case 16:\n _this5.engine.enableEffectsBeauty(true);\n // 创建美颜参数对象\n beautyParam = {}; // 美白、红润、磨皮、锐化\n beautyParam.whitenIntensity = _this5.userInfo.reserved5;\n beautyParam.rosyIntensity = _this5.userInfo.reserved6;\n beautyParam.smoothIntensity = _this5.userInfo.reserved7;\n beautyParam.sharpenIntensity = _this5.userInfo.reserved8;\n // 设置美颜参数 \n _this5.engine.setEffectsBeautyParam(beautyParam);\n _this5.engine.useFrontCamera(_this5.isCamera);\n // 以下为常用的房间相关回调\n _this5.engine.on('roomStateUpdate', function (roomID, state, errorCode, extendedData) {\n __f__(\"log\", \"roomStateUpdate\", roomID, \" at pages/pipei/shipin/detail.nvue:417\");\n // 房间状态更新回调,登录房间后,当房间连接状态发生变更(如出现房间断开,登录认证失败等情况),SDK会通过该回调通知\n });\n ;\n _this5.engine.on('roomUserUpdate', function (roomID, updateType, userList) {\n // 用户状态更新,登录房间后,当房间内有用户新增或删除时,SDK会通过该回调通知\n __f__(\"log\", \"roomUserUpdate\", roomID, updateType, userList, \" at pages/pipei/shipin/detail.nvue:423\");\n });\n _this5.engine.on('playerStateUpdate', function (roomID, updateType, streamList) {\n __f__(\"log\", \"playerStateUpdate\", roomID, \" at pages/pipei/shipin/detail.nvue:427\");\n // 调用拉流接口成功后,当拉流器状态发生变更,如出现网络中断导致推流异常等情况,SDK在重试拉流的同时,会通过该回调通知\n });\n\n _this5.engine.on('roomStreamUpdate', function (roomID, updateType, streamList) {\n __f__(\"log\", \"roomStreamUpdate\", updateType, streamList, \" at pages/pipei/shipin/detail.nvue:431\");\n // 流状态更新,登录房间后,当房间内有用户新推送或删除音视频流时,SDK会通过该回调通知\n // this.sellerStreamId = streamList[0].streamID;\n });\n // 调用推流接口成功后,当推流器状态发生变更,如出现网络中断导致推流异常等情况,SDK在重试推流的同时,会通过该回调通知\n that.engine.on('publisherStateUpdate', function (streamID, state, errorCode, extendedData) {\n __f__(\"log\", \"publisherStateUpdate\", streamID, \" at pages/pipei/shipin/detail.nvue:437\");\n });\n // 登录房间\n // 开始登录房间\n _this5.engine.loginRoom(res.data.roomId, {\n 'userID': uni.getStorageSync(\"userInfo\").id,\n 'userName': uni.getStorageSync(\"userInfo\").nickname\n }, roomConfig);\n // this.viewModeIndex = ZegoViewMode.AspectFit;\n _this5.engine.startPreview();\n _this5.engine.startPublishingStream(_this5.playStreamId);\n _this5.isJieshou = true;\n clearInterval(timer);\n that.title = that.formatFun(that.count);\n timer = setInterval(function () {\n if (uni.getStorageSync(\"userInfo\").sex == 1) {\n if (that.type == 1) {\n if (that.balanceInfo.voiceCoins * 60 < that.count) {\n clearInterval(timer);\n that.toGuaduan();\n that.title = that.formatFun(that.count);\n return;\n }\n } else if (that.type == 2) {\n if (that.balanceInfo.videoCoins * 60 < that.count) {\n clearInterval(timer);\n that.toGuaduan();\n that.title = that.formatFun(that.count);\n return;\n }\n }\n }\n that.count++;\n that.title = that.formatFun(that.count);\n }, 1000);\n setTimeout(function () {\n _this5.toTuiliu();\n }, 100);\n case 38:\n case \"end\":\n return _context5.stop();\n }\n }\n }, _callee5);\n }))();\n },\n //检查次数\n userBalance: function userBalance() {\n var _this6 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6() {\n var _yield$_this6$$api$us, code, data;\n return _regenerator.default.wrap(function _callee6$(_context6) {\n while (1) {\n switch (_context6.prev = _context6.next) {\n case 0:\n _context6.next = 2;\n return _this6.$api.userBalance({\n userId: uni.getStorageSync(\"userInfo\").id\n });\n case 2:\n _yield$_this6$$api$us = _context6.sent;\n code = _yield$_this6$$api$us.code;\n data = _yield$_this6$$api$us.data;\n if (code == 200) {\n _this6.balanceInfo = data;\n }\n case 6:\n case \"end\":\n return _context6.stop();\n }\n }\n }, _callee6);\n }))();\n },\n //结算 type:1.语音 2.视频 3.文字 4图片 5礼物6搭讪\n socialConsumption: function socialConsumption(type) {\n var _this7 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee7() {\n return _regenerator.default.wrap(function _callee7$(_context7) {\n while (1) {\n switch (_context7.prev = _context7.next) {\n case 0:\n _context7.next = 2;\n return _this7.$api.socialConsumption({\n userId: uni.getStorageSync(\"userInfo\").id,\n sellerId: _this7.id,\n type: _this7.type == 1 || _this7.type == 3 ? 1 : 2,\n duration: _this7.count + 1\n });\n case 2:\n _this7.userBalance();\n case 3:\n case \"end\":\n return _context7.stop();\n }\n }\n }, _callee7);\n }))();\n },\n formatFun: function formatFun(num) {\n var str = \"\",\n h,\n m,\n s;\n h = Math.floor(num / 3600);\n m = Math.floor((num - h * 3600) / 60);\n s = num - h * 3600 - m * 60;\n str = (h <= 9 ? '0' + h : h) + \":\" + (m <= 9 ? '0' + m : m) + \":\" + (s <= 9 ? '0' + s : s);\n return str;\n },\n toTuiliu: function toTuiliu() {\n var that = this;\n __f__(\"log\", \"toTuiliu\", this.sellerStreamId, \" at pages/pipei/shipin/detail.nvue:511\");\n that.engine.startPlayingStream(this.sellerStreamId);\n that.isOpenSocket = false;\n _ZegoExpressEngine.default.instance().on(\"playerStateUpdate\", function (streamID, state, errorCode, extendedData) {\n /** 调用拉流接口成功后,当拉流器状态发生变更,如出现网络中断导致推流异常等情况,SDK在重试拉流的同时,会通过该回调通知 */\n __f__(\"log\", \"playerStateUpdate\", streamID, \" at pages/pipei/shipin/detail.nvue:516\");\n });\n }\n },\n onBackPress: function onBackPress() {\n if (this.isGuaduan) {\n this.toGuaduan();\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 */ 10)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvcGlwZWkvc2hpcGluL2RldGFpbC5udnVlIl0sIm5hbWVzIjpbInJvb21Db25maWciLCJhcHBJRCIsImFwcFNpZ24iLCJzY2VuYXJpbyIsImNvbXBvbmVudHMiLCJaZWdvTG9jYWxWaWV3IiwiWmVnb1JlbW90ZVZpZXciLCJkYXRhIiwiaXNPcGVuU29ja2V0IiwiaXNZdXlpbiIsImlzR3VhZHVhbiIsImlzWWFuZ3NoZW5ncWkiLCJpc1NoZXhpYW5nIiwiaXNKaWVzaG91IiwiaXNUb2dnbGUiLCJ3aW5XaWR0aCIsIndpbkhlaWdodCIsInVzZXJJbmZvIiwicGxheVN0cmVhbUlkIiwidGl0bGUiLCJjb3VudCIsImJhbGFuY2VJbmZvIiwidXNlck90aGVySW5mbyIsImJhY2tncm91bmQiLCJiYWNrZ3JvdW5kU2l6ZSIsImVuZ2luZSIsInJvb21JZCIsInR5cGUiLCJzdGF0dXNCYXJIZWlnaHQiLCJzZWxsZXJTdHJlYW1JZCIsInZpZXdNb2RlSW5kZXgiLCJpc0NhbWVyYSIsImlzU3RhcnQiLCJ0b0lzQmFjayIsIm9uTG9hZCIsIm9uUmVhZHkiLCJ0aGF0IiwidW5pIiwicGVybWlzaW9uIiwicmVzIiwicmVzMSIsIm1ldGhvZHMiLCJxaWVodWFuIiwidG9KaWVzaG91MSIsInNlbGxlcklkIiwib25CYWNrIiwiY29udGVudCIsImNvbmZpcm1Db2xvciIsInN1Y2Nlc3MiLCJ0b0d1YWR1YW4iLCJjbGVhckludGVydmFsIiwiWmVnb0V4cHJlc3NFbmdpbmUiLCJkZWx0YSIsInRvSmllc2hvdSIsInRvZ2dsZVl1eWluIiwidG9nZ2xlU2hleGlhbmciLCJ0b2dnbGVIdWFtaWFuIiwidG9nZ2xlWWFuZ3NoZW5nIiwidG9QZXJtaXNzaW9uIiwiZ2V0VXNlckluZm8iLCJhcGkiLCJ1c2VySWQiLCJjb2RlIiwibXNnIiwicG9zaXRpb24iLCJpY29uIiwiZ2V0T3RoZXJVc2VySW5mbyIsImxvZ2luUm9vbSIsImJlYXV0eVBhcmFtIiwidGltZXIiLCJzZXRUaW1lb3V0IiwidXNlckJhbGFuY2UiLCJzb2NpYWxDb25zdW1wdGlvbiIsImR1cmF0aW9uIiwiZm9ybWF0RnVuIiwiaCIsIm0iLCJzIiwic3RyIiwidG9UdWlsaXUiLCJvbkJhY2tQcmVzcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBb0pBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFOQTtBQU9BO0FBQ0FBO0FBQ0E7RUFDQUM7RUFDQUM7RUFDQUM7QUFDQTtBQUFBLGVBQ0E7RUFDQUM7SUFDQUM7SUFDQUM7RUFDQTtFQUNBQztJQUNBO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO1FBQ0E7UUFDQUE7UUFDQTtRQUNBQztNQUNBO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO0lBQ0E7RUFDQTtFQUNBQztJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0VBQ0E7RUFDQUM7SUFBQTtJQUFBO01BQUE7TUFBQTtRQUFBO1VBQUE7WUFBQTtjQUNBQztjQUNBQztnQkFDQTtnQkFDQTtrQkFDQTtvQkFDQTtzQkFDQUQ7c0JBQ0FBO29CQUNBO2tCQUNBO2dCQUNBO2NBQ0E7Y0FFQUM7Z0JBQ0E7Z0JBQ0E7a0JBQ0E7b0JBQ0E7c0JBQ0FEO3NCQUNBO29CQUNBO3NCQUNBO29CQUNBO2tCQUNBO2dCQUNBO2NBQ0E7Y0FBQSxNQUVBQztnQkFBQTtnQkFBQTtjQUFBO2NBQUE7Y0FBQSxPQUNBQyw2Q0FDQSxrQ0FDQTtZQUFBO2NBRkFDO2NBQUE7Y0FBQSxPQUdBRCw2Q0FDQSw0QkFDQTtZQUFBO2NBRkFFO2NBR0E7Z0JBQ0E7a0JBQ0E7Z0JBQ0E7a0JBQ0E7Z0JBQ0E7Y0FDQTtjQUNBO2NBQUE7WUFBQTtjQUtBO2dCQUNBO2NBQ0E7Z0JBQ0E7Y0FDQTtjQUNBO1lBQUE7WUFBQTtjQUFBO1VBQUE7UUFBQTtNQUFBO0lBQUE7RUFDQTtFQUNBQztJQUNBQztNQUNBO01BQ0E7SUFDQTtJQUNBQztNQUNBTjtRQUNBO1FBQ0FPO1FBQ0FqQjtRQUNBO01BQ0E7TUFDQTtRQUNBO01BQ0E7SUFDQTtJQUNBa0I7TUFDQTtNQUNBUjtRQUNBbEI7UUFDQTJCO1FBQ0FDO1FBQ0FDO1VBQ0E7WUFDQVo7WUFDQUE7VUFDQTtRQUNBO01BQ0E7SUFDQTtJQUNBYTtNQUFBO01BQ0E7UUFDQVo7VUFDQTtVQUNBTztVQUNBakI7VUFDQTtRQUNBO01BQ0E7TUFDQTtRQUNBVTtNQUNBO01BQ0E7TUFDQWE7TUFDQTtRQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0FDO01BQ0FkO01BQ0FBO01BQ0FBO1FBQ0FlO01BQ0E7SUFDQTtJQUNBQztNQUNBO01BQ0E7SUFDQTtJQUNBQztNQUNBO01BQ0E7SUFDQTtJQUNBQztNQUNBO01BQ0E7SUFDQTtJQUNBQztNQUNBO01BQ0E7SUFDQTtJQUNBQztNQUNBO01BQ0E7SUFDQTtJQUNBQztNQUFBO01BQUE7UUFBQTtVQUFBO1lBQUE7Y0FBQTtnQkFDQTtjQUFBO2NBQUE7Z0JBQUE7WUFBQTtVQUFBO1FBQUE7TUFBQTtJQUNBO0lBQ0E7SUFDQUM7TUFBQTtNQUFBO1FBQUE7UUFBQTtVQUFBO1lBQUE7Y0FBQTtnQkFBQTtnQkFBQSxPQUNBQztrQkFBQUM7Z0JBQUE7Y0FBQTtnQkFBQTtnQkFBQUM7Z0JBQUF2RDtnQkFBQXdEO2dCQUNBO2tCQUNBO2tCQUNBO29CQUNBO29CQUNBO2tCQUNBO2dCQUVBO2tCQUNBMUI7b0JBQ0FsQjtvQkFDQTZDO29CQUNBQztrQkFDQTtnQkFDQTtjQUFBO2NBQUE7Z0JBQUE7WUFBQTtVQUFBO1FBQUE7TUFBQTtJQUNBO0lBQ0E7SUFDQUM7TUFBQTtNQUFBO1FBQUE7UUFBQTtVQUFBO1lBQUE7Y0FBQTtnQkFBQTtnQkFBQSxPQUNBTjtrQkFBQUM7a0JBQUFqQjtnQkFBQTtjQUFBO2dCQUFBO2dCQUFBa0I7Z0JBQUF2RDtnQkFBQXdEO2dCQUNBO2tCQUNBO2tCQUNBO2dCQUNBO2tCQUNBMUI7b0JBQ0FsQjtvQkFDQTZDO29CQUNBQztrQkFDQTtnQkFDQTtjQUFBO2NBQUE7Z0JBQUE7WUFBQTtVQUFBO1FBQUE7TUFBQTtJQUNBO0lBQ0FFO01BQUE7TUFBQTtRQUFBO1FBQUE7VUFBQTtZQUFBO2NBQUE7Z0JBQ0EvQjtnQkFBQTtnQkFBQSxPQUNBd0I7a0JBQ0FDO2tCQUNBakI7Z0JBQ0E7Y0FBQTtnQkFIQUw7Z0JBQUEsTUFJQUE7a0JBQUE7a0JBQUE7Z0JBQUE7Z0JBQ0E7Z0JBQ0F2QztnQkFDQTtnQkFDQTtnQkFDQTtnQkFDQTtnQkFBQTtnQkFBQSxPQUNBbUQ7Y0FBQTtnQkFBQTtnQkFDQTtnQkFDQTtnQkFBQTtnQkFBQSxPQUNBO2NBQUE7Z0JBQ0E7Z0JBQ0E7Z0JBQ0FpQixrQkFDQTtnQkFDQUE7Z0JBQ0FBO2dCQUNBQTtnQkFDQUE7Z0JBQ0E7Z0JBQ0E7Z0JBQ0E7Z0JBQ0E7Z0JBQ0E7a0JBQ0E7a0JBQ0E7Z0JBQ0E7Z0JBQUE7Z0JBRUE7a0JBQ0E7a0JBQ0E7Z0JBQ0E7Z0JBRUE7a0JBQ0E7a0JBQ0E7Z0JBQ0E7O2dCQUNBO2tCQUNBO2tCQUNBO2tCQUNBO2dCQUNBO2dCQUNBO2dCQUNBaEM7a0JBQ0E7Z0JBR0E7Z0JBQ0E7Z0JBQ0E7Z0JBQ0EseUNBQ0E7a0JBQ0E7a0JBQ0E7Z0JBQ0EsR0FDQXBDLFdBQ0E7Z0JBQ0E7Z0JBQ0E7Z0JBQ0E7Z0JBQ0E7Z0JBQ0FrRDtnQkFDQWQ7Z0JBQ0FpQztrQkFDQTtvQkFDQTtzQkFDQTt3QkFDQW5CO3dCQUNBZDt3QkFDQUE7d0JBQ0E7c0JBQ0E7b0JBQ0E7c0JBQ0E7d0JBQ0FjO3dCQUNBZDt3QkFDQUE7d0JBQ0E7c0JBQ0E7b0JBQ0E7a0JBQ0E7a0JBQ0FBO2tCQUNBQTtnQkFDQTtnQkFDQWtDO2tCQUNBO2dCQUNBO2NBQUE7Y0FBQTtnQkFBQTtZQUFBO1VBQUE7UUFBQTtNQUFBO0lBRUE7SUFDQTtJQUNBQztNQUFBO01BQUE7UUFBQTtRQUFBO1VBQUE7WUFBQTtjQUFBO2dCQUFBO2dCQUFBLE9BQ0E7a0JBQ0FWO2dCQUNBO2NBQUE7Z0JBQUE7Z0JBRkFDO2dCQUFBdkQ7Z0JBR0E7a0JBQ0E7Z0JBQ0E7Y0FBQTtjQUFBO2dCQUFBO1lBQUE7VUFBQTtRQUFBO01BQUE7SUFDQTtJQUNBO0lBQ0FpRTtNQUFBO01BQUE7UUFBQTtVQUFBO1lBQUE7Y0FBQTtnQkFBQTtnQkFBQSxPQUNBO2tCQUNBWDtrQkFDQWpCO2tCQUNBakI7a0JBQ0E4QztnQkFDQTtjQUFBO2dCQUNBO2NBQUE7Y0FBQTtnQkFBQTtZQUFBO1VBQUE7UUFBQTtNQUFBO0lBQ0E7SUFDQUM7TUFDQTtRQUFBQztRQUFBQztRQUFBQztNQUNBRjtNQUNBQztNQUNBQztNQUNBQztNQUNBO0lBQ0E7SUFDQUM7TUFDQTtNQUNBO01BQ0EzQztNQUNBQTtNQUNBZTtRQUNBO1FBQ0E7TUFDQTtJQUNBO0VBQ0E7RUFDQTZCO0lBQ0E7TUFDQTtJQUNBO0VBQ0E7QUFDQTtBQUFBLDJCIiwiZmlsZSI6IjMxLmpzIiwic291cmNlc0NvbnRlbnQiOlsiPHRlbXBsYXRlPlxuXHQ8dmlldyBjbGFzcz1cInJvb21cIiA6c3R5bGU9XCJ7J3dpZHRoJzogd2luV2lkdGgrJ3B4JywgJ2hlaWdodCc6IHdpbkhlaWdodCsncHgnfVwiPlxuXHRcdDx2aWV3IGNsYXNzPVwicm9vbS1uYXZiYXJcIiA6c3R5bGU9XCJ7J3dpZHRoJzogd2luV2lkdGgrJ3B4JywgJ2hlaWdodCc6IChzdGF0dXNCYXJIZWlnaHQrNDQpKydweCd9XCI+XG5cdFx0XHQ8dmlldyBjbGFzcz1cIm5hdmJhclwiIDpzdHlsZT1cInsnd2lkdGgnOiB3aW5XaWR0aCsncHgnLCAnbWFyZ2luLXRvcCc6IChzdGF0dXNCYXJIZWlnaHQpKydweCd9XCI+XG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiYmFja1wiIEBjbGljaz1cIm9uQmFjaygpXCIgOnN0eWxlPVwieyd0b3AnOiAoc3RhdHVzQmFySGVpZ2h0KSsncHgnfVwiPlxuXHRcdFx0XHRcdDxpbWFnZSBjbGFzcz1cImltZ1wiIHNyYz1cIkAvc3RhdGljL2Fycm93LWxlZnQucG5nXCI+PC9pbWFnZT5cblx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cInRpdGxlXCIgOnN0eWxlPVwieyd3aWR0aCc6IHdpbldpZHRoKydweCd9XCI+PHRleHQgY2xhc3M9XCJ0eHRcIj57e3RpdGxlfX08L3RleHQ+PC92aWV3PlxuXHRcdFx0PC92aWV3PlxuXHRcdDwvdmlldz5cblx0XHQ8dmlldyB2LWlmPVwidHlwZSA9PSAyIHx8IHR5cGUgPT0gNFwiPlxyXG5cdFx0XHQ8IS0tICAgQGNsaWNrPVwicWllaHVhbigpXCIgLS0+XG5cdFx0XHQ8dmlldyBjbGFzcz1cInJvb20taGRcIiB2LWlmPVwiaXNPcGVuU29ja2V0ID09IGZhbHNlXCI+XG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiYVwiIHYtaWY9XCJpc1RvZ2dsZVwiPlxyXG5cdFx0XHRcdFx0PHplZ28tbG9jYWwtdmlldyBjbGFzcz1cInZpZGVvLXZpZXdcIiA6c3R5bGU9XCJ7J3dpZHRoJzogd2luV2lkdGgrJ3B4JywgJ2hlaWdodCc6IHdpbkhlaWdodCsncHgnfVwiPjwvemVnby1sb2NhbC12aWV3PlxyXG5cdFx0XHRcdFx0PHplZ28tcmVtb3RlLXZpZXcgIGNsYXNzPVwic2hpdHVcIiA6c3RyZWFtSUQ9XCJzZWxsZXJTdHJlYW1JZFwiIDpzdHlsZT1cInsndG9wJzogKHN0YXR1c0JhckhlaWdodCs2MCkrJ3B4J31cIj48L3plZ28tcmVtb3RlLXZpZXc+XHJcblx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cImFcIiB2LWVsc2U+XG5cdFx0XHRcdFx0PHplZ28tcmVtb3RlLXZpZXcgY2xhc3M9XCJ2aWRlby12aWV3XCIgOnN0cmVhbUlEPVwic2VsbGVyU3RyZWFtSWRcIiA6c3R5bGU9XCJ7J3dpZHRoJzogd2luV2lkdGgrJ3B4JywgJ2hlaWdodCc6IHdpbkhlaWdodCsncHgnfVwiPjwvemVnby1yZW1vdGUtdmlldz5cblx0XHRcdFx0XHQ8emVnby1sb2NhbC12aWV3ICBjbGFzcz1cInNoaXR1XCIgOnN0eWxlPVwieyd0b3AnOiAoc3RhdHVzQmFySGVpZ2h0KzYwKSsncHgnfVwiPjwvemVnby1sb2NhbC12aWV3PlxuXHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHQ8L3ZpZXc+XG5cdFx0PC92aWV3PlxuXHRcdDx2aWV3IGNsYXNzPVwicm9vbS1iZFwiIDpzdHlsZT1cInsnd2lkdGgnOiB3aW5XaWR0aCsncHgnLCAnaGVpZ2h0Jzogd2luSGVpZ2h0KydweCd9XCIgdi1pZj1cImlzT3BlblNvY2tldFwiPlxuXHRcdFx0PGltYWdlIGNsYXNzPVwicGljXCIgOnN0eWxlPVwieyd3aWR0aCc6IHdpbldpZHRoKydweCcsICdoZWlnaHQnOiB3aW5IZWlnaHQrJ3B4J31cIiAgc3JjPVwiQC9zdGF0aWMveXV5aW4tYmcucG5nXCI+PC9pbWFnZT5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJkaWFuLW9uXCIgPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiaW5mb1wiPlxyXG5cdFx0XHRcdFx0PGltYWdlIGNsYXNzPVwiYXZhdGFyXCIgOnNyYz1cInVzZXJPdGhlckluZm8uZmFjZUltYWdlP3VzZXJPdGhlckluZm8uZmFjZUltYWdlOnVzZXJPdGhlckluZm8uaW1nXCI+PC9pbWFnZT5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwibmFtZVwiPjx0ZXh0IGNsYXNzPVwidFwiPnt7dXNlck90aGVySW5mby5uaWNrbmFtZX19PC90ZXh0Pjwvdmlldz5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidHh0XCI+PHRleHQgY2xhc3M9XCJ0XCI+e3t1c2VyT3RoZXJJbmZvLmFnZX195bKBL3t7dXNlck90aGVySW5mby5oZWlnaHR9fTwvdGV4dD48L3ZpZXc+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwidGFnXCI+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInRpdGxlc1wiPjx0ZXh0IGNsYXNzPVwidFwiPuS4quaAp+etvuWQje+8mjwvdGV4dD48L3ZpZXc+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImRlc2NzXCI+XHJcblx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwidFwiPnt7dXNlck90aGVySW5mby5kZWNsYXJhdGlvbn19PC90ZXh0PlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0PC92aWV3PlxuXHRcdDwvdmlldz5cblx0XHQ8dmlldyBjbGFzcz1cInJvb20tZmRcIiB2LWlmPVwidHlwZT09MSB8fCB0eXBlPT0zXCIgOnN0eWxlPVwieyd3aWR0aCc6IHdpbldpZHRoKydweCd9XCIgPlxuXHRcdFx0PHZpZXcgY2xhc3M9XCJpdGVtXCI+XG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwicGljXCIgQGNsaWNrPVwidG9nZ2xlWXV5aW4oKVwiIHYtaWY9XCJpc0ppZXNob3U9PXRydWVcIj5cblx0XHRcdFx0XHQ8aW1hZ2Ugdi1pZj1cImlzWXV5aW5cIiBjbGFzcz1cInBpbWdcIiBzcmM9XCJAL3N0YXRpYy95dXlpbi0wMS5wbmdcIj48L2ltYWdlPlxuXHRcdFx0XHRcdDxpbWFnZSB2LWVsc2UgY2xhc3M9XCJwaW1nXCIgc3JjPVwiQC9zdGF0aWMveXV5aW4tMDEtb24ucG5nXCI+PC9pbWFnZT5cblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwidHh0XCIgdi1pZj1cImlzSmllc2hvdT09dHJ1ZVwiPlxyXG5cdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJ0XCI+e3tpc1l1eWluPyflvIDlkK8nOiflhbPpl60nfX08L3RleHQ+XHJcblx0XHRcdFx0PC92aWV3PlxuXHRcdFx0PC92aWV3PlxuXHRcdFx0PHZpZXcgY2xhc3M9XCJpdGVtXCIgdi1pZj1cImlzSmllc2hvdVwiPlxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cInBpY1wiPlxuXHRcdFx0XHRcdDxpbWFnZSBAY2xpY2s9XCJ0b0d1YWR1YW4oKVwiIGNsYXNzPVwicGltZ1wiIHNyYz1cIkAvc3RhdGljL3l1eWluLTAyLnBuZ1wiPjwvaW1hZ2U+XG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cInR4dFwiPlxyXG5cdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJ0XCI+5oyC5patPC90ZXh0PlxyXG5cdFx0XHRcdDwvdmlldz5cblx0XHRcdDwvdmlldz5cclxuXHRcdFx0PHRlbXBsYXRlIHYtaWY9XCJpc0ppZXNob3UgPT0gZmFsc2VcIj5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cIml0ZW1cIj5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwicGljXCI+XHJcblx0XHRcdFx0XHRcdDxpbWFnZSBAY2xpY2s9XCJ0b0d1YWR1YW4oKVwiIGNsYXNzPVwicGltZ1wiIHNyYz1cIkAvc3RhdGljL3l1eWluLTAyLnBuZ1wiPjwvaW1hZ2U+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInR4dFwiPlxyXG5cdFx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cInRcIj7mjILmlq08L3RleHQ+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiaXRlbVwiIHYtaWY9XCJpc1N0YXJ0ID09IGZhbHNlXCI+PC92aWV3PlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiaXRlbVwiIHYtaWY9XCJpc1N0YXJ0ID09IGZhbHNlXCI+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInBpY1wiPlxyXG5cdFx0XHRcdFx0XHQ8aW1hZ2UgY2xhc3M9XCJwaW1nXCIgc3JjPVwiQC9zdGF0aWMveXV5aW4tMDUucG5nXCI+PC9pbWFnZT5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidHh0XCI+XHJcblx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwidFwiPnt7aXNTdGFydD8n562J5b6FJzon5o6l5Y+XJ319PC90ZXh0PlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0PC90ZW1wbGF0ZT5cblx0XHRcdDx2aWV3IGNsYXNzPVwiaXRlbVwiPlxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cInBpY1wiIEBjbGljaz1cInRvZ2dsZVlhbmdzaGVuZygpXCIgdi1pZj1cImlzSmllc2hvdT09dHJ1ZVwiPlxuXHRcdFx0XHRcdDxpbWFnZSBjbGFzcz1cInBpbWdcIiB2LWlmPVwiaXNZYW5nc2hlbmdxaVwiIHNyYz1cIkAvc3RhdGljL3l1eWluLTAzLnBuZ1wiPjwvaW1hZ2U+XG5cdFx0XHRcdFx0PGltYWdlIGNsYXNzPVwicGltZ1wiIHYtZWxzZSBzcmM9XCJAL3N0YXRpYy95dXlpbi0wMy1vbi5wbmdcIj48L2ltYWdlPlxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0eHRcIiB2LWlmPVwiaXNKaWVzaG91PT10cnVlXCI+XHJcblx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cInRcIj57e2lzWWFuZ3NoZW5ncWk/J+W8gOWQryc6J+WFs+mXrSd9fTwvdGV4dD5cclxuXHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHQ8L3ZpZXc+XG5cdFx0PC92aWV3PlxuXHRcdDx2aWV3IGNsYXNzPVwicm9vbS1mZFwiIHYtaWY9XCJ0eXBlPT0yIHx8IHR5cGU9PTRcIiA6c3R5bGU9XCJ7J3dpZHRoJzogd2luV2lkdGgrJ3B4J31cIiA+XG5cdFx0XHQ8dmlldyBjbGFzcz1cIml0ZW1cIiB2LWlmPVwiaXNKaWVzaG91XCI+XG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwicGljXCIgQGNsaWNrPVwidG9nZ2xlWXV5aW4oKVwiIHYtaWY9XCJpc0ppZXNob3U9PXRydWVcIj5cblx0XHRcdFx0XHQ8aW1hZ2Ugdi1pZj1cImlzWXV5aW5cIiBjbGFzcz1cInBpbWdcIiBzcmM9XCJAL3N0YXRpYy95dXlpbi0wMS5wbmdcIj48L2ltYWdlPlxuXHRcdFx0XHRcdDxpbWFnZSB2LWVsc2UgY2xhc3M9XCJwaW1nXCIgc3JjPVwiQC9zdGF0aWMveXV5aW4tMDEtb24ucG5nXCI+PC9pbWFnZT5cblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwidHh0XCI+XHJcblx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cInRcIj57e2lzWXV5aW4/J+W8gOWQryc6J+WFs+mXrSd9fTwvdGV4dD5cclxuXHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHQ8L3ZpZXc+XG5cdFx0XHQ8dmlldyBjbGFzcz1cIml0ZW1cIiB2LWlmPVwiaXNKaWVzaG91XCI+XG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwicGljXCIgQGNsaWNrPVwidG9nZ2xlWWFuZ3NoZW5nKClcIj5cblx0XHRcdFx0XHQ8aW1hZ2UgY2xhc3M9XCJwaW1nXCIgdi1pZj1cImlzWWFuZ3NoZW5ncWlcIiBzcmM9XCJAL3N0YXRpYy95dXlpbi0wMy5wbmdcIj48L2ltYWdlPlxuXHRcdFx0XHRcdDxpbWFnZSBjbGFzcz1cInBpbWdcIiB2LWVsc2Ugc3JjPVwiQC9zdGF0aWMveXV5aW4tMDMtb24ucG5nXCI+PC9pbWFnZT5cblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwidHh0XCI+XHJcblx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cInRcIj57e2lzWWFuZ3NoZW5ncWk/J+W8gOWQryc6J+WFs+mXrSd9fTwvdGV4dD5cclxuXHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHQ8L3ZpZXc+XG5cdFx0XHQ8dmlldyBjbGFzcz1cIml0ZW1cIiB2LWlmPVwiaXNKaWVzaG91XCI+XG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwicGljXCIgQGNsaWNrPVwidG9nZ2xlU2hleGlhbmcoKVwiIHYtaWY9XCJpc0ppZXNob3U9PXRydWVcIj5cblx0XHRcdFx0XHQ8aW1hZ2UgY2xhc3M9XCJwaW1nXCIgdi1pZj1cImlzU2hleGlhbmdcIiBzcmM9XCJAL3N0YXRpYy95dXlpbi0wNC5wbmdcIj48L2ltYWdlPlxuXHRcdFx0XHRcdDxpbWFnZSBjbGFzcz1cInBpbWdcIiB2LWVsc2Ugc3JjPVwiQC9zdGF0aWMveXV5aW4tMDQtb24ucG5nXCI+PC9pbWFnZT5cblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwidHh0XCI+XHJcblx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cInRcIj57e2lzU2hleGlhbmc/J+W8gOWQryc6J+WFs+mXrSd9fTwvdGV4dD5cclxuXHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDx0ZW1wbGF0ZSB2LWlmPVwiaXNKaWVzaG91ID09IGZhbHNlXCI+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpdGVtXCI+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInBpY1wiPlxyXG5cdFx0XHRcdFx0XHQ8aW1hZ2UgQGNsaWNrPVwidG9HdWFkdWFuKClcIiBjbGFzcz1cInBpbWdcIiBzcmM9XCJAL3N0YXRpYy95dXlpbi0wMi5wbmdcIj48L2ltYWdlPlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0eHRcIj5cclxuXHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJ0XCI+5oyC5patPC90ZXh0PlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cIml0ZW1cIiB2LWlmPVwiaXNTdGFydCA9PSBmYWxzZVwiIEBjbGljaz1cInRvSmllc2hvdTEoKVwiPlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJwaWNcIj5cclxuXHRcdFx0XHRcdFx0PGltYWdlIGNsYXNzPVwicGltZ1wiIHNyYz1cIkAvc3RhdGljL3l1eWluLTA1LnBuZ1wiPjwvaW1hZ2U+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInR4dFwiPlxyXG5cdFx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cInRcIj57e2lzU3RhcnQ/J+etieW+hSc6J+aOpeWPlyd9fTwvdGV4dD5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDwvdGVtcGxhdGU+XG5cdFx0PC92aWV3PlxyXG5cdFx0PHRlbXBsYXRlIHYtaWY9XCJpc0ppZXNob3VcIj5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJyb29tLWZkMVwiIHYtaWY9XCJ0eXBlPT0yIHx8IHR5cGU9PTRcIiA6c3R5bGU9XCJ7J3dpZHRoJzogd2luV2lkdGgrJ3B4J31cIiA+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpdGVtc1wiPlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJwaWNcIj5cclxuXHRcdFx0XHRcdFx0PGltYWdlIEBjbGljaz1cInRvR3VhZHVhbigpXCIgY2xhc3M9XCJwaW1nXCIgc3JjPVwiQC9zdGF0aWMveXV5aW4tMDIucG5nXCI+PC9pbWFnZT5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDxpbWFnZSBjbGFzcz1cIm9mZlwiIEBjbGljaz1cInRvZ2dsZUh1YW1pYW4oKVwiIHNyYz1cIkAvc3RhdGljL3l1eWluLW9mZi5wbmdcIj48L2ltYWdlPlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0PC90ZW1wbGF0ZT5cblx0PC92aWV3PlxuPC90ZW1wbGF0ZT5cblxuPHNjcmlwdD5cblx0bGV0IHRpbWVyID0gbnVsbDtcblx0aW1wb3J0IGFwaSBmcm9tICdAL2FwaS9pbmRleC5qcydcblx0aW1wb3J0IHBlcm1pc2lvbiBmcm9tIFwiQC9qc19zZGsvd2EtcGVybWlzc2lvbi9wZXJtaXNzaW9uLmpzXCJcblx0Ly/lr7zlhaUgWkVHTyBFeHByZXNzIFNES1xuXHRpbXBvcnQgWmVnb0V4cHJlc3NFbmdpbmUgZnJvbSAnQC91bmlfbW9kdWxlcy96ZWdvLVplZ29FeHByZXNzVW5pQXBwLUpTL2NvbXBvbmVudHMvemVnby1aZWdvRXhwcmVzc1VuaUFwcC1KUy9saWIvWmVnb0V4cHJlc3NFbmdpbmUnO1xuXHRpbXBvcnQgWmVnb1JlbW90ZVZpZXcgZnJvbSBcIkAvdW5pX21vZHVsZXMvemVnby1aZWdvRXhwcmVzc1VuaUFwcC1KUy9jb21wb25lbnRzL3plZ28tWmVnb0V4cHJlc3NVbmlBcHAtSlMvemVnby12aWV3L1plZ29SZW1vdGVWaWV3XCI7XG5cdGltcG9ydCBaZWdvTG9jYWxWaWV3IGZyb20gXCJAL3VuaV9tb2R1bGVzL3plZ28tWmVnb0V4cHJlc3NVbmlBcHAtSlMvY29tcG9uZW50cy96ZWdvLVplZ29FeHByZXNzVW5pQXBwLUpTL3plZ28tdmlldy9aZWdvTG9jYWxWaWV3XCI7XG5cdGxldCByb29tQ29uZmlnID0ge307XG5cdHJvb21Db25maWcuaXNVc2VyU3RhdHVzTm90aWZ5ID0gdHJ1ZTtcblx0Y29uc3QgcHJvZmlsZSA9IHtcblx0XHRhcHBJRCA6IDI2NzExMTk4MCxcblx0XHRhcHBTaWduOiAnYWZjYWE5MGE3NzUwZWU1NTZlNDUwY2E2MjI4N2M1ZjlhMzYyZTllZDcxMTc4OTcxN2NkYTBlMThmMDg4ODU4ZScsXG5cdFx0c2NlbmFyaW8gOiAwXG5cdH07XG5cdGV4cG9ydCBkZWZhdWx0IHtcblx0XHRjb21wb25lbnRzOiB7XG5cdFx0ICAgIFplZ29Mb2NhbFZpZXcsXG5cdFx0ICAgIFplZ29SZW1vdGVWaWV3LFxuXHRcdH0sXG5cdFx0ZGF0YSgpIHtcblx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0aXNPcGVuU29ja2V0OiB0cnVlLFxuXHRcdFx0XHRpc1l1eWluOiB0cnVlLFxuXHRcdFx0XHRpc0d1YWR1YW46IHRydWUsXG5cdFx0XHRcdGlzWWFuZ3NoZW5ncWk6IHRydWUsXG5cdFx0XHRcdGlzU2hleGlhbmc6IHRydWUsXG5cdFx0XHRcdGlzSmllc2hvdTogdHJ1ZSxcblx0XHRcdFx0aXNUb2dnbGU6IHRydWUsXG5cdFx0XHRcdHdpbldpZHRoOiAwLFxuXHRcdFx0XHR3aW5IZWlnaHQ6IDAsXG5cdFx0XHRcdHVzZXJJbmZvOiB7fSxcblx0XHRcdFx0cGxheVN0cmVhbUlkOiBcIlwiLFxuXHRcdFx0XHR0aXRsZTogXCJcIixcblx0XHRcdFx0Y291bnQ6IDAsXHJcblx0XHRcdFx0YmFsYW5jZUluZm86IHt9LFxyXG5cdFx0XHRcdHVzZXJPdGhlckluZm86IHt9LFxuXHRcdFx0XHRiYWNrZ3JvdW5kOiB7XG5cdFx0XHRcdFx0Ly8g5a+86Iiq5qCP6IOM5pmv5Zu+XG5cdFx0XHRcdFx0YmFja2dyb3VuZDogJ3VybChodHRwczovL2FwaS5seWl5dWFuLmNuL3Byb2ZpbGUvdXBsb2FkL3N0YXRpYy95dXlpbi1iZy5wbmcpIGNlbnRlciB0b3Agbm8tcmVwZWF0Jyxcblx0XHRcdFx0XHQvLyDov5jlj6/ku6Xorr7nva7og4zmma/lm75zaXpl5bGe5oCnXG5cdFx0XHRcdFx0YmFja2dyb3VuZFNpemU6ICcxMDAgYXV0bycsXG5cdFx0XHRcdH0sXG5cdFx0XHRcdGVuZ2luZTogbnVsbCxcblx0XHRcdFx0cm9vbUlkOiBcIlwiLFxuXHRcdFx0XHR0eXBlOiAyLFxuXHRcdFx0XHRzdGF0dXNCYXJIZWlnaHQ6IDAsXG5cdFx0XHRcdHNlbGxlclN0cmVhbUlkOiBcIlwiLFxuXHRcdFx0XHR2aWV3TW9kZUluZGV4OiAwLFxuXHRcdFx0XHRpc0NhbWVyYTogdHJ1ZSxcclxuXHRcdFx0XHRpc1N0YXJ0OiB0cnVlLFxyXG5cdFx0XHRcdHRvSXNCYWNrOiB0cnVlLFxuXHRcdFx0fVxuXHRcdH0sXG5cdFx0b25Mb2FkKG8pIHtcclxuXHRcdFx0Y29uc29sZS5sb2cobylcblx0XHRcdHRoaXMuaWQgPSBvLmlkO1xuXHRcdFx0dGhpcy50eXBlPW8udHlwZTtcblx0XHRcdHRoaXMudGl0bGUgPSAodGhpcy50eXBlID09IDF8fHRoaXMudHlwZSA9PSAzKT9cIuivremfs+mAmuivnVwiOlwi6KeG6aKR6YCa6K+dXCI7XHJcblx0XHRcdHRoaXMuaXNTdGFydCA9ICh0aGlzLnR5cGUgPT0gM3x8dGhpcy50eXBlID09IDQpPyhvLmZpZD9mYWxzZTp0cnVlKTp0cnVlXG5cdFx0XHR0aGlzLmlzU2hleGlhbmcgPSAodGhpcy50eXBlID09IDIgfHwgdGhpcy50eXBlID09IDQpP3RydWU6ZmFsc2VcclxuXHRcdFx0dGhpcy5pc0ppZXNob3UgPSBvLnR5cGU8PTI/dHJ1ZTpmYWxzZTtcblx0XHRcdHRoaXMuc3RhdHVzQmFySGVpZ2h0ID0gdW5pLmdldFN5c3RlbUluZm9TeW5jKCkuc3RhdHVzQmFySGVpZ2h0O1xuXHRcdFx0dGhpcy53aW5XaWR0aCA9IHVuaS5nZXRTeXN0ZW1JbmZvU3luYygpLndpbmRvd1dpZHRoO1xuXHRcdFx0dGhpcy53aW5IZWlnaHQgPSB1bmkuZ2V0U3lzdGVtSW5mb1N5bmMoKS53aW5kb3dIZWlnaHQ7XG5cdFx0fSxcblx0XHRhc3luYyBvblJlYWR5KCkge1xuXHRcdFx0Y29uc3QgdGhhdCA9IHRoaXM7XG5cdFx0XHR1bmkuJG9uKFwid2F0Y2hFdmVudFwiLGZ1bmN0aW9uIChvYmopIHtcclxuXHRcdFx0XHRjb25zb2xlLmxvZyhvYmopXG5cdFx0XHRcdGlmKG9iai50b3BpYyA9PSAnbWVzc2FnZScpe1xuXHRcdFx0XHRcdGlmKG9iai50eXBlID09IDEyKXtcblx0XHRcdFx0XHRcdGlmKHVuaS5nZXRTdG9yYWdlU3luYyhcInVzZXJJbmZvXCIpLmlkID09IG9iai5zZWxsZXJJZCl7XHJcblx0XHRcdFx0XHRcdFx0dGhhdC5pc0d1YWR1YW4gPSBmYWxzZTtcblx0XHRcdFx0XHRcdFx0dGhhdC50b0d1YWR1YW4oMSlcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH0pXHJcblx0XHRcdFxyXG5cdFx0XHR1bmkuJG9uKFwidG9KaWVzaG91WWluc2hpcFwiLChvYmopPT57XHJcblx0XHRcdFx0Y29uc29sZS5sb2coXCJ0b0ppZXNob3VZaW5zaGlwXCIsb2JqKVxyXG5cdFx0XHRcdGlmKG9iai50b3BpYyA9PSAnbWVzc2FnZScpe1xyXG5cdFx0XHRcdFx0aWYob2JqLnR5cGUgPT0gMjApe1xyXG5cdFx0XHRcdFx0XHRpZih1bmkuZ2V0U3RvcmFnZVN5bmMoXCJ1c2VySW5mb1wiKS5pZCA9PSBvYmouc2VsbGVySWQpe1xyXG5cdFx0XHRcdFx0XHRcdHRoYXQudG9KaWVzaG91KCk7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5pc09wZW5Tb2NrZXQgPSBmYWxzZTtcclxuXHRcdFx0XHRcdFx0fWVsc2V7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5pc09wZW5Tb2NrZXQgPSBmYWxzZTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSlcblx0XHRcdC8vICNpZmRlZiBBUFAtUExVU1xuXHRcdFx0aWYgKHVuaS5nZXRTeXN0ZW1JbmZvU3luYygpLnBsYXRmb3JtID09PSBcImFuZHJvaWRcIikge1xuXHRcdFx0ICAgY29uc3QgcmVzID0gYXdhaXQgcGVybWlzaW9uLnJlcXVlc3RBbmRyb2lkUGVybWlzc2lvbihcblx0XHRcdFx0XHRcImFuZHJvaWQucGVybWlzc2lvbi5SRUNPUkRfQVVESU9cIlxuXHRcdFx0XHQpO1xuXHRcdFx0ICAgY29uc3QgcmVzMSA9ICBhd2FpdCBwZXJtaXNpb24ucmVxdWVzdEFuZHJvaWRQZXJtaXNzaW9uKFxuXHRcdFx0XHRcdFwiYW5kcm9pZC5wZXJtaXNzaW9uLkNBTUVSQVwiXG5cdFx0XHRcdCk7XHJcblx0XHRcdFx0aWYocmVzID09IDEgJiYgcmVzMSA9PSAxKXtcclxuXHRcdFx0XHRcdGlmKHRoaXMudHlwZSA8PSAyKXtcclxuXHRcdFx0XHRcdFx0dGhpcy50b1Blcm1pc3Npb24oKTtcclxuXHRcdFx0XHRcdH1lbHNle1xyXG5cdFx0XHRcdFx0XHR0aGlzLmdldFVzZXJJbmZvKDEpO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHR0aGlzLmdldE90aGVyVXNlckluZm8oKVxyXG5cdFx0XHRcdHJldHVybiA7XG5cdFx0XHR9XG5cdFx0XHQvLyAjZW5kaWZcclxuXHRcdFx0XG5cdFx0ICBpZih0aGlzLnR5cGUgPD0gMil7XG5cdFx0XHQgIHRoaXMudG9QZXJtaXNzaW9uKCk7XG5cdFx0ICB9ZWxzZXtcclxuXHRcdFx0ICB0aGlzLmdldFVzZXJJbmZvKDEpO1xyXG5cdFx0ICB9XHJcblx0XHRcdCAgdGhpcy5nZXRPdGhlclVzZXJJbmZvKCk7XG5cdFx0fSxcblx0XHRtZXRob2RzOiB7XHJcblx0XHRcdHFpZWh1YW4oKSB7XHJcblx0XHRcdFx0dGhpcy5pc1RvZ2dsZSA9ICF0aGlzLmlzVG9nZ2xlO1xyXG5cdFx0XHRcdGNvbnNvbGUubG9nKHRoaXMuaXNUb2dnbGUpXHJcblx0XHRcdH0sXHJcblx0XHRcdHRvSmllc2hvdTEoKSB7XHJcblx0XHRcdFx0dW5pLiRlbWl0KFwiamllc2hvdVlpbnNoaXBcIix7XHJcblx0XHRcdFx0XHRcInVzZXJJZFwiOiB1bmkuZ2V0U3RvcmFnZVN5bmMoXCJ1c2VySW5mb1wiKS5pZCxcclxuXHRcdFx0XHRcdHNlbGxlcklkOiB0aGlzLmlkLCBcclxuXHRcdFx0XHRcdHR5cGU6IDIwLFxyXG5cdFx0XHRcdFx0XCJ0b3BpY1wiOlwibWVzc2FnZVwiLFxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdFx0aWYodGhpcy5pc1N0YXJ0ID09IGZhbHNlKXtcclxuXHRcdFx0XHRcdHRoaXMudG9KaWVzaG91KCk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxuXHRcdFx0b25CYWNrKCkge1xuXHRcdFx0XHRjb25zdCB0aGF0ID0gdGhpcztcblx0XHRcdFx0dW5pLnNob3dNb2RhbCh7XG5cdFx0XHRcdFx0dGl0bGU6IFwi5rip6aao5o+Q56S6XCIsXG5cdFx0XHRcdFx0Y29udGVudDogXCLmmK/lkKbopoHpgIDlh7rmiL/pl7TvvJ9cIixcblx0XHRcdFx0XHRjb25maXJtQ29sb3I6IFwiIzAwMDAwMFwiLFxuXHRcdFx0XHRcdHN1Y2Nlc3MocmVzKSB7XG5cdFx0XHRcdFx0XHRpZihyZXMuY29uZmlybSl7XG5cdFx0XHRcdFx0XHRcdHRoYXQuaXNHdWFkdWFuID0gZmFsc2Vcblx0XHRcdFx0XHRcdFx0dGhhdC50b0d1YWR1YW4oKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pXG5cdFx0XHR9LFxuXHRcdFx0dG9HdWFkdWFuKHR5cGUpIHtcblx0XHRcdFx0aWYodHlwZSAhPTEpe1xuXHRcdFx0XHRcdHVuaS4kZW1pdChcImR1YW5ZaW5zaGlwXCIse1xuXHRcdFx0XHRcdFx0XCJ1c2VySWRcIjogdW5pLmdldFN0b3JhZ2VTeW5jKFwidXNlckluZm9cIikuaWQsXG5cdFx0XHRcdFx0XHRzZWxsZXJJZDogdGhpcy5pZCwgXG5cdFx0XHRcdFx0XHR0eXBlOiAxMixcblx0XHRcdFx0XHRcdFwidG9waWNcIjpcIm1lc3NhZ2VcIixcblx0XHRcdFx0XHR9KVxuXHRcdFx0XHR9IFxyXG5cdFx0XHRcdGlmKHR5cGUgPT0gMSl7XHJcblx0XHRcdFx0XHR1bmkuJGVtaXQoXCJzaG93VG9hc3RcIix0aGlzLmlzSmllc2hvdSlcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0Ly8gdGhpcy5zb2NpYWxDb25zdW1wdGlvbigpO1xuXHRcdFx0XHRjbGVhckludGVydmFsKHRpbWVyKVxyXG5cdFx0XHRcdGlmKHRoaXMudG9Jc0JhY2sgID09IGZhbHNlKXtcclxuXHRcdFx0XHRcdHJldHVybiA7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHRoaXMudG9Jc0JhY2sgPSBmYWxzZVxuXHRcdFx0XHR0aGlzLmlzR3VhZHVhbiA9IGZhbHNlXHJcblx0XHRcdFx0LyoqIOWBnOatouaOqOa1gSAqL1xyXG5cdFx0XHRcdHRoaXMuZW5naW5lPy5zdG9wUHVibGlzaGluZ1N0cmVhbSgpO1xyXG5cdFx0XHRcdC8qKiDlgZzmraLmnKzlnLDpooTop4ggKi9cclxuXHRcdFx0XHR0aGlzLmVuZ2luZT8uc3RvcFByZXZpZXcoKTtcclxuXHRcdFx0XHQvKiog5YGc5q2i5ouJ5rWBICovXHJcblx0XHRcdFx0dGhpcy5lbmdpbmU/LnN0b3BQbGF5aW5nU3RyZWFtKHRoaXMuc2VsbGVyU3RyZWFtSWQpO1xyXG5cdFx0XHRcdC8qKiDpgIDlh7rmiL/pl7QgKi9cclxuXHRcdFx0XHR0aGlzLmVuZ2luZT8ubG9nb3V0Um9vbSh0aGlzLnJvb21JZCk7XHJcblx0XHRcdFx0LyoqIOmUgOavgeW8leaTjiAqL1xyXG5cdFx0XHRcdFplZ29FeHByZXNzRW5naW5lLmRlc3Ryb3lFbmdpbmUoKTtcclxuXHRcdFx0XHR1bmkuJG9mZihcIndhdGNoRXZlbnRcIilcclxuXHRcdFx0XHR1bmkuJG9mZihcInRvSmllc2hvdVlpbnNoaXBcIilcclxuXHRcdFx0XHR1bmkubmF2aWdhdGVCYWNrKHtcclxuXHRcdFx0XHRcdGRlbHRhOiAxXHJcblx0XHRcdFx0fSlcblx0XHRcdH0sXG5cdFx0XHR0b0ppZXNob3UoKSB7XG5cdFx0XHRcdHRoaXMudG9QZXJtaXNzaW9uKCk7XHJcblx0XHRcdFx0dGhpcy4kZm9yY2VVcGRhdGUoKTtcblx0XHRcdH0sXG5cdFx0XHR0b2dnbGVZdXlpbigpIHtcblx0XHRcdFx0dGhpcy5pc1l1eWluID0gIXRoaXMuaXNZdXlpbjtcblx0XHRcdFx0dGhpcy5lbmdpbmUubXV0ZU1pY3JvcGhvbmUoIXRoaXMuaXNZdXlpbilcblx0XHRcdH0sXG5cdFx0XHR0b2dnbGVTaGV4aWFuZygpIHtcblx0XHRcdFx0dGhpcy5pc1NoZXhpYW5nID0gIXRoaXMuaXNTaGV4aWFuZztcblx0XHRcdFx0dGhpcy5lbmdpbmUuZW5hYmxlQ2FtZXJhKHRoaXMuaXNTaGV4aWFuZylcblx0XHRcdH0sXG5cdFx0XHR0b2dnbGVIdWFtaWFuKCkge1xuXHRcdFx0XHR0aGlzLmlzQ2FtZXJhID0gIXRoaXMuaXNDYW1lcmFcblx0XHRcdFx0dGhpcy5lbmdpbmUudXNlRnJvbnRDYW1lcmEodGhpcy5pc0NhbWVyYSlcblx0XHRcdH0sXG5cdFx0XHR0b2dnbGVZYW5nc2hlbmcoKSB7XG5cdFx0XHRcdHRoaXMuaXNZYW5nc2hlbmdxaSA9ICEgdGhpcy5pc1lhbmdzaGVuZ3FpXG5cdFx0XHRcdHRoaXMuZW5naW5lLnNldEF1ZGlvUm91dGVUb1NwZWFrZXIodGhpcy5pc0NhbWVyYSlcblx0XHRcdH0sXG5cdFx0XHRhc3luYyB0b1Blcm1pc3Npb24oKSB7XG5cdFx0XHRcdHRoaXMuZ2V0VXNlckluZm8oKTtcblx0XHRcdH0sXG5cdFx0XHQvL+afpeivouS4quS6uuS/oeaBr1xuXHRcdFx0YXN5bmMgZ2V0VXNlckluZm8odHlwZSkge1xuXHRcdFx0XHRjb25zdCB7IGNvZGUsIGRhdGEgLCBtc2d9ID0gYXdhaXQgYXBpLmZpbmRVc2VySW5mbyh7dXNlcklkOiB1bmkuZ2V0U3RvcmFnZVN5bmMoXCJ1c2VySW5mb1wiKS5pZH0pO1xuXHRcdFx0XHRpZihjb2RlID09IDIwMCl7XG5cdFx0XHRcdFx0dGhpcy51c2VySW5mbyA9IGRhdGE7XHJcblx0XHRcdFx0XHRpZih0eXBlICE9IDEpe1xyXG5cdFx0XHRcdFx0XHR0aGlzLnVzZXJCYWxhbmNlKCk7XHJcblx0XHRcdFx0XHRcdHRoaXMubG9naW5Sb29tKCk7XHJcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XG5cdFx0XHRcdH1lbHNle1xuXHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xuXHRcdFx0XHRcdFx0dGl0bGU6IG1zZyxcblx0XHRcdFx0XHRcdHBvc2l0aW9uOiBcImJvdHRvbVwiLFxuXHRcdFx0XHRcdFx0aWNvbjogXCJub25lXCIsXG5cdFx0XHRcdFx0fSlcblx0XHRcdFx0fVxuXHRcdFx0fSxcclxuXHRcdFx0Ly/mn6Xor6J0YXJlbuS4quS6uuS/oeaBr1xyXG5cdFx0XHRhc3luYyBnZXRPdGhlclVzZXJJbmZvKHR5cGUpIHtcclxuXHRcdFx0XHRjb25zdCB7IGNvZGUsIGRhdGEgLCBtc2cgfSA9IGF3YWl0IGFwaS5maW5kT3RoZXJVc2VySW5mbyh7dXNlcklkOiB1bmkuZ2V0U3RvcmFnZVN5bmMoXCJ1c2VySW5mb1wiKS5pZCxzZWxsZXJJZDogdGhpcy5pZCx9KTtcclxuXHRcdFx0XHRpZihjb2RlID09IDIwMCl7XHJcblx0XHRcdFx0XHRjb25zb2xlLmxvZyhcImdldE90aGVyVXNlckluZm9cIixkYXRhKVxyXG5cdFx0XHRcdFx0dGhpcy51c2VyT3RoZXJJbmZvID0gZGF0YTtcclxuXHRcdFx0XHR9ZWxzZXtcclxuXHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xyXG5cdFx0XHRcdFx0XHR0aXRsZTogbXNnLFxyXG5cdFx0XHRcdFx0XHRwb3NpdGlvbjogXCJib3R0b21cIixcclxuXHRcdFx0XHRcdFx0aWNvbjogXCJub25lXCIsXHJcblx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcblx0XHRcdGFzeW5jIGxvZ2luUm9vbSgpe1xuXHRcdFx0XHRjb25zdCB0aGF0ID0gdGhpcztcblx0XHRcdFx0Y29uc3QgcmVzID0gYXdhaXQgYXBpLmZpbmRaZWdvVG9rZW4oe1xuXHRcdFx0XHRcdHVzZXJJZDogdW5pLmdldFN0b3JhZ2VTeW5jKFwidXNlckluZm9cIikuaWQsXG5cdFx0XHRcdFx0c2VsbGVySWQ6IHRoaXMuaWRcblx0XHRcdFx0fSlcblx0XHRcdFx0aWYocmVzLmNvZGUgPT0gMjAwKXtcblx0XHRcdFx0XHQvLyDojrflj5Z0b2tlbuS8oOWFpVxuXHRcdFx0XHRcdHJvb21Db25maWcudG9rZW4gPSByZXMuZGF0YS50b2tlbjtcblx0XHRcdFx0XHR0aGlzLnBsYXlTdHJlYW1JZCA9IHJlcy5kYXRhLnVzZXJTdHJlYW1JZDtcblx0XHRcdFx0XHR0aGlzLnNlbGxlclN0cmVhbUlkID0gcmVzLmRhdGEuc2VsbGVyU3RyZWFtSWQ7XG5cdFx0XHRcdFx0dGhpcy5yb29tSWQgPSByZXMuZGF0YS5yb29tSWQ7XG5cdFx0XHRcdFx0Y29uc29sZS5sb2coXCJsb2dpblJvb20xMVwiLHJlcy5kYXRhKVxuXHRcdFx0XHRcdHRoaXMuZW5naW5lID0gYXdhaXQgWmVnb0V4cHJlc3NFbmdpbmUuY3JlYXRlRW5naW5lV2l0aFByb2ZpbGUocHJvZmlsZSk7XG5cdFx0XHRcdFx0dGhpcy5lbmdpbmUuZW5hYmxlQ2FtZXJhKHRoaXMuaXNTaGV4aWFuZylcblx0XHRcdFx0XHQvLyDliJvlu7rnvo7popznjq/looNcclxuXHRcdFx0XHRcdGF3YWl0IHRoaXMuZW5naW5lLnN0YXJ0RWZmZWN0c0VudigpO1xuXHRcdFx0XHRcdHRoaXMuZW5naW5lLmVuYWJsZUVmZmVjdHNCZWF1dHkodHJ1ZSk7XG5cdFx0XHRcdFx0Ly8g5Yib5bu6576O6aKc5Y+C5pWw5a+56LGhXG5cdFx0XHRcdFx0bGV0IGJlYXV0eVBhcmFtID0ge307XG5cdFx0XHRcdFx0Ly8g576O55m944CB57qi5ram44CB56Oo55qu44CB6ZSQ5YyWXG5cdFx0XHRcdFx0YmVhdXR5UGFyYW0ud2hpdGVuSW50ZW5zaXR5ID0gdGhpcy51c2VySW5mby5yZXNlcnZlZDU7XG5cdFx0XHRcdFx0YmVhdXR5UGFyYW0ucm9zeUludGVuc2l0eSA9IHRoaXMudXNlckluZm8ucmVzZXJ2ZWQ2O1xuXHRcdFx0XHRcdGJlYXV0eVBhcmFtLnNtb290aEludGVuc2l0eSA9IHRoaXMudXNlckluZm8ucmVzZXJ2ZWQ3O1xuXHRcdFx0XHRcdGJlYXV0eVBhcmFtLnNoYXJwZW5JbnRlbnNpdHkgPSB0aGlzLnVzZXJJbmZvLnJlc2VydmVkODtcblx0XHRcdFx0XHQvLyDorr7nva7nvo7popzlj4LmlbAgXG5cdFx0XHRcdFx0dGhpcy5lbmdpbmUuc2V0RWZmZWN0c0JlYXV0eVBhcmFtKGJlYXV0eVBhcmFtKTtcblx0XHRcdFx0XHR0aGlzLmVuZ2luZS51c2VGcm9udENhbWVyYSh0aGlzLmlzQ2FtZXJhKVxuXHRcdFx0XHRcdC8vIOS7peS4i+S4uuW4uOeUqOeahOaIv+mXtOebuOWFs+Wbnuiwg1xuXHRcdFx0XHRcdHRoaXMuZW5naW5lLm9uKCdyb29tU3RhdGVVcGRhdGUnLCAocm9vbUlELCBzdGF0ZSwgZXJyb3JDb2RlLCBleHRlbmRlZERhdGEpID0+IHtcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKFwicm9vbVN0YXRlVXBkYXRlXCIscm9vbUlEKVxuXHRcdFx0XHRcdCAgLy8g5oi/6Ze054q25oCB5pu05paw5Zue6LCD77yM55m75b2V5oi/6Ze05ZCO77yM5b2T5oi/6Ze06L+e5o6l54q25oCB5Y+R55Sf5Y+Y5pu077yI5aaC5Ye6546w5oi/6Ze05pat5byA77yM55m75b2V6K6k6K+B5aSx6LSl562J5oOF5Ya177yJ77yMU0RL5Lya6YCa6L+H6K+l5Zue6LCD6YCa55+lXG5cdFx0XHRcdFx0fSk7IDtcblx0XHRcdFx0XHRcblx0XHRcdFx0XHR0aGlzLmVuZ2luZS5vbigncm9vbVVzZXJVcGRhdGUnLCAocm9vbUlELCB1cGRhdGVUeXBlLCB1c2VyTGlzdCkgPT4ge1xuXHRcdFx0XHRcdCAgLy8g55So5oi354q25oCB5pu05paw77yM55m75b2V5oi/6Ze05ZCO77yM5b2T5oi/6Ze05YaF5pyJ55So5oi35paw5aKe5oiW5Yig6Zmk5pe277yMU0RL5Lya6YCa6L+H6K+l5Zue6LCD6YCa55+lXG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhcInJvb21Vc2VyVXBkYXRlXCIscm9vbUlELHVwZGF0ZVR5cGUsdXNlckxpc3QpXG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0dGhpcy5lbmdpbmUub24oJ3BsYXllclN0YXRlVXBkYXRlJywgKHJvb21JRCwgdXBkYXRlVHlwZSwgc3RyZWFtTGlzdCkgPT4ge1xuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coXCJwbGF5ZXJTdGF0ZVVwZGF0ZVwiLHJvb21JRClcblx0XHRcdFx0XHQgIC8vIOiwg+eUqOaLiea1geaOpeWPo+aIkOWKn+WQju+8jOW9k+aLiea1geWZqOeKtuaAgeWPkeeUn+WPmOabtO+8jOWmguWHuueOsOe9kee7nOS4reaWreWvvOiHtOaOqOa1geW8guW4uOetieaDheWGte+8jFNES+WcqOmHjeivleaLiea1geeahOWQjOaXtu+8jOS8mumAmui/h+ivpeWbnuiwg+mAmuefpVxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdHRoaXMuZW5naW5lLm9uKCdyb29tU3RyZWFtVXBkYXRlJywgKHJvb21JRCwgdXBkYXRlVHlwZSwgc3RyZWFtTGlzdCkgPT4ge1xuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coXCJyb29tU3RyZWFtVXBkYXRlXCIsdXBkYXRlVHlwZSxzdHJlYW1MaXN0KVxuXHRcdFx0XHRcdCAgLy8g5rWB54q25oCB5pu05paw77yM55m75b2V5oi/6Ze05ZCO77yM5b2T5oi/6Ze05YaF5pyJ55So5oi35paw5o6o6YCB5oiW5Yig6Zmk6Z+z6KeG6aKR5rWB5pe277yMU0RL5Lya6YCa6L+H6K+l5Zue6LCD6YCa55+lXG5cdFx0XHRcdFx0XHQvLyB0aGlzLnNlbGxlclN0cmVhbUlkID0gc3RyZWFtTGlzdFswXS5zdHJlYW1JRDtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHQvLyDosIPnlKjmjqjmtYHmjqXlj6PmiJDlip/lkI7vvIzlvZPmjqjmtYHlmajnirbmgIHlj5HnlJ/lj5jmm7TvvIzlpoLlh7rnjrDnvZHnu5zkuK3mlq3lr7zoh7TmjqjmtYHlvILluLjnrYnmg4XlhrXvvIxTREvlnKjph43or5XmjqjmtYHnmoTlkIzml7bvvIzkvJrpgJrov4for6Xlm57osIPpgJrnn6Vcblx0XHRcdFx0XHR0aGF0LmVuZ2luZS5vbigncHVibGlzaGVyU3RhdGVVcGRhdGUnLCAoc3RyZWFtSUQsIHN0YXRlLCBlcnJvckNvZGUsIGV4dGVuZGVkRGF0YSkgPT4ge1xuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coXCJwdWJsaXNoZXJTdGF0ZVVwZGF0ZVwiLHN0cmVhbUlEKVxyXG5cdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdC8vIOeZu+W9leaIv+mXtFxuXHRcdFx0XHRcdC8vIOW8gOWni+eZu+W9leaIv+mXtFxuXHRcdFx0XHRcdHRoaXMuZW5naW5lLmxvZ2luUm9vbShyZXMuZGF0YS5yb29tSWQsIFxuXHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHQndXNlcklEJzogdW5pLmdldFN0b3JhZ2VTeW5jKFwidXNlckluZm9cIikuaWQsIFxuXHRcdFx0XHRcdFx0XHQndXNlck5hbWUnOiB1bmkuZ2V0U3RvcmFnZVN5bmMoXCJ1c2VySW5mb1wiKS5uaWNrbmFtZVxuXHRcdFx0XHRcdFx0fSwgXG5cdFx0XHRcdFx0XHRyb29tQ29uZmlnXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0XHQvLyB0aGlzLnZpZXdNb2RlSW5kZXggPSBaZWdvVmlld01vZGUuQXNwZWN0Rml0O1xuXHRcdFx0XHRcdHRoaXMuZW5naW5lLnN0YXJ0UHJldmlldygpO1xuXHRcdFx0XHRcdHRoaXMuZW5naW5lLnN0YXJ0UHVibGlzaGluZ1N0cmVhbSh0aGlzLnBsYXlTdHJlYW1JZCk7XG5cdFx0XHRcdFx0dGhpcy5pc0ppZXNob3UgPSB0cnVlO1xuXHRcdFx0XHRcdGNsZWFySW50ZXJ2YWwodGltZXIpO1xuXHRcdFx0XHRcdHRoYXQudGl0bGUgPSB0aGF0LmZvcm1hdEZ1bih0aGF0LmNvdW50KVxuXHRcdFx0XHRcdHRpbWVyID0gc2V0SW50ZXJ2YWwoKCk9PntcclxuXHRcdFx0XHRcdFx0aWYodW5pLmdldFN0b3JhZ2VTeW5jKFwidXNlckluZm9cIikuc2V4ID09IDEpe1xyXG5cdFx0XHRcdFx0XHRcdGlmKHRoYXQudHlwZSA9PSAxKXtcclxuXHRcdFx0XHRcdFx0XHRcdGlmKHRoYXQuYmFsYW5jZUluZm8udm9pY2VDb2lucyo2MCA8IHRoYXQuY291bnQpe1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRjbGVhckludGVydmFsKHRpbWVyKTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0dGhhdC50b0d1YWR1YW4oKTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0dGhhdC50aXRsZSA9IHRoYXQuZm9ybWF0RnVuKHRoYXQuY291bnQpO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gO1xyXG5cdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdH1lbHNlIGlmKHRoYXQudHlwZSA9PSAyKXtcclxuXHRcdFx0XHRcdFx0XHRcdGlmKHRoYXQuYmFsYW5jZUluZm8udmlkZW9Db2lucyo2MCA8IHRoYXQuY291bnQpe1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRjbGVhckludGVydmFsKHRpbWVyKTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0dGhhdC50b0d1YWR1YW4oKTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0dGhhdC50aXRsZSA9IHRoYXQuZm9ybWF0RnVuKHRoYXQuY291bnQpO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gO1xyXG5cdFx0XHRcdFx0XHRcdFx0fVx0XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR0aGF0LmNvdW50ICsrO1xuXHRcdFx0XHRcdFx0dGhhdC50aXRsZSA9IHRoYXQuZm9ybWF0RnVuKHRoYXQuY291bnQpO1xuXHRcdFx0XHRcdH0sMTAwMClcblx0XHRcdFx0XHRzZXRUaW1lb3V0KCgpPT57XG5cdFx0XHRcdFx0XHR0aGlzLnRvVHVpbGl1KClcblx0XHRcdFx0XHR9LDEwMClcblx0XHRcdFx0fVxuXHRcdFx0fSxcclxuXHRcdFx0Ly/mo4Dmn6XmrKHmlbBcclxuXHRcdFx0YXN5bmMgdXNlckJhbGFuY2UoKSB7XHJcblx0XHRcdFx0Y29uc3QgeyBjb2RlLCBkYXRhIH0gPSBhd2FpdCB0aGlzLiRhcGkudXNlckJhbGFuY2Uoe1xyXG5cdFx0XHRcdFx0dXNlcklkOiB1bmkuZ2V0U3RvcmFnZVN5bmMoXCJ1c2VySW5mb1wiKS5pZFxyXG5cdFx0XHRcdH0pIFxyXG5cdFx0XHRcdGlmKGNvZGUgPT0gMjAwKXtcclxuXHRcdFx0XHRcdHRoaXMuYmFsYW5jZUluZm8gPSBkYXRhXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHQvL+e7k+eulyB0eXBlOjEu6K+t6Z+zIDIu6KeG6aKRIDMu5paH5a2XIDTlm77niYcgNeekvOeJqTbmkK3orqpcclxuXHRcdFx0YXN5bmMgc29jaWFsQ29uc3VtcHRpb24odHlwZSkge1xyXG5cdFx0XHRcdGF3YWl0IHRoaXMuJGFwaS5zb2NpYWxDb25zdW1wdGlvbih7XHJcblx0XHRcdFx0XHR1c2VySWQ6IHVuaS5nZXRTdG9yYWdlU3luYyhcInVzZXJJbmZvXCIpLmlkLFxyXG5cdFx0XHRcdFx0c2VsbGVySWQ6IHRoaXMuaWQsXHJcblx0XHRcdFx0XHR0eXBlOiAodGhpcy50eXBlID09IDF8fCB0aGlzLnR5cGUgPT0gMyk/MToyLFxyXG5cdFx0XHRcdFx0ZHVyYXRpb246IHRoaXMuY291bnQrMVxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdFx0dGhpcy51c2VyQmFsYW5jZSgpO1xyXG5cdFx0XHR9LFxuXHRcdFx0Zm9ybWF0RnVuKG51bSl7XG5cdFx0XHRcdGxldCBzdHIgPSBcIlwiLGgsbSxzO1xuXHRcdFx0XHRoPU1hdGguZmxvb3IobnVtLzM2MDApO1xuXHRcdFx0XHRtPU1hdGguZmxvb3IoKG51bS1oKjM2MDApLzYwKTtcblx0XHRcdFx0cz0obnVtLWgqMzYwMC1tKjYwKTtcblx0XHRcdFx0c3RyID0gKGg8PTk/JzAnK2g6aCkrXCI6XCIrKG08PTk/JzAnK206bSkrXCI6XCIrKHM8PTk/JzAnK3M6cylcblx0XHRcdFx0cmV0dXJuIHN0cjtcblx0XHRcdH0sXG5cdFx0XHR0b1R1aWxpdSgpIHtcblx0XHRcdFx0Y29uc3QgdGhhdCA9IHRoaXM7XG5cdFx0XHRcdGNvbnNvbGUubG9nKFwidG9UdWlsaXVcIix0aGlzLnNlbGxlclN0cmVhbUlkKVxuXHRcdFx0XHR0aGF0LmVuZ2luZS5zdGFydFBsYXlpbmdTdHJlYW0odGhpcy5zZWxsZXJTdHJlYW1JZCk7XHJcblx0XHRcdFx0dGhhdC5pc09wZW5Tb2NrZXQgPSBmYWxzZTtcblx0XHRcdFx0WmVnb0V4cHJlc3NFbmdpbmUuaW5zdGFuY2UoKS5vbihcInBsYXllclN0YXRlVXBkYXRlXCIsIChzdHJlYW1JRCwgc3RhdGUsIGVycm9yQ29kZSwgZXh0ZW5kZWREYXRhKSA9PiB7XG5cdFx0XHRcdCAgICAvKiog6LCD55So5ouJ5rWB5o6l5Y+j5oiQ5Yqf5ZCO77yM5b2T5ouJ5rWB5Zmo54q25oCB5Y+R55Sf5Y+Y5pu077yM5aaC5Ye6546w572R57uc5Lit5pat5a+86Ie05o6o5rWB5byC5bi4562J5oOF5Ya177yMU0RL5Zyo6YeN6K+V5ouJ5rWB55qE5ZCM5pe277yM5Lya6YCa6L+H6K+l5Zue6LCD6YCa55+lICovXG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhcInBsYXllclN0YXRlVXBkYXRlXCIsc3RyZWFtSUQpXG5cdFx0XHRcdCB9KTtcblx0XHRcdH1cblx0XHR9LFxuXHRcdG9uQmFja1ByZXNzKCkge1xuXHRcdFx0aWYodGhpcy5pc0d1YWR1YW4pe1xuXHRcdFx0XHR0aGlzLnRvR3VhZHVhbigpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuPC9zY3JpcHQ+XG5cbjxzdHlsZSBsYW5nPVwic2Nzc1wiPlxuLnJvb217XHJcblx0YmFja2dyb3VuZC1jb2xvcjogIzAwMDtcblx0Ji1uYXZiYXJ7XG5cdFx0aGVpZ2h0OiA0NHB4O1xuXHRcdHBvc2l0aW9uOiBmaXhlZDtcblx0XHRsZWZ0OiAwO1xuXHRcdHRvcDogMDtcblx0XHR6LWluZGV4OiAxMjI7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRcdC5uYXZiYXJ7XG5cdFx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRcdFx0aGVpZ2h0OiA0NHB4O1xuXHRcdFx0bGluZS1oZWlnaHQ6IDQ0cHg7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRmb250LXNpemU6IDMwcHg7XG5cdFx0XHQudHh0e1xuXHRcdFx0XHRmb250LXNpemU6IDIwcHg7XG5cdFx0XHRcdGNvbG9yOiAjZmZmZmZmO1xuXHRcdFx0fVxuXHRcdFx0LnRpdGxle1xuXHRcdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0XHRcdH1cblx0XHRcdC5iYWNre1xuXHRcdFx0XHR3aWR0aDogNTBweDtcblx0XHRcdFx0aGVpZ2h0OiA0NHB4O1xuXHRcdFx0XHRwb3NpdGlvbjogZml4ZWQ7XG5cdFx0XHRcdGxlZnQ6IDA7XG5cdFx0XHRcdHotaW5kZXg6IDQ0O1xyXG5cdFx0XHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRcdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0XHRcdFx0LmltZ3tcblx0XHRcdFx0XHR3aWR0aDogMjBweDtcblx0XHRcdFx0XHRoZWlnaHQ6IDIwcHg7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblx0Ji1oZHtcblx0IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdCBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0IHotaW5kZXg6IDI7XG5cdC5zaGl0dXtcblx0XHR3aWR0aDogMzAwcnB4O1xuXHRcdGhlaWdodDogMzgwcnB4O1xuXHRcdGJvcmRlci1yYWRpdXM6IDEwcnB4O1xuXHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0cG9zaXRpb246IGZpeGVkO1xuXHRcdHJpZ2h0OiAyMHJweDtcblx0XHR0b3A6IDEyMHJweDtcblx0XHR6LWluZGV4OiAyMTI7XG5cdH1cbiB9XG4gJi1iZHtcclxuXHQgcG9zaXRpb246IHJlbGF0aXZlO1xuXHQgLnBpY3tcblx0XHQgd2lkdGg6IDEwMCU7XG5cdFx0IGhlaWdodDogMTAwJTtcblx0XHQgZGlzcGxheTogYmxvY2s7XG5cdCB9XHJcblx0IC5kaWFuLW9ue1xyXG5cdCBcdHdpZHRoOiA2NTBycHg7XHJcblx0IFx0bWluLWhlaWdodDogNjQ4cnB4O1xyXG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0bWFyZ2luLWxlZnQ6IDUwcnB4O1xyXG5cdFx0dG9wOiAyNTBycHg7XHJcblx0XHR6LWluZGV4OiAxO1xyXG5cdCBcdC50YWd7XHJcblx0IFx0XHR3aWR0aDogNjYwcnB4O1xyXG5cdCBcdFx0aGVpZ2h0OiAzMzBycHg7XHJcblx0IFx0XHRiYWNrZ3JvdW5kOiByZ2JhKDM1LCAzMiwgNDgsIDAuMzYpO1xyXG5cdCBcdFx0Ym9yZGVyLXJhZGl1czogMjBycHg7XHJcblx0IFx0XHRtYXJnaW46IDAgYXV0bztcclxuXHQgXHRcdHBhZGRpbmc6IDMwcnB4O1xyXG5cdCBcdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcclxuXHQgXHRcdHRleHQtYWxpZ246IGxlZnQ7XHJcblx0IFx0XHRtYXJnaW4tdG9wOiAzMHJweDtcclxuXHQgXHRcdC50aXRsZXN7XHJcblx0IFx0XHRcdC50e1xyXG5cdFx0XHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XHJcblx0XHRcdFx0XHRmb250LXNpemU6IDMwcnB4O1xyXG5cdFx0XHRcdFx0Y29sb3I6ICNGRkZGRkY7XHJcblx0XHRcdFx0fVxyXG5cdCBcdFx0fVxyXG5cdCBcdFx0LmRlc2Nze1xyXG5cdCBcdFx0XHRtYXJnaW4tdG9wOiAyMHJweDtcclxuXHQgXHRcdFx0LnR7XHJcblx0XHRcdFx0XHRmb250LXNpemU6IDI0cnB4O1xyXG5cdFx0XHRcdFx0Y29sb3I6ICNCOEI3QkM7XHJcblx0XHRcdFx0XHRsaW5lLWhlaWdodDogNDVycHg7XHJcblx0XHRcdFx0XHRmb250LXdlaWdodDogNDAwO1xyXG5cdFx0XHRcdH1cclxuXHQgXHRcdH1cclxuXHQgXHR9XHJcblx0IFx0LmluZm97XHJcblx0IFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0IFx0XHRvdmVyZmxvdzogaGlkZGVuO1xyXG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRcdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuXHQgXHRcdC5hdmF0YXJ7XHJcblx0IFx0XHRcdHdpZHRoOiAxODBycHg7XHJcblx0IFx0XHRcdGhlaWdodDogMTgwcnB4O1xyXG5cdCBcdFx0XHRib3JkZXItcmFkaXVzOiA1MCU7XHJcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XHJcblx0XHRcdFx0bWFyZ2luOiAwIGF1dG87XHJcblx0IFx0XHR9XHJcblx0IFx0XHQubmFtZXtcclxuXHQgXHRcdFx0Zm9udC13ZWlnaHQ6IDUwMDtcclxuXHQgXHRcdFx0bWFyZ2luLXRvcDogMTBycHg7XHJcblx0IFx0XHRcdHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcblx0IFx0XHRcdG92ZXJmbG93OiBoaWRkZW47XHJcblx0IFx0XHRcdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG5cdCBcdFx0XHRvdmVyZmxvdzogaGlkZGVuO1xyXG5cdCBcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdCBcdFx0XHRtYXJnaW4tdG9wOiAxMHJweDtcclxuXHRcdFx0XHQudHtcclxuXHRcdFx0XHRcdGZvbnQtc2l6ZTogMjhycHg7XHJcblx0XHRcdFx0XHRjb2xvcjogI0ZGRkZGRjtcclxuXHRcdFx0XHR9XHJcblx0IFx0XHR9XHJcblx0IFx0XHQuYnRue1xyXG5cdCBcdFx0XHR3aWR0aDogMTcwcnB4O1xyXG5cdCBcdFx0XHRsaW5lLWhlaWdodDogNTZycHg7XHJcblx0IFx0XHRcdGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgwZGVnLCAjRkY5MTI0LCAjQkQ0NzAwKTtcclxuXHQgXHRcdFx0Ym9yZGVyLXJhZGl1czogNTZycHg7XHJcblx0IFx0XHRcdFxyXG5cdCBcdFx0XHRtYXJnaW46IDAgYXV0bztcclxuXHQgXHRcdFx0bWFyZ2luLXRvcDogMjBycHg7XHJcblx0IFx0XHRcdC50e1xyXG5cdFx0XHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XHJcblx0IFx0XHRcdFx0Zm9udC1zaXplOiAzMHJweDtcclxuXHQgXHRcdFx0XHRjb2xvcjogI0ZGRkZGRjtcclxuXHQgXHRcdFx0fVxyXG5cdCBcdFx0fVxyXG5cdCBcdFx0LnR4dHtcclxuXHQgXHRcdFx0XHJcblx0IFx0XHRcdG1hcmdpbi10b3A6IDIwcnB4O1xyXG5cdCBcdFx0XHRvcGFjaXR5OiAwLjM7XHJcblx0XHRcdFx0LnR7XHJcblx0XHRcdFx0XHRmb250LXdlaWdodDogNTAwO1xyXG5cdFx0XHRcdFx0Zm9udC1zaXplOiAyNnJweDtcclxuXHRcdFx0XHRcdGNvbG9yOiAjRkZGRkZGO1xyXG5cdFx0XHRcdH1cclxuXHQgXHRcdH1cclxuXHQgXHR9XHJcblx0IH1cbiB9XG4gJi1mZHtcblx0aGVpZ2h0OiAyMjBycHg7XG5cdHBvc2l0aW9uOiBmaXhlZDtcblx0bGVmdDogMDtcblx0Ym90dG9tOiAyMDBycHg7XG5cdHotaW5kZXg6IDEyMjtcblx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0Lml0ZW17XG5cdFx0ZmxleDogMTtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0Zm9udC1zaXplOiAzMHJweDtcblx0XHRmb250LXdlaWdodDogNDAwO1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHQudHh0e1xuXHRcdFx0bWFyZ2luLXRvcDogMjBycHg7XG5cdFx0XHQudHtcblx0XHRcdFx0Zm9udC1zaXplOiAzMHJweDtcblx0XHRcdFx0Y29sb3I6ICNmZmZmZmY7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdC5waWN7XG5cdFx0XHR3aWR0aDogMTMwcnB4O1xuXHRcdFx0aGVpZ2h0OiAxMzBycHg7XG5cdFx0XHRib3JkZXItcmFkaXVzOiA1MCU7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHRcdFx0bWFyZ2luOiAwIGF1dG87XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAxMHJweDtcblx0XHRcdC5waW1ne1xuXHRcdFx0XHR3aWR0aDogMTMwcnB4O1xuXHRcdFx0XHRoZWlnaHQ6IDEzMHJweDtcblx0XHRcdH1cblx0XHRcdFxuXHRcdH1cblx0fVxufVxuXHQmLWZkMXtcbiBcdFx0aGVpZ2h0OiAyMjBycHg7XG4gXHRcdHBvc2l0aW9uOiBmaXhlZDtcbiBcdFx0bGVmdDogMDtcbiBcdFx0Ym90dG9tOiA0MHJweDtcbiBcdFx0ei1pbmRleDogNDQ7XG4gXHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdFx0ZmxleC13cmFwOiB3cmFwO1xuXHRcdC5pdGVtc3tcblx0XHRcdGZsZXg6IDE7XG5cdFx0XHRtYXJnaW4tdG9wOiA3MHJweDtcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdFx0LnBpY3tcblx0XHRcdFx0d2lkdGg6IDEzMHJweDtcblx0XHRcdFx0aGVpZ2h0OiAxMzBycHg7XG5cdFx0XHRcdGJvcmRlci1yYWRpdXM6IDUwJTtcblx0XHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRcdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdFx0XHRcdG1hcmdpbjogMCBhdXRvO1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiAxMHJweDtcblx0XHRcdFx0LnBpbWd7XG5cdFx0XHRcdFx0d2lkdGg6IDEzMHJweDtcblx0XHRcdFx0XHRoZWlnaHQ6IDEzMHJweDtcblx0XHRcdFx0fVxuXHRcdFx0XHRcblx0XHRcdH1cblx0XHRcdC5vZmZ7XG5cdFx0XHRcdHdpZHRoOiA0OXJweDtcblx0XHRcdFx0aGVpZ2h0OiA0NHJweDtcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHRyaWdodDogMjAwcnB4O1xuXHRcdFx0XHR6LWluZGV4OiAyO1xuXHRcdFx0XHR0b3A6IDUwcnB4O1xuXHRcdFx0fVxuXHRcdH1cbiBcdH1cbn1cbjwvc3R5bGU+XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///31\n"); +eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 11);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ 12));\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ 15));\nvar _index = _interopRequireDefault(__webpack_require__(/*! @/api/index.js */ 17));\nvar _permission = _interopRequireDefault(__webpack_require__(/*! @/js_sdk/wa-permission/permission.js */ 32));\nvar _ZegoExpressEngine = _interopRequireDefault(__webpack_require__(/*! @/uni_modules/zego-ZegoExpressUniApp-JS/components/zego-ZegoExpressUniApp-JS/lib/ZegoExpressEngine */ 33));\nvar _ZegoRemoteView = _interopRequireDefault(__webpack_require__(/*! @/uni_modules/zego-ZegoExpressUniApp-JS/components/zego-ZegoExpressUniApp-JS/zego-view/ZegoRemoteView */ 47));\nvar _ZegoLocalView = _interopRequireDefault(__webpack_require__(/*! @/uni_modules/zego-ZegoExpressUniApp-JS/components/zego-ZegoExpressUniApp-JS/zego-view/ZegoLocalView */ 52));\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\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 timer = null;\nvar roomConfig = {};\nroomConfig.isUserStatusNotify = true;\nvar profile = {\n appID: 267111980,\n appSign: 'afcaa90a7750ee556e450ca62287c5f9a362e9ed711789717cda0e18f088858e',\n scenario: 0\n};\nvar _default = {\n components: {\n ZegoLocalView: _ZegoLocalView.default,\n ZegoRemoteView: _ZegoRemoteView.default\n },\n data: function data() {\n return {\n isOpenSocket: true,\n isYuyin: true,\n isGuaduan: true,\n isYangshengqi: true,\n isShexiang: true,\n isJieshou: true,\n isToggle: true,\n winWidth: 0,\n winHeight: 0,\n userInfo: {},\n playStreamId: \"\",\n title: \"\",\n count: 0,\n balanceInfo: {},\n userOtherInfo: {},\n background: {\n // 导航栏背景图\n background: 'url(https://api.lyiyuan.cn/profile/upload/static/yuyin-bg.png) center top no-repeat',\n // 还可以设置背景图size属性\n backgroundSize: '100 auto'\n },\n engine: null,\n roomId: \"\",\n type: 2,\n statusBarHeight: 0,\n sellerStreamId: \"\",\n viewModeIndex: 0,\n isCamera: true,\n isStart: true,\n toIsBack: true\n };\n },\n onLoad: function onLoad(o) {\n __f__(\"log\", o, \" at pages/pipei/shipin/detail.nvue:202\");\n this.id = o.id;\n this.type = o.type;\n this.title = this.type == 1 || this.type == 3 ? \"语音通话\" : \"视频通话\";\n this.isStart = this.type == 3 || this.type == 4 ? o.fid ? false : true : true;\n this.isShexiang = this.type == 2 || this.type == 4 ? true : false;\n this.isJieshou = o.type <= 2 ? true : false;\n this.statusBarHeight = uni.getSystemInfoSync().statusBarHeight;\n this.winWidth = uni.getSystemInfoSync().windowWidth;\n this.winHeight = uni.getSystemInfoSync().windowHeight;\n },\n onReady: function onReady() {\n var _this = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {\n var that, res, res1;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n that = _this;\n uni.$on(\"watchEvent\", function (obj) {\n __f__(\"log\", obj, \" at pages/pipei/shipin/detail.nvue:216\");\n if (obj.topic == 'message') {\n if (obj.type == 12) {\n if (uni.getStorageSync(\"userInfo\").id == obj.sellerId) {\n that.isGuaduan = false;\n that.toGuaduan(1);\n }\n }\n }\n });\n uni.$on(\"toJieshouYinship\", function (obj) {\n __f__(\"log\", \"toJieshouYinship\", obj, \" at pages/pipei/shipin/detail.nvue:228\");\n if (obj.topic == 'message') {\n if (obj.type == 20) {\n if (uni.getStorageSync(\"userInfo\").id == obj.sellerId) {\n that.toJieshou();\n _this.isOpenSocket = false;\n } else {\n _this.isOpenSocket = false;\n }\n }\n }\n });\n if (!(uni.getSystemInfoSync().platform === \"android\")) {\n _context.next = 13;\n break;\n }\n _context.next = 6;\n return _permission.default.requestAndroidPermission(\"android.permission.RECORD_AUDIO\");\n case 6:\n res = _context.sent;\n _context.next = 9;\n return _permission.default.requestAndroidPermission(\"android.permission.CAMERA\");\n case 9:\n res1 = _context.sent;\n if (res == 1 && res1 == 1) {\n if (_this.type <= 2) {\n _this.toPermission();\n } else {\n _this.getUserInfo(1);\n }\n }\n _this.getOtherUserInfo();\n return _context.abrupt(\"return\");\n case 13:\n if (_this.type <= 2) {\n _this.toPermission();\n } else {\n _this.getUserInfo(1);\n }\n _this.getOtherUserInfo();\n case 15:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }))();\n },\n methods: {\n qiehuan: function qiehuan() {\n this.isToggle = !this.isToggle;\n __f__(\"log\", this.isToggle, \" at pages/pipei/shipin/detail.nvue:270\");\n },\n toJieshou1: function toJieshou1() {\n uni.$emit(\"jieshouYinship\", {\n \"userId\": uni.getStorageSync(\"userInfo\").id,\n sellerId: this.id,\n type: 20,\n \"topic\": \"message\"\n });\n if (this.isStart == false) {\n this.toJieshou();\n }\n },\n onBack: function onBack() {\n var that = this;\n uni.showModal({\n title: \"温馨提示\",\n content: \"是否要退出房间?\",\n confirmColor: \"#000000\",\n success: function success(res) {\n if (res.confirm) {\n that.isGuaduan = false;\n that.toGuaduan();\n }\n }\n });\n },\n toGuaduan: function toGuaduan(type) {\n var _this$engine, _this$engine2, _this$engine3, _this$engine4;\n if (type != 1) {\n uni.$emit(\"duanYinship\", {\n \"userId\": uni.getStorageSync(\"userInfo\").id,\n sellerId: this.id,\n type: 12,\n \"topic\": \"message\"\n });\n }\n if (type == 1) {\n uni.$emit(\"showToast\", this.isJieshou);\n }\n this.socialConsumption();\n clearInterval(timer);\n if (this.toIsBack == false) {\n return;\n }\n this.toIsBack = false;\n this.isGuaduan = false;\n /** 停止推流 */\n (_this$engine = this.engine) === null || _this$engine === void 0 ? void 0 : _this$engine.stopPublishingStream();\n /** 停止本地预览 */\n (_this$engine2 = this.engine) === null || _this$engine2 === void 0 ? void 0 : _this$engine2.stopPreview();\n /** 停止拉流 */\n (_this$engine3 = this.engine) === null || _this$engine3 === void 0 ? void 0 : _this$engine3.stopPlayingStream(this.sellerStreamId);\n /** 退出房间 */\n (_this$engine4 = this.engine) === null || _this$engine4 === void 0 ? void 0 : _this$engine4.logoutRoom(this.roomId);\n /** 销毁引擎 */\n _ZegoExpressEngine.default.destroyEngine();\n uni.$off(\"watchEvent\");\n uni.$off(\"toJieshouYinship\");\n uni.navigateBack({\n delta: 1\n });\n },\n toJieshou: function toJieshou() {\n this.toPermission();\n this.$forceUpdate();\n },\n toggleYuyin: function toggleYuyin() {\n this.isYuyin = !this.isYuyin;\n this.engine.muteMicrophone(!this.isYuyin);\n },\n toggleShexiang: function toggleShexiang() {\n this.isShexiang = !this.isShexiang;\n this.engine.enableCamera(this.isShexiang);\n },\n toggleHuamian: function toggleHuamian() {\n this.isCamera = !this.isCamera;\n this.engine.useFrontCamera(this.isCamera);\n },\n toggleYangsheng: function toggleYangsheng() {\n this.isYangshengqi = !this.isYangshengqi;\n this.engine.setAudioRouteToSpeaker(this.isCamera);\n },\n toPermission: function toPermission() {\n var _this2 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {\n return _regenerator.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _this2.getUserInfo();\n case 1:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }))();\n },\n //查询个人信息\n getUserInfo: function getUserInfo(type) {\n var _this3 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {\n var _yield$api$findUserIn, code, data, msg;\n return _regenerator.default.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n _context3.next = 2;\n return _index.default.findUserInfo({\n userId: uni.getStorageSync(\"userInfo\").id\n });\n case 2:\n _yield$api$findUserIn = _context3.sent;\n code = _yield$api$findUserIn.code;\n data = _yield$api$findUserIn.data;\n msg = _yield$api$findUserIn.msg;\n if (code == 200) {\n _this3.userInfo = data;\n if (type != 1) {\n _this3.userBalance();\n _this3.loginRoom();\n }\n } else {\n uni.showToast({\n title: msg,\n position: \"bottom\",\n icon: \"none\"\n });\n }\n case 7:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3);\n }))();\n },\n //查询taren个人信息\n getOtherUserInfo: function getOtherUserInfo(type) {\n var _this4 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {\n var _yield$api$findOtherU, code, data, msg;\n return _regenerator.default.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n _context4.next = 2;\n return _index.default.findOtherUserInfo({\n userId: uni.getStorageSync(\"userInfo\").id,\n sellerId: _this4.id\n });\n case 2:\n _yield$api$findOtherU = _context4.sent;\n code = _yield$api$findOtherU.code;\n data = _yield$api$findOtherU.data;\n msg = _yield$api$findOtherU.msg;\n if (code == 200) {\n __f__(\"log\", \"getOtherUserInfo\", data, \" at pages/pipei/shipin/detail.nvue:377\");\n _this4.userOtherInfo = data;\n } else {\n uni.showToast({\n title: msg,\n position: \"bottom\",\n icon: \"none\"\n });\n }\n case 7:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4);\n }))();\n },\n loginRoom: function loginRoom() {\n var _this5 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5() {\n var that, res, beautyParam;\n return _regenerator.default.wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n that = _this5;\n _context5.next = 3;\n return _index.default.findZegoToken({\n userId: uni.getStorageSync(\"userInfo\").id,\n sellerId: _this5.id\n });\n case 3:\n res = _context5.sent;\n if (!(res.code == 200)) {\n _context5.next = 38;\n break;\n }\n // 获取token传入\n roomConfig.token = res.data.token;\n _this5.playStreamId = res.data.userStreamId;\n _this5.sellerStreamId = res.data.sellerStreamId;\n _this5.roomId = res.data.roomId;\n __f__(\"log\", \"loginRoom11\", res.data, \" at pages/pipei/shipin/detail.nvue:399\");\n _context5.next = 12;\n return _ZegoExpressEngine.default.createEngineWithProfile(profile);\n case 12:\n _this5.engine = _context5.sent;\n _this5.engine.enableCamera(_this5.isShexiang);\n // 创建美颜环境\n _context5.next = 16;\n return _this5.engine.startEffectsEnv();\n case 16:\n _this5.engine.enableEffectsBeauty(true);\n // 创建美颜参数对象\n beautyParam = {}; // 美白、红润、磨皮、锐化\n beautyParam.whitenIntensity = _this5.userInfo.reserved5;\n beautyParam.rosyIntensity = _this5.userInfo.reserved6;\n beautyParam.smoothIntensity = _this5.userInfo.reserved7;\n beautyParam.sharpenIntensity = _this5.userInfo.reserved8;\n // 设置美颜参数 \n _this5.engine.setEffectsBeautyParam(beautyParam);\n _this5.engine.useFrontCamera(_this5.isCamera);\n // 以下为常用的房间相关回调\n _this5.engine.on('roomStateUpdate', function (roomID, state, errorCode, extendedData) {\n __f__(\"log\", \"roomStateUpdate\", roomID, \" at pages/pipei/shipin/detail.nvue:417\");\n // 房间状态更新回调,登录房间后,当房间连接状态发生变更(如出现房间断开,登录认证失败等情况),SDK会通过该回调通知\n });\n ;\n _this5.engine.on('roomUserUpdate', function (roomID, updateType, userList) {\n // 用户状态更新,登录房间后,当房间内有用户新增或删除时,SDK会通过该回调通知\n __f__(\"log\", \"roomUserUpdate\", roomID, updateType, userList, \" at pages/pipei/shipin/detail.nvue:423\");\n });\n _this5.engine.on('playerStateUpdate', function (roomID, updateType, streamList) {\n __f__(\"log\", \"playerStateUpdate\", roomID, \" at pages/pipei/shipin/detail.nvue:427\");\n // 调用拉流接口成功后,当拉流器状态发生变更,如出现网络中断导致推流异常等情况,SDK在重试拉流的同时,会通过该回调通知\n });\n\n _this5.engine.on('roomStreamUpdate', function (roomID, updateType, streamList) {\n __f__(\"log\", \"roomStreamUpdate\", updateType, streamList, \" at pages/pipei/shipin/detail.nvue:431\");\n // 流状态更新,登录房间后,当房间内有用户新推送或删除音视频流时,SDK会通过该回调通知\n // this.sellerStreamId = streamList[0].streamID;\n });\n // 调用推流接口成功后,当推流器状态发生变更,如出现网络中断导致推流异常等情况,SDK在重试推流的同时,会通过该回调通知\n that.engine.on('publisherStateUpdate', function (streamID, state, errorCode, extendedData) {\n __f__(\"log\", \"publisherStateUpdate\", streamID, \" at pages/pipei/shipin/detail.nvue:437\");\n });\n // 登录房间\n // 开始登录房间\n _this5.engine.loginRoom(res.data.roomId, {\n 'userID': uni.getStorageSync(\"userInfo\").id,\n 'userName': uni.getStorageSync(\"userInfo\").nickname\n }, roomConfig);\n // this.viewModeIndex = ZegoViewMode.AspectFit;\n _this5.engine.startPreview();\n _this5.engine.startPublishingStream(_this5.playStreamId);\n _this5.isJieshou = true;\n clearInterval(timer);\n that.title = that.formatFun(that.count);\n timer = setInterval(function () {\n if (uni.getStorageSync(\"userInfo\").sex == 1) {\n if (that.type == 1) {\n if (that.balanceInfo.voiceCoins * 60 < that.count) {\n clearInterval(timer);\n that.toGuaduan();\n that.title = that.formatFun(that.count);\n return;\n }\n } else if (that.type == 2) {\n if (that.balanceInfo.videoCoins * 60 < that.count) {\n clearInterval(timer);\n that.toGuaduan();\n that.title = that.formatFun(that.count);\n return;\n }\n }\n }\n that.count++;\n that.title = that.formatFun(that.count);\n }, 1000);\n setTimeout(function () {\n _this5.toTuiliu();\n }, 100);\n case 38:\n case \"end\":\n return _context5.stop();\n }\n }\n }, _callee5);\n }))();\n },\n //检查次数\n userBalance: function userBalance() {\n var _this6 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6() {\n var _yield$_this6$$api$us, code, data;\n return _regenerator.default.wrap(function _callee6$(_context6) {\n while (1) {\n switch (_context6.prev = _context6.next) {\n case 0:\n _context6.next = 2;\n return _this6.$api.userBalance({\n userId: uni.getStorageSync(\"userInfo\").id\n });\n case 2:\n _yield$_this6$$api$us = _context6.sent;\n code = _yield$_this6$$api$us.code;\n data = _yield$_this6$$api$us.data;\n if (code == 200) {\n _this6.balanceInfo = data;\n }\n case 6:\n case \"end\":\n return _context6.stop();\n }\n }\n }, _callee6);\n }))();\n },\n //结算 type:1.语音 2.视频 3.文字 4图片 5礼物6搭讪\n socialConsumption: function socialConsumption(type) {\n var _this7 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee7() {\n return _regenerator.default.wrap(function _callee7$(_context7) {\n while (1) {\n switch (_context7.prev = _context7.next) {\n case 0:\n _context7.next = 2;\n return _this7.$api.socialConsumption({\n userId: uni.getStorageSync(\"userInfo\").id,\n sellerId: _this7.id,\n type: _this7.type == 1 || _this7.type == 3 ? 1 : 2,\n duration: _this7.count + 1\n });\n case 2:\n _this7.userBalance();\n case 3:\n case \"end\":\n return _context7.stop();\n }\n }\n }, _callee7);\n }))();\n },\n formatFun: function formatFun(num) {\n var str = \"\",\n h,\n m,\n s;\n h = Math.floor(num / 3600);\n m = Math.floor((num - h * 3600) / 60);\n s = num - h * 3600 - m * 60;\n str = (h <= 9 ? '0' + h : h) + \":\" + (m <= 9 ? '0' + m : m) + \":\" + (s <= 9 ? '0' + s : s);\n return str;\n },\n toTuiliu: function toTuiliu() {\n var that = this;\n __f__(\"log\", \"toTuiliu\", this.sellerStreamId, \" at pages/pipei/shipin/detail.nvue:511\");\n that.engine.startPlayingStream(this.sellerStreamId);\n that.isOpenSocket = false;\n _ZegoExpressEngine.default.instance().on(\"playerStateUpdate\", function (streamID, state, errorCode, extendedData) {\n /** 调用拉流接口成功后,当拉流器状态发生变更,如出现网络中断导致推流异常等情况,SDK在重试拉流的同时,会通过该回调通知 */\n __f__(\"log\", \"playerStateUpdate\", streamID, \" at pages/pipei/shipin/detail.nvue:516\");\n });\n }\n },\n onBackPress: function onBackPress() {\n if (this.isGuaduan) {\n this.toGuaduan();\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 */ 10)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvcGlwZWkvc2hpcGluL2RldGFpbC5udnVlIl0sIm5hbWVzIjpbInJvb21Db25maWciLCJhcHBJRCIsImFwcFNpZ24iLCJzY2VuYXJpbyIsImNvbXBvbmVudHMiLCJaZWdvTG9jYWxWaWV3IiwiWmVnb1JlbW90ZVZpZXciLCJkYXRhIiwiaXNPcGVuU29ja2V0IiwiaXNZdXlpbiIsImlzR3VhZHVhbiIsImlzWWFuZ3NoZW5ncWkiLCJpc1NoZXhpYW5nIiwiaXNKaWVzaG91IiwiaXNUb2dnbGUiLCJ3aW5XaWR0aCIsIndpbkhlaWdodCIsInVzZXJJbmZvIiwicGxheVN0cmVhbUlkIiwidGl0bGUiLCJjb3VudCIsImJhbGFuY2VJbmZvIiwidXNlck90aGVySW5mbyIsImJhY2tncm91bmQiLCJiYWNrZ3JvdW5kU2l6ZSIsImVuZ2luZSIsInJvb21JZCIsInR5cGUiLCJzdGF0dXNCYXJIZWlnaHQiLCJzZWxsZXJTdHJlYW1JZCIsInZpZXdNb2RlSW5kZXgiLCJpc0NhbWVyYSIsImlzU3RhcnQiLCJ0b0lzQmFjayIsIm9uTG9hZCIsIm9uUmVhZHkiLCJ0aGF0IiwidW5pIiwicGVybWlzaW9uIiwicmVzIiwicmVzMSIsIm1ldGhvZHMiLCJxaWVodWFuIiwidG9KaWVzaG91MSIsInNlbGxlcklkIiwib25CYWNrIiwiY29udGVudCIsImNvbmZpcm1Db2xvciIsInN1Y2Nlc3MiLCJ0b0d1YWR1YW4iLCJjbGVhckludGVydmFsIiwiWmVnb0V4cHJlc3NFbmdpbmUiLCJkZWx0YSIsInRvSmllc2hvdSIsInRvZ2dsZVl1eWluIiwidG9nZ2xlU2hleGlhbmciLCJ0b2dnbGVIdWFtaWFuIiwidG9nZ2xlWWFuZ3NoZW5nIiwidG9QZXJtaXNzaW9uIiwiZ2V0VXNlckluZm8iLCJhcGkiLCJ1c2VySWQiLCJjb2RlIiwibXNnIiwicG9zaXRpb24iLCJpY29uIiwiZ2V0T3RoZXJVc2VySW5mbyIsImxvZ2luUm9vbSIsImJlYXV0eVBhcmFtIiwidGltZXIiLCJzZXRUaW1lb3V0IiwidXNlckJhbGFuY2UiLCJzb2NpYWxDb25zdW1wdGlvbiIsImR1cmF0aW9uIiwiZm9ybWF0RnVuIiwiaCIsIm0iLCJzIiwic3RyIiwidG9UdWlsaXUiLCJvbkJhY2tQcmVzcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBb0pBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFOQTtBQU9BO0FBQ0FBO0FBQ0E7RUFDQUM7RUFDQUM7RUFDQUM7QUFDQTtBQUFBLGVBQ0E7RUFDQUM7SUFDQUM7SUFDQUM7RUFDQTtFQUNBQztJQUNBO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO1FBQ0E7UUFDQUE7UUFDQTtRQUNBQztNQUNBO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO0lBQ0E7RUFDQTtFQUNBQztJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0VBQ0E7RUFDQUM7SUFBQTtJQUFBO01BQUE7TUFBQTtRQUFBO1VBQUE7WUFBQTtjQUNBQztjQUNBQztnQkFDQTtnQkFDQTtrQkFDQTtvQkFDQTtzQkFDQUQ7c0JBQ0FBO29CQUNBO2tCQUNBO2dCQUNBO2NBQ0E7Y0FFQUM7Z0JBQ0E7Z0JBQ0E7a0JBQ0E7b0JBQ0E7c0JBQ0FEO3NCQUNBO29CQUNBO3NCQUNBO29CQUNBO2tCQUNBO2dCQUNBO2NBQ0E7Y0FBQSxNQUVBQztnQkFBQTtnQkFBQTtjQUFBO2NBQUE7Y0FBQSxPQUNBQyw2Q0FDQSxrQ0FDQTtZQUFBO2NB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O3dCQUNBZDt3QkFDQUE7d0JBQ0E7c0JBQ0E7b0JBQ0E7a0JBQ0E7a0JBQ0FBO2tCQUNBQTtnQkFDQTtnQkFDQWtDO2tCQUNBO2dCQUNBO2NBQUE7Y0FBQTtnQkFBQTtZQUFBO1VBQUE7UUFBQTtNQUFBO0lBRUE7SUFDQTtJQUNBQztNQUFBO01BQUE7UUFBQTtRQUFBO1VBQUE7WUFBQTtjQUFBO2dCQUFBO2dCQUFBLE9BQ0E7a0JBQ0FWO2dCQUNBO2NBQUE7Z0JBQUE7Z0JBRkFDO2dCQUFBdkQ7Z0JBR0E7a0JBQ0E7Z0JBQ0E7Y0FBQTtjQUFBO2dCQUFBO1lBQUE7VUFBQTtRQUFBO01BQUE7SUFDQTtJQUNBO0lBQ0FpRTtNQUFBO01BQUE7UUFBQTtVQUFBO1lBQUE7Y0FBQTtnQkFBQTtnQkFBQSxPQUNBO2tCQUNBWDtrQkFDQWpCO2tCQUNBakI7a0JBQ0E4QztnQkFDQTtjQUFBO2dCQUNBO2NBQUE7Y0FBQTtnQkFBQTtZQUFBO1VBQUE7UUFBQTtNQUFBO0lBQ0E7SUFDQUM7TUFDQTtRQUFBQztRQUFBQztRQUFBQztNQUNBRjtNQUNBQztNQUNBQztNQUNBQztNQUNBO0lBQ0E7SUFDQUM7TUFDQTtNQUNBO01BQ0EzQztNQUNBQTtNQUNBZTtRQUNBO1FBQ0E7TUFDQTtJQUNBO0VBQ0E7RUFDQTZCO0lBQ0E7TUFDQTtJQUNBO0VBQ0E7QUFDQTtBQUFBLDJCIiwiZmlsZSI6IjMxLmpzIiwic291cmNlc0NvbnRlbnQiOlsiPHRlbXBsYXRlPlxuXHQ8dmlldyBjbGFzcz1cInJvb21cIiA6c3R5bGU9XCJ7J3dpZHRoJzogd2luV2lkdGgrJ3B4JywgJ2hlaWdodCc6IHdpbkhlaWdodCsncHgnfVwiPlxuXHRcdDx2aWV3IGNsYXNzPVwicm9vbS1uYXZiYXJcIiA6c3R5bGU9XCJ7J3dpZHRoJzogd2luV2lkdGgrJ3B4JywgJ2hlaWdodCc6IChzdGF0dXNCYXJIZWlnaHQrNDQpKydweCd9XCI+XG5cdFx0XHQ8dmlldyBjbGFzcz1cIm5hdmJhclwiIDpzdHlsZT1cInsnd2lkdGgnOiB3aW5XaWR0aCsncHgnLCAnbWFyZ2luLXRvcCc6IChzdGF0dXNCYXJIZWlnaHQpKydweCd9XCI+XG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiYmFja1wiIEBjbGljaz1cIm9uQmFjaygpXCIgOnN0eWxlPVwieyd0b3AnOiAoc3RhdHVzQmFySGVpZ2h0KSsncHgnfVwiPlxuXHRcdFx0XHRcdDxpbWFnZSBjbGFzcz1cImltZ1wiIHNyYz1cIkAvc3RhdGljL2Fycm93LWxlZnQucG5nXCI+PC9pbWFnZT5cblx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cInRpdGxlXCIgOnN0eWxlPVwieyd3aWR0aCc6IHdpbldpZHRoKydweCd9XCI+PHRleHQgY2xhc3M9XCJ0eHRcIj57e3RpdGxlfX08L3RleHQ+PC92aWV3PlxuXHRcdFx0PC92aWV3PlxuXHRcdDwvdmlldz5cblx0XHQ8dmlldyB2LWlmPVwidHlwZSA9PSAyIHx8IHR5cGUgPT0gNFwiPlxyXG5cdFx0XHQ8IS0tICAgQGNsaWNrPVwicWllaHVhbigpXCIgLS0+XG5cdFx0XHQ8dmlldyBjbGFzcz1cInJvb20taGRcIiB2LWlmPVwiaXNPcGVuU29ja2V0ID09IGZhbHNlXCI+XG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiYVwiIHYtaWY9XCJpc1RvZ2dsZVwiPlxyXG5cdFx0XHRcdFx0PHplZ28tbG9jYWwtdmlldyBjbGFzcz1cInZpZGVvLXZpZXdcIiA6c3R5bGU9XCJ7J3dpZHRoJzogd2luV2lkdGgrJ3B4JywgJ2hlaWdodCc6IHdpbkhlaWdodCsncHgnfVwiPjwvemVnby1sb2NhbC12aWV3PlxyXG5cdFx0XHRcdFx0PHplZ28tcmVtb3RlLXZpZXcgIGNsYXNzPVwic2hpdHVcIiA6c3RyZWFtSUQ9XCJzZWxsZXJTdHJlYW1JZFwiIDpzdHlsZT1cInsndG9wJzogKHN0YXR1c0JhckhlaWdodCs2MCkrJ3B4J31cIj48L3plZ28tcmVtb3RlLXZpZXc+XHJcblx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cImFcIiB2LWVsc2U+XG5cdFx0XHRcdFx0PHplZ28tcmVtb3RlLXZpZXcgY2xhc3M9XCJ2aWRlby12aWV3XCIgOnN0cmVhbUlEPVwic2VsbGVyU3RyZWFtSWRcIiA6c3R5bGU9XCJ7J3dpZHRoJzogd2luV2lkdGgrJ3B4JywgJ2hlaWdodCc6IHdpbkhlaWdodCsncHgnfVwiPjwvemVnby1yZW1vdGUtdmlldz5cblx0XHRcdFx0XHQ8emVnby1sb2NhbC12aWV3ICBjbGFzcz1cInNoaXR1XCIgOnN0eWxlPVwieyd0b3AnOiAoc3RhdHVzQmFySGVpZ2h0KzYwKSsncHgnfVwiPjwvemVnby1sb2NhbC12aWV3PlxuXHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHQ8L3ZpZXc+XG5cdFx0PC92aWV3PlxuXHRcdDx2aWV3IGNsYXNzPVwicm9vbS1iZFwiIDpzdHlsZT1cInsnd2lkdGgnOiB3aW5XaWR0aCsncHgnLCAnaGVpZ2h0Jzogd2luSGVpZ2h0KydweCd9XCIgdi1pZj1cImlzT3BlblNvY2tldFwiPlxuXHRcdFx0PGltYWdlIGNsYXNzPVwicGljXCIgOnN0eWxlPVwieyd3aWR0aCc6IHdpbldpZHRoKydweCcsICdoZWlnaHQnOiB3aW5IZWlnaHQrJ3B4J31cIiAgc3JjPVwiQC9zdGF0aWMveXV5aW4tYmcucG5nXCI+PC9pbWFnZT5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJkaWFuLW9uXCIgPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiaW5mb1wiPlxyXG5cdFx0XHRcdFx0PGltYWdlIGNsYXNzPVwiYXZhdGFyXCIgOnNyYz1cInVzZXJPdGhlckluZm8uZmFjZUltYWdlP3VzZXJPdGhlckluZm8uZmFjZUltYWdlOnVzZXJPdGhlckluZm8uaW1nXCI+PC9pbWFnZT5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwibmFtZVwiPjx0ZXh0IGNsYXNzPVwidFwiPnt7dXNlck90aGVySW5mby5uaWNrbmFtZX19PC90ZXh0Pjwvdmlldz5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidHh0XCI+PHRleHQgY2xhc3M9XCJ0XCI+e3t1c2VyT3RoZXJJbmZvLmFnZX195bKBL3t7dXNlck90aGVySW5mby5oZWlnaHR9fTwvdGV4dD48L3ZpZXc+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwidGFnXCI+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInRpdGxlc1wiPjx0ZXh0IGNsYXNzPVwidFwiPuS4quaAp+etvuWQje+8mjwvdGV4dD48L3ZpZXc+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImRlc2NzXCI+XHJcblx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwidFwiPnt7dXNlck90aGVySW5mby5kZWNsYXJhdGlvbn19PC90ZXh0PlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0PC92aWV3PlxuXHRcdDwvdmlldz5cblx0XHQ8dmlldyBjbGFzcz1cInJvb20tZmRcIiB2LWlmPVwidHlwZT09MSB8fCB0eXBlPT0zXCIgOnN0eWxlPVwieyd3aWR0aCc6IHdpbldpZHRoKydweCd9XCIgPlxuXHRcdFx0PHZpZXcgY2xhc3M9XCJpdGVtXCI+XG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwicGljXCIgQGNsaWNrPVwidG9nZ2xlWXV5aW4oKVwiIHYtaWY9XCJpc0ppZXNob3U9PXRydWVcIj5cblx0XHRcdFx0XHQ8aW1hZ2Ugdi1pZj1cImlzWXV5aW5cIiBjbGFzcz1cInBpbWdcIiBzcmM9XCJAL3N0YXRpYy95dXlpbi0wMS5wbmdcIj48L2ltYWdlPlxuXHRcdFx0XHRcdDxpbWFnZSB2LWVsc2UgY2xhc3M9XCJwaW1nXCIgc3JjPVwiQC9zdGF0aWMveXV5aW4tMDEtb24ucG5nXCI+PC9pbWFnZT5cblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwidHh0XCIgdi1pZj1cImlzSmllc2hvdT09dHJ1ZVwiPlxyXG5cdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJ0XCI+e3tpc1l1eWluPyflvIDlkK8nOiflhbPpl60nfX08L3RleHQ+XHJcblx0XHRcdFx0PC92aWV3PlxuXHRcdFx0PC92aWV3PlxuXHRcdFx0PHZpZXcgY2xhc3M9XCJpdGVtXCIgdi1pZj1cImlzSmllc2hvdVwiPlxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cInBpY1wiPlxuXHRcdFx0XHRcdDxpbWFnZSBAY2xpY2s9XCJ0b0d1YWR1YW4oKVwiIGNsYXNzPVwicGltZ1wiIHNyYz1cIkAvc3RhdGljL3l1eWluLTAyLnBuZ1wiPjwvaW1hZ2U+XG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cInR4dFwiPlxyXG5cdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJ0XCI+5oyC5patPC90ZXh0PlxyXG5cdFx0XHRcdDwvdmlldz5cblx0XHRcdDwvdmlldz5cclxuXHRcdFx0PHRlbXBsYXRlIHYtaWY9XCJpc0ppZXNob3UgPT0gZmFsc2VcIj5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cIml0ZW1cIj5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwicGljXCI+XHJcblx0XHRcdFx0XHRcdDxpbWFnZSBAY2xpY2s9XCJ0b0d1YWR1YW4oKVwiIGNsYXNzPVwicGltZ1wiIHNyYz1cIkAvc3RhdGljL3l1eWluLTAyLnBuZ1wiPjwvaW1hZ2U+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInR4dFwiPlxyXG5cdFx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cInRcIj7mjILmlq08L3RleHQ+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiaXRlbVwiIHYtaWY9XCJpc1N0YXJ0ID09IGZhbHNlXCI+PC92aWV3PlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiaXRlbVwiIHYtaWY9XCJpc1N0YXJ0ID09IGZhbHNlXCI+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInBpY1wiPlxyXG5cdFx0XHRcdFx0XHQ8aW1hZ2UgY2xhc3M9XCJwaW1nXCIgc3JjPVwiQC9zdGF0aWMveXV5aW4tMDUucG5nXCI+PC9pbWFnZT5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidHh0XCI+XHJcblx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwidFwiPnt7aXNTdGFydD8n562J5b6FJzon5o6l5Y+XJ319PC90ZXh0PlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0PC90ZW1wbGF0ZT5cblx0XHRcdDx2aWV3IGNsYXNzPVwiaXRlbVwiPlxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cInBpY1wiIEBjbGljaz1cInRvZ2dsZVlhbmdzaGVuZygpXCIgdi1pZj1cImlzSmllc2hvdT09dHJ1ZVwiPlxuXHRcdFx0XHRcdDxpbWFnZSBjbGFzcz1cInBpbWdcIiB2LWlmPVwiaXNZYW5nc2hlbmdxaVwiIHNyYz1cIkAvc3RhdGljL3l1eWluLTAzLnBuZ1wiPjwvaW1hZ2U+XG5cdFx0XHRcdFx0PGltYWdlIGNsYXNzPVwicGltZ1wiIHYtZWxzZSBzcmM9XCJAL3N0YXRpYy95dXlpbi0wMy1vbi5wbmdcIj48L2ltYWdlPlxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0eHRcIiB2LWlmPVwiaXNKaWVzaG91PT10cnVlXCI+XHJcblx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cInRcIj57e2lzWWFuZ3NoZW5ncWk/J+W8gOWQryc6J+WFs+mXrSd9fTwvdGV4dD5cclxuXHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHQ8L3ZpZXc+XG5cdFx0PC92aWV3PlxuXHRcdDx2aWV3IGNsYXNzPVwicm9vbS1mZFwiIHYtaWY9XCJ0eXBlPT0yIHx8IHR5cGU9PTRcIiA6c3R5bGU9XCJ7J3dpZHRoJzogd2luV2lkdGgrJ3B4J31cIiA+XG5cdFx0XHQ8dmlldyBjbGFzcz1cIml0ZW1cIiB2LWlmPVwiaXNKaWVzaG91XCI+XG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwicGljXCIgQGNsaWNrPVwidG9nZ2xlWXV5aW4oKVwiIHYtaWY9XCJpc0ppZXNob3U9PXRydWVcIj5cblx0XHRcdFx0XHQ8aW1hZ2Ugdi1pZj1cImlzWXV5aW5cIiBjbGFzcz1cInBpbWdcIiBzcmM9XCJAL3N0YXRpYy95dXlpbi0wMS5wbmdcIj48L2ltYWdlPlxuXHRcdFx0XHRcdDxpbWFnZSB2LWVsc2UgY2xhc3M9XCJwaW1nXCIgc3JjPVwiQC9zdGF0aWMveXV5aW4tMDEtb24ucG5nXCI+PC9pbWFnZT5cblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwidHh0XCI+XHJcblx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cInRcIj57e2lzWXV5aW4/J+W8gOWQryc6J+WFs+mXrSd9fTwvdGV4dD5cclxuXHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHQ8L3ZpZXc+XG5cdFx0XHQ8dmlldyBjbGFzcz1cIml0ZW1cIiB2LWlmPVwiaXNKaWVzaG91XCI+XG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwicGljXCIgQGNsaWNrPVwidG9nZ2xlWWFuZ3NoZW5nKClcIj5cblx0XHRcdFx0XHQ8aW1hZ2UgY2xhc3M9XCJwaW1nXCIgdi1pZj1cImlzWWFuZ3NoZW5ncWlcIiBzcmM9XCJAL3N0YXRpYy95dXlpbi0wMy5wbmdcIj48L2ltYWdlPlxuXHRcdFx0XHRcdDxpbWFnZSBjbGFzcz1cInBpbWdcIiB2LWVsc2Ugc3JjPVwiQC9zdGF0aWMveXV5aW4tMDMtb24ucG5nXCI+PC9pbWFnZT5cblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwidHh0XCI+XHJcblx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cInRcIj57e2lzWWFuZ3NoZW5ncWk/J+W8gOWQryc6J+WFs+mXrSd9fTwvdGV4dD5cclxuXHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHQ8L3ZpZXc+XG5cdFx0XHQ8dmlldyBjbGFzcz1cIml0ZW1cIiB2LWlmPVwiaXNKaWVzaG91XCI+XG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwicGljXCIgQGNsaWNrPVwidG9nZ2xlU2hleGlhbmcoKVwiIHYtaWY9XCJpc0ppZXNob3U9PXRydWVcIj5cblx0XHRcdFx0XHQ8aW1hZ2UgY2xhc3M9XCJwaW1nXCIgdi1pZj1cImlzU2hleGlhbmdcIiBzcmM9XCJAL3N0YXRpYy95dXlpbi0wNC5wbmdcIj48L2ltYWdlPlxuXHRcdFx0XHRcdDxpbWFnZSBjbGFzcz1cInBpbWdcIiB2LWVsc2Ugc3JjPVwiQC9zdGF0aWMveXV5aW4tMDQtb24ucG5nXCI+PC9pbWFnZT5cblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwidHh0XCI+XHJcblx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cInRcIj57e2lzU2hleGlhbmc/J+W8gOWQryc6J+WFs+mXrSd9fTwvdGV4dD5cclxuXHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDx0ZW1wbGF0ZSB2LWlmPVwiaXNKaWVzaG91ID09IGZhbHNlXCI+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpdGVtXCI+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInBpY1wiPlxyXG5cdFx0XHRcdFx0XHQ8aW1hZ2UgQGNsaWNrPVwidG9HdWFkdWFuKClcIiBjbGFzcz1cInBpbWdcIiBzcmM9XCJAL3N0YXRpYy95dXlpbi0wMi5wbmdcIj48L2ltYWdlPlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0eHRcIj5cclxuXHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJ0XCI+5oyC5patPC90ZXh0PlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cIml0ZW1cIiB2LWlmPVwiaXNTdGFydCA9PSBmYWxzZVwiIEBjbGljaz1cInRvSmllc2hvdTEoKVwiPlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJwaWNcIj5cclxuXHRcdFx0XHRcdFx0PGltYWdlIGNsYXNzPVwicGltZ1wiIHNyYz1cIkAvc3RhdGljL3l1eWluLTA1LnBuZ1wiPjwvaW1hZ2U+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInR4dFwiPlxyXG5cdFx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cInRcIj57e2lzU3RhcnQ/J+etieW+hSc6J+aOpeWPlyd9fTwvdGV4dD5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDwvdGVtcGxhdGU+XG5cdFx0PC92aWV3PlxyXG5cdFx0PHRlbXBsYXRlIHYtaWY9XCJpc0ppZXNob3VcIj5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJyb29tLWZkMVwiIHYtaWY9XCJ0eXBlPT0yIHx8IHR5cGU9PTRcIiA6c3R5bGU9XCJ7J3dpZHRoJzogd2luV2lkdGgrJ3B4J31cIiA+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpdGVtc1wiPlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJwaWNcIj5cclxuXHRcdFx0XHRcdFx0PGltYWdlIEBjbGljaz1cInRvR3VhZHVhbigpXCIgY2xhc3M9XCJwaW1nXCIgc3JjPVwiQC9zdGF0aWMveXV5aW4tMDIucG5nXCI+PC9pbWFnZT5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDxpbWFnZSBjbGFzcz1cIm9mZlwiIEBjbGljaz1cInRvZ2dsZUh1YW1pYW4oKVwiIHNyYz1cIkAvc3RhdGljL3l1eWluLW9mZi5wbmdcIj48L2ltYWdlPlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0PC90ZW1wbGF0ZT5cblx0PC92aWV3PlxuPC90ZW1wbGF0ZT5cblxuPHNjcmlwdD5cblx0bGV0IHRpbWVyID0gbnVsbDtcblx0aW1wb3J0IGFwaSBmcm9tICdAL2FwaS9pbmRleC5qcydcblx0aW1wb3J0IHBlcm1pc2lvbiBmcm9tIFwiQC9qc19zZGsvd2EtcGVybWlzc2lvbi9wZXJtaXNzaW9uLmpzXCJcblx0Ly/lr7zlhaUgWkVHTyBFeHByZXNzIFNES1xuXHRpbXBvcnQgWmVnb0V4cHJlc3NFbmdpbmUgZnJvbSAnQC91bmlfbW9kdWxlcy96ZWdvLVplZ29FeHByZXNzVW5pQXBwLUpTL2NvbXBvbmVudHMvemVnby1aZWdvRXhwcmVzc1VuaUFwcC1KUy9saWIvWmVnb0V4cHJlc3NFbmdpbmUnO1xuXHRpbXBvcnQgWmVnb1JlbW90ZVZpZXcgZnJvbSBcIkAvdW5pX21vZHVsZXMvemVnby1aZWdvRXhwcmVzc1VuaUFwcC1KUy9jb21wb25lbnRzL3plZ28tWmVnb0V4cHJlc3NVbmlBcHAtSlMvemVnby12aWV3L1plZ29SZW1vdGVWaWV3XCI7XG5cdGltcG9ydCBaZWdvTG9jYWxWaWV3IGZyb20gXCJAL3VuaV9tb2R1bGVzL3plZ28tWmVnb0V4cHJlc3NVbmlBcHAtSlMvY29tcG9uZW50cy96ZWdvLVplZ29FeHByZXNzVW5pQXBwLUpTL3plZ28tdmlldy9aZWdvTG9jYWxWaWV3XCI7XG5cdGxldCByb29tQ29uZmlnID0ge307XG5cdHJvb21Db25maWcuaXNVc2VyU3RhdHVzTm90aWZ5ID0gdHJ1ZTtcblx0Y29uc3QgcHJvZmlsZSA9IHtcblx0XHRhcHBJRCA6IDI2NzExMTk4MCxcblx0XHRhcHBTaWduOiAnYWZjYWE5MGE3NzUwZWU1NTZlNDUwY2E2MjI4N2M1ZjlhMzYyZTllZDcxMTc4OTcxN2NkYTBlMThmMDg4ODU4ZScsXG5cdFx0c2NlbmFyaW8gOiAwXG5cdH07XG5cdGV4cG9ydCBkZWZhdWx0IHtcblx0XHRjb21wb25lbnRzOiB7XG5cdFx0ICAgIFplZ29Mb2NhbFZpZXcsXG5cdFx0ICAgIFplZ29SZW1vdGVWaWV3LFxuXHRcdH0sXG5cdFx0ZGF0YSgpIHtcblx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0aXNPcGVuU29ja2V0OiB0cnVlLFxuXHRcdFx0XHRpc1l1eWluOiB0cnVlLFxuXHRcdFx0XHRpc0d1YWR1YW46IHRydWUsXG5cdFx0XHRcdGlzWWFuZ3NoZW5ncWk6IHRydWUsXG5cdFx0XHRcdGlzU2hleGlhbmc6IHRydWUsXG5cdFx0XHRcdGlzSmllc2hvdTogdHJ1ZSxcblx0XHRcdFx0aXNUb2dnbGU6IHRydWUsXG5cdFx0XHRcdHdpbldpZHRoOiAwLFxuXHRcdFx0XHR3aW5IZWlnaHQ6IDAsXG5cdFx0XHRcdHVzZXJJbmZvOiB7fSxcblx0XHRcdFx0cGxheVN0cmVhbUlkOiBcIlwiLFxuXHRcdFx0XHR0aXRsZTogXCJcIixcblx0XHRcdFx0Y291bnQ6IDAsXHJcblx0XHRcdFx0YmFsYW5jZUluZm86IHt9LFxyXG5cdFx0XHRcdHVzZXJPdGhlckluZm86IHt9LFxuXHRcdFx0XHRiYWNrZ3JvdW5kOiB7XG5cdFx0XHRcdFx0Ly8g5a+86Iiq5qCP6IOM5pmv5Zu+XG5cdFx0XHRcdFx0YmFja2dyb3VuZDogJ3VybChodHRwczovL2FwaS5seWl5dWFuLmNuL3Byb2ZpbGUvdXBsb2FkL3N0YXRpYy95dXlpbi1iZy5wbmcpIGNlbnRlciB0b3Agbm8tcmVwZWF0Jyxcblx0XHRcdFx0XHQvLyDov5jlj6/ku6Xorr7nva7og4zmma/lm75zaXpl5bGe5oCnXG5cdFx0XHRcdFx0YmFja2dyb3VuZFNpemU6ICcxMDAgYXV0bycsXG5cdFx0XHRcdH0sXG5cdFx0XHRcdGVuZ2luZTogbnVsbCxcblx0XHRcdFx0cm9vbUlkOiBcIlwiLFxuXHRcdFx0XHR0eXBlOiAyLFxuXHRcdFx0XHRzdGF0dXNCYXJIZWlnaHQ6IDAsXG5cdFx0XHRcdHNlbGxlclN0cmVhbUlkOiBcIlwiLFxuXHRcdFx0XHR2aWV3TW9kZUluZGV4OiAwLFxuXHRcdFx0XHRpc0NhbWVyYTogdHJ1ZSxcclxuXHRcdFx0XHRpc1N0YXJ0OiB0cnVlLFxyXG5cdFx0XHRcdHRvSXNCYWNrOiB0cnVlLFxuXHRcdFx0fVxuXHRcdH0sXG5cdFx0b25Mb2FkKG8pIHtcclxuXHRcdFx0Y29uc29sZS5sb2cobylcblx0XHRcdHRoaXMuaWQgPSBvLmlkO1xuXHRcdFx0dGhpcy50eXBlPW8udHlwZTtcblx0XHRcdHRoaXMudGl0bGUgPSAodGhpcy50eXBlID09IDF8fHRoaXMudHlwZSA9PSAzKT9cIuivremfs+mAmuivnVwiOlwi6KeG6aKR6YCa6K+dXCI7XHJcblx0XHRcdHRoaXMuaXNTdGFydCA9ICh0aGlzLnR5cGUgPT0gM3x8dGhpcy50eXBlID09IDQpPyhvLmZpZD9mYWxzZTp0cnVlKTp0cnVlXG5cdFx0XHR0aGlzLmlzU2hleGlhbmcgPSAodGhpcy50eXBlID09IDIgfHwgdGhpcy50eXBlID09IDQpP3RydWU6ZmFsc2VcclxuXHRcdFx0dGhpcy5pc0ppZXNob3UgPSBvLnR5cGU8PTI/dHJ1ZTpmYWxzZTtcblx0XHRcdHRoaXMuc3RhdHVzQmFySGVpZ2h0ID0gdW5pLmdldFN5c3RlbUluZm9TeW5jKCkuc3RhdHVzQmFySGVpZ2h0O1xuXHRcdFx0dGhpcy53aW5XaWR0aCA9IHVuaS5nZXRTeXN0ZW1JbmZvU3luYygpLndpbmRvd1dpZHRoO1xuXHRcdFx0dGhpcy53aW5IZWlnaHQgPSB1bmkuZ2V0U3lzdGVtSW5mb1N5bmMoKS53aW5kb3dIZWlnaHQ7XG5cdFx0fSxcblx0XHRhc3luYyBvblJlYWR5KCkge1xuXHRcdFx0Y29uc3QgdGhhdCA9IHRoaXM7XG5cdFx0XHR1bmkuJG9uKFwid2F0Y2hFdmVudFwiLGZ1bmN0aW9uIChvYmopIHtcclxuXHRcdFx0XHRjb25zb2xlLmxvZyhvYmopXG5cdFx0XHRcdGlmKG9iai50b3BpYyA9PSAnbWVzc2FnZScpe1xuXHRcdFx0XHRcdGlmKG9iai50eXBlID09IDEyKXtcblx0XHRcdFx0XHRcdGlmKHVuaS5nZXRTdG9yYWdlU3luYyhcInVzZXJJbmZvXCIpLmlkID09IG9iai5zZWxsZXJJZCl7XHJcblx0XHRcdFx0XHRcdFx0dGhhdC5pc0d1YWR1YW4gPSBmYWxzZTtcblx0XHRcdFx0XHRcdFx0dGhhdC50b0d1YWR1YW4oMSlcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH0pXHJcblx0XHRcdFxyXG5cdFx0XHR1bmkuJG9uKFwidG9KaWVzaG91WWluc2hpcFwiLChvYmopPT57XHJcblx0XHRcdFx0Y29uc29sZS5sb2coXCJ0b0ppZXNob3VZaW5zaGlwXCIsb2JqKVxyXG5cdFx0XHRcdGlmKG9iai50b3BpYyA9PSAnbWVzc2FnZScpe1xyXG5cdFx0XHRcdFx0aWYob2JqLnR5cGUgPT0gMjApe1xyXG5cdFx0XHRcdFx0XHRpZih1bmkuZ2V0U3RvcmFnZVN5bmMoXCJ1c2VySW5mb1wiKS5pZCA9PSBvYmouc2VsbGVySWQpe1xyXG5cdFx0XHRcdFx0XHRcdHRoYXQudG9KaWVzaG91KCk7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5pc09wZW5Tb2NrZXQgPSBmYWxzZTtcclxuXHRcdFx0XHRcdFx0fWVsc2V7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5pc09wZW5Tb2NrZXQgPSBmYWxzZTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSlcblx0XHRcdC8vICNpZmRlZiBBUFAtUExVU1xuXHRcdFx0aWYgKHVuaS5nZXRTeXN0ZW1JbmZvU3luYygpLnBsYXRmb3JtID09PSBcImFuZHJvaWRcIikge1xuXHRcdFx0ICAgY29uc3QgcmVzID0gYXdhaXQgcGVybWlzaW9uLnJlcXVlc3RBbmRyb2lkUGVybWlzc2lvbihcblx0XHRcdFx0XHRcImFuZHJvaWQucGVybWlzc2lvbi5SRUNPUkRfQVVESU9cIlxuXHRcdFx0XHQpO1xuXHRcdFx0ICAgY29uc3QgcmVzMSA9ICBhd2FpdCBwZXJtaXNpb24ucmVxdWVzdEFuZHJvaWRQZXJtaXNzaW9uKFxuXHRcdFx0XHRcdFwiYW5kcm9pZC5wZXJtaXNzaW9uLkNBTUVSQVwiXG5cdFx0XHRcdCk7XHJcblx0XHRcdFx0aWYocmVzID09IDEgJiYgcmVzMSA9PSAxKXtcclxuXHRcdFx0XHRcdGlmKHRoaXMudHlwZSA8PSAyKXtcclxuXHRcdFx0XHRcdFx0dGhpcy50b1Blcm1pc3Npb24oKTtcclxuXHRcdFx0XHRcdH1lbHNle1xyXG5cdFx0XHRcdFx0XHR0aGlzLmdldFVzZXJJbmZvKDEpO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHR0aGlzLmdldE90aGVyVXNlckluZm8oKVxyXG5cdFx0XHRcdHJldHVybiA7XG5cdFx0XHR9XG5cdFx0XHQvLyAjZW5kaWZcclxuXHRcdFx0XG5cdFx0ICBpZih0aGlzLnR5cGUgPD0gMil7XG5cdFx0XHQgIHRoaXMudG9QZXJtaXNzaW9uKCk7XG5cdFx0ICB9ZWxzZXtcclxuXHRcdFx0ICB0aGlzLmdldFVzZXJJbmZvKDEpO1xyXG5cdFx0ICB9XHJcblx0XHRcdCAgdGhpcy5nZXRPdGhlclVzZXJJbmZvKCk7XG5cdFx0fSxcblx0XHRtZXRob2RzOiB7XHJcblx0XHRcdHFpZWh1YW4oKSB7XHJcblx0XHRcdFx0dGhpcy5pc1RvZ2dsZSA9ICF0aGlzLmlzVG9nZ2xlO1xyXG5cdFx0XHRcdGNvbnNvbGUubG9nKHRoaXMuaXNUb2dnbGUpXHJcblx0XHRcdH0sXHJcblx0XHRcdHRvSmllc2hvdTEoKSB7XHJcblx0XHRcdFx0dW5pLiRlbWl0KFwiamllc2hvdVlpbnNoaXBcIix7XHJcblx0XHRcdFx0XHRcInVzZXJJZFwiOiB1bmkuZ2V0U3RvcmFnZVN5bmMoXCJ1c2VySW5mb1wiKS5pZCxcclxuXHRcdFx0XHRcdHNlbGxlcklkOiB0aGlzLmlkLCBcclxuXHRcdFx0XHRcdHR5cGU6IDIwLFxyXG5cdFx0XHRcdFx0XCJ0b3BpY1wiOlwibWVzc2FnZVwiLFxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdFx0aWYodGhpcy5pc1N0YXJ0ID09IGZhbHNlKXtcclxuXHRcdFx0XHRcdHRoaXMudG9KaWVzaG91KCk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxuXHRcdFx0b25CYWNrKCkge1xuXHRcdFx0XHRjb25zdCB0aGF0ID0gdGhpcztcblx0XHRcdFx0dW5pLnNob3dNb2RhbCh7XG5cdFx0XHRcdFx0dGl0bGU6IFwi5rip6aao5o+Q56S6XCIsXG5cdFx0XHRcdFx0Y29udGVudDogXCLmmK/lkKbopoHpgIDlh7rmiL/pl7TvvJ9cIixcblx0XHRcdFx0XHRjb25maXJtQ29sb3I6IFwiIzAwMDAwMFwiLFxuXHRcdFx0XHRcdHN1Y2Nlc3MocmVzKSB7XG5cdFx0XHRcdFx0XHRpZihyZXMuY29uZmlybSl7XG5cdFx0XHRcdFx0XHRcdHRoYXQuaXNHdWFkdWFuID0gZmFsc2Vcblx0XHRcdFx0XHRcdFx0dGhhdC50b0d1YWR1YW4oKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pXG5cdFx0XHR9LFxuXHRcdFx0dG9HdWFkdWFuKHR5cGUpIHtcblx0XHRcdFx0aWYodHlwZSAhPTEpe1xuXHRcdFx0XHRcdHVuaS4kZW1pdChcImR1YW5ZaW5zaGlwXCIse1xuXHRcdFx0XHRcdFx0XCJ1c2VySWRcIjogdW5pLmdldFN0b3JhZ2VTeW5jKFwidXNlckluZm9cIikuaWQsXG5cdFx0XHRcdFx0XHRzZWxsZXJJZDogdGhpcy5pZCwgXG5cdFx0XHRcdFx0XHR0eXBlOiAxMixcblx0XHRcdFx0XHRcdFwidG9waWNcIjpcIm1lc3NhZ2VcIixcblx0XHRcdFx0XHR9KVxuXHRcdFx0XHR9IFxyXG5cdFx0XHRcdGlmKHR5cGUgPT0gMSl7XHJcblx0XHRcdFx0XHR1bmkuJGVtaXQoXCJzaG93VG9hc3RcIix0aGlzLmlzSmllc2hvdSlcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0dGhpcy5zb2NpYWxDb25zdW1wdGlvbigpO1xuXHRcdFx0XHRjbGVhckludGVydmFsKHRpbWVyKVxyXG5cdFx0XHRcdGlmKHRoaXMudG9Jc0JhY2sgID09IGZhbHNlKXtcclxuXHRcdFx0XHRcdHJldHVybiA7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHRoaXMudG9Jc0JhY2sgPSBmYWxzZVxuXHRcdFx0XHR0aGlzLmlzR3VhZHVhbiA9IGZhbHNlXHJcblx0XHRcdFx0LyoqIOWBnOatouaOqOa1gSAqL1xyXG5cdFx0XHRcdHRoaXMuZW5naW5lPy5zdG9wUHVibGlzaGluZ1N0cmVhbSgpO1xyXG5cdFx0XHRcdC8qKiDlgZzmraLmnKzlnLDpooTop4ggKi9cclxuXHRcdFx0XHR0aGlzLmVuZ2luZT8uc3RvcFByZXZpZXcoKTtcclxuXHRcdFx0XHQvKiog5YGc5q2i5ouJ5rWBICovXHJcblx0XHRcdFx0dGhpcy5lbmdpbmU/LnN0b3BQbGF5aW5nU3RyZWFtKHRoaXMuc2VsbGVyU3RyZWFtSWQpO1xyXG5cdFx0XHRcdC8qKiDpgIDlh7rmiL/pl7QgKi9cclxuXHRcdFx0XHR0aGlzLmVuZ2luZT8ubG9nb3V0Um9vbSh0aGlzLnJvb21JZCk7XHJcblx0XHRcdFx0LyoqIOmUgOavgeW8leaTjiAqL1xyXG5cdFx0XHRcdFplZ29FeHByZXNzRW5naW5lLmRlc3Ryb3lFbmdpbmUoKTtcclxuXHRcdFx0XHR1bmkuJG9mZihcIndhdGNoRXZlbnRcIilcclxuXHRcdFx0XHR1bmkuJG9mZihcInRvSmllc2hvdVlpbnNoaXBcIilcclxuXHRcdFx0XHR1bmkubmF2aWdhdGVCYWNrKHtcclxuXHRcdFx0XHRcdGRlbHRhOiAxXHJcblx0XHRcdFx0fSlcblx0XHRcdH0sXG5cdFx0XHR0b0ppZXNob3UoKSB7XG5cdFx0XHRcdHRoaXMudG9QZXJtaXNzaW9uKCk7XHJcblx0XHRcdFx0dGhpcy4kZm9yY2VVcGRhdGUoKTtcblx0XHRcdH0sXG5cdFx0XHR0b2dnbGVZdXlpbigpIHtcblx0XHRcdFx0dGhpcy5pc1l1eWluID0gIXRoaXMuaXNZdXlpbjtcblx0XHRcdFx0dGhpcy5lbmdpbmUubXV0ZU1pY3JvcGhvbmUoIXRoaXMuaXNZdXlpbilcblx0XHRcdH0sXG5cdFx0XHR0b2dnbGVTaGV4aWFuZygpIHtcblx0XHRcdFx0dGhpcy5pc1NoZXhpYW5nID0gIXRoaXMuaXNTaGV4aWFuZztcblx0XHRcdFx0dGhpcy5lbmdpbmUuZW5hYmxlQ2FtZXJhKHRoaXMuaXNTaGV4aWFuZylcblx0XHRcdH0sXG5cdFx0XHR0b2dnbGVIdWFtaWFuKCkge1xuXHRcdFx0XHR0aGlzLmlzQ2FtZXJhID0gIXRoaXMuaXNDYW1lcmFcblx0XHRcdFx0dGhpcy5lbmdpbmUudXNlRnJvbnRDYW1lcmEodGhpcy5pc0NhbWVyYSlcblx0XHRcdH0sXG5cdFx0XHR0b2dnbGVZYW5nc2hlbmcoKSB7XG5cdFx0XHRcdHRoaXMuaXNZYW5nc2hlbmdxaSA9ICEgdGhpcy5pc1lhbmdzaGVuZ3FpXG5cdFx0XHRcdHRoaXMuZW5naW5lLnNldEF1ZGlvUm91dGVUb1NwZWFrZXIodGhpcy5pc0NhbWVyYSlcblx0XHRcdH0sXG5cdFx0XHRhc3luYyB0b1Blcm1pc3Npb24oKSB7XG5cdFx0XHRcdHRoaXMuZ2V0VXNlckluZm8oKTtcblx0XHRcdH0sXG5cdFx0XHQvL+afpeivouS4quS6uuS/oeaBr1xuXHRcdFx0YXN5bmMgZ2V0VXNlckluZm8odHlwZSkge1xuXHRcdFx0XHRjb25zdCB7IGNvZGUsIGRhdGEgLCBtc2d9ID0gYXdhaXQgYXBpLmZpbmRVc2VySW5mbyh7dXNlcklkOiB1bmkuZ2V0U3RvcmFnZVN5bmMoXCJ1c2VySW5mb1wiKS5pZH0pO1xuXHRcdFx0XHRpZihjb2RlID09IDIwMCl7XG5cdFx0XHRcdFx0dGhpcy51c2VySW5mbyA9IGRhdGE7XHJcblx0XHRcdFx0XHRpZih0eXBlICE9IDEpe1xyXG5cdFx0XHRcdFx0XHR0aGlzLnVzZXJCYWxhbmNlKCk7XHJcblx0XHRcdFx0XHRcdHRoaXMubG9naW5Sb29tKCk7XHJcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XG5cdFx0XHRcdH1lbHNle1xuXHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xuXHRcdFx0XHRcdFx0dGl0bGU6IG1zZyxcblx0XHRcdFx0XHRcdHBvc2l0aW9uOiBcImJvdHRvbVwiLFxuXHRcdFx0XHRcdFx0aWNvbjogXCJub25lXCIsXG5cdFx0XHRcdFx0fSlcblx0XHRcdFx0fVxuXHRcdFx0fSxcclxuXHRcdFx0Ly/mn6Xor6J0YXJlbuS4quS6uuS/oeaBr1xyXG5cdFx0XHRhc3luYyBnZXRPdGhlclVzZXJJbmZvKHR5cGUpIHtcclxuXHRcdFx0XHRjb25zdCB7IGNvZGUsIGRhdGEgLCBtc2cgfSA9IGF3YWl0IGFwaS5maW5kT3RoZXJVc2VySW5mbyh7dXNlcklkOiB1bmkuZ2V0U3RvcmFnZVN5bmMoXCJ1c2VySW5mb1wiKS5pZCxzZWxsZXJJZDogdGhpcy5pZCx9KTtcclxuXHRcdFx0XHRpZihjb2RlID09IDIwMCl7XHJcblx0XHRcdFx0XHRjb25zb2xlLmxvZyhcImdldE90aGVyVXNlckluZm9cIixkYXRhKVxyXG5cdFx0XHRcdFx0dGhpcy51c2VyT3RoZXJJbmZvID0gZGF0YTtcclxuXHRcdFx0XHR9ZWxzZXtcclxuXHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xyXG5cdFx0XHRcdFx0XHR0aXRsZTogbXNnLFxyXG5cdFx0XHRcdFx0XHRwb3NpdGlvbjogXCJib3R0b21cIixcclxuXHRcdFx0XHRcdFx0aWNvbjogXCJub25lXCIsXHJcblx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcblx0XHRcdGFzeW5jIGxvZ2luUm9vbSgpe1xuXHRcdFx0XHRjb25zdCB0aGF0ID0gdGhpcztcblx0XHRcdFx0Y29uc3QgcmVzID0gYXdhaXQgYXBpLmZpbmRaZWdvVG9rZW4oe1xuXHRcdFx0XHRcdHVzZXJJZDogdW5pLmdldFN0b3JhZ2VTeW5jKFwidXNlckluZm9cIikuaWQsXG5cdFx0XHRcdFx0c2VsbGVySWQ6IHRoaXMuaWRcblx0XHRcdFx0fSlcblx0XHRcdFx0aWYocmVzLmNvZGUgPT0gMjAwKXtcblx0XHRcdFx0XHQvLyDojrflj5Z0b2tlbuS8oOWFpVxuXHRcdFx0XHRcdHJvb21Db25maWcudG9rZW4gPSByZXMuZGF0YS50b2tlbjtcblx0XHRcdFx0XHR0aGlzLnBsYXlTdHJlYW1JZCA9IHJlcy5kYXRhLnVzZXJTdHJlYW1JZDtcblx0XHRcdFx0XHR0aGlzLnNlbGxlclN0cmVhbUlkID0gcmVzLmRhdGEuc2VsbGVyU3RyZWFtSWQ7XG5cdFx0XHRcdFx0dGhpcy5yb29tSWQgPSByZXMuZGF0YS5yb29tSWQ7XG5cdFx0XHRcdFx0Y29uc29sZS5sb2coXCJsb2dpblJvb20xMVwiLHJlcy5kYXRhKVxuXHRcdFx0XHRcdHRoaXMuZW5naW5lID0gYXdhaXQgWmVnb0V4cHJlc3NFbmdpbmUuY3JlYXRlRW5naW5lV2l0aFByb2ZpbGUocHJvZmlsZSk7XG5cdFx0XHRcdFx0dGhpcy5lbmdpbmUuZW5hYmxlQ2FtZXJhKHRoaXMuaXNTaGV4aWFuZylcblx0XHRcdFx0XHQvLyDliJvlu7rnvo7popznjq/looNcclxuXHRcdFx0XHRcdGF3YWl0IHRoaXMuZW5naW5lLnN0YXJ0RWZmZWN0c0VudigpO1xuXHRcdFx0XHRcdHRoaXMuZW5naW5lLmVuYWJsZUVmZmVjdHNCZWF1dHkodHJ1ZSk7XG5cdFx0XHRcdFx0Ly8g5Yib5bu6576O6aKc5Y+C5pWw5a+56LGhXG5cdFx0XHRcdFx0bGV0IGJlYXV0eVBhcmFtID0ge307XG5cdFx0XHRcdFx0Ly8g576O55m944CB57qi5ram44CB56Oo55qu44CB6ZSQ5YyWXG5cdFx0XHRcdFx0YmVhdXR5UGFyYW0ud2hpdGVuSW50ZW5zaXR5ID0gdGhpcy51c2VySW5mby5yZXNlcnZlZDU7XG5cdFx0XHRcdFx0YmVhdXR5UGFyYW0ucm9zeUludGVuc2l0eSA9IHRoaXMudXNlckluZm8ucmVzZXJ2ZWQ2O1xuXHRcdFx0XHRcdGJlYXV0eVBhcmFtLnNtb290aEludGVuc2l0eSA9IHRoaXMudXNlckluZm8ucmVzZXJ2ZWQ3O1xuXHRcdFx0XHRcdGJlYXV0eVBhcmFtLnNoYXJwZW5JbnRlbnNpdHkgPSB0aGlzLnVzZXJJbmZvLnJlc2VydmVkODtcblx0XHRcdFx0XHQvLyDorr7nva7nvo7popzlj4LmlbAgXG5cdFx0XHRcdFx0dGhpcy5lbmdpbmUuc2V0RWZmZWN0c0JlYXV0eVBhcmFtKGJlYXV0eVBhcmFtKTtcblx0XHRcdFx0XHR0aGlzLmVuZ2luZS51c2VGcm9udENhbWVyYSh0aGlzLmlzQ2FtZXJhKVxuXHRcdFx0XHRcdC8vIOS7peS4i+S4uuW4uOeUqOeahOaIv+mXtOebuOWFs+Wbnuiwg1xuXHRcdFx0XHRcdHRoaXMuZW5naW5lLm9uKCdyb29tU3RhdGVVcGRhdGUnLCAocm9vbUlELCBzdGF0ZSwgZXJyb3JDb2RlLCBleHRlbmRlZERhdGEpID0+IHtcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKFwicm9vbVN0YXRlVXBkYXRlXCIscm9vbUlEKVxuXHRcdFx0XHRcdCAgLy8g5oi/6Ze054q25oCB5pu05paw5Zue6LCD77yM55m75b2V5oi/6Ze05ZCO77yM5b2T5oi/6Ze06L+e5o6l54q25oCB5Y+R55Sf5Y+Y5pu077yI5aaC5Ye6546w5oi/6Ze05pat5byA77yM55m75b2V6K6k6K+B5aSx6LSl562J5oOF5Ya177yJ77yMU0RL5Lya6YCa6L+H6K+l5Zue6LCD6YCa55+lXG5cdFx0XHRcdFx0fSk7IDtcblx0XHRcdFx0XHRcblx0XHRcdFx0XHR0aGlzLmVuZ2luZS5vbigncm9vbVVzZXJVcGRhdGUnLCAocm9vbUlELCB1cGRhdGVUeXBlLCB1c2VyTGlzdCkgPT4ge1xuXHRcdFx0XHRcdCAgLy8g55So5oi354q25oCB5pu05paw77yM55m75b2V5oi/6Ze05ZCO77yM5b2T5oi/6Ze05YaF5pyJ55So5oi35paw5aKe5oiW5Yig6Zmk5pe277yMU0RL5Lya6YCa6L+H6K+l5Zue6LCD6YCa55+lXG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhcInJvb21Vc2VyVXBkYXRlXCIscm9vbUlELHVwZGF0ZVR5cGUsdXNlckxpc3QpXG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0dGhpcy5lbmdpbmUub24oJ3BsYXllclN0YXRlVXBkYXRlJywgKHJvb21JRCwgdXBkYXRlVHlwZSwgc3RyZWFtTGlzdCkgPT4ge1xuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coXCJwbGF5ZXJTdGF0ZVVwZGF0ZVwiLHJvb21JRClcblx0XHRcdFx0XHQgIC8vIOiwg+eUqOaLiea1geaOpeWPo+aIkOWKn+WQju+8jOW9k+aLiea1geWZqOeKtuaAgeWPkeeUn+WPmOabtO+8jOWmguWHuueOsOe9kee7nOS4reaWreWvvOiHtOaOqOa1geW8guW4uOetieaDheWGte+8jFNES+WcqOmHjeivleaLiea1geeahOWQjOaXtu+8jOS8mumAmui/h+ivpeWbnuiwg+mAmuefpVxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdHRoaXMuZW5naW5lLm9uKCdyb29tU3RyZWFtVXBkYXRlJywgKHJvb21JRCwgdXBkYXRlVHlwZSwgc3RyZWFtTGlzdCkgPT4ge1xuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coXCJyb29tU3RyZWFtVXBkYXRlXCIsdXBkYXRlVHlwZSxzdHJlYW1MaXN0KVxuXHRcdFx0XHRcdCAgLy8g5rWB54q25oCB5pu05paw77yM55m75b2V5oi/6Ze05ZCO77yM5b2T5oi/6Ze05YaF5pyJ55So5oi35paw5o6o6YCB5oiW5Yig6Zmk6Z+z6KeG6aKR5rWB5pe277yMU0RL5Lya6YCa6L+H6K+l5Zue6LCD6YCa55+lXG5cdFx0XHRcdFx0XHQvLyB0aGlzLnNlbGxlclN0cmVhbUlkID0gc3RyZWFtTGlzdFswXS5zdHJlYW1JRDtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHQvLyDosIPnlKjmjqjmtYHmjqXlj6PmiJDlip/lkI7vvIzlvZPmjqjmtYHlmajnirbmgIHlj5HnlJ/lj5jmm7TvvIzlpoLlh7rnjrDnvZHnu5zkuK3mlq3lr7zoh7TmjqjmtYHlvILluLjnrYnmg4XlhrXvvIxTREvlnKjph43or5XmjqjmtYHnmoTlkIzml7bvvIzkvJrpgJrov4for6Xlm57osIPpgJrnn6Vcblx0XHRcdFx0XHR0aGF0LmVuZ2luZS5vbigncHVibGlzaGVyU3RhdGVVcGRhdGUnLCAoc3RyZWFtSUQsIHN0YXRlLCBlcnJvckNvZGUsIGV4dGVuZGVkRGF0YSkgPT4ge1xuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coXCJwdWJsaXNoZXJTdGF0ZVVwZGF0ZVwiLHN0cmVhbUlEKVxyXG5cdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdC8vIOeZu+W9leaIv+mXtFxuXHRcdFx0XHRcdC8vIOW8gOWni+eZu+W9leaIv+mXtFxuXHRcdFx0XHRcdHRoaXMuZW5naW5lLmxvZ2luUm9vbShyZXMuZGF0YS5yb29tSWQsIFxuXHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHQndXNlcklEJzogdW5pLmdldFN0b3JhZ2VTeW5jKFwidXNlckluZm9cIikuaWQsIFxuXHRcdFx0XHRcdFx0XHQndXNlck5hbWUnOiB1bmkuZ2V0U3RvcmFnZVN5bmMoXCJ1c2VySW5mb1wiKS5uaWNrbmFtZVxuXHRcdFx0XHRcdFx0fSwgXG5cdFx0XHRcdFx0XHRyb29tQ29uZmlnXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0XHQvLyB0aGlzLnZpZXdNb2RlSW5kZXggPSBaZWdvVmlld01vZGUuQXNwZWN0Rml0O1xuXHRcdFx0XHRcdHRoaXMuZW5naW5lLnN0YXJ0UHJldmlldygpO1xuXHRcdFx0XHRcdHRoaXMuZW5naW5lLnN0YXJ0UHVibGlzaGluZ1N0cmVhbSh0aGlzLnBsYXlTdHJlYW1JZCk7XG5cdFx0XHRcdFx0dGhpcy5pc0ppZXNob3UgPSB0cnVlO1xuXHRcdFx0XHRcdGNsZWFySW50ZXJ2YWwodGltZXIpO1xuXHRcdFx0XHRcdHRoYXQudGl0bGUgPSB0aGF0LmZvcm1hdEZ1bih0aGF0LmNvdW50KVxuXHRcdFx0XHRcdHRpbWVyID0gc2V0SW50ZXJ2YWwoKCk9PntcclxuXHRcdFx0XHRcdFx0aWYodW5pLmdldFN0b3JhZ2VTeW5jKFwidXNlckluZm9cIikuc2V4ID09IDEpe1xyXG5cdFx0XHRcdFx0XHRcdGlmKHRoYXQudHlwZSA9PSAxKXtcclxuXHRcdFx0XHRcdFx0XHRcdGlmKHRoYXQuYmFsYW5jZUluZm8udm9pY2VDb2lucyo2MCA8IHRoYXQuY291bnQpe1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRjbGVhckludGVydmFsKHRpbWVyKTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0dGhhdC50b0d1YWR1YW4oKTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0dGhhdC50aXRsZSA9IHRoYXQuZm9ybWF0RnVuKHRoYXQuY291bnQpO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gO1xyXG5cdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdH1lbHNlIGlmKHRoYXQudHlwZSA9PSAyKXtcclxuXHRcdFx0XHRcdFx0XHRcdGlmKHRoYXQuYmFsYW5jZUluZm8udmlkZW9Db2lucyo2MCA8IHRoYXQuY291bnQpe1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRjbGVhckludGVydmFsKHRpbWVyKTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0dGhhdC50b0d1YWR1YW4oKTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0dGhhdC50aXRsZSA9IHRoYXQuZm9ybWF0RnVuKHRoYXQuY291bnQpO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gO1xyXG5cdFx0XHRcdFx0XHRcdFx0fVx0XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR0aGF0LmNvdW50ICsrO1xuXHRcdFx0XHRcdFx0dGhhdC50aXRsZSA9IHRoYXQuZm9ybWF0RnVuKHRoYXQuY291bnQpO1xuXHRcdFx0XHRcdH0sMTAwMClcblx0XHRcdFx0XHRzZXRUaW1lb3V0KCgpPT57XG5cdFx0XHRcdFx0XHR0aGlzLnRvVHVpbGl1KClcblx0XHRcdFx0XHR9LDEwMClcblx0XHRcdFx0fVxuXHRcdFx0fSxcclxuXHRcdFx0Ly/mo4Dmn6XmrKHmlbBcclxuXHRcdFx0YXN5bmMgdXNlckJhbGFuY2UoKSB7XHJcblx0XHRcdFx0Y29uc3QgeyBjb2RlLCBkYXRhIH0gPSBhd2FpdCB0aGlzLiRhcGkudXNlckJhbGFuY2Uoe1xyXG5cdFx0XHRcdFx0dXNlcklkOiB1bmkuZ2V0U3RvcmFnZVN5bmMoXCJ1c2VySW5mb1wiKS5pZFxyXG5cdFx0XHRcdH0pIFxyXG5cdFx0XHRcdGlmKGNvZGUgPT0gMjAwKXtcclxuXHRcdFx0XHRcdHRoaXMuYmFsYW5jZUluZm8gPSBkYXRhXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHQvL+e7k+eulyB0eXBlOjEu6K+t6Z+zIDIu6KeG6aKRIDMu5paH5a2XIDTlm77niYcgNeekvOeJqTbmkK3orqpcclxuXHRcdFx0YXN5bmMgc29jaWFsQ29uc3VtcHRpb24odHlwZSkge1xyXG5cdFx0XHRcdGF3YWl0IHRoaXMuJGFwaS5zb2NpYWxDb25zdW1wdGlvbih7XHJcblx0XHRcdFx0XHR1c2VySWQ6IHVuaS5nZXRTdG9yYWdlU3luYyhcInVzZXJJbmZvXCIpLmlkLFxyXG5cdFx0XHRcdFx0c2VsbGVySWQ6IHRoaXMuaWQsXHJcblx0XHRcdFx0XHR0eXBlOiAodGhpcy50eXBlID09IDF8fCB0aGlzLnR5cGUgPT0gMyk/MToyLFxyXG5cdFx0XHRcdFx0ZHVyYXRpb246IHRoaXMuY291bnQrMVxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdFx0dGhpcy51c2VyQmFsYW5jZSgpO1xyXG5cdFx0XHR9LFxuXHRcdFx0Zm9ybWF0RnVuKG51bSl7XG5cdFx0XHRcdGxldCBzdHIgPSBcIlwiLGgsbSxzO1xuXHRcdFx0XHRoPU1hdGguZmxvb3IobnVtLzM2MDApO1xuXHRcdFx0XHRtPU1hdGguZmxvb3IoKG51bS1oKjM2MDApLzYwKTtcblx0XHRcdFx0cz0obnVtLWgqMzYwMC1tKjYwKTtcblx0XHRcdFx0c3RyID0gKGg8PTk/JzAnK2g6aCkrXCI6XCIrKG08PTk/JzAnK206bSkrXCI6XCIrKHM8PTk/JzAnK3M6cylcblx0XHRcdFx0cmV0dXJuIHN0cjtcblx0XHRcdH0sXG5cdFx0XHR0b1R1aWxpdSgpIHtcblx0XHRcdFx0Y29uc3QgdGhhdCA9IHRoaXM7XG5cdFx0XHRcdGNvbnNvbGUubG9nKFwidG9UdWlsaXVcIix0aGlzLnNlbGxlclN0cmVhbUlkKVxuXHRcdFx0XHR0aGF0LmVuZ2luZS5zdGFydFBsYXlpbmdTdHJlYW0odGhpcy5zZWxsZXJTdHJlYW1JZCk7XHJcblx0XHRcdFx0dGhhdC5pc09wZW5Tb2NrZXQgPSBmYWxzZTtcblx0XHRcdFx0WmVnb0V4cHJlc3NFbmdpbmUuaW5zdGFuY2UoKS5vbihcInBsYXllclN0YXRlVXBkYXRlXCIsIChzdHJlYW1JRCwgc3RhdGUsIGVycm9yQ29kZSwgZXh0ZW5kZWREYXRhKSA9PiB7XG5cdFx0XHRcdCAgICAvKiog6LCD55So5ouJ5rWB5o6l5Y+j5oiQ5Yqf5ZCO77yM5b2T5ouJ5rWB5Zmo54q25oCB5Y+R55Sf5Y+Y5pu077yM5aaC5Ye6546w572R57uc5Lit5pat5a+86Ie05o6o5rWB5byC5bi4562J5oOF5Ya177yMU0RL5Zyo6YeN6K+V5ouJ5rWB55qE5ZCM5pe277yM5Lya6YCa6L+H6K+l5Zue6LCD6YCa55+lICovXG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhcInBsYXllclN0YXRlVXBkYXRlXCIsc3RyZWFtSUQpXG5cdFx0XHRcdCB9KTtcblx0XHRcdH1cblx0XHR9LFxuXHRcdG9uQmFja1ByZXNzKCkge1xuXHRcdFx0aWYodGhpcy5pc0d1YWR1YW4pe1xuXHRcdFx0XHR0aGlzLnRvR3VhZHVhbigpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuPC9zY3JpcHQ+XG5cbjxzdHlsZSBsYW5nPVwic2Nzc1wiPlxuLnJvb217XHJcblx0YmFja2dyb3VuZC1jb2xvcjogIzAwMDtcblx0Ji1uYXZiYXJ7XG5cdFx0aGVpZ2h0OiA0NHB4O1xuXHRcdHBvc2l0aW9uOiBmaXhlZDtcblx0XHRsZWZ0OiAwO1xuXHRcdHRvcDogMDtcblx0XHR6LWluZGV4OiAxMjI7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRcdC5uYXZiYXJ7XG5cdFx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRcdFx0aGVpZ2h0OiA0NHB4O1xuXHRcdFx0bGluZS1oZWlnaHQ6IDQ0cHg7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRmb250LXNpemU6IDMwcHg7XG5cdFx0XHQudHh0e1xuXHRcdFx0XHRmb250LXNpemU6IDIwcHg7XG5cdFx0XHRcdGNvbG9yOiAjZmZmZmZmO1xuXHRcdFx0fVxuXHRcdFx0LnRpdGxle1xuXHRcdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0XHRcdH1cblx0XHRcdC5iYWNre1xuXHRcdFx0XHR3aWR0aDogNTBweDtcblx0XHRcdFx0aGVpZ2h0OiA0NHB4O1xuXHRcdFx0XHRwb3NpdGlvbjogZml4ZWQ7XG5cdFx0XHRcdGxlZnQ6IDA7XG5cdFx0XHRcdHotaW5kZXg6IDQ0O1xyXG5cdFx0XHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRcdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0XHRcdFx0LmltZ3tcblx0XHRcdFx0XHR3aWR0aDogMjBweDtcblx0XHRcdFx0XHRoZWlnaHQ6IDIwcHg7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblx0Ji1oZHtcblx0IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdCBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0IHotaW5kZXg6IDI7XG5cdC5zaGl0dXtcblx0XHR3aWR0aDogMzAwcnB4O1xuXHRcdGhlaWdodDogMzgwcnB4O1xuXHRcdGJvcmRlci1yYWRpdXM6IDEwcnB4O1xuXHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0cG9zaXRpb246IGZpeGVkO1xuXHRcdHJpZ2h0OiAyMHJweDtcblx0XHR0b3A6IDEyMHJweDtcblx0XHR6LWluZGV4OiAyMTI7XG5cdH1cbiB9XG4gJi1iZHtcclxuXHQgcG9zaXRpb246IHJlbGF0aXZlO1xuXHQgLnBpY3tcblx0XHQgd2lkdGg6IDEwMCU7XG5cdFx0IGhlaWdodDogMTAwJTtcblx0XHQgZGlzcGxheTogYmxvY2s7XG5cdCB9XHJcblx0IC5kaWFuLW9ue1xyXG5cdCBcdHdpZHRoOiA2NTBycHg7XHJcblx0IFx0bWluLWhlaWdodDogNjQ4cnB4O1xyXG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0bWFyZ2luLWxlZnQ6IDUwcnB4O1xyXG5cdFx0dG9wOiAyNTBycHg7XHJcblx0XHR6LWluZGV4OiAxO1xyXG5cdCBcdC50YWd7XHJcblx0IFx0XHR3aWR0aDogNjYwcnB4O1xyXG5cdCBcdFx0aGVpZ2h0OiAzMzBycHg7XHJcblx0IFx0XHRiYWNrZ3JvdW5kOiByZ2JhKDM1LCAzMiwgNDgsIDAuMzYpO1xyXG5cdCBcdFx0Ym9yZGVyLXJhZGl1czogMjBycHg7XHJcblx0IFx0XHRtYXJnaW46IDAgYXV0bztcclxuXHQgXHRcdHBhZGRpbmc6IDMwcnB4O1xyXG5cdCBcdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcclxuXHQgXHRcdHRleHQtYWxpZ246IGxlZnQ7XHJcblx0IFx0XHRtYXJnaW4tdG9wOiAzMHJweDtcclxuXHQgXHRcdC50aXRsZXN7XHJcblx0IFx0XHRcdC50e1xyXG5cdFx0XHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XHJcblx0XHRcdFx0XHRmb250LXNpemU6IDMwcnB4O1xyXG5cdFx0XHRcdFx0Y29sb3I6ICNGRkZGRkY7XHJcblx0XHRcdFx0fVxyXG5cdCBcdFx0fVxyXG5cdCBcdFx0LmRlc2Nze1xyXG5cdCBcdFx0XHRtYXJnaW4tdG9wOiAyMHJweDtcclxuXHQgXHRcdFx0LnR7XHJcblx0XHRcdFx0XHRmb250LXNpemU6IDI0cnB4O1xyXG5cdFx0XHRcdFx0Y29sb3I6ICNCOEI3QkM7XHJcblx0XHRcdFx0XHRsaW5lLWhlaWdodDogNDVycHg7XHJcblx0XHRcdFx0XHRmb250LXdlaWdodDogNDAwO1xyXG5cdFx0XHRcdH1cclxuXHQgXHRcdH1cclxuXHQgXHR9XHJcblx0IFx0LmluZm97XHJcblx0IFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0IFx0XHRvdmVyZmxvdzogaGlkZGVuO1xyXG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRcdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuXHQgXHRcdC5hdmF0YXJ7XHJcblx0IFx0XHRcdHdpZHRoOiAxODBycHg7XHJcblx0IFx0XHRcdGhlaWdodDogMTgwcnB4O1xyXG5cdCBcdFx0XHRib3JkZXItcmFkaXVzOiA1MCU7XHJcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XHJcblx0XHRcdFx0bWFyZ2luOiAwIGF1dG87XHJcblx0IFx0XHR9XHJcblx0IFx0XHQubmFtZXtcclxuXHQgXHRcdFx0Zm9udC13ZWlnaHQ6IDUwMDtcclxuXHQgXHRcdFx0bWFyZ2luLXRvcDogMTBycHg7XHJcblx0IFx0XHRcdHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcblx0IFx0XHRcdG92ZXJmbG93OiBoaWRkZW47XHJcblx0IFx0XHRcdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG5cdCBcdFx0XHRvdmVyZmxvdzogaGlkZGVuO1xyXG5cdCBcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdCBcdFx0XHRtYXJnaW4tdG9wOiAxMHJweDtcclxuXHRcdFx0XHQudHtcclxuXHRcdFx0XHRcdGZvbnQtc2l6ZTogMjhycHg7XHJcblx0XHRcdFx0XHRjb2xvcjogI0ZGRkZGRjtcclxuXHRcdFx0XHR9XHJcblx0IFx0XHR9XHJcblx0IFx0XHQuYnRue1xyXG5cdCBcdFx0XHR3aWR0aDogMTcwcnB4O1xyXG5cdCBcdFx0XHRsaW5lLWhlaWdodDogNTZycHg7XHJcblx0IFx0XHRcdGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgwZGVnLCAjRkY5MTI0LCAjQkQ0NzAwKTtcclxuXHQgXHRcdFx0Ym9yZGVyLXJhZGl1czogNTZycHg7XHJcblx0IFx0XHRcdFxyXG5cdCBcdFx0XHRtYXJnaW46IDAgYXV0bztcclxuXHQgXHRcdFx0bWFyZ2luLXRvcDogMjBycHg7XHJcblx0IFx0XHRcdC50e1xyXG5cdFx0XHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XHJcblx0IFx0XHRcdFx0Zm9udC1zaXplOiAzMHJweDtcclxuXHQgXHRcdFx0XHRjb2xvcjogI0ZGRkZGRjtcclxuXHQgXHRcdFx0fVxyXG5cdCBcdFx0fVxyXG5cdCBcdFx0LnR4dHtcclxuXHQgXHRcdFx0XHJcblx0IFx0XHRcdG1hcmdpbi10b3A6IDIwcnB4O1xyXG5cdCBcdFx0XHRvcGFjaXR5OiAwLjM7XHJcblx0XHRcdFx0LnR7XHJcblx0XHRcdFx0XHRmb250LXdlaWdodDogNTAwO1xyXG5cdFx0XHRcdFx0Zm9udC1zaXplOiAyNnJweDtcclxuXHRcdFx0XHRcdGNvbG9yOiAjRkZGRkZGO1xyXG5cdFx0XHRcdH1cclxuXHQgXHRcdH1cclxuXHQgXHR9XHJcblx0IH1cbiB9XG4gJi1mZHtcblx0aGVpZ2h0OiAyMjBycHg7XG5cdHBvc2l0aW9uOiBmaXhlZDtcblx0bGVmdDogMDtcblx0Ym90dG9tOiAyMDBycHg7XG5cdHotaW5kZXg6IDEyMjtcblx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0Lml0ZW17XG5cdFx0ZmxleDogMTtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0Zm9udC1zaXplOiAzMHJweDtcblx0XHRmb250LXdlaWdodDogNDAwO1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHQudHh0e1xuXHRcdFx0bWFyZ2luLXRvcDogMjBycHg7XG5cdFx0XHQudHtcblx0XHRcdFx0Zm9udC1zaXplOiAzMHJweDtcblx0XHRcdFx0Y29sb3I6ICNmZmZmZmY7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdC5waWN7XG5cdFx0XHR3aWR0aDogMTMwcnB4O1xuXHRcdFx0aGVpZ2h0OiAxMzBycHg7XG5cdFx0XHRib3JkZXItcmFkaXVzOiA1MCU7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHRcdFx0bWFyZ2luOiAwIGF1dG87XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAxMHJweDtcblx0XHRcdC5waW1ne1xuXHRcdFx0XHR3aWR0aDogMTMwcnB4O1xuXHRcdFx0XHRoZWlnaHQ6IDEzMHJweDtcblx0XHRcdH1cblx0XHRcdFxuXHRcdH1cblx0fVxufVxuXHQmLWZkMXtcbiBcdFx0aGVpZ2h0OiAyMjBycHg7XG4gXHRcdHBvc2l0aW9uOiBmaXhlZDtcbiBcdFx0bGVmdDogMDtcbiBcdFx0Ym90dG9tOiA0MHJweDtcbiBcdFx0ei1pbmRleDogNDQ7XG4gXHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdFx0ZmxleC13cmFwOiB3cmFwO1xuXHRcdC5pdGVtc3tcblx0XHRcdGZsZXg6IDE7XG5cdFx0XHRtYXJnaW4tdG9wOiA3MHJweDtcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdFx0LnBpY3tcblx0XHRcdFx0d2lkdGg6IDEzMHJweDtcblx0XHRcdFx0aGVpZ2h0OiAxMzBycHg7XG5cdFx0XHRcdGJvcmRlci1yYWRpdXM6IDUwJTtcblx0XHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRcdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdFx0XHRcdG1hcmdpbjogMCBhdXRvO1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiAxMHJweDtcblx0XHRcdFx0LnBpbWd7XG5cdFx0XHRcdFx0d2lkdGg6IDEzMHJweDtcblx0XHRcdFx0XHRoZWlnaHQ6IDEzMHJweDtcblx0XHRcdFx0fVxuXHRcdFx0XHRcblx0XHRcdH1cblx0XHRcdC5vZmZ7XG5cdFx0XHRcdHdpZHRoOiA0OXJweDtcblx0XHRcdFx0aGVpZ2h0OiA0NHJweDtcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHRyaWdodDogMjAwcnB4O1xuXHRcdFx0XHR6LWluZGV4OiAyO1xuXHRcdFx0XHR0b3A6IDUwcnB4O1xuXHRcdFx0fVxuXHRcdH1cbiBcdH1cbn1cbjwvc3R5bGU+XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///31\n"); /***/ }), /* 32 */