(this["webpackJsonp"] = this["webpackJsonp"] || []).push([["app-service"],[ /* 0 */ /*!********************************************************************!*\ !*** /Users/zhangqizhen/Sites/miniProgram/yunyi/watch-app/main.js ***! \********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 2));\n__webpack_require__(/*! uni-pages */ 6);\nvar _App = _interopRequireDefault(__webpack_require__(/*! ./App */ 270));\nvar _vue = _interopRequireDefault(__webpack_require__(/*! vue */ 46));\nvar _utils = _interopRequireDefault(__webpack_require__(/*! @/utils/utils.js */ 84));\nvar _uviewUi = _interopRequireDefault(__webpack_require__(/*! @/uni_modules/uview-ui */ 273));\nvar _store = _interopRequireDefault(__webpack_require__(/*! @/store */ 42));\nvar _request = _interopRequireDefault(__webpack_require__(/*! @/config/request.js */ 391));\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n_vue.default.use(_uviewUi.default);\n_vue.default.use(_request.default);\n_vue.default.prototype.$utils = _utils.default;\n_vue.default.prototype.$store = _store.default;\n_vue.default.config.productionTip = false;\n_App.default.mpType = 'app';\nvar app = new _vue.default(_objectSpread({}, _App.default));\napp.$mount();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vbWFpbi5qcyJdLCJuYW1lcyI6WyJWdWUiLCJ1c2UiLCJ1VmlldyIsInJlcXVlc3QiLCJwcm90b3R5cGUiLCIkdXRpbHMiLCJ1dGlscyIsIiRzdG9yZSIsInN0b3JlIiwiY29uZmlnIiwicHJvZHVjdGlvblRpcCIsIkFwcCIsIm1wVHlwZSIsImFwcCIsIiRtb3VudCJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQW1CO0FBR25CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBeUM7QUFBQTtBQUV6Q0EsWUFBRyxDQUFDQyxHQUFHLENBQUNDLGdCQUFLLENBQUM7QUFDZEYsWUFBRyxDQUFDQyxHQUFHLENBQUNFLGdCQUFPLENBQUM7QUFFaEJILFlBQUcsQ0FBQ0ksU0FBUyxDQUFDQyxNQUFNLEdBQUdDLGNBQUs7QUFDNUJOLFlBQUcsQ0FBQ0ksU0FBUyxDQUFDRyxNQUFNLEdBQUdDLGNBQUs7QUFFNUJSLFlBQUcsQ0FBQ1MsTUFBTSxDQUFDQyxhQUFhLEdBQUcsS0FBSztBQUNoQ0MsWUFBRyxDQUFDQyxNQUFNLEdBQUcsS0FBSztBQUNsQixJQUFNQyxHQUFHLEdBQUcsSUFBSWIsWUFBRyxtQkFDWlcsWUFBRyxFQUNSO0FBQ0ZFLEdBQUcsQ0FBQ0MsTUFBTSxFQUFFIiwiZmlsZSI6IjAuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJ3VuaS1wYWdlcyc7aW1wb3J0IEFwcCBmcm9tICcuL0FwcCdcblxuXG5pbXBvcnQgVnVlIGZyb20gJ3Z1ZSdcbmltcG9ydCB1dGlscyBmcm9tICdAL3V0aWxzL3V0aWxzLmpzJ1xuaW1wb3J0IHVWaWV3IGZyb20gJ0AvdW5pX21vZHVsZXMvdXZpZXctdWknXG5pbXBvcnQgc3RvcmUgZnJvbSAnQC9zdG9yZSdcbmltcG9ydCByZXF1ZXN0IGZyb20gJ0AvY29uZmlnL3JlcXVlc3QuanMnXG5cblZ1ZS51c2UodVZpZXcpXG5WdWUudXNlKHJlcXVlc3QpXG5cblZ1ZS5wcm90b3R5cGUuJHV0aWxzID0gdXRpbHM7XG5WdWUucHJvdG90eXBlLiRzdG9yZSA9IHN0b3JlO1xuXG5WdWUuY29uZmlnLnByb2R1Y3Rpb25UaXAgPSBmYWxzZVxuQXBwLm1wVHlwZSA9ICdhcHAnXG5jb25zdCBhcHAgPSBuZXcgVnVlKHtcbiAgICAuLi5BcHBcbn0pXG5hcHAuJG1vdW50KClcblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///0\n"); /***/ }), /* 1 */ /*!**********************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/interopRequireDefault.js ***! \**********************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } module.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 2 */ /*!***************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/defineProperty.js ***! \***************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var toPropertyKey = __webpack_require__(/*! ./toPropertyKey.js */ 3); function _defineProperty(obj, key, value) { key = toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } module.exports = _defineProperty, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 3 */ /*!**************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/toPropertyKey.js ***! \**************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var _typeof = __webpack_require__(/*! ./typeof.js */ 4)["default"]; var toPrimitive = __webpack_require__(/*! ./toPrimitive.js */ 5); function toPropertyKey(t) { var i = toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } module.exports = toPropertyKey, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 4 */ /*!*******************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/typeof.js ***! \*******************************************************/ /*! no static exports found */ /***/ (function(module, exports) { function _typeof(o) { "@babel/helpers - typeof"; return (module.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, module.exports.__esModule = true, module.exports["default"] = module.exports), _typeof(o); } module.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 5 */ /*!************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/toPrimitive.js ***! \************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var _typeof = __webpack_require__(/*! ./typeof.js */ 4)["default"]; function toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } module.exports = toPrimitive, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 6 */ /*!***********************************************************************!*\ !*** /Users/zhangqizhen/Sites/miniProgram/yunyi/watch-app/pages.json ***! \***********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { if (typeof Promise !== 'undefined' && !Promise.prototype.finally) { Promise.prototype.finally = function (callback) { var promise = this.constructor; return this.then(function (value) { return promise.resolve(callback()).then(function () { return value; }); }, function (reason) { return promise.resolve(callback()).then(function () { throw reason; }); }); }; } if (typeof uni !== 'undefined' && uni && uni.requireGlobal) { var global = uni.requireGlobal(); ArrayBuffer = global.ArrayBuffer; Int8Array = global.Int8Array; Uint8Array = global.Uint8Array; Uint8ClampedArray = global.Uint8ClampedArray; Int16Array = global.Int16Array; Uint16Array = global.Uint16Array; Int32Array = global.Int32Array; Uint32Array = global.Uint32Array; Float32Array = global.Float32Array; Float64Array = global.Float64Array; BigInt64Array = global.BigInt64Array; BigUint64Array = global.BigUint64Array; } if (uni.restoreGlobal) { uni.restoreGlobal(weex, plus, setTimeout, clearTimeout, setInterval, clearInterval); } __definePage('pages/login/login', function () { return Vue.extend(__webpack_require__(/*! pages/login/login.vue?mpType=page */ 7).default); }); __definePage('pages/index/detail', function () { return Vue.extend(__webpack_require__(/*! pages/index/detail.vue?mpType=page */ 60).default); }); __definePage('pages/login/forget', function () { return Vue.extend(__webpack_require__(/*! pages/login/forget.vue?mpType=page */ 86).default); }); __definePage('pages/login/register', function () { return Vue.extend(__webpack_require__(/*! pages/login/register.vue?mpType=page */ 91).default); }); __definePage('pages/index/index', function () { return Vue.extend(__webpack_require__(/*! pages/index/index.vue?mpType=page */ 96).default); }); __definePage('pages/device/device', function () { return Vue.extend(__webpack_require__(/*! pages/device/device.vue?mpType=page */ 166).default); }); __definePage('pages/my/my', function () { return Vue.extend(__webpack_require__(/*! pages/my/my.vue?mpType=page */ 171).default); }); __definePage('pages/login/explain', function () { return Vue.extend(__webpack_require__(/*! pages/login/explain.vue?mpType=page */ 176).default); }); __definePage('pages/index/echarts', function () { return Vue.extend(__webpack_require__(/*! pages/index/echarts.vue?mpType=page */ 181).default); }); __definePage('pages/only_test/only_test', function () { return Vue.extend(__webpack_require__(/*! pages/only_test/only_test.vue?mpType=page */ 210).default); }); __definePage('pages/only_test/ot1', function () { return Vue.extend(__webpack_require__(/*! pages/only_test/ot1.vue?mpType=page */ 215).default); }); __definePage('pages/only_test/ot2', function () { return Vue.extend(__webpack_require__(/*! pages/only_test/ot2.vue?mpType=page */ 220).default); }); __definePage('pages/index/detail_info', function () { return Vue.extend(__webpack_require__(/*! pages/index/detail_info.vue?mpType=page */ 225).default); }); __definePage('pages/only_test/ot3', function () { return Vue.extend(__webpack_require__(/*! pages/only_test/ot3.vue?mpType=page */ 237).default); }); __definePage('pages/only_test/ot5', function () { return Vue.extend(__webpack_require__(/*! pages/only_test/ot5.vue?mpType=page */ 242).default); }); __definePage('pages/index/sleep_info', function () { return Vue.extend(__webpack_require__(/*! pages/index/sleep_info.vue?mpType=page */ 247).default); }); __definePage('pages/index/body_info', function () { return Vue.extend(__webpack_require__(/*! pages/index/body_info.vue?mpType=page */ 259).default); }); /***/ }), /* 7 */ /*!**********************************************************************************************!*\ !*** /Users/zhangqizhen/Sites/miniProgram/yunyi/watch-app/pages/login/login.vue?mpType=page ***! \**********************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _login_vue_vue_type_template_id_5b26a3ac_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./login.vue?vue&type=template&id=5b26a3ac&scoped=true&mpType=page */ 8);\n/* harmony import */ var _login_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./login.vue?vue&type=script&lang=js&mpType=page */ 40);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _login_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _login_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 22);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _login_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _login_vue_vue_type_template_id_5b26a3ac_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _login_vue_vue_type_template_id_5b26a3ac_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"5b26a3ac\",\n null,\n false,\n _login_vue_vue_type_template_id_5b26a3ac_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"pages/login/login.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBeUk7QUFDekk7QUFDb0U7QUFDTDs7O0FBRy9EO0FBQ21OO0FBQ25OLGdCQUFnQixpTkFBVTtBQUMxQixFQUFFLHNGQUFNO0FBQ1IsRUFBRSx1R0FBTTtBQUNSLEVBQUUsZ0hBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsMkdBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiNy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zLCByZWN5Y2xhYmxlUmVuZGVyLCBjb21wb25lbnRzIH0gZnJvbSBcIi4vbG9naW4udnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTViMjZhM2FjJnNjb3BlZD10cnVlJm1wVHlwZT1wYWdlXCJcbnZhciByZW5kZXJqc1xuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9sb2dpbi52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmbXBUeXBlPXBhZ2VcIlxuZXhwb3J0ICogZnJvbSBcIi4vbG9naW4udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJm1wVHlwZT1wYWdlXCJcblxuXG4vKiBub3JtYWxpemUgY29tcG9uZW50ICovXG5pbXBvcnQgbm9ybWFsaXplciBmcm9tIFwiIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FwcGxpY2F0aW9ucy9IQnVpbGRlclguYXBwL0NvbnRlbnRzL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgXCI1YjI2YTNhY1wiLFxuICBudWxsLFxuICBmYWxzZSxcbiAgY29tcG9uZW50cyxcbiAgcmVuZGVyanNcbilcblxuY29tcG9uZW50Lm9wdGlvbnMuX19maWxlID0gXCJwYWdlcy9sb2dpbi9sb2dpbi52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///7\n"); /***/ }), /* 8 */ /*!****************************************************************************************************************************************!*\ !*** /Users/zhangqizhen/Sites/miniProgram/yunyi/watch-app/pages/login/login.vue?vue&type=template&id=5b26a3ac&scoped=true&mpType=page ***! \****************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_login_vue_vue_type_template_id_5b26a3ac_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./login.vue?vue&type=template&id=5b26a3ac&scoped=true&mpType=page */ 9); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_login_vue_vue_type_template_id_5b26a3ac_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_login_vue_vue_type_template_id_5b26a3ac_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_login_vue_vue_type_template_id_5b26a3ac_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_login_vue_vue_type_template_id_5b26a3ac_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 9 */ /*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!/Users/zhangqizhen/Sites/miniProgram/yunyi/watch-app/pages/login/login.vue?vue&type=template&id=5b26a3ac&scoped=true&mpType=page ***! \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); var components try { components = { uqrcode: __webpack_require__(/*! @/uni_modules/Sansnn-uQRCode/components/uqrcode/uqrcode.vue */ 10) .default, tmNavBar: __webpack_require__(/*! @/uni_modules/tm-nav-bar/components/tm-nav-bar/tm-nav-bar.vue */ 23) .default, } } catch (e) { if ( e.message.indexOf("Cannot find module") !== -1 && e.message.indexOf(".vue") !== -1 ) { console.error(e.message) console.error("1. 排查组件名称拼写是否正确") console.error( "2. 排查组件是否符合 easycom 规范,文档:https://uniapp.dcloud.net.cn/collocation/pages?id=easycom" ) console.error( "3. 若组件不符合 easycom 规范,需手动引入,并在 components 中注册该组件" ) } else { throw e } } var render = function () { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "view", { staticClass: _vm._$s(0, "sc", "login"), attrs: { _i: 0 } }, [ _vm._$s(1, "i", _vm.login_type == 0) ? _c( "view", { staticClass: _vm._$s(1, "sc", "flx flx_jc flx_ac"), attrs: { _i: 1 }, }, [ _c("view", [ _c( "view", { staticClass: _vm._$s(3, "sc", "flx flx_jc "), attrs: { _i: 3 }, }, [ _vm._$s(4, "i", _vm.qrCode) ? _c("uqrcode", { ref: "uqrcode", attrs: { "canvas-id": "qrcode", value: _vm.qrCode, options: { margin: 10 }, _i: 4, }, }) : _c( "view", { staticClass: _vm._$s(5, "sc", "flx flx_ac"), attrs: { _i: 5 }, }, [ _c("view", [ _vm._v(_vm._$s(6, "t0-0", _vm._s(_vm.qrCodeMsg))), ]), ] ), ], 1 ), _c( "view", [ _c("wButton", { staticClass: _vm._$s(8, "sc", "wbutton"), attrs: { text: "刷新二维码", rotate: _vm.isRotate, _i: 8, }, on: { click: _vm.getLoginCode }, }), ], 1 ), _c( "view", { staticClass: _vm._$s(9, "sc", "footer"), attrs: { _i: 9 } }, [ _c( "view", { attrs: { _i: 10 }, on: { click: function ($event) { return _vm.doLoginType(1) }, }, }, [_vm._v(_vm._$s(10, "t0-0", _vm._s(_vm.sn)))] ), _c("text"), _c("navigator", {}), ] ), ]), ] ) : _vm._e(), _vm._$s(13, "i", _vm.login_type == 1) ? _c( "view", { staticClass: _vm._$s(13, "sc", "content"), attrs: { _i: 13 } }, [ _c("tm-nav-bar", { attrs: { "left-icon": "arrow-left", title: "登陆账号", _i: 14 }, on: { clickLeft: _vm.back }, }), _c( "view", { staticClass: _vm._$s(15, "sc", "header"), attrs: { _i: 15 } }, [ _c("image", { attrs: { src: _vm._$s( 16, "a-src", __webpack_require__(/*! ../../static/a-ziyuan85.png */ 39) ), _i: 16, }, }), ] ), _c( "view", { staticClass: _vm._$s(17, "sc", "main"), attrs: { _i: 17 } }, [ _c("wInput", { attrs: { type: "text", maxlength: "11", placeholder: "用户名/电话", focus: _vm.isFocus, _i: 18, }, model: { value: _vm._$s(18, "v-model", _vm.phoneData), callback: function ($$v) { _vm.phoneData = $$v }, expression: "phoneData", }, }), _c("wInput", { attrs: { type: "password", maxlength: "9999", placeholder: "密码", _i: 19, }, model: { value: _vm._$s(19, "v-model", _vm.passData), callback: function ($$v) { _vm.passData = $$v }, expression: "passData", }, }), ], 1 ), _c("wButton", { staticClass: _vm._$s(20, "sc", "wbutton"), attrs: { text: "登 录", rotate: _vm.isRotate, _i: 20 }, on: { click: _vm.startLogin }, }), _c( "view", { staticClass: _vm._$s(21, "sc", "footer"), attrs: { _i: 21 } }, [ _c("navigator", {}), _c("text"), _c("navigator", {}), _c("text"), _c("view", { attrs: { _i: 26 }, on: { click: function ($event) { return _vm.doLoginType(0) }, }, }), ] ), ], 1 ) : _vm._e(), _c("view", [_vm._v(_vm._$s(27, "t0-0", _vm._s(_vm.version)))]), ] ) } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 10 */ /*!**********************************************************************************************************************!*\ !*** /Users/zhangqizhen/Sites/miniProgram/yunyi/watch-app/uni_modules/Sansnn-uQRCode/components/uqrcode/uqrcode.vue ***! \**********************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _uqrcode_vue_vue_type_template_id_b7042062_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./uqrcode.vue?vue&type=template&id=b7042062&scoped=true& */ 11);\n/* harmony import */ var _uqrcode_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./uqrcode.vue?vue&type=script&lang=js& */ 13);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _uqrcode_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _uqrcode_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 22);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _uqrcode_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _uqrcode_vue_vue_type_template_id_b7042062_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _uqrcode_vue_vue_type_template_id_b7042062_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"b7042062\",\n null,\n false,\n _uqrcode_vue_vue_type_template_id_b7042062_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"uni_modules/Sansnn-uQRCode/components/uqrcode/uqrcode.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBZ0k7QUFDaEk7QUFDMkQ7QUFDTDs7O0FBR3REO0FBQ3lOO0FBQ3pOLGdCQUFnQixpTkFBVTtBQUMxQixFQUFFLDZFQUFNO0FBQ1IsRUFBRSw4RkFBTTtBQUNSLEVBQUUsdUdBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsa0dBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMTAuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL3VxcmNvZGUudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPWI3MDQyMDYyJnNjb3BlZD10cnVlJlwiXG52YXIgcmVuZGVyanNcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vdXFyY29kZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmV4cG9ydCAqIGZyb20gXCIuL3VxcmNvZGUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BcHBsaWNhdGlvbnMvSEJ1aWxkZXJYLmFwcC9Db250ZW50cy9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIFwiYjcwNDIwNjJcIixcbiAgbnVsbCxcbiAgZmFsc2UsXG4gIGNvbXBvbmVudHMsXG4gIHJlbmRlcmpzXG4pXG5cbmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwidW5pX21vZHVsZXMvU2Fuc25uLXVRUkNvZGUvY29tcG9uZW50cy91cXJjb2RlL3VxcmNvZGUudnVlXCJcbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///10\n"); /***/ }), /* 11 */ /*!*****************************************************************************************************************************************************************!*\ !*** /Users/zhangqizhen/Sites/miniProgram/yunyi/watch-app/uni_modules/Sansnn-uQRCode/components/uqrcode/uqrcode.vue?vue&type=template&id=b7042062&scoped=true& ***! \*****************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uqrcode_vue_vue_type_template_id_b7042062_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./uqrcode.vue?vue&type=template&id=b7042062&scoped=true& */ 12); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uqrcode_vue_vue_type_template_id_b7042062_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uqrcode_vue_vue_type_template_id_b7042062_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uqrcode_vue_vue_type_template_id_b7042062_scoped_true___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uqrcode_vue_vue_type_template_id_b7042062_scoped_true___WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 12 */ /*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!/Users/zhangqizhen/Sites/miniProgram/yunyi/watch-app/uni_modules/Sansnn-uQRCode/components/uqrcode/uqrcode.vue?vue&type=template&id=b7042062&scoped=true& ***! \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); var components var render = function () { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "view", { staticClass: _vm._$s(0, "sc", "uqrcode"), class: _vm._$s(0, "c", { "uqrcode-hide": _vm.hide }), style: _vm._$s(0, "s", { width: _vm.templateOptions.width + "px", height: _vm.templateOptions.height + "px", }), attrs: { _i: 0 }, }, [ _c( "view", { staticClass: _vm._$s(1, "sc", "uqrcode-canvas-wrapper"), attrs: { _i: 1 }, }, [ _vm._$s(2, "i", _vm.templateOptions.canvasDisplay) ? _c("canvas", { staticClass: _vm._$s(2, "sc", "uqrcode-canvas"), style: _vm._$s(2, "s", { width: _vm.templateOptions.canvasWidth + "px", height: _vm.templateOptions.canvasHeight + "px", transform: _vm.templateOptions.canvasTransform, }), attrs: { id: _vm._$s(2, "a-id", _vm.canvasId), "canvas-id": _vm._$s(2, "a-canvas-id", _vm.canvasId), type: _vm._$s(2, "a-type", _vm.canvasType), _i: 2, }, on: { click: _vm.onClick }, }) : _vm._e(), ] ), _vm._$s(3, "i", _vm.loading === undefined ? _vm.makeing : _vm.loading) ? _c( "view", { staticClass: _vm._$s(3, "sc", "uqrcode-makeing"), attrs: { _i: 3 }, }, [ _vm._t( "loading", [ _c("image", { staticClass: _vm._$s(5, "sc", "uqrcode-makeing-image"), style: _vm._$s(5, "s", { width: _vm.templateOptions.size / 4 + "px", height: _vm.templateOptions.size / 4 + "px", }), attrs: { _i: 5 }, }), ], { _i: 4 } ), ], 2 ) : _vm._e(), _vm._$s(6, "i", _vm.isError) ? _c( "view", { staticClass: _vm._$s(6, "sc", "uqrcode-error"), attrs: { _i: 6 }, on: { click: _vm.onClick }, }, [ _vm._t( "error", [ _c( "text", { staticClass: _vm._$s(8, "sc", "uqrcode-error-message"), attrs: { _i: 8 }, }, [_vm._v(_vm._$s(8, "t0-0", _vm._s(_vm.error.errMsg)))] ), ], { error: _vm.error, _i: 7 } ), ], 2 ) : _vm._e(), ] ) } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 13 */ /*!***********************************************************************************************************************************************!*\ !*** /Users/zhangqizhen/Sites/miniProgram/yunyi/watch-app/uni_modules/Sansnn-uQRCode/components/uqrcode/uqrcode.vue?vue&type=script&lang=js& ***! \***********************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uqrcode_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./uqrcode.vue?vue&type=script&lang=js& */ 14);\n/* harmony import */ var _Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uqrcode_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uqrcode_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uqrcode_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uqrcode_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uqrcode_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQTJ2QixDQUFnQiw2c0JBQUcsRUFBQyIsImZpbGUiOiIxMy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQXBwbGljYXRpb25zL0hCdWlsZGVyWC5hcHAvQ29udGVudHMvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BcHBsaWNhdGlvbnMvSEJ1aWxkZXJYLmFwcC9Db250ZW50cy9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNy0xIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FwcGxpY2F0aW9ucy9IQnVpbGRlclguYXBwL0NvbnRlbnRzL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FwcGxpY2F0aW9ucy9IQnVpbGRlclguYXBwL0NvbnRlbnRzL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL3VxcmNvZGUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FwcGxpY2F0aW9ucy9IQnVpbGRlclguYXBwL0NvbnRlbnRzL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQXBwbGljYXRpb25zL0hCdWlsZGVyWC5hcHAvQ29udGVudHMvSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTctMSEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BcHBsaWNhdGlvbnMvSEJ1aWxkZXJYLmFwcC9Db250ZW50cy9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BcHBsaWNhdGlvbnMvSEJ1aWxkZXJYLmFwcC9Db250ZW50cy9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi91cXJjb2RlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///13\n"); /***/ }), /* 14 */ /*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!/Users/zhangqizhen/Sites/miniProgram/yunyi/watch-app/uni_modules/Sansnn-uQRCode/components/uqrcode/uqrcode.vue?vue&type=script&lang=js& ***! \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ 16));\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 2));\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ 18));\nvar _uqrcode = _interopRequireDefault(__webpack_require__(/*! ../../js_sdk/uqrcode/uqrcode */ 19));\nvar _queue = __webpack_require__(/*! ../../common/queue */ 20);\nvar _cache = __webpack_require__(/*! ../../common/cache */ 21);\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nvar instance = null;\nvar _default2 = {\n name: 'uqrcode',\n props: {\n /**\n * canvas组件id\n */\n canvasId: {\n type: String,\n required: true // canvasId在微信小程序初始值不能为空,created中赋值也不行,必须给一个值,否则挂载组件后无法绘制。不考虑用随机id,uuid\n },\n\n /**\n * 二维码内容\n */\n value: {\n type: [String, Number]\n },\n /**\n * 选项\n */\n options: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n /**\n * 二维码大小\n */\n size: {\n type: [String, Number],\n default: 200\n },\n /**\n * 二维码尺寸单位\n */\n sizeUnit: {\n type: String,\n default: 'px'\n },\n /**\n * 导出的文件类型\n */\n fileType: {\n type: String,\n default: 'png'\n },\n /**\n * 是否初始化组件后就开始生成\n */\n start: {\n type: Boolean,\n default: true\n },\n /**\n * 是否数据发生改变自动重绘\n */\n auto: {\n type: Boolean,\n default: true\n },\n /**\n * 隐藏组件\n */\n hide: {\n type: Boolean,\n default: false\n },\n /**\n * canvas 类型,微信小程序默认使用2d,非2d微信官方已放弃维护,问题比较多\n * 注意:微信小程序type2d手机上正常,PC上微信内打开小程序toDataURL报错,看后期微信官方团队会不会做兼容,不兼容的话只能在自行判断在PC使用非2d,或者直接提示用户请在手机上操作,微信团队的海报中心小程序就是这么做的\n */\n type: {\n type: String,\n default: function _default() {\n return 'normal';\n }\n },\n /**\n * 队列绘制,主要针对NVue端\n */\n queue: {\n type: Boolean,\n default: false\n },\n /**\n * 是否队列加载图片,可减少canvas发起的网络资源请求,节省服务器资源\n */\n isQueueLoadImage: {\n type: Boolean,\n default: false\n },\n /**\n * loading态\n */\n loading: {\n type: Boolean,\n default: undefined\n },\n /**\n * H5保存即自动下载(在支持的环境下),默认false为仅弹层提示用户需要长按图片保存,不会自动下载\n */\n h5SaveIsDownload: {\n type: Boolean,\n default: false\n },\n /**\n * H5下载名称\n */\n h5DownloadName: {\n type: String,\n default: 'uQRCode'\n }\n },\n data: function data() {\n return {\n canvas: undefined,\n canvasType: undefined,\n canvasContext: undefined,\n makeDelegate: undefined,\n drawDelegate: undefined,\n toTempFilePathDelegate: undefined,\n makeExecuted: false,\n makeing: false,\n drawing: false,\n isError: false,\n error: undefined,\n isH5Save: false,\n tempFilePath: '',\n templateOptions: {\n size: 0,\n width: 0,\n // 组件宽度\n height: 0,\n canvasWidth: 0,\n // canvas宽度\n canvasHeight: 0,\n canvasTransform: '',\n canvasDisplay: false\n },\n uqrcodeOptions: {\n data: ''\n },\n plugins: [],\n makeingPattern: [[[true, true, true, false, false, false, false, true, true, true], [true, true, true, false, false, false, false, true, true, true], [true, true, true, false, false, false, false, true, true, true], [true, true, true, false, false, false, false, true, true, true], [true, true, true, false, false, false, false, true, true, true], [true, true, true, false, false, false, false, true, true, true], [true, true, true, false, false, false, false, true, true, true], [true, true, true, true, true, true, true, true, true, true], [true, true, true, true, true, true, true, true, true, true], [true, true, true, true, true, true, true, true, true, true]], [[true, true, true, true, true, true, true, true, true, true], [true, true, true, true, true, true, true, true, true, true], [true, true, true, true, true, true, true, true, true, true], [true, true, true, false, false, false, false, true, true, true], [true, true, true, false, false, false, false, true, true, true], [true, true, true, false, false, false, false, true, true, true], [true, true, true, false, false, false, false, false, false, false], [true, true, true, true, true, true, false, true, true, true], [true, true, true, true, true, true, false, true, true, true], [true, true, true, true, true, true, false, true, true, true]], [[true, true, true, true, true, true, true, true, true, true], [true, true, true, true, true, true, true, true, true, true], [true, true, true, true, true, true, true, true, true, true], [true, true, true, false, false, false, false, true, true, true], [true, true, true, false, false, false, false, true, true, true], [true, true, true, true, true, true, true, false, false, false], [true, true, true, true, true, true, true, false, false, false], [true, true, true, true, true, true, true, false, false, false], [true, true, true, false, false, false, false, true, true, true], [true, true, true, false, false, false, false, true, true, true]], [[true, true, true, true, true, true, true, true, true, true], [true, true, true, true, true, true, true, true, true, true], [true, true, true, true, true, true, true, true, true, true], [true, true, true, false, false, false, false, false, false, false], [true, true, true, false, false, false, false, false, false, false], [true, true, true, false, false, false, false, false, false, false], [true, true, true, false, false, false, false, false, false, false], [true, true, true, true, true, true, true, true, true, true], [true, true, true, true, true, true, true, true, true, true], [true, true, true, true, true, true, true, true, true, true]]]\n };\n },\n watch: {\n type: {\n handler: function handler(val) {\n var types = ['2d'];\n if (types.includes(val)) {\n this.canvasType = val;\n } else {\n this.canvasType = undefined;\n }\n },\n immediate: true\n },\n value: {\n handler: function handler() {\n if (this.auto) {\n this.remake();\n }\n }\n },\n size: {\n handler: function handler() {\n if (this.auto) {\n this.remake();\n }\n }\n },\n options: {\n handler: function handler() {\n if (this.auto) {\n this.remake();\n }\n },\n deep: true\n },\n makeing: {\n handler: function handler(val) {\n if (!val) {\n if (typeof this.toTempFilePathDelegate === 'function') {\n this.toTempFilePathDelegate();\n }\n }\n }\n }\n },\n mounted: function mounted() {\n this.templateOptions.size = this.sizeUnit == 'rpx' ? uni.upx2px(this.size) : this.size;\n this.templateOptions.width = this.templateOptions.size;\n this.templateOptions.height = this.templateOptions.size;\n this.templateOptions.canvasWidth = this.templateOptions.size;\n this.templateOptions.canvasHeight = this.templateOptions.size;\n if (this.canvasType == '2d') {\n this.templateOptions.canvasTransform = \"scale(\".concat(this.templateOptions.size / this.templateOptions.canvasWidth, \", \").concat(this.templateOptions.size / this.templateOptions.canvasHeight, \")\");\n } else {\n this.templateOptions.canvasTransform = \"scale(\".concat(this.templateOptions.size / this.templateOptions.canvasWidth, \", \").concat(this.templateOptions.size / this.templateOptions.canvasHeight, \")\");\n }\n if (this.start) {\n this.make();\n }\n },\n methods: {\n /**\n * 获取模板选项\n */\n getTemplateOptions: function getTemplateOptions() {\n var size = this.sizeUnit == 'rpx' ? uni.upx2px(this.size) : this.size;\n return deepReplace(this.templateOptions, {\n size: size,\n width: size,\n height: size\n });\n },\n /**\n * 获取插件选项\n */\n getUqrcodeOptions: function getUqrcodeOptions() {\n return deepReplace(this.options, {\n data: String(this.value),\n size: Number(this.templateOptions.size)\n });\n },\n /**\n * 重置画布\n */\n resetCanvas: function resetCanvas(callback) {\n var _this = this;\n this.templateOptions.canvasDisplay = false;\n this.$nextTick(function () {\n _this.templateOptions.canvasDisplay = true;\n _this.$nextTick(function () {\n callback && callback();\n });\n });\n },\n /**\n * 绘制二维码\n */\n draw: function draw() {\n var _arguments = arguments,\n _this2 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {\n var callback, isDrawDelegate, qr, canvasContext;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n callback = _arguments.length > 0 && _arguments[0] !== undefined ? _arguments[0] : {};\n isDrawDelegate = _arguments.length > 1 && _arguments[1] !== undefined ? _arguments[1] : false;\n if (typeof callback.success != 'function') {\n callback.success = function () {};\n }\n if (typeof callback.fail != 'function') {\n callback.fail = function () {};\n }\n if (typeof callback.complete != 'function') {\n callback.complete = function () {};\n }\n if (!_this2.drawing) {\n _context.next = 11;\n break;\n }\n if (isDrawDelegate) {\n _context.next = 9;\n break;\n }\n _this2.drawDelegate = function () {\n _this2.draw(callback, true);\n };\n return _context.abrupt(\"return\");\n case 9:\n _context.next = 12;\n break;\n case 11:\n _this2.drawing = true;\n case 12:\n if (_this2.canvasId) {\n _context.next = 19;\n break;\n }\n __f__(\"error\", '[uQRCode]: canvasId must be set!', \" at uni_modules/Sansnn-uQRCode/components/uqrcode/uqrcode.vue:405\");\n _this2.isError = true;\n _this2.drawing = false;\n callback.fail({\n errMsg: '[uQRCode]: canvasId must be set!'\n });\n callback.complete({\n errMsg: '[uQRCode]: canvasId must be set!'\n });\n return _context.abrupt(\"return\");\n case 19:\n if (_this2.value) {\n _context.next = 26;\n break;\n }\n __f__(\"error\", '[uQRCode]: value must be set!', \" at uni_modules/Sansnn-uQRCode/components/uqrcode/uqrcode.vue:417\");\n _this2.isError = true;\n _this2.drawing = false;\n callback.fail({\n errMsg: '[uQRCode]: value must be set!'\n });\n callback.complete({\n errMsg: '[uQRCode]: value must be set!'\n });\n return _context.abrupt(\"return\");\n case 26:\n /* 组件数据 */\n _this2.templateOptions = _this2.getTemplateOptions();\n /* uQRCode选项 */\n _this2.uqrcodeOptions = _this2.getUqrcodeOptions();\n /* 纠错等级兼容字母写法 */\n if (typeof _this2.uqrcodeOptions.errorCorrectLevel === 'string') {\n _this2.uqrcodeOptions.errorCorrectLevel = _uqrcode.default.errorCorrectLevel[_this2.uqrcodeOptions.errorCorrectLevel];\n }\n /* nvue不支持动态修改gcanvas尺寸,除nvue外,默认使用useDynamicSize */\n\n if (typeof _this2.options.useDynamicSize === 'undefined') {\n _this2.uqrcodeOptions.useDynamicSize = true;\n }\n\n /* 获取uQRCode实例 */\n qr = instance = new _uqrcode.default();\n /* 注册扩展 */\n _this2.plugins.forEach(function (p) {\n return qr.register(p.plugin);\n });\n /* 设置uQRCode选项 */\n qr.setOptions(_this2.uqrcodeOptions);\n /* 调用制作二维码方法 */\n qr.make();\n\n /* 获取canvas上下文 */\n canvasContext = null;\n if (_this2.canvasType === '2d') {\n /* 非微信小程序不支持2d,切换回uniapp获取canvas上下文方式 */\n canvasContext = _this2.canvasContext = uni.createCanvasContext(_this2.canvasId, _this2);\n /* 使用dynamicSize,可以解决小块间出现白线问题,再通过scale缩放至size,使其达到所设尺寸 */\n _this2.templateOptions.canvasWidth = qr.dynamicSize;\n _this2.templateOptions.canvasHeight = qr.dynamicSize;\n _this2.templateOptions.canvasTransform = \"scale(\".concat(_this2.templateOptions.size / _this2.templateOptions.canvasWidth, \", \").concat(_this2.templateOptions.size / _this2.templateOptions.canvasHeight, \")\");\n /* uniapp获取图像方式 */\n qr.loadImage = _this2.getLoadImage(function (src) {\n return new Promise(function (resolve, reject) {\n if (src.startsWith('http')) {\n uni.getImageInfo({\n src: src,\n success: function success(res) {\n resolve(res.path);\n },\n fail: function fail(err) {\n reject(err);\n }\n });\n } else {\n if (src.startsWith('.')) {\n __f__(\"error\", '[uQRCode]: 本地图片路径仅支持绝对路径!', \" at uni_modules/Sansnn-uQRCode/components/uqrcode/uqrcode.vue:528\");\n throw new Error('[uQRCode]: local image path only supports absolute path!');\n } else {\n resolve(src);\n }\n }\n });\n });\n } else {\n /* uniapp获取canvas上下文方式 */\n canvasContext = _this2.canvasContext = uni.createCanvasContext(_this2.canvasId, _this2);\n /* 使用dynamicSize,可以解决小块间出现白线问题,再通过scale缩放至size,使其达到所设尺寸 */\n _this2.templateOptions.canvasWidth = qr.dynamicSize;\n _this2.templateOptions.canvasHeight = qr.dynamicSize;\n _this2.templateOptions.canvasTransform = \"scale(\".concat(_this2.templateOptions.size / _this2.templateOptions.canvasWidth, \", \").concat(_this2.templateOptions.size / _this2.templateOptions.canvasHeight, \")\");\n /* uniapp获取图像方式 */\n qr.loadImage = _this2.getLoadImage(function (src) {\n return new Promise(function (resolve, reject) {\n /* getImageInfo在微信小程序的bug:本地路径返回路径会把开头的/或../移除,导致路径错误,解决方法:限制只能使用绝对路径 */\n if (src.startsWith('http')) {\n uni.getImageInfo({\n src: src,\n success: function success(res) {\n resolve(res.path);\n },\n fail: function fail(err) {\n reject(err);\n }\n });\n } else {\n if (src.startsWith('.')) {\n __f__(\"error\", '[uQRCode]: 本地图片路径仅支持绝对路径!', \" at uni_modules/Sansnn-uQRCode/components/uqrcode/uqrcode.vue:561\");\n throw new Error('[uQRCode]: local image path only supports absolute path!');\n } else {\n resolve(src);\n }\n }\n });\n });\n }\n\n /* 设置uQRCode实例的canvas上下文 */\n qr.canvasContext = canvasContext;\n /* 延时等待页面重新绘制完毕 */\n setTimeout(function () {\n /* 从插件获取具体要调用哪一个扩展函数 */\n var plugin = _this2.plugins.find(function (p) {\n return p.name == qr.style;\n });\n var drawCanvasName = plugin ? plugin.drawCanvas : 'drawCanvas';\n /* 虽然qr[drawCanvasName]是直接返回Promise的,但由于js内部this指向问题,故不能直接exec(qr[drawCanvasName])此方式执行,需要改成exec(() => qr[drawCanvasName]())才能正确获取this */\n var drawCanvas;\n if (_this2.queue) {\n drawCanvas = function drawCanvas() {\n return _queue.queueDraw.exec(function () {\n return qr[drawCanvasName]();\n });\n };\n // drawCanvas = () => queueDraw.exec(() => new Promise((resolve, reject) => {\n // setTimeout(() => {\n // qr[drawCanvasName]().then(resolve).catch(reject);\n // }, 1000);\n // }));\n } else {\n drawCanvas = function drawCanvas() {\n return qr[drawCanvasName]();\n };\n }\n /* 调用绘制方法将二维码图案绘制到canvas上 */\n drawCanvas().then(function () {\n if (_this2.drawDelegate) {\n /* 高频重绘纠正 */\n var delegate = _this2.drawDelegate;\n _this2.drawDelegate = undefined;\n delegate();\n } else {\n _this2.drawing = false;\n callback.success();\n }\n }).catch(function (err) {\n __f__(\"log\", err, \" at uni_modules/Sansnn-uQRCode/components/uqrcode/uqrcode.vue:633\");\n if (_this2.drawDelegate) {\n /* 高频重绘纠正 */\n var delegate = _this2.drawDelegate;\n _this2.drawDelegate = undefined;\n delegate();\n } else {\n _this2.drawing = false;\n _this2.isError = true;\n callback.fail(err);\n }\n }).finally(function () {\n callback.complete();\n });\n }, 300);\n case 38:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }))();\n },\n /**\n * 生成二维码\n */\n make: function make() {\n var _this3 = this;\n var callback = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.makeExecuted = true;\n this.makeing = true;\n this.isError = false;\n if (typeof callback.success != 'function') {\n callback.success = function () {};\n }\n if (typeof callback.fail != 'function') {\n callback.fail = function () {};\n }\n if (typeof callback.complete != 'function') {\n callback.complete = function () {};\n }\n this.resetCanvas(function () {\n clearTimeout(_this3.makeDelegate);\n _this3.makeDelegate = setTimeout(function () {\n _this3.draw({\n success: function success() {\n setTimeout(function () {\n callback.success();\n _this3.complete(true);\n }, 300);\n },\n fail: function fail(err) {\n callback.fail(err);\n _this3.error = err;\n _this3.complete(false, err.errMsg);\n },\n complete: function complete() {\n callback.complete();\n _this3.makeing = false;\n }\n });\n }, 300);\n });\n },\n /**\n * 重新生成\n */\n remake: function remake(callback) {\n this.$emit('change');\n this.make(callback);\n },\n /**\n * 生成完成\n */\n complete: function complete() {\n var success = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n var errMsg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n if (success) {\n this.$emit('complete', {\n success: success\n });\n } else {\n this.$emit('complete', {\n success: success,\n errMsg: errMsg\n });\n }\n },\n /**\n * 导出临时路径\n */\n toTempFilePath: function toTempFilePath() {\n var _this4 = this;\n var callback = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (typeof callback.success != 'function') {\n callback.success = function () {};\n }\n if (typeof callback.fail != 'function') {\n callback.fail = function () {};\n }\n if (typeof callback.complete != 'function') {\n callback.complete = function () {};\n }\n if (!this.makeExecuted) {\n __f__(\"error\", '[uQRCode]: make() 方法从未调用!请先成功调用 make() 后再进行操作。', \" at uni_modules/Sansnn-uQRCode/components/uqrcode/uqrcode.vue:728\");\n var err = {\n errMsg: '[uQRCode]: make() method has never been executed! please execute make() successfully before operating.'\n };\n callback.fail(err);\n callback.complete(err);\n return;\n }\n if (this.isError) {\n callback.fail(this.error);\n callback.complete(this.error);\n return;\n }\n if (this.makeing) {\n /* 如果还在生成状态,那当前操作将托管到委托,监听生成完成后再通过委托复调当前方法 */\n this.toTempFilePathDelegate = function () {\n _this4.toTempFilePath(callback);\n };\n return;\n } else {\n this.toTempFilePathDelegate = null;\n }\n if (this.canvasType === '2d') {} else {\n uni.canvasToTempFilePath({\n canvasId: this.canvasId,\n fileType: this.fileType,\n width: Number(this.templateOptions.canvasWidth),\n height: Number(this.templateOptions.canvasHeight),\n destWidth: Number(this.templateOptions.size),\n destHeight: Number(this.templateOptions.size),\n success: function success(res) {\n callback.success(res);\n },\n fail: function fail(err) {\n callback.fail(err);\n },\n complete: function complete() {\n callback.complete();\n }\n }, this);\n }\n },\n /**\n * 保存\n */\n save: function save() {\n var _this5 = this;\n var callback = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (typeof callback.success != 'function') {\n callback.success = function () {};\n }\n if (typeof callback.fail != 'function') {\n callback.fail = function () {};\n }\n if (typeof callback.complete != 'function') {\n callback.complete = function () {};\n }\n this.toTempFilePath({\n success: function success(res) {\n if (_this5.canvasType === '2d') {} else {\n uni.saveImageToPhotosAlbum({\n filePath: res.tempFilePath,\n success: function success(res1) {\n callback.success(res1);\n },\n fail: function fail(err1) {\n callback.fail(err1);\n },\n complete: function complete() {\n callback.complete();\n }\n });\n }\n },\n fail: function fail(err) {\n callback.fail(err);\n callback.complete(err);\n }\n });\n },\n /**\n * 注册click事件\n */\n onClick: function onClick(e) {\n this.$emit('click', e);\n },\n /**\n * 获取实例\n */\n getInstance: function getInstance() {\n return instance;\n },\n /**\n * 注册扩展,组件仅支持注册type为style的drawCanvas扩展\n * @param {Object} plugin\n */\n registerStyle: function registerStyle(plugin) {\n if (plugin.Type != 'style') {\n __f__(\"warn\", '[uQRCode]: registerStyle 仅支持注册 style 类型的扩展!', \" at uni_modules/Sansnn-uQRCode/components/uqrcode/uqrcode.vue:930\");\n return {\n errMsg: 'registerStyle 仅支持注册 style 类型的扩展!'\n };\n }\n if (typeof plugin === 'function') {\n this.plugins.push({\n plugin: plugin,\n name: plugin.Name,\n drawCanvas: plugin.DrawCanvas\n });\n }\n },\n getLoadImage: function getLoadImage(loadImage) {\n var that = this;\n if (typeof loadImage == 'function') {\n return function (src) {\n /* 判断是否是队列加载图片的 */\n if (that.isQueueLoadImage) {\n /* 解决iOS APP||NVUE同时绘制多个二维码导致图片丢失需使用队列 */\n return _queue.queueLoadImage.exec(function () {\n return new Promise(function (resolve, reject) {\n setTimeout(function () {\n var cache = _cache.cacheImageList.find(function (x) {\n return x.src == src;\n });\n if (cache) {\n resolve(cache.img);\n } else {\n loadImage(src).then(function (img) {\n _cache.cacheImageList.push({\n src: src,\n img: img\n });\n resolve(img);\n }).catch(function (err) {\n reject(err);\n });\n }\n }, 10);\n });\n });\n } else {\n return loadImage(src);\n }\n };\n } else {\n return function (src) {\n return Promise.resolve(src);\n };\n }\n }\n }\n};\n/**\n * 对象属性深度替换\n * @param {Object} o 原始对象/默认对象/被替换的对象\n * @param {Object} r 从这个对象里取值替换到o对象里\n * @return {Object} 替换后的新对象\n */\nexports.default = _default2;\nfunction deepReplace() {\n var o = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var r = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var c = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var obj;\n if (c) {\n // 从源替换\n obj = o;\n } else {\n // 不替换源,copy一份备份来替换\n obj = _objectSpread({}, o);\n }\n for (var k in r) {\n var vr = r[k];\n if (vr != undefined) {\n if (vr.constructor == Object) {\n obj[k] = this.deepReplace(obj[k], vr);\n } else if (vr.constructor == String && !vr) {\n obj[k] = obj[k];\n } else {\n obj[k] = vr;\n }\n }\n }\n return obj;\n}\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 15)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvU2Fuc25uLXVRUkNvZGUvY29tcG9uZW50cy91cXJjb2RlL3VxcmNvZGUudnVlIl0sIm5hbWVzIjpbIm5hbWUiLCJwcm9wcyIsImNhbnZhc0lkIiwidHlwZSIsInJlcXVpcmVkIiwidmFsdWUiLCJvcHRpb25zIiwiZGVmYXVsdCIsInNpemUiLCJzaXplVW5pdCIsImZpbGVUeXBlIiwic3RhcnQiLCJhdXRvIiwiaGlkZSIsInF1ZXVlIiwiaXNRdWV1ZUxvYWRJbWFnZSIsImxvYWRpbmciLCJoNVNhdmVJc0Rvd25sb2FkIiwiaDVEb3dubG9hZE5hbWUiLCJkYXRhIiwiY2FudmFzIiwiY2FudmFzVHlwZSIsImNhbnZhc0NvbnRleHQiLCJtYWtlRGVsZWdhdGUiLCJkcmF3RGVsZWdhdGUiLCJ0b1RlbXBGaWxlUGF0aERlbGVnYXRlIiwibWFrZUV4ZWN1dGVkIiwibWFrZWluZyIsImRyYXdpbmciLCJpc0Vycm9yIiwiZXJyb3IiLCJpc0g1U2F2ZSIsInRlbXBGaWxlUGF0aCIsInRlbXBsYXRlT3B0aW9ucyIsIndpZHRoIiwiaGVpZ2h0IiwiY2FudmFzV2lkdGgiLCJjYW52YXNIZWlnaHQiLCJjYW52YXNUcmFuc2Zvcm0iLCJjYW52YXNEaXNwbGF5IiwidXFyY29kZU9wdGlvbnMiLCJwbHVnaW5zIiwibWFrZWluZ1BhdHRlcm4iLCJ3YXRjaCIsImhhbmRsZXIiLCJpbW1lZGlhdGUiLCJkZWVwIiwibW91bnRlZCIsIm1ldGhvZHMiLCJnZXRUZW1wbGF0ZU9wdGlvbnMiLCJnZXRVcXJjb2RlT3B0aW9ucyIsInJlc2V0Q2FudmFzIiwiY2FsbGJhY2siLCJkcmF3IiwiaXNEcmF3RGVsZWdhdGUiLCJlcnJNc2ciLCJxciIsInVuaSIsInNyYyIsInN1Y2Nlc3MiLCJyZXNvbHZlIiwiZmFpbCIsInJlamVjdCIsInNldFRpbWVvdXQiLCJkcmF3Q2FudmFzIiwidGhlbiIsImRlbGVnYXRlIiwiY2F0Y2giLCJmaW5hbGx5IiwibWFrZSIsImNsZWFyVGltZW91dCIsImNvbXBsZXRlIiwicmVtYWtlIiwidG9UZW1wRmlsZVBhdGgiLCJkZXN0V2lkdGgiLCJkZXN0SGVpZ2h0Iiwic2F2ZSIsImZpbGVQYXRoIiwib25DbGljayIsImdldEluc3RhbmNlIiwicmVnaXN0ZXJTdHlsZSIsInBsdWdpbiIsImdldExvYWRJbWFnZSIsImxvYWRJbWFnZSIsImNhY2hlSW1hZ2VMaXN0IiwiaW1nIiwib2JqIiwibyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQTZEQTtBQVlBO0FBS0E7QUFFQTtBQUFBO0FBRUE7QUFBQSxnQkFFQTtFQUNBQTtFQUNBQztJQUNBO0FBQ0E7QUFDQTtJQUNBQztNQUNBQztNQUNBQztJQUNBOztJQUNBO0FBQ0E7QUFDQTtJQUNBQztNQUNBRjtJQUNBO0lBQ0E7QUFDQTtBQUNBO0lBQ0FHO01BQ0FIO01BQ0FJO1FBQ0E7TUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUNBO0lBQ0FDO01BQ0FMO01BQ0FJO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQUU7TUFDQU47TUFDQUk7SUFDQTtJQUNBO0FBQ0E7QUFDQTtJQUNBRztNQUNBUDtNQUNBSTtJQUNBO0lBQ0E7QUFDQTtBQUNBO0lBQ0FJO01BQ0FSO01BQ0FJO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQUs7TUFDQVQ7TUFDQUk7SUFDQTtJQUNBO0FBQ0E7QUFDQTtJQUNBTTtNQUNBVjtNQUNBSTtJQUNBO0lBQ0E7QUFDQTtBQUNBO0FBQ0E7SUFDQUo7TUFDQUE7TUFDQUk7UUFLQTtNQUVBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQU87TUFDQVg7TUFDQUk7SUFDQTtJQUNBO0FBQ0E7QUFDQTtJQUNBUTtNQUNBWjtNQUNBSTtJQUNBO0lBQ0E7QUFDQTtBQUNBO0lBQ0FTO01BQ0FiO01BQ0FJO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQVU7TUFDQWQ7TUFDQUk7SUFDQTtJQUNBO0FBQ0E7QUFDQTtJQUNBVztNQUNBZjtNQUNBSTtJQUNBO0VBQ0E7RUFDQVk7SUFDQTtNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztRQUNBekI7UUFDQTBCO1FBQUE7UUFDQUM7UUFDQUM7UUFBQTtRQUNBQztRQUNBQztRQUNBQztNQUNBO01BQ0FDO1FBQ0FyQjtNQUNBO01BQ0FzQjtNQUNBQyxpQkFDQSxDQUNBLGtFQUNBLGtFQUNBLGtFQUNBLGtFQUNBLGtFQUNBLGtFQUNBLGtFQUNBLDhEQUNBLDhEQUNBLDZEQUNBLEVBQ0EsQ0FDQSw4REFDQSw4REFDQSw4REFDQSxrRUFDQSxrRUFDQSxrRUFDQSxxRUFDQSwrREFDQSwrREFDQSw4REFDQSxFQUNBLENBQ0EsOERBQ0EsOERBQ0EsOERBQ0Esa0VBQ0Esa0VBQ0EsaUVBQ0EsaUVBQ0EsaUVBQ0Esa0VBQ0EsaUVBQ0EsRUFDQSxDQUNBLDhEQUNBLDhEQUNBLDhEQUNBLHFFQUNBLHFFQUNBLHFFQUNBLHFFQUNBLDhEQUNBLDhEQUNBLDZEQUNBO0lBRUE7RUFDQTtFQUNBQztJQUNBeEM7TUFDQXlDO1FBQ0E7UUFDQTtVQUNBO1FBQ0E7VUFDQTtRQUNBO01BQ0E7TUFDQUM7SUFDQTtJQUNBeEM7TUFDQXVDO1FBQ0E7VUFDQTtRQUNBO01BQ0E7SUFDQTtJQUNBcEM7TUFDQW9DO1FBQ0E7VUFDQTtRQUNBO01BQ0E7SUFDQTtJQUNBdEM7TUFDQXNDO1FBQ0E7VUFDQTtRQUNBO01BQ0E7TUFDQUU7SUFDQTtJQUNBbkI7TUFDQWlCO1FBQ0E7VUFDQTtZQUNBO1VBQ0E7UUFDQTtNQUNBO0lBQ0E7RUFDQTtFQUNBRztJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtNQUVBLDhKQUNBO0lBRUE7TUFDQSw4SkFDQTtJQUNBO0lBQ0E7TUFDQTtJQUNBO0VBQ0E7RUFDQUM7SUFDQTtBQUNBO0FBQ0E7SUFDQUM7TUFDQTtNQUNBO1FBQ0F6QztRQUNBMEI7UUFDQUM7TUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUNBO0lBQ0FlO01BQ0E7UUFDQS9CO1FBQ0FYO01BQ0E7SUFDQTtJQUNBO0FBQ0E7QUFDQTtJQUNBMkM7TUFBQTtNQUNBO01BQ0E7UUFDQTtRQUNBO1VBQ0FDO1FBQ0E7TUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUNBO0lBQ0FDO01BQUE7UUFBQTtNQUFBO1FBQUE7UUFBQTtVQUFBO1lBQUE7Y0FBQTtnQkFBQUQ7Z0JBQUFFO2dCQUNBO2tCQUNBRjtnQkFDQTtnQkFDQTtrQkFDQUE7Z0JBQ0E7Z0JBQ0E7a0JBQ0FBO2dCQUNBO2dCQUFBLEtBRUE7a0JBQUE7a0JBQUE7Z0JBQUE7Z0JBQUEsSUFDQUU7a0JBQUE7a0JBQUE7Z0JBQUE7Z0JBQ0E7a0JBQ0E7Z0JBQ0E7Z0JBQUE7Y0FBQTtnQkFBQTtnQkFBQTtjQUFBO2dCQUlBO2NBQUE7Z0JBQUEsSUFHQTtrQkFBQTtrQkFBQTtnQkFBQTtnQkFDQTtnQkFDQTtnQkFDQTtnQkFDQUY7a0JBQ0FHO2dCQUNBO2dCQUNBSDtrQkFDQUc7Z0JBQ0E7Z0JBQUE7Y0FBQTtnQkFBQSxJQUdBO2tCQUFBO2tCQUFBO2dCQUFBO2dCQUNBO2dCQUNBO2dCQUNBO2dCQUNBSDtrQkFDQUc7Z0JBQ0E7Z0JBQ0FIO2tCQUNBRztnQkFDQTtnQkFBQTtjQUFBO2dCQUlBO2dCQUNBO2dCQUNBO2dCQUNBO2dCQUNBO2dCQUNBO2tCQUNBO2dCQUNBO2dCQUNBOztnQkFFQTtrQkFDQTtnQkFDQTs7Z0JBV0E7Z0JBQ0FDO2dCQUNBO2dCQUNBO2tCQUFBO2dCQUFBO2dCQUNBO2dCQUNBQTtnQkFDQTtnQkFDQUE7O2dCQUVBO2dCQUNBbEM7Z0JBRUE7a0JBMENBO2tCQUNBQTtrQkFDQTtrQkFDQTtrQkFDQTtrQkFDQSxzS0FDQTtrQkFDQTtrQkFDQWtDO29CQUNBO3NCQUNBO3dCQUNBQzswQkFDQUM7MEJBQ0FDOzRCQUNBQzswQkFDQTswQkFDQUM7NEJBQ0FDOzBCQUNBO3dCQUNBO3NCQUNBO3dCQUNBOzBCQUNBOzBCQUNBO3dCQUNBOzBCQUNBRjt3QkFDQTtzQkFDQTtvQkFDQTtrQkFDQTtnQkFFQTtrQkFDQTtrQkFDQXRDO2tCQUNBO2tCQUNBO2tCQUNBO2tCQUNBLHNLQUNBO2tCQUNBO2tCQUNBa0M7b0JBQ0E7c0JBQ0E7c0JBQ0E7d0JBQ0FDOzBCQUNBQzswQkFDQUM7NEJBQ0FDOzBCQUNBOzBCQUNBQzs0QkFDQUM7MEJBQ0E7d0JBQ0E7c0JBQ0E7d0JBQ0E7MEJBQ0E7MEJBQ0E7d0JBQ0E7MEJBQ0FGO3dCQUNBO3NCQUNBO29CQUNBO2tCQUNBO2dCQUNBOztnQkErQkE7Z0JBQ0FKO2dCQUNBO2dCQUNBTztrQkFDQTtrQkFDQTtvQkFBQTtrQkFBQTtrQkFDQTtrQkFDQTtrQkFDQTtrQkFDQTtvQkFDQUM7c0JBQUE7d0JBQUE7c0JBQUE7b0JBQUE7b0JBQ0E7b0JBQ0E7b0JBQ0E7b0JBQ0E7b0JBQ0E7a0JBQ0E7b0JBQ0FBO3NCQUFBO29CQUFBO2tCQUNBO2tCQUNBO2tCQUNBQSxhQUNBQztvQkFDQTtzQkFDQTtzQkFDQTtzQkFDQTtzQkFDQUM7b0JBQ0E7c0JBQ0E7c0JBQ0FkO29CQUNBO2tCQUNBLEdBQ0FlO29CQUNBO29CQUNBO3NCQUNBO3NCQUNBO3NCQUNBO3NCQUNBRDtvQkFDQTtzQkFDQTtzQkFDQTtzQkFDQWQ7b0JBQ0E7a0JBQ0EsR0FDQWdCO29CQUNBaEI7a0JBQ0E7Z0JBQ0E7Y0FBQTtjQUFBO2dCQUFBO1lBQUE7VUFBQTtRQUFBO01BQUE7SUFDQTtJQUNBO0FBQ0E7QUFDQTtJQUNBaUI7TUFBQTtNQUFBO01BQ0E7TUFDQTtNQUNBO01BRUE7UUFDQWpCO01BQ0E7TUFDQTtRQUNBQTtNQUNBO01BQ0E7UUFDQUE7TUFDQTtNQUVBO1FBQ0FrQjtRQUNBO1VBQ0E7WUFDQVg7Y0FDQUk7Z0JBQ0FYO2dCQUNBO2NBQ0E7WUFDQTtZQUNBUztjQUNBVDtjQUNBO2NBQ0E7WUFDQTtZQUNBbUI7Y0FDQW5CO2NBQ0E7WUFDQTtVQUNBO1FBQ0E7TUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUNBO0lBQ0FvQjtNQUNBO01BQ0E7SUFDQTtJQUNBO0FBQ0E7QUFDQTtJQUNBRDtNQUFBO01BQUE7TUFDQTtRQUNBO1VBQ0FaO1FBQ0E7TUFDQTtRQUNBO1VBQ0FBO1VBQ0FKO1FBQ0E7TUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUNBO0lBQ0FrQjtNQUFBO01BQUE7TUFDQTtRQUNBckI7TUFDQTtNQUNBO1FBQ0FBO01BQ0E7TUFDQTtRQUNBQTtNQUNBO01BRUE7UUFDQTtRQUNBO1VBQ0FHO1FBQ0E7UUFDQUg7UUFDQUE7UUFDQTtNQUNBO01BRUE7UUFDQUE7UUFDQUE7UUFDQTtNQUNBO01BRUE7UUFDQTtRQUNBO1VBQ0E7UUFDQTtRQUNBO01BQ0E7UUFDQTtNQUNBO01BR0EsK0JBc0JBO1FBQ0FLO1VBQ0F2RDtVQUNBUTtVQUNBd0I7VUFDQUM7VUFDQXVDO1VBQ0FDO1VBQ0FoQjtZQUNBUDtVQUNBO1VBQ0FTO1lBQ0FUO1VBQ0E7VUFDQW1CO1lBQ0FuQjtVQUNBO1FBQ0EsR0FDQSxLQUNBO01BQ0E7SUFtQkE7SUFDQTtBQUNBO0FBQ0E7SUFDQXdCO01BQUE7TUFBQTtNQUNBO1FBQ0F4QjtNQUNBO01BQ0E7UUFDQUE7TUFDQTtNQUNBO1FBQ0FBO01BQ0E7TUFFQTtRQUNBTztVQUVBLGlDQXFDQTtZQUNBRjtjQUNBb0I7Y0FDQWxCO2dCQUNBUDtjQUNBO2NBQ0FTO2dCQUNBVDtjQUNBO2NBQ0FtQjtnQkFDQW5CO2NBQ0E7WUFDQTtVQUNBO1FBc0JBO1FBQ0FTO1VBQ0FUO1VBQ0FBO1FBQ0E7TUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUNBO0lBQ0EwQjtNQUNBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQUM7TUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUNBO0FBQ0E7SUFDQUM7TUFDQTtRQUNBO1FBQ0E7VUFDQXpCO1FBQ0E7TUFDQTtNQUNBO1FBQ0E7VUFDQTBCO1VBQ0FqRjtVQUNBZ0U7UUFDQTtNQUNBO0lBQ0E7SUFDQWtCO01BQ0E7TUFDQTtRQUNBO1VBQ0E7VUFDQTtZQUNBO1lBQ0E7Y0FDQTtnQkFDQW5CO2tCQUNBO29CQUFBO2tCQUFBO2tCQUNBO29CQUNBSDtrQkFDQTtvQkFDQXVCLGVBQ0FsQjtzQkFDQW1CO3dCQUNBMUI7d0JBQ0EyQjtzQkFDQTtzQkFDQXpCO29CQUNBLEdBQ0FPO3NCQUNBTDtvQkFDQTtrQkFDQTtnQkFDQTtjQUNBO1lBQ0E7VUFDQTtZQUNBO1VBQ0E7UUFDQTtNQUNBO1FBQ0E7VUFDQTtRQUNBO01BQ0E7SUFDQTtFQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFMQTtBQU1BO0VBQUE7RUFBQTtFQUFBO0VBQ0E7RUFDQTtJQUNBO0lBQ0F3QjtFQUNBO0lBQ0E7SUFDQUEsd0JBQ0FDLEVBQ0E7RUFDQTtFQUNBO0lBQ0E7SUFDQTtNQUNBO1FBQ0FEO01BQ0E7UUFDQUE7TUFDQTtRQUNBQTtNQUNBO0lBQ0E7RUFDQTtFQUNBO0FBQ0EsQyIsImZpbGUiOiIxNC5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuICA8dmlldyBjbGFzcz1cInVxcmNvZGVcIiA6Y2xhc3M9XCJ7ICd1cXJjb2RlLWhpZGUnOiBoaWRlIH1cIiA6c3R5bGU9XCJ7IHdpZHRoOiBgJHt0ZW1wbGF0ZU9wdGlvbnMud2lkdGh9cHhgLCBoZWlnaHQ6IGAke3RlbXBsYXRlT3B0aW9ucy5oZWlnaHR9cHhgIH1cIj5cclxuICAgIDx2aWV3IGNsYXNzPVwidXFyY29kZS1jYW52YXMtd3JhcHBlclwiPlxyXG4gICAgICA8IS0tIOeUu+W4gyAtLT5cclxuICAgICAgPCEtLSAjaWZuZGVmIEFQUC1OVlVFIC0tPlxyXG4gICAgICA8Y2FudmFzIGNsYXNzPVwidXFyY29kZS1jYW52YXNcIiA6aWQ9XCJjYW52YXNJZFwiIDpjYW52YXMtaWQ9XCJjYW52YXNJZFwiIDp0eXBlPVwiY2FudmFzVHlwZVwiIDpzdHlsZT1cIntcclxuICAgICAgICAgIHdpZHRoOiBgJHt0ZW1wbGF0ZU9wdGlvbnMuY2FudmFzV2lkdGh9cHhgLFxyXG4gICAgICAgICAgaGVpZ2h0OiBgJHt0ZW1wbGF0ZU9wdGlvbnMuY2FudmFzSGVpZ2h0fXB4YCxcclxuICAgICAgICAgIHRyYW5zZm9ybTogdGVtcGxhdGVPcHRpb25zLmNhbnZhc1RyYW5zZm9ybVxyXG4gICAgICAgIH1cIiB2LWlmPVwidGVtcGxhdGVPcHRpb25zLmNhbnZhc0Rpc3BsYXlcIiBAY2xpY2s9XCJvbkNsaWNrXCI+PC9jYW52YXM+XHJcbiAgICAgIDwhLS0gI2VuZGlmIC0tPlxyXG5cclxuICAgICAgPCEtLSBudnVl55SoZ2NhbnZhcyAtLT5cclxuICAgICAgPCEtLSAjaWZkZWYgQVBQLU5WVUUgLS0+XHJcbiAgICAgIDxnY2FudmFzIGNsYXNzPVwidXFyY29kZS1jYW52YXNcIiByZWY9XCJnY2FudmFzXCIgOnN0eWxlPVwie1xyXG4gICAgICAgICAgd2lkdGg6IGAke3RlbXBsYXRlT3B0aW9ucy5jYW52YXNXaWR0aH1weGAsXHJcbiAgICAgICAgICBoZWlnaHQ6IGAke3RlbXBsYXRlT3B0aW9ucy5jYW52YXNIZWlnaHR9cHhgXHJcbiAgICAgICAgfVwiIHYtaWY9XCJ0ZW1wbGF0ZU9wdGlvbnMuY2FudmFzRGlzcGxheVwiIEBjbGljaz1cIm9uQ2xpY2tcIj48L2djYW52YXM+XHJcbiAgICAgIDwhLS0gI2VuZGlmIC0tPlxyXG4gICAgPC92aWV3PlxyXG5cclxuICAgIDwhLS0g5Yqg6L295pWI5p6cIC0tPlxyXG4gICAgPHZpZXcgY2xhc3M9XCJ1cXJjb2RlLW1ha2VpbmdcIiB2LWlmPVwibG9hZGluZyA9PT0gdW5kZWZpbmVkID8gbWFrZWluZyA6IGxvYWRpbmdcIj5cclxuICAgICAgPHNsb3QgbmFtZT1cImxvYWRpbmdcIj5cclxuICAgICAgICA8aW1hZ2UgY2xhc3M9XCJ1cXJjb2RlLW1ha2VpbmctaW1hZ2VcIiA6c3R5bGU9XCJ7IHdpZHRoOiBgJHt0ZW1wbGF0ZU9wdGlvbnMuc2l6ZSAvIDR9cHhgLCBoZWlnaHQ6IGAke3RlbXBsYXRlT3B0aW9ucy5zaXplIC8gNH1weGAgfVwiXHJcbiAgICAgICAgICBzcmM9XCJkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhBQUVBQWZJRUFPSGg0U1NzV3VEZzROM2QzZi8vL3dBQUFBQUFBQUFBQUNIL0MwNUZWRk5EUVZCRk1pNHdBd0VBQUFBaC93dFlUVkFnUkdGMFlWaE5VRHcvZUhCaFkydGxkQ0JpWldkcGJqMGk3N3UvSWlCcFpEMGlWelZOTUUxd1EyVm9hVWg2Y21WVGVrNVVZM3ByWXpsa0lqOCtJRHg0T25odGNHMWxkR0VnZUcxc2JuTTZlRDBpWVdSdlltVTZibk02YldWMFlTOGlJSGc2ZUcxd2RHczlJa0ZrYjJKbElGaE5VQ0JEYjNKbElEWXVNQzFqTURBeUlEYzVMakUyTkRRNE9Dd2dNakF5TUM4d055OHhNQzB5TWpvd05qbzFNeUFnSUNBZ0lDQWdJajRnUEhKa1pqcFNSRVlnZUcxc2JuTTZjbVJtUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMekF5THpJeUxYSmtaaTF6ZVc1MFlYZ3Ribk1qSWo0Z1BISmtaanBFWlhOamNtbHdkR2x2YmlCeVpHWTZZV0p2ZFhROUlpSWdlRzFzYm5NNmVHMXdQU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNoaGNDOHhMakF2SWlCNGJXeHVjenA0YlhCTlRUMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzk0WVhBdk1TNHdMMjF0THlJZ2VHMXNibk02YzNSU1pXWTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzl6Vkhsd1pTOVNaWE52ZFhKalpWSmxaaU1pSUhodGNEcERjbVZoZEc5eVZHOXZiRDBpUVdSdlltVWdVR2h2ZEc5emFHOXdJREl5TGpBZ0tGZHBibVJ2ZDNNcElpQjRiWEJOVFRwSmJuTjBZVzVqWlVsRVBTSjRiWEF1YVdsa09qQXlPRGhHTXpNNFJERXdNVEV4UlVNNE1EaENSa1ZCUWtFMlFVWkRRemt3SWlCNGJYQk5UVHBFYjJOMWJXVnVkRWxFUFNKNGJYQXVaR2xrT2pBeU9EaEdNek01UkRFd01URXhSVU00TURoQ1JrVkJRa0UyUVVaRFF6a3dJajRnUEhodGNFMU5Pa1JsY21sMlpXUkdjbTl0SUhOMFVtVm1PbWx1YzNSaGJtTmxTVVE5SW5odGNDNXBhV1E2TURJNE9FWXpNelpFTVRBeE1URkZRemd3T0VKR1JVRkNRVFpCUmtORE9UQWlJSE4wVW1WbU9tUnZZM1Z0Wlc1MFNVUTlJbmh0Y0M1a2FXUTZNREk0T0VZek16ZEVNVEF4TVRGRlF6Z3dPRUpHUlVGQ1FUWkJSa05ET1RBaUx6NGdQQzl5WkdZNlJHVnpZM0pwY0hScGIyNCtJRHd2Y21SbU9sSkVSajRnUEM5NE9uaHRjRzFsZEdFK0lEdy9lSEJoWTJ0bGRDQmxibVE5SW5JaVB6NEIvLzc5L1B2NitmajM5dlgwOC9MeDhPL3U3ZXpyNnVubzUrYmw1T1BpNGVEZjN0M2MyOXJaMk5mVzFkVFQwdEhRejg3TnpNdkt5Y2pIeHNYRXc4TEJ3TCsrdmJ5N3VybTR0N2ExdExPeXNiQ3ZycTJzcTZxcHFLZW1wYVNqb3FHZ241NmRuSnVhbVppWGxwV1VrNUtSa0krT2pZeUxpb21JaDRhRmhJT0NnWUIvZm4xOGUzcDVlSGQyZFhSemNuRndiMjV0Ykd0cWFXaG5abVZrWTJKaFlGOWVYVnhiV2xsWVYxWlZWRk5TVVZCUFRrMU1TMHBKU0VkR1JVUkRRa0ZBUHo0OVBEczZPVGczTmpVME16SXhNQzh1TFN3cktpa29KeVlsSkNNaUlTQWZIaDBjR3hvWkdCY1dGUlFURWhFUUR3NE5EQXNLQ1FnSEJnVUVBd0lCQUFBaCtRUUZGQUFFQUN3QUFBQUFBQUVBQVFBRC8waTYzUDR3eWttcnZUanJ6YnYvWUNpT1pHbWVhS3F1Yk91K2NDelBkRzNmZUs3dmZPLy93S0J3U0N3YWo4aWtjc2xzT3AvUXFIUktyVnF2Mkt4MnkrMTZ2K0N3ZUV3dW04L290SHJOYnJ2ZjhMaDhUcS9iNy9pOGZzL3YrLytBZ1lLRGhJV0doNGlKaW91TWpZNlBrSkdTazVTVmxwZVltWnFibkoyZW42Q2hvcU9rcGFhbmlnQ3FxNnl0cmlldXNiSVNBYlcydDdpNXVydTh2YjY2YkxMQ3JMRER3N1MveWNyTHpMWEJ4c0xGMExISXpkYlh6Yy9UcnliYjFCSFk0ZUs5MnQ2cjB1YXExZVBzNCtYcDZQRGc3ZlRoNytieCtQUDEvTXozM3ZrQTd1dEgwTmUvYlFFUkRpeklNTmZCYVFraExteElNY0JEYUJFeFRxekk4UCtpc1l3Zk4zSWs2UEZZdDNUblJJN2tWekxhU1pRQTFxMHMySExXUzVReVovYXIrYTBFVEhVcWRiTGp5YzNuejV4QzZSRnRCZElraEtRMDEveU1lVlBlVTZnN3BSNnRxdThxMW5wTGlYRVY2UFZydTdBcGpjSkVxdXlFUGExcnh5b3NtODNFV3pWVG03cWs2ODh1TnJSQTFlSU1hdER2TmNCVUJWdDljSmRFWXpSNTVVcmt1OHp0WDdpREZYZGxmTG5FNHpPUk5aUGxmTml3TmNSNmJWSnVhN291M3EyaTU1SSszYnJ2NjdpeEo4OTI3Ymh6bXRBa2dEdjRISUo0R2VFaWtETXcvb0g1R09VZ29DdHczb0Y2R09rZXNGdmZzUDBMOWc3YWZZL283dVU3aC9DbFBZc0hEVHQ0KytIcmk4Yy8vajU1L2VYem0rZC9majk2LytuLysxVVg0SFgvWlZjZ2VSZ2d5SVY1RzZCSG15Y01hdUFnYjV4RW1NR0V0blZpSVFZWVZ2YkpoaGQweUJxRUJZSjM0SUNVZ0dpQmlNbUFvbUlGTFA3aVlvbm5uWmllaGpRMmFPT0RPRTdsNDQ5TUVSYlZhaTFpQnVTUk82N0VWcEczSWVua1l2RHB0S1NNUmo1cFpVaEVOalJsWVUxZTZhVnF1NDIwSlRsVmZtbG1ZR0Z5TkNZdmlKMlpXWm9WcmJsTG0yNXVGdVZNY2dKVFpwMVg1Z21Xa0d6dXllZVRmaW9GNkp5Q0RvcGtvV2NkcW1lWGlscko2RkNPT3BSb3BEOU82azZsdU5DSjZWNXdVcVNwUlpkK21xU1luTjdpcWFsRmhhcGxxcmFzeXFwWVdYWUVxek9sem1wbkEwbU5LcXV1aWJscWE2MWtRZ3JzcVdyZVNxcXgvOGUrZWFlU3lxSWk3YlRVVm12dHRkaG1xKzIyM0hicjdiZWpDQ0R1dU9TV2ErNjU2S2FyN3JyblNqREF1L0RHSysrODlOWnI3NzM0MHZzcnUvejIyMjRFK1FZczhNQUV3N3V2dndqMzYyN0JERGZNOE1FSlI1enV3ZzVYYkhHOUVFdXNNYmtVWCt6eHhSbHZ2SEhISDVmOGNLNGlwK3d2eVNhM0hIRElLaWZNc3NzMFk0eHl6RGlqTzNQTlBCdDhjODVBajd0enp6ekRIUFM2UXhOTnM5RkhUd3l3MGxBUHdIVFQvMElRTmRSVFUxMXUwbGQvbkxYV1FqL2RkZEUvZzUweTEyTmIvTFhaYUtmdDhOcGd0KzMyeWN5YWZiVGNjeE1NdDlaNDV5M3czbFQzN1hlK3FFbkdydUR4emloeGFsVS9VTEhpRVROdUx1SStrN2k0NGY5SWkwMTNqNUZqcmk3bDcwSXVzK2RPVy8zMmh4cEx2clhtQll1T3NPb2NzNjQzNnBmbmRyanNBN3UrTXVrNjQvNDM3WjNibnJucERldXVNTytOTy9BNDhLTUwvN252THpQL092S1RRMCs0OUxzN1g3cmpwMXNldkh1MWMxODg5c2RyM3p2eG0xZVlPdldybzk4NitmekNIcmI3czN2ZlBQamZLOTg5NS9lUE1MTDErREtlM2M2SHYvZlpiNERQTTUrKzRJZkE5aFd3ZnZ4cklBSDl0ei8xU1RDQkQ4d2RBeThvTmZZbGJvTVhsRi9vUUNoQkVYYndnQnlNblFMbkpjQVVtckNGSERUaDRGaFlOclo1Y0lZMnE1c0xiNGhER3Vvd2hqenM0UWQvR01JZ0NuR0VSQ3loRVk4SU9BeFM4SWdWWkU4S2syY2ZLSTR2aVEyVUlSUEFheGkzSlFxeGlYY0RvQlh0VmJnVk9sQi9ZelRnYjlablJoV0tMNDBheENJVlEvQS8rc0V4Z0Z3VTF3dkZlTWNocmpGOFQ4eGZBL29ZeHo4S2tvNXNmQ01oNzFYR0RKWlBrWXZNb1NIN1Y4VkRMaUNTMTVOajlkbzRQMGhpVWw2TkRDUWxHZkJKUm9McmxLaE1wU3BYeWNwV3V2S1ZzSXlsTEdkSnkxcmE4cGE0ektVdWQ4bkxYdnJ5bDhBTXBqQ0hTY3hpR3ZPWXlFeW1NcGZKekdZNjg1blFqS1kwcDBuTmFscnptdGpNcGphM3ljMXVldk9iNEF5bk9NZEpod1FBQUNINUJBVVVBQVFBTERJQU1nQ2NBSndBQUFQL0tMcmNUakRLU1d0ME9Gc0l1djlnS0k1a2FaNlp0cTFzNmlvcktzOTAvYXBzVHQxcGJQL0FJQSttSzE2R2o0MXd5V3dhbjhpa3BVbXRScC9HYU1ObjdYcTNXSjJXd2YyYXJXSHhtRGc5dTZucDNKcGRlZHVYOGRhOGZPOGo4M3hYU242RVE0Q0RhNEdGaTJDSE8zdUlqSkpram8rSmtaT1RsWlpqaXBtRm14TnpBcDZmZnFFU282V21kNmhIbDIyc2pLNGNrTEd5b0xTcW1MaDl0QVM3dDcyK3VyWjFRTCtMeWNhY05jdUV6NTI4TTlIRXJzSEhQOVd0eGJEWk50dDI0WWJUTXVOdTV6ZXJKdWxtN1M3ckplOWU4empmenQybitWcnhKUFZvK3dRSm8vR3ZTc0ZHOXdnR0ZMZVEzRUJxRGRGRlZGY094VUVuRTEvMEczR1IvMGxIT3MwVVhzczEwbHRJaUNYMXBlUlg4Y1JISVM4M2luaUpMVlJOVWNneWZvblprcDFPZWovdG5UVDNLODdOU2tkZmdTdWFKdWtocDhCeU1zVUNOUS9VSUZQRFZEWEtES2UyckZDNkloV3JGQi9ZSWx1YmtxMzE5YXdhazV1dVNuV3JCKzVZdTJWRjBwVXBCWlhjdG50N2pocU1sNjNLaE1NSVUzejRobTlpeFk0eE1uNnNHRU5rajRJcFZ5YVZ1Y3RsemRJbW4va01XaURpeHAxTC96MDhWUFZtMGxoVHV3NTlXcUxvMllOaHoyMk5PN2RzT0w5Nzg5QU5tTGZ3d2xHaEJUOE9iemtlNTh3dFE0OTlPL3FmNmJ1OVd2ZGRIV2ozN1JxeEY5Y09Icmt5OFp2VHMvd09rSDJJd1BEank1OVB2Nzc5Ky9qejY5L1B2Ny8vLy84QUJpamdnQVFXYU9DQkNDYW80RlFETk9qZ2d4QkdLT0dFRkZab29ZUXJCS0RoaGh4MjZPR0hJSVlvNG9nZlhtamlpU2ltNkdDR0pMYm80b3N3YXFqaWpEVFN5R0tNT09ZWVk0MDg5bGpoalRvR0tXU0pQaFpwSkpCREppbWtrVXoyaUtTU1VPN1k1SlFxUGhubGxTUlNxZVdKVm1McEpaRmJoamxobDErV0thT1lhRUpJcHBsZnB1bG1nMnV5aWVXYmJzWXBaNVIwcG1ubm5Vcm1pZWFlZkE3cHA1aUFCaHJrb0dFV2FtaU9pRzZwNktKU05qcmxvNUMrS0NtVmxGYmE0cVdUYnFDcGw1dzJtZW1uSXZMSWt3VkI2bWRxVUJoNnFxT3FOWjVhUWFyNXJicFNpcU1HQUt1TnJFYVk2NjR6eWtvQnJmalo2bGVzcnVZSWJKWC92YXFaTEk3TDR0cnNnNy9XaXV5dEtGWmI3TFhIOG9ycXE5WjYyMjJ3ejhZWWJiYlRybGd1ak9keW1TNmM2NzdZcm9uQ1RrRHNmY2JheE8ydzRHNHJycjcvMnRzdnZ2dkdWYkFFOTlxWHI4RUJJenl3d2djN3NyRER5b1pMTHJidWZsdXh2NkVPVUZUQzlYV3NMaTBnMHljeXZDUS9IUExKSDZ0c01zdS9sRHpmeVI3SDdQTE1NS2U4TWNFaXQ3d3p4RDNiL1BQS1Flc01yY1doK2t4cW56bTdzalNlVGFQeU5KUTBLejMxb1ZHSGNuV1NWUXU5dFk1ZEcvMDFqbUU3UFRiWVdXOXlOdHBGbTcxMnBEUTNITUhiWkVmOGxOMEUwQTAzc3hqVEc2L2VJVTRzTWQ2QVc0cTNWWVFYdnVuaFhNa05nZUtMT3c2STRJOURQaUxsR1pNbmJubmdqS3NsK2VhbGRxNlY1cUI3aURuaW41ZitZUUlBSWZrRUJSUUFCQUFzTWdBeUFKd0FuQUFBQS84NHV0eE9NTXBKYTNRNFd5aTYvMkFvam1ScG5wbTJyV3pxS2lzcXozVDlxbXhPM1dscy84QWdENllyWG9hUGpYREpiQnFmeUtTbFNhMUduOFpvdzJmdGVyZFluWmJCL1pxdFlmR1lPRDI3cWVuY21sMTUyNWZ4MXJ4ODd5UHpmRmRLZm9SRGdJTnJnWVdMWUljN2U0aU1rbVNPajRtUms1T1ZsbU9LbVlXYkUzTURucDkrb1JLanBhWjNxRWVYYmF5TXJoeVFzYktndEtxWXVIMjBCTHUzdmI2NnRuVkF2NHZKeHB3MXk0VFBuYnd6MGNTdXdjYy8xYTNGc05rMjIzYmhodE15NDI3bk42c202V2J0THVzbDcxN3pPTi9PM2FmNVd2RWs5V2o3QkFtajhhOUt3VWIzQ0FZVXQ1RGNRR29OMFVWVVZ3N0ZRU2NUWC9RYmNaSC9TVWM2elJSZXl6WFNXMGlJSmZXbDVGZnh4RWNoTHplS2VJa3RWRTFSeURKK2lkbVNuVTU2UCsyZE5QY3J6czFLUjErQks1b202U0dud0hJeXhRSTFEOVFnVThOVU5jb01wN2FzVUxvaUZhc1VIOWdpVzV1U3JmWDFyQnFUbTY1S2Rhc0g3bGk3WlVYU2xTa0ZsZHkyZTN1T0dveVhyY3FFd3doVGZQaUdiMkxGampFeWZxd1lRMlNQZ2lsWEpwVzV5MlhOMGlhZitReGFJT0xHblV2L1BUeFU5V2JTV0ZPN0RuMWFvdWpaZzJIUGJZMDd0Mnc0djN2ejBBMll0L0RDVWFFRlB3NXZPUjduekMxRGozMDcrcC9wdTcxYTkxMGRhUGZ0R3JFWDF3NGV1VEx4bTlPei9BNlFmWWpBOE9QTG4wKy92djM3K1BQcjM4Ky92Ly8vL3dBR0tPQ0FCQlpvNElFSUpxamdWQUUwNk9DREVFWW80WVFVVm1paGhNUUJvT0dHSEhibzRZY2doc2poaFNTV2FPS0pEbVlvNG9vc3RxZ2hpakRHR0tPS0x0Wm80NHN5NXFnamhUVGU2T09LT3dZcFpBQTkvbWlraDBNbUtXT1JSellKZ0pKUW5zaWtrMFpHYWVXRlUxTHA0NVZjVHBpbGxqWjJLZWFEWDRMcDRwaG9sbWttaTJpT3FlYWFJcllwNXB0d2dpaG5sM1RXaWVTZFYrYXA1NGg4V3Vubm56Z0dDdVdnaEJvYUphSi9Lbm9vZW9UVzZLaVNqT281YVpLVjFwbmpMNXRDcDErbnJvQmFHNHVmTGttTHFNYUpXT3FNcDVycVhvZXJ3c2lwcTZPdUdDdUtzN0w2S29lM1N0bXFycldxbWgrcW14Q2JpcEc5bXBpcnJQK2VEa3RyS01ibVZXT3lKUzZMYTdQNFJYdUl0c241U0MySjF2cTY2NGJmWXZrcnMrTnFXSzZGNFNxTDdYM2M1c0h0a2V0VzJHNjE3OW9YYnh6ekl1c3NzTkErUzU2TjlmSjQ3clhwQWxDd2x3ZUxHMnlJQzdmSlU3YVhraG5VaHhHbmViR0hHYnU1TWF6L1Zremt4N3lHWFBIRThJcmNJTXI2cWp6eVNnU2JmQ25MOWJuOHNsLytVcXd5VFpIZWFEUFBQVXZxTXRCQnQvZ3p5VVZ2T1RUU1NZZTVOTXhOcjNrMDFGR0RPVFhPVld2Nk5OWlpTNzIxVFYzRGFYTy9ZWnU1Ynhwa2w2M2wyV0drcmJhVGJHUGg5dHRIeHYzRTNIVC9hTGNSZU9mdHM4Q1Y5TzIzMEFBWEM3aTBneE9PTGlxQ0o4N200ZHRDM3EzalRoY2V1T1FFbFArWUFBQWgrUVFGRkFBRUFDd3lBRElBbkFDY0FBQUQveGk2M0U0d3lrbHJkRGhiT0xyL1lDaU9aR21LV2Nwc2JFdW9NSHZPZEcxN3NPcnVWSjdLdDZBdzZOUHdqcS9pWXpOc09rdktKWElYYlFDZldHeDFOYVZ1RmRlc1dQZ0ZkMTNsUUhqTXBxWFA2UEs2VFNlOTRheTdwYzZIeXZFYmVoVjloQ0dDZ0JPSEU0V01IWXFJRUk4UmpZeVNpSllFbElXWWVKaWFoSnh3bnA5OG9XZWpwSFNtWGFpcGJLdFRyYTVpc0VpeXMxcC9rSW02ZzdoanRVZTN2MDNCUE1NMHV4VEZ2Y3BKWDNNMXpoTE0wTk9Sell0RDF4eER4bDdXZTl2YzFWdmN6K1pNNDlmbFZlZklNK2Z0VWUvWjFPdlQ4MHIxNGI1Qzh0N3NRWUozQWlBWmdaY1Fac0xuVEY4UmZ1bkUvU01Yc0o4emdpWU1FbEhZU2Y5aEU0MDN2c1d4cUcwaXU0b1JwMkVzQWRLR3lCWXJTYlNzOFRLUFI0YktIUHFBNkU2ZHlYd29lMTZMT1dLbUc0NmlidjVzR0pRZU42SWlqTTZvR1VocGtITWRTZTZDR2dKclVxMERyZDd3ZWdwcFdiRGRscElGbC9LaVdCdHJZNWxsOVZaYVhHRno1YUpkcVBadTFiMVoyNWE4NnBldFVKVjFreFVlS1hocjRuaUxZYWFaVEZtS1AwM1JqbGJlUERrekljOG5PSXQrM0FlMGlkR29uVXJFN0hOajZ0YzZXbE15N1FlMmJjdkxTTkcyYzd2M2d0MXRnS1B3N1Z2NEdPTWdpQmVYM1FqNUIrVzluV09SN2dpNmJlcE9zRnUvenB5Ujl1MnZzWC9zcmhuOGFQRTQ3eDAwZjU3OFovZWgyYmRmUFJ2K2FmbWkwZmVkMUJRL1Z6SC8zL2xYbVg2RTBlZVNnQVBhVjBlQUNQNlhCWGFSUlNqaGhCUldhT0dGR0dhbzRZWWNkdWpoaHlDR0tPS0lKSlpvNG9rb3BxamlpbVFCNE9LTE1NWW80NHcwMW1qampUTVNLTUNPUFBibzQ0OUFCaW5ra0RnV2FlU1JPT3BJNUpKTU5vbmtrMUJHcWFTVFZGWVo1WlZZM2ppbGxWeDJtZVdYU0c3cDVaaGtnbW1taTJLV3FlYVpiQnFaNXBwd3RpbG5qRy9HYWVlY2JOWjU1NTU0WXFrbm40RDJlZVNmZ1JZcWFJMkVHcXJvb1M4bXVpaWprRHI2S0tTQ1Nqb3BwWE5hZWltbWVTcTQ2YWVjMnFncHFLSDY2U21wcUpZS3dLaXBxanJvcWEzeUtWV1NzUDY0b2FrblNWbXJqN2RlT2F1V3UvYllxNjY1UWdtaGhyZ0NSZXhsLzFVT2F5eEZ5K2JHcGJOUC9pcHFzRHhTR3lhMHp4cm9wTGF2RmxzdHRqdUM2eWEzNDNyYnBMbEZXb3NvdVFLd1M2dTQyNnJMcEx6QTBoc3VzMVRpZTYyKzU5cTdwTC92QXR3dXZBVFQ2SzdDQ0NQcks3cjE4dnV0dzlIbTlMREFSQ2FjSThUN1NtdWx4akl1dkRIR1E0Sk1KOGNCUzd3dXhhNkdqUEs5TExjTW84aTJ4aXd6bWk4UGJQUE5OUE82czh3OUMvdHp5MEZuTzdTclJaZDd0S3BKeDd0MHFVMmJ6R2pVVDRmYWRLeFluMnh3MWx3ZnZIWFhZRFA4ZGRoa041cHoyV2hmalRiUVo2OGR0dHB1TTkxMjNEZTdQRGJkZFp2SmF0WlVrNHgzeGJzazYvSGZhL2F0TXVHQ1d3dzRmNGdYUHJmWWh6ZmVyYktURHk1NTRobUJYeHo1NVIwclh2bGduR3ZPMU9KcGhTNjY1K2x1VG5jQ0FEcz1cIj5cclxuICAgICAgICA8L2ltYWdlPlxyXG4gICAgICA8L3Nsb3Q+XHJcbiAgICA8L3ZpZXc+XHJcblxyXG4gICAgPCEtLSDplJnor6/lpITnkIYgLS0+XHJcbiAgICA8dmlldyBjbGFzcz1cInVxcmNvZGUtZXJyb3JcIiB2LWlmPVwiaXNFcnJvclwiIEBjbGljaz1cIm9uQ2xpY2tcIj5cclxuICAgICAgPHNsb3QgbmFtZT1cImVycm9yXCIgOmVycm9yPVwiZXJyb3JcIj5cclxuICAgICAgICA8dGV4dCBjbGFzcz1cInVxcmNvZGUtZXJyb3ItbWVzc2FnZVwiPnt7IGVycm9yLmVyck1zZyB9fTwvdGV4dD5cclxuICAgICAgPC9zbG90PlxyXG4gICAgPC92aWV3PlxyXG5cclxuICAgIDwhLS0gSDXkv53lrZjmj5DnpLogLS0+XHJcbiAgICA8IS0tICNpZmRlZiBINSAtLT5cclxuICAgIDx2aWV3IGNsYXNzPVwidXFyY29kZS1oNS1zYXZlXCIgdi1pZj1cImlzSDVTYXZlXCI+XHJcbiAgICAgIDxzbG90IG5hbWU9XCJoNXNhdmVcIiA6dGVtcEZpbGVQYXRoPVwidGVtcEZpbGVQYXRoXCI+XHJcbiAgICAgICAgPGltYWdlIGNsYXNzPVwidXFyY29kZS1oNS1zYXZlLWltYWdlXCIgOnNyYz1cInRlbXBGaWxlUGF0aFwiPjwvaW1hZ2U+XHJcbiAgICAgICAgPHRleHQgY2xhc3M9XCJ1cXJjb2RlLWg1LXNhdmUtdGV4dFwiPnt7IGg1U2F2ZUlzRG93bmxvYWQgPyAn6Iul5L+d5a2Y5aSx6LSl77yMJyA6ICcnIH196K+36ZW/5oyJ5LqM57u056CB6L+b6KGM5L+d5a2YPC90ZXh0PlxyXG4gICAgICA8L3Nsb3Q+XHJcbiAgICAgIDx2aWV3IGNsYXNzPVwidXFyY29kZS1oNS1zYXZlLWNsb3NlXCIgQGNsaWNrLnN0b3A9XCJpc0g1U2F2ZSA9IGZhbHNlXCI+XHJcbiAgICAgICAgPHZpZXcgY2xhc3M9XCJ1cXJjb2RlLWg1LXNhdmUtY2xvc2UtYmVmb3JlXCI+PC92aWV3PlxyXG4gICAgICAgIDx2aWV3IGNsYXNzPVwidXFyY29kZS1oNS1zYXZlLWNsb3NlLWFmdGVyXCI+PC92aWV3PlxyXG4gICAgICA8L3ZpZXc+XHJcbiAgICA8L3ZpZXc+XHJcbiAgICA8IS0tICNlbmRpZiAtLT5cclxuICA8L3ZpZXc+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0PlxyXG4gIC8vICNpZmRlZiBWVUUzXHJcbiAgaW1wb3J0IHtcclxuICAgIHRvUmF3XHJcbiAgfSBmcm9tICd2dWUnO1xyXG4gIC8vICNlbmRpZlxyXG5cclxuICAvKiDlvJXlhaV1UVJDb2Rl5qC45b+DanMgKi9cclxuICBpbXBvcnQgVVFSQ29kZSBmcm9tICcuLi8uLi9qc19zZGsvdXFyY29kZS91cXJjb2RlJztcclxuXHJcbiAgLyog5byV5YWlbnZ1ZeaJgOmcgOaooeWdlyAqL1xyXG4gIC8vICNpZmRlZiBBUFAtTlZVRVxyXG4gIGltcG9ydCB7XHJcbiAgICBlbmFibGUsXHJcbiAgICBXZWV4QnJpZGdlXHJcbiAgfSBmcm9tICcuLi8uLi9qc19zZGsvZ2NhbnZhcyc7XHJcbiAgY29uc3QgbW9kYWwgPSB3ZWV4LnJlcXVpcmVNb2R1bGUoJ21vZGFsJyk7XHJcbiAgLy8gI2VuZGlmXHJcblxyXG4gIC8qIOW8leWFpemYn+WIlyAqL1xyXG4gIGltcG9ydCB7XHJcbiAgICBxdWV1ZURyYXcsXHJcbiAgICBxdWV1ZUxvYWRJbWFnZVxyXG4gIH0gZnJvbSAnLi4vLi4vY29tbW9uL3F1ZXVlJztcclxuICAvKiDlvJXlhaXnvJPlrZjlm77niYcgKi9cclxuICBpbXBvcnQge1xyXG4gICAgY2FjaGVJbWFnZUxpc3RcclxuICB9IGZyb20gJy4uLy4uL2NvbW1vbi9jYWNoZSc7XHJcblxyXG4gIGxldCBpbnN0YW5jZSA9IG51bGw7XHJcblxyXG4gIGV4cG9ydCBkZWZhdWx0IHtcclxuICAgIG5hbWU6ICd1cXJjb2RlJyxcclxuICAgIHByb3BzOiB7XHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBjYW52YXPnu4Tku7ZpZFxyXG4gICAgICAgKi9cclxuICAgICAgY2FudmFzSWQ6IHtcclxuICAgICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUgLy8gY2FudmFzSWTlnKjlvq7kv6HlsI/nqIvluo/liJ3lp4vlgLzkuI3og73kuLrnqbrvvIxjcmVhdGVk5Lit6LWL5YC85Lmf5LiN6KGM77yM5b+F6aG757uZ5LiA5Liq5YC877yM5ZCm5YiZ5oyC6L2957uE5Lu25ZCO5peg5rOV57uY5Yi244CC5LiN6ICD6JmR55So6ZqP5py6aWTvvIx1dWlkXHJcbiAgICAgIH0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiDkuoznu7TnoIHlhoXlrrlcclxuICAgICAgICovXHJcbiAgICAgIHZhbHVlOiB7XHJcbiAgICAgICAgdHlwZTogW1N0cmluZywgTnVtYmVyXVxyXG4gICAgICB9LFxyXG4gICAgICAvKipcclxuICAgICAgICog6YCJ6aG5XHJcbiAgICAgICAqL1xyXG4gICAgICBvcHRpb25zOiB7XHJcbiAgICAgICAgdHlwZTogT2JqZWN0LFxyXG4gICAgICAgIGRlZmF1bHQ6ICgpID0+IHtcclxuICAgICAgICAgIHJldHVybiB7fTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiDkuoznu7TnoIHlpKflsI9cclxuICAgICAgICovXHJcbiAgICAgIHNpemU6IHtcclxuICAgICAgICB0eXBlOiBbU3RyaW5nLCBOdW1iZXJdLFxyXG4gICAgICAgIGRlZmF1bHQ6IDIwMFxyXG4gICAgICB9LFxyXG4gICAgICAvKipcclxuICAgICAgICog5LqM57u056CB5bC65a+45Y2V5L2NXHJcbiAgICAgICAqL1xyXG4gICAgICBzaXplVW5pdDoge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICBkZWZhdWx0OiAncHgnXHJcbiAgICAgIH0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiDlr7zlh7rnmoTmlofku7bnsbvlnotcclxuICAgICAgICovXHJcbiAgICAgIGZpbGVUeXBlOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIGRlZmF1bHQ6ICdwbmcnXHJcbiAgICAgIH0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiDmmK/lkKbliJ3lp4vljJbnu4Tku7blkI7lsLHlvIDlp4vnlJ/miJBcclxuICAgICAgICovXHJcbiAgICAgIHN0YXJ0OiB7XHJcbiAgICAgICAgdHlwZTogQm9vbGVhbixcclxuICAgICAgICBkZWZhdWx0OiB0cnVlXHJcbiAgICAgIH0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiDmmK/lkKbmlbDmja7lj5HnlJ/mlLnlj5joh6rliqjph43nu5hcclxuICAgICAgICovXHJcbiAgICAgIGF1dG86IHtcclxuICAgICAgICB0eXBlOiBCb29sZWFuLFxyXG4gICAgICAgIGRlZmF1bHQ6IHRydWVcclxuICAgICAgfSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIOmakOiXj+e7hOS7tlxyXG4gICAgICAgKi9cclxuICAgICAgaGlkZToge1xyXG4gICAgICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICAgICAgZGVmYXVsdDogZmFsc2VcclxuICAgICAgfSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIGNhbnZhcyDnsbvlnovvvIzlvq7kv6HlsI/nqIvluo/pu5jorqTkvb/nlKgyZO+8jOmdnjJk5b6u5L+h5a6Y5pa55bey5pS+5byD57u05oqk77yM6Zeu6aKY5q+U6L6D5aSaXHJcbiAgICAgICAqIOazqOaEj++8muW+ruS/oeWwj+eoi+W6j3R5cGUyZOaJi+acuuS4iuato+W4uO+8jFBD5LiK5b6u5L+h5YaF5omT5byA5bCP56iL5bqPdG9EYXRhVVJM5oql6ZSZ77yM55yL5ZCO5pyf5b6u5L+h5a6Y5pa55Zui6Zif5Lya5LiN5Lya5YGa5YW85a6577yM5LiN5YW85a6555qE6K+d5Y+q6IO95Zyo6Ieq6KGM5Yik5pat5ZyoUEPkvb/nlKjpnZ4yZO+8jOaIluiAheebtOaOpeaPkOekuueUqOaIt+ivt+WcqOaJi+acuuS4iuaTjeS9nO+8jOW+ruS/oeWboumYn+eahOa1t+aKpeS4reW/g+Wwj+eoi+W6j+WwseaYr+i/meS5iOWBmueahFxyXG4gICAgICAgKi9cclxuICAgICAgdHlwZToge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICBkZWZhdWx0OiAoKSA9PiB7XHJcbiAgICAgICAgICAvLyAjaWZkZWYgTVAtV0VJWElOXHJcbiAgICAgICAgICByZXR1cm4gJzJkJztcclxuICAgICAgICAgIC8vICNlbmRpZlxyXG4gICAgICAgICAgLy8gI2lmbmRlZiBNUC1XRUlYSU5cclxuICAgICAgICAgIHJldHVybiAnbm9ybWFsJztcclxuICAgICAgICAgIC8vICNlbmRpZlxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIOmYn+WIl+e7mOWItu+8jOS4u+imgemSiOWvuU5WdWXnq69cclxuICAgICAgICovXHJcbiAgICAgIHF1ZXVlOiB7XHJcbiAgICAgICAgdHlwZTogQm9vbGVhbixcclxuICAgICAgICBkZWZhdWx0OiBmYWxzZVxyXG4gICAgICB9LFxyXG4gICAgICAvKipcclxuICAgICAgICog5piv5ZCm6Zif5YiX5Yqg6L295Zu+54mH77yM5Y+v5YeP5bCRY2FudmFz5Y+R6LW355qE572R57uc6LWE5rqQ6K+35rGC77yM6IqC55yB5pyN5Yqh5Zmo6LWE5rqQXHJcbiAgICAgICAqL1xyXG4gICAgICBpc1F1ZXVlTG9hZEltYWdlOiB7XHJcbiAgICAgICAgdHlwZTogQm9vbGVhbixcclxuICAgICAgICBkZWZhdWx0OiBmYWxzZVxyXG4gICAgICB9LFxyXG4gICAgICAvKipcclxuICAgICAgICogbG9hZGluZ+aAgVxyXG4gICAgICAgKi9cclxuICAgICAgbG9hZGluZzoge1xyXG4gICAgICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICAgICAgZGVmYXVsdDogdW5kZWZpbmVkXHJcbiAgICAgIH0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBINeS/neWtmOWNs+iHquWKqOS4i+i9ve+8iOWcqOaUr+aMgeeahOeOr+Wig+S4i++8ie+8jOm7mOiupGZhbHNl5Li65LuF5by55bGC5o+Q56S655So5oi36ZyA6KaB6ZW/5oyJ5Zu+54mH5L+d5a2Y77yM5LiN5Lya6Ieq5Yqo5LiL6L29XHJcbiAgICAgICAqL1xyXG4gICAgICBoNVNhdmVJc0Rvd25sb2FkOiB7XHJcbiAgICAgICAgdHlwZTogQm9vbGVhbixcclxuICAgICAgICBkZWZhdWx0OiBmYWxzZVxyXG4gICAgICB9LFxyXG4gICAgICAvKipcclxuICAgICAgICogSDXkuIvovb3lkI3np7BcclxuICAgICAgICovXHJcbiAgICAgIGg1RG93bmxvYWROYW1lOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIGRlZmF1bHQ6ICd1UVJDb2RlJ1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgZGF0YSgpIHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBjYW52YXM6IHVuZGVmaW5lZCxcclxuICAgICAgICBjYW52YXNUeXBlOiB1bmRlZmluZWQsXHJcbiAgICAgICAgY2FudmFzQ29udGV4dDogdW5kZWZpbmVkLFxyXG4gICAgICAgIG1ha2VEZWxlZ2F0ZTogdW5kZWZpbmVkLFxyXG4gICAgICAgIGRyYXdEZWxlZ2F0ZTogdW5kZWZpbmVkLFxyXG4gICAgICAgIHRvVGVtcEZpbGVQYXRoRGVsZWdhdGU6IHVuZGVmaW5lZCxcclxuICAgICAgICBtYWtlRXhlY3V0ZWQ6IGZhbHNlLFxyXG4gICAgICAgIG1ha2Vpbmc6IGZhbHNlLFxyXG4gICAgICAgIGRyYXdpbmc6IGZhbHNlLFxyXG4gICAgICAgIGlzRXJyb3I6IGZhbHNlLFxyXG4gICAgICAgIGVycm9yOiB1bmRlZmluZWQsXHJcbiAgICAgICAgaXNINVNhdmU6IGZhbHNlLFxyXG4gICAgICAgIHRlbXBGaWxlUGF0aDogJycsXHJcbiAgICAgICAgdGVtcGxhdGVPcHRpb25zOiB7XHJcbiAgICAgICAgICBzaXplOiAwLFxyXG4gICAgICAgICAgd2lkdGg6IDAsIC8vIOe7hOS7tuWuveW6plxyXG4gICAgICAgICAgaGVpZ2h0OiAwLFxyXG4gICAgICAgICAgY2FudmFzV2lkdGg6IDAsIC8vIGNhbnZhc+WuveW6plxyXG4gICAgICAgICAgY2FudmFzSGVpZ2h0OiAwLFxyXG4gICAgICAgICAgY2FudmFzVHJhbnNmb3JtOiAnJyxcclxuICAgICAgICAgIGNhbnZhc0Rpc3BsYXk6IGZhbHNlXHJcbiAgICAgICAgfSxcclxuICAgICAgICB1cXJjb2RlT3B0aW9uczoge1xyXG4gICAgICAgICAgZGF0YTogJydcclxuICAgICAgICB9LFxyXG4gICAgICAgIHBsdWdpbnM6IFtdLFxyXG4gICAgICAgIG1ha2VpbmdQYXR0ZXJuOiBbXHJcbiAgICAgICAgICBbXHJcbiAgICAgICAgICAgIFt0cnVlLCB0cnVlLCB0cnVlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZV0sXHJcbiAgICAgICAgICAgIFt0cnVlLCB0cnVlLCB0cnVlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZV0sXHJcbiAgICAgICAgICAgIFt0cnVlLCB0cnVlLCB0cnVlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZV0sXHJcbiAgICAgICAgICAgIFt0cnVlLCB0cnVlLCB0cnVlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZV0sXHJcbiAgICAgICAgICAgIFt0cnVlLCB0cnVlLCB0cnVlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZV0sXHJcbiAgICAgICAgICAgIFt0cnVlLCB0cnVlLCB0cnVlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZV0sXHJcbiAgICAgICAgICAgIFt0cnVlLCB0cnVlLCB0cnVlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZV0sXHJcbiAgICAgICAgICAgIFt0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlXSxcclxuICAgICAgICAgICAgW3RydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWVdLFxyXG4gICAgICAgICAgICBbdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZV1cclxuICAgICAgICAgIF0sXHJcbiAgICAgICAgICBbXHJcbiAgICAgICAgICAgIFt0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlXSxcclxuICAgICAgICAgICAgW3RydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWVdLFxyXG4gICAgICAgICAgICBbdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZV0sXHJcbiAgICAgICAgICAgIFt0cnVlLCB0cnVlLCB0cnVlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZV0sXHJcbiAgICAgICAgICAgIFt0cnVlLCB0cnVlLCB0cnVlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZV0sXHJcbiAgICAgICAgICAgIFt0cnVlLCB0cnVlLCB0cnVlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZV0sXHJcbiAgICAgICAgICAgIFt0cnVlLCB0cnVlLCB0cnVlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZV0sXHJcbiAgICAgICAgICAgIFt0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZV0sXHJcbiAgICAgICAgICAgIFt0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZV0sXHJcbiAgICAgICAgICAgIFt0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZV1cclxuICAgICAgICAgIF0sXHJcbiAgICAgICAgICBbXHJcbiAgICAgICAgICAgIFt0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlXSxcclxuICAgICAgICAgICAgW3RydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWVdLFxyXG4gICAgICAgICAgICBbdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZV0sXHJcbiAgICAgICAgICAgIFt0cnVlLCB0cnVlLCB0cnVlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZV0sXHJcbiAgICAgICAgICAgIFt0cnVlLCB0cnVlLCB0cnVlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZV0sXHJcbiAgICAgICAgICAgIFt0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCBmYWxzZSwgZmFsc2UsIGZhbHNlXSxcclxuICAgICAgICAgICAgW3RydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIGZhbHNlLCBmYWxzZSwgZmFsc2VdLFxyXG4gICAgICAgICAgICBbdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlLCBmYWxzZV0sXHJcbiAgICAgICAgICAgIFt0cnVlLCB0cnVlLCB0cnVlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZV0sXHJcbiAgICAgICAgICAgIFt0cnVlLCB0cnVlLCB0cnVlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZV1cclxuICAgICAgICAgIF0sXHJcbiAgICAgICAgICBbXHJcbiAgICAgICAgICAgIFt0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlXSxcclxuICAgICAgICAgICAgW3RydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWVdLFxyXG4gICAgICAgICAgICBbdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZV0sXHJcbiAgICAgICAgICAgIFt0cnVlLCB0cnVlLCB0cnVlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZV0sXHJcbiAgICAgICAgICAgIFt0cnVlLCB0cnVlLCB0cnVlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZV0sXHJcbiAgICAgICAgICAgIFt0cnVlLCB0cnVlLCB0cnVlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZV0sXHJcbiAgICAgICAgICAgIFt0cnVlLCB0cnVlLCB0cnVlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZV0sXHJcbiAgICAgICAgICAgIFt0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlXSxcclxuICAgICAgICAgICAgW3RydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWVdLFxyXG4gICAgICAgICAgICBbdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZV1cclxuICAgICAgICAgIF1cclxuICAgICAgICBdXHJcbiAgICAgIH07XHJcbiAgICB9LFxyXG4gICAgd2F0Y2g6IHtcclxuICAgICAgdHlwZToge1xyXG4gICAgICAgIGhhbmRsZXIodmFsKSB7XHJcbiAgICAgICAgICBjb25zdCB0eXBlcyA9IFsnMmQnXTtcclxuICAgICAgICAgIGlmICh0eXBlcy5pbmNsdWRlcyh2YWwpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2FudmFzVHlwZSA9IHZhbDtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2FudmFzVHlwZSA9IHVuZGVmaW5lZDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGltbWVkaWF0ZTogdHJ1ZVxyXG4gICAgICB9LFxyXG4gICAgICB2YWx1ZToge1xyXG4gICAgICAgIGhhbmRsZXIoKSB7XHJcbiAgICAgICAgICBpZiAodGhpcy5hdXRvKSB7XHJcbiAgICAgICAgICAgIHRoaXMucmVtYWtlKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBzaXplOiB7XHJcbiAgICAgICAgaGFuZGxlcigpIHtcclxuICAgICAgICAgIGlmICh0aGlzLmF1dG8pIHtcclxuICAgICAgICAgICAgdGhpcy5yZW1ha2UoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIG9wdGlvbnM6IHtcclxuICAgICAgICBoYW5kbGVyKCkge1xyXG4gICAgICAgICAgaWYgKHRoaXMuYXV0bykge1xyXG4gICAgICAgICAgICB0aGlzLnJlbWFrZSgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZGVlcDogdHJ1ZVxyXG4gICAgICB9LFxyXG4gICAgICBtYWtlaW5nOiB7XHJcbiAgICAgICAgaGFuZGxlcih2YWwpIHtcclxuICAgICAgICAgIGlmICghdmFsKSB7XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdGhpcy50b1RlbXBGaWxlUGF0aERlbGVnYXRlID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy50b1RlbXBGaWxlUGF0aERlbGVnYXRlKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBtb3VudGVkKCkge1xyXG4gICAgICB0aGlzLnRlbXBsYXRlT3B0aW9ucy5zaXplID0gdGhpcy5zaXplVW5pdCA9PSAncnB4JyA/IHVuaS51cHgycHgodGhpcy5zaXplKSA6IHRoaXMuc2l6ZTtcclxuICAgICAgdGhpcy50ZW1wbGF0ZU9wdGlvbnMud2lkdGggPSB0aGlzLnRlbXBsYXRlT3B0aW9ucy5zaXplO1xyXG4gICAgICB0aGlzLnRlbXBsYXRlT3B0aW9ucy5oZWlnaHQgPSB0aGlzLnRlbXBsYXRlT3B0aW9ucy5zaXplO1xyXG4gICAgICB0aGlzLnRlbXBsYXRlT3B0aW9ucy5jYW52YXNXaWR0aCA9IHRoaXMudGVtcGxhdGVPcHRpb25zLnNpemU7XHJcbiAgICAgIHRoaXMudGVtcGxhdGVPcHRpb25zLmNhbnZhc0hlaWdodCA9IHRoaXMudGVtcGxhdGVPcHRpb25zLnNpemU7XHJcbiAgICAgIGlmICh0aGlzLmNhbnZhc1R5cGUgPT0gJzJkJykge1xyXG4gICAgICAgIC8vICNpZm5kZWYgTVAtV0VJWElOXHJcbiAgICAgICAgdGhpcy50ZW1wbGF0ZU9wdGlvbnMuY2FudmFzVHJhbnNmb3JtID0gYHNjYWxlKCR7dGhpcy50ZW1wbGF0ZU9wdGlvbnMuc2l6ZSAvIHRoaXMudGVtcGxhdGVPcHRpb25zLmNhbnZhc1dpZHRofSwgJHt0aGlzLnRlbXBsYXRlT3B0aW9ucy5zaXplIC9cclxuICAgICAgICB0aGlzLnRlbXBsYXRlT3B0aW9ucy5jYW52YXNIZWlnaHR9KWA7XHJcbiAgICAgICAgLy8gI2VuZGlmXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy50ZW1wbGF0ZU9wdGlvbnMuY2FudmFzVHJhbnNmb3JtID0gYHNjYWxlKCR7dGhpcy50ZW1wbGF0ZU9wdGlvbnMuc2l6ZSAvIHRoaXMudGVtcGxhdGVPcHRpb25zLmNhbnZhc1dpZHRofSwgJHt0aGlzLnRlbXBsYXRlT3B0aW9ucy5zaXplIC9cclxuICAgICAgICB0aGlzLnRlbXBsYXRlT3B0aW9ucy5jYW52YXNIZWlnaHR9KWA7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuc3RhcnQpIHtcclxuICAgICAgICB0aGlzLm1ha2UoKTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIG1ldGhvZHM6IHtcclxuICAgICAgLyoqXHJcbiAgICAgICAqIOiOt+WPluaooeadv+mAiemhuVxyXG4gICAgICAgKi9cclxuICAgICAgZ2V0VGVtcGxhdGVPcHRpb25zKCkge1xyXG4gICAgICAgIHZhciBzaXplID0gdGhpcy5zaXplVW5pdCA9PSAncnB4JyA/IHVuaS51cHgycHgodGhpcy5zaXplKSA6IHRoaXMuc2l6ZTtcclxuICAgICAgICByZXR1cm4gZGVlcFJlcGxhY2UodGhpcy50ZW1wbGF0ZU9wdGlvbnMsIHtcclxuICAgICAgICAgIHNpemUsXHJcbiAgICAgICAgICB3aWR0aDogc2l6ZSxcclxuICAgICAgICAgIGhlaWdodDogc2l6ZVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9LFxyXG4gICAgICAvKipcclxuICAgICAgICog6I635Y+W5o+S5Lu26YCJ6aG5XHJcbiAgICAgICAqL1xyXG4gICAgICBnZXRVcXJjb2RlT3B0aW9ucygpIHtcclxuICAgICAgICByZXR1cm4gZGVlcFJlcGxhY2UodGhpcy5vcHRpb25zLCB7XHJcbiAgICAgICAgICBkYXRhOiBTdHJpbmcodGhpcy52YWx1ZSksXHJcbiAgICAgICAgICBzaXplOiBOdW1iZXIodGhpcy50ZW1wbGF0ZU9wdGlvbnMuc2l6ZSlcclxuICAgICAgICB9KTtcclxuICAgICAgfSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIOmHjee9rueUu+W4g1xyXG4gICAgICAgKi9cclxuICAgICAgcmVzZXRDYW52YXMoY2FsbGJhY2spIHtcclxuICAgICAgICB0aGlzLnRlbXBsYXRlT3B0aW9ucy5jYW52YXNEaXNwbGF5ID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy4kbmV4dFRpY2soKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy50ZW1wbGF0ZU9wdGlvbnMuY2FudmFzRGlzcGxheSA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLiRuZXh0VGljaygoKSA9PiB7XHJcbiAgICAgICAgICAgIGNhbGxiYWNrICYmIGNhbGxiYWNrKCk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIOe7mOWItuS6jOe7tOeggVxyXG4gICAgICAgKi9cclxuICAgICAgYXN5bmMgZHJhdyhjYWxsYmFjayA9IHt9LCBpc0RyYXdEZWxlZ2F0ZSA9IGZhbHNlKSB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiBjYWxsYmFjay5zdWNjZXNzICE9ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgIGNhbGxiYWNrLnN1Y2Nlc3MgPSAoKSA9PiB7fTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHR5cGVvZiBjYWxsYmFjay5mYWlsICE9ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgIGNhbGxiYWNrLmZhaWwgPSAoKSA9PiB7fTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHR5cGVvZiBjYWxsYmFjay5jb21wbGV0ZSAhPSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgICBjYWxsYmFjay5jb21wbGV0ZSA9ICgpID0+IHt9O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMuZHJhd2luZykge1xyXG4gICAgICAgICAgaWYgKCFpc0RyYXdEZWxlZ2F0ZSkge1xyXG4gICAgICAgICAgICB0aGlzLmRyYXdEZWxlZ2F0ZSA9ICgpID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLmRyYXcoY2FsbGJhY2ssIHRydWUpO1xyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuZHJhd2luZyA9IHRydWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIXRoaXMuY2FudmFzSWQpIHtcclxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1t1UVJDb2RlXTogY2FudmFzSWQgbXVzdCBiZSBzZXQhJyk7XHJcbiAgICAgICAgICB0aGlzLmlzRXJyb3IgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5kcmF3aW5nID0gZmFsc2U7XHJcbiAgICAgICAgICBjYWxsYmFjay5mYWlsKHtcclxuICAgICAgICAgICAgZXJyTXNnOiAnW3VRUkNvZGVdOiBjYW52YXNJZCBtdXN0IGJlIHNldCEnXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIGNhbGxiYWNrLmNvbXBsZXRlKHtcclxuICAgICAgICAgICAgZXJyTXNnOiAnW3VRUkNvZGVdOiBjYW52YXNJZCBtdXN0IGJlIHNldCEnXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCF0aGlzLnZhbHVlKSB7XHJcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdbdVFSQ29kZV06IHZhbHVlIG11c3QgYmUgc2V0IScpO1xyXG4gICAgICAgICAgdGhpcy5pc0Vycm9yID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMuZHJhd2luZyA9IGZhbHNlO1xyXG4gICAgICAgICAgY2FsbGJhY2suZmFpbCh7XHJcbiAgICAgICAgICAgIGVyck1zZzogJ1t1UVJDb2RlXTogdmFsdWUgbXVzdCBiZSBzZXQhJ1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBjYWxsYmFjay5jb21wbGV0ZSh7XHJcbiAgICAgICAgICAgIGVyck1zZzogJ1t1UVJDb2RlXTogdmFsdWUgbXVzdCBiZSBzZXQhJ1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKiDnu4Tku7bmlbDmja4gKi9cclxuICAgICAgICB0aGlzLnRlbXBsYXRlT3B0aW9ucyA9IHRoaXMuZ2V0VGVtcGxhdGVPcHRpb25zKCk7XHJcbiAgICAgICAgLyogdVFSQ29kZemAiemhuSAqL1xyXG4gICAgICAgIHRoaXMudXFyY29kZU9wdGlvbnMgPSB0aGlzLmdldFVxcmNvZGVPcHRpb25zKCk7XHJcbiAgICAgICAgLyog57qg6ZSZ562J57qn5YW85a655a2X5q+N5YaZ5rOVICovXHJcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnVxcmNvZGVPcHRpb25zLmVycm9yQ29ycmVjdExldmVsID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgdGhpcy51cXJjb2RlT3B0aW9ucy5lcnJvckNvcnJlY3RMZXZlbCA9IFVRUkNvZGUuZXJyb3JDb3JyZWN0TGV2ZWxbdGhpcy51cXJjb2RlT3B0aW9ucy5lcnJvckNvcnJlY3RMZXZlbF07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8qIG52dWXkuI3mlK/mjIHliqjmgIHkv67mlLlnY2FudmFz5bC65a+477yM6ZmkbnZ1ZeWklu+8jOm7mOiupOS9v+eUqHVzZUR5bmFtaWNTaXplICovXHJcbiAgICAgICAgLy8gI2lmbmRlZiBBUFAtTlZVRVxyXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5vcHRpb25zLnVzZUR5bmFtaWNTaXplID09PSAndW5kZWZpbmVkJykge1xyXG4gICAgICAgICAgdGhpcy51cXJjb2RlT3B0aW9ucy51c2VEeW5hbWljU2l6ZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vICNlbmRpZlxyXG4gICAgICAgIC8vICNpZmRlZiBBUFAtTlZVRVxyXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5vcHRpb25zLnVzZUR5bmFtaWNTaXplID09PSAndW5kZWZpbmVkJykge1xyXG4gICAgICAgICAgdGhpcy51cXJjb2RlT3B0aW9ucy51c2VEeW5hbWljU2l6ZSA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBpZiAodHlwZW9mIHRoaXMub3B0aW9ucy5kcmF3UmVzZXJ2ZSA9PT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgICAvLyAgIHRoaXMudXFyY29kZU9wdGlvbnMuZHJhd1Jlc2VydmUgPSB0cnVlO1xyXG4gICAgICAgIC8vIH1cclxuICAgICAgICAvLyAjZW5kaWZcclxuXHJcbiAgICAgICAgLyog6I635Y+WdVFSQ29kZeWunuS+iyAqL1xyXG4gICAgICAgIGNvbnN0IHFyID0gaW5zdGFuY2UgPSBuZXcgVVFSQ29kZSgpO1xyXG4gICAgICAgIC8qIOazqOWGjOaJqeWxlSAqL1xyXG4gICAgICAgIHRoaXMucGx1Z2lucy5mb3JFYWNoKHAgPT4gcXIucmVnaXN0ZXIocC5wbHVnaW4pKTtcclxuICAgICAgICAvKiDorr7nva51UVJDb2Rl6YCJ6aG5ICovXHJcbiAgICAgICAgcXIuc2V0T3B0aW9ucyh0aGlzLnVxcmNvZGVPcHRpb25zKTtcclxuICAgICAgICAvKiDosIPnlKjliLbkvZzkuoznu7TnoIHmlrnms5UgKi9cclxuICAgICAgICBxci5tYWtlKCk7XHJcblxyXG4gICAgICAgIC8qIOiOt+WPlmNhbnZhc+S4iuS4i+aWhyAqL1xyXG4gICAgICAgIGxldCBjYW52YXNDb250ZXh0ID0gbnVsbDtcclxuICAgICAgICAvLyAjaWZuZGVmIEFQUC1OVlVFXHJcbiAgICAgICAgaWYgKHRoaXMuY2FudmFzVHlwZSA9PT0gJzJkJykge1xyXG4gICAgICAgICAgLy8gI2lmZGVmIE1QLVdFSVhJTlxyXG4gICAgICAgICAgLyog5b6u5L+h5bCP56iL5bqP6I635Y+WY2FudmFzMmTkuIrkuIvmlofmlrnlvI8gKi9cclxuICAgICAgICAgIGNvbnN0IGNhbnZhcyA9ICh0aGlzLmNhbnZhcyA9IGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4ge1xyXG4gICAgICAgICAgICB1bmlcclxuICAgICAgICAgICAgICAuY3JlYXRlU2VsZWN0b3JRdWVyeSgpXHJcbiAgICAgICAgICAgICAgLmluKHRoaXMpIC8vIOWcqOe7hOS7tuWGheS9v+eUqOmcgOimgVxyXG4gICAgICAgICAgICAgIC5zZWxlY3QoYCMke3RoaXMuY2FudmFzSWR9YClcclxuICAgICAgICAgICAgICAuZmllbGRzKHtcclxuICAgICAgICAgICAgICAgIG5vZGU6IHRydWUsXHJcbiAgICAgICAgICAgICAgICBzaXplOiB0cnVlXHJcbiAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAuZXhlYyhyZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmVzb2x2ZShyZXNbMF0ubm9kZSk7XHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9KSk7XHJcbiAgICAgICAgICBjYW52YXNDb250ZXh0ID0gdGhpcy5jYW52YXNDb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7XHJcbiAgICAgICAgICAvKiAyZOeahOe7hOS7tuiuvue9ruWuvemrmOS4juWunumZhWNhbnZhc+e7mOWItuWuvemrmOS4jeaYr+S4gOS4qu+8jOaJk+S4quavlOaWue+8jOe7hOS7tnNpemU9MjAw77yMY2FudmFzLndpZHRo6K6+572u5Li6MTAw77yM6YKj5LmI57uY5Yi25Ye65p2l5bCx5pivMTAwPTIwMO+8jOe7hOS7tnNpemU9NDAw77yMY2FudmFzLndpZHRo6K6+572u5Li6ODAw77yM57uY5Yi25aSn5bCP6L+Y5pivODAwPTQwMO+8jOaJgOS7peaXoOmcgOeQhuS8muS4i+aWuei/lOWbnueahGR5bmFtaWNTaXpl5piv5aSa5bCR77yM5oyJZHBy6YeN5paw6LWL5YC857uZY2FudmFz5Y2z5Y+vICovXHJcbiAgICAgICAgICB0aGlzLnRlbXBsYXRlT3B0aW9ucy5jYW52YXNXaWR0aCA9IHFyLnNpemU7XHJcbiAgICAgICAgICB0aGlzLnRlbXBsYXRlT3B0aW9ucy5jYW52YXNIZWlnaHQgPSBxci5zaXplO1xyXG4gICAgICAgICAgdGhpcy50ZW1wbGF0ZU9wdGlvbnMuY2FudmFzVHJhbnNmb3JtID0gJyc7XHJcbiAgICAgICAgICAvKiDkvb/nlKhkeW5hbWljU2l6ZStzY2FsZe+8jOWPr+S7peino+WGs+Wwj+Wdl+mXtOWHuueOsOeZvee6v+mXrumimO+8jGRwcuWPr+S7peino+WGs+aooeeziumXrumimCAqL1xyXG4gICAgICAgICAgY29uc3QgZHByID0gdW5pLmdldFN5c3RlbUluZm9TeW5jKCkucGl4ZWxSYXRpbztcclxuICAgICAgICAgIGNhbnZhcy53aWR0aCA9IHFyLmR5bmFtaWNTaXplICogZHByO1xyXG4gICAgICAgICAgY2FudmFzLmhlaWdodCA9IHFyLmR5bmFtaWNTaXplICogZHByO1xyXG4gICAgICAgICAgY2FudmFzQ29udGV4dC5zY2FsZShkcHIsIGRwcik7XHJcbiAgICAgICAgICAvKiDlvq7kv6HlsI/nqIvluo/ojrflj5blm77lg4/mlrnlvI8gKi9cclxuICAgICAgICAgIHFyLmxvYWRJbWFnZSA9IHRoaXMuZ2V0TG9hZEltYWdlKGZ1bmN0aW9uKHNyYykge1xyXG4gICAgICAgICAgICAvKiDlsI/nqIvluo/kuIvojrflj5bnvZHnu5zlm77niYfkv6Hmga/pnIDlhYjphY3nva5kb3dubG9hZOWfn+WQjeeZveWQjeWNleaJjeiDveeUn+aViCAqL1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGltZyA9IGNhbnZhcy5jcmVhdGVJbWFnZSgpO1xyXG4gICAgICAgICAgICAgIGltZy5zcmMgPSBzcmM7XHJcbiAgICAgICAgICAgICAgaW1nLm9ubG9hZCA9ICgpID0+IHtcclxuICAgICAgICAgICAgICAgIHJlc29sdmUoaW1nKTtcclxuICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgIGltZy5vbmVycm9yID0gZXJyID0+IHtcclxuICAgICAgICAgICAgICAgIHJlamVjdChlcnIpO1xyXG4gICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICAvLyAjZW5kaWZcclxuICAgICAgICAgIC8vICNpZm5kZWYgTVAtV0VJWElOXHJcbiAgICAgICAgICAvKiDpnZ7lvq7kv6HlsI/nqIvluo/kuI3mlK/mjIEyZO+8jOWIh+aNouWbnnVuaWFwcOiOt+WPlmNhbnZhc+S4iuS4i+aWh+aWueW8jyAqL1xyXG4gICAgICAgICAgY2FudmFzQ29udGV4dCA9IHRoaXMuY2FudmFzQ29udGV4dCA9IHVuaS5jcmVhdGVDYW52YXNDb250ZXh0KHRoaXMuY2FudmFzSWQsIHRoaXMpO1xyXG4gICAgICAgICAgLyog5L2/55SoZHluYW1pY1NpemXvvIzlj6/ku6Xop6PlhrPlsI/lnZfpl7Tlh7rnjrDnmb3nur/pl67popjvvIzlho3pgJrov4dzY2FsZee8qeaUvuiHs3NpemXvvIzkvb/lhbbovr7liLDmiYDorr7lsLrlr7ggKi9cclxuICAgICAgICAgIHRoaXMudGVtcGxhdGVPcHRpb25zLmNhbnZhc1dpZHRoID0gcXIuZHluYW1pY1NpemU7XHJcbiAgICAgICAgICB0aGlzLnRlbXBsYXRlT3B0aW9ucy5jYW52YXNIZWlnaHQgPSBxci5keW5hbWljU2l6ZTtcclxuICAgICAgICAgIHRoaXMudGVtcGxhdGVPcHRpb25zLmNhbnZhc1RyYW5zZm9ybSA9IGBzY2FsZSgke3RoaXMudGVtcGxhdGVPcHRpb25zLnNpemUgLyB0aGlzLnRlbXBsYXRlT3B0aW9ucy5jYW52YXNXaWR0aH0sICR7dGhpcy50ZW1wbGF0ZU9wdGlvbnMuc2l6ZSAvXHJcbiAgICAgICAgICB0aGlzLnRlbXBsYXRlT3B0aW9ucy5jYW52YXNIZWlnaHR9KWA7XHJcbiAgICAgICAgICAvKiB1bmlhcHDojrflj5blm77lg4/mlrnlvI8gKi9cclxuICAgICAgICAgIHFyLmxvYWRJbWFnZSA9IHRoaXMuZ2V0TG9hZEltYWdlKGZ1bmN0aW9uKHNyYykge1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChzcmMuc3RhcnRzV2l0aCgnaHR0cCcpKSB7XHJcbiAgICAgICAgICAgICAgICB1bmkuZ2V0SW1hZ2VJbmZvKHtcclxuICAgICAgICAgICAgICAgICAgc3JjLFxyXG4gICAgICAgICAgICAgICAgICBzdWNjZXNzOiByZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUocmVzLnBhdGgpO1xyXG4gICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICBmYWlsOiBlcnIgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlamVjdChlcnIpO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgaWYgKHNyYy5zdGFydHNXaXRoKCcuJykpIHtcclxuICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignW3VRUkNvZGVdOiDmnKzlnLDlm77niYfot6/lvoTku4XmlK/mjIHnu53lr7not6/lvoTvvIEnKTtcclxuICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdbdVFSQ29kZV06IGxvY2FsIGltYWdlIHBhdGggb25seSBzdXBwb3J0cyBhYnNvbHV0ZSBwYXRoIScpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgcmVzb2x2ZShzcmMpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIC8vICNlbmRpZlxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAvKiB1bmlhcHDojrflj5ZjYW52YXPkuIrkuIvmlofmlrnlvI8gKi9cclxuICAgICAgICAgIGNhbnZhc0NvbnRleHQgPSB0aGlzLmNhbnZhc0NvbnRleHQgPSB1bmkuY3JlYXRlQ2FudmFzQ29udGV4dCh0aGlzLmNhbnZhc0lkLCB0aGlzKTtcclxuICAgICAgICAgIC8qIOS9v+eUqGR5bmFtaWNTaXpl77yM5Y+v5Lul6Kej5Yaz5bCP5Z2X6Ze05Ye6546w55m957q/6Zeu6aKY77yM5YaN6YCa6L+Hc2NhbGXnvKnmlL7oh7NzaXpl77yM5L2/5YW26L6+5Yiw5omA6K6+5bC65a+4ICovXHJcbiAgICAgICAgICB0aGlzLnRlbXBsYXRlT3B0aW9ucy5jYW52YXNXaWR0aCA9IHFyLmR5bmFtaWNTaXplO1xyXG4gICAgICAgICAgdGhpcy50ZW1wbGF0ZU9wdGlvbnMuY2FudmFzSGVpZ2h0ID0gcXIuZHluYW1pY1NpemU7XHJcbiAgICAgICAgICB0aGlzLnRlbXBsYXRlT3B0aW9ucy5jYW52YXNUcmFuc2Zvcm0gPSBgc2NhbGUoJHt0aGlzLnRlbXBsYXRlT3B0aW9ucy5zaXplIC8gdGhpcy50ZW1wbGF0ZU9wdGlvbnMuY2FudmFzV2lkdGh9LCAke3RoaXMudGVtcGxhdGVPcHRpb25zLnNpemUgL1xyXG4gICAgICAgICAgdGhpcy50ZW1wbGF0ZU9wdGlvbnMuY2FudmFzSGVpZ2h0fSlgO1xyXG4gICAgICAgICAgLyogdW5pYXBw6I635Y+W5Zu+5YOP5pa55byPICovXHJcbiAgICAgICAgICBxci5sb2FkSW1hZ2UgPSB0aGlzLmdldExvYWRJbWFnZShmdW5jdGlvbihzcmMpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgICAgICAgICAvKiBnZXRJbWFnZUluZm/lnKjlvq7kv6HlsI/nqIvluo/nmoRidWfvvJrmnKzlnLDot6/lvoTov5Tlm57ot6/lvoTkvJrmiorlvIDlpLTnmoQv5oiWLi4v56e76Zmk77yM5a+86Ie06Lev5b6E6ZSZ6K+v77yM6Kej5Yaz5pa55rOV77ya6ZmQ5Yi25Y+q6IO95L2/55So57ud5a+56Lev5b6EICovXHJcbiAgICAgICAgICAgICAgaWYgKHNyYy5zdGFydHNXaXRoKCdodHRwJykpIHtcclxuICAgICAgICAgICAgICAgIHVuaS5nZXRJbWFnZUluZm8oe1xyXG4gICAgICAgICAgICAgICAgICBzcmMsXHJcbiAgICAgICAgICAgICAgICAgIHN1Y2Nlc3M6IHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShyZXMucGF0aCk7XHJcbiAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgIGZhaWw6IGVyciA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGVycik7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoc3JjLnN0YXJ0c1dpdGgoJy4nKSkge1xyXG4gICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdbdVFSQ29kZV06IOacrOWcsOWbvueJh+i3r+W+hOS7heaUr+aMgee7neWvuei3r+W+hO+8gScpO1xyXG4gICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1t1UVJDb2RlXTogbG9jYWwgaW1hZ2UgcGF0aCBvbmx5IHN1cHBvcnRzIGFic29sdXRlIHBhdGghJyk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICByZXNvbHZlKHNyYyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyAjZW5kaWZcclxuICAgICAgICAvLyAjaWZkZWYgQVBQLU5WVUVcclxuICAgICAgICAvKiBOVnVl6I635Y+WY2FudmFz5LiK5LiL5paH5pa55byPICovXHJcbiAgICAgICAgY29uc3QgZ2NhbnZhcyA9IHRoaXMuJHJlZnNbJ2djYW52YXMnXTtcclxuICAgICAgICBjb25zdCBjYW52YXMgPSBlbmFibGUoZ2NhbnZhcywge1xyXG4gICAgICAgICAgYnJpZGdlOiBXZWV4QnJpZGdlXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgY2FudmFzQ29udGV4dCA9IHRoaXMuY2FudmFzQ29udGV4dCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpO1xyXG4gICAgICAgIC8qIE5WdWXojrflj5blm77lg4/mlrnlvI8gKi9cclxuICAgICAgICBxci5sb2FkSW1hZ2UgPSB0aGlzLmdldExvYWRJbWFnZShmdW5jdGlvbihzcmMpIHtcclxuICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgICAgICAgIC8qIGdldEltYWdlSW5mb+WcqG52dWXnmoRidWfvvJrojrflj5blkIzkuIDkuKrot6/lvoTnmoTlm77niYfkv6Hmga/vvIzlkIzkuIDml7bpl7TnrKzkuIDmrKHojrflj5bmiJDlip/vvIzlkI7nu63lpLHotKXvvIznjJzmtYvmmK/lhpnlhaXmnKzlnLDml7bkuqfnlJ/mlofku7blhpnlhaXlhrLnqoHvvIzmiYDku6XmsqHmnInov5Tlm57vvIznibnliKvmmK/lr7nkuo7nvZHnu5zotYTmupAgLS0tIOW3suWunueOsOmYn+WIl+e7mOWItu+8jOW3suino+WGs+atpOmXrumimCAqL1xyXG4gICAgICAgICAgICBpZiAoc3JjLnN0YXJ0c1dpdGgoJy4nKSkge1xyXG4gICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1t1UVJDb2RlXTog5pys5Zyw5Zu+54mH6Lev5b6E5LuF5pSv5oyB57ud5a+56Lev5b6E77yBJyk7XHJcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdbdVFSQ29kZV06IGxvY2FsIGltYWdlIHBhdGggb25seSBzdXBwb3J0cyBhYnNvbHV0ZSBwYXRoIScpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHVuaS5nZXRJbWFnZUluZm8oe1xyXG4gICAgICAgICAgICAgICAgc3JjLFxyXG4gICAgICAgICAgICAgICAgc3VjY2VzczogcmVzID0+IHtcclxuICAgICAgICAgICAgICAgICAgcmVzb2x2ZShyZXMucGF0aCk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgZmFpbDogZXJyID0+IHtcclxuICAgICAgICAgICAgICAgICAgcmVqZWN0KGVycik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIC8vICNlbmRpZlxyXG5cclxuICAgICAgICAvKiDorr7nva51UVJDb2Rl5a6e5L6L55qEY2FudmFz5LiK5LiL5paHICovXHJcbiAgICAgICAgcXIuY2FudmFzQ29udGV4dCA9IGNhbnZhc0NvbnRleHQ7XHJcbiAgICAgICAgLyog5bu25pe2562J5b6F6aG16Z2i6YeN5paw57uY5Yi25a6M5q+VICovXHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAvKiDku47mj5Lku7bojrflj5blhbfkvZPopoHosIPnlKjlk6rkuIDkuKrmianlsZXlh73mlbAgKi9cclxuICAgICAgICAgIHZhciBwbHVnaW4gPSB0aGlzLnBsdWdpbnMuZmluZChwID0+IHAubmFtZSA9PSBxci5zdHlsZSk7XHJcbiAgICAgICAgICB2YXIgZHJhd0NhbnZhc05hbWUgPSBwbHVnaW4gPyBwbHVnaW4uZHJhd0NhbnZhcyA6ICdkcmF3Q2FudmFzJztcclxuICAgICAgICAgIC8qIOiZveeEtnFyW2RyYXdDYW52YXNOYW1lXeaYr+ebtOaOpei/lOWbnlByb21pc2XnmoTvvIzkvYbnlLHkuo5qc+WGhemDqHRoaXPmjIflkJHpl67popjvvIzmlYXkuI3og73nm7TmjqVleGVjKHFyW2RyYXdDYW52YXNOYW1lXSnmraTmlrnlvI/miafooYzvvIzpnIDopoHmlLnmiJBleGVjKCgpID0+IHFyW2RyYXdDYW52YXNOYW1lXSgpKeaJjeiDveato+ehruiOt+WPlnRoaXMgKi9cclxuICAgICAgICAgIHZhciBkcmF3Q2FudmFzO1xyXG4gICAgICAgICAgaWYgKHRoaXMucXVldWUpIHtcclxuICAgICAgICAgICAgZHJhd0NhbnZhcyA9ICgpID0+IHF1ZXVlRHJhdy5leGVjKCgpID0+IHFyW2RyYXdDYW52YXNOYW1lXSgpKTtcclxuICAgICAgICAgICAgLy8gZHJhd0NhbnZhcyA9ICgpID0+IHF1ZXVlRHJhdy5leGVjKCgpID0+IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgICAgICAgLy8gICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgLy8gICAgIHFyW2RyYXdDYW52YXNOYW1lXSgpLnRoZW4ocmVzb2x2ZSkuY2F0Y2gocmVqZWN0KTtcclxuICAgICAgICAgICAgLy8gICB9LCAxMDAwKTtcclxuICAgICAgICAgICAgLy8gfSkpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZHJhd0NhbnZhcyA9ICgpID0+IHFyW2RyYXdDYW52YXNOYW1lXSgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgLyog6LCD55So57uY5Yi25pa55rOV5bCG5LqM57u056CB5Zu+5qGI57uY5Yi25YiwY2FudmFz5LiKICovXHJcbiAgICAgICAgICBkcmF3Q2FudmFzKClcclxuICAgICAgICAgICAgLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmICh0aGlzLmRyYXdEZWxlZ2F0ZSkge1xyXG4gICAgICAgICAgICAgICAgLyog6auY6aKR6YeN57uY57qg5q2jICovXHJcbiAgICAgICAgICAgICAgICBsZXQgZGVsZWdhdGUgPSB0aGlzLmRyYXdEZWxlZ2F0ZTtcclxuICAgICAgICAgICAgICAgIHRoaXMuZHJhd0RlbGVnYXRlID0gdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICAgICAgZGVsZWdhdGUoKTtcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5kcmF3aW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICBjYWxsYmFjay5zdWNjZXNzKCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAuY2F0Y2goZXJyID0+IHtcclxuICAgICAgICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xyXG4gICAgICAgICAgICAgIGlmICh0aGlzLmRyYXdEZWxlZ2F0ZSkge1xyXG4gICAgICAgICAgICAgICAgLyog6auY6aKR6YeN57uY57qg5q2jICovXHJcbiAgICAgICAgICAgICAgICBsZXQgZGVsZWdhdGUgPSB0aGlzLmRyYXdEZWxlZ2F0ZTtcclxuICAgICAgICAgICAgICAgIHRoaXMuZHJhd0RlbGVnYXRlID0gdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICAgICAgZGVsZWdhdGUoKTtcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5kcmF3aW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmlzRXJyb3IgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgY2FsbGJhY2suZmFpbChlcnIpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLmZpbmFsbHkoKCkgPT4ge1xyXG4gICAgICAgICAgICAgIGNhbGxiYWNrLmNvbXBsZXRlKCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0sIDMwMCk7XHJcbiAgICAgIH0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiDnlJ/miJDkuoznu7TnoIFcclxuICAgICAgICovXHJcbiAgICAgIG1ha2UoY2FsbGJhY2sgPSB7fSkge1xyXG4gICAgICAgIHRoaXMubWFrZUV4ZWN1dGVkID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLm1ha2VpbmcgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuaXNFcnJvciA9IGZhbHNlO1xyXG5cclxuICAgICAgICBpZiAodHlwZW9mIGNhbGxiYWNrLnN1Y2Nlc3MgIT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgICAgY2FsbGJhY2suc3VjY2VzcyA9ICgpID0+IHt9O1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodHlwZW9mIGNhbGxiYWNrLmZhaWwgIT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgICAgY2FsbGJhY2suZmFpbCA9ICgpID0+IHt9O1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodHlwZW9mIGNhbGxiYWNrLmNvbXBsZXRlICE9ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgIGNhbGxiYWNrLmNvbXBsZXRlID0gKCkgPT4ge307XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnJlc2V0Q2FudmFzKCgpID0+IHtcclxuICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLm1ha2VEZWxlZ2F0ZSk7XHJcbiAgICAgICAgICB0aGlzLm1ha2VEZWxlZ2F0ZSA9IHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmRyYXcoe1xyXG4gICAgICAgICAgICAgIHN1Y2Nlc3M6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICBjYWxsYmFjay5zdWNjZXNzKCk7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuY29tcGxldGUodHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICB9LCAzMDApO1xyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgZmFpbDogZXJyID0+IHtcclxuICAgICAgICAgICAgICAgIGNhbGxiYWNrLmZhaWwoZXJyKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuZXJyb3IgPSBlcnI7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbXBsZXRlKGZhbHNlLCBlcnIuZXJyTXNnKTtcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjYWxsYmFjay5jb21wbGV0ZSgpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tYWtlaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0sIDMwMCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiDph43mlrDnlJ/miJBcclxuICAgICAgICovXHJcbiAgICAgIHJlbWFrZShjYWxsYmFjaykge1xyXG4gICAgICAgIHRoaXMuJGVtaXQoJ2NoYW5nZScpO1xyXG4gICAgICAgIHRoaXMubWFrZShjYWxsYmFjayk7XHJcbiAgICAgIH0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiDnlJ/miJDlrozmiJBcclxuICAgICAgICovXHJcbiAgICAgIGNvbXBsZXRlKHN1Y2Nlc3MgPSB0cnVlLCBlcnJNc2cgPSAnJykge1xyXG4gICAgICAgIGlmIChzdWNjZXNzKSB7XHJcbiAgICAgICAgICB0aGlzLiRlbWl0KCdjb21wbGV0ZScsIHtcclxuICAgICAgICAgICAgc3VjY2Vzc1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuJGVtaXQoJ2NvbXBsZXRlJywge1xyXG4gICAgICAgICAgICBzdWNjZXNzLFxyXG4gICAgICAgICAgICBlcnJNc2dcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIOWvvOWHuuS4tOaXtui3r+W+hFxyXG4gICAgICAgKi9cclxuICAgICAgdG9UZW1wRmlsZVBhdGgoY2FsbGJhY2sgPSB7fSkge1xyXG4gICAgICAgIGlmICh0eXBlb2YgY2FsbGJhY2suc3VjY2VzcyAhPSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgICBjYWxsYmFjay5zdWNjZXNzID0gKCkgPT4ge307XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0eXBlb2YgY2FsbGJhY2suZmFpbCAhPSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgICBjYWxsYmFjay5mYWlsID0gKCkgPT4ge307XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0eXBlb2YgY2FsbGJhY2suY29tcGxldGUgIT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgICAgY2FsbGJhY2suY29tcGxldGUgPSAoKSA9PiB7fTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5tYWtlRXhlY3V0ZWQpIHtcclxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1t1UVJDb2RlXTogbWFrZSgpIOaWueazleS7juacquiwg+eUqO+8geivt+WFiOaIkOWKn+iwg+eUqCBtYWtlKCkg5ZCO5YaN6L+b6KGM5pON5L2c44CCJyk7XHJcbiAgICAgICAgICB2YXIgZXJyID0ge1xyXG4gICAgICAgICAgICBlcnJNc2c6ICdbdVFSQ29kZV06IG1ha2UoKSBtZXRob2QgaGFzIG5ldmVyIGJlZW4gZXhlY3V0ZWQhIHBsZWFzZSBleGVjdXRlIG1ha2UoKSBzdWNjZXNzZnVsbHkgYmVmb3JlIG9wZXJhdGluZy4nXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgICAgY2FsbGJhY2suZmFpbChlcnIpO1xyXG4gICAgICAgICAgY2FsbGJhY2suY29tcGxldGUoZXJyKTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmlzRXJyb3IpIHtcclxuICAgICAgICAgIGNhbGxiYWNrLmZhaWwodGhpcy5lcnJvcik7XHJcbiAgICAgICAgICBjYWxsYmFjay5jb21wbGV0ZSh0aGlzLmVycm9yKTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLm1ha2VpbmcpIHtcclxuICAgICAgICAgIC8qIOWmguaenOi/mOWcqOeUn+aIkOeKtuaAge+8jOmCo+W9k+WJjeaTjeS9nOWwhuaJmOeuoeWIsOWnlOaJmO+8jOebkeWQrOeUn+aIkOWujOaIkOWQjuWGjemAmui/h+WnlOaJmOWkjeiwg+W9k+WJjeaWueazlSAqL1xyXG4gICAgICAgICAgdGhpcy50b1RlbXBGaWxlUGF0aERlbGVnYXRlID0gKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnRvVGVtcEZpbGVQYXRoKGNhbGxiYWNrKTtcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMudG9UZW1wRmlsZVBhdGhEZWxlZ2F0ZSA9IG51bGw7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyAjaWZuZGVmIEFQUC1OVlVFXHJcbiAgICAgICAgaWYgKHRoaXMuY2FudmFzVHlwZSA9PT0gJzJkJykge1xyXG4gICAgICAgICAgLy8gI2lmZGVmIE1QLVdFSVhJTlxyXG4gICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgbGV0IGRhdGFVUkwgPSBudWxsO1xyXG4gICAgICAgICAgICAvLyAjaWZkZWYgVlVFM1xyXG4gICAgICAgICAgICBkYXRhVVJMID0gdG9SYXcodGhpcy5jYW52YXMpXHJcbiAgICAgICAgICAgICAgLnRvRGF0YVVSTCgpO1xyXG4gICAgICAgICAgICAvLyAjZW5kaWZcclxuICAgICAgICAgICAgLy8gI2lmbmRlZiBWVUUzXHJcbiAgICAgICAgICAgIGRhdGFVUkwgPSB0aGlzLmNhbnZhcy50b0RhdGFVUkwoKTtcclxuICAgICAgICAgICAgLy8gI2VuZGlmXHJcbiAgICAgICAgICAgIGNhbGxiYWNrLnN1Y2Nlc3Moe1xyXG4gICAgICAgICAgICAgIHRlbXBGaWxlUGF0aDogZGF0YVVSTFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgY2FsbGJhY2suY29tcGxldGUoe1xyXG4gICAgICAgICAgICAgIHRlbXBGaWxlUGF0aDogZGF0YVVSTFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgY2FsbGJhY2suZmFpbChlKTtcclxuICAgICAgICAgICAgY2FsbGJhY2suY29tcGxldGUoZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAvLyAjZW5kaWZcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdW5pLmNhbnZhc1RvVGVtcEZpbGVQYXRoKHtcclxuICAgICAgICAgICAgICBjYW52YXNJZDogdGhpcy5jYW52YXNJZCxcclxuICAgICAgICAgICAgICBmaWxlVHlwZTogdGhpcy5maWxlVHlwZSxcclxuICAgICAgICAgICAgICB3aWR0aDogTnVtYmVyKHRoaXMudGVtcGxhdGVPcHRpb25zLmNhbnZhc1dpZHRoKSxcclxuICAgICAgICAgICAgICBoZWlnaHQ6IE51bWJlcih0aGlzLnRlbXBsYXRlT3B0aW9ucy5jYW52YXNIZWlnaHQpLFxyXG4gICAgICAgICAgICAgIGRlc3RXaWR0aDogTnVtYmVyKHRoaXMudGVtcGxhdGVPcHRpb25zLnNpemUpLFxyXG4gICAgICAgICAgICAgIGRlc3RIZWlnaHQ6IE51bWJlcih0aGlzLnRlbXBsYXRlT3B0aW9ucy5zaXplKSxcclxuICAgICAgICAgICAgICBzdWNjZXNzOiByZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgY2FsbGJhY2suc3VjY2VzcyhyZXMpO1xyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgZmFpbDogZXJyID0+IHtcclxuICAgICAgICAgICAgICAgIGNhbGxiYWNrLmZhaWwoZXJyKTtcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjYWxsYmFjay5jb21wbGV0ZSgpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgdGhpc1xyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gI2VuZGlmXHJcbiAgICAgICAgLy8gI2lmZGVmIEFQUC1OVlVFXHJcbiAgICAgICAgY29uc3QgZHByID0gdW5pLmdldFN5c3RlbUluZm9TeW5jKCkucGl4ZWxSYXRpbztcclxuICAgICAgICB0aGlzLmNhbnZhc0NvbnRleHQudG9UZW1wRmlsZVBhdGgoXHJcbiAgICAgICAgICAwLFxyXG4gICAgICAgICAgMCxcclxuICAgICAgICAgIHRoaXMudGVtcGxhdGVPcHRpb25zLmNhbnZhc1dpZHRoICogZHByLFxyXG4gICAgICAgICAgdGhpcy50ZW1wbGF0ZU9wdGlvbnMuY2FudmFzSGVpZ2h0ICogZHByLFxyXG4gICAgICAgICAgdGhpcy50ZW1wbGF0ZU9wdGlvbnMuc2l6ZSAqIGRwcixcclxuICAgICAgICAgIHRoaXMudGVtcGxhdGVPcHRpb25zLnNpemUgKiBkcHIsXHJcbiAgICAgICAgICAnJyxcclxuICAgICAgICAgIDEsXHJcbiAgICAgICAgICByZXMgPT4ge1xyXG4gICAgICAgICAgICBjYWxsYmFjay5zdWNjZXNzKHJlcyk7XHJcbiAgICAgICAgICAgIGNhbGxiYWNrLmNvbXBsZXRlKHJlcyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgKTtcclxuICAgICAgICAvLyAjZW5kaWZcclxuICAgICAgfSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIOS/neWtmFxyXG4gICAgICAgKi9cclxuICAgICAgc2F2ZShjYWxsYmFjayA9IHt9KSB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiBjYWxsYmFjay5zdWNjZXNzICE9ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgIGNhbGxiYWNrLnN1Y2Nlc3MgPSAoKSA9PiB7fTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHR5cGVvZiBjYWxsYmFjay5mYWlsICE9ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgIGNhbGxiYWNrLmZhaWwgPSAoKSA9PiB7fTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHR5cGVvZiBjYWxsYmFjay5jb21wbGV0ZSAhPSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgICBjYWxsYmFjay5jb21wbGV0ZSA9ICgpID0+IHt9O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy50b1RlbXBGaWxlUGF0aCh7XHJcbiAgICAgICAgICBzdWNjZXNzOiByZXMgPT4ge1xyXG4gICAgICAgICAgICAvLyAjaWZuZGVmIEg1XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmNhbnZhc1R5cGUgPT09ICcyZCcpIHtcclxuICAgICAgICAgICAgICAvLyAjaWZkZWYgTVAtV0VJWElOXHJcbiAgICAgICAgICAgICAgLyog6ZyA6KaB5bCGIGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCwg6L+Z5q615Y676ZmkIHdyaXRlRmlsZSDmiY3og73mraPluLjmiZPlvIDmlofku7bvvIzlkKbliJnmmK/mjZ/lnY/mlofku7bvvIzml6Dms5XmiZPlvIAgKi9cclxuICAgICAgICAgICAgICBjb25zdCByZWcgPSBuZXcgUmVnRXhwKCdeZGF0YTppbWFnZS9wbmc7YmFzZTY0LCcsICdnJyk7XHJcbiAgICAgICAgICAgICAgY29uc3QgZGF0YVVSTCA9IHJlcy50ZW1wRmlsZVBhdGgucmVwbGFjZShyZWcsICcnKTtcclxuICAgICAgICAgICAgICBjb25zdCBmcyA9IHd4LmdldEZpbGVTeXN0ZW1NYW5hZ2VyKCk7XHJcbiAgICAgICAgICAgICAgY29uc3QgdGVtcEZpbGVQYXRoID0gYCR7d3guZW52LlVTRVJfREFUQV9QQVRIfS8ke25ldyBEYXRlKCkuZ2V0VGltZSgpfSR7XHJcbiAgICAgICAgICAgICAgICBNYXRoLnJhbmRvbSgpXHJcbiAgICAgICAgICAgICAgICAgIC50b1N0cmluZygpXHJcbiAgICAgICAgICAgICAgICAgIC5zcGxpdCgnLicpWzFdXHJcbiAgICAgICAgICAgICAgfS5wbmdgO1xyXG4gICAgICAgICAgICAgIGZzLndyaXRlRmlsZSh7XHJcbiAgICAgICAgICAgICAgICBmaWxlUGF0aDogdGVtcEZpbGVQYXRoLCAvLyDopoHlhpnlhaXnmoTmlofku7bot6/lvoQgKOacrOWcsOi3r+W+hClcclxuICAgICAgICAgICAgICAgIGRhdGE6IGRhdGFVUkwsIC8vIGJhc2U2NOWbvueJh1xyXG4gICAgICAgICAgICAgICAgZW5jb2Rpbmc6ICdiYXNlNjQnLFxyXG4gICAgICAgICAgICAgICAgc3VjY2VzczogcmVzMSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIHVuaS5zYXZlSW1hZ2VUb1Bob3Rvc0FsYnVtKHtcclxuICAgICAgICAgICAgICAgICAgICBmaWxlUGF0aDogdGVtcEZpbGVQYXRoLFxyXG4gICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3M6IHJlczIgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2suc3VjY2VzcyhyZXMyKTtcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGZhaWw6IGVycjIgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2suZmFpbChlcnIyKTtcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjay5jb21wbGV0ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgZmFpbDogZXJyID0+IHtcclxuICAgICAgICAgICAgICAgICAgY2FsbGJhY2suZmFpbChlcnIpO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIGNhbGxiYWNrLmNvbXBsZXRlKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgLy8gI2VuZGlmXHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgdW5pLnNhdmVJbWFnZVRvUGhvdG9zQWxidW0oe1xyXG4gICAgICAgICAgICAgICAgZmlsZVBhdGg6IHJlcy50ZW1wRmlsZVBhdGgsXHJcbiAgICAgICAgICAgICAgICBzdWNjZXNzOiByZXMxID0+IHtcclxuICAgICAgICAgICAgICAgICAgY2FsbGJhY2suc3VjY2VzcyhyZXMxKTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBmYWlsOiBlcnIxID0+IHtcclxuICAgICAgICAgICAgICAgICAgY2FsbGJhY2suZmFpbChlcnIxKTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBjb21wbGV0ZTogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICBjYWxsYmFjay5jb21wbGV0ZSgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vICNlbmRpZlxyXG5cclxuICAgICAgICAgICAgLy8gI2lmZGVmIEg1XHJcbiAgICAgICAgICAgIC8qIOWPr+S7peWcqOeUteiEkea1j+iniOWZqOS4i+i9ve+8jOenu+WKqOerr2lPU+S4jeihjO+8jOWuieWNk+W+ruS/oea1j+iniOWZqOS4jeihjO+8jOWuieWNk+WklumDqOa1j+iniOWZqOWPr+S7pSAqL1xyXG4gICAgICAgICAgICB0aGlzLmlzSDVTYXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy50ZW1wRmlsZVBhdGggPSByZXMudGVtcEZpbGVQYXRoO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5oNVNhdmVJc0Rvd25sb2FkKSB7XHJcbiAgICAgICAgICAgICAgY29uc3QgYUVsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcclxuICAgICAgICAgICAgICBhRWxlLmRvd25sb2FkID0gdGhpcy5oNURvd25sb2FkTmFtZTsgLy8g6K6+572u5LiL6L2955qE5paH5Lu25ZCN77yM6buY6K6k5pivJ+S4i+i9vSdcclxuICAgICAgICAgICAgICBhRWxlLmhyZWYgPSByZXMudGVtcEZpbGVQYXRoO1xyXG4gICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYUVsZSk7XHJcbiAgICAgICAgICAgICAgYUVsZS5jbGljaygpO1xyXG4gICAgICAgICAgICAgIGFFbGUucmVtb3ZlKCk7IC8vIOS4i+i9veS5i+WQjuaKiuWIm+W7uueahOWFg+e0oOWIoOmZpFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNhbGxiYWNrLnN1Y2Nlc3Moe1xyXG4gICAgICAgICAgICAgIGVyck1zZzogJ29rJ1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgY2FsbGJhY2suY29tcGxldGUoe1xyXG4gICAgICAgICAgICAgIGVyck1zZzogJ29rJ1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgLy8gI2VuZGlmXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgZmFpbDogZXJyID0+IHtcclxuICAgICAgICAgICAgY2FsbGJhY2suZmFpbChlcnIpO1xyXG4gICAgICAgICAgICBjYWxsYmFjay5jb21wbGV0ZShlcnIpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9LFxyXG4gICAgICAvKipcclxuICAgICAgICog5rOo5YaMY2xpY2vkuovku7ZcclxuICAgICAgICovXHJcbiAgICAgIG9uQ2xpY2soZSkge1xyXG4gICAgICAgIHRoaXMuJGVtaXQoJ2NsaWNrJywgZSk7XHJcbiAgICAgIH0sXHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiDojrflj5blrp7kvotcclxuICAgICAgICovXHJcbiAgICAgIGdldEluc3RhbmNlKCkge1xyXG4gICAgICAgIHJldHVybiBpbnN0YW5jZTtcclxuICAgICAgfSxcclxuICAgICAgLyoqXHJcbiAgICAgICAqIOazqOWGjOaJqeWxle+8jOe7hOS7tuS7heaUr+aMgeazqOWGjHR5cGXkuLpzdHlsZeeahGRyYXdDYW52YXPmianlsZVcclxuICAgICAgICogQHBhcmFtIHtPYmplY3R9IHBsdWdpblxyXG4gICAgICAgKi9cclxuICAgICAgcmVnaXN0ZXJTdHlsZShwbHVnaW4pIHtcclxuICAgICAgICBpZiAocGx1Z2luLlR5cGUgIT0gJ3N0eWxlJykge1xyXG4gICAgICAgICAgY29uc29sZS53YXJuKCdbdVFSQ29kZV06IHJlZ2lzdGVyU3R5bGUg5LuF5pSv5oyB5rOo5YaMIHN0eWxlIOexu+Wei+eahOaJqeWxle+8gScpO1xyXG4gICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgZXJyTXNnOiAncmVnaXN0ZXJTdHlsZSDku4XmlK/mjIHms6jlhowgc3R5bGUg57G75Z6L55qE5omp5bGV77yBJ1xyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHR5cGVvZiBwbHVnaW4gPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgIHRoaXMucGx1Z2lucy5wdXNoKHtcclxuICAgICAgICAgICAgcGx1Z2luLFxyXG4gICAgICAgICAgICBuYW1lOiBwbHVnaW4uTmFtZSxcclxuICAgICAgICAgICAgZHJhd0NhbnZhczogcGx1Z2luLkRyYXdDYW52YXNcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgZ2V0TG9hZEltYWdlKGxvYWRJbWFnZSkge1xyXG4gICAgICAgIHZhciB0aGF0ID0gdGhpcztcclxuICAgICAgICBpZiAodHlwZW9mIGxvYWRJbWFnZSA9PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgICByZXR1cm4gZnVuY3Rpb24oc3JjKSB7XHJcbiAgICAgICAgICAgIC8qIOWIpOaWreaYr+WQpuaYr+mYn+WIl+WKoOi9veWbvueJh+eahCAqL1xyXG4gICAgICAgICAgICBpZiAodGhhdC5pc1F1ZXVlTG9hZEltYWdlKSB7XHJcbiAgICAgICAgICAgICAgLyog6Kej5YazaU9TIEFQUHx8TlZVReWQjOaXtue7mOWItuWkmuS4quS6jOe7tOeggeWvvOiHtOWbvueJh+S4ouWksemcgOS9v+eUqOmYn+WIlyAqL1xyXG4gICAgICAgICAgICAgIHJldHVybiBxdWV1ZUxvYWRJbWFnZS5leGVjKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNhY2hlID0gY2FjaGVJbWFnZUxpc3QuZmluZCh4ID0+IHguc3JjID09IHNyYyk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNhY2hlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKGNhY2hlLmltZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgIGxvYWRJbWFnZShzcmMpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC50aGVuKGltZyA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVJbWFnZUxpc3QucHVzaCh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmMsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbWdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKGltZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5jYXRjaChlcnIgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdChlcnIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIH0sIDEwKTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHJldHVybiBsb2FkSW1hZ2Uoc3JjKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKHNyYykge1xyXG4gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHNyYyk7XHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH07XHJcblxyXG4gIC8qKlxyXG4gICAqIOWvueixoeWxnuaAp+a3seW6puabv+aNolxyXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvIOWOn+Wni+WvueixoS/pu5jorqTlr7nosaEv6KKr5pu/5o2i55qE5a+56LGhXHJcbiAgICogQHBhcmFtIHtPYmplY3R9IHIg5LuO6L+Z5Liq5a+56LGh6YeM5Y+W5YC85pu/5o2i5Yiwb+WvueixoemHjFxyXG4gICAqIEByZXR1cm4ge09iamVjdH0g5pu/5o2i5ZCO55qE5paw5a+56LGhXHJcbiAgICovXHJcbiAgZnVuY3Rpb24gZGVlcFJlcGxhY2UobyA9IHt9LCByID0ge30sIGMgPSBmYWxzZSkge1xyXG4gICAgbGV0IG9iajtcclxuICAgIGlmIChjKSB7XHJcbiAgICAgIC8vIOS7jua6kOabv+aNolxyXG4gICAgICBvYmogPSBvO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8g5LiN5pu/5o2i5rqQ77yMY29weeS4gOS7veWkh+S7veadpeabv+aNolxyXG4gICAgICBvYmogPSB7XHJcbiAgICAgICAgLi4ub1xyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgZm9yIChsZXQgayBpbiByKSB7XHJcbiAgICAgIHZhciB2ciA9IHJba107XHJcbiAgICAgIGlmICh2ciAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgICBpZiAodnIuY29uc3RydWN0b3IgPT0gT2JqZWN0KSB7XHJcbiAgICAgICAgICBvYmpba10gPSB0aGlzLmRlZXBSZXBsYWNlKG9ialtrXSwgdnIpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAodnIuY29uc3RydWN0b3IgPT0gU3RyaW5nICYmICF2cikge1xyXG4gICAgICAgICAgb2JqW2tdID0gb2JqW2tdO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBvYmpba10gPSB2cjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBvYmo7XHJcbiAgfVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBzY29wZWQ+XHJcbiAgLnVxcmNvZGUge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIH1cclxuXHJcbiAgLnVxcmNvZGUtaGlkZSB7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICBsZWZ0OiA3NTAwcnB4O1xyXG4gIH1cclxuXHJcbiAgLnVxcmNvZGUtY2FudmFzIHtcclxuICAgIHRyYW5zZm9ybS1vcmlnaW46IHRvcCBsZWZ0O1xyXG4gIH1cclxuXHJcbiAgLnVxcmNvZGUtbWFrZWluZyB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDA7XHJcbiAgICByaWdodDogMDtcclxuICAgIGJvdHRvbTogMDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICB6LWluZGV4OiAxMDtcclxuICAgIC8qICNpZm5kZWYgQVBQLU5WVUUgKi9cclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAvKiAjZW5kaWYgKi9cclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICB9XHJcblxyXG4gIC51cXJjb2RlLW1ha2VpbmctaW1hZ2Uge1xyXG4gICAgLyogI2lmbmRlZiBBUFAtTlZVRSAqL1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBtYXgtd2lkdGg6IDEyMHB4O1xyXG4gICAgbWF4LWhlaWdodDogMTIwcHg7XHJcbiAgICAvKiAjZW5kaWYgKi9cclxuICB9XHJcblxyXG4gIC51cXJjb2RlLWVycm9yIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogMDtcclxuICAgIHJpZ2h0OiAwO1xyXG4gICAgYm90dG9tOiAwO1xyXG4gICAgbGVmdDogMDtcclxuICAgIC8qICNpZm5kZWYgQVBQLU5WVUUgKi9cclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAvKiAjZW5kaWYgKi9cclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICB9XHJcblxyXG4gIC51cXJjb2RlLWVycm9yLW1lc3NhZ2Uge1xyXG4gICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgY29sb3I6ICM5MzkyOTE7XHJcbiAgfVxyXG5cclxuICAvKiAjaWZkZWYgSDUgKi9cclxuICAudXFyY29kZS1oNS1zYXZlIHtcclxuICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgIHRvcDogMDtcclxuICAgIHJpZ2h0OiAwO1xyXG4gICAgYm90dG9tOiAwO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHotaW5kZXg6IDEwMDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42OCk7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICB9XHJcblxyXG4gIC51cXJjb2RlLWg1LXNhdmUtaW1hZ2Uge1xyXG4gICAgd2lkdGg6IDUxMnJweDtcclxuICAgIGhlaWdodDogNTEycnB4O1xyXG4gICAgcGFkZGluZzogMzJycHg7XHJcbiAgfVxyXG5cclxuICAudXFyY29kZS1oNS1zYXZlLXRleHQge1xyXG4gICAgbWFyZ2luLXRvcDogMjBycHg7XHJcbiAgICBmb250LXNpemU6IDMycnB4O1xyXG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgIGNvbG9yOiAjZmZmZmZmO1xyXG4gIH1cclxuXHJcbiAgLnVxcmNvZGUtaDUtc2F2ZS1jbG9zZSB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBtYXJnaW4tdG9wOiA3MnJweDtcclxuICAgIHdpZHRoOiA2MHJweDtcclxuICAgIGhlaWdodDogNjBycHg7XHJcbiAgICBib3JkZXI6IDJycHggc29saWQgI2ZmZmZmZjtcclxuICAgIGJvcmRlci1yYWRpdXM6IDYwcnB4O1xyXG4gICAgcGFkZGluZzogMTBycHg7XHJcbiAgfVxyXG5cclxuICAudXFyY29kZS1oNS1zYXZlLWNsb3NlLWJlZm9yZSB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDUwJTtcclxuICAgIGxlZnQ6IDUwJTtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpIHJvdGF0ZSg0NWRlZyk7XHJcbiAgICB3aWR0aDogNDBycHg7XHJcbiAgICBoZWlnaHQ6IDRycHg7XHJcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xyXG4gIH1cclxuXHJcbiAgLnVxcmNvZGUtaDUtc2F2ZS1jbG9zZS1hZnRlciB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDUwJTtcclxuICAgIGxlZnQ6IDUwJTtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xyXG4gICAgd2lkdGg6IDQwcnB4O1xyXG4gICAgaGVpZ2h0OiA0cnB4O1xyXG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcclxuICB9XHJcblxyXG4gIC8qICNlbmRpZiAqL1xyXG48L3N0eWxlPlxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///14\n"); /***/ }), /* 15 */ /*!*********************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js ***! \*********************************************************************/ /*! exports provided: log, default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "log", function() { return log; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return formatLog; }); function typof (v) { var s = Object.prototype.toString.call(v) return s.substring(8, s.length - 1) } function isDebugMode () { /* eslint-disable no-undef */ return typeof __channelId__ === 'string' && __channelId__ } function jsonStringifyReplacer (k, p) { switch (typof(p)) { case 'Function': return 'function() { [native code] }' default : return p } } function log (type) { for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { args[_key - 1] = arguments[_key] } console[type].apply(console, args) } function formatLog () { for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key] } var type = args.shift() if (isDebugMode()) { args.push(args.pop().replace('at ', 'uni-app:///')) return console[type].apply(console, args) } var msgs = args.map(function (v) { var type = Object.prototype.toString.call(v).toLowerCase() if (type === '[object object]' || type === '[object array]') { try { v = '---BEGIN:JSON---' + JSON.stringify(v, jsonStringifyReplacer) + '---END:JSON---' } catch (e) { v = type } } else { if (v === null) { v = '---NULL---' } else if (v === undefined) { v = '---UNDEFINED---' } else { var vType = typof(v).toUpperCase() if (vType === 'NUMBER' || vType === 'BOOLEAN') { v = '---BEGIN:' + vType + '---' + v + '---END:' + vType + '---' } else { v = String(v) } } } return v }) var msg = '' if (msgs.length > 1) { var lastMsg = msgs.pop() msg = msgs.join('---COMMA---') if (lastMsg.indexOf(' at ') === 0) { msg += lastMsg } else { msg += '---COMMA---' + lastMsg } } else { msg = msgs[0] } console[type](msg) } /***/ }), /* 16 */ /*!**********************************************************!*\ !*** ./node_modules/@babel/runtime/regenerator/index.js ***! \**********************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); // TODO(Babel 8): Remove this file. var runtime = __webpack_require__(/*! ../helpers/regeneratorRuntime */ 17)(); module.exports = runtime; // Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736= try { regeneratorRuntime = runtime; } catch (accidentalStrictMode) { if ((typeof globalThis === "undefined" ? "undefined" : _typeof(globalThis)) === "object") { globalThis.regeneratorRuntime = runtime; } else { Function("r", "regeneratorRuntime = r")(runtime); } } /***/ }), /* 17 */ /*!*******************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/regeneratorRuntime.js ***! \*******************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var _typeof = __webpack_require__(/*! ./typeof.js */ 4)["default"]; function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ module.exports = _regeneratorRuntime = function _regeneratorRuntime() { return e; }, module.exports.__esModule = true, module.exports["default"] = module.exports; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) { if (n.call(e, o)) return next.value = e[o], next.done = !1, next; } return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) { r.push(n); } return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) { "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); } }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; } module.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 18 */ /*!*****************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/asyncToGenerator.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } module.exports = _asyncToGenerator, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 19 */ /*!*****************************************************************************************************************!*\ !*** /Users/zhangqizhen/Sites/miniProgram/yunyi/watch-app/uni_modules/Sansnn-uQRCode/js_sdk/uqrcode/uqrcode.js ***! \*****************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = b;\nvar _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ 16));\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ 18));\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 2));\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n//---------------------------------------------------------------------\n// uQRCode二维码生成插件 v4.0.6\n// \n// uQRCode是一款基于Javascript环境开发的二维码生成插件,适用所有Javascript运行环境的前端应用和Node.js。\n// \n// Copyright (c) Sansnn uQRCode All rights reserved.\n// \n// Licensed under the Apache License, Version 2.0.\n// http://www.apache.org/licenses/LICENSE-2.0\n// \n// github地址:\n// https://github.com/Sansnn/uQRCode\n// \n// npm地址:\n// https://www.npmjs.com/package/uqrcodejs\n// \n// uni-app插件市场地址:\n// https://ext.dcloud.net.cn/plugin?id=1287\n// \n// 复制使用请保留本段注释,感谢支持开源!\n// \n//---------------------------------------------------------------------\n\n//---------------------------------------------------------------------\n// 当前文件格式为 es,将 bundle 保留为 ES 模块文件,适用于其他打包工具以及支持