| | |
| | | attrs: { _i: 21 }, |
| | | on: { |
| | | click: function($event) { |
| | | return _vm.changeIP() |
| | | return _vm.config() |
| | | } |
| | | } |
| | | }) |
| | |
| | | ) |
| | | ] |
| | | ), |
| | | _vm._$s(26, "i", _vm.loading) |
| | | _c( |
| | | "view", |
| | | [ |
| | | _c("uni-popup", { ref: "popup", attrs: { type: "right", _i: 27 } }, [ |
| | | _c( |
| | | "view", |
| | | { staticClass: _vm._$s(28, "sc", "config"), attrs: { _i: 28 } }, |
| | | [ |
| | | _c("view", [_c("text"), _c("input", {})]), |
| | | _c("view", [_c("text"), _c("input", {})]), |
| | | _c("view", [_c("text"), _c("input", {})]), |
| | | _c("view", [_c("button")]) |
| | | ] |
| | | ) |
| | | ]) |
| | | ], |
| | | 1 |
| | | ), |
| | | _vm._$s(40, "i", _vm.loading) |
| | | ? _c( |
| | | "view", |
| | | { |
| | | staticClass: _vm._$s(26, "sc", "cu-load load-modal"), |
| | | attrs: { _i: 26 } |
| | | staticClass: _vm._$s(40, "sc", "cu-load load-modal"), |
| | | attrs: { _i: 40 } |
| | | }, |
| | | [ |
| | | _c("image", { |
| | | staticClass: _vm._$s(27, "sc", "round"), |
| | | staticClass: _vm._$s(41, "sc", "round"), |
| | | attrs: { |
| | | src: _vm._$s(27, "a-src", __webpack_require__(/*! ../../static/logo1.png */ 31)), |
| | | _i: 27 |
| | | src: _vm._$s(41, "a-src", __webpack_require__(/*! ../../static/logo1.png */ 31)), |
| | | _i: 41 |
| | | } |
| | | }), |
| | | _c("view", { |
| | | staticClass: _vm._$s(28, "sc", "gray-text"), |
| | | attrs: { _i: 28 } |
| | | staticClass: _vm._$s(42, "sc", "gray-text"), |
| | | attrs: { _i: 42 } |
| | | }) |
| | | ] |
| | | ) |
| | |
| | | [ |
| | | _c( |
| | | "uni-popup", |
| | | { ref: "inputDialog", attrs: { type: "dialog", _i: 30 } }, |
| | | { ref: "inputDialog", attrs: { type: "dialog", _i: 44 } }, |
| | | [ |
| | | _c("uni-popup-dialog", { |
| | | ref: "inputClose", |
| | |
| | | mode: "input", |
| | | title: "设置IP", |
| | | placeholder: "请输入服务器IP", |
| | | _i: 31 |
| | | _i: 45 |
| | | }, |
| | | on: { confirm: _vm.dialogInputConfirm }, |
| | | model: { |
| | | value: _vm._$s(31, "v-model", _vm.IP), |
| | | value: _vm._$s(45, "v-model", _vm.IP), |
| | | callback: function($$v) { |
| | | _vm.IP = $$v |
| | | }, |
| | |
| | | [ |
| | | _c( |
| | | "uni-popup", |
| | | { ref: "serverPort", attrs: { type: "dialog", _i: 33 } }, |
| | | { ref: "serverPort", attrs: { type: "dialog", _i: 47 } }, |
| | | [ |
| | | _c("uni-popup-dialog", { |
| | | ref: "inputClose", |
| | |
| | | mode: "input", |
| | | title: "设置端口", |
| | | placeholder: "请输入服务器端口号", |
| | | _i: 34 |
| | | _i: 48 |
| | | }, |
| | | on: { confirm: _vm.serverPortConfirm }, |
| | | model: { |
| | | value: _vm._$s(34, "v-model", _vm.PORT), |
| | | value: _vm._$s(48, "v-model", _vm.PORT), |
| | | callback: function($$v) { |
| | | _vm.PORT = $$v |
| | | }, |
| | |
| | | /***/ (function(module, exports, __webpack_require__) { |
| | | |
| | | "use strict"; |
| | | eval("Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0;\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar _vuex = __webpack_require__(/*! vuex */ 34);\nvar _md = _interopRequireDefault(__webpack_require__(/*! ../../common/md5.js */ 35));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n// import { ACCESS_TOKEN,USER_NAME,USER_INFO } from \"@/common/util/constants\"\n// import configService from '@/common/service/config.service.js';\nvar _default = { data: function data() {return { shape: '', //round 圆形\n loading: false, phoneNo: '', smsCode: '', showPassword: false, //是否显示明文\n loginWay: 1, //1: 账密,2:验证码\n smsCountDown: 0, smsCountInterval: null, toggleDelay: false, version: '', //第三方登录相关信息\n thirdType: \"\", thirdLoginInfo: \"\", thirdLoginState: false, bindingPhoneModal: false, thirdUserUuid: '', url: { bindingThirdPhone: '/sys/thirdLogin/bindingThirdPhone' }, type: '', userName: '', password: '', rember: true, IP: '', PORT: '8080' // 默认端口号\n };}, mounted: function mounted() {var that = this; //缓存的账号\n var HCuname = uni.getStorageSync('HCuname'); //缓存的密码\n var HCpassw = uni.getStorageSync('HCpassw'); //有缓存就赋值给文本没有就清空\n if (HCuname && HCpassw) {that.userName = HCuname;that.password = HCpassw;} else {that.userName = '';that.password = '';}var UIP = uni.getStorageSync('UIP');if (UIP) {that.IP = UIP;that.baseIP = UIP;} else {that.IP = '';}var UPORT = uni.getStorageSync('UPORT');if (UPORT) {that.PORT = UPORT;that.basePORT = UPORT;} else {that.PORT = '8080';}}, onLoad: function onLoad() {var that = this;plus.runtime.getProperty(plus.runtime.appid, function (wgtinfo) {that.version = wgtinfo.version;});}, computed: { isSendSMSEnable: function isSendSMSEnable() {return this.smsCountDown <= 0 && this.phoneNo.length > 4;}, getSendBtnText: function getSendBtnText() {if (this.smsCountDown > 0) {\n return this.smsCountDown + '秒后发送';\n } else {\n return '发送验证码';\n }\n },\n canSMSLogin: function canSMSLogin() {\n return this.userName.length > 4 && this.smsCode.length > 4;\n },\n canPwdLogin: function canPwdLogin() {\n return this.userName.length > 4 && this.password.length > 4;\n } },\n\n methods: {\n longpressImg: function longpressImg() {// 长按图片\n this.$refs.serverPort.open();\n },\n serverPortConfirm: function serverPortConfirm(type) {\n this.basePORT = type;\n // 存入本地缓存\n this.PORT = type;\n uni.setStorageSync('UPORT', this.basePORT);\n },\n changeIP: function changeIP() {\n this.$refs.inputDialog.open();\n },\n dialogInputConfirm: function dialogInputConfirm(type) {\n this.baseIP = type;\n // 存入本地缓存\n this.IP = type;\n uni.setStorageSync('UIP', this.baseIP);\n },\n checkboxChange: function checkboxChange(e) {\n if (e.detail.value.length == 1) {\n\n //获取缓存的账号\n uni.getStorageSync('HCuname', this.userName);\n uni.getStorageSync('HCpassw', this.password);\n } else {\n uni.removeStorageSync('HCuname');\n uni.removeStorageSync('HCpassw');\n }\n },\n onLogin: function onLogin() {var _this = this;\n if (!this.userName || this.userName.length == 0) {\n uni.showToast({ title: '请填写账号', icon: \"none\" });\n return;\n }\n if (!this.password || this.password.length == 0) {\n uni.showToast({ title: '请填写密码', icon: \"none\" });\n return;\n }\n if (this.baseIP == undefined || this.baseIP == '') {\n uni.showToast({\n title: '请先设置IP',\n icon: 'none' });\n\n return;\n }\n if (this.basePORT == undefined) {\n uni.showToast({\n title: '长按图片输入端口号',\n icon: 'none' });\n\n return;\n }\n uni.showLoading();\n setTimeout(function () {\n uni.hideLoading();\n uni.showToast({\n title: '登录超时',\n position: 'bottom',\n duration: 1000 });\n\n }, 6000);\n uni.request({\n url: this.baseHttp + this.baseIP + ':' + this.basePORT + this.baseUrl + '/login.action',\n data: {\n username: this.userName,\n password: _md.default.hex_md5(this.password) },\n\n header: {\n \"content-type\": \"application/json\" },\n\n success: function success(result) {\n var res = result.data;\n uni.hideLoading();\n if (res.code == 200) {\n uni.showToast({\n title: '登录成功',\n position: 'bottom',\n duration: 1000 });\n\n if (_this.rember) {\n uni.setStorageSync('HCuname', _this.userName);\n uni.setStorageSync('HCpassw', _this.password);\n } else {\n uni.removeStorageSync('HCuname');\n uni.removeStorageSync('HCpassw');\n }\n uni.setStorageSync('token', res.data.token);\n setTimeout(function () {\n uni.navigateBack(); // 小程序用这个 把首页路由放第一个\n uni.reLaunch({\n url: '../index/index' });\n\n }, 1000);\n } else {\n uni.showToast({\n title: res.msg,\n icon: \"none\",\n position: 'top' });\n\n }\n\n } });\n\n },\n saveClientId: function saveClientId() {var _this2 = this;\n var info = plus.push.getClientInfo();\n var cid = info.clientid;\n this.$http.get(\"/sys/user/saveClientId\", { params: { clientId: cid } }).then(function (res) {\n _this2.$tip.success('登录成功!');\n _this2.$Router.replaceAll({ name: 'index' });\n });\n },\n changePassword: function changePassword() {\n this.showPassword = !this.showPassword;\n },\n loginSuccess: function loginSuccess() {\n // 登陆成功,重定向到主页\n this.$Router.replace({ name: 'index' });\n },\n requestFailed: function requestFailed(err) {\n this.$message.warning(\"登录失败\");\n } },\n\n beforeDestroy: function beforeDestroy() {\n if (this.smsCountInterval) {\n clearInterval(this.smsCountInterval);\n }\n } };exports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvbG9naW4vbG9naW4udnVlIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFzRUE7QUFDQSxxRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFGQTtBQUdBO2VBRUEsRUFDQSxJQURBLGtCQUNBLENBQ0EsU0FDQSxTQURBLEVBQ0E7QUFDQSxvQkFGQSxFQUdBLFdBSEEsRUFJQSxXQUpBLEVBS0EsbUJBTEEsRUFLQTtBQUNBLGlCQU5BLEVBTUE7QUFDQSxxQkFQQSxFQVFBLHNCQVJBLEVBU0Esa0JBVEEsRUFVQSxXQVZBLEVBV0E7QUFDQSxtQkFaQSxFQWFBLGtCQWJBLEVBY0Esc0JBZEEsRUFlQSx3QkFmQSxFQWdCQSxpQkFoQkEsRUFpQkEsT0FDQSxzREFEQSxFQWpCQSxFQW9CQSxRQXBCQSxFQXFCQSxZQXJCQSxFQXNCQSxZQXRCQSxFQXVCQSxZQXZCQSxFQXdCQSxNQXhCQSxFQXlCQSxZQXpCQSxDQXlCQTtBQXpCQSxNQTJCQSxDQTdCQSxFQThCQSxPQTlCQSxxQkE4QkEsQ0FDQSxnQkFEQSxDQUVBO0FBQ0EsZ0RBSEEsQ0FJQTtBQUNBLGdEQUxBLENBTUE7QUFDQSw2QkFDQSx3QkFDQSx3QkFDQSxDQUhBLE1BR0EsQ0FDQSxtQkFDQSxtQkFDQSxDQUVBLG9DQUNBLFVBQ0EsY0FDQSxrQkFDQSxDQUhBLE1BR0EsQ0FDQSxhQUNBLENBRUEsd0NBQ0EsWUFDQSxrQkFDQSxzQkFDQSxDQUhBLE1BR0EsQ0FDQSxtQkFDQSxDQUNBLENBNURBLEVBNkRBLDJCQUVBLGdCQUNBLGlFQUNBLCtCQUNBLENBRkEsRUFLQSxDQXJFQSxFQXNFQSxZQUNBLGVBREEsNkJBQ0EsQ0FDQSx5REFDQSxDQUhBLEVBSUEsY0FKQSw0QkFJQSxDQUNBO0FBQ0E7QUFDQSxPQUZBLE1BRUE7QUFDQTtBQUNBO0FBQ0EsS0FWQTtBQVdBLGVBWEEseUJBV0E7QUFDQTtBQUNBLEtBYkE7QUFjQSxlQWRBLHlCQWNBO0FBQ0E7QUFDQSxLQWhCQSxFQXRFQTs7QUF3RkE7QUFDQSxnQkFEQSwwQkFDQTtBQUNBO0FBQ0EsS0FIQTtBQUlBLHFCQUpBLDZCQUlBLElBSkEsRUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FUQTtBQVVBLFlBVkEsc0JBVUE7QUFDQTtBQUNBLEtBWkE7QUFhQSxzQkFiQSw4QkFhQSxJQWJBLEVBYUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBbEJBO0FBbUJBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsT0FMQSxNQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0E3QkE7QUE4QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlCQURBO0FBRUEsc0JBRkE7O0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0QkFEQTtBQUVBLHNCQUZBOztBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVCQURBO0FBRUEsNEJBRkE7QUFHQSx3QkFIQTs7QUFLQSxPQVBBLEVBT0EsSUFQQTtBQVFBO0FBQ0EsK0ZBREE7QUFFQTtBQUNBLGlDQURBO0FBRUEsc0RBRkEsRUFGQTs7QUFNQTtBQUNBLDRDQURBLEVBTkE7O0FBU0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJCQURBO0FBRUEsZ0NBRkE7QUFHQSw0QkFIQTs7QUFLQTtBQUNBO0FBQ0E7QUFDQSxhQUhBLE1BR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUNBREEsQ0FDQTtBQUNBO0FBQ0EscUNBREE7O0FBR0EsYUFMQSxFQUtBLElBTEE7QUFNQSxXQXBCQSxNQW9CQTtBQUNBO0FBQ0EsNEJBREE7QUFFQSwwQkFGQTtBQUdBLDZCQUhBOztBQUtBOztBQUVBLFNBeENBOztBQTBDQSxLQXhHQTtBQXlHQSxnQkF6R0EsMEJBeUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BSEE7QUFJQSxLQWhIQTtBQWlIQSxrQkFqSEEsNEJBaUhBO0FBQ0E7QUFDQSxLQW5IQTtBQW9IQSxnQkFwSEEsMEJBb0hBO0FBQ0E7QUFDQTtBQUNBLEtBdkhBO0FBd0hBLGlCQXhIQSx5QkF3SEEsR0F4SEEsRUF3SEE7QUFDQTtBQUNBLEtBMUhBLEVBeEZBOztBQW9OQSxlQXBOQSwyQkFvTkE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQXhOQSxFIiwiZmlsZSI6IjMzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiICA8dGVtcGxhdGU+XHJcblx0PHZpZXcgY2xhc3M9XCJ6YWktYm94XCI+XHJcblx0XHRcclxuICAgICAgICA8c2Nyb2xsLXZpZXcgc2Nyb2xsLXkgY2xhc3M9XCJwYWdlXCI+XHJcblx0XHRcdFxyXG4gICAgICAgICAgICA8dmlldyBjbGFzcz1cInRleHQtY2VudGVyXCIgOnN0eWxlPVwiW3thbmltYXRpb246ICdzaG93ICcgKyAwLjQrICdzIDEnfV1cIj5cclxuXHRcdFx0XHQ8aW1hZ2Ugc3JjPVwiLi4vLi4vc3RhdGljL2xvZ28ucG5nXCIgbW9kZT0nYXNwZWN0Rml0JyBjbGFzcz1cInphaS1sb2dvXCIgQGxvbmd0YXA9J2xvbmdwcmVzc0ltZyc+PC9pbWFnZT5cclxuXHRcdFx0PC92aWV3PlxyXG4gICAgICAgICAgICA8dmlldyBjbGFzcz1cImJveCBwYWRkaW5nLWxyLXhsIGxvZ2luLXBhZGRpbmd0b3BcIiA6c3R5bGU9XCJbe2FuaW1hdGlvbjogJ3Nob3cgJyArIDAuNisgJ3MgMSd9XVwiPlxyXG5cdFx0XHRcdDxibG9jayB2LWlmPVwibG9naW5XYXk9PTFcIj5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiY3UtZm9ybS1ncm91cCBtYXJnaW4tdG9wICBzaGFkb3ctd2FycFwiIDpjbGFzcz1cIltzaGFwZT09J3JvdW5kJz8ncm91bmQnOicnXVwiPlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInRpdGxlLWxvZ2luXCI+PHRleHQgY2xhc3M9XCJjdUljb24tcGVvcGxlIG1hcmdpbi1yaWdodC14c1wiPjwvdGV4dD7otKblj7c6PC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8aW5wdXQgcGxhY2Vob2xkZXI9XCLor7fovpPlhaXotKblj7dcIiBuYW1lPVwiaW5wdXRcIiB2LW1vZGVsPVwidXNlck5hbWVcIj48L2lucHV0PlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJjdS1mb3JtLWdyb3VwIG1hcmdpbi10b3Agc2hhZG93LXdhcnBcIiA6Y2xhc3M9XCJbc2hhcGU9PSdyb3VuZCc/J3JvdW5kJzonJ11cIj5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0aXRsZS1sb2dpblwiPjx0ZXh0IGNsYXNzPVwiY3VJY29uLWxvY2sgbWFyZ2luLXJpZ2h0LXhzXCI+PC90ZXh0PuWvhueggTo8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdDxpbnB1dCBjbGFzcz1cInVuaS1pbnB1dFwiIHBsYWNlaG9sZGVyPVwi6K+36L6T5YWl5a+G56CBXCIgOnBhc3N3b3JkPVwiIXNob3dQYXNzd29yZFwiIHYtbW9kZWw9XCJwYXNzd29yZFwiIC8+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiYWN0aW9uIHRleHQtbGdcIj5cclxuXHRcdFx0XHRcdFx0ICAgIDx0ZXh0IDpjbGFzcz1cIltzaG93UGFzc3dvcmQgPyAnY3VJY29uLWF0dGVudGlvbicgOiAnY3VJY29uLWF0dGVudGlvbmZvcmJpZCddXCIgQGNsaWNrPVwiY2hhbmdlUGFzc3dvcmRcIj48L3RleHQ+XHJcblx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZmxleCBtYXJnaW4teHMganVzdGlmeS1iZXR3ZWVuXCI+XHJcblx0XHRcdFx0XHRcdDxjaGVja2JveC1ncm91cCBjbGFzcz1cInJlbWJlclwiPlxyXG5cdFx0XHRcdFx0XHRcdDxsYWJlbD5cclxuXHRcdFx0XHRcdFx0XHRcdDxjaGVja2JveCB2YWx1ZT1cImNiXCIgOmNoZWNrZWQ9XCJyZW1iZXJcIiAgQHRhcD1cInJlbWJlciA9ICFyZW1iZXJcIiBzdHlsZT1cInRyYW5zZm9ybTpzY2FsZSgwLjcpXCIgLz48dGV4dD7orrDkvY/lr4bnoIE8L3RleHQ+XHJcblx0XHRcdFx0XHRcdFx0PC9sYWJlbD5cclxuXHRcdFx0XHRcdFx0PC9jaGVja2JveC1ncm91cD5cclxuXHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJjaGFuZ2VJUFwiIEBjbGljaz1cImNoYW5nZUlQKClcIj7orr7nva5JUDwvdGV4dD5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZmxleCBwYWRkaW5nIGp1c3RpZnktY2VudGVyIG1hcmdpbi10b3BcIj5cclxuXHRcdFx0XHRcdFx0PGJ1dHRvbiBjbGFzcz1cImN1LWJ0biBiZy1ibHVlIGxnICBzaGFkb3dcIiA6bG9hZGluZz1cImxvYWRpbmdcIiA6Y2xhc3M9XCJbc2hhcGU9PSdyb3VuZCc/J3JvdW5kJzonJ11cIlxyXG5cdFx0XHRcdFx0XHRcdEB0YXA9XCJvbkxvZ2luXCI+PHRleHQgc3BhY2U9XCJlbXNwXCI+e3tsb2FkaW5nID8gXCLnmbvlvZXkuK0uLi5cIjpcIiDnmbvlvZUgXCJ9fTwvdGV4dD5cclxuXHRcdFx0XHRcdFx0PC9idXR0b24+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PC9ibG9jaz5cclxuXHRcclxuXHRcdFx0XHQ8IS0tICNpZmRlZiBBUFAtUExVUyAtLT5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cInBhZGRpbmcgZmxleCBmbGV4LWRpcmVjdGlvbiAgdGV4dC1jZW50ZXJcIiBzdHlsZT1cInBvc2l0aW9uOiBmaXhlZDt3aWR0aDogODAlO2JvdHRvbTogMDt0ZXh0LWFsaWduOiBjZW50ZXI7XCI+XHJcblx0XHRcdFx0XHTlvZPliY3niYjmnKw6e3t2ZXJzaW9ufX1cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PCEtLSAjZW5kaWYgLS0+XHJcblx0XHRcdFx0XHJcbiAgICAgICAgICAgIDwvdmlldz5cclxuICAgICAgICA8L3Njcm9sbC12aWV3PlxyXG5cdFx0PCEtLSDnmbvlvZXliqDovb3lvLnnqpcgLS0+XHJcblx0XHQ8dmlldyBjbGFzcz1cImN1LWxvYWQgbG9hZC1tb2RhbFwiIHYtaWY9XCJsb2FkaW5nXCI+XHJcblx0XHRcdDwhLS0gPHZpZXcgY2xhc3M9XCJjdUljb24tZW1vamlmaWxsIHRleHQtb3JhbmdlXCI+PC92aWV3PiAtLT5cclxuXHRcdFx0PGltYWdlIHNyYz1cIi4uLy4uL3N0YXRpYy9sb2dvMS5wbmdcIiBtb2RlPVwiYXNwZWN0Rml0XCIgY2xhc3M9XCJyb3VuZFwiPjwvaW1hZ2U+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwiZ3JheS10ZXh0XCI+55m75b2V5LitLi4uPC92aWV3PlxyXG5cdFx0PC92aWV3PlxyXG5cdFx0PHZpZXc+XHJcblx0XHRcdDx1bmktcG9wdXAgcmVmPVwiaW5wdXREaWFsb2dcIiB0eXBlPVwiZGlhbG9nXCI+XHJcblx0XHRcdFx0PHVuaS1wb3B1cC1kaWFsb2cgcmVmPVwiaW5wdXRDbG9zZVwiIG1vZGU9XCJpbnB1dFwiIHRpdGxlPVwi6K6+572uSVBcIiB2LW1vZGVsPVwiSVBcIlxyXG5cdFx0XHRcdFx0cGxhY2Vob2xkZXI9XCLor7fovpPlhaXmnI3liqHlmahJUFwiIEBjb25maXJtPVwiZGlhbG9nSW5wdXRDb25maXJtXCI+XHJcblx0XHRcdFx0PC91bmktcG9wdXAtZGlhbG9nPlx0XHJcblx0XHRcdDwvdW5pLXBvcHVwPlxyXG5cdFx0PC92aWV3PlxyXG5cdFx0PHZpZXcgc3R5bGU9XCJtYXJnaW4tdG9wOiAxMHJweDtcIj5cclxuXHRcdFx0PHVuaS1wb3B1cCByZWY9XCJzZXJ2ZXJQb3J0XCIgdHlwZT1cImRpYWxvZ1wiPlxyXG5cdFx0XHRcdDx1bmktcG9wdXAtZGlhbG9nIHJlZj1cImlucHV0Q2xvc2VcIiBtb2RlPVwiaW5wdXRcIiB0aXRsZT1cIuiuvue9ruerr+WPo1wiIHYtbW9kZWw9XCJQT1JUXCJcclxuXHRcdFx0XHRcdHBsYWNlaG9sZGVyPVwi6K+36L6T5YWl5pyN5Yqh5Zmo56uv5Y+j5Y+3XCIgQGNvbmZpcm09XCJzZXJ2ZXJQb3J0Q29uZmlybVwiPlxyXG5cdFx0XHRcdDwvdW5pLXBvcHVwLWRpYWxvZz5cdFxyXG5cdFx0XHQ8L3VuaS1wb3B1cD5cclxuXHRcdDwvdmlldz5cclxuICAgIDwvdmlldz5cclxuXHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0PlxyXG5cdC8vIGltcG9ydCB7IEFDQ0VTU19UT0tFTixVU0VSX05BTUUsVVNFUl9JTkZPIH0gZnJvbSBcIkAvY29tbW9uL3V0aWwvY29uc3RhbnRzXCJcclxuXHRpbXBvcnQgeyBtYXBBY3Rpb25zIH0gZnJvbSBcInZ1ZXhcIlxyXG5cdGltcG9ydCBtZDUgZnJvbSAnLi4vLi4vY29tbW9uL21kNS5qcydcclxuICAgIC8vIGltcG9ydCBjb25maWdTZXJ2aWNlIGZyb20gJ0AvY29tbW9uL3NlcnZpY2UvY29uZmlnLnNlcnZpY2UuanMnO1xyXG5cdFxyXG4gICAgZXhwb3J0IGRlZmF1bHQge1xyXG4gICAgICAgIGRhdGEoKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcblx0XHRcdFx0c2hhcGU6JycsLy9yb3VuZCDlnIblvaJcclxuXHRcdFx0XHRsb2FkaW5nOiBmYWxzZSxcclxuXHRcdFx0XHRwaG9uZU5vOiAnJyxcclxuXHRcdFx0XHRzbXNDb2RlOiAnJyxcclxuXHRcdFx0XHRzaG93UGFzc3dvcmQ6IGZhbHNlLCAvL+aYr+WQpuaYvuekuuaYjuaWh1xyXG5cdFx0XHRcdGxvZ2luV2F5OiAxLCAvLzE6IOi0puWvhu+8jDLvvJrpqozor4HnoIFcclxuXHRcdFx0XHRzbXNDb3VudERvd246IDAsXHJcblx0XHRcdFx0c21zQ291bnRJbnRlcnZhbDogbnVsbCxcclxuXHRcdFx0XHR0b2dnbGVEZWxheTogZmFsc2UsXHJcblx0XHRcdFx0dmVyc2lvbjonJyxcclxuXHRcdFx0XHQvL+esrOS4ieaWueeZu+W9leebuOWFs+S/oeaBr1xyXG5cdFx0XHRcdHRoaXJkVHlwZTpcIlwiLFxyXG5cdFx0XHRcdHRoaXJkTG9naW5JbmZvOlwiXCIsXHJcblx0XHRcdFx0dGhpcmRMb2dpblN0YXRlOmZhbHNlLFxyXG5cdFx0XHRcdGJpbmRpbmdQaG9uZU1vZGFsOmZhbHNlLFxyXG5cdFx0XHRcdHRoaXJkVXNlclV1aWQ6JycsXHJcblx0XHRcdFx0dXJsOiB7XHJcblx0XHRcdFx0XHRiaW5kaW5nVGhpcmRQaG9uZTogJy9zeXMvdGhpcmRMb2dpbi9iaW5kaW5nVGhpcmRQaG9uZSdcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdHR5cGU6JycsXHJcblx0XHRcdFx0dXNlck5hbWU6JycsXHJcblx0XHRcdFx0cGFzc3dvcmQ6JycsXHJcblx0XHRcdFx0cmVtYmVyOnRydWUsXHJcblx0XHRcdFx0SVA6JycsXHJcblx0XHRcdFx0UE9SVDonODA4MCcsLy8g6buY6K6k56uv5Y+j5Y+3XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfSxcclxuXHRcdG1vdW50ZWQoKSB7XHJcblx0XHRcdGxldCB0aGF0ID0gdGhpcztcclxuXHRcdFx0Ly/nvJPlrZjnmoTotKblj7dcclxuXHRcdFx0Y29uc3QgSEN1bmFtZSA9IHVuaS5nZXRTdG9yYWdlU3luYygnSEN1bmFtZScpO1xyXG5cdFx0XHQvL+e8k+WtmOeahOWvhueggVxyXG5cdFx0XHRjb25zdCBIQ3Bhc3N3ID0gdW5pLmdldFN0b3JhZ2VTeW5jKCdIQ3Bhc3N3Jyk7XHJcblx0XHRcdC8v5pyJ57yT5a2Y5bCx6LWL5YC857uZ5paH5pys5rKh5pyJ5bCx5riF56m6XHJcblx0XHRcdGlmIChIQ3VuYW1lICYmIEhDcGFzc3cpIHtcclxuXHRcdFx0ICAgIHRoYXQudXNlck5hbWUgPSBIQ3VuYW1lO1xyXG5cdFx0XHQgICAgdGhhdC5wYXNzd29yZCA9IEhDcGFzc3c7XHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdCAgICB0aGF0LnVzZXJOYW1lID0gJyc7XHJcblx0XHRcdCAgICB0aGF0LnBhc3N3b3JkID0gJyc7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdGNvbnN0IFVJUCA9IHVuaS5nZXRTdG9yYWdlU3luYygnVUlQJyk7XHJcblx0XHRcdGlmIChVSVApIHtcclxuXHRcdFx0ICAgIHRoYXQuSVAgPSBVSVA7XHJcblx0XHRcdFx0dGhhdC5iYXNlSVAgPSBVSVA7XHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdCAgICB0aGF0LklQID0gJyc7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdGNvbnN0IFVQT1JUID0gdW5pLmdldFN0b3JhZ2VTeW5jKCdVUE9SVCcpO1xyXG5cdFx0XHRpZiAoVVBPUlQpIHtcclxuXHRcdFx0ICAgIHRoYXQuUE9SVCA9IFVQT1JUO1xyXG5cdFx0XHRcdHRoYXQuYmFzZVBPUlQgPSBVUE9SVDtcclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0ICAgIHRoYXQuUE9SVCA9ICc4MDgwJztcclxuXHRcdFx0fVxyXG5cdFx0fSxcclxuXHRcdG9uTG9hZDpmdW5jdGlvbigpe1xyXG5cdFx0XHQvLyAjaWZkZWYgQVBQLVBMVVNcclxuXHRcdFx0dmFyIHRoYXQ9dGhpc1xyXG5cdFx0XHRwbHVzLnJ1bnRpbWUuZ2V0UHJvcGVydHkoIHBsdXMucnVudGltZS5hcHBpZCwgZnVuY3Rpb24gKCB3Z3RpbmZvICkge1xyXG5cdFx0XHRcdHRoYXQudmVyc2lvbj13Z3RpbmZvLnZlcnNpb25cclxuXHRcdFx0fSk7XHJcblx0XHRcdC8vICNlbmRpZlxyXG5cdFx0XHRcclxuXHRcdH0sXHJcblx0XHRjb21wdXRlZDoge1xyXG5cdFx0ICAgICAgaXNTZW5kU01TRW5hYmxlKCkge1xyXG5cdFx0ICAgICAgICByZXR1cm4gdGhpcy5zbXNDb3VudERvd24gPD0gMCAmJiB0aGlzLnBob25lTm8ubGVuZ3RoID4gNDtcclxuXHRcdCAgICAgIH0sXHJcblx0XHQgICAgICBnZXRTZW5kQnRuVGV4dCgpIHtcclxuXHRcdCAgICAgICAgaWYgKHRoaXMuc21zQ291bnREb3duID4gMCkge1xyXG5cdFx0ICAgICAgICAgIHJldHVybiB0aGlzLnNtc0NvdW50RG93biArICfnp5LlkI7lj5HpgIEnO1xyXG5cdFx0ICAgICAgICB9IGVsc2Uge1xyXG5cdFx0ICAgICAgICAgIHJldHVybiAn5Y+R6YCB6aqM6K+B56CBJztcclxuXHRcdCAgICAgICAgfVxyXG5cdFx0ICAgICAgfSxcclxuXHRcdCAgICAgIGNhblNNU0xvZ2luKCkge1xyXG5cdFx0ICAgICAgICByZXR1cm4gdGhpcy51c2VyTmFtZS5sZW5ndGggPiA0ICYmIHRoaXMuc21zQ29kZS5sZW5ndGggPiA0O1xyXG5cdFx0ICAgICAgfSxcclxuXHRcdCAgICAgIGNhblB3ZExvZ2luKCkge1xyXG5cdFx0ICAgICAgICByZXR1cm4gdGhpcy51c2VyTmFtZS5sZW5ndGggPiA0ICYmIHRoaXMucGFzc3dvcmQubGVuZ3RoID4gNDtcclxuXHRcdCAgICAgIH0sXHJcblx0XHR9LFxyXG4gICAgICAgIG1ldGhvZHM6IHtcclxuXHRcdFx0bG9uZ3ByZXNzSW1nKCkgeyAvLyDplb/mjInlm77niYdcclxuXHRcdFx0XHR0aGlzLiRyZWZzLnNlcnZlclBvcnQub3BlbigpXHJcblx0XHRcdH0sXHJcblx0XHRcdHNlcnZlclBvcnRDb25maXJtKHR5cGUpIHtcclxuXHRcdFx0XHR0aGlzLmJhc2VQT1JUID0gdHlwZVxyXG5cdFx0XHRcdC8vIOWtmOWFpeacrOWcsOe8k+WtmFxyXG5cdFx0XHRcdHRoaXMuUE9SVCA9IHR5cGVcclxuXHRcdFx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ1VQT1JUJyx0aGlzLmJhc2VQT1JUKVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRjaGFuZ2VJUCgpe1xyXG5cdFx0XHRcdHRoaXMuJHJlZnMuaW5wdXREaWFsb2cub3BlbigpXHJcblx0XHRcdH0sXHJcblx0XHRcdGRpYWxvZ0lucHV0Q29uZmlybSh0eXBlKXtcclxuXHRcdFx0XHR0aGlzLmJhc2VJUCA9IHR5cGVcclxuXHRcdFx0XHQvLyDlrZjlhaXmnKzlnLDnvJPlrZhcclxuXHRcdFx0XHR0aGlzLklQID0gdHlwZTtcclxuXHRcdFx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ1VJUCcsdGhpcy5iYXNlSVApXHJcblx0XHRcdH0sXHJcblx0XHRcdGNoZWNrYm94Q2hhbmdlOiBmdW5jdGlvbihlKSB7XHJcblx0XHRcdCAgICBpZiAoZS5kZXRhaWwudmFsdWUubGVuZ3RoID09IDEpIHtcclxuXHRcdFx0XHJcblx0XHRcdCAgICAgICAgLy/ojrflj5bnvJPlrZjnmoTotKblj7dcclxuXHRcdFx0ICAgICAgICAgdW5pLmdldFN0b3JhZ2VTeW5jKCdIQ3VuYW1lJyx0aGlzLnVzZXJOYW1lKTtcclxuXHRcdFx0ICAgICAgICAgdW5pLmdldFN0b3JhZ2VTeW5jKCdIQ3Bhc3N3Jyx0aGlzLnBhc3N3b3JkKTtcclxuXHRcdFx0ICAgIH0gZWxzZSB7XHJcblx0XHRcdCAgICAgICAgICB1bmkucmVtb3ZlU3RvcmFnZVN5bmMoJ0hDdW5hbWUnKTtcclxuXHRcdFx0ICAgICAgICAgIHVuaS5yZW1vdmVTdG9yYWdlU3luYygnSENwYXNzdycpOyAgICAgICAgICAgICAgXHJcblx0XHRcdCAgICB9XHJcblx0XHRcdH0sXHJcblx0XHRcdG9uTG9naW46IGZ1bmN0aW9uICgpe1xyXG5cdFx0XHRcdGlmKCF0aGlzLnVzZXJOYW1lIHx8IHRoaXMudXNlck5hbWUubGVuZ3RoPT0wKXtcclxuXHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe3RpdGxlOiAn6K+35aGr5YaZ6LSm5Y+3JyxpY29uOiBcIm5vbmVcIn0pXHJcblx0XHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGlmKCF0aGlzLnBhc3N3b3JkIHx8IHRoaXMucGFzc3dvcmQubGVuZ3RoPT0wKXtcclxuXHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe3RpdGxlOiAn6K+35aGr5YaZ5a+G56CBJyxpY29uOiBcIm5vbmVcIn0pXHJcblx0XHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGlmKHRoaXMuYmFzZUlQID09IHVuZGVmaW5lZCB8fCB0aGlzLmJhc2VJUCA9PSAnJyApIHtcclxuXHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xyXG5cdFx0XHRcdFx0XHR0aXRsZTon6K+35YWI6K6+572uSVAnLFxyXG5cdFx0XHRcdFx0XHRpY29uOidub25lJ1xyXG5cdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdHJldHVybjtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0aWYodGhpcy5iYXNlUE9SVCA9PSB1bmRlZmluZWQpIHtcclxuXHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xyXG5cdFx0XHRcdFx0XHR0aXRsZTon6ZW/5oyJ5Zu+54mH6L6T5YWl56uv5Y+j5Y+3JyxcclxuXHRcdFx0XHRcdFx0aWNvbjonbm9uZSdcclxuXHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHVuaS5zaG93TG9hZGluZygpO1xyXG5cdFx0XHRcdHNldFRpbWVvdXQoZnVuY3Rpb24oKXtcclxuXHRcdFx0XHRcdHVuaS5oaWRlTG9hZGluZygpO1xyXG5cdFx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XHJcblx0XHRcdFx0XHRcdHRpdGxlOiAn55m75b2V6LaF5pe2JyxcclxuXHRcdFx0XHRcdFx0cG9zaXRpb246ICdib3R0b20nLFxyXG5cdFx0XHRcdFx0XHRkdXJhdGlvbjogMTAwMFxyXG5cdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0fSw2MDAwKVxyXG5cdFx0XHRcdHVuaS5yZXF1ZXN0KHtcclxuXHRcdFx0XHQgICAgdXJsOiB0aGlzLmJhc2VIdHRwICsgdGhpcy5iYXNlSVAgKyAnOicgK3RoaXMuYmFzZVBPUlQgKyB0aGlzLmJhc2VVcmwgKyAnL2xvZ2luLmFjdGlvbicsXHJcblx0XHRcdFx0ICAgIGRhdGE6IHtcclxuXHRcdFx0XHQgICAgICB1c2VybmFtZTp0aGlzLnVzZXJOYW1lLFxyXG5cdFx0XHRcdCAgICAgIHBhc3N3b3JkOm1kNS5oZXhfbWQ1KHRoaXMucGFzc3dvcmQpIFxyXG5cdFx0XHRcdCAgICB9LFxyXG5cdFx0XHRcdCAgICBoZWFkZXI6IHtcclxuXHRcdFx0XHRcdFx0XCJjb250ZW50LXR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCJcclxuXHRcdFx0XHQgICAgfSxcclxuXHRcdFx0XHQgICAgc3VjY2VzczogKHJlc3VsdCkgPT4ge1xyXG5cdFx0XHRcdFx0XHRsZXQgcmVzID0gcmVzdWx0LmRhdGE7XHJcblx0XHRcdFx0XHRcdHVuaS5oaWRlTG9hZGluZygpO1xyXG5cdFx0XHRcdFx0XHRpZiAocmVzLmNvZGUgPT0gMjAwKSB7XHJcblx0XHRcdFx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XHJcblx0XHRcdFx0XHRcdFx0XHR0aXRsZTogJ+eZu+W9leaIkOWKnycsXHJcblx0XHRcdFx0XHRcdFx0XHRwb3NpdGlvbjogJ2JvdHRvbScsXHJcblx0XHRcdFx0XHRcdFx0XHRkdXJhdGlvbjogMTAwMFxyXG5cdFx0XHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0XHRcdGlmKHRoaXMucmVtYmVyKXtcclxuXHRcdFx0XHRcdFx0XHRcdHVuaS5zZXRTdG9yYWdlU3luYygnSEN1bmFtZScsIHRoaXMudXNlck5hbWUpO1xyXG5cdFx0XHRcdFx0XHRcdFx0dW5pLnNldFN0b3JhZ2VTeW5jKCdIQ3Bhc3N3JywgdGhpcy5wYXNzd29yZCk7XHJcblx0XHRcdFx0XHRcdFx0fWVsc2V7XHJcblx0XHRcdFx0XHRcdFx0XHR1bmkucmVtb3ZlU3RvcmFnZVN5bmMoJ0hDdW5hbWUnKTtcclxuXHRcdFx0XHRcdFx0XHRcdHVuaS5yZW1vdmVTdG9yYWdlU3luYygnSENwYXNzdycpO1xyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ3Rva2VuJywgcmVzLmRhdGEudG9rZW4pO1xyXG5cdFx0XHRcdFx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdFx0dW5pLm5hdmlnYXRlQmFjaygpO1x0XHQvLyAgIOWwj+eoi+W6j+eUqOi/meS4qiAg5oqK6aaW6aG16Lev55Sx5pS+56ys5LiA5LiqXHJcblx0XHRcdFx0XHRcdFx0XHR1bmkucmVMYXVuY2goe1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR1cmw6ICcuLi9pbmRleC9pbmRleCdcclxuXHRcdFx0XHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0XHRcdH0sIDEwMDApO1xyXG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xyXG5cdFx0XHRcdFx0XHRcdFx0dGl0bGU6IHJlcy5tc2csXHJcblx0XHRcdFx0XHRcdFx0XHRpY29uOiBcIm5vbmVcIixcclxuXHRcdFx0XHRcdFx0XHRcdHBvc2l0aW9uOiAndG9wJ1xyXG5cdFx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0ICAgIH1cclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0fSxcclxuXHRcdFx0c2F2ZUNsaWVudElkKCl7XHJcblx0XHRcdFx0dmFyIGluZm8gPSBwbHVzLnB1c2guZ2V0Q2xpZW50SW5mbygpO1xyXG5cdFx0XHRcdHZhciBjaWQgPSBpbmZvLmNsaWVudGlkO1xyXG5cdFx0XHRcdHRoaXMuJGh0dHAuZ2V0KFwiL3N5cy91c2VyL3NhdmVDbGllbnRJZFwiLHtwYXJhbXM6e2NsaWVudElkOmNpZH19KS50aGVuKHJlcz0+e1xyXG5cdFx0XHRcdFx0dGhpcy4kdGlwLnN1Y2Nlc3MoJ+eZu+W9leaIkOWKnyEnKVxyXG5cdFx0XHRcdFx0dGhpcy4kUm91dGVyLnJlcGxhY2VBbGwoe25hbWU6J2luZGV4J30pXHJcblx0XHRcdFx0fSlcclxuXHRcdFx0fSxcclxuXHRcdFx0Y2hhbmdlUGFzc3dvcmQoKSB7XHJcblx0XHRcdFx0dGhpcy5zaG93UGFzc3dvcmQgPSAhdGhpcy5zaG93UGFzc3dvcmQ7XHJcblx0XHRcdH0sXHJcblx0XHRcdGxvZ2luU3VjY2VzcygpIHtcclxuXHRcdFx0ICAvLyDnmbvpmYbmiJDlip/vvIzph43lrprlkJHliLDkuLvpobVcclxuXHRcdFx0ICB0aGlzLiRSb3V0ZXIucmVwbGFjZSh7bmFtZTonaW5kZXgnfSlcclxuXHRcdFx0fSxcclxuXHRcdFx0cmVxdWVzdEZhaWxlZChlcnIpIHtcclxuXHRcdFx0ICB0aGlzLiRtZXNzYWdlLndhcm5pbmcoXCLnmbvlvZXlpLHotKVcIilcclxuXHRcdFx0fSxcclxuICAgICAgICB9LFxyXG5cdFx0YmVmb3JlRGVzdHJveSgpIHtcclxuXHRcdCAgICBpZiAodGhpcy5zbXNDb3VudEludGVydmFsKSB7XHJcblx0XHQgICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5zbXNDb3VudEludGVydmFsKTtcclxuXHRcdCAgICB9XHJcblx0XHR9LFxyXG5cdFx0XHJcblx0XHRcclxuICAgIH1cclxuPC9zY3JpcHQ+XHJcblxyXG48c3R5bGU+XHJcblx0QGltcG9ydCBcIi4uLy4uL2NvbG9ydWkvbWFpbi5jc3NcIjtcclxuXHRAaW1wb3J0IFwiLi4vLi4vY29sb3J1aS9pY29uLmNzc1wiO1xyXG5cdEBpbXBvcnQgXCIuLi8uLi9jb2xvcnVpL2FuaW1hdGlvbi5jc3NcIjtcclxuXHRcclxuICAgIC5sb2dpbi1wYWRkaW5ndG9wIHtcclxuICAgICAgICBwYWRkaW5nLXRvcDogNTB1cHg7XHJcbiAgICB9XHJcblxyXG4gICAgLnphaS1ib3gge1xyXG4gICAgICAgIHBhZGRpbmc6IDAgMjB1cHg7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDEwMHVweDtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB9XHJcblxyXG4gICAgLnphaS1sb2dvIHtcclxuICAgICAgICB3aWR0aDogNjAwdXB4O1xyXG4gICAgICAgIGhlaWdodDogMTUwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgLnphaS10aXRsZSB7XHJcbiAgICAgICBmb250LXNpemU6IDU4dXB4O1xyXG4gICAgICAgY29sb3I6ICMwMDAwMDA7XHJcbiAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICB9XHJcblxyXG4gICAgLmlucHV0LXBsYWNlaG9sZGVyLCAuemFpLWlucHV0IHtcclxuICAgICAgICBjb2xvcjogIzk0YWZjZTtcclxuICAgIH1cclxuXHJcbiAgICAuemFpLWxhYmVsIHtcclxuICAgICAgICBwYWRkaW5nOiA2MHVweCAwO1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICBmb250LXNpemU6IDMwdXB4O1xyXG4gICAgICAgIGNvbG9yOiAjYTdiNmQwO1xyXG4gICAgfVxyXG5cclxuICAgIC56YWktYnRuIHtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAjZmY2NWEzO1xyXG4gICAgICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgICAgIGJvcmRlcjogMDtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiAxMDB1cHg7XHJcbiAgICAgICAgZm9udC1zaXplOiAzNnVweDtcclxuICAgIH1cclxuXHJcbiAgICAuemFpLWJ0bjphZnRlciB7XHJcbiAgICAgICAgYm9yZGVyOiAwO1xyXG4gICAgfVxyXG5cclxuICAgIC8q5oyJ6ZKu54K55Ye75pWI5p6cKi9cclxuICAgIC56YWktYnRuLmJ1dHRvbi1ob3ZlciB7XHJcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMXVweCwgMXVweCk7XHJcbiAgICB9XHJcblx0LmNoYW5nZUJveCB7XHJcblx0XHRtYXJnaW4tdG9wOiAyMHVweDtcclxuXHR9XHJcblx0LnJlbWJlciB7XHJcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0fVxyXG5cdC5jaGFuZ2VJUCB7XHJcblx0XHRmbG9hdDogcmlnaHQ7XHJcblx0XHRtYXJnaW4tcmlnaHQ6IDE1dXB4O1xyXG5cdH1cclxuPC9zdHlsZT5cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///33\n"); |
| | | eval("Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0;\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\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 _vuex = __webpack_require__(/*! vuex */ 34);\nvar _md = _interopRequireDefault(__webpack_require__(/*! ../../common/md5.js */ 35));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n// import { ACCESS_TOKEN,USER_NAME,USER_INFO } from \"@/common/util/constants\"\n// import configService from '@/common/service/config.service.js';\nvar _default = { data: function data() {return { shape: '', //round 圆形\n loading: false, phoneNo: '', smsCode: '', showPassword: false, //是否显示明文\n loginWay: 1, //1: 账密,2:验证码\n smsCountDown: 0, smsCountInterval: null, toggleDelay: false, version: '', //第三方登录相关信息\n thirdType: \"\", thirdLoginInfo: \"\", thirdLoginState: false, bindingPhoneModal: false, thirdUserUuid: '', url: { bindingThirdPhone: '/sys/thirdLogin/bindingThirdPhone' }, type: '', userName: '', password: '', rember: true, IP: '', PORT: '8080' // 默认端口号\n };}, mounted: function mounted() {var that = this; //缓存的账号\n var HCuname = uni.getStorageSync('HCuname'); //缓存的密码\n var HCpassw = uni.getStorageSync('HCpassw'); //有缓存就赋值给文本没有就清空\n if (HCuname && HCpassw) {that.userName = HCuname;that.password = HCpassw;} else {that.userName = '';that.password = '';}var UIP = uni.getStorageSync('UIP');if (UIP) {that.IP = UIP;that.baseIP = UIP;} else {that.IP = '';}var UPORT = uni.getStorageSync('UPORT');if (UPORT) {that.PORT = UPORT;that.basePORT = UPORT;} else {that.PORT = '8080';}}, onLoad: function onLoad() {var that = this;plus.runtime.getProperty(plus.runtime.appid, function (wgtinfo) {that.version = wgtinfo.version;});}, computed: { isSendSMSEnable: function isSendSMSEnable() {return this.smsCountDown <= 0 && this.phoneNo.length > 4;}, getSendBtnText: function getSendBtnText() {if (this.smsCountDown > 0) {return this.smsCountDown + '秒后发送';} else {return '发送验证码';}}, canSMSLogin: function canSMSLogin() {return this.userName.length > 4 && this.smsCode.length > 4;}, canPwdLogin: function canPwdLogin() {return this.userName.length > 4 && this.password.length > 4;} }, methods: { // 配置 URL PORT 项目(jkwms)\n config: function config() {this.$refs.popup.open(\"center\");}, longpressImg: function longpressImg() {// 长按图片\n this.$refs.serverPort.open();}, serverPortConfirm: function serverPortConfirm(type) {this.basePORT = type; // 存入本地缓存\n this.PORT = type;uni.setStorageSync('UPORT', this.basePORT);}, changeIP: function changeIP() {this.$refs.inputDialog.open();}, dialogInputConfirm: function dialogInputConfirm(type) {this.baseIP = type;\n // 存入本地缓存\n this.IP = type;\n uni.setStorageSync('UIP', this.baseIP);\n },\n checkboxChange: function checkboxChange(e) {\n if (e.detail.value.length == 1) {\n\n //获取缓存的账号\n uni.getStorageSync('HCuname', this.userName);\n uni.getStorageSync('HCpassw', this.password);\n } else {\n uni.removeStorageSync('HCuname');\n uni.removeStorageSync('HCpassw');\n }\n },\n onLogin: function onLogin() {var _this = this;\n if (!this.userName || this.userName.length == 0) {\n uni.showToast({ title: '请填写账号', icon: \"none\" });\n return;\n }\n if (!this.password || this.password.length == 0) {\n uni.showToast({ title: '请填写密码', icon: \"none\" });\n return;\n }\n if (this.baseIP == undefined || this.baseIP == '') {\n uni.showToast({\n title: '请先设置IP',\n icon: 'none' });\n\n return;\n }\n if (this.basePORT == undefined) {\n uni.showToast({\n title: '长按图片输入端口号',\n icon: 'none' });\n\n return;\n }\n uni.showLoading();\n setTimeout(function () {\n uni.hideLoading();\n uni.showToast({\n title: '登录超时',\n position: 'bottom',\n duration: 1000 });\n\n }, 6000);\n uni.request({\n url: this.baseHttp + this.baseIP + ':' + this.basePORT + this.baseUrl + '/login.action',\n data: {\n username: this.userName,\n password: _md.default.hex_md5(this.password) },\n\n header: {\n \"content-type\": \"application/json\" },\n\n success: function success(result) {\n var res = result.data;\n uni.hideLoading();\n if (res.code == 200) {\n uni.showToast({\n title: '登录成功',\n position: 'bottom',\n duration: 1000 });\n\n if (_this.rember) {\n uni.setStorageSync('HCuname', _this.userName);\n uni.setStorageSync('HCpassw', _this.password);\n } else {\n uni.removeStorageSync('HCuname');\n uni.removeStorageSync('HCpassw');\n }\n uni.setStorageSync('token', res.data.token);\n setTimeout(function () {\n uni.navigateBack(); // 小程序用这个 把首页路由放第一个\n uni.reLaunch({\n url: '../index/index' });\n\n }, 1000);\n } else {\n uni.showToast({\n title: res.msg,\n icon: \"none\",\n position: 'top' });\n\n }\n\n } });\n\n },\n saveClientId: function saveClientId() {var _this2 = this;\n var info = plus.push.getClientInfo();\n var cid = info.clientid;\n this.$http.get(\"/sys/user/saveClientId\", { params: { clientId: cid } }).then(function (res) {\n _this2.$tip.success('登录成功!');\n _this2.$Router.replaceAll({ name: 'index' });\n });\n },\n changePassword: function changePassword() {\n this.showPassword = !this.showPassword;\n },\n loginSuccess: function loginSuccess() {\n // 登陆成功,重定向到主页\n this.$Router.replace({ name: 'index' });\n },\n requestFailed: function requestFailed(err) {\n this.$message.warning(\"登录失败\");\n } },\n\n beforeDestroy: function beforeDestroy() {\n if (this.smsCountInterval) {\n clearInterval(this.smsCountInterval);\n }\n } };exports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvbG9naW4vbG9naW4udnVlIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBa0dBO0FBQ0EscUY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUZBO0FBR0E7ZUFFQSxFQUNBLElBREEsa0JBQ0EsQ0FDQSxTQUNBLFNBREEsRUFDQTtBQUNBLG9CQUZBLEVBR0EsV0FIQSxFQUlBLFdBSkEsRUFLQSxtQkFMQSxFQUtBO0FBQ0EsaUJBTkEsRUFNQTtBQUNBLHFCQVBBLEVBUUEsc0JBUkEsRUFTQSxrQkFUQSxFQVVBLFdBVkEsRUFXQTtBQUNBLG1CQVpBLEVBYUEsa0JBYkEsRUFjQSxzQkFkQSxFQWVBLHdCQWZBLEVBZ0JBLGlCQWhCQSxFQWlCQSxPQUNBLHNEQURBLEVBakJBLEVBb0JBLFFBcEJBLEVBcUJBLFlBckJBLEVBc0JBLFlBdEJBLEVBdUJBLFlBdkJBLEVBd0JBLE1BeEJBLEVBeUJBLFlBekJBLENBeUJBO0FBekJBLE1BMkJBLENBN0JBLEVBOEJBLE9BOUJBLHFCQThCQSxDQUNBLGdCQURBLENBRUE7QUFDQSxnREFIQSxDQUlBO0FBQ0EsZ0RBTEEsQ0FNQTtBQUNBLDZCQUNBLHdCQUNBLHdCQUNBLENBSEEsTUFHQSxDQUNBLG1CQUNBLG1CQUNBLENBRUEsb0NBQ0EsVUFDQSxjQUNBLGtCQUNBLENBSEEsTUFHQSxDQUNBLGFBQ0EsQ0FFQSx3Q0FDQSxZQUNBLGtCQUNBLHNCQUNBLENBSEEsTUFHQSxDQUNBLG1CQUNBLENBQ0EsQ0E1REEsRUE2REEsMkJBRUEsZ0JBQ0EsaUVBQ0EsK0JBQ0EsQ0FGQSxFQUtBLENBckVBLEVBc0VBLFlBQ0EsZUFEQSw2QkFDQSxDQUNBLHlEQUNBLENBSEEsRUFJQSxjQUpBLDRCQUlBLENBQ0EsNEJBQ0Esa0NBQ0EsQ0FGQSxNQUVBLENBQ0EsZUFDQSxDQUNBLENBVkEsRUFXQSxXQVhBLHlCQVdBLENBQ0EsMkRBQ0EsQ0FiQSxFQWNBLFdBZEEseUJBY0EsQ0FDQSw0REFDQSxDQWhCQSxFQXRFQSxFQXdGQSxXQUNBO0FBQ0EsVUFGQSxvQkFFQSxDQUNBLGdDQUNBLENBSkEsRUFLQSxZQUxBLDBCQUtBO0FBQ0EsbUNBQ0EsQ0FQQSxFQVFBLGlCQVJBLDZCQVFBLElBUkEsRUFRQSxDQUNBLHFCQURBLENBRUE7QUFDQSx1QkFDQSwyQ0FDQSxDQWJBLEVBY0EsUUFkQSxzQkFjQSxDQUNBLDhCQUNBLENBaEJBLEVBaUJBLGtCQWpCQSw4QkFpQkEsSUFqQkEsRUFpQkEsQ0FDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBdEJBO0FBdUJBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsT0FMQSxNQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FqQ0E7QUFrQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlCQURBO0FBRUEsc0JBRkE7O0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0QkFEQTtBQUVBLHNCQUZBOztBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVCQURBO0FBRUEsNEJBRkE7QUFHQSx3QkFIQTs7QUFLQSxPQVBBLEVBT0EsSUFQQTtBQVFBO0FBQ0EsK0ZBREE7QUFFQTtBQUNBLGlDQURBO0FBRUEsc0RBRkEsRUFGQTs7QUFNQTtBQUNBLDRDQURBLEVBTkE7O0FBU0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJCQURBO0FBRUEsZ0NBRkE7QUFHQSw0QkFIQTs7QUFLQTtBQUNBO0FBQ0E7QUFDQSxhQUhBLE1BR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUNBREEsQ0FDQTtBQUNBO0FBQ0EscUNBREE7O0FBR0EsYUFMQSxFQUtBLElBTEE7QUFNQSxXQXBCQSxNQW9CQTtBQUNBO0FBQ0EsNEJBREE7QUFFQSwwQkFGQTtBQUdBLDZCQUhBOztBQUtBOztBQUVBLFNBeENBOztBQTBDQSxLQTVHQTtBQTZHQSxnQkE3R0EsMEJBNkdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BSEE7QUFJQSxLQXBIQTtBQXFIQSxrQkFySEEsNEJBcUhBO0FBQ0E7QUFDQSxLQXZIQTtBQXdIQSxnQkF4SEEsMEJBd0hBO0FBQ0E7QUFDQTtBQUNBLEtBM0hBO0FBNEhBLGlCQTVIQSx5QkE0SEEsR0E1SEEsRUE0SEE7QUFDQTtBQUNBLEtBOUhBLEVBeEZBOztBQXdOQSxlQXhOQSwyQkF3TkE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQTVOQSxFIiwiZmlsZSI6IjMzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiICA8dGVtcGxhdGU+XHJcblx0PHZpZXcgY2xhc3M9XCJ6YWktYm94XCI+XHJcblx0XHRcclxuICAgICAgICA8c2Nyb2xsLXZpZXcgc2Nyb2xsLXkgY2xhc3M9XCJwYWdlXCI+XHJcblx0XHRcdFxyXG4gICAgICAgICAgICA8dmlldyBjbGFzcz1cInRleHQtY2VudGVyXCIgOnN0eWxlPVwiW3thbmltYXRpb246ICdzaG93ICcgKyAwLjQrICdzIDEnfV1cIj5cclxuXHRcdFx0XHQ8aW1hZ2Ugc3JjPVwiLi4vLi4vc3RhdGljL2xvZ28ucG5nXCIgbW9kZT0nYXNwZWN0Rml0JyBjbGFzcz1cInphaS1sb2dvXCIgQGxvbmd0YXA9J2xvbmdwcmVzc0ltZyc+PC9pbWFnZT5cclxuXHRcdFx0PC92aWV3PlxyXG4gICAgICAgICAgICA8dmlldyBjbGFzcz1cImJveCBwYWRkaW5nLWxyLXhsIGxvZ2luLXBhZGRpbmd0b3BcIiA6c3R5bGU9XCJbe2FuaW1hdGlvbjogJ3Nob3cgJyArIDAuNisgJ3MgMSd9XVwiPlxyXG5cdFx0XHRcdDxibG9jayB2LWlmPVwibG9naW5XYXk9PTFcIj5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiY3UtZm9ybS1ncm91cCBtYXJnaW4tdG9wICBzaGFkb3ctd2FycFwiIDpjbGFzcz1cIltzaGFwZT09J3JvdW5kJz8ncm91bmQnOicnXVwiPlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInRpdGxlLWxvZ2luXCI+PHRleHQgY2xhc3M9XCJjdUljb24tcGVvcGxlIG1hcmdpbi1yaWdodC14c1wiPjwvdGV4dD7otKblj7c6PC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8aW5wdXQgcGxhY2Vob2xkZXI9XCLor7fovpPlhaXotKblj7dcIiBuYW1lPVwiaW5wdXRcIiB2LW1vZGVsPVwidXNlck5hbWVcIj48L2lucHV0PlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJjdS1mb3JtLWdyb3VwIG1hcmdpbi10b3Agc2hhZG93LXdhcnBcIiA6Y2xhc3M9XCJbc2hhcGU9PSdyb3VuZCc/J3JvdW5kJzonJ11cIj5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0aXRsZS1sb2dpblwiPjx0ZXh0IGNsYXNzPVwiY3VJY29uLWxvY2sgbWFyZ2luLXJpZ2h0LXhzXCI+PC90ZXh0PuWvhueggTo8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdDxpbnB1dCBjbGFzcz1cInVuaS1pbnB1dFwiIHBsYWNlaG9sZGVyPVwi6K+36L6T5YWl5a+G56CBXCIgOnBhc3N3b3JkPVwiIXNob3dQYXNzd29yZFwiIHYtbW9kZWw9XCJwYXNzd29yZFwiIC8+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiYWN0aW9uIHRleHQtbGdcIj5cclxuXHRcdFx0XHRcdFx0ICAgIDx0ZXh0IDpjbGFzcz1cIltzaG93UGFzc3dvcmQgPyAnY3VJY29uLWF0dGVudGlvbicgOiAnY3VJY29uLWF0dGVudGlvbmZvcmJpZCddXCIgQGNsaWNrPVwiY2hhbmdlUGFzc3dvcmRcIj48L3RleHQ+XHJcblx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZmxleCBtYXJnaW4teHMganVzdGlmeS1iZXR3ZWVuXCI+XHJcblx0XHRcdFx0XHRcdDxjaGVja2JveC1ncm91cCBjbGFzcz1cInJlbWJlclwiPlxyXG5cdFx0XHRcdFx0XHRcdDxsYWJlbD5cclxuXHRcdFx0XHRcdFx0XHRcdDxjaGVja2JveCB2YWx1ZT1cImNiXCIgOmNoZWNrZWQ9XCJyZW1iZXJcIiAgQHRhcD1cInJlbWJlciA9ICFyZW1iZXJcIiBzdHlsZT1cInRyYW5zZm9ybTpzY2FsZSgwLjcpXCIgLz48dGV4dD7orrDkvY/lr4bnoIE8L3RleHQ+XHJcblx0XHRcdFx0XHRcdFx0PC9sYWJlbD5cclxuXHRcdFx0XHRcdFx0PC9jaGVja2JveC1ncm91cD5cclxuXHRcdFx0XHRcdFx0PCEtLSA8dGV4dCBjbGFzcz1cImNoYW5nZUlQXCIgQGNsaWNrPVwiY2hhbmdlSVAoKVwiPuiuvue9rklQPC90ZXh0PiAtLT5cclxuXHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJjaGFuZ2VJUFwiIEBjbGljaz1cImNvbmZpZygpXCI+6YWN572uPC90ZXh0PlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmbGV4IHBhZGRpbmcganVzdGlmeS1jZW50ZXIgbWFyZ2luLXRvcFwiPlxyXG5cdFx0XHRcdFx0XHQ8YnV0dG9uIGNsYXNzPVwiY3UtYnRuIGJnLWJsdWUgbGcgIHNoYWRvd1wiIDpsb2FkaW5nPVwibG9hZGluZ1wiIDpjbGFzcz1cIltzaGFwZT09J3JvdW5kJz8ncm91bmQnOicnXVwiXHJcblx0XHRcdFx0XHRcdFx0QHRhcD1cIm9uTG9naW5cIj48dGV4dCBzcGFjZT1cImVtc3BcIj57e2xvYWRpbmcgPyBcIueZu+W9leS4rS4uLlwiOlwiIOeZu+W9lSBcIn19PC90ZXh0PlxyXG5cdFx0XHRcdFx0XHQ8L2J1dHRvbj5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8L2Jsb2NrPlxyXG5cdFxyXG5cdFx0XHRcdDwhLS0gI2lmZGVmIEFQUC1QTFVTIC0tPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwicGFkZGluZyBmbGV4IGZsZXgtZGlyZWN0aW9uICB0ZXh0LWNlbnRlclwiIHN0eWxlPVwicG9zaXRpb246IGZpeGVkO3dpZHRoOiA4MCU7Ym90dG9tOiAwO3RleHQtYWxpZ246IGNlbnRlcjtcIj5cclxuXHRcdFx0XHRcdOW9k+WJjeeJiOacrDp7e3ZlcnNpb259fVxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8IS0tICNlbmRpZiAtLT5cclxuXHRcdFx0XHRcclxuICAgICAgICAgICAgPC92aWV3PlxyXG4gICAgICAgIDwvc2Nyb2xsLXZpZXc+XHJcblx0XHRcclxuXHRcdFxyXG5cdFx0PHZpZXc+XHJcblx0XHRcdDx1bmktcG9wdXAgcmVmPVwicG9wdXBcIiB0eXBlPVwicmlnaHRcIj5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cImNvbmZpZ1wiPlxyXG5cdFx0XHRcdFx0PHZpZXc+XHJcblx0XHRcdFx0XHRcdDx0ZXh0Pmlw5Zyw5Z2APC90ZXh0PlxyXG5cdFx0XHRcdFx0XHQ8aW5wdXQgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cIjE5Mi4xNjguMS4xXCI+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8dmlldz5cclxuXHRcdFx0XHRcdFx0PHRleHQ+56uv5Y+j5Y+3PC90ZXh0PlxyXG5cdFx0XHRcdFx0XHQ8aW5wdXQgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cIjgwODBcIj5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDx2aWV3PlxyXG5cdFx0XHRcdFx0XHQ8dGV4dD7pobnnm648L3RleHQ+XHJcblx0XHRcdFx0XHRcdDxpbnB1dCB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiamt3bXNcIj5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDx2aWV3PlxyXG5cdFx0XHRcdFx0XHQ8YnV0dG9uPuehruiupDwvYnV0dG9uPlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0PC91bmktcG9wdXA+XHJcblx0XHQ8L3ZpZXc+XHJcblx0XHRcclxuXHRcdFxyXG5cdFx0XHJcblx0XHRcclxuXHRcdDwhLS0g55m75b2V5Yqg6L295by556qXIC0tPlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJjdS1sb2FkIGxvYWQtbW9kYWxcIiB2LWlmPVwibG9hZGluZ1wiPlxyXG5cdFx0XHQ8IS0tIDx2aWV3IGNsYXNzPVwiY3VJY29uLWVtb2ppZmlsbCB0ZXh0LW9yYW5nZVwiPjwvdmlldz4gLS0+XHJcblx0XHRcdDxpbWFnZSBzcmM9XCIuLi8uLi9zdGF0aWMvbG9nbzEucG5nXCIgbW9kZT1cImFzcGVjdEZpdFwiIGNsYXNzPVwicm91bmRcIj48L2ltYWdlPlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cImdyYXktdGV4dFwiPueZu+W9leS4rS4uLjwvdmlldz5cclxuXHRcdDwvdmlldz5cclxuXHRcdDx2aWV3PlxyXG5cdFx0XHQ8dW5pLXBvcHVwIHJlZj1cImlucHV0RGlhbG9nXCIgdHlwZT1cImRpYWxvZ1wiPlxyXG5cdFx0XHRcdDx1bmktcG9wdXAtZGlhbG9nIHJlZj1cImlucHV0Q2xvc2VcIiBtb2RlPVwiaW5wdXRcIiB0aXRsZT1cIuiuvue9rklQXCIgdi1tb2RlbD1cIklQXCJcclxuXHRcdFx0XHRcdHBsYWNlaG9sZGVyPVwi6K+36L6T5YWl5pyN5Yqh5ZmoSVBcIiBAY29uZmlybT1cImRpYWxvZ0lucHV0Q29uZmlybVwiPlxyXG5cdFx0XHRcdDwvdW5pLXBvcHVwLWRpYWxvZz5cdFxyXG5cdFx0XHQ8L3VuaS1wb3B1cD5cclxuXHRcdDwvdmlldz5cclxuXHRcdDx2aWV3IHN0eWxlPVwibWFyZ2luLXRvcDogMTBycHg7XCI+XHJcblx0XHRcdDx1bmktcG9wdXAgcmVmPVwic2VydmVyUG9ydFwiIHR5cGU9XCJkaWFsb2dcIj5cclxuXHRcdFx0XHQ8dW5pLXBvcHVwLWRpYWxvZyByZWY9XCJpbnB1dENsb3NlXCIgbW9kZT1cImlucHV0XCIgdGl0bGU9XCLorr7nva7nq6/lj6NcIiB2LW1vZGVsPVwiUE9SVFwiXHJcblx0XHRcdFx0XHRwbGFjZWhvbGRlcj1cIuivt+i+k+WFpeacjeWKoeWZqOerr+WPo+WPt1wiIEBjb25maXJtPVwic2VydmVyUG9ydENvbmZpcm1cIj5cclxuXHRcdFx0XHQ8L3VuaS1wb3B1cC1kaWFsb2c+XHRcclxuXHRcdFx0PC91bmktcG9wdXA+XHJcblx0XHQ8L3ZpZXc+XHJcbiAgICA8L3ZpZXc+XHJcblxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuXHQvLyBpbXBvcnQgeyBBQ0NFU1NfVE9LRU4sVVNFUl9OQU1FLFVTRVJfSU5GTyB9IGZyb20gXCJAL2NvbW1vbi91dGlsL2NvbnN0YW50c1wiXHJcblx0aW1wb3J0IHsgbWFwQWN0aW9ucyB9IGZyb20gXCJ2dWV4XCJcclxuXHRpbXBvcnQgbWQ1IGZyb20gJy4uLy4uL2NvbW1vbi9tZDUuanMnXHJcbiAgICAvLyBpbXBvcnQgY29uZmlnU2VydmljZSBmcm9tICdAL2NvbW1vbi9zZXJ2aWNlL2NvbmZpZy5zZXJ2aWNlLmpzJztcclxuXHRcclxuICAgIGV4cG9ydCBkZWZhdWx0IHtcclxuICAgICAgICBkYXRhKCkge1xyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG5cdFx0XHRcdHNoYXBlOicnLC8vcm91bmQg5ZyG5b2iXHJcblx0XHRcdFx0bG9hZGluZzogZmFsc2UsXHJcblx0XHRcdFx0cGhvbmVObzogJycsXHJcblx0XHRcdFx0c21zQ29kZTogJycsXHJcblx0XHRcdFx0c2hvd1Bhc3N3b3JkOiBmYWxzZSwgLy/mmK/lkKbmmL7npLrmmI7mlodcclxuXHRcdFx0XHRsb2dpbldheTogMSwgLy8xOiDotKblr4bvvIwy77ya6aqM6K+B56CBXHJcblx0XHRcdFx0c21zQ291bnREb3duOiAwLFxyXG5cdFx0XHRcdHNtc0NvdW50SW50ZXJ2YWw6IG51bGwsXHJcblx0XHRcdFx0dG9nZ2xlRGVsYXk6IGZhbHNlLFxyXG5cdFx0XHRcdHZlcnNpb246JycsXHJcblx0XHRcdFx0Ly/nrKzkuInmlrnnmbvlvZXnm7jlhbPkv6Hmga9cclxuXHRcdFx0XHR0aGlyZFR5cGU6XCJcIixcclxuXHRcdFx0XHR0aGlyZExvZ2luSW5mbzpcIlwiLFxyXG5cdFx0XHRcdHRoaXJkTG9naW5TdGF0ZTpmYWxzZSxcclxuXHRcdFx0XHRiaW5kaW5nUGhvbmVNb2RhbDpmYWxzZSxcclxuXHRcdFx0XHR0aGlyZFVzZXJVdWlkOicnLFxyXG5cdFx0XHRcdHVybDoge1xyXG5cdFx0XHRcdFx0YmluZGluZ1RoaXJkUGhvbmU6ICcvc3lzL3RoaXJkTG9naW4vYmluZGluZ1RoaXJkUGhvbmUnXHJcblx0XHRcdFx0fSxcclxuXHRcdFx0XHR0eXBlOicnLFxyXG5cdFx0XHRcdHVzZXJOYW1lOicnLFxyXG5cdFx0XHRcdHBhc3N3b3JkOicnLFxyXG5cdFx0XHRcdHJlbWJlcjp0cnVlLFxyXG5cdFx0XHRcdElQOicnLFxyXG5cdFx0XHRcdFBPUlQ6JzgwODAnLC8vIOm7mOiupOerr+WPo+WPt1xyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgIH0sXHJcblx0XHRtb3VudGVkKCkge1xyXG5cdFx0XHRsZXQgdGhhdCA9IHRoaXM7XHJcblx0XHRcdC8v57yT5a2Y55qE6LSm5Y+3XHJcblx0XHRcdGNvbnN0IEhDdW5hbWUgPSB1bmkuZ2V0U3RvcmFnZVN5bmMoJ0hDdW5hbWUnKTtcclxuXHRcdFx0Ly/nvJPlrZjnmoTlr4bnoIFcclxuXHRcdFx0Y29uc3QgSENwYXNzdyA9IHVuaS5nZXRTdG9yYWdlU3luYygnSENwYXNzdycpO1xyXG5cdFx0XHQvL+aciee8k+WtmOWwsei1i+WAvOe7meaWh+acrOayoeacieWwsea4heepulxyXG5cdFx0XHRpZiAoSEN1bmFtZSAmJiBIQ3Bhc3N3KSB7XHJcblx0XHRcdCAgICB0aGF0LnVzZXJOYW1lID0gSEN1bmFtZTtcclxuXHRcdFx0ICAgIHRoYXQucGFzc3dvcmQgPSBIQ3Bhc3N3O1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHQgICAgdGhhdC51c2VyTmFtZSA9ICcnO1xyXG5cdFx0XHQgICAgdGhhdC5wYXNzd29yZCA9ICcnO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHRjb25zdCBVSVAgPSB1bmkuZ2V0U3RvcmFnZVN5bmMoJ1VJUCcpO1xyXG5cdFx0XHRpZiAoVUlQKSB7XHJcblx0XHRcdCAgICB0aGF0LklQID0gVUlQO1xyXG5cdFx0XHRcdHRoYXQuYmFzZUlQID0gVUlQO1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHQgICAgdGhhdC5JUCA9ICcnO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHRjb25zdCBVUE9SVCA9IHVuaS5nZXRTdG9yYWdlU3luYygnVVBPUlQnKTtcclxuXHRcdFx0aWYgKFVQT1JUKSB7XHJcblx0XHRcdCAgICB0aGF0LlBPUlQgPSBVUE9SVDtcclxuXHRcdFx0XHR0aGF0LmJhc2VQT1JUID0gVVBPUlQ7XHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdCAgICB0aGF0LlBPUlQgPSAnODA4MCc7XHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHRvbkxvYWQ6ZnVuY3Rpb24oKXtcclxuXHRcdFx0Ly8gI2lmZGVmIEFQUC1QTFVTXHJcblx0XHRcdHZhciB0aGF0PXRoaXNcclxuXHRcdFx0cGx1cy5ydW50aW1lLmdldFByb3BlcnR5KCBwbHVzLnJ1bnRpbWUuYXBwaWQsIGZ1bmN0aW9uICggd2d0aW5mbyApIHtcclxuXHRcdFx0XHR0aGF0LnZlcnNpb249d2d0aW5mby52ZXJzaW9uXHJcblx0XHRcdH0pO1xyXG5cdFx0XHQvLyAjZW5kaWZcclxuXHRcdFx0XHJcblx0XHR9LFxyXG5cdFx0Y29tcHV0ZWQ6IHtcclxuXHRcdCAgICAgIGlzU2VuZFNNU0VuYWJsZSgpIHtcclxuXHRcdCAgICAgICAgcmV0dXJuIHRoaXMuc21zQ291bnREb3duIDw9IDAgJiYgdGhpcy5waG9uZU5vLmxlbmd0aCA+IDQ7XHJcblx0XHQgICAgICB9LFxyXG5cdFx0ICAgICAgZ2V0U2VuZEJ0blRleHQoKSB7XHJcblx0XHQgICAgICAgIGlmICh0aGlzLnNtc0NvdW50RG93biA+IDApIHtcclxuXHRcdCAgICAgICAgICByZXR1cm4gdGhpcy5zbXNDb3VudERvd24gKyAn56eS5ZCO5Y+R6YCBJztcclxuXHRcdCAgICAgICAgfSBlbHNlIHtcclxuXHRcdCAgICAgICAgICByZXR1cm4gJ+WPkemAgemqjOivgeeggSc7XHJcblx0XHQgICAgICAgIH1cclxuXHRcdCAgICAgIH0sXHJcblx0XHQgICAgICBjYW5TTVNMb2dpbigpIHtcclxuXHRcdCAgICAgICAgcmV0dXJuIHRoaXMudXNlck5hbWUubGVuZ3RoID4gNCAmJiB0aGlzLnNtc0NvZGUubGVuZ3RoID4gNDtcclxuXHRcdCAgICAgIH0sXHJcblx0XHQgICAgICBjYW5Qd2RMb2dpbigpIHtcclxuXHRcdCAgICAgICAgcmV0dXJuIHRoaXMudXNlck5hbWUubGVuZ3RoID4gNCAmJiB0aGlzLnBhc3N3b3JkLmxlbmd0aCA+IDQ7XHJcblx0XHQgICAgICB9LFxyXG5cdFx0fSxcclxuICAgICAgICBtZXRob2RzOiB7XHJcblx0XHRcdC8vIOmFjee9riBVUkwgUE9SVCDpobnnm64oamt3bXMpXHJcblx0XHRcdGNvbmZpZygpIHtcclxuXHRcdFx0XHR0aGlzLiRyZWZzLnBvcHVwLm9wZW4oXCJjZW50ZXJcIilcclxuXHRcdFx0fSxcclxuXHRcdFx0bG9uZ3ByZXNzSW1nKCkgeyAvLyDplb/mjInlm77niYdcclxuXHRcdFx0XHR0aGlzLiRyZWZzLnNlcnZlclBvcnQub3BlbigpXHJcblx0XHRcdH0sXHJcblx0XHRcdHNlcnZlclBvcnRDb25maXJtKHR5cGUpIHtcclxuXHRcdFx0XHR0aGlzLmJhc2VQT1JUID0gdHlwZVxyXG5cdFx0XHRcdC8vIOWtmOWFpeacrOWcsOe8k+WtmFxyXG5cdFx0XHRcdHRoaXMuUE9SVCA9IHR5cGVcclxuXHRcdFx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ1VQT1JUJyx0aGlzLmJhc2VQT1JUKVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRjaGFuZ2VJUCgpe1xyXG5cdFx0XHRcdHRoaXMuJHJlZnMuaW5wdXREaWFsb2cub3BlbigpXHJcblx0XHRcdH0sXHJcblx0XHRcdGRpYWxvZ0lucHV0Q29uZmlybSh0eXBlKXtcclxuXHRcdFx0XHR0aGlzLmJhc2VJUCA9IHR5cGVcclxuXHRcdFx0XHQvLyDlrZjlhaXmnKzlnLDnvJPlrZhcclxuXHRcdFx0XHR0aGlzLklQID0gdHlwZTtcclxuXHRcdFx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ1VJUCcsdGhpcy5iYXNlSVApXHJcblx0XHRcdH0sXHJcblx0XHRcdGNoZWNrYm94Q2hhbmdlOiBmdW5jdGlvbihlKSB7XHJcblx0XHRcdCAgICBpZiAoZS5kZXRhaWwudmFsdWUubGVuZ3RoID09IDEpIHtcclxuXHRcdFx0XHJcblx0XHRcdCAgICAgICAgLy/ojrflj5bnvJPlrZjnmoTotKblj7dcclxuXHRcdFx0ICAgICAgICAgdW5pLmdldFN0b3JhZ2VTeW5jKCdIQ3VuYW1lJyx0aGlzLnVzZXJOYW1lKTtcclxuXHRcdFx0ICAgICAgICAgdW5pLmdldFN0b3JhZ2VTeW5jKCdIQ3Bhc3N3Jyx0aGlzLnBhc3N3b3JkKTtcclxuXHRcdFx0ICAgIH0gZWxzZSB7XHJcblx0XHRcdCAgICAgICAgICB1bmkucmVtb3ZlU3RvcmFnZVN5bmMoJ0hDdW5hbWUnKTtcclxuXHRcdFx0ICAgICAgICAgIHVuaS5yZW1vdmVTdG9yYWdlU3luYygnSENwYXNzdycpOyAgICAgICAgICAgICAgXHJcblx0XHRcdCAgICB9XHJcblx0XHRcdH0sXHJcblx0XHRcdG9uTG9naW46IGZ1bmN0aW9uICgpe1xyXG5cdFx0XHRcdGlmKCF0aGlzLnVzZXJOYW1lIHx8IHRoaXMudXNlck5hbWUubGVuZ3RoPT0wKXtcclxuXHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe3RpdGxlOiAn6K+35aGr5YaZ6LSm5Y+3JyxpY29uOiBcIm5vbmVcIn0pXHJcblx0XHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGlmKCF0aGlzLnBhc3N3b3JkIHx8IHRoaXMucGFzc3dvcmQubGVuZ3RoPT0wKXtcclxuXHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe3RpdGxlOiAn6K+35aGr5YaZ5a+G56CBJyxpY29uOiBcIm5vbmVcIn0pXHJcblx0XHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGlmKHRoaXMuYmFzZUlQID09IHVuZGVmaW5lZCB8fCB0aGlzLmJhc2VJUCA9PSAnJyApIHtcclxuXHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xyXG5cdFx0XHRcdFx0XHR0aXRsZTon6K+35YWI6K6+572uSVAnLFxyXG5cdFx0XHRcdFx0XHRpY29uOidub25lJ1xyXG5cdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdHJldHVybjtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0aWYodGhpcy5iYXNlUE9SVCA9PSB1bmRlZmluZWQpIHtcclxuXHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xyXG5cdFx0XHRcdFx0XHR0aXRsZTon6ZW/5oyJ5Zu+54mH6L6T5YWl56uv5Y+j5Y+3JyxcclxuXHRcdFx0XHRcdFx0aWNvbjonbm9uZSdcclxuXHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHVuaS5zaG93TG9hZGluZygpO1xyXG5cdFx0XHRcdHNldFRpbWVvdXQoZnVuY3Rpb24oKXtcclxuXHRcdFx0XHRcdHVuaS5oaWRlTG9hZGluZygpO1xyXG5cdFx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XHJcblx0XHRcdFx0XHRcdHRpdGxlOiAn55m75b2V6LaF5pe2JyxcclxuXHRcdFx0XHRcdFx0cG9zaXRpb246ICdib3R0b20nLFxyXG5cdFx0XHRcdFx0XHRkdXJhdGlvbjogMTAwMFxyXG5cdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0fSw2MDAwKVxyXG5cdFx0XHRcdHVuaS5yZXF1ZXN0KHtcclxuXHRcdFx0XHQgICAgdXJsOiB0aGlzLmJhc2VIdHRwICsgdGhpcy5iYXNlSVAgKyAnOicgK3RoaXMuYmFzZVBPUlQgKyB0aGlzLmJhc2VVcmwgKyAnL2xvZ2luLmFjdGlvbicsXHJcblx0XHRcdFx0ICAgIGRhdGE6IHtcclxuXHRcdFx0XHQgICAgICB1c2VybmFtZTp0aGlzLnVzZXJOYW1lLFxyXG5cdFx0XHRcdCAgICAgIHBhc3N3b3JkOm1kNS5oZXhfbWQ1KHRoaXMucGFzc3dvcmQpIFxyXG5cdFx0XHRcdCAgICB9LFxyXG5cdFx0XHRcdCAgICBoZWFkZXI6IHtcclxuXHRcdFx0XHRcdFx0XCJjb250ZW50LXR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCJcclxuXHRcdFx0XHQgICAgfSxcclxuXHRcdFx0XHQgICAgc3VjY2VzczogKHJlc3VsdCkgPT4ge1xyXG5cdFx0XHRcdFx0XHRsZXQgcmVzID0gcmVzdWx0LmRhdGE7XHJcblx0XHRcdFx0XHRcdHVuaS5oaWRlTG9hZGluZygpO1xyXG5cdFx0XHRcdFx0XHRpZiAocmVzLmNvZGUgPT0gMjAwKSB7XHJcblx0XHRcdFx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XHJcblx0XHRcdFx0XHRcdFx0XHR0aXRsZTogJ+eZu+W9leaIkOWKnycsXHJcblx0XHRcdFx0XHRcdFx0XHRwb3NpdGlvbjogJ2JvdHRvbScsXHJcblx0XHRcdFx0XHRcdFx0XHRkdXJhdGlvbjogMTAwMFxyXG5cdFx0XHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0XHRcdGlmKHRoaXMucmVtYmVyKXtcclxuXHRcdFx0XHRcdFx0XHRcdHVuaS5zZXRTdG9yYWdlU3luYygnSEN1bmFtZScsIHRoaXMudXNlck5hbWUpO1xyXG5cdFx0XHRcdFx0XHRcdFx0dW5pLnNldFN0b3JhZ2VTeW5jKCdIQ3Bhc3N3JywgdGhpcy5wYXNzd29yZCk7XHJcblx0XHRcdFx0XHRcdFx0fWVsc2V7XHJcblx0XHRcdFx0XHRcdFx0XHR1bmkucmVtb3ZlU3RvcmFnZVN5bmMoJ0hDdW5hbWUnKTtcclxuXHRcdFx0XHRcdFx0XHRcdHVuaS5yZW1vdmVTdG9yYWdlU3luYygnSENwYXNzdycpO1xyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ3Rva2VuJywgcmVzLmRhdGEudG9rZW4pO1xyXG5cdFx0XHRcdFx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdFx0dW5pLm5hdmlnYXRlQmFjaygpO1x0XHQvLyAgIOWwj+eoi+W6j+eUqOi/meS4qiAg5oqK6aaW6aG16Lev55Sx5pS+56ys5LiA5LiqXHJcblx0XHRcdFx0XHRcdFx0XHR1bmkucmVMYXVuY2goe1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR1cmw6ICcuLi9pbmRleC9pbmRleCdcclxuXHRcdFx0XHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0XHRcdH0sIDEwMDApO1xyXG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xyXG5cdFx0XHRcdFx0XHRcdFx0dGl0bGU6IHJlcy5tc2csXHJcblx0XHRcdFx0XHRcdFx0XHRpY29uOiBcIm5vbmVcIixcclxuXHRcdFx0XHRcdFx0XHRcdHBvc2l0aW9uOiAndG9wJ1xyXG5cdFx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0ICAgIH1cclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0fSxcclxuXHRcdFx0c2F2ZUNsaWVudElkKCl7XHJcblx0XHRcdFx0dmFyIGluZm8gPSBwbHVzLnB1c2guZ2V0Q2xpZW50SW5mbygpO1xyXG5cdFx0XHRcdHZhciBjaWQgPSBpbmZvLmNsaWVudGlkO1xyXG5cdFx0XHRcdHRoaXMuJGh0dHAuZ2V0KFwiL3N5cy91c2VyL3NhdmVDbGllbnRJZFwiLHtwYXJhbXM6e2NsaWVudElkOmNpZH19KS50aGVuKHJlcz0+e1xyXG5cdFx0XHRcdFx0dGhpcy4kdGlwLnN1Y2Nlc3MoJ+eZu+W9leaIkOWKnyEnKVxyXG5cdFx0XHRcdFx0dGhpcy4kUm91dGVyLnJlcGxhY2VBbGwoe25hbWU6J2luZGV4J30pXHJcblx0XHRcdFx0fSlcclxuXHRcdFx0fSxcclxuXHRcdFx0Y2hhbmdlUGFzc3dvcmQoKSB7XHJcblx0XHRcdFx0dGhpcy5zaG93UGFzc3dvcmQgPSAhdGhpcy5zaG93UGFzc3dvcmQ7XHJcblx0XHRcdH0sXHJcblx0XHRcdGxvZ2luU3VjY2VzcygpIHtcclxuXHRcdFx0ICAvLyDnmbvpmYbmiJDlip/vvIzph43lrprlkJHliLDkuLvpobVcclxuXHRcdFx0ICB0aGlzLiRSb3V0ZXIucmVwbGFjZSh7bmFtZTonaW5kZXgnfSlcclxuXHRcdFx0fSxcclxuXHRcdFx0cmVxdWVzdEZhaWxlZChlcnIpIHtcclxuXHRcdFx0ICB0aGlzLiRtZXNzYWdlLndhcm5pbmcoXCLnmbvlvZXlpLHotKVcIilcclxuXHRcdFx0fSxcclxuICAgICAgICB9LFxyXG5cdFx0YmVmb3JlRGVzdHJveSgpIHtcclxuXHRcdCAgICBpZiAodGhpcy5zbXNDb3VudEludGVydmFsKSB7XHJcblx0XHQgICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5zbXNDb3VudEludGVydmFsKTtcclxuXHRcdCAgICB9XHJcblx0XHR9LFxyXG5cdFx0XHJcblx0XHRcclxuICAgIH1cclxuPC9zY3JpcHQ+XHJcblxyXG48c3R5bGU+XHJcblx0QGltcG9ydCBcIi4uLy4uL2NvbG9ydWkvbWFpbi5jc3NcIjtcclxuXHRAaW1wb3J0IFwiLi4vLi4vY29sb3J1aS9pY29uLmNzc1wiO1xyXG5cdEBpbXBvcnQgXCIuLi8uLi9jb2xvcnVpL2FuaW1hdGlvbi5jc3NcIjtcclxuXHRcclxuXHQuY29uZmlnIHtcclxuXHRcdHdpZHRoOiA1MDBycHg7XHJcblx0XHRoZWlnaHQ6IDUwMHJweDtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcblx0fVxyXG4gICAgLmxvZ2luLXBhZGRpbmd0b3Age1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiA1MHVweDtcclxuICAgIH1cclxuXHJcbiAgICAuemFpLWJveCB7XHJcbiAgICAgICAgcGFkZGluZzogMCAyMHVweDtcclxuICAgICAgICBwYWRkaW5nLXRvcDogMTAwdXB4O1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIH1cclxuXHJcbiAgICAuemFpLWxvZ28ge1xyXG4gICAgICAgIHdpZHRoOiA2MDB1cHg7XHJcbiAgICAgICAgaGVpZ2h0OiAxNTBweDtcclxuICAgIH1cclxuXHJcbiAgICAuemFpLXRpdGxlIHtcclxuICAgICAgIGZvbnQtc2l6ZTogNTh1cHg7XHJcbiAgICAgICBjb2xvcjogIzAwMDAwMDtcclxuICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIH1cclxuXHJcbiAgICAuaW5wdXQtcGxhY2Vob2xkZXIsIC56YWktaW5wdXQge1xyXG4gICAgICAgIGNvbG9yOiAjOTRhZmNlO1xyXG4gICAgfVxyXG5cclxuICAgIC56YWktbGFiZWwge1xyXG4gICAgICAgIHBhZGRpbmc6IDYwdXB4IDA7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMzB1cHg7XHJcbiAgICAgICAgY29sb3I6ICNhN2I2ZDA7XHJcbiAgICB9XHJcblxyXG4gICAgLnphaS1idG4ge1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICNmZjY1YTM7XHJcbiAgICAgICAgY29sb3I6ICNmZmY7XHJcbiAgICAgICAgYm9yZGVyOiAwO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMHVweDtcclxuICAgICAgICBmb250LXNpemU6IDM2dXB4O1xyXG4gICAgfVxyXG5cclxuICAgIC56YWktYnRuOmFmdGVyIHtcclxuICAgICAgICBib3JkZXI6IDA7XHJcbiAgICB9XHJcblxyXG4gICAgLyrmjInpkq7ngrnlh7vmlYjmnpwqL1xyXG4gICAgLnphaS1idG4uYnV0dG9uLWhvdmVyIHtcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxdXB4LCAxdXB4KTtcclxuICAgIH1cclxuXHQuY2hhbmdlQm94IHtcclxuXHRcdG1hcmdpbi10b3A6IDIwdXB4O1xyXG5cdH1cclxuXHQucmVtYmVyIHtcclxuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHR9XHJcblx0LmNoYW5nZUlQIHtcclxuXHRcdGZsb2F0OiByaWdodDtcclxuXHRcdG1hcmdpbi1yaWdodDogMTV1cHg7XHJcblx0fVxyXG48L3N0eWxlPlxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///33\n"); |
| | | |
| | | /***/ }), |
| | | /* 34 */ |
| | |
| | | /***/ (function(module, exports, __webpack_require__) { |
| | | |
| | | "use strict"; |
| | | eval("Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0;\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar _permission = _interopRequireDefault(__webpack_require__(/*! @/common/permission.js */ 78));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default = { data: function data() {return { barcode: '', barcodeFocus: true, focus: false, type: 'center', searchBox: 'hide', pick: 'hide', matnr: '', // matList:[{matnr:'1101842-10000',batch:'22047515999',color:{color:'red'}}],\n matList: [], result: '', siteList: [], staNoList: [], satNo: '', listLen: 0, msgType: 'success', messageText: '这是一条成功提示', fontColor: { color: 'red' }, matCount: '', wrkNo: '' };}, onReady: function onReady() {setInterval(function () {// console.log(this.matList)\n // this.getMatListLen()\n }, 1000);}, onLoad: function onLoad() {setInterval(function () {uni.hideKeyboard();}, 20);}, mounted: function mounted() {var UIP = uni.getStorageSync('UIP');this.baseIP = UIP;var UPORT = uni.getStorageSync('UPORT');this.basePORT = UPORT;}, methods: { messageToggle: function messageToggle(type) {this.msgType = type;this.messageText = \"\\u8FD9\\u662F\\u4E00\\u6761\".concat(type, \"\\u6D88\\u606F\\u63D0\\u793A\");this.$refs.message.open();}, getMatListLen: function getMatListLen() {// this.listLen = this.matList.length;\n }, focuss: function focuss() {// uni.hideKeyboard()\n }, resst: function resst() {this.matList = [];this.barcode = '';this.matnr = '';this.matCount = '';uni.vibrateShort();}, removeBarcode: function removeBarcode() {this.barcode = '';uni.vibrateShort();this.barcodeFocus = false;this.$nextTick(function () {this.barcodeFocus = true;});}, foucss: function foucss() {var that = this;that.focus = false;\n setTimeout(function () {\n that.matnr = '';\n that.focus = true;\n }, 100);\n\n },\n removeMatnr: function removeMatnr() {\n this.matnr = '';\n uni.vibrateShort();\n this.focus = false;\n this.$nextTick(function () {\n this.focus = true;\n });\n },\n remove: function remove(item, index) {\n this.matList.splice(index, 1);\n this.listLen = this.matList.length;\n this.messageToggle('success');\n this.messageText = '删除成功';\n uni.vibrateShort();\n },\n\n selectMat: function selectMat() {\n var that = this;\n uni.vibrateShort();\n uni.showLoading();\n uni.navigateTo({\n url: \"matSelect\",\n events: {\n // 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据\n acceptDataFromOpenedPage: function acceptDataFromOpenedPage(data) {\n that.matnr = data.data;\n that.findMat(that.matnr);\n } },\n\n success: function success(res) {\n // 通过eventChannel向被打开页面传送数据\n res.eventChannel.emit('acceptDataFromOpenerPage', { baseIP: that.baseIP, basePORT: that.basePORT });\n } });\n\n that.matnr = '';\n },\n findBarcode: function findBarcode() {\n var that = this;\n uni.request({\n url: that.baseHttp + that.baseIP + ':' + that.basePORT + that.baseUrl + '/mobile/pakout/confirm/barcode/auth',\n data: {\n barcode: that.barcode },\n\n header: {\n 'token': uni.getStorageSync('token') },\n\n success: function success(result) {\n var res = result.data;\n if (res.code === 200) {\n if (res.data.ioType === 101) {\n that.matList = res.data.list.concat(that.matList);\n that.listLen = that.matList.length;\n that.foucss();\n return;\n }\n if (res.data.ioType === 103 || res.data.ioType === 104 || res.data.ioType === 107) {\n that.matCount = res.data.list.length;\n that.wrkNo = res.data.list[0].wrkNo;\n that.foucss();\n return;\n }\n } else if (res.code === 403) {\n uni.showToast({ title: res.msg, icon: \"none\", position: 'top' });\n setTimeout(function () {\n uni.reLaunch({\n url: '../login/login' });\n\n }, 1000);\n } else {\n uni.showToast({ title: res.msg, icon: \"none\", position: 'top' });\n }\n\n } });\n\n\n },\n findMat: function findMat() {\n var that = this;\n uni.request({\n url: that.baseHttp + that.baseIP + ':' + that.basePORT + that.baseUrl + '/mobile/pakout/confirm/pick/auth',\n data: {\n wrkNo: that.wrkNo,\n matnr: that.matnr },\n\n header: {\n 'token': uni.getStorageSync('token') },\n\n success: function success(result) {\n var res = result.data;\n if (res.code === 200) {\n if (res.data) {\n if (that.matList.length == 0) {\n that.matList.push(res.data);\n that.listLen = that.matList.length;\n that.foucss();\n return;\n }\n for (var i = 0; i < that.matList.length; i++) {\n if (that.matList.length < that.matCount) {\n if (JSON.stringify(that.matList[i]) === JSON.stringify(res.data)) {\n that.messageToggle('warn');\n that.messageText = '该商品已添加';\n that.foucss();\n return;\n } else {\n that.matList.unshift(res.data);\n that.listLen = that.matList.length;\n that.foucss();\n return;\n }\n } else {\n that.messageToggle('warn');\n that.messageText = '已出全部商品,请确认出库';\n that.foucss();\n return;\n }\n }\n }\n } else if (res.code == 403) {\n uni.showToast({ title: res.msg, icon: \"none\", position: 'top' });\n setTimeout(function () {\n uni.reLaunch({\n url: '../login/login' });\n\n }, 1000);\n } else {\n uni.showToast({ title: res.msg, icon: \"none\", position: 'top' });\n }\n\n } });\n\n },\n comb: function comb() {\n var that = this;\n if (that.barcode === '') {\n this.messageToggle('error');\n this.messageText = '请扫描托盘码';\n return;\n }\n if (that.barcode.length !== 8) {\n this.messageToggle('error');\n this.messageText = '托盘码必须为8位';\n return;\n }\n if (that.matList.length === 0) {\n this.messageToggle('error');\n this.messageText = '请添加商品列表';\n return;\n }\n\n if (that.matList.length < that.matCount) {\n var len = that.matCount - that.matList.length;\n that.messageToggle('error');\n that.messageText = '还剩' + len + '件未扫描';\n return;\n }\n uni.showLoading();\n uni.request({\n url: that.baseHttp + that.baseIP + ':' + that.basePORT + that.baseUrl + '/mobile/pakout/confirm/auth',\n data: that.matList,\n method: 'POST',\n header: {\n 'token': uni.getStorageSync('token') },\n\n success: function success(result) {\n uni.showLoading();\n var res = result.data;\n if (res.code === 200) {\n uni.showToast({ title: res.msg, position: 'bottom', duration: 1000 });\n that.resst();\n } else if (res.code == 403) {\n uni.showToast({ title: res.msg, icon: \"none\", position: 'top' });\n setTimeout(function () {\n uni.reLaunch({\n url: '../login/login' });\n\n }, 1000);\n } else {\n uni.showToast({ title: res.msg, icon: \"none\", position: 'top' });\n }\n } });\n\n },\n getCheckDetl: function getCheckDetl() {// 获取出库口货物信息\n var that = this;\n\n }, // getCheckDetl\n change: function change(e) {\n },\n toggle: function toggle(type) {\n this.type = type;\n // open 方法传入参数 等同在 uni-popup 组件上绑定 type属性\n this.$refs.goodsSearch.open(type);\n },\n checkbox: function checkbox(e) {\n var items = this.data,\n values = e.detail.value;\n for (var i = 0, lenI = items.length; i < lenI; ++i) {\n var item = items[i];\n item.id = item.id + '';\n if (values.indexOf(item.id) >= 0) {\n this.$set(item, 'checked', true);\n } else {\n this.$set(item, 'checked', false);\n }\n }\n if (values.length == items.length) {\n this.check = true;\n this.checkText = \"取消全选\";\n } else {\n this.check = false;\n this.checkText = \"全选\";\n }\n uni.vibrateShort();\n } } };exports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvYmFzaWNzL2NoZWNrb3V0LnZ1ZSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXVFQSxnRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztlQUNBLEVBQ0EsSUFEQSxrQkFDQSxDQUNBLFNBQ0EsV0FEQSxFQUVBLGtCQUZBLEVBR0EsWUFIQSxFQUlBLGNBSkEsRUFLQSxpQkFMQSxFQU1BLFlBTkEsRUFPQSxTQVBBLEVBUUE7QUFDQSxpQkFUQSxFQVVBLFVBVkEsRUFXQSxZQVhBLEVBWUEsYUFaQSxFQWFBLFNBYkEsRUFjQSxVQWRBLEVBZUEsa0JBZkEsRUFnQkEsdUJBaEJBLEVBaUJBLDJCQWpCQSxFQWtCQSxZQWxCQSxFQW1CQSxTQW5CQSxHQXFCQSxDQXZCQSxFQXdCQSxPQXhCQSxxQkF3QkEsQ0FDQSx5QkFDQTtBQUNBO0FBQ0EsS0FIQSxFQUdBLElBSEEsRUFJQSxDQTdCQSxFQThCQSxNQTlCQSxvQkE4QkEsQ0FFQSx5QkFDQSxtQkFDQSxDQUZBLEVBRUEsRUFGQSxFQUlBLENBcENBLEVBcUNBLE9BckNBLHFCQXFDQSxDQUNBLG9DQUNBLGtCQUNBLHdDQUNBLHNCQUVBLENBM0NBLEVBNENBLFdBQ0EsYUFEQSx5QkFDQSxJQURBLEVBQ0EsQ0FDQSxvQkFDQSx1RkFDQSwwQkFDQSxDQUxBLEVBTUEsYUFOQSwyQkFNQSxDQUNBO0FBQ0EsS0FSQSxFQVNBLE1BVEEsb0JBU0EsQ0FDQTtBQUNBLEtBWEEsRUFZQSxLQVpBLG1CQVlBLENBQ0Esa0JBQ0Esa0JBQ0EsZ0JBQ0EsbUJBQ0EsbUJBQ0EsQ0FsQkEsRUFtQkEsYUFuQkEsMkJBbUJBLENBQ0Esa0JBQ0EsbUJBQ0EsMEJBQ0EsNEJBQ0EseUJBQ0EsQ0FGQSxFQUdBLENBMUJBLEVBMkJBLE1BM0JBLG9CQTJCQSxDQUVBLGdCQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FIQSxFQUdBLEdBSEE7O0FBS0EsS0FwQ0E7QUFxQ0EsZUFyQ0EseUJBcUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BRkE7QUFHQSxLQTVDQTtBQTZDQSxVQTdDQSxrQkE2Q0EsSUE3Q0EsRUE2Q0EsS0E3Q0EsRUE2Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FuREE7O0FBcURBLGFBckRBLHVCQXFEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBREE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FMQSxFQUZBOztBQVNBO0FBQ0E7QUFDQTtBQUNBLFNBWkE7O0FBY0E7QUFDQSxLQXhFQTtBQXlFQSxlQXpFQSx5QkF5RUE7QUFDQTtBQUNBO0FBQ0EscUhBREE7QUFFQTtBQUNBLCtCQURBLEVBRkE7O0FBS0E7QUFDQSw4Q0FEQSxFQUxBOztBQVFBLGVBUkEsbUJBUUEsTUFSQSxFQVFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBYkEsTUFhQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFDQURBOztBQUdBLGFBSkEsRUFJQSxJQUpBO0FBS0EsV0FQQSxNQU9BO0FBQ0E7QUFDQTs7QUFFQSxTQWxDQTs7O0FBcUNBLEtBaEhBO0FBaUhBLFdBakhBLHFCQWlIQTtBQUNBO0FBQ0E7QUFDQSxrSEFEQTtBQUVBO0FBQ0EsMkJBREE7QUFFQSwyQkFGQSxFQUZBOztBQU1BO0FBQ0EsOENBREEsRUFOQTs7QUFTQSxlQVRBLG1CQVNBLE1BVEEsRUFTQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUJBTEEsTUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFaQSxNQVlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQTdCQSxNQTZCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFDQURBOztBQUdBLGFBSkEsRUFJQSxJQUpBO0FBS0EsV0FQQSxNQU9BO0FBQ0E7QUFDQTs7QUFFQSxTQW5EQTs7QUFxREEsS0F4S0E7QUF5S0EsUUF6S0Esa0JBeUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZHQURBO0FBRUEsMEJBRkE7QUFHQSxzQkFIQTtBQUlBO0FBQ0EsOENBREEsRUFKQTs7QUFPQSxlQVBBLG1CQU9BLE1BUEEsRUFPQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUhBLE1BR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQ0FEQTs7QUFHQSxhQUpBLEVBSUEsSUFKQTtBQUtBLFdBUEEsTUFPQTtBQUNBO0FBQ0E7QUFDQSxTQXZCQTs7QUF5QkEsS0EzTkE7QUE0TkEsZ0JBNU5BLDBCQTROQTtBQUNBOztBQUVBLEtBL05BLEVBK05BO0FBQ0EsVUFoT0Esa0JBZ09BLENBaE9BLEVBZ09BO0FBQ0EsS0FqT0E7QUFrT0EsVUFsT0Esa0JBa09BLElBbE9BLEVBa09BO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0F0T0E7QUF1T0E7QUFDQTtBQUNBLDZCQURBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBRkEsTUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BSEEsTUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0EzUEEsRUE1Q0EsRSIsImZpbGUiOiI4OC5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuXHQ8dmlldyA+XHJcblx0XHQ8c2Nyb2xsLXZpZXcgc2Nyb2xsLXkgY2xhc3M9XCJzY3JvbGwtWVwiPlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cInNxdWFyZS0yXCI+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJzcXVhcmUtdGl0bGVcIj5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidGl0bGUtc2lnblwiPjx2aWV3IGNsYXNzPVwic2lnblwiPjwvdmlldz48L3ZpZXc+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInRpdGxlLXRleHRcIj48dGV4dD7miZjnm5jmnaHnoIE8L3RleHQ+PC92aWV3PlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cInNxdWFyZS1jb250ZW50XCI+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImNvbnRlbnQtaW5wdXRcIj5cclxuXHRcdFx0XHRcdFx0PGlucHV0IHYtbW9kZWw9XCJiYXJjb2RlXCIgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cIuaJq+eggSAvIOi+k+WFpVwiIG1heGxlbmd0aD1cIjhcIiBcclxuXHRcdFx0XHRcdFx0QGlucHV0PVwiZmluZEJhcmNvZGUoKVwiIDpmb2N1cz1cImJhcmNvZGVGb2N1c1wiIEBmb2N1cz1cImZvY3Vzc1wiID5cclxuXHRcdFx0XHRcdFx0PHVuaS1pY29ucyB0eXBlPVwiY2xvc2VlbXB0eVwiIHNpemU9XCIyMFwiIGNvbG9yPVwiI2RhZGFkYVwiIEBjbGljaz1cInJlbW92ZUJhcmNvZGUoKVwiPjwvdW5pLWljb25zPlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cInNxdWFyZS0yXCI+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJzcXVhcmUtdGl0bGVcIj5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidGl0bGUtc2lnblwiPjx2aWV3IGNsYXNzPVwic2lnblwiPjwvdmlldz48L3ZpZXc+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInRpdGxlLXRleHRcIj48dGV4dD7otKflk4HmnaHnoIE8L3RleHQ+PC92aWV3PlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cInNxdWFyZS1jb250ZW50XCI+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImNvbnRlbnQtaW5wdXQtY29tYm94XCIgc3R5bGU9XCJ3aWR0aDogOTQlO1wiPlxyXG5cdFx0XHRcdFx0XHQ8aW5wdXQgc3R5bGU9XCJ3aWR0aDogOTAlO1wiIHR5cGU9XCJ0ZXh0XCIgdi1tb2RlbD1cIm1hdG5yXCIgcGxhY2Vob2xkZXI9XCLmiavnoIEgLyDovpPlhaVcIiBAaW5wdXQ9XCJmaW5kTWF0KClcIjpmb2N1cz1cImZvY3VzXCJcclxuXHRcdFx0XHRcdFx0IEBmb2N1cz1cImZvY3Vzc1wiPlxyXG5cdFx0XHRcdFx0XHQ8IS0tIEBmb2N1cz1cImZvY3Vzc1wiIC0tPlxyXG5cdFx0XHRcdFx0XHQ8dW5pLWljb25zIHR5cGU9XCJjbG9zZWVtcHR5XCIgc2l6ZT1cIjIwXCIgY29sb3I9XCIjZGFkYWRhXCIgQGNsaWNrPVwicmVtb3ZlTWF0bnIoKVwiPjwvdW5pLWljb25zPlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJzcXVhcmUtMVwiPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwic3F1YXJlLXRpdGxlXCI+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInRpdGxlLXNpZ25cIj48dmlldyBjbGFzcz1cInNpZ25cIj48L3ZpZXc+PC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0aXRsZS10ZXh0XCI+PHRleHQ+5ZWG5ZOB5YiX6KGoPC90ZXh0Pjwvdmlldz5cclxuXHRcdFx0XHRcdDx2aWV3IHYtc2hvdz1cIm1hdENvdW50ID4gMFwiIHN0eWxlPVwiZGlzcGxheTogaW5saW5lLWJsb2NrO2Zsb2F0OiByaWdodDtoZWlnaHQ6IDEwMHJweDtsaW5lLWhlaWdodDogMTAwcnB4O21hcmdpbi1yaWdodDogNTBycHg7XCI+6K+35omr56CB6YCJ5Y+WIHt7bWF0Q291bnR9fSDku7bllYblk4E8L3ZpZXc+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwic3F1YXJlLW5vbmVcIiB2LXNob3c9XCJtYXRMaXN0Lmxlbmd0aCA9PT0gMFwiPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwidi1zaG93XCI+5pqC5peg5pu05aSa5pWw5o2uLiAuIC4gPC92aWV3PlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDxjaGVja2JveC1ncm91cCBAY2hhbmdlPVwiY2hlY2tib3hcIj5cclxuXHRcdFx0XHQ8dmlldyB2LWZvcj1cIihpdGVtLGluZGV4KSBpbiBtYXRMaXN0XCIgOmtleT1cImluZGV4XCIgY2xhc3M9XCJkYXRhLWxpc3QgYmctZmFsc2VcIiA6Y2xhc3M9XCInYmctJytpdGVtLmNoZWNrZWRcIiA+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImRhdGEtbGlzdC1sZWZ0XCI+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwibWF0bnJcIiA6c3R5bGU9XCJpdGVtLmNvbG9yXCI+Tm86e3tsaXN0TGVuLWluZGV4fX08L3ZpZXc+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwibWF0bnJcIiA6c3R5bGU9XCJpdGVtLmNvbG9yXCI+e3tpdGVtLm1hdG5yfX0te3tpdGVtLmJhdGNofX08L3ZpZXc+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImRhdGEtbGlzdC1yaWdodFwiPlxyXG5cdFx0XHRcdFx0XHQ8dW5pLWljb25zIHR5cGU9XCJ0cmFzaFwiIHNpemU9XCIyMFwiIGNvbG9yPVwiI2E1YTVhNVwiIEBjbGljaz1cInJlbW92ZShpdGVtLGluZGV4KVwiPjwvdW5pLWljb25zPlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0PC9jaGVja2JveC1ncm91cD5cclxuXHRcdDwvc2Nyb2xsLXZpZXc+XHJcblx0XHQ8dmlldyBjbGFzcz1cImZvb3RlciBmbGV4IGp1c3RpZnktYXJvdW5kXCI+XHJcblx0XHRcdDx2aWV3PlxyXG5cdFx0XHRcdDxidXR0b24gY2xhc3M9XCJjdS1idG4gbGdcIiBAY2xpY2s9XCJyZXNzdCgpXCI+6YeN572uPC9idXR0b24+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdFx0PHZpZXc+XHJcblx0XHRcdFx0PGJ1dHRvbiBjbGFzcz1cImN1LWJ0biBsZyBwYWtpbi1idG4gYmctYmx1ZVwiIEBjbGljaz1cImNvbWIoKVwiPuehruiupDwvYnV0dG9uPlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHQ8L3ZpZXc+XHJcblx0XHQ8dmlldz5cclxuXHRcdFx0PCEtLSDmj5DnpLrkv6Hmga/lvLnnqpcgLS0+XHJcblx0XHRcdDx1bmktcG9wdXAgcmVmPVwibWVzc2FnZVwiIHR5cGU9XCJtZXNzYWdlXCI+XHJcblx0XHRcdFx0PHVuaS1wb3B1cC1tZXNzYWdlIDp0eXBlPVwibXNnVHlwZVwiIDptZXNzYWdlPVwibWVzc2FnZVRleHRcIiA6ZHVyYXRpb249XCIyMDAwXCI+PC91bmktcG9wdXAtbWVzc2FnZT5cclxuXHRcdFx0PC91bmktcG9wdXA+XHJcblx0XHQ8L3ZpZXc+XHJcblx0PC92aWV3PlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuXHRpbXBvcnQgcGVybWlzaW9uIGZyb20gXCJAL2NvbW1vbi9wZXJtaXNzaW9uLmpzXCJcclxuXHRleHBvcnQgZGVmYXVsdCB7XHJcblx0XHRkYXRhKCkge1xyXG5cdFx0XHRyZXR1cm4ge1xyXG5cdFx0XHRcdGJhcmNvZGU6ICcnLFxyXG5cdFx0XHRcdGJhcmNvZGVGb2N1czp0cnVlLFxyXG5cdFx0XHRcdGZvY3VzOmZhbHNlLFxyXG5cdFx0XHRcdHR5cGU6ICdjZW50ZXInLFxyXG5cdFx0XHRcdHNlYXJjaEJveDogJ2hpZGUnLFxyXG5cdFx0XHRcdHBpY2s6J2hpZGUnLFxyXG5cdFx0XHRcdG1hdG5yOicnLFxyXG5cdFx0XHRcdC8vIG1hdExpc3Q6W3ttYXRucjonMTEwMTg0Mi0xMDAwMCcsYmF0Y2g6JzIyMDQ3NTE1OTk5Jyxjb2xvcjp7Y29sb3I6J3JlZCd9fV0sXHJcblx0XHRcdFx0bWF0TGlzdDpbXSxcclxuXHRcdFx0XHRyZXN1bHQ6ICcnLFxyXG5cdFx0XHRcdHNpdGVMaXN0OltdLFxyXG5cdFx0XHRcdHN0YU5vTGlzdDpbXSxcclxuXHRcdFx0XHRzYXRObzonJyxcclxuXHRcdFx0XHRsaXN0TGVuOjAsXHJcblx0XHRcdFx0bXNnVHlwZTogJ3N1Y2Nlc3MnLFxyXG5cdFx0XHRcdG1lc3NhZ2VUZXh0OiAn6L+Z5piv5LiA5p2h5oiQ5Yqf5o+Q56S6JyxcclxuXHRcdFx0XHRmb250Q29sb3I6e2NvbG9yOidyZWQnfSxcclxuXHRcdFx0XHRtYXRDb3VudDonJyxcclxuXHRcdFx0XHR3cmtObzonJyxcclxuXHRcdFx0fVxyXG5cdFx0fSxcclxuXHRcdG9uUmVhZHkoKSB7XHJcblx0XHRcdHNldEludGVydmFsKGZ1bmN0aW9uKCl7XHJcblx0XHRcdFx0Ly8gY29uc29sZS5sb2codGhpcy5tYXRMaXN0KVxyXG5cdFx0XHRcdC8vIHRoaXMuZ2V0TWF0TGlzdExlbigpXHJcblx0XHRcdH0sMTAwMClcclxuXHRcdH0sXHJcblx0XHRvbkxvYWQoKSB7XHJcblx0XHRcdC8vICNpZmRlZiBBUFBcclxuXHRcdFx0c2V0SW50ZXJ2YWwoKCk9PntcclxuXHRcdFx0XHR1bmkuaGlkZUtleWJvYXJkKClcclxuXHRcdFx0fSwyMClcclxuXHRcdFx0Ly8gI2VuZGlmXHJcblx0XHR9LFxyXG5cdFx0bW91bnRlZCgpe1xyXG5cdFx0XHRjb25zdCBVSVAgPSB1bmkuZ2V0U3RvcmFnZVN5bmMoJ1VJUCcpO1xyXG5cdFx0XHR0aGlzLmJhc2VJUCA9IFVJUDtcclxuXHRcdFx0Y29uc3QgVVBPUlQgPSB1bmkuZ2V0U3RvcmFnZVN5bmMoJ1VQT1JUJyk7XHJcblx0XHRcdHRoaXMuYmFzZVBPUlQgPSBVUE9SVFxyXG5cdFx0XHRcclxuXHRcdH0sXHJcblx0XHRtZXRob2RzOiB7XHJcblx0XHRcdG1lc3NhZ2VUb2dnbGUodHlwZSkge1xyXG5cdFx0XHRcdHRoaXMubXNnVHlwZSA9IHR5cGVcclxuXHRcdFx0XHR0aGlzLm1lc3NhZ2VUZXh0ID0gYOi/meaYr+S4gOadoSR7dHlwZX3mtojmga/mj5DnpLpgXHJcblx0XHRcdFx0dGhpcy4kcmVmcy5tZXNzYWdlLm9wZW4oKVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRnZXRNYXRMaXN0TGVuKCkge1xyXG5cdFx0XHRcdC8vIHRoaXMubGlzdExlbiA9IHRoaXMubWF0TGlzdC5sZW5ndGg7XHJcblx0XHRcdH0sXHJcblx0XHRcdGZvY3VzcygpIHtcclxuXHRcdFx0XHQvLyB1bmkuaGlkZUtleWJvYXJkKClcclxuXHRcdFx0fSxcclxuXHRcdFx0cmVzc3QoKSB7XHJcblx0XHRcdFx0dGhpcy5tYXRMaXN0ID0gW11cclxuXHRcdFx0XHR0aGlzLmJhcmNvZGUgPSAnJ1xyXG5cdFx0XHRcdHRoaXMubWF0bnIgPSAnJ1xyXG5cdFx0XHRcdHRoaXMubWF0Q291bnQgPSAnJ1xyXG5cdFx0XHRcdHVuaS52aWJyYXRlU2hvcnQoKTtcclxuXHRcdFx0fSxcclxuXHRcdFx0cmVtb3ZlQmFyY29kZSgpIHtcclxuXHRcdFx0XHR0aGlzLmJhcmNvZGUgPSAnJ1xyXG5cdFx0XHRcdHVuaS52aWJyYXRlU2hvcnQoKTtcdFxyXG5cdFx0XHRcdHRoaXMuYmFyY29kZUZvY3VzID0gZmFsc2U7XHJcblx0XHRcdFx0dGhpcy4kbmV4dFRpY2soZnVuY3Rpb24oKSB7XHJcblx0XHRcdFx0XHR0aGlzLmJhcmNvZGVGb2N1cyA9IHRydWU7XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdH0sXHJcblx0XHRcdGZvdWNzcygpIHtcclxuXHRcdFx0XHQvLyAjaWZkZWYgQVBQXHJcblx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzO1xyXG5cdFx0XHRcdHRoYXQuZm9jdXMgPSBmYWxzZTtcclxuXHRcdFx0XHRzZXRUaW1lb3V0KCgpPT57XHJcblx0XHRcdFx0XHR0aGF0Lm1hdG5yID0gJyc7XHJcblx0XHRcdFx0XHR0aGF0LmZvY3VzID0gdHJ1ZTtcclxuXHRcdFx0XHR9LCAxMDApO1xyXG5cdFx0XHRcdC8vICNlbmRpZlxyXG5cdFx0XHR9LFxyXG5cdFx0XHRyZW1vdmVNYXRucigpIHtcclxuXHRcdFx0XHR0aGlzLm1hdG5yID0gJydcclxuXHRcdFx0XHR1bmkudmlicmF0ZVNob3J0KCk7XHJcblx0XHRcdFx0dGhpcy5mb2N1cyA9IGZhbHNlO1xyXG5cdFx0XHRcdHRoaXMuJG5leHRUaWNrKGZ1bmN0aW9uKCkge1xyXG5cdFx0XHRcdFx0dGhpcy5mb2N1cyA9IHRydWU7XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdH0sXHJcblx0XHRcdHJlbW92ZShpdGVtLGluZGV4KSB7XHJcblx0XHRcdFx0dGhpcy5tYXRMaXN0LnNwbGljZShpbmRleCwxKTtcclxuXHRcdFx0XHR0aGlzLmxpc3RMZW4gPSB0aGlzLm1hdExpc3QubGVuZ3RoXHJcblx0XHRcdFx0dGhpcy5tZXNzYWdlVG9nZ2xlKCdzdWNjZXNzJylcclxuXHRcdFx0XHR0aGlzLm1lc3NhZ2VUZXh0ID0gJ+WIoOmZpOaIkOWKnydcclxuXHRcdFx0XHR1bmkudmlicmF0ZVNob3J0KCk7XHJcblx0XHRcdH0sXHJcblx0XHRcdFxyXG5cdFx0XHRzZWxlY3RNYXQoKSB7XHJcblx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzXHJcblx0XHRcdFx0dW5pLnZpYnJhdGVTaG9ydCgpO1xyXG5cdFx0XHRcdHVuaS5zaG93TG9hZGluZygpO1xyXG5cdFx0XHRcdHVuaS5uYXZpZ2F0ZVRvKHtcclxuXHRcdFx0XHRcdHVybDogXCJtYXRTZWxlY3RcIixcclxuXHRcdFx0XHRcdGV2ZW50czoge1xyXG5cdFx0XHRcdFx0ICAgIC8vIOS4uuaMh+WumuS6i+S7tua3u+WKoOS4gOS4quebkeWQrOWZqO+8jOiOt+WPluiiq+aJk+W8gOmhtemdouS8oOmAgeWIsOW9k+WJjemhtemdoueahOaVsOaNrlxyXG5cdFx0XHRcdFx0ICAgIGFjY2VwdERhdGFGcm9tT3BlbmVkUGFnZTogZnVuY3Rpb24oZGF0YSkge1xyXG5cdFx0XHRcdFx0XHRcdHRoYXQubWF0bnIgPSBkYXRhLmRhdGFcclxuXHRcdFx0XHRcdFx0XHR0aGF0LmZpbmRNYXQodGhhdC5tYXRucilcclxuXHRcdFx0XHRcdCAgICB9LFxyXG5cdFx0XHRcdFx0ICB9LFxyXG5cdFx0XHRcdFx0ICBzdWNjZXNzOiBmdW5jdGlvbihyZXMpIHtcclxuXHRcdFx0XHRcdCAgICAvLyDpgJrov4dldmVudENoYW5uZWzlkJHooqvmiZPlvIDpobXpnaLkvKDpgIHmlbDmja5cclxuXHRcdFx0XHRcdCAgICByZXMuZXZlbnRDaGFubmVsLmVtaXQoJ2FjY2VwdERhdGFGcm9tT3BlbmVyUGFnZScsIHtiYXNlSVA6dGhhdC5iYXNlSVAsIGJhc2VQT1JUOnRoYXQuYmFzZVBPUlQgfSlcclxuXHRcdFx0XHRcdCAgfVxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHRcdHRoYXQubWF0bnIgPSAnJ1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRmaW5kQmFyY29kZSgpIHtcclxuXHRcdFx0XHRsZXQgdGhhdCA9IHRoaXNcclxuXHRcdFx0XHR1bmkucmVxdWVzdCh7XHJcblx0XHRcdFx0ICAgIHVybDogdGhhdC5iYXNlSHR0cCArIHRoYXQuYmFzZUlQICsgJzonICt0aGF0LmJhc2VQT1JUICsgdGhhdC5iYXNlVXJsICsgJy9tb2JpbGUvcGFrb3V0L2NvbmZpcm0vYmFyY29kZS9hdXRoJyxcclxuXHRcdFx0XHQgICAgZGF0YToge1xyXG5cdFx0XHRcdFx0XHRiYXJjb2RlOnRoYXQuYmFyY29kZVxyXG5cdFx0XHRcdCAgICB9LFxyXG5cdFx0XHRcdCAgICBoZWFkZXI6IHtcclxuXHRcdFx0XHRcdFx0J3Rva2VuJzp1bmkuZ2V0U3RvcmFnZVN5bmMoJ3Rva2VuJyksXHJcblx0XHRcdFx0ICAgIH0sXHJcblx0XHRcdFx0XHRzdWNjZXNzKHJlc3VsdCkge1xyXG5cdFx0XHRcdFx0XHRsZXQgcmVzID0gcmVzdWx0LmRhdGE7XHJcblx0XHRcdFx0XHRcdGlmIChyZXMuY29kZSA9PT0gMjAwKSB7XHJcblx0XHRcdFx0XHRcdFx0aWYgKHJlcy5kYXRhLmlvVHlwZSA9PT0gMTAxKSB7XHJcblx0XHRcdFx0XHRcdFx0XHR0aGF0Lm1hdExpc3QgPSByZXMuZGF0YS5saXN0LmNvbmNhdCh0aGF0Lm1hdExpc3QpXHJcblx0XHRcdFx0XHRcdFx0XHR0aGF0Lmxpc3RMZW4gPSB0aGF0Lm1hdExpc3QubGVuZ3RoO1xyXG5cdFx0XHRcdFx0XHRcdFx0dGhhdC5mb3Vjc3MoKTtcclxuXHRcdFx0XHRcdFx0XHRcdHJldHVybjtcclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0aWYgKHJlcy5kYXRhLmlvVHlwZSA9PT0gMTAzIHx8IHJlcy5kYXRhLmlvVHlwZSA9PT0gMTA0IHx8IHJlcy5kYXRhLmlvVHlwZSA9PT0gMTA3KSB7XHJcblx0XHRcdFx0XHRcdFx0XHR0aGF0Lm1hdENvdW50ID0gcmVzLmRhdGEubGlzdC5sZW5ndGhcclxuXHRcdFx0XHRcdFx0XHRcdHRoYXQud3JrTm8gPSByZXMuZGF0YS5saXN0WzBdLndya05vXHJcblx0XHRcdFx0XHRcdFx0XHR0aGF0LmZvdWNzcygpO1xyXG5cdFx0XHRcdFx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0fSBlbHNlIGlmIChyZXMuY29kZSA9PT0gNDAzKSB7XHJcblx0XHRcdFx0XHRcdFx0dW5pLnNob3dUb2FzdCh7dGl0bGU6IHJlcy5tc2csIGljb246IFwibm9uZVwiLCBwb3NpdGlvbjogJ3RvcCd9KVxyXG5cdFx0XHRcdFx0XHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHVuaS5yZUxhdW5jaCh7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0dXJsOiAnLi4vbG9naW4vbG9naW4nXHJcblx0XHRcdFx0XHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0XHRcdH0sIDEwMDApO1xyXG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe3RpdGxlOiByZXMubXNnLCBpY29uOiBcIm5vbmVcIixwb3NpdGlvbjogJ3RvcCd9KVxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFxyXG5cdFx0XHR9LFxyXG5cdFx0XHRmaW5kTWF0KCkge1xyXG5cdFx0XHRcdGxldCB0aGF0ID0gdGhpc1xyXG5cdFx0XHRcdHVuaS5yZXF1ZXN0KHtcclxuXHRcdFx0XHQgICAgdXJsOiB0aGF0LmJhc2VIdHRwICsgdGhhdC5iYXNlSVAgKyAnOicgK3RoYXQuYmFzZVBPUlQgKyB0aGF0LmJhc2VVcmwgKyAnL21vYmlsZS9wYWtvdXQvY29uZmlybS9waWNrL2F1dGgnLFxyXG5cdFx0XHRcdCAgICBkYXRhOiB7XHJcblx0XHRcdFx0XHRcdHdya05vOnRoYXQud3JrTm8sXHJcblx0XHRcdFx0XHRcdG1hdG5yOnRoYXQubWF0bnJcclxuXHRcdFx0XHQgICAgfSxcclxuXHRcdFx0XHQgICAgaGVhZGVyOiB7XHJcblx0XHRcdFx0XHRcdCd0b2tlbic6dW5pLmdldFN0b3JhZ2VTeW5jKCd0b2tlbicpXHJcblx0XHRcdFx0ICAgIH0sXHJcblx0XHRcdFx0XHRzdWNjZXNzKHJlc3VsdCkge1xyXG5cdFx0XHRcdFx0XHR2YXIgcmVzID0gcmVzdWx0LmRhdGE7XHJcblx0XHRcdFx0XHRcdGlmKHJlcy5jb2RlID09PSAyMDAgKSB7XHJcblx0XHRcdFx0XHRcdFx0aWYocmVzLmRhdGEpIHtcclxuXHRcdFx0XHRcdFx0XHRcdGlmICh0aGF0Lm1hdExpc3QubGVuZ3RoID09IDApIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0dGhhdC5tYXRMaXN0LnB1c2gocmVzLmRhdGEpXHJcblx0XHRcdFx0XHRcdFx0XHRcdHRoYXQubGlzdExlbiA9IHRoYXQubWF0TGlzdC5sZW5ndGg7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHRoYXQuZm91Y3NzKCk7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHJldHVybjtcclxuXHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdGZvcihsZXQgaSA9IDA7aTx0aGF0Lm1hdExpc3QubGVuZ3RoO2krKykge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRpZiAodGhhdC5tYXRMaXN0Lmxlbmd0aCA8IHRoYXQubWF0Q291bnQpe1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGlmKEpTT04uc3RyaW5naWZ5KHRoYXQubWF0TGlzdFtpXSkgPT09IEpTT04uc3RyaW5naWZ5KHJlcy5kYXRhKSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0dGhhdC5tZXNzYWdlVG9nZ2xlKCd3YXJuJyk7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0aGF0Lm1lc3NhZ2VUZXh0ID0gJ+ivpeWVhuWTgeW3sua3u+WKoCc7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0aGF0LmZvdWNzcygpO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0aGF0Lm1hdExpc3QudW5zaGlmdChyZXMuZGF0YSk7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0aGF0Lmxpc3RMZW4gPSB0aGF0Lm1hdExpc3QubGVuZ3RoO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0dGhhdC5mb3Vjc3MoKTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHJldHVybjtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0dGhhdC5tZXNzYWdlVG9nZ2xlKCd3YXJuJyk7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0dGhhdC5tZXNzYWdlVGV4dCA9ICflt7Llh7rlhajpg6jllYblk4HvvIzor7fnoa7orqTlh7rlupMnO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHRoYXQuZm91Y3NzKCk7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9IGVsc2UgaWYgKHJlcy5jb2RlID09IDQwMykge1xyXG5cdFx0XHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe3RpdGxlOiByZXMubXNnLCBpY29uOiBcIm5vbmVcIiwgcG9zaXRpb246ICd0b3AnfSlcclxuXHRcdFx0XHRcdFx0XHRzZXRUaW1lb3V0KCgpID0+IHtcclxuXHRcdFx0XHRcdFx0XHRcdHVuaS5yZUxhdW5jaCh7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHVybDogJy4uL2xvZ2luL2xvZ2luJ1xyXG5cdFx0XHRcdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHRcdFx0fSwgMTAwMCk7XHJcblx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0dW5pLnNob3dUb2FzdCh7dGl0bGU6IHJlcy5tc2csIGljb246IFwibm9uZVwiLHBvc2l0aW9uOiAndG9wJ30pXHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdH0sXHJcblx0XHRcdGNvbWIoKSB7XHJcblx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzO1xyXG5cdFx0XHRcdGlmICh0aGF0LmJhcmNvZGUgPT09ICcnKSB7XHJcblx0XHRcdFx0XHR0aGlzLm1lc3NhZ2VUb2dnbGUoJ2Vycm9yJylcclxuXHRcdFx0XHRcdHRoaXMubWVzc2FnZVRleHQgPSAn6K+35omr5o+P5omY55uY56CBJ1xyXG5cdFx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRpZiAodGhhdC5iYXJjb2RlLmxlbmd0aCAhPT0gOCkge1xyXG5cdFx0XHRcdFx0dGhpcy5tZXNzYWdlVG9nZ2xlKCdlcnJvcicpXHJcblx0XHRcdFx0XHR0aGlzLm1lc3NhZ2VUZXh0ID0gJ+aJmOebmOeggeW/hemhu+S4ujjkvY0nXHJcblx0XHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGlmICh0aGF0Lm1hdExpc3QubGVuZ3RoID09PSAwKSB7XHJcblx0XHRcdFx0XHR0aGlzLm1lc3NhZ2VUb2dnbGUoJ2Vycm9yJylcclxuXHRcdFx0XHRcdHRoaXMubWVzc2FnZVRleHQgPSAn6K+35re75Yqg5ZWG5ZOB5YiX6KGoJ1xyXG5cdFx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRcclxuXHRcdFx0XHRpZiAodGhhdC5tYXRMaXN0Lmxlbmd0aCA8IHRoYXQubWF0Q291bnQpIHtcclxuXHRcdFx0XHRcdHZhciBsZW4gPSB0aGF0Lm1hdENvdW50IC0gdGhhdC5tYXRMaXN0Lmxlbmd0aFxyXG5cdFx0XHRcdFx0dGhhdC5tZXNzYWdlVG9nZ2xlKCdlcnJvcicpXHJcblx0XHRcdFx0XHR0aGF0Lm1lc3NhZ2VUZXh0ID0gJ+i/mOWJqScgKyBsZW4gKyAn5Lu25pyq5omr5o+PJ1xyXG5cdFx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHR1bmkuc2hvd0xvYWRpbmcoKTtcclxuXHRcdFx0XHR1bmkucmVxdWVzdCh7XHJcblx0XHRcdFx0ICAgIHVybDogdGhhdC5iYXNlSHR0cCArIHRoYXQuYmFzZUlQICsgJzonICt0aGF0LmJhc2VQT1JUICsgdGhhdC5iYXNlVXJsICsgJy9tb2JpbGUvcGFrb3V0L2NvbmZpcm0vYXV0aCcsXHJcblx0XHRcdFx0ICAgIGRhdGE6IHRoYXQubWF0TGlzdCxcclxuXHRcdFx0XHRcdG1ldGhvZDogJ1BPU1QnLFxyXG5cdFx0XHRcdCAgICBoZWFkZXI6IHtcclxuXHRcdFx0XHRcdFx0J3Rva2VuJzp1bmkuZ2V0U3RvcmFnZVN5bmMoJ3Rva2VuJylcclxuXHRcdFx0XHQgICAgfSxcclxuXHRcdFx0XHRcdHN1Y2Nlc3MocmVzdWx0KSB7XHJcblx0XHRcdFx0XHRcdHVuaS5zaG93TG9hZGluZygpO1xyXG5cdFx0XHRcdFx0XHR2YXIgcmVzID0gcmVzdWx0LmRhdGFcclxuXHRcdFx0XHRcdFx0aWYgKHJlcy5jb2RlID09PSAyMDApIHtcclxuXHRcdFx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHsgdGl0bGU6IHJlcy5tc2cscG9zaXRpb246ICdib3R0b20nLGR1cmF0aW9uOiAxMDAwfSk7XHJcblx0XHRcdFx0XHRcdFx0dGhhdC5yZXNzdCgpO1xyXG5cdFx0XHRcdFx0XHR9IGVsc2UgaWYgKHJlcy5jb2RlID09IDQwMykge1xyXG5cdFx0XHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe3RpdGxlOiByZXMubXNnLCBpY29uOiBcIm5vbmVcIiwgcG9zaXRpb246ICd0b3AnfSlcclxuXHRcdFx0XHRcdFx0XHRzZXRUaW1lb3V0KCgpID0+IHtcclxuXHRcdFx0XHRcdFx0XHRcdHVuaS5yZUxhdW5jaCh7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHVybDogJy4uL2xvZ2luL2xvZ2luJ1xyXG5cdFx0XHRcdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHRcdFx0fSwgMTAwMCk7XHJcblx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0dW5pLnNob3dUb2FzdCh7dGl0bGU6IHJlcy5tc2csIGljb246IFwibm9uZVwiLHBvc2l0aW9uOiAndG9wJ30pXHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0fSxcclxuXHRcdFx0Z2V0Q2hlY2tEZXRsKCkgeyAgIC8vIOiOt+WPluWHuuW6k+WPo+i0p+eJqeS/oeaBr1xyXG5cdFx0XHRcdGxldCB0aGF0ID0gdGhpc1xyXG5cdFx0XHRcdFxyXG5cdFx0XHR9LCAvLyBnZXRDaGVja0RldGxcclxuXHRcdFx0Y2hhbmdlKGUpIHtcclxuXHRcdFx0fSxcclxuXHRcdFx0dG9nZ2xlKHR5cGUpIHtcclxuXHRcdFx0XHR0aGlzLnR5cGUgPSB0eXBlXHJcblx0XHRcdFx0Ly8gb3BlbiDmlrnms5XkvKDlhaXlj4LmlbAg562J5ZCM5ZyoIHVuaS1wb3B1cCDnu4Tku7bkuIrnu5HlrpogdHlwZeWxnuaAp1xyXG5cdFx0XHRcdHRoaXMuJHJlZnMuZ29vZHNTZWFyY2gub3Blbih0eXBlKVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRjaGVja2JveDogZnVuY3Rpb24gKGUpIHtcclxuXHRcdFx0XHR2YXIgaXRlbXMgPSB0aGlzLmRhdGEsXHJcblx0XHRcdFx0XHR2YWx1ZXMgPSBlLmRldGFpbC52YWx1ZTtcclxuXHRcdFx0XHRmb3IgKHZhciBpID0gMCwgbGVuSSA9IGl0ZW1zLmxlbmd0aDsgaSA8IGxlbkk7ICsraSkge1xyXG5cdFx0XHRcdFx0Y29uc3QgaXRlbSA9IGl0ZW1zW2ldXHJcblx0XHRcdFx0XHRpdGVtLmlkID0gaXRlbS5pZCArICcnXHJcblx0XHRcdFx0XHRpZih2YWx1ZXMuaW5kZXhPZihpdGVtLmlkKSA+PSAwKXtcclxuXHRcdFx0XHRcdFx0dGhpcy4kc2V0KGl0ZW0sJ2NoZWNrZWQnLHRydWUpXHJcblx0XHRcdFx0XHR9ZWxzZXtcclxuXHRcdFx0XHRcdFx0dGhpcy4kc2V0KGl0ZW0sJ2NoZWNrZWQnLGZhbHNlKVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRpZiAodmFsdWVzLmxlbmd0aCA9PSBpdGVtcy5sZW5ndGgpIHtcclxuXHRcdFx0XHRcdHRoaXMuY2hlY2sgPSB0cnVlXHJcblx0XHRcdFx0XHR0aGlzLmNoZWNrVGV4dCA9IFwi5Y+W5raI5YWo6YCJXCJcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0dGhpcy5jaGVjayA9IGZhbHNlXHJcblx0XHRcdFx0XHR0aGlzLmNoZWNrVGV4dCA9IFwi5YWo6YCJXCJcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0dW5pLnZpYnJhdGVTaG9ydCgpO1xyXG5cdFx0XHR9LFxyXG5cdFx0fVxyXG5cdH1cclxuPC9zY3JpcHQ+XHJcblxyXG48c3R5bGU+XHJcblx0LyogQGltcG9ydCBcIi4uLy4uL2NvbG9ydWkvbWFpbi5jc3NcIjtcclxuXHRAaW1wb3J0IFwiLi4vLi4vY29sb3J1aS9pY29uLmNzc1wiOyAqL1xyXG5cclxuXHQucGFrLXNlYWNoLWJveCB7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGO1xyXG5cdFx0bWFyZ2luOiAxNXJweCAxNXJweCAwcnB4IDE1cnB4O1xyXG5cdFx0d2lkdGg6IDk2JTtcclxuXHRcdGhlaWdodDogMTUwcnB4O1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogMjBycHg7XHJcblx0fVxyXG5cdC5ib3gtdG9we1xyXG5cdFx0ZGlzcGxheTogYmxvY2s7XHJcblx0XHRoZWlnaHQ6IDYwcnB4O1xyXG5cdFx0d2lkdGg6IDcyMHJweDtcclxuXHR9XHJcblx0LmNvbG9yLWJsb2NrLWJsdWUge1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogIzFFOUZGRjtcclxuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdGZsb2F0OiBsZWZ0O1xyXG5cdFx0bWFyZ2luOiAxNXJweCAxNXJweCAwIDE1cnB4O1xyXG5cdFx0d2lkdGg6IDEycnB4O1xyXG5cdFx0aGVpZ2h0OiA0MHJweDtcclxuXHRcdGJvcmRlcjogNXJweCBzb2xpZCAjMUU5RkZGO1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogMjBycHg7XHJcblx0fVxyXG5cdC50aXRsZSB7XHJcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHRmbG9hdDogbGVmdDtcclxuXHRcdGZvbnQtc2l6ZTogMzRycHg7XHJcblx0XHRmb250LXdlaWdodDogNzAwO1xyXG5cdFx0aGVpZ2h0OiA1MHJweDtcclxuXHRcdGxpbmUtaGVpZ2h0OiA1MHJweDtcclxuXHRcdG1hcmdpbi10b3A6IDEwcnB4O1xyXG5cdH1cclxuXHQuYm94LWJ1dHRvbSB7XHJcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmMGYwO1xyXG5cdFx0d2lkdGg6IDY1JTtcclxuXHRcdGhlaWdodDogNjBycHg7XHJcblx0XHRib3JkZXItcmFkaXVzOiAyMHJweDtcclxuXHRcdG1hcmdpbjogMTVycHggMTVycHggMHJweCAxNXJweDtcclxuXHR9XHJcblx0LmJveC1idXR0b20gaW5wdXQge1xyXG5cdFx0d2lkdGg6IDc1JTtcclxuXHRcdGZsb2F0OiBsZWZ0O1xyXG5cdFx0bWFyZ2luOiA4cnB4IDEwcnB4IDBycHggMjVycHg7XHJcblx0fVxyXG5cdC5ib3gtYnV0dG9tIC5zZWFyY2gtaWNvbntcclxuXHRcdHdpZHRoOiA2MHJweDtcclxuXHRcdGhlaWdodDogNjBycHg7XHJcblx0XHRmbG9hdDogcmlnaHQ7XHJcblx0XHRtYXJnaW4tdG9wOiA1cnB4O1xyXG5cdFx0bWFyZ2luLXJpZ2h0OiAxMHJweDtcclxuXHR9XHJcblx0XHJcblx0LyogLnBhay1zZWFjaC1ib3ggaW5wdXQge1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2VkZWRlZDtcclxuXHRcdGJvcmRlcjogMXJweCBzb2xpZCAjZDhkOGQ4O1xyXG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogMjBycHg7XHJcblx0XHRmbG9hdDogbGVmdDtcclxuXHRcdHdpZHRoOiA3MCU7XHJcblx0XHRoZWlnaHQ6IDYwcnB4O1xyXG5cdFx0bGluZS1oZWlnaHQ6IDYwcnB4O1xyXG5cdFx0bWFyZ2luOiAxNXJweCAxNXJweCAwcnB4IDE1cnB4O1xyXG5cdFx0cGFkZGluZy1sZWZ0OiAyMHJweDtcclxuXHR9ICovXHJcblx0LnBhay1zZWFjaC1ib3ggYnV0dG9uIHtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICMxRTlGRkY7XHJcblx0XHRjb2xvcjogI2ZmZmZmZjtcclxuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdGZsb2F0OiByaWdodDtcclxuXHRcdHdpZHRoOiAxODBycHg7XHJcblx0XHRoZWlnaHQ6IDYwcnB4O1xyXG5cdFx0bWFyZ2luOiAxNXJweCAxNXJweCAwcnB4IDE1cnB4O1xyXG5cdFx0bGluZS1oZWlnaHQ6IDYwcnB4O1xyXG5cdH1cclxuXHQucGFraW4tYnRuIHtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICMxRTlGRkY7XHJcblx0fVxyXG5cdC5wYWstZGF0YS1ib3gge1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI0YxRjFGMTtcclxuXHRcdG1hcmdpbjogMTVycHggMTVycHggMHJweCAxNXJweDtcclxuXHRcdHdpZHRoOiA5NiU7XHJcblx0XHRoZWlnaHQ6IDcwcnB4O1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogMjBycHg7XHJcblx0fVxyXG5cdC5wYWstZGF0YS1ib3ggLmJveC10b3Age1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjtcclxuXHRcdGhlaWdodDogNzBycHg7XHJcblx0XHRib3JkZXItcmFkaXVzOiAyMHJweCAyMHJweCAyMHJweCAyMHJweDtcclxuXHR9XHJcblx0LmJnLWZhbHNlIHtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7XHJcblx0fVxyXG5cdC5iZy10cnVlIHtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICNlYmViZWI7XHJcblx0fVxyXG5cdC5kYXRhLWxpc3Qge1xyXG5cdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkOGQ4ZDg7XHJcblx0XHRoZWlnaHQ6IDEzMHJweDtcclxuXHRcdG1hcmdpbjogMTVycHg7XHJcblx0XHRib3JkZXItcmFkaXVzOiAyMHJweDtcclxuXHR9XHJcblx0LmRhdGEtbGlzdDpmaXJzdC1jaGlsZCB7XHJcblx0XHRtYXJnaW4tdG9wOiAyMHJweDtcclxuXHR9XHJcblx0LmRhdGEtbGlzdDpsYXN0LWNoaWxkIHtcclxuXHRcdG1hcmdpbi1ib3R0b206IDIwMHJweDtcclxuXHR9XHJcblx0LyogLmRhdGEtbGlzdC1sZWZ0IHtcclxuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdGZsb2F0OiBsZWZ0O1xyXG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdFx0d2lkdGg6IDEwMHJweDtcclxuXHRcdGhlaWdodDogMTgwcnB4O1xyXG5cdFx0bGluZS1oZWlnaHQ6IDE4MHJweDtcclxuXHR9ICovXHJcblx0LmRhdGEtbGlzdC1sZWZ0IHtcclxuXHRcdHdpZHRoOiA1NTBycHg7XHJcblx0XHQvKiBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3QUZGOyAqL1xyXG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0ZmxvYXQ6IGxlZnQ7XHJcblx0XHRtYXJnaW4tbGVmdDogNCU7XHJcblx0XHRoZWlnaHQ6IDEzMHJweDtcclxuXHRcdGNvbG9yOiAjNjc2NzY3O1xyXG5cdH1cclxuXHQubWF0bnIge1xyXG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRmb250LXNpemU6IDE0cHg7XHJcblx0XHRmb250LXdlaWdodDogNzAwO1xyXG5cdFx0cGFkZGluZy10b3A6IDE1cnB4O1xyXG5cdFx0LyogaGVpZ2h0OiAxMzBycHg7XHJcblx0XHRsaW5lLWhlaWdodDogMTMwcnB4OyAqL1xyXG5cdH1cclxuXHQuZGF0YS1saXN0LXJpZ2h0IHtcclxuXHRcdC8qIGJhY2tncm91bmQtY29sb3I6ICM2NzM5QjY7ICovXHJcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHRmbG9hdDogcmlnaHQ7XHJcblx0XHR3aWR0aDogMTAwcnB4O1xyXG5cdFx0aGVpZ2h0OiAxMzBycHg7XHJcblx0XHRsaW5lLWhlaWdodDogMTMwcnB4O1xyXG5cdH1cclxuPC9zdHlsZT4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///88\n"); |
| | | eval("Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0;\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\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 _permission = _interopRequireDefault(__webpack_require__(/*! @/common/permission.js */ 78));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default = { data: function data() {return { barcode: '', barcodeFocus: true, focus: false, type: 'center', searchBox: 'hide', pick: 'hide', matnr: '', // matList:[{matnr:'1101842-10000',batch:'22047515999',color:{color:'red'}}],\n matList: [], result: '', siteList: [], staNoList: [], satNo: '', listLen: 0, msgType: 'success', messageText: '这是一条成功提示', fontColor: { color: 'red' }, matCount: '', wrkNo: '' };}, onReady: function onReady() {setInterval(function () {// console.log(this.matList)\n // this.getMatListLen()\n }, 1000);}, onLoad: function onLoad() {setInterval(function () {uni.hideKeyboard();}, 20);}, mounted: function mounted() {var UIP = uni.getStorageSync('UIP');this.baseIP = UIP;var UPORT = uni.getStorageSync('UPORT');this.basePORT = UPORT;}, methods: { // 出库分为两种 一:全板出库 扫描托盘码显示全板商品 可以直接确认 二是减料出库 扫描托盘码提示需要出库数量 扫描货品条码达到最大出库数量即可\n messageToggle: function messageToggle(type) {this.msgType = type;this.messageText = \"\\u8FD9\\u662F\\u4E00\\u6761\".concat(type, \"\\u6D88\\u606F\\u63D0\\u793A\");this.$refs.message.open();}, getMatListLen: function getMatListLen() {// this.listLen = this.matList.length;\n }, focuss: function focuss() {// uni.hideKeyboard()\n }, resst: function resst() {this.matList = [];this.barcode = '';this.matnr = '';this.matCount = '';this.removeBarcode();uni.vibrateShort();}, removeBarcode: function removeBarcode() {this.barcode = '';uni.vibrateShort();this.barcodeFocus = false;this.$nextTick(function () {this.barcodeFocus = true;});}, foucss: function foucss() {\n var that = this;\n that.focus = false;\n setTimeout(function () {\n that.matnr = '';\n that.focus = true;\n }, 100);\n\n },\n removeMatnr: function removeMatnr() {\n this.matnr = '';\n uni.vibrateShort();\n this.focus = false;\n this.$nextTick(function () {\n this.focus = true;\n });\n },\n remove: function remove(item, index) {\n this.matList.splice(index, 1);\n this.listLen = this.matList.length;\n this.messageToggle('success');\n this.messageText = '删除成功';\n uni.vibrateShort();\n },\n\n selectMat: function selectMat() {\n var that = this;\n uni.vibrateShort();\n uni.showLoading();\n uni.navigateTo({\n url: \"matSelect\",\n events: {\n // 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据\n acceptDataFromOpenedPage: function acceptDataFromOpenedPage(data) {\n that.matnr = data.data;\n that.findMat(that.matnr);\n } },\n\n success: function success(res) {\n // 通过eventChannel向被打开页面传送数据\n res.eventChannel.emit('acceptDataFromOpenerPage', { baseIP: that.baseIP, basePORT: that.basePORT });\n } });\n\n that.matnr = '';\n },\n findBarcode: function findBarcode() {\n var that = this;\n uni.request({\n url: that.baseHttp + that.baseIP + ':' + that.basePORT + that.baseUrl + '/mobile/pakout/confirm/barcode/auth',\n data: {\n barcode: that.barcode },\n\n header: {\n 'token': uni.getStorageSync('token') },\n\n success: function success(result) {\n var res = result.data;\n if (res.code === 200) {\n if (res.data.ioType === 101) {\n that.matList = res.data.list.concat(that.matList);\n that.listLen = that.matList.length;\n that.foucss();\n return;\n }\n if (res.data.ioType === 103 || res.data.ioType === 104 || res.data.ioType === 107) {\n that.matCount = res.data.list.length;\n that.wrkNo = res.data.list[0].wrkNo;\n that.foucss();\n return;\n }\n } else if (res.code === 403) {\n uni.showToast({ title: res.msg, icon: \"none\", position: 'top' });\n setTimeout(function () {\n uni.reLaunch({\n url: '../login/login' });\n\n }, 1000);\n } else {\n uni.showToast({ title: res.msg, icon: \"none\", position: 'top' });\n }\n\n } });\n\n\n },\n findMat: function findMat() {\n var that = this;\n uni.request({\n url: that.baseHttp + that.baseIP + ':' + that.basePORT + that.baseUrl + '/mobile/pakout/confirm/pick/auth',\n data: {\n wrkNo: that.wrkNo,\n matnr: that.matnr },\n\n header: {\n 'token': uni.getStorageSync('token') },\n\n success: function success(result) {\n var res = result.data;\n if (res.code === 200) {\n if (res.data) {\n if (that.matList.length == 0) {\n that.matList.push(res.data);\n that.listLen = that.matList.length;\n that.foucss();\n return;\n }\n for (var i = 0; i < that.matList.length; i++) {\n if (that.matList.length < that.matCount) {\n if (JSON.stringify(that.matList[i]) === JSON.stringify(res.data)) {\n that.messageToggle('warn');\n that.messageText = '该商品已添加';\n that.foucss();\n return;\n } else {\n that.matList.unshift(res.data);\n that.listLen = that.matList.length;\n that.foucss();\n return;\n }\n } else {\n that.messageToggle('warn');\n that.messageText = '已出全部商品,请确认出库';\n that.foucss();\n return;\n }\n }\n }\n } else if (res.code == 403) {\n uni.showToast({ title: res.msg, icon: \"none\", position: 'top' });\n setTimeout(function () {\n uni.reLaunch({\n url: '../login/login' });\n\n }, 1000);\n } else {\n uni.showToast({ title: res.msg, icon: \"none\", position: 'top' });\n that.foucss();\n }\n\n } });\n\n },\n comb: function comb() {\n var that = this;\n if (that.barcode === '') {\n this.messageToggle('error');\n this.messageText = '请扫描托盘码';\n return;\n }\n if (that.barcode.length !== 8) {\n this.messageToggle('error');\n this.messageText = '托盘码必须为8位';\n return;\n }\n if (that.matList.length === 0) {\n this.messageToggle('error');\n this.messageText = '请添加商品列表';\n return;\n }\n\n if (that.matList.length < that.matCount) {\n var len = that.matCount - that.matList.length;\n that.messageToggle('error');\n that.messageText = '还剩' + len + '件未扫描';\n return;\n }\n uni.showLoading();\n uni.request({\n url: that.baseHttp + that.baseIP + ':' + that.basePORT + that.baseUrl + '/mobile/pakout/confirm/auth',\n data: that.matList,\n method: 'POST',\n header: {\n 'token': uni.getStorageSync('token') },\n\n success: function success(result) {\n uni.showLoading();\n var res = result.data;\n if (res.code === 200) {\n uni.showToast({ title: res.msg, position: 'bottom', duration: 1000 });\n that.resst();\n } else if (res.code == 403) {\n uni.showToast({ title: res.msg, icon: \"none\", position: 'top' });\n setTimeout(function () {\n uni.reLaunch({\n url: '../login/login' });\n\n }, 1000);\n } else {\n uni.showToast({ title: res.msg, icon: \"none\", position: 'top' });\n }\n } });\n\n },\n getCheckDetl: function getCheckDetl() {// 获取出库口货物信息\n var that = this;\n\n }, // getCheckDetl\n change: function change(e) {\n },\n toggle: function toggle(type) {\n this.type = type;\n // open 方法传入参数 等同在 uni-popup 组件上绑定 type属性\n this.$refs.goodsSearch.open(type);\n },\n checkbox: function checkbox(e) {\n var items = this.data,\n values = e.detail.value;\n for (var i = 0, lenI = items.length; i < lenI; ++i) {\n var item = items[i];\n item.id = item.id + '';\n if (values.indexOf(item.id) >= 0) {\n this.$set(item, 'checked', true);\n } else {\n this.$set(item, 'checked', false);\n }\n }\n if (values.length == items.length) {\n this.check = true;\n this.checkText = \"取消全选\";\n } else {\n this.check = false;\n this.checkText = \"全选\";\n }\n uni.vibrateShort();\n } } };exports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvYmFzaWNzL2NoZWNrb3V0LnZ1ZSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXVFQSxnRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztlQUNBLEVBQ0EsSUFEQSxrQkFDQSxDQUNBLFNBQ0EsV0FEQSxFQUVBLGtCQUZBLEVBR0EsWUFIQSxFQUlBLGNBSkEsRUFLQSxpQkFMQSxFQU1BLFlBTkEsRUFPQSxTQVBBLEVBUUE7QUFDQSxpQkFUQSxFQVVBLFVBVkEsRUFXQSxZQVhBLEVBWUEsYUFaQSxFQWFBLFNBYkEsRUFjQSxVQWRBLEVBZUEsa0JBZkEsRUFnQkEsdUJBaEJBLEVBaUJBLDJCQWpCQSxFQWtCQSxZQWxCQSxFQW1CQSxTQW5CQSxHQXFCQSxDQXZCQSxFQXdCQSxPQXhCQSxxQkF3QkEsQ0FDQSx5QkFDQTtBQUNBO0FBQ0EsS0FIQSxFQUdBLElBSEEsRUFJQSxDQTdCQSxFQThCQSxNQTlCQSxvQkE4QkEsQ0FFQSx5QkFDQSxtQkFDQSxDQUZBLEVBRUEsRUFGQSxFQUlBLENBcENBLEVBcUNBLE9BckNBLHFCQXFDQSxDQUNBLG9DQUNBLGtCQUNBLHdDQUNBLHNCQUVBLENBM0NBLEVBNENBLFdBQ0E7QUFDQSxpQkFGQSx5QkFFQSxJQUZBLEVBRUEsQ0FDQSxvQkFDQSx1RkFDQSwwQkFDQSxDQU5BLEVBT0EsYUFQQSwyQkFPQSxDQUNBO0FBQ0EsS0FUQSxFQVVBLE1BVkEsb0JBVUEsQ0FDQTtBQUNBLEtBWkEsRUFhQSxLQWJBLG1CQWFBLENBQ0Esa0JBQ0Esa0JBQ0EsZ0JBQ0EsbUJBQ0EscUJBQ0EsbUJBRUEsQ0FyQkEsRUFzQkEsYUF0QkEsMkJBc0JBLENBQ0Esa0JBQ0EsbUJBQ0EsMEJBQ0EsNEJBQ0EseUJBQ0EsQ0FGQSxFQUdBLENBN0JBLEVBOEJBLE1BOUJBLG9CQThCQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUhBLEVBR0EsR0FIQTs7QUFLQSxLQXZDQTtBQXdDQSxlQXhDQSx5QkF3Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FGQTtBQUdBLEtBL0NBO0FBZ0RBLFVBaERBLGtCQWdEQSxJQWhEQSxFQWdEQSxLQWhEQSxFQWdEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQXREQTs7QUF3REEsYUF4REEsdUJBd0RBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFEQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUxBLEVBRkE7O0FBU0E7QUFDQTtBQUNBO0FBQ0EsU0FaQTs7QUFjQTtBQUNBLEtBM0VBO0FBNEVBLGVBNUVBLHlCQTRFQTtBQUNBO0FBQ0E7QUFDQSxxSEFEQTtBQUVBO0FBQ0EsK0JBREEsRUFGQTs7QUFLQTtBQUNBLDhDQURBLEVBTEE7O0FBUUEsZUFSQSxtQkFRQSxNQVJBLEVBUUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FiQSxNQWFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUNBREE7O0FBR0EsYUFKQSxFQUlBLElBSkE7QUFLQSxXQVBBLE1BT0E7QUFDQTtBQUNBOztBQUVBLFNBbENBOzs7QUFxQ0EsS0FuSEE7QUFvSEEsV0FwSEEscUJBb0hBO0FBQ0E7QUFDQTtBQUNBLGtIQURBO0FBRUE7QUFDQSwyQkFEQTtBQUVBLDJCQUZBLEVBRkE7O0FBTUE7QUFDQSw4Q0FEQSxFQU5BOztBQVNBLGVBVEEsbUJBU0EsTUFUQSxFQVNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQkFMQSxNQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQVpBLE1BWUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBN0JBLE1BNkJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUNBREE7O0FBR0EsYUFKQSxFQUlBLElBSkE7QUFLQSxXQVBBLE1BT0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsU0FwREE7O0FBc0RBLEtBNUtBO0FBNktBLFFBN0tBLGtCQTZLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2R0FEQTtBQUVBLDBCQUZBO0FBR0Esc0JBSEE7QUFJQTtBQUNBLDhDQURBLEVBSkE7O0FBT0EsZUFQQSxtQkFPQSxNQVBBLEVBT0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FIQSxNQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUNBREE7O0FBR0EsYUFKQSxFQUlBLElBSkE7QUFLQSxXQVBBLE1BT0E7QUFDQTtBQUNBO0FBQ0EsU0F2QkE7O0FBeUJBLEtBL05BO0FBZ09BLGdCQWhPQSwwQkFnT0E7QUFDQTs7QUFFQSxLQW5PQSxFQW1PQTtBQUNBLFVBcE9BLGtCQW9PQSxDQXBPQSxFQW9PQTtBQUNBLEtBck9BO0FBc09BLFVBdE9BLGtCQXNPQSxJQXRPQSxFQXNPQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBMU9BO0FBMk9BO0FBQ0E7QUFDQSw2QkFEQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUZBLE1BRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUhBLE1BR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBL1BBLEVBNUNBLEUiLCJmaWxlIjoiODguanMiLCJzb3VyY2VzQ29udGVudCI6WyI8dGVtcGxhdGU+XHJcblx0PHZpZXcgPlxyXG5cdFx0PHNjcm9sbC12aWV3IHNjcm9sbC15IGNsYXNzPVwic2Nyb2xsLVlcIj5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJzcXVhcmUtMlwiPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwic3F1YXJlLXRpdGxlXCI+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInRpdGxlLXNpZ25cIj48dmlldyBjbGFzcz1cInNpZ25cIj48L3ZpZXc+PC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0aXRsZS10ZXh0XCI+PHRleHQ+5omY55uY5p2h56CBPC90ZXh0Pjwvdmlldz5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJzcXVhcmUtY29udGVudFwiPlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJjb250ZW50LWlucHV0XCI+XHJcblx0XHRcdFx0XHRcdDxpbnB1dCB2LW1vZGVsPVwiYmFyY29kZVwiIHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCLmiavnoIEgLyDovpPlhaVcIiBtYXhsZW5ndGg9XCI4XCIgXHJcblx0XHRcdFx0XHRcdEBpbnB1dD1cImZpbmRCYXJjb2RlKClcIiA6Zm9jdXM9XCJiYXJjb2RlRm9jdXNcIiBAZm9jdXM9XCJmb2N1c3NcIiA+XHJcblx0XHRcdFx0XHRcdDx1bmktaWNvbnMgdHlwZT1cImNsb3NlZW1wdHlcIiBzaXplPVwiMjBcIiBjb2xvcj1cIiNkYWRhZGFcIiBAY2xpY2s9XCJyZW1vdmVCYXJjb2RlKClcIj48L3VuaS1pY29ucz5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJzcXVhcmUtMlwiPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwic3F1YXJlLXRpdGxlXCI+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInRpdGxlLXNpZ25cIj48dmlldyBjbGFzcz1cInNpZ25cIj48L3ZpZXc+PC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0aXRsZS10ZXh0XCI+PHRleHQ+6LSn5ZOB5p2h56CBPC90ZXh0Pjwvdmlldz5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJzcXVhcmUtY29udGVudFwiPlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJjb250ZW50LWlucHV0LWNvbWJveFwiIHN0eWxlPVwid2lkdGg6IDk0JTtcIj5cclxuXHRcdFx0XHRcdFx0PGlucHV0IHN0eWxlPVwid2lkdGg6IDkwJTtcIiB0eXBlPVwidGV4dFwiIHYtbW9kZWw9XCJtYXRuclwiIHBsYWNlaG9sZGVyPVwi5omr56CBIC8g6L6T5YWlXCIgQGlucHV0PVwiZmluZE1hdCgpXCI6Zm9jdXM9XCJmb2N1c1wiXHJcblx0XHRcdFx0XHRcdCBAZm9jdXM9XCJmb2N1c3NcIj5cclxuXHRcdFx0XHRcdFx0PCEtLSBAZm9jdXM9XCJmb2N1c3NcIiAtLT5cclxuXHRcdFx0XHRcdFx0PHVuaS1pY29ucyB0eXBlPVwiY2xvc2VlbXB0eVwiIHNpemU9XCIyMFwiIGNvbG9yPVwiI2RhZGFkYVwiIEBjbGljaz1cInJlbW92ZU1hdG5yKClcIj48L3VuaS1pY29ucz5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwic3F1YXJlLTFcIj5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cInNxdWFyZS10aXRsZVwiPlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0aXRsZS1zaWduXCI+PHZpZXcgY2xhc3M9XCJzaWduXCI+PC92aWV3Pjwvdmlldz5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidGl0bGUtdGV4dFwiPjx0ZXh0PuWVhuWTgeWIl+ihqDwvdGV4dD48L3ZpZXc+XHJcblx0XHRcdFx0XHQ8dmlldyB2LXNob3c9XCJtYXRDb3VudCA+IDBcIiBzdHlsZT1cImRpc3BsYXk6IGlubGluZS1ibG9jaztmbG9hdDogcmlnaHQ7aGVpZ2h0OiAxMDBycHg7bGluZS1oZWlnaHQ6IDEwMHJweDttYXJnaW4tcmlnaHQ6IDUwcnB4O1wiPuivt+aJq+eggemAieWPliB7e21hdENvdW50fX0g5Lu25ZWG5ZOBPC92aWV3PlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cInNxdWFyZS1ub25lXCIgdi1zaG93PVwibWF0TGlzdC5sZW5ndGggPT09IDBcIj5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cInYtc2hvd1wiPuaaguaXoOabtOWkmuaVsOaNri4gLiAuIDwvdmlldz5cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8Y2hlY2tib3gtZ3JvdXAgQGNoYW5nZT1cImNoZWNrYm94XCI+XHJcblx0XHRcdFx0PHZpZXcgdi1mb3I9XCIoaXRlbSxpbmRleCkgaW4gbWF0TGlzdFwiIDprZXk9XCJpbmRleFwiIGNsYXNzPVwiZGF0YS1saXN0IGJnLWZhbHNlXCIgOmNsYXNzPVwiJ2JnLScraXRlbS5jaGVja2VkXCIgPlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJkYXRhLWxpc3QtbGVmdFwiPlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIm1hdG5yXCIgOnN0eWxlPVwiaXRlbS5jb2xvclwiPk5vOnt7bGlzdExlbi1pbmRleH19PC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIm1hdG5yXCIgOnN0eWxlPVwiaXRlbS5jb2xvclwiPnt7aXRlbS5tYXRucn19LXt7aXRlbS5iYXRjaH19PC92aWV3PlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJkYXRhLWxpc3QtcmlnaHRcIj5cclxuXHRcdFx0XHRcdFx0PHVuaS1pY29ucyB0eXBlPVwidHJhc2hcIiBzaXplPVwiMjBcIiBjb2xvcj1cIiNhNWE1YTVcIiBAY2xpY2s9XCJyZW1vdmUoaXRlbSxpbmRleClcIj48L3VuaS1pY29ucz5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDwvY2hlY2tib3gtZ3JvdXA+XHJcblx0XHQ8L3Njcm9sbC12aWV3PlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJmb290ZXIgZmxleCBqdXN0aWZ5LWFyb3VuZFwiPlxyXG5cdFx0XHQ8dmlldz5cclxuXHRcdFx0XHQ8YnV0dG9uIGNsYXNzPVwiY3UtYnRuIGxnXCIgQGNsaWNrPVwicmVzc3QoKVwiPumHjee9rjwvYnV0dG9uPlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDx2aWV3PlxyXG5cdFx0XHRcdDxidXR0b24gY2xhc3M9XCJjdS1idG4gbGcgcGFraW4tYnRuIGJnLWJsdWVcIiBAY2xpY2s9XCJjb21iKClcIj7noa7orqQ8L2J1dHRvbj5cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0PC92aWV3PlxyXG5cdFx0PHZpZXc+XHJcblx0XHRcdDwhLS0g5o+Q56S65L+h5oGv5by556qXIC0tPlxyXG5cdFx0XHQ8dW5pLXBvcHVwIHJlZj1cIm1lc3NhZ2VcIiB0eXBlPVwibWVzc2FnZVwiPlxyXG5cdFx0XHRcdDx1bmktcG9wdXAtbWVzc2FnZSA6dHlwZT1cIm1zZ1R5cGVcIiA6bWVzc2FnZT1cIm1lc3NhZ2VUZXh0XCIgOmR1cmF0aW9uPVwiMjAwMFwiPjwvdW5pLXBvcHVwLW1lc3NhZ2U+XHJcblx0XHRcdDwvdW5pLXBvcHVwPlxyXG5cdFx0PC92aWV3PlxyXG5cdDwvdmlldz5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcblx0aW1wb3J0IHBlcm1pc2lvbiBmcm9tIFwiQC9jb21tb24vcGVybWlzc2lvbi5qc1wiXHJcblx0ZXhwb3J0IGRlZmF1bHQge1xyXG5cdFx0ZGF0YSgpIHtcclxuXHRcdFx0cmV0dXJuIHtcclxuXHRcdFx0XHRiYXJjb2RlOiAnJyxcclxuXHRcdFx0XHRiYXJjb2RlRm9jdXM6dHJ1ZSxcclxuXHRcdFx0XHRmb2N1czpmYWxzZSxcclxuXHRcdFx0XHR0eXBlOiAnY2VudGVyJyxcclxuXHRcdFx0XHRzZWFyY2hCb3g6ICdoaWRlJyxcclxuXHRcdFx0XHRwaWNrOidoaWRlJyxcclxuXHRcdFx0XHRtYXRucjonJyxcclxuXHRcdFx0XHQvLyBtYXRMaXN0Olt7bWF0bnI6JzExMDE4NDItMTAwMDAnLGJhdGNoOicyMjA0NzUxNTk5OScsY29sb3I6e2NvbG9yOidyZWQnfX1dLFxyXG5cdFx0XHRcdG1hdExpc3Q6W10sXHJcblx0XHRcdFx0cmVzdWx0OiAnJyxcclxuXHRcdFx0XHRzaXRlTGlzdDpbXSxcclxuXHRcdFx0XHRzdGFOb0xpc3Q6W10sXHJcblx0XHRcdFx0c2F0Tm86JycsXHJcblx0XHRcdFx0bGlzdExlbjowLFxyXG5cdFx0XHRcdG1zZ1R5cGU6ICdzdWNjZXNzJyxcclxuXHRcdFx0XHRtZXNzYWdlVGV4dDogJ+i/meaYr+S4gOadoeaIkOWKn+aPkOekuicsXHJcblx0XHRcdFx0Zm9udENvbG9yOntjb2xvcjoncmVkJ30sXHJcblx0XHRcdFx0bWF0Q291bnQ6JycsXHJcblx0XHRcdFx0d3JrTm86JycsXHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHRvblJlYWR5KCkge1xyXG5cdFx0XHRzZXRJbnRlcnZhbChmdW5jdGlvbigpe1xyXG5cdFx0XHRcdC8vIGNvbnNvbGUubG9nKHRoaXMubWF0TGlzdClcclxuXHRcdFx0XHQvLyB0aGlzLmdldE1hdExpc3RMZW4oKVxyXG5cdFx0XHR9LDEwMDApXHJcblx0XHR9LFxyXG5cdFx0b25Mb2FkKCkge1xyXG5cdFx0XHQvLyAjaWZkZWYgQVBQXHJcblx0XHRcdHNldEludGVydmFsKCgpPT57XHJcblx0XHRcdFx0dW5pLmhpZGVLZXlib2FyZCgpXHJcblx0XHRcdH0sMjApXHJcblx0XHRcdC8vICNlbmRpZlxyXG5cdFx0fSxcclxuXHRcdG1vdW50ZWQoKXtcclxuXHRcdFx0Y29uc3QgVUlQID0gdW5pLmdldFN0b3JhZ2VTeW5jKCdVSVAnKTtcclxuXHRcdFx0dGhpcy5iYXNlSVAgPSBVSVA7XHJcblx0XHRcdGNvbnN0IFVQT1JUID0gdW5pLmdldFN0b3JhZ2VTeW5jKCdVUE9SVCcpO1xyXG5cdFx0XHR0aGlzLmJhc2VQT1JUID0gVVBPUlRcclxuXHRcdFx0XHJcblx0XHR9LFxyXG5cdFx0bWV0aG9kczoge1xyXG5cdFx0XHQvLyDlh7rlupPliIbkuLrkuKTnp40g5LiAOuWFqOadv+WHuuW6kyDmiavmj4/miZjnm5jnoIHmmL7npLrlhajmnb/llYblk4Eg5Y+v5Lul55u05o6l56Gu6K6kIOS6jOaYr+WHj+aWmeWHuuW6kyDmiavmj4/miZjnm5jnoIHmj5DnpLrpnIDopoHlh7rlupPmlbDph48gIOaJq+aPj+i0p+WTgeadoeeggei+vuWIsOacgOWkp+WHuuW6k+aVsOmHj+WNs+WPr1xyXG5cdFx0XHRtZXNzYWdlVG9nZ2xlKHR5cGUpIHtcclxuXHRcdFx0XHR0aGlzLm1zZ1R5cGUgPSB0eXBlXHJcblx0XHRcdFx0dGhpcy5tZXNzYWdlVGV4dCA9IGDov5nmmK/kuIDmnaEke3R5cGV95raI5oGv5o+Q56S6YFxyXG5cdFx0XHRcdHRoaXMuJHJlZnMubWVzc2FnZS5vcGVuKClcclxuXHRcdFx0fSxcclxuXHRcdFx0Z2V0TWF0TGlzdExlbigpIHtcclxuXHRcdFx0XHQvLyB0aGlzLmxpc3RMZW4gPSB0aGlzLm1hdExpc3QubGVuZ3RoO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRmb2N1c3MoKSB7XHJcblx0XHRcdFx0Ly8gdW5pLmhpZGVLZXlib2FyZCgpXHJcblx0XHRcdH0sXHJcblx0XHRcdHJlc3N0KCkge1xyXG5cdFx0XHRcdHRoaXMubWF0TGlzdCA9IFtdXHJcblx0XHRcdFx0dGhpcy5iYXJjb2RlID0gJydcclxuXHRcdFx0XHR0aGlzLm1hdG5yID0gJydcclxuXHRcdFx0XHR0aGlzLm1hdENvdW50ID0gJydcclxuXHRcdFx0XHR0aGlzLnJlbW92ZUJhcmNvZGUoKTtcclxuXHRcdFx0XHR1bmkudmlicmF0ZVNob3J0KCk7XHJcblx0XHRcdFx0XHJcblx0XHRcdH0sXHJcblx0XHRcdHJlbW92ZUJhcmNvZGUoKSB7XHJcblx0XHRcdFx0dGhpcy5iYXJjb2RlID0gJydcclxuXHRcdFx0XHR1bmkudmlicmF0ZVNob3J0KCk7XHRcclxuXHRcdFx0XHR0aGlzLmJhcmNvZGVGb2N1cyA9IGZhbHNlO1xyXG5cdFx0XHRcdHRoaXMuJG5leHRUaWNrKGZ1bmN0aW9uKCkge1xyXG5cdFx0XHRcdFx0dGhpcy5iYXJjb2RlRm9jdXMgPSB0cnVlO1xyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRmb3Vjc3MoKSB7XHJcblx0XHRcdFx0Ly8gI2lmZGVmIEFQUFxyXG5cdFx0XHRcdGxldCB0aGF0ID0gdGhpcztcclxuXHRcdFx0XHR0aGF0LmZvY3VzID0gZmFsc2U7XHJcblx0XHRcdFx0c2V0VGltZW91dCgoKT0+e1xyXG5cdFx0XHRcdFx0dGhhdC5tYXRuciA9ICcnO1xyXG5cdFx0XHRcdFx0dGhhdC5mb2N1cyA9IHRydWU7XHJcblx0XHRcdFx0fSwgMTAwKTtcclxuXHRcdFx0XHQvLyAjZW5kaWZcclxuXHRcdFx0fSxcclxuXHRcdFx0cmVtb3ZlTWF0bnIoKSB7XHJcblx0XHRcdFx0dGhpcy5tYXRuciA9ICcnXHJcblx0XHRcdFx0dW5pLnZpYnJhdGVTaG9ydCgpO1xyXG5cdFx0XHRcdHRoaXMuZm9jdXMgPSBmYWxzZTtcclxuXHRcdFx0XHR0aGlzLiRuZXh0VGljayhmdW5jdGlvbigpIHtcclxuXHRcdFx0XHRcdHRoaXMuZm9jdXMgPSB0cnVlO1xyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRyZW1vdmUoaXRlbSxpbmRleCkge1xyXG5cdFx0XHRcdHRoaXMubWF0TGlzdC5zcGxpY2UoaW5kZXgsMSk7XHJcblx0XHRcdFx0dGhpcy5saXN0TGVuID0gdGhpcy5tYXRMaXN0Lmxlbmd0aFxyXG5cdFx0XHRcdHRoaXMubWVzc2FnZVRvZ2dsZSgnc3VjY2VzcycpXHJcblx0XHRcdFx0dGhpcy5tZXNzYWdlVGV4dCA9ICfliKDpmaTmiJDlip8nXHJcblx0XHRcdFx0dW5pLnZpYnJhdGVTaG9ydCgpO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRcclxuXHRcdFx0c2VsZWN0TWF0KCkge1xyXG5cdFx0XHRcdGxldCB0aGF0ID0gdGhpc1xyXG5cdFx0XHRcdHVuaS52aWJyYXRlU2hvcnQoKTtcclxuXHRcdFx0XHR1bmkuc2hvd0xvYWRpbmcoKTtcclxuXHRcdFx0XHR1bmkubmF2aWdhdGVUbyh7XHJcblx0XHRcdFx0XHR1cmw6IFwibWF0U2VsZWN0XCIsXHJcblx0XHRcdFx0XHRldmVudHM6IHtcclxuXHRcdFx0XHRcdCAgICAvLyDkuLrmjIflrprkuovku7bmt7vliqDkuIDkuKrnm5HlkKzlmajvvIzojrflj5booqvmiZPlvIDpobXpnaLkvKDpgIHliLDlvZPliY3pobXpnaLnmoTmlbDmja5cclxuXHRcdFx0XHRcdCAgICBhY2NlcHREYXRhRnJvbU9wZW5lZFBhZ2U6IGZ1bmN0aW9uKGRhdGEpIHtcclxuXHRcdFx0XHRcdFx0XHR0aGF0Lm1hdG5yID0gZGF0YS5kYXRhXHJcblx0XHRcdFx0XHRcdFx0dGhhdC5maW5kTWF0KHRoYXQubWF0bnIpXHJcblx0XHRcdFx0XHQgICAgfSxcclxuXHRcdFx0XHRcdCAgfSxcclxuXHRcdFx0XHRcdCAgc3VjY2VzczogZnVuY3Rpb24ocmVzKSB7XHJcblx0XHRcdFx0XHQgICAgLy8g6YCa6L+HZXZlbnRDaGFubmVs5ZCR6KKr5omT5byA6aG16Z2i5Lyg6YCB5pWw5o2uXHJcblx0XHRcdFx0XHQgICAgcmVzLmV2ZW50Q2hhbm5lbC5lbWl0KCdhY2NlcHREYXRhRnJvbU9wZW5lclBhZ2UnLCB7YmFzZUlQOnRoYXQuYmFzZUlQLCBiYXNlUE9SVDp0aGF0LmJhc2VQT1JUIH0pXHJcblx0XHRcdFx0XHQgIH1cclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0XHR0aGF0Lm1hdG5yID0gJydcclxuXHRcdFx0fSxcclxuXHRcdFx0ZmluZEJhcmNvZGUoKSB7XHJcblx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzXHJcblx0XHRcdFx0dW5pLnJlcXVlc3Qoe1xyXG5cdFx0XHRcdCAgICB1cmw6IHRoYXQuYmFzZUh0dHAgKyB0aGF0LmJhc2VJUCArICc6JyArdGhhdC5iYXNlUE9SVCArIHRoYXQuYmFzZVVybCArICcvbW9iaWxlL3Bha291dC9jb25maXJtL2JhcmNvZGUvYXV0aCcsXHJcblx0XHRcdFx0ICAgIGRhdGE6IHtcclxuXHRcdFx0XHRcdFx0YmFyY29kZTp0aGF0LmJhcmNvZGVcclxuXHRcdFx0XHQgICAgfSxcclxuXHRcdFx0XHQgICAgaGVhZGVyOiB7XHJcblx0XHRcdFx0XHRcdCd0b2tlbic6dW5pLmdldFN0b3JhZ2VTeW5jKCd0b2tlbicpLFxyXG5cdFx0XHRcdCAgICB9LFxyXG5cdFx0XHRcdFx0c3VjY2VzcyhyZXN1bHQpIHtcclxuXHRcdFx0XHRcdFx0bGV0IHJlcyA9IHJlc3VsdC5kYXRhO1xyXG5cdFx0XHRcdFx0XHRpZiAocmVzLmNvZGUgPT09IDIwMCkge1xyXG5cdFx0XHRcdFx0XHRcdGlmIChyZXMuZGF0YS5pb1R5cGUgPT09IDEwMSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0dGhhdC5tYXRMaXN0ID0gcmVzLmRhdGEubGlzdC5jb25jYXQodGhhdC5tYXRMaXN0KVxyXG5cdFx0XHRcdFx0XHRcdFx0dGhhdC5saXN0TGVuID0gdGhhdC5tYXRMaXN0Lmxlbmd0aDtcclxuXHRcdFx0XHRcdFx0XHRcdHRoYXQuZm91Y3NzKCk7XHJcblx0XHRcdFx0XHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdGlmIChyZXMuZGF0YS5pb1R5cGUgPT09IDEwMyB8fCByZXMuZGF0YS5pb1R5cGUgPT09IDEwNCB8fCByZXMuZGF0YS5pb1R5cGUgPT09IDEwNykge1xyXG5cdFx0XHRcdFx0XHRcdFx0dGhhdC5tYXRDb3VudCA9IHJlcy5kYXRhLmxpc3QubGVuZ3RoXHJcblx0XHRcdFx0XHRcdFx0XHR0aGF0Lndya05vID0gcmVzLmRhdGEubGlzdFswXS53cmtOb1xyXG5cdFx0XHRcdFx0XHRcdFx0dGhhdC5mb3Vjc3MoKTtcclxuXHRcdFx0XHRcdFx0XHRcdHJldHVybjtcclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdH0gZWxzZSBpZiAocmVzLmNvZGUgPT09IDQwMykge1xyXG5cdFx0XHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe3RpdGxlOiByZXMubXNnLCBpY29uOiBcIm5vbmVcIiwgcG9zaXRpb246ICd0b3AnfSlcclxuXHRcdFx0XHRcdFx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR1bmkucmVMYXVuY2goe1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHVybDogJy4uL2xvZ2luL2xvZ2luJ1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdFx0XHR9LCAxMDAwKTtcclxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHt0aXRsZTogcmVzLm1zZywgaWNvbjogXCJub25lXCIscG9zaXRpb246ICd0b3AnfSlcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcclxuXHRcdFx0fSxcclxuXHRcdFx0ZmluZE1hdCgpIHtcclxuXHRcdFx0XHRsZXQgdGhhdCA9IHRoaXNcclxuXHRcdFx0XHR1bmkucmVxdWVzdCh7XHJcblx0XHRcdFx0ICAgIHVybDogdGhhdC5iYXNlSHR0cCArIHRoYXQuYmFzZUlQICsgJzonICt0aGF0LmJhc2VQT1JUICsgdGhhdC5iYXNlVXJsICsgJy9tb2JpbGUvcGFrb3V0L2NvbmZpcm0vcGljay9hdXRoJyxcclxuXHRcdFx0XHQgICAgZGF0YToge1xyXG5cdFx0XHRcdFx0XHR3cmtObzp0aGF0Lndya05vLFxyXG5cdFx0XHRcdFx0XHRtYXRucjp0aGF0Lm1hdG5yXHJcblx0XHRcdFx0ICAgIH0sXHJcblx0XHRcdFx0ICAgIGhlYWRlcjoge1xyXG5cdFx0XHRcdFx0XHQndG9rZW4nOnVuaS5nZXRTdG9yYWdlU3luYygndG9rZW4nKVxyXG5cdFx0XHRcdCAgICB9LFxyXG5cdFx0XHRcdFx0c3VjY2VzcyhyZXN1bHQpIHtcclxuXHRcdFx0XHRcdFx0dmFyIHJlcyA9IHJlc3VsdC5kYXRhO1xyXG5cdFx0XHRcdFx0XHRpZihyZXMuY29kZSA9PT0gMjAwICkge1xyXG5cdFx0XHRcdFx0XHRcdGlmKHJlcy5kYXRhKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRpZiAodGhhdC5tYXRMaXN0Lmxlbmd0aCA9PSAwKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHRoYXQubWF0TGlzdC5wdXNoKHJlcy5kYXRhKVxyXG5cdFx0XHRcdFx0XHRcdFx0XHR0aGF0Lmxpc3RMZW4gPSB0aGF0Lm1hdExpc3QubGVuZ3RoO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR0aGF0LmZvdWNzcygpO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHRmb3IobGV0IGkgPSAwO2k8dGhhdC5tYXRMaXN0Lmxlbmd0aDtpKyspIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0aWYgKHRoYXQubWF0TGlzdC5sZW5ndGggPCB0aGF0Lm1hdENvdW50KXtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRpZihKU09OLnN0cmluZ2lmeSh0aGF0Lm1hdExpc3RbaV0pID09PSBKU09OLnN0cmluZ2lmeShyZXMuZGF0YSkpIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHRoYXQubWVzc2FnZVRvZ2dsZSgnd2FybicpO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0dGhhdC5tZXNzYWdlVGV4dCA9ICfor6XllYblk4Hlt7Lmt7vliqAnO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0dGhhdC5mb3Vjc3MoKTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHJldHVybjtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0dGhhdC5tYXRMaXN0LnVuc2hpZnQocmVzLmRhdGEpO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0dGhhdC5saXN0TGVuID0gdGhhdC5tYXRMaXN0Lmxlbmd0aDtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHRoYXQuZm91Y3NzKCk7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHRoYXQubWVzc2FnZVRvZ2dsZSgnd2FybicpO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHRoYXQubWVzc2FnZVRleHQgPSAn5bey5Ye65YWo6YOo5ZWG5ZOB77yM6K+356Gu6K6k5Ye65bqTJztcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHR0aGF0LmZvdWNzcygpO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHJldHVybjtcclxuXHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0fSBlbHNlIGlmIChyZXMuY29kZSA9PSA0MDMpIHtcclxuXHRcdFx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHt0aXRsZTogcmVzLm1zZywgaWNvbjogXCJub25lXCIsIHBvc2l0aW9uOiAndG9wJ30pXHJcblx0XHRcdFx0XHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0XHR1bmkucmVMYXVuY2goe1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR1cmw6ICcuLi9sb2dpbi9sb2dpbidcclxuXHRcdFx0XHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0XHRcdH0sIDEwMDApO1xyXG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe3RpdGxlOiByZXMubXNnLCBpY29uOiBcIm5vbmVcIixwb3NpdGlvbjogJ3RvcCd9KVxyXG5cdFx0XHRcdFx0XHRcdHRoYXQuZm91Y3NzKCk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdH0sXHJcblx0XHRcdGNvbWIoKSB7XHJcblx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzO1xyXG5cdFx0XHRcdGlmICh0aGF0LmJhcmNvZGUgPT09ICcnKSB7XHJcblx0XHRcdFx0XHR0aGlzLm1lc3NhZ2VUb2dnbGUoJ2Vycm9yJylcclxuXHRcdFx0XHRcdHRoaXMubWVzc2FnZVRleHQgPSAn6K+35omr5o+P5omY55uY56CBJ1xyXG5cdFx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRpZiAodGhhdC5iYXJjb2RlLmxlbmd0aCAhPT0gOCkge1xyXG5cdFx0XHRcdFx0dGhpcy5tZXNzYWdlVG9nZ2xlKCdlcnJvcicpXHJcblx0XHRcdFx0XHR0aGlzLm1lc3NhZ2VUZXh0ID0gJ+aJmOebmOeggeW/hemhu+S4ujjkvY0nXHJcblx0XHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGlmICh0aGF0Lm1hdExpc3QubGVuZ3RoID09PSAwKSB7XHJcblx0XHRcdFx0XHR0aGlzLm1lc3NhZ2VUb2dnbGUoJ2Vycm9yJylcclxuXHRcdFx0XHRcdHRoaXMubWVzc2FnZVRleHQgPSAn6K+35re75Yqg5ZWG5ZOB5YiX6KGoJ1xyXG5cdFx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRcclxuXHRcdFx0XHRpZiAodGhhdC5tYXRMaXN0Lmxlbmd0aCA8IHRoYXQubWF0Q291bnQpIHtcclxuXHRcdFx0XHRcdHZhciBsZW4gPSB0aGF0Lm1hdENvdW50IC0gdGhhdC5tYXRMaXN0Lmxlbmd0aFxyXG5cdFx0XHRcdFx0dGhhdC5tZXNzYWdlVG9nZ2xlKCdlcnJvcicpXHJcblx0XHRcdFx0XHR0aGF0Lm1lc3NhZ2VUZXh0ID0gJ+i/mOWJqScgKyBsZW4gKyAn5Lu25pyq5omr5o+PJ1xyXG5cdFx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHR1bmkuc2hvd0xvYWRpbmcoKTtcclxuXHRcdFx0XHR1bmkucmVxdWVzdCh7XHJcblx0XHRcdFx0ICAgIHVybDogdGhhdC5iYXNlSHR0cCArIHRoYXQuYmFzZUlQICsgJzonICt0aGF0LmJhc2VQT1JUICsgdGhhdC5iYXNlVXJsICsgJy9tb2JpbGUvcGFrb3V0L2NvbmZpcm0vYXV0aCcsXHJcblx0XHRcdFx0ICAgIGRhdGE6IHRoYXQubWF0TGlzdCxcclxuXHRcdFx0XHRcdG1ldGhvZDogJ1BPU1QnLFxyXG5cdFx0XHRcdCAgICBoZWFkZXI6IHtcclxuXHRcdFx0XHRcdFx0J3Rva2VuJzp1bmkuZ2V0U3RvcmFnZVN5bmMoJ3Rva2VuJylcclxuXHRcdFx0XHQgICAgfSxcclxuXHRcdFx0XHRcdHN1Y2Nlc3MocmVzdWx0KSB7XHJcblx0XHRcdFx0XHRcdHVuaS5zaG93TG9hZGluZygpO1xyXG5cdFx0XHRcdFx0XHR2YXIgcmVzID0gcmVzdWx0LmRhdGFcclxuXHRcdFx0XHRcdFx0aWYgKHJlcy5jb2RlID09PSAyMDApIHtcclxuXHRcdFx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHsgdGl0bGU6IHJlcy5tc2cscG9zaXRpb246ICdib3R0b20nLGR1cmF0aW9uOiAxMDAwfSk7XHJcblx0XHRcdFx0XHRcdFx0dGhhdC5yZXNzdCgpO1xyXG5cdFx0XHRcdFx0XHR9IGVsc2UgaWYgKHJlcy5jb2RlID09IDQwMykge1xyXG5cdFx0XHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe3RpdGxlOiByZXMubXNnLCBpY29uOiBcIm5vbmVcIiwgcG9zaXRpb246ICd0b3AnfSlcclxuXHRcdFx0XHRcdFx0XHRzZXRUaW1lb3V0KCgpID0+IHtcclxuXHRcdFx0XHRcdFx0XHRcdHVuaS5yZUxhdW5jaCh7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHVybDogJy4uL2xvZ2luL2xvZ2luJ1xyXG5cdFx0XHRcdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHRcdFx0fSwgMTAwMCk7XHJcblx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0dW5pLnNob3dUb2FzdCh7dGl0bGU6IHJlcy5tc2csIGljb246IFwibm9uZVwiLHBvc2l0aW9uOiAndG9wJ30pXHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0fSxcclxuXHRcdFx0Z2V0Q2hlY2tEZXRsKCkgeyAgIC8vIOiOt+WPluWHuuW6k+WPo+i0p+eJqeS/oeaBr1xyXG5cdFx0XHRcdGxldCB0aGF0ID0gdGhpc1xyXG5cdFx0XHRcdFxyXG5cdFx0XHR9LCAvLyBnZXRDaGVja0RldGxcclxuXHRcdFx0Y2hhbmdlKGUpIHtcclxuXHRcdFx0fSxcclxuXHRcdFx0dG9nZ2xlKHR5cGUpIHtcclxuXHRcdFx0XHR0aGlzLnR5cGUgPSB0eXBlXHJcblx0XHRcdFx0Ly8gb3BlbiDmlrnms5XkvKDlhaXlj4LmlbAg562J5ZCM5ZyoIHVuaS1wb3B1cCDnu4Tku7bkuIrnu5HlrpogdHlwZeWxnuaAp1xyXG5cdFx0XHRcdHRoaXMuJHJlZnMuZ29vZHNTZWFyY2gub3Blbih0eXBlKVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRjaGVja2JveDogZnVuY3Rpb24gKGUpIHtcclxuXHRcdFx0XHR2YXIgaXRlbXMgPSB0aGlzLmRhdGEsXHJcblx0XHRcdFx0XHR2YWx1ZXMgPSBlLmRldGFpbC52YWx1ZTtcclxuXHRcdFx0XHRmb3IgKHZhciBpID0gMCwgbGVuSSA9IGl0ZW1zLmxlbmd0aDsgaSA8IGxlbkk7ICsraSkge1xyXG5cdFx0XHRcdFx0Y29uc3QgaXRlbSA9IGl0ZW1zW2ldXHJcblx0XHRcdFx0XHRpdGVtLmlkID0gaXRlbS5pZCArICcnXHJcblx0XHRcdFx0XHRpZih2YWx1ZXMuaW5kZXhPZihpdGVtLmlkKSA+PSAwKXtcclxuXHRcdFx0XHRcdFx0dGhpcy4kc2V0KGl0ZW0sJ2NoZWNrZWQnLHRydWUpXHJcblx0XHRcdFx0XHR9ZWxzZXtcclxuXHRcdFx0XHRcdFx0dGhpcy4kc2V0KGl0ZW0sJ2NoZWNrZWQnLGZhbHNlKVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRpZiAodmFsdWVzLmxlbmd0aCA9PSBpdGVtcy5sZW5ndGgpIHtcclxuXHRcdFx0XHRcdHRoaXMuY2hlY2sgPSB0cnVlXHJcblx0XHRcdFx0XHR0aGlzLmNoZWNrVGV4dCA9IFwi5Y+W5raI5YWo6YCJXCJcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0dGhpcy5jaGVjayA9IGZhbHNlXHJcblx0XHRcdFx0XHR0aGlzLmNoZWNrVGV4dCA9IFwi5YWo6YCJXCJcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0dW5pLnZpYnJhdGVTaG9ydCgpO1xyXG5cdFx0XHR9LFxyXG5cdFx0fVxyXG5cdH1cclxuPC9zY3JpcHQ+XHJcblxyXG48c3R5bGU+XHJcblx0LyogQGltcG9ydCBcIi4uLy4uL2NvbG9ydWkvbWFpbi5jc3NcIjtcclxuXHRAaW1wb3J0IFwiLi4vLi4vY29sb3J1aS9pY29uLmNzc1wiOyAqL1xyXG5cclxuXHQucGFrLXNlYWNoLWJveCB7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGO1xyXG5cdFx0bWFyZ2luOiAxNXJweCAxNXJweCAwcnB4IDE1cnB4O1xyXG5cdFx0d2lkdGg6IDk2JTtcclxuXHRcdGhlaWdodDogMTUwcnB4O1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogMjBycHg7XHJcblx0fVxyXG5cdC5ib3gtdG9we1xyXG5cdFx0ZGlzcGxheTogYmxvY2s7XHJcblx0XHRoZWlnaHQ6IDYwcnB4O1xyXG5cdFx0d2lkdGg6IDcyMHJweDtcclxuXHR9XHJcblx0LmNvbG9yLWJsb2NrLWJsdWUge1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogIzFFOUZGRjtcclxuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdGZsb2F0OiBsZWZ0O1xyXG5cdFx0bWFyZ2luOiAxNXJweCAxNXJweCAwIDE1cnB4O1xyXG5cdFx0d2lkdGg6IDEycnB4O1xyXG5cdFx0aGVpZ2h0OiA0MHJweDtcclxuXHRcdGJvcmRlcjogNXJweCBzb2xpZCAjMUU5RkZGO1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogMjBycHg7XHJcblx0fVxyXG5cdC50aXRsZSB7XHJcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHRmbG9hdDogbGVmdDtcclxuXHRcdGZvbnQtc2l6ZTogMzRycHg7XHJcblx0XHRmb250LXdlaWdodDogNzAwO1xyXG5cdFx0aGVpZ2h0OiA1MHJweDtcclxuXHRcdGxpbmUtaGVpZ2h0OiA1MHJweDtcclxuXHRcdG1hcmdpbi10b3A6IDEwcnB4O1xyXG5cdH1cclxuXHQuYm94LWJ1dHRvbSB7XHJcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmMGYwO1xyXG5cdFx0d2lkdGg6IDY1JTtcclxuXHRcdGhlaWdodDogNjBycHg7XHJcblx0XHRib3JkZXItcmFkaXVzOiAyMHJweDtcclxuXHRcdG1hcmdpbjogMTVycHggMTVycHggMHJweCAxNXJweDtcclxuXHR9XHJcblx0LmJveC1idXR0b20gaW5wdXQge1xyXG5cdFx0d2lkdGg6IDc1JTtcclxuXHRcdGZsb2F0OiBsZWZ0O1xyXG5cdFx0bWFyZ2luOiA4cnB4IDEwcnB4IDBycHggMjVycHg7XHJcblx0fVxyXG5cdC5ib3gtYnV0dG9tIC5zZWFyY2gtaWNvbntcclxuXHRcdHdpZHRoOiA2MHJweDtcclxuXHRcdGhlaWdodDogNjBycHg7XHJcblx0XHRmbG9hdDogcmlnaHQ7XHJcblx0XHRtYXJnaW4tdG9wOiA1cnB4O1xyXG5cdFx0bWFyZ2luLXJpZ2h0OiAxMHJweDtcclxuXHR9XHJcblx0XHJcblx0LyogLnBhay1zZWFjaC1ib3ggaW5wdXQge1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2VkZWRlZDtcclxuXHRcdGJvcmRlcjogMXJweCBzb2xpZCAjZDhkOGQ4O1xyXG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogMjBycHg7XHJcblx0XHRmbG9hdDogbGVmdDtcclxuXHRcdHdpZHRoOiA3MCU7XHJcblx0XHRoZWlnaHQ6IDYwcnB4O1xyXG5cdFx0bGluZS1oZWlnaHQ6IDYwcnB4O1xyXG5cdFx0bWFyZ2luOiAxNXJweCAxNXJweCAwcnB4IDE1cnB4O1xyXG5cdFx0cGFkZGluZy1sZWZ0OiAyMHJweDtcclxuXHR9ICovXHJcblx0LnBhay1zZWFjaC1ib3ggYnV0dG9uIHtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICMxRTlGRkY7XHJcblx0XHRjb2xvcjogI2ZmZmZmZjtcclxuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdGZsb2F0OiByaWdodDtcclxuXHRcdHdpZHRoOiAxODBycHg7XHJcblx0XHRoZWlnaHQ6IDYwcnB4O1xyXG5cdFx0bWFyZ2luOiAxNXJweCAxNXJweCAwcnB4IDE1cnB4O1xyXG5cdFx0bGluZS1oZWlnaHQ6IDYwcnB4O1xyXG5cdH1cclxuXHQucGFraW4tYnRuIHtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICMxRTlGRkY7XHJcblx0fVxyXG5cdC5wYWstZGF0YS1ib3gge1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI0YxRjFGMTtcclxuXHRcdG1hcmdpbjogMTVycHggMTVycHggMHJweCAxNXJweDtcclxuXHRcdHdpZHRoOiA5NiU7XHJcblx0XHRoZWlnaHQ6IDcwcnB4O1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogMjBycHg7XHJcblx0fVxyXG5cdC5wYWstZGF0YS1ib3ggLmJveC10b3Age1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjtcclxuXHRcdGhlaWdodDogNzBycHg7XHJcblx0XHRib3JkZXItcmFkaXVzOiAyMHJweCAyMHJweCAyMHJweCAyMHJweDtcclxuXHR9XHJcblx0LmJnLWZhbHNlIHtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7XHJcblx0fVxyXG5cdC5iZy10cnVlIHtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICNlYmViZWI7XHJcblx0fVxyXG5cdC5kYXRhLWxpc3Qge1xyXG5cdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkOGQ4ZDg7XHJcblx0XHRoZWlnaHQ6IDEzMHJweDtcclxuXHRcdG1hcmdpbjogMTVycHg7XHJcblx0XHRib3JkZXItcmFkaXVzOiAyMHJweDtcclxuXHR9XHJcblx0LmRhdGEtbGlzdDpmaXJzdC1jaGlsZCB7XHJcblx0XHRtYXJnaW4tdG9wOiAyMHJweDtcclxuXHR9XHJcblx0LmRhdGEtbGlzdDpsYXN0LWNoaWxkIHtcclxuXHRcdG1hcmdpbi1ib3R0b206IDIwMHJweDtcclxuXHR9XHJcblx0LyogLmRhdGEtbGlzdC1sZWZ0IHtcclxuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdGZsb2F0OiBsZWZ0O1xyXG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdFx0d2lkdGg6IDEwMHJweDtcclxuXHRcdGhlaWdodDogMTgwcnB4O1xyXG5cdFx0bGluZS1oZWlnaHQ6IDE4MHJweDtcclxuXHR9ICovXHJcblx0LmRhdGEtbGlzdC1sZWZ0IHtcclxuXHRcdHdpZHRoOiA1NTBycHg7XHJcblx0XHQvKiBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3QUZGOyAqL1xyXG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0ZmxvYXQ6IGxlZnQ7XHJcblx0XHRtYXJnaW4tbGVmdDogNCU7XHJcblx0XHRoZWlnaHQ6IDEzMHJweDtcclxuXHRcdGNvbG9yOiAjNjc2NzY3O1xyXG5cdH1cclxuXHQubWF0bnIge1xyXG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRmb250LXNpemU6IDE0cHg7XHJcblx0XHRmb250LXdlaWdodDogNzAwO1xyXG5cdFx0cGFkZGluZy10b3A6IDE1cnB4O1xyXG5cdFx0LyogaGVpZ2h0OiAxMzBycHg7XHJcblx0XHRsaW5lLWhlaWdodDogMTMwcnB4OyAqL1xyXG5cdH1cclxuXHQuZGF0YS1saXN0LXJpZ2h0IHtcclxuXHRcdC8qIGJhY2tncm91bmQtY29sb3I6ICM2NzM5QjY7ICovXHJcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHRmbG9hdDogcmlnaHQ7XHJcblx0XHR3aWR0aDogMTAwcnB4O1xyXG5cdFx0aGVpZ2h0OiAxMzBycHg7XHJcblx0XHRsaW5lLWhlaWdodDogMTMwcnB4O1xyXG5cdH1cclxuPC9zdHlsZT4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///88\n"); |
| | | |
| | | /***/ }), |
| | | /* 89 */ |